From 2d0226ea3dd2116cfcc9ec307f17edf191458aad Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 27 八月 2024 17:04:30 +0800
Subject: [PATCH] mes对接单据相关

---
 src/main/resources/mapper/OrderMapper.xml                     |   11 +
 src/main/java/com/zy/asrs/entity/ReportMesOrderResult.java    |   19 +
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java   |   66 ++++-
 src/main/java/com/zy/asrs/controller/OpenController.java      |    2 
 src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java         |    4 
 src/main/java/com/zy/asrs/task/OrderSyncScheduler.java        |    2 
 src/main/java/com/zy/asrs/entity/param/ZwmsOutLocWorkDto.java |   18 
 src/main/java/com/zy/asrs/service/OpenService.java            |    2 
 src/main/resources/mapper/OrderDetlMapper.xml                 |   17 +
 src/main/webapp/static/js/orderTable.js                       |    3 
 src/main/java/com/zy/asrs/mapper/OrderMapper.java             |    2 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java   |   21 +
 src/main/java/com/zy/common/constant/MesConstant.java         |    9 
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   64 +++++
 src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java  |  140 +++++------
 src/main/java/com/zy/asrs/controller/OutController.java       |  188 +++++++++++-----
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java   |   47 +---
 17 files changed, 409 insertions(+), 206 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index f7d94d8..7dcd4a7 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -92,7 +92,7 @@
                                          @RequestBody ZwmsOutLocWorkDto param,
                                          HttpServletRequest request) {
         auth(appkey, param, request);
-        return R.ok(openService.zwmsOutLocWork(param));
+        return openService.zwmsOutLocWork(param);
     }
 
     @PostMapping("/ckjgsb")
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index eed2f39..7f72384 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -5,9 +5,11 @@
 import com.core.common.*;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.service.*;
+import com.zy.common.model.LocDetlDto;
 import com.zy.common.model.LocDto;
-import com.zy.common.model.TaskDto;
+import com.zy.common.model.enums.IoWorkType;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -60,66 +62,68 @@
         if (Cools.isEmpty(ids)) {
             return R.parse(BaseRes.PARAM);
         }
+
+        // 璁㈠崟鏄庣粏
         List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids);
+        if (orderDetls.isEmpty()) {
+            return R.parse("璇烽�夋嫨鏁版嵁");
+        }
+
+        // 鑾峰彇璁㈠崟涓昏〃
+        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderDetls.get(0).getOrderNo()));
+        if (order == null) {
+            return R.parse("璁㈠崟鏁版嵁涓虹┖");
+        }
+
         List<LocDto> locDtos = new ArrayList<>();
