From f6789ac9f44a6b1f9d95421329bb1f0a7cd52d6d Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期五, 07 三月 2025 18:37:11 +0800 Subject: [PATCH] -换型增加物料配置 --- jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java | 109 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 73 insertions(+), 36 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 abe3e3b..395d29e 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 @@ -6,6 +6,7 @@ import java.util.concurrent.CompletableFuture; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -63,6 +64,21 @@ @Autowired private MiloService miloService; + + /** + * 鏍规嵁鎬绘垚鐮佹煡璇㈠伐鍗� + */ + @GetMapping("/getProductionOrdeOneBySfcCode") + public AjaxResult getProductionOrdeOneBySfcCode(OmProductionOrdeInfo omProductionOrdeInfo) + { + OmProductionOrdeInfo ordeInfo = omProductionOrdeInfoService.getOne(new LambdaQueryWrapper<OmProductionOrdeInfo>() + .eq(OmProductionOrdeInfo::getProductNum, omProductionOrdeInfo.getProductNum())); + if(ObjectUtil.isNotNull(ordeInfo)){ + return AjaxResult.success(ordeInfo); + }else { + return AjaxResult.error("鏈煡璇㈠埌宸ュ崟!"); + } + } /** * 鏌ヨ鐢熶骇宸ュ崟鍒楄〃 @@ -126,50 +142,71 @@ String paramProductNum = ""; Object productTypeObjcet = miloService.readFromOpcUa("MOZU1." + paramOrder.getLineCode() + ".ProductType").getValue();//浜у搧绫诲瀷 if (ObjectUtil.isNull(productTypeObjcet)) { - return AjaxResult.error("鎺ュ崟澶辫触,PLC鏈紶杈撶敓浜х被鍨嬶紝璇疯仈绯荤鐞嗗憳"); + return AjaxResult.error("鎺ュ崟澶辫触,PLC鏈紶杈撶敓浜х被鍨嬶紝璇疯仈绯荤鐞嗗憳!"); } + String productType = productTypeObjcet.toString();//浜у搧绫诲瀷 String materialCode = Constants.materialMap.get(productType); - OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder(); - String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "M1OP100",materialCode); - 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.isEmpty()){ - 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.setPlanQty(Long.valueOf(dataObject.getStr("plannedQuantity"))); - 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() + ".WorkOrderNumber").value(dataObject.getStr("productionOrderNum")).build()); - miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".ModuleCode").value(dataObject.getStr("productNum")).build()); - } catch (Exception e) { - throw new RuntimeException(e); + //鍏堟煡璇㈣〃涓槸鍚︽湁鍓╀綑宸ュ崟 + List<OmProductionOrdeInfo> orderList = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>() + .eq(OmProductionOrdeInfo::getOrderStatus, Constants.ONE) + .eq(OmProductionOrdeInfo::getStationCode,paramOrder.getLineCode())//宸ヤ綅 + .eq(OmProductionOrdeInfo::getProductCode,materialCode));//浜у搧绫诲瀷 + if (CollUtil.isNotEmpty(orderList)){ + Long id = orderList.get(0).getId(); + String productNum = orderList.get(0).getProductNum();//妯$粍鐮� + String orderNum = orderList.get(0).getWorkOrderNo(); + + paramProductNum = productNum; + //涓嬪彂浜у搧妯$粍鐮� + miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".WorkOrderNumber").value(orderNum).build()); + miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".ModuleCode").value(productNum).build()); + + }else{ + OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder(); + String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "M1OP100",materialCode); + 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.isEmpty()){ + 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(paramOrder.getLineCode());//宸ヤ綅 + omProductionOrdeInfo.setProductCode(dataObject.getStr("materialCode")); + omProductionOrdeInfo.setPlanQty(Long.valueOf(dataObject.getStr("plannedQuantity"))); + omProductionOrdeInfo.setOnlineCompletionMark("0"); + omProductionOrdeInfo.setSfResult("0"); + omProductionOrdeInfo.setProductModel(dataObject.getStr("model")); + omProductionOrdeInfo.setCreateTime(new Date()); + omProductionOrdeInfo.setCreateUser("宸ュ巶MES"); + omProductionOrdeInfoService.save(omProductionOrdeInfo); + + paramProductNum = dataObject.getStr("productNum"); + //鍐橮LC + miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".WorkOrderNumber").value(dataObject.getStr("productionOrderNum")).build()); + miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".ModuleCode").value(dataObject.getStr("productNum")).build()); + } catch (Exception e) { + throw new RuntimeException(e); + } + }else{ + return AjaxResult.error("宸ュ崟閲嶅,璇烽噸鏂版帴鏀�"); } - }else{ - return AjaxResult.error("宸ュ崟閲嶅,璇烽噸鏂版帴鏀�"); + }else { + return AjaxResult.error("鎺ュ崟澶辫触,璇疯仈绯荤鐞嗗憳"); } - }else { - return AjaxResult.error("鎺ュ崟澶辫触,璇疯仈绯荤鐞嗗憳"); } - return AjaxResult.success(dataObject.getStr("productNum")); + + return AjaxResult.success(paramProductNum); } @GetMapping(value = "/jieBang/{id}") -- Gitblit v1.9.3