From 2b3519929a06019633e04ee9abb0c6ef8bba358f Mon Sep 17 00:00:00 2001
From: zhangchao <zc857179121@qq.com>
Date: 星期三, 23 十月 2024 11:06:47 +0800
Subject: [PATCH] 测试环境暂时注释

---
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java |  836 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 689 insertions(+), 147 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 7979ca5..9f9b11b 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -1,14 +1,20 @@
 package com.zy.asrs.task.handler;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.MesBuyPakinReportParam;
+import com.zy.asrs.entity.param.MesOrderReportParam;
+import com.zy.asrs.entity.param.MesPakinReportParam;
+import com.zy.asrs.entity.param.MesPakoutReportParam;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.utils.HttpHandler;
 import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,16 +23,52 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Slf4j
 @Service
 public class AgvWrkMastHandler extends AbstractHandler<String> {
 
+    //鍏ュ簱绫诲瀷鏁扮粍
+    private static final List<Integer> IN_TYPE_LIST = new ArrayList<Integer>(){{
+        add(1);
+    }};
+    //private static final int[] IN_TYPE_ARRAY = {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 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}")
+    private String pakinReportPath;
+    @Value("${mes.buyPakinReportPath}")
+    private String buyPakinReportPath;
+    @Value("${mes.pakoutReportPath}")
+    private String pakoutReportPath;
+    @Value("${mes.getTokenPath}")
+    private String getTokenPath;
+    @Value("${mes.appKey}")
+    private String appKey;
+    @Value("${mes.appSecret}")
+    private String appSecret;
+
 
     @Autowired
     private AgvWrkMastService agvWrkMastService;
@@ -50,158 +92,382 @@
     private AgvBasDevpService agvBasDevpService;
     @Autowired
     private AgvWorkService agvWorkService;
+    @Autowired
+    private ApiLogService apiLogService;
+    @Autowired
+    private DocTypeService docTypeService;
+    @Autowired
+    private OrderDetlService orderDetlService;
 
     @Transactional
     public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
-        int wrkNo = agvWrkMast.getWrkNo();
-        String barcode = agvWrkMast.getBarcode();
-        String orderNo = getOrderNoByWrkNo(wrkNo);
-        String agvBasDevp = "";
-        if (agvWrkMast.getIoType() > 100) {
-            agvBasDevp = agvWrkMast.getLocNo();
-        } else {
-            agvBasDevp = agvWrkMast.getSourceLocNo();
+        //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
+        List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+
+        try{
+            int wrkNo = agvWrkMast.getWrkNo();
+            String barcode = agvWrkMast.getBarcode();
+            String orderNo = getOrderNoByWrkNo(wrkNo);
+            String agvBasDevp = "";
+            if (agvWrkMast.getIoType() > 100) {
+                agvBasDevp = agvWrkMast.getLocNo();
+            } else {
+                agvBasDevp = agvWrkMast.getSourceLocNo();
+            }
+
+
+            agvWrkMast.setModiTime(new Date());
+            //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
+            agvWrkMast.setWrkSts(207L);
+            agvWrkMastService.updateById(agvWrkMast);
+            // 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉�
+            String locSts = agvWrkMast.getIoType() == 10 ? "D" : "F";
+
+            if (agvWrkMast.getIoType() != 111) {
+                //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
+                agvWrkMastLogService.save(agvWrkMast);
+                //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
+                agvWrkDetlLogService.save(wrkNo);
+            }
+
+            switch (agvWrkMast.getIoType()){
+                case 1:
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    //鏇存柊鐩爣搴撲綅鏄庣粏
+                    log.info("鏇存柊鐩爣搴撲綅鏄庣粏 agvWrkMast.getLocNo(): " + agvWrkMast.getLocNo() + ", wrkNo: " + wrkNo);
+                    agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(),wrkNo);
+                    //鐢熸垚鍏ュ簱閫氱煡鍘嗗彶妗�
+                    boolean save = agvWaitPakinLogService.save(barcode);
+                    //鍒犻櫎鍏ュ簱閫氱煡妗�
+                    log.info("鍒犻櫎鍏ュ簱閫氱煡妗� supp_code: " + barcode);
+                    agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",barcode));
+                    break;
+                case 10:
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+                    break;
+                case 11:
+                case 12:
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    //鏇存柊搴撳瓨鏄庣粏
+                    agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
+                    //淇敼婧愬簱浣嶇姸鎬佷负O
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
+                    break;
+                case 53:
+                    //淇敼宸ヤ綔鍏氭槑缁�
+                    //淇敼搴撳瓨淇℃伅
+                    List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+                    agvWrkDetlList.forEach(agvWrkDetl -> {
+                        AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
+                        if (!Cools.isEmpty(agvLocDetl)) {
+                            double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
+                            agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
+                        }
+                        //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
+
+                    });
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+                    break;
+                case 57:
+                    Date now = new Date();
+                    // 鏇存柊搴撳瓨鏄庣粏
+                    List<AgvWrkDetl> wrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+                    wrkDetlList.forEach(agvWrkDetl -> {
+                        AgvLocDetl agvLocDetl = new AgvLocDetl();
+                        agvLocDetl.setLocNo(agvWrkMast.getLocNo());
+                        agvLocDetl.sync(agvWrkDetl);
+                        agvLocDetl.setModiTime(now);
+                        agvLocDetl.setAppeTime(now);
+                        if (!agvLocDetlService.insert(agvLocDetl)) {
+                            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                        }
+                    });
+                    // 鏇存柊绔欑偣 + 搴撲綅鐘舵��     婧愬簱浣嶆槸绔欑偣
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    break;
+                case 58:
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+                    break;
+                case 108:
+                case 114:
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    //鏇存柊搴撳瓨鏄庣粏
+                    agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
+                    //淇敼婧愬簱浣嶇姸鎬佷负O
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+                    break;
+                case 109:
+                    // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
+                    if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) {
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                        // 鎺ラ┏浣� -- 搴撲綅
+                    } else {
+                        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    }
+                    // 鎺ラ┏浣� -- 搴撲綅
+                    if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+                        // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
+                    } else {
+                        //淇敼婧愬簱浣嶇姸鎬佷负O
+                        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+                    }
+                    break;
+                case 111:
+                    // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
+                    if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) {
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                        // 鎺ラ┏浣� -- 搴撲綅
+                    } else {
+                        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    }
+
+                    // 鎺ラ┏浣� -- 搴撲綅
+                    if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+                        // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
+                    } else {
+                        //淇敼婧愬簱浣嶇姸鎬佷负O
+                        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+                        //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
+                        agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
+                    }
+                    break;
+                case 112:
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+                    for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
+                        AgvLocDetl locDetl = new AgvLocDetl();
+                        locDetl.setLocNo(agvWrkMast.getLocNo());
+                        locDetl.sync(agvWrkDetl);
+                        locDetl.setModiTime(new Date());
+                        agvLocDetlService.insert(locDetl);
+                    }
+                    // 鎺ラ┏浣� -- 搴撲綅
+                    if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+                        // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
+                    } else {
+                        //淇敼婧愬簱浣嶇姸鎬佷负O
+                        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+                    }
+                    break;
+                case 113:
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    // 鎺ラ┏浣� -- 搴撲綅
+                    if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+                    }
+                    break;
+                case 121:
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    //鏇存柊搴撳瓨鏄庣粏
+                    agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
+                    //淇敼婧愬簱浣嶇姸鎬佷负O
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+                    break;
+
+                default:
+                    return null;
+            }
+            if (agvWrkMast.getIoType() != 111) {
+                //鍒犻櫎AGV宸ヤ綔妗�
+                agvWrkMastService.deleteById(wrkNo);
+                //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
+                agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
+            }
+//            else {
+//                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+//                if (!agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
+//                    agvWrkMast.setSourceLocNo("");
+//                }
+//                agvWrkMastService.updateById(agvWrkMast);
+//            }
+
+            if(!isJSON(orderNo)){
+                //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
+                orderService.checkComplete(orderNo,agvWrkMast.getLocNo());
+            }else{
+                List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
+                maps.forEach(map -> {
+                    String o = map.get("orderNo").toString();
+                    orderService.checkComplete(o,agvWrkMast.getLocNo());
+                });
+            }
+
+            //涓婃姤mes
+//            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());
         }