-
-//        for (OrderDetl orderDetl : orderDetls) {
-//            if (orderDetl.getAnfme()-orderDetl.getWorkQty()-orderDetl.getQty()==0.0){
-//                continue;
-//            }
-//            LocDto locDto = new LocDto(orderDetl.getManu(), orderDetl.getMatnr(), orderDetl.getMaktx(),orderDetl.getModel(),orderDetl.getSpecs(),
-//                    orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getBarcode(), orderDetl.getOrderNo(),orderDetl.getAnfme());
-//            locDto.setOrderDetlId(orderDetl.getId());
-//            locDto.setTkType(orderDetl.getTkType());
-//            locDtos.add(locDto);
-//        }
-
-
-
 
         Set<String> exist = new HashSet<>();
 
         for (OrderDetl orderDetl : orderDetls) {
             double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
             if (issued <= 0.0D) { continue; }
-//            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
-            List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("batch",orderDetl.getBatch()).eq("model",orderDetl.getModel()));
-            for (LocDetl locDetl : locDetls) {
-                if (issued > 0) {
-                    LocDto locDto = new LocDto(orderDetl.getManu(), orderDetl.getMatnr(), orderDetl.getMaktx(),orderDetl.getModel(),orderDetl.getSpecs(),
-                    orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getBarcode(), orderDetl.getOrderNo(),orderDetl.getAnfme());
-//                    LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
-//                            issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
-//                    List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
-                    List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
-
-                    locDto.setLocNo(locDetl.getLocNo());
+            List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("brand",orderDetl.getBrand()));
+                if (issued > 0 && !locDetls.isEmpty()) {
+                    // 鏍规嵁鍗曟嵁绫诲瀷杩斿洖鍑哄簱鍙e垪琛� 21鍑哄簱鍙o紝22鐩樼偣鍙o紝23鍙嶄慨鍝佸嚭搴撳彛
+                    List<Integer> staNos  = new ArrayList<>();
+                    if (order.getDocType() == 21) {
+                      staNos.add(3077);
+                      staNos.add(3106);
+                    } else if(order.getDocType() == 22) {
+                        staNos.add(3092);
+                        staNos.add(3102);
+                        staNos.add(3095);
+                    } else if(order.getDocType() == 23) {
+                        staNos.add(3041);
+                    }
+                    LocDto locDto = new LocDto();
+                    locDto.setLocNo(locDetls.get(0).getLocNo());
 //                    wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸
 //                    wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸
-                    locDto.setBatch(locDetl.getBatch()); // 绠卞彿
-                    locDto.setModel(locDetl.getModel()); // 鍗峰彿
-                    locDto.setBrand(""); // 鏈ㄧ绫诲瀷
-                    locDto.setOrigin(locDetl.getOrigin()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
-                    locDto.setWeight(locDetl.getWeight()); // 鍑�閲�
-                    locDto.setVolume(locDetl.getVolume()); // 姣涢噸
-                    locDto.setPrice(locDetl.getPrice());
-                    locDto.setSpecs(locDetl.getSpecs());
-                    locDto.setZpallet(locDetl.getZpallet());
+//                    locDto.setBatch(locDetl.getBatch()); // 绠卞彿
+//                    locDto.setModel(locDetl.getModel()); // 鍗峰彿
+                    locDto.setBrand(orderDetl.getBrand()); // 鍖呰缁勫彿
+//                    locDto.setOrigin(locDetl.getOrigin()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
+//                    locDto.setWeight(locDetl.getWeight()); // 鍑�閲�
+//                    locDto.setVolume(locDetl.getVolume()); // 姣涢噸
+//                    locDto.setPrice(locDetl.getPrice());
+//                    locDto.setSpecs(locDetl.getSpecs());
+//                    locDto.setZpallet(locDetl.getZpallet());
+                    locDto.setOrderNo(orderDetl.getOrderNo());
                     locDto.setStaNos(staNos);
                     locDto.setOrderDetlId(orderDetl.getId());
                     locDtos.add(locDto);
-                    exist.add(locDetl.getLocNo());
-                    // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
-                    issued = issued - locDetl.getAnfme();
+//                    exist.add(locDetl.getLocNo());
+//                    // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+//                    issued = issued - locDetl.getAnfme();
                 } else {
                     break;
                 }
-            }
-            if (issued > 0) {
-                LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
-                locDto.setLack(Boolean.TRUE);
-                locDtos.add(locDto);
-            }
+//            if (issued > 0) {
+//                LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+//                locDto.setLack(Boolean.TRUE);
+//                locDtos.add(locDto);
+//            }
         }
         return R.ok().add(locDtos);
     }
@@ -201,24 +205,90 @@
 
         Thread.sleep(1000L);
 
-        List<TaskDto> taskDtos = new ArrayList<>();
-        // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
+        List<StockOutParam> stockOutParams = new ArrayList<>();
         for (LocDto locDto : locDtos) {
-            if (locDto.isLack()) { continue; }
-            TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
-            if (TaskDto.has(taskDtos, taskDto)) {
-                TaskDto dto = TaskDto.find(taskDtos, taskDto);
-                assert dto != null;
-                dto.getLocDtos().addAll(taskDto.getLocDtos());
-            } else {
-                taskDtos.add(taskDto);
+            boolean flag1 = true;
+            for(StockOutParam stockOutParam: stockOutParams) {
+                if(stockOutParam.getOutSite().equals(locDto.getStaNo())) { // 鏈変竴鏍风殑鍑哄簱鍙�
+                    List<StockOutParam.LocDetl> locDetls = new ArrayList<>();
+                    List<LocDetl> locDetls1 = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("brand", locDto.getBrand()));
+                    for(LocDetl locDetl:locDetls1) {
+                        StockOutParam.LocDetl  locDetl1 = new StockOutParam.LocDetl();
+                        locDetl1.setLocNo(locDetl.getLocNo());
+                        locDetl1.setBrand(locDetl.getBrand());
+                        locDetl1.setModel(locDetl.getModel());
+                        locDetl1.setCount(locDetl.getAnfme());
+                        locDetls.add(locDetl1);
+                    }
+                    stockOutParam.getLocDetls().addAll(locDetls);
+                    flag1 = false;
+                    break;
+                }
+            }
+            if(flag1) { // 娌℃湁涓�鏍风殑鍑哄簱鍙�
+                StockOutParam stockOutParam = new StockOutParam();
+                stockOutParam.setOutSite(locDto.getStaNo());
+                stockOutParam.setOrderNo(locDto.getOrderNo());
+                List<StockOutParam.LocDetl> locDetls = new ArrayList<>();
+                List<LocDetl> locDetls1 = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("brand", locDto.getBrand()));
+                for(LocDetl locDetl:locDetls1) {
+                    StockOutParam.LocDetl  locDetl1 = new StockOutParam.LocDetl();
+                    locDetl1.setLocNo(locDetl.getLocNo());
+                    locDetl1.setBrand(locDetl.getBrand());
+                    locDetl1.setModel(locDetl.getModel());
+                    locDetl1.setCount(locDetl.getAnfme());
+                    locDetls.add(locDetl1);
+                }
+                stockOutParam.setLocDetls(locDetls);
+                stockOutParams.add(stockOutParam);
             }
         }
