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); // 从JSONObject中获取data对象 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); // 从JSONObject中获取data对象 JSONObject dataObject = jsonObject.getJSONObject("data"); String code = jsonObject.getStr("code"); // 判断接单是否成功 if(code.equals("success")){ logger.info("请求工厂MES工单:入参pack{}出参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工单:入参pack{}出参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); //写PLC 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) { 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(); } 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(); } 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(); } } 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); // 从JSONObject中获取data对象 JSONObject dataObject = jsonObject.getJSONObject("data"); 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(() -> { 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> 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', 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, 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, 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 } }; },