-
-
-        //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
-        agvWrkMast.setWrkSts(207L);
-        agvWrkMastService.updateById(agvWrkMast);
-        // 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉�
-        String locSts = agvWrkMast.getIoType() == 10 ? "D" : "F";
-        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),locSts,agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
-        //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
-        agvWrkMastLogService.save(agvWrkMast);
-        //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
-        agvWrkDetlLogService.save(wrkNo);
-        //绫诲瀷涓哄叆搴撴椂
-        if(agvWrkMast.getIoType() == 1){
-            //鏇存柊鐩爣搴撲綅鏄庣粏
-            log.info("鏇存柊鐩爣搴撲綅鏄庣粏 agvWrkMast.getLocNo(): " + agvWrkMast.getLocNo() + ", wrkNo: " + wrkNo);
-            agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(),wrkNo);
-            //鐢熸垚鍏ュ簱閫氱煡鍘嗗彶妗�
-            boolean save = agvWaitPakinLogService.save(barcode);
-            //鍒犻櫎鍏ュ簱閫氱煡妗�
-            log.info("鍒犻櫎鍏ュ簱閫氱煡妗� supp_code: " + barcode);
-            agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",barcode));
-        }
-        //绫诲瀷涓哄簱浣嶇Щ杞椂
-        if(agvWrkMast.getIoType() == 11){
-            //鏇存柊搴撳瓨鏄庣粏
-            agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
-            //淇敼婧愬簱浣嶇姸鎬佷负O
-            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
-        }
-
-        //绫诲瀷涓鸿皟鎷ㄥ簱浣嶇Щ杞椂
-        if(agvWrkMast.getIoType() == 108){
-            //鏇存柊搴撳瓨鏄庣粏
-            agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
-            //淇敼婧愬簱浣嶇姸鎬佷负O
-            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
-        }
-
-        //鍒犻櫎AGV宸ヤ綔妗�
-        agvWrkMastService.deleteById(wrkNo);
-        //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
-        agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
-
-        if(!isJSON(orderNo)){
-            //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
-            orderService.checkComplete(orderNo);
-        }else{
-            List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
-            maps.forEach(map -> {
-                String o = map.get("orderNo").toString();
-                orderService.checkComplete(o);
-            });
-        }
-
+        //TODO
+        //reportMes(agvWrkMast,agvWrkDetlListOld);
         return SUCCESS;
     }
 
 
     @Transactional
     public ReturnT<String> completedCarryWrk(AgvWrkMast agvWrkMast) {
-        int wrkNo = agvWrkMast.getWrkNo();
-        String orderNo = getOrderNoByWrkNo(wrkNo);
-        //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
-        agvWrkMast.setWrkSts(207L);
-        agvWrkMastService.updateById(agvWrkMast);
-        //淇敼婧愬簱浣嶇姸鎬佷负O
-        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
-        if(agvWrkMast.getIoType() == 101){
-            //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
-            agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
-            //鐢熸垚绌烘澘鍏ュ簱浠诲姟
-            Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2));
-            try {
-                agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true);
-            }catch (Exception e){
-                e.printStackTrace();
-                log.error(e.getMessage());
-            }
-        }
 
