From 6298f178c71f1eb95d4066ffe88d4becd6fc6bfc Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 11 七月 2024 08:34:42 +0800
Subject: [PATCH] #MES上报

---
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java |  159 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 104 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index e7a3b9d..1ee8a64 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.beust.jcommander.internal.Lists;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
@@ -31,16 +32,29 @@
 public class AgvWrkMastHandler extends AbstractHandler<String> {
 
     //鍏ュ簱绫诲瀷鏁扮粍
-    private static final int[] IN_TYPE_ARRAY = new int[1];
+    private static final List<Integer> IN_TYPE_LIST = new ArrayList<Integer>(){{
+        add(1);
+    }};
+    //private static final int[] IN_TYPE_ARRAY = {1};
     //鍑哄簱绫诲瀷鏁扮粍
-    private static final int[] OUT_TYPE_ARRAY = new int[1];
+    private static final List<Integer> OUT_TYPE_List = new ArrayList<Integer>(){{
+//        add(101);
+    }};
+    //private static final int[] OUT_TYPE_ARRAY = {101};
     //绉诲簱绫诲瀷鏁扮粍
-    private static final int[] MOVE_TYPE_ARRAY = new int[1];
+    private static final List<Integer> MOVE_TYPE_List = new ArrayList<Integer>(){{
+        add(11);add(101); add(12); add(53); add(101); add(108); add(111); add(112);
+
+
+    }};
+    //private static final int[] MOVE_TYPE_ARRAY = {11,12};
 
     @Value("${agvBasDev.maxWorkNum}")
     private int maxWrokNum;
     @Value("${mes.url}")
     private String url;
+    @Value("${mes.getTokenUrl}")
+    private String getTokenUrl;
     @Value("${mes.orderReportPath}")
     private String orderReportPath;
     @Value("${mes.pakinReportPath}")
@@ -82,6 +96,9 @@
 
     @Transactional
     public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
+        //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
+        List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+
         try{
             int wrkNo = agvWrkMast.getWrkNo();
             String barcode = agvWrkMast.getBarcode();
@@ -92,9 +109,6 @@
             } else {
                 agvBasDevp = agvWrkMast.getSourceLocNo();
             }
-
-            //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
-            List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
 
             //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
             agvWrkMast.setWrkSts(207L);
@@ -253,26 +267,28 @@
             }
 
             //涓婃姤mes
-            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
-            if(!Cools.isEmpty(param)){
-                doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
-            }
+//            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
+//            if(!Cools.isEmpty(param)){
+//                doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
+//            }
 
-            return SUCCESS;
+            //return SUCCESS;
         }catch (Exception e){
             log.error(""+e.getMessage());
         }
-        return FAIL;
+        reportMes(agvWrkMast,agvWrkDetlListOld);
+        return SUCCESS;
     }
 
 
     @Transactional
     public ReturnT<String> completedCarryWrk(AgvWrkMast agvWrkMast) {
 
-        try{
+        //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
+        List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
 
-            //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
-            List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+
+        try{
 
             Date now = new Date();
             int wrkNo = agvWrkMast.getWrkNo();
@@ -351,24 +367,24 @@
             }
 
             //涓婃姤mes
-            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
-            if(!Cools.isEmpty(param)){
-                doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
-            }
+//            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
+//            if(!Cools.isEmpty(param)){
+//                doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
+//            }
 
-            return SUCCESS;
         }catch (Exception e){
             log.error(""+e.getMessage());
         }
-        return FAIL;
+        reportMes(agvWrkMast,agvWrkDetlListOld);
+        return SUCCESS;
     }
 
     @Transactional
     public ReturnT<String> completedCarryWrk2(AgvWrkMast agvWrkMast) {
-        try{
-            //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
-            List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+        //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
+        List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
 
+        try{
             int wrkNo = agvWrkMast.getWrkNo();
             String orderNo = getOrderNoByWrkNo(wrkNo);
             String agvBasDevp = "";
@@ -406,15 +422,17 @@
                 });
             }
             //涓婃姤mes
