From 22c9e099d5e333e3c30316028cc2193db421e7c5 Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期四, 04 七月 2024 16:16:09 +0800 Subject: [PATCH] 优化请求最后一条工单的方法 工位终端新增接收工单按钮 --- jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java | 1 jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue | 4 jcdm-main/src/main/java/com/jcdm/main/restful/qingYan/service/ExternalInterface.java | 60 ++++++++++---- jcdm-ui/src/views/main/kb/heatingFilmTerminal/index.vue | 2 jcdm-ui/src/api/main/om/productionOrde/productionOrde.js | 8 ++ jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java | 5 + jcdm-ui/src/views/main/kb/stationTerminal/index.vue | 36 +++++++- jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/mapper/OmProductionOrdeInfoMapper.java | 2 jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java | 54 ++++++++++++- jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java | 7 - jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml | 4 + 11 files changed, 145 insertions(+), 38 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java index 46ff5d3..85f9e6c 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java +++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java @@ -12,11 +12,14 @@ import com.jcdm.common.core.domain.model.LoginUser; import com.jcdm.common.utils.ServletUtils; import com.jcdm.common.utils.StringUtils; +import com.jcdm.framework.websocket.WebSocketUsers; import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo; import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfoExcelImport; import com.jcdm.main.om.productionOrde.mapper.OmProductionOrdeInfoMapper; import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService; import com.jcdm.main.restful.factoryMes.service.RestfulService; +import com.kangaroohy.milo.model.ReadWriteEntity; +import com.kangaroohy.milo.service.MiloService; import lombok.extern.slf4j.Slf4j; import org.aspectj.weaver.loadtime.Aj; import org.slf4j.Logger; @@ -54,6 +57,9 @@ @Autowired private IOmProductionOrdeInfoService omProductionOrdeInfoService; + + @Autowired + private MiloService miloService; /** * 鏌ヨ鐢熶骇宸ュ崟鍒楄〃 @@ -117,11 +123,8 @@ { String paramProductNum = ""; // 鏌ヨ鏈�鏂扮殑宸ュ崟淇℃伅 - List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().orderByAsc(OmProductionOrdeInfo::getCreateTime)); - if(list.size() > 0){ - paramProductNum = list.get(list.size()-1).getProductNum(); - } - String orderJsonString = RestfulService.getProductionWorkOrderRequest(paramProductNum, "OP230"); + OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder(); + String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "OP230"); JSONObject jsonObject = new JSONObject(orderJsonString); // 浠嶫SONObject涓幏鍙杁ata瀵硅薄 JSONObject dataObject = jsonObject.getJSONObject("data"); @@ -153,6 +156,47 @@ return AjaxResult.success(dataObject.getStr("productNum")); } + @GetMapping("/mozuReceivingWorkOrders") + public AjaxResult mozuReceivingWorkOrders(OmProductionOrdeInfo paramOrder) + { + String paramProductNum = ""; + OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder(); + String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "OP230"); + JSONObject jsonObject = new JSONObject(orderJsonString); + // 浠嶫SONObject涓幏鍙杁ata瀵硅薄 + JSONObject dataObject = jsonObject.getJSONObject("data"); + String code = jsonObject.getStr("code"); + // 鍒ゆ柇鎺ュ崟鏄惁鎴愬姛 + if(code.equals("success")){ + logger.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俻ack{}鍑哄弬pack锛歿}",paramProductNum,dataObject.getStr("productNum")); + List<OmProductionOrdeInfo> check = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum,dataObject.getStr("productNum"))); + if(check.size() == 0){ + try { + log.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俻ack{}鍑哄弬pack锛歿}", paramProductNum, dataObject.getStr("productNum")); + OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo(); + omProductionOrdeInfo.setWorkOrderNo(dataObject.getStr("productionOrderNum")); + omProductionOrdeInfo.setProductNum(dataObject.getStr("productNum")); + omProductionOrdeInfo.setStationCode(dataObject.getStr("stationCode")); + omProductionOrdeInfo.setMaterialCode(dataObject.getStr("materialCode")); + omProductionOrdeInfo.setOnlineCompletionMark("0"); + omProductionOrdeInfo.setSfResult("0"); + omProductionOrdeInfo.setProductCode(dataObject.getStr("model")); + omProductionOrdeInfo.setCreateTime(new Date()); + omProductionOrdeInfo.setCreateUser("宸ュ巶MES"); + omProductionOrdeInfoService.save(omProductionOrdeInfo); + //鍐橮LC + miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".MES_WorkOrderNumber").value(dataObject.getStr("productionOrderNum")).build()); + miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".MES_ModuleCode").value(dataObject.getStr("productNum")).build()); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + }else { + return AjaxResult.error("鎺ュ崟澶辫触,璇疯仈绯荤鐞嗗憳"); + } + return AjaxResult.success(dataObject.getStr("productNum")); + } + @GetMapping(value = "/jieBang/{id}") public AjaxResult jieBang(@PathVariable("id") Long id) { diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/mapper/OmProductionOrdeInfoMapper.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/mapper/OmProductionOrdeInfoMapper.java index f5e07cb..03f128f 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/mapper/OmProductionOrdeInfoMapper.java +++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/mapper/OmProductionOrdeInfoMapper.java @@ -62,4 +62,6 @@ public int deleteOmProductionOrdeInfoByIds(Long[] ids); public Integer getMaxStreamNumber(); + + OmProductionOrdeInfo getLastOrder(); } diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java index 12de657..fd63111 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java +++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java @@ -80,4 +80,5 @@ void updateOrderByProductNum(String status,String productNum,String stationCode); + OmProductionOrdeInfo getLastOrder(); } diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java index 9488546..1755751 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java +++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java @@ -235,4 +235,9 @@ OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo(); omProductionOrdeInfoService.update(omProductionOrdeInfo,updateWrapper); } + + @Override + public OmProductionOrdeInfo getLastOrder() { + return omProductionOrdeInfoMapper.getLastOrder(); + } } diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java index 81667a1..2109818 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java +++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java @@ -239,11 +239,8 @@ String paramProductNum = ""; try { // 鏌ヨ鏈�鏂扮殑宸ュ崟淇℃伅 - List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().orderByAsc(OmProductionOrdeInfo::getCreateTime)); - if(list.size() > 0){ - paramProductNum = list.get(list.size()-1).getProductNum(); - } - String orderJsonString = RestfulService.getProductionWorkOrderRequest(paramProductNum, "OP230"); + OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder(); + String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "OP230"); JSONObject jsonObject = new JSONObject(orderJsonString); // 浠嶫SONObject涓幏鍙杁ata瀵硅薄 JSONObject dataObject = jsonObject.getJSONObject("data"); diff --git a/jcdm-main/src/main/java/com/jcdm/main/restful/qingYan/service/ExternalInterface.java b/jcdm-main/src/main/java/com/jcdm/main/restful/qingYan/service/ExternalInterface.java index 4a0ad55..ac1b176 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/restful/qingYan/service/ExternalInterface.java +++ b/jcdm-main/src/main/java/com/jcdm/main/restful/qingYan/service/ExternalInterface.java @@ -170,7 +170,12 @@ @PostMapping("/sendWebSocket") public void sendWebSocket(@RequestBody BsFormulaChildInfo bsFormulaChildInfo) { - WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), bsFormulaChildInfo.getResults()); + CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { + logger.info("鎺ユ敹鐢佃姱寮�濮嬫墽琛屽紓姝ユ柟娉�"); + WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), bsFormulaChildInfo.getResults()); + logger.info("鎺ユ敹鐢佃姱寮傛鏂规硶鎵ц缁撴潫"); + }); +// WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), bsFormulaChildInfo.getResults()); } /** @@ -188,23 +193,42 @@ String cellCheckListString = jsonNode.path("cellCheckList").toString(); JsonNode cellCheckListNode = objectMapper.readValue(cellCheckListString, JsonNode.class); for (JsonNode checkNode : cellCheckListNode) { - DaCellData daCellData = new DaCellData(); - daCellData.setSiteCode(jsonObject.getStr("siteCode")); - daCellData.setModuleSerial(jsonObject.getStr("moduleSerial")); - daCellData.setModuleModel(jsonObject.getStr("moduleModel")); - daCellData.setAbModule(jsonObject.getStr("ABModule")); - daCellData.setPackageNo(jsonObject.getStr("packageNo")); - daCellData.setSupplierModuleBarcode(jsonObject.getStr("supplierModuleBarcode")); - daCellData.setCustomerModuleBarcode(jsonObject.getStr("customerModuleBarcode")); - daCellData.setCellSerial(jsonNode.path("cellSerial").toString().replaceAll("\"", "")); - daCellData.setCellModel(jsonNode.path("cellModel").toString().replaceAll("\"", "")); - daCellData.setGbCellCode(jsonNode.path("GBCellCode").toString().replaceAll("\"", "")); - daCellData.setGbModuleCode(jsonNode.path("GBModuleCode").toString().replaceAll("\"", "")); - daCellData.setCellItem(checkNode.path("cellItem").toString().replaceAll("\"", "")); - daCellData.setCellValue(checkNode.path("cellValue").toString().replaceAll("\"", "")); - daCellData.setCreateUser("宸ュ巶MES"); - daCellData.setCreateTime(new Date()); - daCellDataList.add(daCellData); + if(checkNode.path("cellItem").toString().replaceAll("\"", "").equals("鐢佃姱鎸′綅")){ + DaCellData daCellData = new DaCellData(); + daCellData.setSiteCode(jsonObject.getStr("siteCode")); + daCellData.setModuleSerial(jsonObject.getStr("moduleSerial")); + daCellData.setModuleModel(jsonObject.getStr("moduleModel")); + daCellData.setAbModule(jsonObject.getStr("ABModule")); + daCellData.setPackageNo(jsonObject.getStr("packageNo")); + daCellData.setSupplierModuleBarcode(jsonObject.getStr("supplierModuleBarcode")); + daCellData.setCustomerModuleBarcode(jsonObject.getStr("customerModuleBarcode")); + daCellData.setCellSerial(jsonNode.path("cellSerial").toString().replaceAll("\"", "")); + daCellData.setCellModel(jsonNode.path("cellModel").toString().replaceAll("\"", "")); + daCellData.setGbCellCode(jsonNode.path("GBCellCode").toString().replaceAll("\"", "")); + daCellData.setGbModuleCode(jsonNode.path("GBModuleCode").toString().replaceAll("\"", "")); + daCellData.setCellItem(checkNode.path("cellItem").toString().replaceAll("\"", "")); + daCellData.setCellValue(checkNode.path("cellValue").toString().replaceAll("\"", "")); + daCellData.setCreateUser("宸ュ巶MES"); + daCellData.setCreateTime(new Date()); + daCellDataList.add(daCellData); + } +// DaCellData daCellData = new DaCellData(); +// daCellData.setSiteCode(jsonObject.getStr("siteCode")); +// daCellData.setModuleSerial(jsonObject.getStr("moduleSerial")); +// daCellData.setModuleModel(jsonObject.getStr("moduleModel")); +// daCellData.setAbModule(jsonObject.getStr("ABModule")); +// daCellData.setPackageNo(jsonObject.getStr("packageNo")); +// daCellData.setSupplierModuleBarcode(jsonObject.getStr("supplierModuleBarcode")); +// daCellData.setCustomerModuleBarcode(jsonObject.getStr("customerModuleBarcode")); +// daCellData.setCellSerial(jsonNode.path("cellSerial").toString().replaceAll("\"", "")); +// daCellData.setCellModel(jsonNode.path("cellModel").toString().replaceAll("\"", "")); +// daCellData.setGbCellCode(jsonNode.path("GBCellCode").toString().replaceAll("\"", "")); +// daCellData.setGbModuleCode(jsonNode.path("GBModuleCode").toString().replaceAll("\"", "")); +// daCellData.setCellItem(checkNode.path("cellItem").toString().replaceAll("\"", "")); +// daCellData.setCellValue(checkNode.path("cellValue").toString().replaceAll("\"", "")); +// daCellData.setCreateUser("宸ュ巶MES"); +// daCellData.setCreateTime(new Date()); +// daCellDataList.add(daCellData); } } CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { diff --git a/jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml b/jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml index efc2d79..7e77647 100644 --- a/jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml +++ b/jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml @@ -258,4 +258,8 @@ <select id="getMaxStreamNumber" resultType="Integer"> SELECT MAX(stream_number) AS streamNumber FROM om_production_orde_info </select> + + <select id="getLastOrder" resultMap="OmProductionOrdeInfoResult"> + select top 1 * from om_production_orde_info order by id desc + </select> </mapper> \ No newline at end of file diff --git a/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js b/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js index bfbf89b..c773566 100644 --- a/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js +++ b/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js @@ -44,6 +44,14 @@ }) } +export function mozuReceivingWorkOrders(query) { + return request({ + url: '/om/productionOrde/mozuReceivingWorkOrders', + method: 'get', + params: query + }) +} + export function importTemplate() { return request({ url: '/om/productionOrde/importTemplate', diff --git a/jcdm-ui/src/views/main/kb/heatingFilmTerminal/index.vue b/jcdm-ui/src/views/main/kb/heatingFilmTerminal/index.vue index d9276f0..3c618ce 100644 --- a/jcdm-ui/src/views/main/kb/heatingFilmTerminal/index.vue +++ b/jcdm-ui/src/views/main/kb/heatingFilmTerminal/index.vue @@ -331,7 +331,7 @@ }, content: '', activeName: 'first', - url: "ws://192.168.2.76:8080/websocket/message/", + url: "ws://192.168.10.100:8080/websocket/message/", message: "", text_content: "", ws: null, diff --git a/jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue b/jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue index 8aeedb5..1c237d2 100644 --- a/jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue +++ b/jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue @@ -261,8 +261,8 @@ }, content: '', activeName: 'first', - url: "ws://10.103.210.248:8080/websocket/message/", - // url: "ws://192.168.2.76:8080/websocket/message/", + // url: "ws://10.103.210.248:8080/websocket/message/", + url: "ws://192.168.10.100:8080/websocket/message/", message: "", text_content: "", ws: null, diff --git a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue index e55811e..99bdc1e 100644 --- a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue +++ b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue @@ -86,11 +86,9 @@ <span style="display: none">{{cakeLamp.release}}</span> <span> 鍏佽鏀捐</span> </el-col> - </el-row> - <el-row v-show="showInput" style="margin-top: 20px"> - <el-col></el-col> - <span style="width: 130px;" class="head-font">棰勮鎬绘垚鍙� : {{headContent.yzSfcCode}}</span> + <el-row v-show="orderFlag" style="margin-top: 20px"> + <el-button @click="getWorkOrders" type="warning" size="mini">鎺ユ敹宸ュ崟</el-button> </el-row> <!-- <el-row v-show="showInput" style="margin-top: 20px">--> <!-- <el-button @click="bindYzSfc" type="primary">缁戝畾</el-button>--> @@ -322,7 +320,7 @@ bindYzSfcFlag, checkCarCode, checkYzSfcCode, findBytrolleyYardGetOne, - listProductionOrde, + listProductionOrde, mozuReceivingWorkOrders, receivingWorkOrders, trolleyYardBinDing } from "@/api/main/om/productionOrde/productionOrde"; @@ -334,6 +332,7 @@ saveCampaignTimeParameters, replaceAssemblyCode, checkRecordDataDone, } from "@/api/main/da/paramCollection/paramCollection"; +import {addFormula} from "@/api/main/bs/formula/formula"; export default { name: "stationTerminal", @@ -392,7 +391,7 @@ content: '', activeName: 'first', url: "ws://10.103.210.248:8080/websocket/message/", - // url: "ws://192.168.2.76:8080/websocket/message/", + // url: "ws://192.168.10.100:8080/websocket/message/", message: "", text_content: "", ws: null, @@ -423,6 +422,7 @@ originalArray: [], yzSfcFlag: 1, endYz: false, + orderFlag: true } }, beforeDestroy() { @@ -459,6 +459,23 @@ }, }, methods: { + getWorkOrders(){ + if(this.headContent.sfcCode === '' || this.headContent.sfcCode === null){ + //鎺ユ敹宸ュ崟 + const param = { + lineCode: this.headContent.processesCode + } + mozuReceivingWorkOrders(param).then(response => { + this.headContent.sfcCode = response.msg; + this.queryParams.productNum = response.msg; + this.getList() + this.cakeLamp.scanFinish = 1 + this.cakeLamp.startWork = 1 + }); + }else { + this.$message.error("宸茬粡鏈夊伐鍗曚簡锛屼笉鑳芥帴鏀讹紒"); + } + }, bindcardCode(scanValue){ // this.$message('缁戝畾鎴愬姛锛�'); let param = { @@ -804,7 +821,12 @@ }); } }else if(event.data.includes("productNum")){ - self.headContent.sfcCode = event.data.split(',')[1]; + let productNum = event.data.split(',')[1]; + self.headContent.sfcCode = productNum; + self.queryParams.productNum = productNum; + self.getList() + self.cakeLamp.scanFinish = 1 + self.cakeLamp.startWork = 1 } }; }, -- Gitblit v1.9.3