-        //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
-        agvWrkMastLogService.save(agvWrkMast);
-        //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
-        agvWrkDetlLogService.save(wrkNo);
-        //鍒犻櫎AGV宸ヤ綔妗�
-        agvWrkMastService.deleteById(wrkNo);
-        //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
-        agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
-        if(!isJSON(orderNo)){
-            //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
-            orderService.checkComplete(orderNo);
-        }else{
-            List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
-            maps.forEach(map -> {
-                String o = map.get("orderNo").toString();
-                orderService.checkComplete(o);
-            });
+        //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
+        List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+
+
+        try{
+
+            Date now = new Date();
+            int wrkNo = agvWrkMast.getWrkNo();
+            String orderNo = getOrderNoByWrkNo(wrkNo);
+            //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
+            agvWrkMast.setWrkSts(207L);
+            agvWrkMast.setModiTime(new Date());
+            agvWrkMastService.updateById(agvWrkMast);
+            //淇敼婧愬簱浣嶇姸鎬佷负O
+            if (agvWrkMast.getIoType() == 110) {
+                agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
+            }
+            if(agvWrkMast.getIoType() == 101){
+                //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
+                agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
+                //鐢熸垚绌烘澘鍏ュ簱浠诲姟
+                Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2));
+                try {
+//                    agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true);
+                    AgvWrkMast wrkMast = new AgvWrkMast();
+                    //宸ヤ綔鐘舵��
+                    wrkMast.setWrkSts(201L);
+                    //鍏ュ嚭搴撶被鍨�
+                    wrkMast.setIoType(10);
+                    wrkMast.setIoTime(now);
+                    //浼樺厛绾�
+                    wrkMast.setIoPri(300.0);
+                    //婧愮珯鐐�
+                    wrkMast.setSourceLocNo(agvWrkMast.getLocNo());
+                    //鐩爣绔欑偣
+                    wrkMast.setLocNo(agvWrkMast.getSourceLocNo());
+                    //璐ф灦缂栫爜
+                    wrkMast.setBarcode(agvWrkMast.getBarcode());
+                    //璐ф灦绫诲瀷
+                    wrkMast.setWhsType(Integer.valueOf(agvWrkMast.getBarcode().substring(0, 2)));
+
+                    wrkMast.setAppeUser(9527L);
+                    wrkMast.setAppeTime(now);
+                    wrkMast.setModiUser(9527L);
+                    wrkMast.setModiTime(now);
+                    wrkMast.setLogErrMemo("completedCarryWrk");
+                    if (!agvWrkMastService.insertByIncrease(wrkMast)) {
+                        throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+                    }
+                    AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getSourceLocNo());
+                    agvLocMast.setLocSts("S");
+                    agvLocMast.setModiTime(now);
+                    agvLocMastService.updateById(agvLocMast);
+
+                    AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getLocNo());
+                    agvBasDevp.setLocSts("R");
+                    agvBasDevp.setLocType2(Short.valueOf(agvWrkMast.getBarcode().substring(0, 2)));
+                    agvBasDevpService.updateById(agvBasDevp);
+                }catch (Exception e){
+                    e.printStackTrace();
+                    log.error(e.getMessage());
+                }
+            }
+
+            //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
+            agvWrkMastLogService.save(agvWrkMast);
+            //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
+            agvWrkDetlLogService.save(wrkNo);
+            //鍒犻櫎AGV宸ヤ綔妗�
+            agvWrkMastService.deleteById(wrkNo);
+            //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
+            agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
+            if(!isJSON(orderNo)){
+                //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
+                orderService.checkComplete(orderNo,agvWrkMast.getLocNo());
+            }else{
+                List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
+                maps.forEach(map -> {
+                    String o = map.get("orderNo").toString();
+                    orderService.checkComplete(o,agvWrkMast.getLocNo());
+                });
+            }
+
+            //涓婃姤mes
+//            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
+//            if(!Cools.isEmpty(param)){
+//                doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
+//            }
+
+        }catch (Exception e){
+            log.error(""+e.getMessage());
         }
