UI-Project/config.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/utils/WebSocketService.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/utils/constants.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/Caching/cachingun.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
UI-Project/config.js
@@ -1,7 +1,10 @@ export default { serverUrl: "10.153.19.150:88/api", // serverUrl: "10.153.19.150:88/api", // serverUrl: "192.168.1.199:88/api", serverUrl2: "10.153.19.150:88" serverUrl: "127.0.0.1:88/api", // serverUrl2: "10.153.19.150:88" // serverUrl2: "192.168.1.199:88" serverUrl2: "127.0.0.1:88" //serverUrl:"res.abeim.cn" } UI-Project/src/utils/WebSocketService.js
@@ -1,4 +1,5 @@ // WebSocketService.js let socket = null; export const initializeWebSocket = (socketUrl, messageHandler) => { let messages='' ; @@ -6,10 +7,13 @@ 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; @@ -21,14 +25,23 @@ messages= messages.replace('<END>', ''); const obj = JSON.parse(messages); messages=''; // 调用消息处理函数,将数据传递给 Vue 组件 if (messageHandler) { messageHandler(obj); } } }; return socket; }; export const closeWebSocket = (socket) => { if (socket && socket.readyState === WebSocket.OPEN) { socket.close(); UI-Project/src/utils/constants.js
@@ -1,3 +1,4 @@ // export const WebSocketHost = "192.168.1.199"; export const WebSocketHost = "10.153.19.150"; // export const WebSocketHost = "10.153.19.150"; export const WebSocketHost = "127.0.0.1"; export const host = "88"; UI-Project/src/views/Caching/cachingun.vue
@@ -210,11 +210,10 @@ // 定义消息处理函数,更新 receivedData 变量 const handleMessage = (data) => { // 更新 tableData 的数据 tableData.value = data.params2[0] // tableData.splice(0, tableData.length, ...data.params2[0]); tableData.splice(0, tableData.length, ...data.params[0]); // tableData.value = data.params[0] // adjustedRects.value = data.EdgStorageCageinfos[0] adjustedRects.value = data.params2[0].map(rect => ({ adjustedRects.value = data.params[0].map(rect => ({ ...rect, // 复制原始对象的其他属性 width: rect.width * 0.5 , id: rect.id * 10, UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -15,6 +15,7 @@ import { WebSocketHost ,host} from '@/utils/constants' const dialogFormVisiblea = ref(false) const dialogFormVisiblea2 = ref(false) const dialogFormVisibleaDownGlass = ref(false) // 数据 const loading = ref(false); // 弹框显示控制 @@ -25,6 +26,7 @@ const flowCardId = ref(''); const flowCardOptions = ref('[]'); const tableData = reactive([]); const downGlass= ref([]); // 方法 const handleSelectionChange = () => { // 处理表格行选择事件 @@ -144,7 +146,13 @@ // 定义消息处理函数,更新 receivedData 变量 const handleMessage = (data) => { // 更新 tableData 的数据 tableData.splice(0, tableData.length, ...data.params[0]); if(data.sendDownGlass!=null){ downGlass.value=data.sendDownGlass[0][1]; console.log(downGlass.value); console.log(tableData.value); } // tableData.splice(0, tableData.length, ...data.params[0]); // console.log("更新后数据", data.params[0]); }; // 初始化 WebSocket,并传递消息处理函数 @@ -208,6 +216,7 @@ </script> <template> <div> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisibleaDownGlass = true">落架详情</el-button> <el-card style="flex: 1;" v-loading="loading"> <el-card style="flex: 1;margin-left: 4px;margin-top: 1px;" v-loading="loading"> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> @@ -230,7 +239,6 @@ prop="enableState" > <template #default="scope"> <el-tag :type="getTagType(scope.row.enableState)" @click="toggleStatus(scope.row)"> {{ scope.row.enableState === 1 ? $t('reportWork.enable') : $t('reportWork.unenable') }} </el-tag> @@ -241,9 +249,29 @@ <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '已启用' " @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}</el-button> <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear') }}</el-button> </template> </el-table-column> </el-table> </div> <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%" :title="$t('searchOrder.cageinformation')"> <el-table height="200px" ref="table" @selection-change="handleSelectionChange" :data="downGlass" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="workStationId" align="center" :label="$t('工位号')" min-width="80" /> <el-table-column prop="engineerId" align="center" :label="$t('工程号')" min-width="80" /> <el-table-column prop="flowCardId" align="center" :label="$t('流程卡号')" min-width="80" /> <el-table-column prop="layer" align="center" :label="$t('层')" min-width="120" /> <el-table-column prop="sequence" align="center" :label="$t('顺序')" min-width="150" /> <el-table-column prop="width" align="center" :label="$t('宽')" min-width="120" /> <el-table-column prop="height" align="center" :label="$t('高')" min-width="120" /> <el-table-column prop="Filmsid" align="center" :label="$t('膜系')" min-width="120" /> <el-table-column prop="thickness" align="center" label="厚度" min-width="120" /> <el-table-column prop="glassId" align="center" :label="$t('玻璃id')" min-width="120" /> </el-table> </el-dialog> </el-card> <!-- workstationId: '1', workstationId: '1005', @@ -260,6 +288,7 @@ </div> </div> </el-card> </div> <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')"> @@ -279,6 +308,7 @@ </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="handleConfirm"> {{ $t('reportWork.sure') }} </el-button> hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -174,20 +174,23 @@ //查询玻璃并进行交换 GlassInfo glassInfo = queryAndChangeGlass(glassId); log.info("3、将玻璃信息插入卧式理片笼,当前玻璃信息:{}", glassInfo); if (glassInfo == null) { return; } log.info("4、将玻璃信息插入卧式理片笼,当前玻璃信息:{}", glassInfo); EdgStorageCageDetails details = new EdgStorageCageDetails(); BeanUtils.copyProperties(glassInfo, details); details.setState(Const.GLASS_STATE_IN); details.setSlot(nearestEmpty.getSlot()); details.setDeviceId(nearestEmpty.getDeviceId()); edgStorageCageDetailsService.save(details); log.info("4、玻璃信息已存入理片笼详情表,玻璃信息为{}", details); log.info("5、玻璃信息已存入理片笼详情表,玻璃信息为{}", details); //添加进片任务 boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN); log.info("5、生成进片任务信息存入任务表是否完成:{}", taskCache); log.info("6、生成进片任务信息存入任务表是否完成:{}", taskCache); S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1); log.info("6、发送确认字完成"); log.info("7、发送确认字完成"); } @@ -202,6 +205,10 @@ GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); // .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1")); Assert.isFalse(null == glassInfo, "玻璃信息不存在"); if ((glassInfo.getWidth() < Double.parseDouble(minTwoFirstLength) && glassInfo.getHeight() < Double.parseDouble(minTwoSecondLength)) || (glassInfo.getWidth() < Double.parseDouble(minTwoSecondLength) && glassInfo.getHeight() < Double.parseDouble(minTwoFirstLength))) { log.info("3、玻璃信息不符合进入理片笼最小尺寸,玻璃信息为{}", glassInfo); return null; } //按照玻璃尺寸 LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>() .eq(GlassInfo::getWidth, glassInfo.getWidth()) hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -43,7 +43,7 @@ * fixedDelay : 上一个调用结束后再次调用的延时 */ @Scheduled(fixedDelay = 300) @Scheduled(fixedDelay = 30000) public void plcLoadGlassTask() throws InterruptedException { try { //获取联机状态 @@ -87,7 +87,7 @@ } } @Scheduled(fixedDelay = 300) @Scheduled(fixedDelay = 30000) public void plcLoadGlassReport() { //获取是否有汇报 String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue(); @@ -152,8 +152,8 @@ public void loadGlassStatus() { JSONObject jsonObject = new JSONObject(); //正在进行的任务 String inkageStatus =plcParameterObject.getPlcParameter("InkageStatus").getValue(); // String inkageStatus ="1"; // String inkageStatus =plcParameterObject.getPlcParameter("InkageStatus").getValue(); String inkageStatus ="1"; jsonObject.append("InkageStatus", inkageStatus); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlass"); if (sendwServer != null) { @@ -175,7 +175,7 @@ }else { jsonObject.append("engineering", "0"); } ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("IsRun"); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlassIsRun"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { if (webserver != null) { hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
@@ -76,7 +76,7 @@ //正在进行的任务 List<TemperingGlassInfo>temperingTaskType=temperingAgoService.selectTaskType(); jsonObject.append("temperingTaskType", temperingTaskType); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun"); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("temperingIsRun"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { if (webserver != null) {