-        // -----------------------------------------------------------------------------------------------
-        for (TaskDto taskDto : taskDtos) {
-            BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
-            workService.stockOut(staNo, taskDto, getUserId());
+
+        for(StockOutParam stockOutParam :stockOutParams) {
+            BasDevp staNo = basDevpService.checkSiteStatus(stockOutParam.getOutSite());
+            // 鑾峰彇搴撲綅鏄庣粏
+            List<LocDetlDto> locDetlDtos = new ArrayList<>();
+            for (StockOutParam.LocDetl paramLocDetl : stockOutParam.getLocDetls()) {
+                LocDetl one = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo())
+                        .eq("brand",paramLocDetl.getBrand()).eq("model",paramLocDetl.getModel()));
+                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), stockOutParam.getOrderNo()));
+            }
+            if (!locDetlDtos.isEmpty()) {
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
+                if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
+                    // 鏍规嵁璁㈠崟绫诲瀷鍒ゆ柇鍑哄簱绫诲瀷
+                    Order order = orderService.selectByNo(stockOutParam.getOrderNo());
+
+                    // 鍚姩鍑哄簱寮�濮�
+                    workService.stockOut(staNo, locDetlDtos, order.getDocType() ==  22 ? IoWorkType.CHECK_OUT : null, getUserId());
+                }else {
+                    throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+                }
+            } else {
+                throw new CoolException("搴撳瓨涓嶅瓨鍦�");
+            }
         }
+
+//        List<TaskDto> taskDtos = new ArrayList<>();
+//        // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
+//        for (LocDto locDto : locDtos) {
+//            if (locDto.isLack()) { continue; }
+//            TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
+//            if (TaskDto.has(taskDtos, taskDto)) {
+//                TaskDto dto = TaskDto.find(taskDtos, taskDto);
+//                assert dto != null;
+//                dto.getLocDtos().addAll(taskDto.getLocDtos());
+//            } else {
+//                taskDtos.add(taskDto);
+//            }
+//        }
+        // -----------------------------------------------------------------------------------------------
+//        for (TaskDto taskDto : taskDtos) {
+//            BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
+//            workService.stockOut(staNo, taskDto, getUserId());
+//        }
+//
+//        stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
         return R.ok();
     }
 
diff --git a/src/main/java/com/zy/asrs/entity/ReportMesOrderResult.java b/src/main/java/com/zy/asrs/entity/ReportMesOrderResult.java
new file mode 100644
index 0000000..38c9db4
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/ReportMesOrderResult.java
@@ -0,0 +1,19 @@
+package com.zy.asrs.entity;
+
+import lombok.Data;
+
+/**
+ * @author pang.jiabao
+ * @description 涓婃姤鍗曟嵁鍑哄簱缁撴灉缁橫ES
+ * @createDate 2024/8/27 16:48
+ */
+@Data
+public class ReportMesOrderResult {
+    private String groupNo;
+    private Integer qty;
+
+    public ReportMesOrderResult(String brand, Integer qty) {
+        this.groupNo = brand;
+        this.qty = qty;
+    }
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/ZwmsOutLocWorkDto.java b/src/main/java/com/zy/asrs/entity/param/ZwmsOutLocWorkDto.java
index 1a96432..dc745f2 100644
--- a/src/main/java/com/zy/asrs/entity/param/ZwmsOutLocWorkDto.java
+++ b/src/main/java/com/zy/asrs/entity/param/ZwmsOutLocWorkDto.java
@@ -16,14 +16,16 @@
 
     private String orderType; // 璁㈠崟绫诲瀷
 
-    private List<Rolls> matDetails;
+    List<String> groups; // 鍖呰缁勫彿鍒楄〃
 
-    @Data
-    public static class Rolls{
-        private String rollNo; // 鍗峰彿
-        private String boxNo; // 绠卞彿
-        private String specs; // 瑙勬牸
-        private Integer splices; // 鎺ュご/涓�
-    }
+//    private List<Rolls> matDetails;
+//
+//    @Data
+//    public static class Rolls{
+//        private String rollNo; // 鍗峰彿
+//        private String boxNo; // 绠卞彿
+//        private String specs; // 瑙勬牸
+//        private Integer splices; // 鎺ュご/涓�
+//    }
 
 }
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index 51c99ad..e098f4e 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -34,4 +34,8 @@
     int increaseQtyByOrderNo(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
 
     int increaseWorkQty(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("workQty")Double workQty);
+
+    void updateOrderDetlByGroupNo(@Param("orderNo") String orderNo,@Param("brand") String brand, @Param("count") double count);
+
+    void updateOrderDetlQtyByGroupNo(@Param("orderNo") String orderNo,@Param("brand") String brand);
 }
diff --git a/src/main/java/com/zy/asrs/mapper/OrderMapper.java b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
index 8b38a11..bfc089f 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -19,4 +19,6 @@
     int addToLogTable(Order order);
 
     List<Order> selectorderNoL(@Param("orderNo")String orderNo);
