From ddf2c28b00b38469c9119dcad42d986f849bc62d Mon Sep 17 00:00:00 2001
From: cl <418351270@qq.com>
Date: 星期日, 21 七月 2024 09:53:51 +0800
Subject: [PATCH] 添加电芯挡位校验

---
 jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java |   65 +++++++++++++++++++++-----------
 1 files changed, 42 insertions(+), 23 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..93ac1dd 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
@@ -3,8 +3,10 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.concurrent.CompletableFuture;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -12,11 +14,15 @@
 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.constant.Constants;
 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 +60,9 @@
 
     @Autowired
     private IOmProductionOrdeInfoService omProductionOrdeInfoService;
+
+    @Autowired
+    private MiloService miloService;
 
     /**
      * 鏌ヨ鐢熶骇宸ュ崟鍒楄〃
@@ -112,16 +121,18 @@
         util.exportExcel(response, list, "鐢熶骇宸ュ崟鏁版嵁");
     }
 
-    @GetMapping("/receivingWorkOrders")
-    public AjaxResult receivingWorkOrders()
-    {
+    @GetMapping("/mozuReceivingWorkOrders")
+    public AjaxResult mozuReceivingWorkOrders(OmProductionOrdeInfo paramOrder) throws Exception {
         String paramProductNum = "";
-        // 鏌ヨ鏈�鏂扮殑宸ュ崟淇℃伅
-        List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().orderByAsc(OmProductionOrdeInfo::getCreateTime));
-        if(list.size() > 0){
-            paramProductNum = list.get(list.size()-1).getProductNum();
+        Object productTypeObjcet = miloService.readFromOpcUa("MOZU1." + paramOrder.getLineCode() + ".ProductType").getValue();//浜у搧绫诲瀷
+        if (ObjectUtil.isNull(productTypeObjcet)) {
+            return AjaxResult.error("鎺ュ崟澶辫触,PLC鏈紶杈撶敓浜х被鍨嬶紝璇疯仈绯荤鐞嗗憳!");
         }
-        String orderJsonString = RestfulService.getProductionWorkOrderRequest(paramProductNum, "OP230");
+        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");
@@ -130,22 +141,30 @@
         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"));
+            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.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);
+
+                    //鍐橮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);
                 }
-                omProductionOrdeInfo.setCreateTime(new Date());
-                omProductionOrdeInfo.setCreateUser("宸ュ巶MES");
-                omProductionOrdeInfoService.save(omProductionOrdeInfo);
+            }else{
+                return AjaxResult.error("宸ュ崟閲嶅,璇烽噸鏂版帴鏀�");
             }
         }else {
             return AjaxResult.error("鎺ュ崟澶辫触,璇疯仈绯荤鐞嗗憳");

--
Gitblit v1.9.3