From 4c42d82f177b24f21dee14dd041035fb6c1ce7ee Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期二, 06 八月 2024 08:11:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
UI-Project/src/views/Identify/identify.vue | 63 +++++
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 29 ++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 1
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 3
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java | 10 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java | 8
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java | 10 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 132 +++++++-----
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java | 37 +++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml | 29 ++
hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java | 6
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml | 2
UI-Project/src/views/Caching/cachingun.vue | 5
UI-Project/src/views/Slicecage/slicecage.vue | 51 +++-
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java | 4
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java | 109 ----------
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 14
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java | 27 ++
UI-Project/src/utils/WebSocketService.js | 15 -
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java | 3
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java | 3
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java | 2
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml | 10
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java | 5
24 files changed, 349 insertions(+), 229 deletions(-)
diff --git a/UI-Project/src/utils/WebSocketService.js b/UI-Project/src/utils/WebSocketService.js
index 1b44f21..0c2d76f 100644
--- a/UI-Project/src/utils/WebSocketService.js
+++ b/UI-Project/src/utils/WebSocketService.js
@@ -1,5 +1,4 @@
// WebSocketService.js
-
let socket = null;
export const initializeWebSocket = (socketUrl, messageHandler) => {
let messages='' ;
@@ -7,13 +6,10 @@
console.log("Your browser does not support WebSocket");
return null;
}
-
const socket = new WebSocket(socketUrl);
-
socket.onopen = function () {
console.log("WebSocket is now open");
};
-
socket.onmessage = (msg) => {
if (!msg.data) {
return;
@@ -24,24 +20,15 @@
if(isLastChunk||msg.data.length<50000) {
messages= messages.replace('<END>', '');
const obj = JSON.parse(messages);
-
+ messages='';
// 璋冪敤娑堟伅澶勭悊鍑芥暟锛屽皢鏁版嵁浼犻�掔粰 Vue 缁勪欢
if (messageHandler) {
messageHandler(obj);
}
- messages='';
}
-
-
-
-
-
};
-
return socket;
};
-
-
export const closeWebSocket = (socket) => {
if (socket && socket.readyState === WebSocket.OPEN) {
socket.close();
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index 737c1de..7b55968 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -210,10 +210,11 @@
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
const handleMessage = (data) => {
// 鏇存柊 tableData 鐨勬暟鎹�
- tableData.splice(0, tableData.length, ...data.params[0]);
+ tableData.value = data.params2[0]
+ // tableData.splice(0, tableData.length, ...data.params2[0]);
// tableData.value = data.params[0]
// adjustedRects.value = data.EdgStorageCageinfos[0]
- adjustedRects.value = data.params[0].map(rect => ({
+ adjustedRects.value = data.params2[0].map(rect => ({
...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
width: rect.width * 0.5 ,
id: rect.id * 10,
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index e7be5c2..59982e5 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -1,6 +1,20 @@
-<template>
+<template>
+ <div style="display: flex;">
+<el-input v-model="inputValue" style="margin-left: 15px;margin-top: 10px;width: 240px" placeholder="璇疯緭鍏ュ伐绋嬪彿" @blur="handleBlur"/>
+<el-pagination
+ v-model:current-page="currentPage3"
+ v-model:page-size="pageSize3"
+ :size="size"
+ :disabled="disabled"
+ :background="background"
+ layout="prev, pager, next, jumper"
+ :total="1000"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
<el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
- <el-scrollbar height="600px" >
+ <el-scrollbar height="550px" >
<div id="app" style="margin-top: 20px;">
<!-- <div
:style="{ width: `${olWidth}px`, height: `${olHeight}px`,position: 'relative',}"
@@ -41,7 +55,7 @@
<script setup lang="ts">
import { Delete, Upload } from '@element-plus/icons-vue'
import { ElMessage, ElMessageBox } from 'element-plus'
-import { ref, onMounted, onBeforeUnmount,onUnmounted } from 'vue';
+import { ref, onMounted, onBeforeUnmount,onUnmounted,watchEffect } from 'vue';
import request from "@/utils/request"
import { WebSocketHost ,host} from '@/utils/constants'
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
@@ -53,7 +67,7 @@
const olHeight = ref();
const process_id = ref(); // 鐢ㄤ簬瀛樺偍process_id鐨勫搷搴斿紡寮曠敤
const glass_id = ref();
-// const rects = ref([]); // 鐢ㄤ簬瀛樺偍鐭╁舰鏁版嵁鐨勫搷搴斿紡寮曠敤
+const inputValue = ref('');
const currentGlassId = ref(null); // 瀛樺偍褰撳墠鐐瑰嚮鐭╁舰鐨� glass_id
const adjustedRects = ref([]);
// const handleBind = (row) => {
@@ -155,6 +169,42 @@
console.error(error);
}
}
+const handleBlur = async () => {
+ if (inputValue.value !== '') {
+ try {
+ var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value;
+ const response = await request.post(url)
+ if (response.data && response.data.currentCutTerritory) {
+ // 鍋囪杩斿洖鐨勬暟鎹渶瑕佽皟鏁村潗鏍囧拰灏哄
+ adjustedRects.value = response.data.currentCutTerritory.map(rect => ({
+ ...rect,
+ x_axis: 1360 - (rect.x_axis + rect.width) * 0.37,
+ y_axis: (rect.y_axis * 100) * 0.003,
+ width: (rect.width * 100) * 0.002,
+ height: (rect.height * 100) * 0.002,
+ widtha: rect.width ,
+ heighta: rect.height ,
+ glass_state: rect.glass_state
+ }));
+ }
+ } catch (error) {
+ console.error('璇锋眰鏁版嵁澶辫触:', error);
+ }
+ }
+};
+// const handleBlur = async () => {
+// if (inputValue.value !=''){
+// try {
+// var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value;
+// const response = await request.post(url)
+// console.log(response.data.length);
+// if (response.code == 200) {
+// adjustedRects.value = response.data
+// ElMessage.success(response.message);
+// } else {
+// ElMessage.error(response.msg);
+// }
+// }
function getRectColor(state: number): string {
switch (state) {
case 0:
@@ -205,6 +255,11 @@
closeWebSocket(socket);
}
});
+ watchEffect(() => {
+ if (inputValue.value === '') {
+ handleMessage();
+ }
+});
onBeforeUnmount(() => {
console.log("鍏抽棴浜�")
closeWebSocket();
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 4ed89ea..9837905 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -76,19 +76,7 @@
const cell8=ref(true);
const cell9=ref(true);
const selectedRow = ref(null); // 瀛樺偍閫変腑鐨勮鏁版嵁
-
-onMounted(async () => {
- try {
- const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass');
- if (response.code === 200) {
- tableDatagh.value = response.data
- } else {
- ElMessage.warning(response.msg)
- }
- } catch (error) {
- // console.error('Error fetching rects :', error);
- }
-});
+
// 褰撳墠椤电爜鍜屾瘡椤垫樉绀虹殑鏉℃暟
const currentPage = ref(1);
const itemsPerPage = computed(() => {
@@ -513,6 +501,40 @@
dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
fetchFlowCardId();
};
+const handleganghua = () => {
+ dialogFormVisiblec.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+ fetchFlow();
+};
+// 閽㈠寲鏌ヨ
+
+onMounted(async () => {
+ try {
+ const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass');
+ if (response.code === 200) {
+ tableDatagh.value = response.data
+ } else {
+ ElMessage.warning(response.msg)
+ }
+ } catch (error) {
+ // console.error('Error fetching rects :', error);
+ }
+});
+const fetchFlow = async () => {
+ try {
+ const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass')
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ tableDatagh.value = response.data
+ } else {
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+// 鍊肩彮淇℃伅
const fetchFlowCardId = async () => {
try {
const response = await request.post('/cacheVerticalGlass/work_assignment/selectWorkAssignment',{
@@ -523,7 +545,6 @@
ElMessage.success(response.message);
tableDatax.value = response.data;
console.log(tableDatax.value);
- console
} else {
ElMessage.error(response.message);
}
@@ -742,7 +763,7 @@
<div style="height: 600px;">
<el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true">{{ $t('searchOrder.cageinformation') }}</el-button>
<el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('searchOrder.productionqueue') }}</el-button>
- <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="warning" @click="dialogFormVisiblec = true">{{ $t('searchOrder.temperingqueries') }}</el-button>
+ <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="warning" @click="handleganghua">{{ $t('searchOrder.temperingqueries') }}</el-button>
<el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
<el-switch style="margin-top: 5px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('searchOrder.temperedswitch')" @change="handleChange" />
<el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
index f5bda8f..2ea5807 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -53,6 +53,7 @@
public static final Integer GLASS_STATE_TAKE = 200;
public static final Integer GLASS_STATE_DAMAGE = 201;
public static final List<Integer> GLASS_STATE_IN_ALL = Arrays.asList(100, 102, 103, 104);
+ public static final List<Integer> GLASS_STATE_IN_ALL_ZERO = Arrays.asList(0, 100, 102, 103, 104);
/**
* 鍗у紡鐞嗙墖绗艰鎯呰〃鐜荤拑鐘舵��
@@ -159,7 +160,7 @@
*/
public static final List<Integer> G06_WORK_STATION = Arrays.asList(1, 2, 3);
public static final List<Integer> G11_WORK_STATION = Arrays.asList(4, 5, 6);
- public static final List<Integer> G13_WORK_STATION = Arrays.asList(7);
+ public static final int G13_WORK_STATION = 7;
/**
* 鍚敤 1
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
index 36624b9..aae4a9a 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -67,111 +67,20 @@
*/
@Override
public void submitDamage(List<Damage> damageList) {
- Map<String, Map<String, Map<String, Map<String, List<Damage>>>>> resultMap = damageList.stream()
- .collect(Collectors.groupingBy(
- Damage::getProcessId,
- Collectors.groupingBy(
- Damage::getWorkingProcedure,
- Collectors.groupingBy(
- Damage::getDeviceName,
- Collectors.groupingBy(Damage::getTeamsGroupsName)
- )
- )
- ));
- // 閬嶅巻 resultMap
- for (Map.Entry<String, Map<String, Map<String, Map<String, List<Damage>>>>> processEntry : resultMap.entrySet()) {
- String processId = processEntry.getKey();
- System.out.println("ProcessId: " + processId);
+ Map<String, List<Damage>> firstMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":"
+ + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName()));
- // 鑾峰彇绗簩灞傜殑 Map锛屾寜 workingProcedure 鍒嗙粍鐨勭粨鏋�
- Map<String, Map<String, Map<String, List<Damage>>>> workingProcedureMap = processEntry.getValue();
+ for (Map.Entry<String, List<Damage>> entry : firstMap.entrySet()) {
+ String key = entry.getKey();
+ List<Damage> damages = entry.getValue();
- // 閬嶅巻 workingProcedureMap
- for (Map.Entry<String, Map<String, Map<String, List<Damage>>>> workingProcedureEntry : workingProcedureMap.entrySet()) {
- String workingProcedure = workingProcedureEntry.getKey();
- System.out.println(" WorkingProcedure: " + workingProcedure);
+ System.out.println("Key: " + key);
- // 鑾峰彇绗笁灞傜殑 Map锛屾寜 deviceName 鍒嗙粍鐨勭粨鏋�
- Map<String, Map<String, List<Damage>>> deviceNameMap = workingProcedureEntry.getValue();
+ Map<String, List<Damage>> secondMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":"
+ + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName()));
- // 閬嶅巻 deviceNameMap
- for (Map.Entry<String, Map<String, List<Damage>>> deviceNameEntry : deviceNameMap.entrySet()) {
- String deviceName = deviceNameEntry.getKey();
- System.out.println(" DeviceName: " + deviceName);
+ for (Map.Entry<String, List<Damage>> entrys : secondMap.entrySet()) {
- // 鑾峰彇绗洓灞傜殑 Map锛屾寜 teamsGroupsName 鍒嗙粍鐨勭粨鏋�
- Map<String, List<Damage>> teamsGroupsNameMap = deviceNameEntry.getValue();
-
- // 閬嶅巻 teamsGroupsNameMap
- for (Map.Entry<String, List<Damage>> teamsGroupsNameEntry : teamsGroupsNameMap.entrySet()) {
- String teamsGroupsName = teamsGroupsNameEntry.getKey();
- System.out.println(" TeamsGroupsName: " + teamsGroupsName);
-
- // 鑾峰彇 Damage 鍒楄〃
- List<Damage> damageListForTeamsGroupsName = teamsGroupsNameEntry.getValue();
- //鎶ュ伐涓昏〃鏁版嵁
- ReportingWork reportingWork = new ReportingWork();
- reportingWork.setProcessId(processId);
- reportingWork.setThisProcess(workingProcedure);
- reportingWork.setDeviceName(deviceName);
- reportingWork.setTeamsGroupsName(teamsGroupsName);
-
- Map<Integer, Map<Integer, Map<String, List<Damage>>>> groupedByOrderTechBreakage = damageListForTeamsGroupsName.stream()
- .map(damage -> Optional.ofNullable(damage)) // 浣跨敤Optional澶勭悊鍙兘涓簄ull鐨勫厓绱�
- .filter(Optional::isPresent) // 杩囨护鎺夌┖鐨凮ptional
- .map(Optional::get) // 鑾峰彇闈炵┖鐨凞amage瀵硅薄
- .collect(Collectors.groupingBy(
- damage -> Optional.ofNullable(damage.getOrderNumber()).orElse(0), // 浣跨敤orElse璁剧疆榛樿鍊硷紝浠ュ鐞唍ull鍊�
- Collectors.groupingBy(
- damage -> Optional.ofNullable(damage.getTechnologyNumber()).orElse(0), // 鍚屾牱澶勭悊technologyNumber鍙兘涓簄ull鐨勬儏鍐�
- Collectors.groupingBy(
- damage -> Optional.ofNullable(damage.getBreakageType()).orElse("Unknown"), // 澶勭悊breakageType鍙兘涓簄ull鐨勬儏鍐�
- Collectors.toList()
- )
- )
- ));
-
- // 閬嶅巻 groupedByOrderTechBreakage
- for (Map.Entry<Integer, Map<Integer, Map<String, List<Damage>>>> orderEntry : groupedByOrderTechBreakage.entrySet()) {
- Integer orderNumber = orderEntry.getKey();
- System.out.println(" OrderNumber: " + orderNumber);
-
- // 鑾峰彇绗簩灞傜殑 Map锛屾寜 technologyNumber 鍒嗙粍鐨勭粨鏋�
- Map<Integer, Map<String, List<Damage>>> technologyNumberMap = orderEntry.getValue();
-
- // 閬嶅巻 technologyNumberMap
- for (Map.Entry<Integer, Map<String, List<Damage>>> technologyEntry : technologyNumberMap.entrySet()) {
- Integer technologyNumber = technologyEntry.getKey();
- System.out.println(" TechnologyNumber: " + technologyNumber);
-
- // 鑾峰彇绗笁灞傜殑 Map锛屾寜 breakageType 鍒嗙粍鐨勭粨鏋�
- Map<String, List<Damage>> breakageTypeMap = technologyEntry.getValue();
-
- // 閬嶅巻 breakageTypeMap
- for (Map.Entry<String, List<Damage>> breakageTypeEntry : breakageTypeMap.entrySet()) {
- String breakageType = breakageTypeEntry.getKey();
- System.out.println(" BreakageType: " + breakageType);
-
-
- // 鑾峰彇 Damage 鍒楄〃
- List<Damage> damageListForBreakageType = breakageTypeEntry.getValue();
- int completedQuantity = 0;
- int breakageQuantity = 0;
- // 閬嶅巻 Damage 鍒楄〃
- for (Damage damage : damageListForBreakageType) {
- // 鎵撳嵃鎴栧鐞嗘瘡涓� Damage 瀵硅薄
- System.out.println(" Damage: " + damage.toString());
- if (damage.getType() == 1) {
- completedQuantity += 1;
- } else if (damage.getType() == 2) {
- breakageQuantity += 1;
- }
- }
- }
- }
- }
- }
- }
}
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
index b4c28b8..fd28610 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -31,6 +31,7 @@
import javax.print.attribute.standard.MediaSize;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -183,8 +184,10 @@
*/
@Override
public List<Map<String, Object>> selectCurrentCutTerritory(String current) {
-
- return optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
+ //鏈�缁堣繑鍥炵粨鏋�
+ List<Map<String, Object>> ResultcutTerritorys=new ArrayList<>();
+ //姝ゅ伐绋嬬殑鎵�鏈変紭鍖栨暟鎹�
+ List<Map<String, Object>> cutTerritorys=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
.selectAll(OptimizeDetail.class)
.selectAs(OptimizeLayout::getWidth, "olWidth")
.selectAs(OptimizeLayout::getWidth, "olHeight")
@@ -193,6 +196,26 @@
.eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
.eq(OptimizeDetail::getProjectNo, current)
);
+
+ Map<String, EdgStorageCageDetails> edgMaps=baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
+ .selectAll(EdgStorageCageDetails.class)
+ .eq(EdgStorageCageDetails::getEngineerId,current)
+ .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails->EdgStorageCageDetails));
+
+ for (Map<String, Object> cutTerritory : cutTerritorys) {
+// log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
+ if(cutTerritory.get("glass_id")==null||"".equals(cutTerritory.get("glass_id"))){
+ log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}",cutTerritorys);
+ return new ArrayList<>();
+ }else if(edgMaps.get(cutTerritory.get("glass_id"))!=null){
+ cutTerritory.put("glass_state",edgMaps.get(cutTerritory.get("glass_id")).getState());
+ }else{
+ cutTerritory.put("glass_state",0);
+ }
+ ResultcutTerritorys.add(cutTerritory);
+ }
+ return ResultcutTerritorys;
//Sql鐗堟湰
// return optimizeDetailMapper.selectJoinMaps(new MPJQueryWrapper<OptimizeDetail>().selectAll(OptimizeDetail.class)
// .select("ol.width as olwidth","ol.height as olheight")
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index 3187ad3..8fe0a53 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -21,7 +21,6 @@
import com.mes.glassinfo.service.GlassInfoService;
import com.mes.taskcache.entity.TaskCache;
import com.mes.taskcache.service.TaskCacheService;
-import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.tools.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
@@ -87,6 +86,8 @@
@Value("${mes.min.two.secondLength}")
private String minTwoSecondLength;
+ public static String engineerId = "";
+
@Scheduled(fixedDelay = 1000)
public void plcHomeEdgTask() {
Date startDate = new Date();
@@ -138,13 +139,14 @@
Date endDate = new Date();
log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
}
+
@Scheduled(fixedDelay = 1000)
- public void cacheGlassIsRun(){
+ public void temperingIsRun() {
JSONObject jsonObject = new JSONObject();
//姝e湪杩涜鐨勪换鍔�
- List<TaskCache>taskCaches=taskCacheService.selectTaskCacheIsRun();
+ List<TaskCache> taskCaches = taskCacheService.selectTaskCacheIsRun();
jsonObject.append("taskCaches", taskCaches);
- ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlassIsRun");
+ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun");
if (sendwServer != null) {
for (WebSocketServer webserver : sendwServer) {
if (webserver != null) {
@@ -155,6 +157,7 @@
}
}
}
+
/**
* 杩涚墖浠诲姟
*
@@ -314,7 +317,7 @@
BeanUtils.copyProperties(one, resultDetails);
glassInfo = resultDetails;
} else {
- log.info("鑾峰彇绗煎唴鐜荤拑鍜屽甫杩涚墖鐜荤拑涓虹┖鎴栬�呬笉绗﹀悎纾ㄨ竟灏哄");
+ log.info("鑾峰彇绗煎唴鐜荤拑鍜屽緟杩涚墖鐜荤拑涓虹┖鎴栬�呬笉绗﹀悎纾ㄨ竟灏哄");
}
} else {
glassInfo = queryMinGlass(list.get(0).getWidth(), list.get(0).getHeight(), glassId);
@@ -528,12 +531,12 @@
if (endcell == Const.A10_OUT_TARGET_POSITION) {
wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
"case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
- "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
- + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
+ "on t.glass_id = t1.glass_id and (t1.first_length >= " + minOneFirstLength + " and t1.second_length >= " + minOneSecondLength);
} else {
wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
"case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
- "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") ");
+ "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+ + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
}
wrapper.last("order by count(t.glass_id) desc limit 2");
List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
@@ -696,9 +699,17 @@
@Scheduled(fixedDelay = 1000)
public void CacheGlassTasks() {
JSONObject jsonObject = new JSONObject();
- //璇嗗埆鎽嗙墖
List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
+// List<Map<String, Object>> currentCutTerritorys=new ArrayList<>();
+// if(engineerId==null||engineerId.isEmpty()){
+// //璇嗗埆鎽嗙墖 褰撳墠鐗堝浘鏁版嵁
+// currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
+// }else{
+// //璇嗗埆鎽嗙墖 姝ngineerId 宸ョ▼鐗堝浘鏁版嵁
+// currentCutTerritorys = edgStorageCageDetailsService.selectCurrentCutTerritory(engineerId);
+// }
jsonObject.append("currentCutTerritory", currentCutTerritorys);
+ //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys);
//纾ㄨ竟淇℃伅
List<Map<String, Object>> EdgTasks1 = taskCacheService.selectEdgInfo("2001");
List<Map<String, Object>> EdgTasks2 = taskCacheService.selectEdgInfo("2002");
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
index 6f09fea..8122b36 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -13,6 +13,8 @@
import java.util.List;
import java.util.Map;
+import static com.mes.job.CacheGlassTask.engineerId;
+
/**
* <p>
* 鍓嶇鎺у埗鍣�
@@ -38,6 +40,7 @@
@PostMapping("/cutTerritory")
@ResponseBody
public Result cutTerritory(String current) {
+ //engineerId=current;
List<Map<String, Object>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
return Result.build(200,"鎴愬姛",h);
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index 1abe8aa..3a702c3 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -13,12 +13,16 @@
mes:
threshold: 3
ratio: 10
- max:
+ max: # 绗簩鏉$嚎鐨勬渶澶у昂瀵镐俊鎭�
firstLength: 3500
secondLength: 2500
min:
- firstLength: 600
- secondLength: 350
+ one: #绗竴鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
+ firstLength: 600
+ secondLength: 350
+ two: #绗簩鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
+ firstLength: 400
+ secondLength: 300
sequence:
order: false
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
index 19a87ce..8264682 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
@@ -137,6 +137,12 @@
}
@Test
+ public void testEngineerCutTerritory() {
+ List<Map<String, Object>> map = edgStorageCageDetailsService.selectCurrentCutTerritory("P24051806");
+ log.info("鍒囧壊宸ョ▼鐗堝浘淇℃伅锛歿}", Arrays.asList(map));
+ }
+
+ @Test
public void testidentWorn() {
Map<String, String> arguments=new HashMap<>();
arguments.put("glassId","P24060403|3|6");//鐜荤拑ID
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
index 0752d30..b6f1cbd 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
@@ -1,11 +1,8 @@
package com.mes.bigstorage.mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.mes.bigstorage.entity.BigStorageCage;
-import com.mes.bigstorage.entity.BigStorageCageDetails;
-import com.mes.glassinfo.entity.GlassInfo;
-import org.apache.ibatis.annotations.Update;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -19,4 +16,7 @@
*/
public interface BigStorageCageMapper extends MPJBaseMapper<BigStorageCage> {
+ List<Integer> queryFreeDeviceByUsed(@Param(value = "thickness") double thickness);
+
+ List<Integer> queryFreeDeviceByNotUsed(@Param(value = "thickness") double thickness);
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
index ab90c99..9ba368b 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
@@ -31,4 +31,8 @@
List<Map<String, Object>> selectBigStorageCageUsage();
void updateStorageCageDisabled(int slot, int enableState);
+
+ List<Integer> queryFreeDeviceByUsed(double thickness);
+
+ List<Integer> queryFreeDeviceByNotUsed(double thickness);
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index a1f0079..7138c20 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -30,6 +30,7 @@
import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
import com.mes.temperingglass.service.TemperingGlassInfoService;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -49,6 +50,7 @@
* @author zhoush
* @since 2024-03-27
*/
+@Slf4j
@Service
public class BigStorageCageDetailsServiceImpl extends MPJBaseServiceImpl<BigStorageCageDetailsMapper, BigStorageCageDetails> implements BigStorageCageDetailsService {
@@ -88,7 +90,7 @@
@Override
- public List<BigStorageCageDetails> selectFeedTask(){
+ public List<BigStorageCageDetails> selectFeedTask() {
//杩涚墖浠诲姟鏁版嵁
LambdaQueryWrapper<BigStorageCageDetails> feedWrapper = new LambdaQueryWrapper<>();
feedWrapper.eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW);
@@ -101,38 +103,38 @@
List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskMapper.selectList(feedTaskWrapper);
Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream()
.collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task));
- Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
- while (iterator.hasNext()) {
- BigStorageCageDetails bigStorageCageDetails = iterator.next();
- BigStorageCageFeedTask bigStorageCageFeedTask = listMap.get(bigStorageCageDetails.getGlassId());
- bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
- }
- return bigStorageCageDetailsList;
+ Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
+ while (iterator.hasNext()) {
+ BigStorageCageDetails bigStorageCageDetails = iterator.next();
+ BigStorageCageFeedTask bigStorageCageFeedTask = listMap.get(bigStorageCageDetails.getGlassId());
+ bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
+ }
+ return bigStorageCageDetailsList;
}
@Override
- public List<BigStorageCageDetails> selectOutTask(){
- LambdaQueryWrapper<BigStorageCageDetails> outWrapper = new LambdaQueryWrapper<>();
- outWrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING,Const.GLASS_STATE_SCHEDULE_ING);
- List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(outWrapper);
- LambdaQueryWrapper<BigStorageCageOutTask> outTaskWrapper = new LambdaQueryWrapper<>();
- outTaskWrapper.lt(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_SUCCESS);
- List<BigStorageCageOutTask> bigStorageCageOutTaskList = bigStorageCageOutTaskMapper.selectList(outTaskWrapper);
+ public List<BigStorageCageDetails> selectOutTask() {
+ LambdaQueryWrapper<BigStorageCageDetails> outWrapper = new LambdaQueryWrapper<>();
+ outWrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING, Const.GLASS_STATE_SCHEDULE_ING);
+ List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(outWrapper);
+ LambdaQueryWrapper<BigStorageCageOutTask> outTaskWrapper = new LambdaQueryWrapper<>();
+ outTaskWrapper.lt(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_SUCCESS);
+ List<BigStorageCageOutTask> bigStorageCageOutTaskList = bigStorageCageOutTaskMapper.selectList(outTaskWrapper);
- Map<String, BigStorageCageOutTask> listMap = bigStorageCageOutTaskList.stream()
- .collect(Collectors.toMap(BigStorageCageOutTask::getGlassId, task -> task));
- for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList) {
- BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
- bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
- }
- Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
- while (iterator.hasNext()) {
- BigStorageCageDetails bigStorageCageDetails = iterator.next();
- BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
- bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
- }
- return bigStorageCageDetailsList;
+ Map<String, BigStorageCageOutTask> listMap = bigStorageCageOutTaskList.stream()
+ .collect(Collectors.toMap(BigStorageCageOutTask::getGlassId, task -> task));
+ for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList) {
+ BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
+ bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
}
+ Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
+ while (iterator.hasNext()) {
+ BigStorageCageDetails bigStorageCageDetails = iterator.next();
+ BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
+ bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
+ }
+ return bigStorageCageDetailsList;
+ }
/**
@@ -266,7 +268,8 @@
.selectAll(BigStorageCage.class)
.leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
.eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .eq(BigStorageCageDetails::getEngineerId,glassInfo.getEngineerId())
+ .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+ .eq(BigStorageCageDetails::getEngineerId, glassInfo.getEngineerId())
.eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
.gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
.last("limit 1");
@@ -277,6 +280,7 @@
}
BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper);
if (null != bigStorageCage) {
+ log.info("鏃犻挗鍖栫増鍥緄d鎴栨牴鎹綋鍓嶇幓鐠冪墖搴�+1鎵惧埌鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
bigStorageDTO = new BigStorageDTO();
bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
bigStorageDTO.setSlot(bigStorageCage.getSlot());
@@ -286,11 +290,12 @@
bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
.eq(BigStorageCage::getEnableState, Const.SLOT_ON)
.eq(BigStorageCage::getRemainWidth, slotWidth)
- .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
+// .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
.inSql(BigStorageCage::getDeviceId,
- "select distinct device_id from big_storage_cage_details where engineer_id = "+glassInfo.getEngineerId()+" and tempering_layout_id = " + glassInfo.getTemperingLayoutId())
+ "select distinct device_id from big_storage_cage_details where engineer_id = '" + glassInfo.getEngineerId() + "' and tempering_layout_id = " + glassInfo.getTemperingLayoutId())
.last("limit 1"));
if (null != bigStorageCage) {
+ log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
bigStorageDTO = new BigStorageDTO();
bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
bigStorageDTO.setSlot(bigStorageCage.getSlot());
@@ -298,35 +303,42 @@
return bigStorageDTO;
}
- //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
- bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
- .eq(BigStorageCage::getRemainWidth, slotWidth)
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
- .notInSql(BigStorageCage::getDeviceId,
- "select distinct device_id from big_storage_cage_details where state in (100,102,103)")
- .ge(BigStorageCage::getMaxThickness, glassInfo.getThickness())
- .orderByAsc(BigStorageCage::getDeviceId)
- .last("limit 1"));
- if (null != bigStorageCage) {
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
- return bigStorageDTO;
+ //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 鍥犱负瀛愭煡璇㈡帓搴忓涓籹ql鏃犲奖鍝嶏紝鎵�浠ュ厛鎵ц瀛愭煡璇㈣幏鍙栭『搴忥紝鐒跺悗涓�娆″幓鏌ヨ
+ List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
+ for (Integer item : deviceUsedList) {
+ bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+ .eq(BigStorageCage::getRemainWidth, slotWidth)
+ .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+ .eq(BigStorageCage::getDeviceId, item)
+ .last("limit 1"));
+ if (null != bigStorageCage) {
+ log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板崰鐢ㄦ渶灏戞柟寮忚幏鍙栦俊鎭牸瀛愪负锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+ bigStorageDTO = new BigStorageDTO();
+ bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+ bigStorageDTO.setSlot(bigStorageCage.getSlot());
+ bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+ return bigStorageDTO;
+ }
}
- bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
- .eq(BigStorageCage::getRemainWidth, slotWidth)
- .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .ge(BigStorageCage::getMaxThickness, glassInfo.getThickness())
- .orderByAsc(BigStorageCage::getDeviceId)
- .last("limit 1"));
+
+ //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
+ List<Integer> deviceNotUsedList = bigStorageCageService.queryFreeDeviceByNotUsed(glassInfo.getThickness());
+ for (Integer item : deviceNotUsedList) {
+ bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+ .eq(BigStorageCage::getRemainWidth, slotWidth)
+ .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+ .eq(BigStorageCage::getDeviceId, item)
+ .last("limit 1"));
+ if (null != bigStorageCage) {
+ log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板墿浣欐渶澶氬緱鏂瑰紡鑾峰彇淇℃伅鐗堝浘id:{},鏍煎瓙锛歿},鐜荤拑id锛歿}", glassInfo.getTemperingLayoutId(), bigStorageCage.getSlot(), glassInfo.getGlassId());
+ bigStorageDTO = new BigStorageDTO();
+ bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+ bigStorageDTO.setSlot(bigStorageCage.getSlot());
+ bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+ return bigStorageDTO;
+ }
+ }
Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
return bigStorageDTO;
}
@@ -377,7 +389,9 @@
QueryWrapper<BigStorageCageDetails> wrapper = new QueryWrapper<>();
wrapper.select("engineer_id,tempering_layout_id,count(*) as count")
.in("state", Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL)
- .groupBy("engineer_id,tempering_layout_id");
+ .groupBy("engineer_id,tempering_layout_id")
+ .orderByAsc("engineer_id")
+ .orderByAsc("tempering_layout_id");
List<Map<String, Object>> TemperingGlass = baseMapper.selectMaps(wrapper);
return TemperingGlass;
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
index 44e8033..a255625 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -283,4 +283,14 @@
bigStorageCageWrapper.eq(BigStorageCage::getSlot, slot);
baseMapper.update(bigStorageCage, bigStorageCageWrapper);
}
+
+ @Override
+ public List<Integer> queryFreeDeviceByUsed(double thickness) {
+ return baseMapper.queryFreeDeviceByUsed(thickness);
+ }
+
+ @Override
+ public List<Integer> queryFreeDeviceByNotUsed(double thickness) {
+ return baseMapper.queryFreeDeviceByNotUsed(thickness);
+ }
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index b1a5bf5..5378df6 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -244,7 +244,7 @@
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
}
- @Scheduled(fixedDelay = 300)
+ @Scheduled(fixedDelay = 10000)
public void plcToHomeEdgOutTask() {
Date startDate = new Date();
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
@@ -271,7 +271,7 @@
.orderBy(Boolean.TRUE, sequenceOrder, TemperingGlassInfo::getTemperingFeedSequence));
if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) {
log.info("鏈夋鍦ㄥ嚭鐗囩殑閽㈠寲浠诲姟");
- computeOutGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+ computeOutMoreGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
Date endDate = new Date();
log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
return;
@@ -280,7 +280,7 @@
List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
.eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL).orderByDesc(BigStorageCageDetails::getWidth));
if (CollectionUtils.isNotEmpty(artificialList)) {
- computeOutGlassInfo(artificialList, Boolean.FALSE, mesToPLCAddress);
+ computeOutMoreGlassInfo(artificialList, Boolean.FALSE, mesToPLCAddress);
Date endDate = new Date();
log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
return;
@@ -302,7 +302,7 @@
.orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
temperingGlassInfoService.saveBatch(temperingGlassInfos);
- computeOutGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+ computeOutMoreGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
Date endDate = new Date();
log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
return;
@@ -728,10 +728,10 @@
Integer remainWidth = carWidth;
int maxX = 0;
for (T e : list) {
- if (bigStorageCageOutTaskList.size() >= outCarMaxSize || e.getWidth() > remainWidth) {
+ if (bigStorageCageOutTaskList.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
break;
}
- remainWidth = remainWidth - (int) e.getWidth() - glassGap;
+ remainWidth = remainWidth - Math.max((int) e.getWidth(), (int) e.getHeight()) - glassGap;
if (isTempering) {
int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
if (maxX + minLength <= xMaxSize) {
@@ -802,7 +802,7 @@
trainNumber = trainNumber + 1;
serialNumber = 1;
maxX = e.getXCoordinate();
- bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
+ bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1));
}
} else {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 2c93d87..be947ce 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -41,6 +41,7 @@
GROUP BY ENGINEER_ID, TEMPERING_LAYOUT_ID) T3 ON T2.ENGINEER_ID = T3.ENGINEER_ID
AND T2.TEMPERING_LAYOUT_ID = T3.TEMPERING_LAYOUT_ID
AND T2.COUNT = T3.COUNT
+ ORDER BY T2.ENGINEER_ID, T2.TEMPERING_LAYOUT_ID
</select>
<select id="queryTemperingOccupySlot" resultMap="temperingLayoutDTO">
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml
new file mode 100644
index 0000000..d9b1ce4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageMapper.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.bigstorage.mapper.BigStorageCageMapper">
+
+
+ <select id="queryFreeDeviceByUsed" resultType="java.lang.Integer">
+ SELECT T.DEVICE_ID
+ FROM BIG_STORAGE_CAGE T
+ LEFT JOIN (SELECT * FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE NOT IN (101, 200, 201)) T1
+ ON T.SLOT = T1.SLOT
+ WHERE T.MAX_THICKNESS >= #{thickness}
+ AND T.ENABLE_STATE = 1
+ GROUP BY T.DEVICE_ID
+ ORDER BY COUNT(DISTINCT T1.TEMPERING_LAYOUT_ID),
+ COUNT(DISTINCT T1.SLOT)
+ </select>
+
+ <select id="queryFreeDeviceByNotUsed" resultType="java.lang.Integer">
+ SELECT T.DEVICE_ID
+ FROM BIG_STORAGE_CAGE T
+ LEFT JOIN (SELECT * FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE NOT IN (101, 200, 201)) T1
+ ON T.SLOT = T1.SLOT
+ WHERE T.MAX_THICKNESS >= #{thickness}
+ AND T.ENABLE_STATE = 1
+ GROUP BY T.DEVICE_ID
+ ORDER BY COUNT(DISTINCT T1.TEMPERING_LAYOUT_ID),
+ COUNT(DISTINCT T.SLOT) - COUNT(DISTINCT T1.SLOT) DESC
+ </select>
+</mapper>
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
index 410a443..add927c 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
@@ -30,6 +30,16 @@
private Long id;
/**
+ * 宸ヤ綅id
+ */
+ private Integer workStationId;
+
+ /**
+ * 宸ョ▼id
+ */
+ private String engineerId;
+
+ /**
* 娴佺▼鍗″彿
*/
private String flowCardId;
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
index df92487..b39daf2 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -80,6 +80,6 @@
//鐢熸垚浠诲姟淇℃伅 骞跺悜plc鍙戦�佸嚭鐗囦换鍔�
GlassInfo glassInfo = new GlassInfo();
BeanUtils.copyProperties(details, glassInfo);
- return downLoadCacheGlassTask.initDownGlassTask(glassInfo, details.getSlot(), 3001, 2);
+ return downLoadCacheGlassTask.initDownGlassTask(glassInfo, details.getSlot(), Const.G13_WORK_STATION, 2);
}
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
index 24f9182..e8d9c20 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
@@ -33,6 +33,11 @@
private Integer deviceId;
/**
+ * 宸ョ▼鍙�
+ */
+ private String engineerId;
+
+ /**
* 鏍呮牸鍙�
*/
private Integer slot;
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
index 7e31c30..ab141ce 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -513,7 +513,7 @@
endCell = workstation.getWorkstationId();
}
//鏇存柊钀芥灦鐜荤拑鏁伴噺
- if (endCell == 7) {
+ if (endCell == Const.G13_WORK_STATION) {
downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId())
.eq("layer", downStorageCageDetails.getLayer()).setSql("other_number = other_number +1"));
} else {
@@ -526,6 +526,7 @@
BeanUtils.copyProperties(downStorageCageDetails, downGlassInfo);
//钀芥灦鐗囧簭
downGlassInfo.setSequence(downGlassInfoService.queryMaxSequence(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer()));
+ downGlassInfo.setWorkStationId(endCell);
downGlassInfoService.save(downGlassInfo);
//鐢熸垚浠诲姟淇℃伅
GlassInfo glassInfo = new GlassInfo();
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
index 0b65991..7a84902 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
@@ -1,18 +1,22 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.service.DownGlassInfoService;
import com.mes.downstorage.service.DownStorageCageService;
import com.mes.downworkstation.entity.DownWorkstation;
import com.mes.downworkstation.service.DownWorkstationService;
import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
-import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
@Slf4j
@Component
@@ -22,14 +26,16 @@
private DownWorkstationService downWorkstationService;
@Autowired
private DownStorageCageService downStorageCageService;
+ @Autowired
+ private DownGlassInfoService downGlassInfoService;
@Scheduled(fixedDelay = 2000)
public void sendDownWorkstations() {
log.info("鍙戦�佸伐浣嶇幓鐠冧俊鎭�");
JSONObject jsonObject = new JSONObject();
- List<DownWorkstation> data = downWorkstationService.getoneDownWorkstations(1,6);
- jsonObject.append("params",data);
+ List<DownWorkstation> data = downWorkstationService.getoneDownWorkstations(1, 6);
+ jsonObject.append("params", data);
log.info(jsonObject.toString());
ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unloadglass");
if (sendwServer != null) {
@@ -82,11 +88,30 @@
JSONObject jsonObject4 = new JSONObject();
List<Map<String, Object>> list=downStorageCageService.selectDownStorageCages();
jsonObject4.append("params2",list);
- log.info(jsonObject4.toString());
- ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("downcache");
+ log.info(jsonObject4.toString());
+ ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("downcache");
+ if (sendwServer4 != null) {
+ for (WebSocketServer webserver : sendwServer4) {
+ if (webserver != null && webserver.session.isOpen()) {
+ webserver.sendMessage(jsonObject4.toString());
+ }
+ }
+ }
+ }
+
+ @Scheduled(fixedDelay = 2000)
+ public void sendDownGlassInfo() {
+ log.info("鍙戦�佸綋鍓嶆鍦ㄦ墽琛屽伐绋嬪凡钀芥灦鐨勭幓鐠冧俊鎭�");
+ List<DownGlassInfo> downGlassInfos = downGlassInfoService.list(new LambdaQueryWrapper<DownGlassInfo>()
+ .inSql(DownGlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
+ Map<Integer, List<DownGlassInfo>> listMap = downGlassInfos.stream().collect(Collectors.groupingBy(DownGlassInfo::getWorkStationId));
+ JSONObject jsonObject4 = new JSONObject();
+ List<Map<String, Object>> list = downStorageCageService.selectDownStorageCages();
+ jsonObject4.append("params", listMap);
+ ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("sendDownGlass");
if (sendwServer4 != null) {
for (WebSocketServer webserver : sendwServer4) {
- if (webserver != null&&webserver.session.isOpen()) {
+ if (webserver != null && webserver.session.isOpen()) {
webserver.sendMessage(jsonObject4.toString());
}
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
index 32bca1a..f13a7b4 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
@@ -38,7 +38,7 @@
order by count desc limit 1
</select>
<select id="queryMaxSequence" resultType="java.lang.Integer">
- SELECT COALESCE(max(sequence) + 1, 0) as sequence
+ SELECT COALESCE(max(sequence) + 1, 1) as sequence
FROM down_glass_info
WHERE flow_card_id = #{flowCardId}
AND layer = #{layer}
--
Gitblit v1.8.0