+
+    void updateSettleByOrderNo(@Param("orderNo") String orderNo, @Param("status") long status, @Param("userId") Long userId);
 }
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index f8d26a7..bf1a4a2 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -48,7 +48,7 @@
     /**
      * ZWMS鎺ユ敹MES涓嬪彂鍑哄簱浠诲姟
      */
-    String zwmsOutLocWork(ZwmsOutLocWorkDto param);
+    R zwmsOutLocWork(ZwmsOutLocWorkDto param);
 
     /**
      * 璐х墿鍒拌揪鍑哄簱鍙d互鍚庯紝涓婃姤鍑哄簱缁撴灉
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 7dbc6d1..f0ea5d9 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1423,7 +1423,8 @@
     public R pdaFxprk(FxprkParam param, Long userId) {
 
         // 鏍规嵁鍖呰缁勫彿鑾峰彇鍒版湪绠卞嵎淇℃伅
-        List<Mat> list = matService.selectList(new EntityWrapper<Mat>().in("brand", param.getBoxList().stream().map(FxprkParam.Box::getPackageGroupNo).collect(Collectors.toList())));
+        List<String> groupNos = param.getBoxList().stream().map(FxprkParam.Box::getPackageGroupNo).collect(Collectors.toList());
+        List<Mat> list = matService.selectList(new EntityWrapper<Mat>().in("brand", groupNos));
         if (list.isEmpty()) {
             throw new CoolException("娌℃湁鏌ヨ鍒拌鍖呰缁勫彿淇℃伅锛�" + param.getBoxList().toString());
         }
@@ -1493,6 +1494,9 @@
             }
         }
 
+        // 涓�妤煎弽淇搧鍏ュ簱鐨勬湪绠遍�氳繃鍖呰缁勫彿闇�缁檓es鎺ㄩ�佸緟鍒�
+        pushDpToMes(groupNos);
+
         // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
         if (locMast.getLocSts().equals("O")) {
@@ -1506,6 +1510,64 @@
         }
         return R.ok("鍏ュ簱鎴愬姛");
     }
+
+    /**
+     * 涓�妤煎弽淇搧鍏ュ簱鐨勬湪绠遍�氳繃鍖呰缁勫彿闇�缁檓es鎺ㄩ�佸緟鍒�
+     */
+    private void pushDpToMes(List<String> groupNos) {
+        boolean success = false;
+        // 鑾峰彇璇锋眰澶�
+        Map<String,Object> headers = new HashMap<>();
+        headers.put("digi-type","sync ");
+        headers.put("digi-protocol","raw");
+        headers.put("digi-datakey"," XCommon.ImportData");
+
+        // 鏋勯�犺姹備綋
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("groupNos", groupNos);
+        String body = jsonObject.toJSONString();
+
+        String response = "";
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(MesConstant.MES_IP_PORT)
+                    .setPath(MesConstant.MES_DP_URL)
+                    .setHeaders(headers)
+                    .setJson(body)
+                    .build()
+                    .doPost();
+            if (!Cools.isEmpty(response)) {
+                JSONObject jsonObject1 = JSONObject.parseObject(response);
+                int code = (int) jsonObject1.get("code");
+                String msg = (String) jsonObject1.get("msg");
+                if (code != 200) {
+                    throw new CoolException(msg);
+                }
+                success = true;
+            } else {
+                log.error("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅけ璐ワ紒锛侊紒url锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PAKIN_URL, body, response);
+                throw new CoolException("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅけ璐�");
+            }
+        } catch (Exception e) {
+            log.error("杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒ゅ紓甯革細{}", e.getMessage());
+        } finally {
+            try {
+                // 淇濆瓨鎺ュ彛鏃ュ織
+                apiLogService.save(
+                        "杩斾慨鍝佸叆搴撶粰mes鎺ㄩ�佸緟鍒�",
+                        MesConstant.MES_IP_PORT + MesConstant.MES_DP_URL,
+                        null,
+                        "127.0.0.1",
+                        body,
+                        response,
+                        success
+                );
+            } catch (Exception e) {
+                log.error("", e);
+            }
+        }
+    }
+
     public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode) {
         boolean success = false;
         // 鑾峰彇璇锋眰澶�
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 24e2672..350a9e3 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1345,7 +1345,7 @@
 
     @Override
     @Transactional
-    public String zwmsOutLocWork(ZwmsOutLocWorkDto param) {
+    public R zwmsOutLocWork(ZwmsOutLocWorkDto param) {
 
         Order order = orderService.selectByNo(param.getOrderNo());
         if (!Cools.isEmpty(order)) {
@@ -1354,6 +1354,7 @@
 
         DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE);
         Date now = new Date();
+
         // 鍗曟嵁涓绘。
         order = new Order(
                 String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
@@ -1391,38 +1392,16 @@
                 now,    // 淇敼鏃堕棿
                 null    // 澶囨敞
         );
+
         if (!orderService.insert(order)) {
             throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
         }
+
         // 鍗曟嵁鏄庣粏妗�
-        List<DetlDto> list = new ArrayList<>();
-        List<ZwmsOutLocWorkDto.Rolls> orderDetails = param.getMatDetails();
-        for (ZwmsOutLocWorkDto.Rolls detail : orderDetails) {
-            DetlDto dto = new DetlDto(detail.getRollNo(), detail.getBoxNo(), 1.0);
-            dto.setOrderNo(detail.getSpecs());
-            dto.setSplices(detail.getSplices());
-            if (DetlDto.has(list, dto)) {
-                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
-                assert detlDto != null;
-                detlDto.setAnfme(detlDto.getAnfme() + 1);
-            } else {
-                list.add(dto);
-            }
-        }
-        for (DetlDto detlDto : list) {
-//            Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+        for (String groupNo : param.getGroups()) {
             OrderDetl orderDetl = new OrderDetl();
-//            if (Cools.isEmpty(mat)) {
-//                throw new CoolException(detlDto.getMatnr() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
-//            } else {
-//                orderDetl.sync(mat);
-//            }
-            orderDetl.setSpecs(String.valueOf(detlDto.getSplices()));
-            orderDetl.setBatch(detlDto.getBatch() == null ? "" : detlDto.getBatch());
-            orderDetl.setModel(detlDto.getMatnr());
-            orderDetl.setMatnr(detlDto.getOrderNo());
-            orderDetl.setMaktx(detlDto.getOrderNo());
-            orderDetl.setAnfme(detlDto.getAnfme());
+            orderDetl.setBrand(groupNo);
+            orderDetl.setBatch("");
             orderDetl.setOrderId(order.getId());
             orderDetl.setOrderNo(order.getOrderNo());
             orderDetl.setCreateBy(9527L);
@@ -1431,12 +1410,14 @@
             orderDetl.setUpdateTime(now);
             orderDetl.setStatus(1);
             orderDetl.setQty(0.0D);
+            orderDetl.setAnfme(1.0);
             if (!orderDetlService.insert(orderDetl)) {
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
         }
 
-        return null;
+        return R.ok("鍗曟嵁鐢熸垚鎴愬姛");
+
     }
 
     @Override
@@ -1464,11 +1445,11 @@
 
         // 鍒拌揪鍑哄簱鍙g‘璁や负1锛屾洿鏂板伐浣滄。鐘舵�佷负57.鍑哄簱瀹屾垚
         if (param.getOutLocResult() == 1) {
-            wrkMast.setWrkSts(20L);
-            // 绌烘墭鐩樺埌浣嶇洿鎺ユ洿鏂板伐浣滄。鐘舵�佷负14.宸插嚭搴撴湭纭锛岀┖鎵樻棤闇�澶嶆牳纭
-            if (!flag || wrkMast.getIoType() == 110) {
+//            wrkMast.setWrkSts(20L);
+//            // 绌烘墭鐩樺埌浣嶇洿鎺ユ洿鏂板伐浣滄。鐘舵�佷负14.宸插嚭搴撴湭纭锛岀┖鎵樻棤闇�澶嶆牳纭
+//            if (!flag || wrkMast.getIoType() == 110) {
                 wrkMast.setWrkSts(14L);
-            }
+//            }
             wrkMastService.updateById(wrkMast);
         }
 
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 0768566..228bb31 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -12,6 +12,8 @@
 import com.zy.asrs.entity.param.FullStoreParam;
 import com.zy.asrs.entity.param.LocDetlAdjustParam;
 import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.mapper.OrderDetlMapper;
+import com.zy.asrs.mapper.OrderMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.*;
@@ -25,6 +27,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 
@@ -70,6 +73,10 @@
     private OrderService orderService;
     @Autowired
     private OrderDetlService orderDetlService;
+    @Resource
+    private OrderMapper orderMapper;
+    @Resource
+    private OrderDetlMapper orderDetlMapper;
     @Autowired
     private WcsController wcsController;
     @Autowired
@@ -373,7 +380,12 @@
                 if (!wrkDetlService.insert(wrkDetl)) {
                     throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
                 }
+                // 淇敼璁㈠崟鏄庣粏
+                orderDetlMapper.updateOrderDetlByGroupNo(detlDto.getOrderNo(), detlDto.getLocDetl().getBrand(), 1);
+                // 淇敼璁㈠崟鐘舵��
+                orderMapper.updateSettleByOrderNo(detlDto.getOrderNo(),2L, userId);
             }
+
             // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
             locMast = locMastService.selectById(dto.getLocNo());
             if (locMast.getLocSts().equals("F")) {
@@ -1041,13 +1053,14 @@
         }
 
         //鍙栨秷鍑哄簱宸ヤ綔妗f椂锛屾煡璇㈠崟鎹鐞嗚〃锛屽洖婊氫綔涓氫腑鏁伴噺
-        if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) {
+        if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) {
             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
             for (WrkDetl wrkDetl : wrkDetls) {
                 if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
-                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-                    }
+//                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+//                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+//                    }
+                    orderDetlMapper.updateOrderDetlByGroupNo(wrkDetl.getOrderNo(),wrkDetl.getBrand(),0);
 
                     //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
                     boolean flag = true;
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index 7c65a7c..8a24643 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -38,7 +38,7 @@
         }
     }
 