-            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
-            if(!Cools.isEmpty(param)){
-                doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
-            }
-            return SUCCESS;
+//            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
+//            if(!Cools.isEmpty(param)){
+//                doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
+//            }
+//            reportMes(agvWrkMast,agvWrkDetlListOld);
+//            return SUCCESS;
         }catch (Exception e){
             log.error(""+e.getMessage());
         }
-        return FAIL;
+        reportMes(agvWrkMast,agvWrkDetlListOld);
+        return SUCCESS;
     }
 
     @Transactional
@@ -584,23 +602,21 @@
         return wrkMast;
     }
 
-    private Object getReportParamByIoType(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
+    private void reportMes(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
         if(Cools.isEmpty(agvWrkDetls)){
-            return null;
+            return ;
         }
         //鍖哄垎涓嶅悓浠诲姟绫诲瀷鐨勪笂鎶ユ柟寮�
 
-        if(Arrays.asList(IN_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
-
+        if(IN_TYPE_LIST.contains(agvWrkMast.getIoType())){
+            reportMesPakinOrder(agvWrkMast,agvWrkDetls);
         }
-        if(Arrays.asList(OUT_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
-
+        if(OUT_TYPE_List.contains(agvWrkMast.getIoType())){
+            reportMesPakoutOrder(agvWrkMast,agvWrkDetls);
         }
-        if(Arrays.asList(MOVE_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
-            return generateMesParam(agvWrkMast,agvWrkDetls);
+        if(MOVE_TYPE_List.contains(agvWrkMast.getIoType())){
+            generateMesParam(agvWrkMast,agvWrkDetls);
         }
-
-        return null;
     }
 
     private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
@@ -609,10 +625,10 @@
             MesPakinReportParam mesPakinReportParam = new MesPakinReportParam();
             mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
             mesPakinReportParam.setBizType("0");
-            mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode(),agvWrkDetl.getMatnr(),agvWrkMast.getLocNo()));
+            mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode().trim(),agvWrkDetl.getMatnr(),agvWrkMast.getLocNo()));
             mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
 
-            doHttpRequest(mesPakinReportParam,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
+            doHttpRequest(mesPakinReportParam,getMesTokenInfo(),"涓婃姤mes鍏ュ簱淇℃伅",url,pakinReportPath,null,"127.0.0.1");
         }
 
     }
@@ -624,15 +640,15 @@
             AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo());
             mesPakoutReportParam.setWareHouseCode(agvLocMast.getPltType().toString());
             mesPakoutReportParam.setMaterialCode(agvWrkDetl.getMatnr());
-            mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getBatch()));
+            mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getThreeCode().trim()));
             mesPakoutReportParam.setAmount(new MesPakoutReportParam.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
 
-            doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
+            doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"涓婃姤mes鍑哄簱淇℃伅",url,pakoutReportPath,null,"127.0.0.1");
 
         }
     }
 
-    private MesOrderReportParam generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
+    private void generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
 
         if(agvWrkMast.getIoType() == 53){
             String locNo = agvWrkMast.getLocNo();
@@ -644,10 +660,23 @@
 
         List<MesOrderReportParam.TransferOrderItem> transferOrderItems = new ArrayList<>();
         List<MesOrderReportParam.TransferOrderItem.InventoryDetail> inventoryDetails = new ArrayList<>();
+        List<MesOrderReportParam.RecordCustomFieldBaseCO.CustomField> customFields = new ArrayList<>();
+
+        MesOrderReportParam.RecordCustomFieldBaseCO recordCustomFieldBaseCO = new MesOrderReportParam.RecordCustomFieldBaseCO();
+        recordCustomFieldBaseCO.setCustomFields(customFields);
+        param.setRecordCustomFieldBaseCO(recordCustomFieldBaseCO);
+
         //娣诲姞transferOrderItem灞炴��
         MesOrderReportParam.TransferOrderItem transferOrderItem = new MesOrderReportParam.TransferOrderItem();
         transferOrderItem.setRemark(agvWrkDetls.get(0).getOrderNo());
-        transferOrderItem.setTargetLocationCode(agvWrkMast.getLocNo());
+        //璋冩嫧
+        if(agvWrkMast.getLocNo().contains("YZ")){
+            transferOrderItem.setTargetLocationCode(agvWrkMast.getLocNo());
+        }else {
+            //鍑哄簱榛樿浠撲綅
+            String floor = agvWrkMast.getLocNo().split("F")[1];
+            transferOrderItem.setTargetLocationCode(getTargetLocationByFloor(floor));
+        }
         transferOrderItems.add(transferOrderItem);
         transferOrderItem.setInventoryDetails(inventoryDetails);
 
@@ -656,13 +685,10 @@
         for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
             MesOrderReportParam.TransferOrderItem.InventoryDetail inventoryDetail = new MesOrderReportParam.TransferOrderItem.InventoryDetail();
             //娣诲姞amount灞炴��
-            MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount amount = new MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount();
-            amount.setAmount(agvWrkDetl.getAnfme());
-            amount.setUnitName(agvWrkDetl.getUnit());
+            MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount amount = new MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null);
             inventoryDetail.setAmount(amount);
             //娣诲姞bizKey灞炴��
