From 6a53e63fa18c97232420ab58163a9b79fbb5a228 Mon Sep 17 00:00:00 2001
From: cl <418351270@qq.com>
Date: 星期四, 25 七月 2024 18:27:05 +0800
Subject: [PATCH] 1、100工位报工前,先将工单状态改为3执行中 2、手动接收工单,修改为先查表中是否有剩余工单, 3、OP030电芯检测放开 4、接收工单时,将两个工位区分开存工单

---
 jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java |  137 ++++++++++++++++++++-------------------------
 1 files changed, 60 insertions(+), 77 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 4fb3487..4ee78c6 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;
@@ -121,94 +122,76 @@
         util.exportExcel(response, list, "鐢熶骇宸ュ崟鏁版嵁");
     }
 
-    @GetMapping("/receivingWorkOrders")
-    public AjaxResult receivingWorkOrders() throws Exception {
-        String paramProductNum = "";
-        Object productTypeObjcet = miloService.readFromOpcUa("thoroughfare" + "." + "device" + ".ProductType").getValue();//浜у搧绫诲瀷
-        if (ObjectUtil.isNull(productTypeObjcet)) {
-            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.size() == 0){
-                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");
-                if(dataObject.getStr("model").equals("PE01A")){
-                    omProductionOrdeInfo.setProductCode("1P102S");
-                }else {
-                    omProductionOrdeInfo.setProductCode(dataObject.getStr("model"));
-                }
-                omProductionOrdeInfo.setCreateTime(new Date());
-                omProductionOrdeInfo.setCreateUser("宸ュ巶MES");
-                omProductionOrdeInfoService.save(omProductionOrdeInfo);
-            }
-        }else {
-            return AjaxResult.error("鎺ュ崟澶辫触,璇疯仈绯荤鐞嗗憳");
-        }
-        return AjaxResult.success(dataObject.getStr("productNum"));
-    }
-
     @GetMapping("/mozuReceivingWorkOrders")
     public AjaxResult mozuReceivingWorkOrders(OmProductionOrdeInfo paramOrder) throws Exception {
         String paramProductNum = "";
-        Object productTypeObjcet = miloService.readFromOpcUa("thoroughfare" + "." + "device" + ".ProductType").getValue();//浜у搧绫诲瀷
+        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.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);
+
+        //鍏堟煡璇㈣〃涓槸鍚︽湁鍓╀綑宸ュ崟
+        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("鎺ュ崟澶辫触,璇疯仈绯荤鐞嗗憳");
         }
-        return AjaxResult.success(dataObject.getStr("productNum"));
+
+        return AjaxResult.success(paramProductNum);
     }
 
     @GetMapping(value = "/jieBang/{id}")

--
Gitblit v1.9.3