-//    @Scheduled(cron = "0/5 * * * * ? ")
+    @Scheduled(cron = "0/9 * * * * ? ")
     @Async("orderThreadPool")
     public void completeAndReport(){
         String erpReport = Parameter.get().getErpReport();
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index 43b50b1..5ba0636 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -2,12 +2,11 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.DocType;
 import com.zy.asrs.entity.Order;
 import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.ReportMesOrderResult;
 import com.zy.asrs.service.ApiLogService;
 import com.zy.asrs.service.DocTypeService;
 import com.zy.asrs.service.OrderDetlService;
@@ -15,8 +14,6 @@
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.common.constant.MesConstant;
-import com.zy.common.model.MesPakinParam;
-import com.zy.common.model.MesPakoutParam;
 import com.zy.common.utils.HttpHandler;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +22,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2020/7/7
@@ -51,77 +49,18 @@
             return SUCCESS;
         }
         List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
-        // 鍏ュ簱瀹屾垚涓婃姤
-        if (docType.getPakin() == 1) {
-            MesPakinParam pakinParam = new MesPakinParam();
-            pakinParam.setPakinTime(DateUtils.convert(order.getUpdateTime()));
-            pakinParam.setLgortFrom("5008");
-            pakinParam.setLgortTo("5006");
-            for (OrderDetl orderDetl : orderDetls) {
-                String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
-                pakinParam.getList().add(new MesPakinParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
-            }
-            String response = "";
-            boolean success = false;
-            try {
-                response = new HttpHandler.Builder()
-                        .setUri(MesConstant.URL)
-                        .setPath(MesConstant.PAKIN_URL)
-                        .setJson(JSON.toJSONString(pakinParam))
-                        .build()
-                        .doPost();
-                JSONObject jsonObject = JSON.parseObject(response);
-                if (jsonObject.getInteger("code").equals(200)) {
-                    success = true;
-                    // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
-                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
-                        throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
-                    }
-                } else {
-                    log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response);
-                    throw new CoolException("涓婃姤mes绯荤粺澶辫触");
-                }
-            } catch (Exception e) {
-                log.error("fail", e);
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return FAIL.setMsg(e.getMessage());
-            } finally {
-                try {
-                    // 淇濆瓨鎺ュ彛鏃ュ織
-                    apiLogService.save(
-                            "鎴愬搧搴撳叆搴撲笂鎶�",
-                            MesConstant.URL + MesConstant.PAKIN_URL,
-                            null,
-                            "127.0.0.1",
-                            JSON.toJSONString(pakinParam),
-                            response,
-                            success
-                    );
-                } catch (Exception e) { log.error("", e); }
-            }
-        }
+
         // 鍑哄簱瀹屾垚涓婃姤
         if (docType.getPakout() == 1) {
-            MesPakoutParam pakoutParam = new MesPakoutParam();
-            pakoutParam.setTag(!order.getDocType$().equalsIgnoreCase("鎵嬪姩鍑哄簱鍗�"));
-            pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime()));
-            pakoutParam.setLgortFrom("5006");
-            pakoutParam.setLgortTo("1111");
-            if (!pakoutParam.isTag()) {
-                pakoutParam.setKunnr("C1000");
-            }
-            pakoutParam.setOrderNo(order.getOrderNo());
-            for (OrderDetl orderDetl : orderDetls) {
-                String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
-                pakoutParam.getList().add(new MesPakoutParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
-            }
+            List<ReportMesOrderResult> collect = orderDetls.stream().map(orderDetl ->
+                    new ReportMesOrderResult(orderDetl.getBrand(), orderDetl.getQty().intValue())).collect(Collectors.toList());
             String response = "";
             boolean success = false;
             try {
                 response = new HttpHandler.Builder()
-                        .setUri(MesConstant.URL)
-                        .setPath(MesConstant.PAKOUT_URL)
-                        .setJson(JSON.toJSONString(pakoutParam))
+                        .setUri(MesConstant.MES_IP_PORT)
+                        .setPath(MesConstant.MES_CKSB_URL)
+                        .setJson(JSON.toJSONString(collect))
                         .build()
                         .doPost();
                 JSONObject jsonObject = JSON.parseObject(response);
@@ -132,28 +71,77 @@
                         throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
                     }
                 } else {
-                    log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKOUT_URL, JSON.toJSONString(pakoutParam), response);
-                    throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+                    log.error("璇锋眰MES鍑哄簱鍗曚笂鎶ユ帴鍙eけ璐ワ紒锛侊紒url锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.MES_IP_PORT+MesConstant.MES_CKSB_URL, JSON.toJSONString(collect), response);
+                    throw new CoolException("璇锋眰MES鍑哄簱鍗曚笂鎶ユ帴鍙eけ璐�");
                 }
             } catch (Exception e) {
-                log.error("fail", e);
+                log.error("璇锋眰MES鍑哄簱鍗曚笂鎶ユ帴鍙e紓甯�", e);
 //            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return FAIL.setMsg(e.getMessage());
+//                return FAIL.setMsg(e.getMessage());
             } finally {
                 try {
                     // 淇濆瓨鎺ュ彛鏃ュ織
                     apiLogService.save(
-                            "鎴愬搧搴撳嚭搴撲笂鎶�",
-                            MesConstant.URL + MesConstant.PAKOUT_URL,
+                            "璇锋眰MES鍑哄簱鍗曚笂鎶ユ帴鍙�",
+                            MesConstant.MES_IP_PORT + MesConstant.MES_CKSB_URL,
                             null,
                             "127.0.0.1",
-                            JSON.toJSONString(pakoutParam),
+                            JSON.toJSONString(collect),
                             response,
                             success
                     );
                 } catch (Exception e) { log.error("", e); }
             }
         }