-            MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey bizKey = new MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey();
-            bizKey.setBatchNo(agvWrkDetl.getThreeCode());
+            MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey bizKey = new MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey(Cools.isEmpty(agvWrkDetl.getBatch()) ? "" : agvWrkDetl.getBatch().trim());
             inventoryDetail.setBizKey(bizKey);
             //娣诲姞inventoryDetail灞炴��
             inventoryDetail.setLocationCode(agvWrkMast.getSourceLocNo());
@@ -670,9 +696,13 @@
             inventoryDetail.setQcStatus(1);
             inventoryDetail.setStorageStatus(1);
             inventoryDetails.add(inventoryDetail);
+            //娣诲姞閿�鍞鍗曞彿
+            MesOrderReportParam.RecordCustomFieldBaseCO.CustomField customField = new MesOrderReportParam.RecordCustomFieldBaseCO.CustomField("workOrderCode__c",agvWrkDetl.getThreeCode().trim());
+            customFields.add(customField);
         }
 
-        return param;
+        doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes璋冩嫧淇℃伅",url,orderReportPath,null,"127.0.0.1");
+
     }
 
     //鑾峰彇mes token淇℃伅
@@ -681,13 +711,31 @@
         param.put("appKey",appKey);
         param.put("appSecret",appSecret);
 
-        JSONObject jsonObject = doHttpRequest(param,null, "鑾峰彇MesToken", url, getTokenPath, null, "127.0.0.1");
+        JSONObject jsonObject = doHttpRequest(param,null, "鑾峰彇MesToken", getTokenUrl, getTokenPath, null, "127.0.0.1");
 
         Map<String,Object> headParam = new HashMap<>();
         headParam.put("X-AUTH",JSON.parseObject(jsonObject.get("data").toString()).get("appAccessToken").toString());
 
         return headParam;
 
+    }
+
+    //鏍规嵁妤煎眰榛樿鍑哄簱浠撲綅
+    private String getTargetLocationByFloor(String f){
+        int floor = Integer.parseInt(f);
+        if(floor == 1){
+            return "WH-000";
+        }
+
+        if(floor == 2){
+            return "WH-000";
+        }
+
+        if(floor == 3){
+            return "WH-000";
+        }
+
+        return null;
     }
 
     private JSONObject doHttpRequest(Object requestParam,Map<String,Object> headParam, String namespace, String url, String path, String appkey, String ip){
@@ -706,10 +754,10 @@
                     .doPost();
             JSONObject jsonObject = JSON.parseObject(response);
 
-            if(Cools.isEmpty(jsonObject.get("code")) && Integer.parseInt(jsonObject.get("code").toString()) != 200){
+            if(Cools.isEmpty(jsonObject.get("code")) || Integer.parseInt(jsonObject.get("code").toString()) != 200){
                 throw new CoolException(jsonObject.get("dsc").toString());
             }
-
+            success = true;
             return jsonObject;
 
 //            String succeed = jsonObject.get("succeed").toString();
@@ -736,4 +784,5 @@
         }
 
     }
+
 }

--
Gitblit v1.9.1