+        reportMes(agvWrkMast,agvWrkDetlListOld);
         return SUCCESS;
     }
 
     @Transactional
     public ReturnT<String> completedCarryWrk2(AgvWrkMast agvWrkMast) {
-        int wrkNo = agvWrkMast.getWrkNo();
-        String orderNo = getOrderNoByWrkNo(wrkNo);
-        String agvBasDevp = "";
-        if (agvWrkMast.getIoType() > 100) {
-            agvBasDevp = agvWrkMast.getLocNo();
-        } else {
-            agvBasDevp = agvWrkMast.getSourceLocNo();
-        }
-        //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
-        agvWrkMast.setWrkSts(207L);
-        agvWrkMastService.updateById(agvWrkMast);
-        //淇敼婧愬簱浣嶇姸鎬佷负O
-        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
-        if(agvWrkMast.getIoType() == 101){
-            //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
-            agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
-        }
+        //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
+        List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
 
-        //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
-        agvWrkMastLogService.save(agvWrkMast);
-        //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
-        agvWrkDetlLogService.save(wrkNo);
-        //鍒犻櫎AGV宸ヤ綔妗�
-        agvWrkMastService.deleteById(wrkNo);
-        //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
-        agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
-        if(!isJSON(orderNo)){
-            //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
-            orderService.checkComplete(orderNo);
-        }else{
-            List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
-            maps.forEach(map -> {
-                String o = map.get("orderNo").toString();
-                orderService.checkComplete(o);
-            });
+        try{
+            int wrkNo = agvWrkMast.getWrkNo();
+            String orderNo = getOrderNoByWrkNo(wrkNo);
+            String agvBasDevp = "";
+            if (agvWrkMast.getIoType() > 100) {
+                agvBasDevp = agvWrkMast.getLocNo();
+            } else {
+                agvBasDevp = agvWrkMast.getSourceLocNo();
+            }
+            //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
+            agvWrkMast.setWrkSts(207L);
+            agvWrkMast.setModiTime(new Date());
+            agvWrkMastService.updateById(agvWrkMast);
+            //淇敼婧愬簱浣嶇姸鎬佷负O
+            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
+            if(agvWrkMast.getIoType() == 101){
+                //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
+                agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
+            }
+
+            //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
+            agvWrkMastLogService.save(agvWrkMast);
+            //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
+            agvWrkDetlLogService.save(wrkNo);
+            //鍒犻櫎AGV宸ヤ綔妗�
+            agvWrkMastService.deleteById(wrkNo);
+            //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
+            agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
+            if(!isJSON(orderNo)){
+                //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
+                orderService.checkComplete(orderNo,agvWrkMast.getLocNo());
+            }else{
+                List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
+                maps.forEach(map -> {
+                    String o = map.get("orderNo").toString();
+                    orderService.checkComplete(o,agvWrkMast.getLocNo());
+                });
+            }
+            //涓婃姤mes
+//            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());
         }
+        reportMes(agvWrkMast,agvWrkDetlListOld);
         return SUCCESS;
     }
 
@@ -209,19 +475,42 @@
     @Synchronized
     public ReturnT<String> startPutWayWrk(AgvWrkMast agvWrkMast) throws IOException {
 
-        //涓嬪彂浠诲姟
-        int startWrkCode = agvWrkMastService.startWrk(agvWrkMast);
-        if(startWrkCode != 0){
-            throw new CoolException("浠诲姟涓嬪彂澶辫触");
-        }
+        try{
+            //涓嬪彂浠诲姟
+            int startWrkCode = agvWrkMastService.startWrk(agvWrkMast);
+            if(startWrkCode != 0){
+                throw new CoolException("浠诲姟涓嬪彂澶辫触");
+            }
 
-        agvWrkMast.setWrkSts(202L);
-        agvWrkMastService.updateById(agvWrkMast);
-        if(agvWrkMast.getIoType() == 1){
-            //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
-            agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
+            agvWrkMast.setWrkSts(202L);
+            agvWrkMast.setModiTime(new Date());
+            agvWrkMastService.updateById(agvWrkMast);
+            if(agvWrkMast.getIoType() == 1){
+                //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
+                agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
+            }
+            return SUCCESS;
+        }catch (Exception e){
+            log.error("淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y"+e.getMessage());
         }
-        return SUCCESS;
+        return FAIL;
+    }
+
+    @Transactional
+    @Synchronized
+    public ReturnT<String> startAllcationIn(AgvWrkMast agvWrkMast) throws IOException {
+        
+        //涓嬪彂浠诲姟
+        try{
+            int startWrkCode = agvWrkMastService.startAllcationIn(agvWrkMast);
+            if(startWrkCode != 0){
+                throw new CoolException("浠诲姟涓嬪彂澶辫触");
+            }
+            return SUCCESS;
+        }catch (Exception e){
+            log.error("浠诲姟涓嬪彂澶辫触"+e.getMessage());
+        }
+        return FAIL;
 
     }
 
@@ -260,6 +549,7 @@
             Map<String, Object> devNoMap = devNoMaps.get(0);
             if((int)devNoMap.get("num") < maxWrokNum){
                 agvWrkMast.setLocNo(devNoMap.get("dev_no").toString());
+                agvWrkMast.setModiTime(new Date());
                 agvWrkMastService.updateById(agvWrkMast);
                 log.info("after锛�" + devNoMap.toString()  +  ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo());
             }
@@ -312,4 +602,256 @@
             return num <= maxWrokNum;
         }).collect(Collectors.toList());
     }