+        // 鍏ュ簱瀹屾垚涓婃姤
+//        if (docType.getPakin() == 1) {
+//            MesPakinParam pakinParam = new MesPakinParam();
+//            pakinParam.setPakinTime(DateUtils.convert(order.getUpdateTime()));
+//            pakinParam.setLgortFrom("5008");
+//            pakinParam.setLgortTo("5006");
+//            for (OrderDetl orderDetl : orderDetls) {
+//                String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
+//                pakinParam.getList().add(new MesPakinParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
+//            }
+//            String response = "";
+//            boolean success = false;
+//            try {
+//                response = new HttpHandler.Builder()
+//                        .setUri(MesConstant.URL)
+//                        .setPath(MesConstant.PAKIN_URL)
+//                        .setJson(JSON.toJSONString(pakinParam))
+//                        .build()
+//                        .doPost();
+//                JSONObject jsonObject = JSON.parseObject(response);
+//                if (jsonObject.getInteger("code").equals(200)) {
+//                    success = true;
+//                    // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
+//                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
+//                        throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+//                    }
+//                } else {
+//                    log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response);
+//                    throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+//                }
+//            } catch (Exception e) {
+//                log.error("fail", e);
+////            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                return FAIL.setMsg(e.getMessage());
+//            } finally {
+//                try {
+//                    // 淇濆瓨鎺ュ彛鏃ュ織
+//                    apiLogService.save(
+//                            "鎴愬搧搴撳叆搴撲笂鎶�",
+//                            MesConstant.URL + MesConstant.PAKIN_URL,
+//                            null,
+//                            "127.0.0.1",
+//                            JSON.toJSONString(pakinParam),
+//                            response,
+//                            success
+//                    );
+//                } catch (Exception e) { log.error("", e); }
+//            }
+//        }
         return SUCCESS;
     }
 
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 9a4f64f..3d0c777 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.mapper.OrderDetlMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
@@ -12,6 +13,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
 
