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