+
+    /*
+  鐢熸垚宸ヤ綔妗�
+   */
+    private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, int floor){
+        AgvWrkMast wrkMast = new AgvWrkMast();
+        //宸ヤ綔鐘舵��
+        wrkMast.setWrkSts(wrkSts);
+        //鍏ュ嚭搴撶被鍨�
+        wrkMast.setIoType(ioType);
+        wrkMast.setIoTime(now);
+        //浼樺厛绾�
+        wrkMast.setIoPri(300.0);
+        //婧愮珯鐐�
+        wrkMast.setSourceLocNo(sourceLocNo);
+        //鐩爣绔欑偣
+        wrkMast.setLocNo(locNo);
+        //璐ф灦缂栫爜
+        wrkMast.setBarcode(barcode);
+        //璐ф灦绫诲瀷
+        wrkMast.setWhsType(containerType);
+        // 鐩爣妤煎眰
+        wrkMast.setCrnNo(floor);
+
+        wrkMast.setAppeUser(userId);
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+
+        if (!agvWrkMastService.insertByIncrease(wrkMast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+
+        wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo).eq("barcode",barcode).orderBy("modi_time",false));
+
+        return wrkMast;
+    }
+
+    private void reportMes(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
+        if(Cools.isEmpty(agvWrkDetls)){
+            return ;
+        }
+        //鍖哄垎涓嶅悓浠诲姟绫诲瀷鐨勪笂鎶ユ柟寮�
+
+        if(IN_TYPE_LIST.contains(agvWrkMast.getIoType())){
+            reportMesPakinOrder(agvWrkMast,agvWrkDetls);
+        }
+        if(OUT_TYPE_List.contains(agvWrkMast.getIoType())){
+            reportMesPakoutOrder(agvWrkMast,agvWrkDetls);
+        }
+        if(MOVE_TYPE_List.contains(agvWrkMast.getIoType())){
+            generateMesParam(agvWrkMast,agvWrkDetls);
+        }
+    }
+
+    private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
+
+        for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
+            //鍒ゆ柇鏄惁閲囪喘鍏ュ簱
+
+            String orderNo = agvWrkDetl.getOrderNo();
+            Order order = orderService.selectByNo(orderNo);
+
+            DocType docType = docTypeService.selectById(order.getDocType());
+
+            if (docType.getDocName().contains("閲囪喘")){
+
+                OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(orderNo, agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
+
+                MesBuyPakinReportParam mesBuyPakinReportParam = new MesBuyPakinReportParam();
+                List<MesBuyPakinReportParam.Iteam> iteams = new ArrayList<>();
+                MesBuyPakinReportParam.Iteam iteam = new MesBuyPakinReportParam.Iteam();
+                iteam.setMaterialCode(agvWrkDetl.getMatnr());
+                iteam.setBatchNo(agvWrkDetl.getBatch());
+                iteam.setAmount(agvWrkDetl.getAnfme());
+                iteam.setStorageLocationCode(agvWrkMast.getLocNo());
+                iteam.setLineNo(orderDetl.getItemNum());
+                iteam.setSupplierCode(order.getSalesman());
+                iteam.setUnit(agvWrkDetl.getUnit());
+
+                iteams.add(iteam);
+
+                mesBuyPakinReportParam.setCode(orderNo);
+                mesBuyPakinReportParam.setIteam(iteams);
+
+                doHttpRequest(mesBuyPakinReportParam,getMesTokenInfo(),"涓婃姤mes閲囪喘鍏ュ簱淇℃伅",url,buyPakinReportPath,null,"127.0.0.1");
+
+            }else {
+                MesPakinReportParam mesPakinReportParam = new MesPakinReportParam();
+                mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
+                mesPakinReportParam.setBizType("0");
+                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,pakinReportPath,null,"127.0.0.1");
+            }
+        }
+
+    }
+
+    private void reportMesPakoutOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
+        for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
+            MesPakoutReportParam mesPakoutReportParam = new MesPakoutReportParam();
+            mesPakoutReportParam.setStorageCode(agvWrkMast.getLocNo());
+            AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo());
+            mesPakoutReportParam.setWareHouseCode(agvLocMast.getPltType().toString());
+            mesPakoutReportParam.setMaterialCode(agvWrkDetl.getMatnr());
+            mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getThreeCode().trim()));
+            mesPakoutReportParam.setAmount(new MesPakoutReportParam.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
+
+            doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"涓婃姤mes鍑哄簱淇℃伅",url,pakoutReportPath,null,"127.0.0.1");
+
+        }
+    }
+
+    private void generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
+
+        if(agvWrkMast.getIoType() == 53){
+            String locNo = agvWrkMast.getLocNo();
+            agvWrkMast.setLocNo(agvWrkMast.getSourceLocNo());
+            agvWrkMast.setSourceLocNo(locNo);
+        }
+
+        MesOrderReportParam param = new MesOrderReportParam();
+
+        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());
+        //璋冩嫧
+        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);
+
+        param.setTransferOrderItems(transferOrderItems);
+
+        for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
+            MesOrderReportParam.TransferOrderItem.InventoryDetail inventoryDetail = new MesOrderReportParam.TransferOrderItem.InventoryDetail();
+            //娣诲姞amount灞炴��
+            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(Cools.isEmpty(agvWrkDetl.getBatch()) ? "" : agvWrkDetl.getBatch().trim());
+            inventoryDetail.setBizKey(bizKey);
+            //娣诲姞inventoryDetail灞炴��
+            inventoryDetail.setLocationCode(agvWrkMast.getSourceLocNo());
+            inventoryDetail.setMaterialCode(agvWrkDetl.getMatnr());
+            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);
+        }
+
+        doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes璋冩嫧淇℃伅",url,orderReportPath,null,"127.0.0.1");
+
+    }
+
+    //鑾峰彇mes token淇℃伅
+    private Map<String,Object> getMesTokenInfo(){
+        Map<String,String> param = new HashMap<>();
+        param.put("appKey",appKey);
+        param.put("appSecret",appSecret);
+
+        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){
+
+        String response = "";
+        boolean success = false;
+
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(url)
+                    .setPath(path)
+                    .setHeaders(headParam)
+                    .setJson(JSONObject.toJSONString(requestParam))
+                    .setHttps(true)
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+
+            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();
+//
+//            int code = Cools.eq("0",succeed) ? 0 : 1;
+//            if(code != 200){
+//                throw new CoolException(jsonObject.get("dsc").toString());
+//            }
+//            success = true;
+
+        }catch (Exception e){
+            log.error(e.getMessage());
+            throw new CoolException(e.getMessage());
+        }finally {
+            apiLogService.save(
+                    namespace,
+                    url + path,
+                    appkey,
+                    ip,
+                    JSON.toJSONString(JSONObject.toJSONString(requestParam)),
+                    response,
+                    success
+            );
+        }
+
+    }
+
 }

--
Gitblit v1.9.1