@@ -35,7 +37,8 @@
     private WaitPakinService waitPakinService;
     @Autowired
     private OrderDetlService orderDetlService;
-
+    @Resource
+    private OrderDetlMapper orderDetlMapper;
     public ReturnT<String> start(WrkMast wrkMast) {
         // 4.鍏ュ簱瀹屾垚
         if (wrkMast.getWrkSts() == 4) {
@@ -261,6 +264,27 @@
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                     }
+                    for(WrkDetl wrkDetl : wrkDetls57) {
+                        if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            orderDetlMapper.updateOrderDetlQtyByGroupNo(wrkDetl.getOrderNo(), wrkDetl.getBrand());
+                        }
+//                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        if (orderDetl==null){
+//                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                        }
+//                        try {
+//                            if(!Cools.isEmpty(orderDetl)){
+//                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+//                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
+////                                    exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+////                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                                    return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+//                                }
+//                            }
+//                        } catch (Exception ignore){}
+                    }
                     // 淇敼搴撲綅鐘舵�� Q ====>> F
                     if (locMast.getLocSts().equals("Q")) {
                         locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D");
@@ -360,29 +384,33 @@
                         return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                     }
                     for (WrkDetl wrkDetl : wrkDetls101) {
+                        if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            orderDetlMapper.updateOrderDetlQtyByGroupNo(wrkDetl.getOrderNo(), wrkDetl.getBrand());
+                        }
                         // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
 //                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
 //                        if (orderDetl==null){
 //                            orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
 //                        }
-                        // 绠卞彿+鍗峰彿
-                        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("batch",wrkDetl.getBatch())
-                                .eq("model",wrkDetl.getModel()));
-
-                        try {
-                            if(!Cools.isEmpty(orderDetl)){
-                                // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-//                                orderDetlService.update(null,new EntityWrapper<OrderDetl>().eq("order_no",orderDetl.getOrderNo())
-//                                        .eq("batch",orderDetl.getBatch()).eq("model", orderDetl.getModel()));
-                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), orderDetl.getModel(),
-                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
-//                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
-//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
-                                }
-                            }
-                        } catch (Exception ignore){}
+//                        // 绠卞彿+鍗峰彿
+//                        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("batch",wrkDetl.getBatch())
+//                                .eq("model",wrkDetl.getModel()));
+//
+//                        try {
+//                            if(!Cools.isEmpty(orderDetl)){
+//                                // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+////                                orderDetlService.update(null,new EntityWrapper<OrderDetl>().eq("order_no",orderDetl.getOrderNo())
+////                                        .eq("batch",orderDetl.getBatch()).eq("model", orderDetl.getModel()));
+//                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), orderDetl.getModel(),
+//                                        orderDetl.getBatch(),wrkDetl.getAnfme())){
+////                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+////                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                                    return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+//                                }
+//                            }
+//                        } catch (Exception ignore){}
                     }
                     // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
                     if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
diff --git a/src/main/java/com/zy/common/constant/MesConstant.java b/src/main/java/com/zy/common/constant/MesConstant.java
index 564b626..6b34ac7 100644
--- a/src/main/java/com/zy/common/constant/MesConstant.java
+++ b/src/main/java/com/zy/common/constant/MesConstant.java
@@ -13,6 +13,15 @@
 
     public static final String PAKOUT_URL = "wmsFinprd/api/zy/v1/packOut/sendList";
 
+    // MES鎺ュ彛IP鍦板潃
+    public static final String MES_IP_PORT = "http://192.168.14.249:8008";
+
+    // 缁橫ES鎺ㄩ�佷竴妤煎弽淇负寰呭垽
+    public static final String MES_DP_URL = "/api/Task/InventoryTask";
+
+    // 缁橫ES鎺ㄩ�佸嚭搴撳崟缁撴灉
+    public static final String MES_CKSB_URL = "/api/Task/InventoryTask";
+
     // GWCS鎺ュ彛IP鍦板潃
     public static final String GWCS_IP_PORT = "http://192.168.14.249:8008";
 
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index a37ed6f..1fb8461 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -86,8 +86,8 @@
         <if test="order_id!=null and order_id!='' ">
             and mod.order_id like '%' + #{order_id} + '%'
         </if>
-        <if test="matnr!=null and matnr!='' ">
-            and mod.matnr like '%' + #{matnr} + '%'
+        <if test="brand!=null and brand!='' ">
+            and mod.brand like '%' + #{brand} + '%'
         </if>
         <if test="maktx!=null and maktx!='' ">
             and mod.maktx like '%' + #{maktx} + '%'
@@ -201,5 +201,18 @@
             </otherwise>
         </choose>
     </update>
+    <update id="updateOrderDetlByGroupNo">
+        update man_order_detl
+        set work_qty = #{count}
+        where 1=1
+          and order_no= #{orderNo} and brand = #{brand}
+    </update>
+    <update id="updateOrderDetlQtyByGroupNo">
+        update man_order_detl
+        set qty = 1
+        where 1=1
+        and order_no = #{orderNo}
+        and brand = #{brand}
+    </update>
 
 </mapper>
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index 20b4865..2bc2a3c 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -52,6 +52,17 @@
         where 1=1
         and id = #{orderId}
     </update>
+    <update id="updateSettleByOrderNo">
+        update man_order
+        set settle = #{status}
+        ,update_time = getdate()
+        <if test="userId != null">
+            ,update_by = #{userId}
+        </if>
+        where 1=1
+        and order_no = #{orderNo}
+        and settle != #{status}
+    </update>
 
     <select id="selectComplete" resultMap="BaseResultMap">
         select
diff --git a/src/main/webapp/static/js/orderTable.js b/src/main/webapp/static/js/orderTable.js
index 8d65b03..1a70ea9 100644
--- a/src/main/webapp/static/js/orderTable.js
+++ b/src/main/webapp/static/js/orderTable.js
@@ -41,7 +41,8 @@
         cols: [[
             // {type: 'numbers', title: '#'},
             {field: 'orderTime', title: '鏃ユ湡'},
-            {field: 'orderNo', title: '鍗曟嵁缂栧彿', align: 'center'}
+            {field: 'orderNo', title: '鍗曟嵁缂栧彿', align: 'center'},
+            {field: 'docType$', title: '鍗曟嵁绫诲瀷'},
         ]],
         done: function (res, curr, count) {
             $('#dictTable+.layui-table-view .layui-table-body tbody>tr:first').trigger('click');

--
Gitblit v1.9.1