From 69d68078402cd2029336a9e25fd78e4501bf2a80 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期日, 23 六月 2024 10:14:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/phpsasrs' into phpsasrs

---
 src/main/resources/mapper/OrderMapper.xml                            |    1 
 src/main/java/com/zy/system/entity/license/CustomLicenseManager.java |   46 +-
 src/main/resources/mapper/LocDetlMapper.xml                          |    7 
 src/main/java/com/zy/common/web/WcsController.java                   |    2 
 src/main/webapp/views/report/viewStayTime.html                       |    5 
 src/main/java/com/zy/asrs/entity/result/StockVo.java                 |    6 
 src/main/java/com/zy/asrs/service/OrderDetlService.java              |    2 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java          |    1 
 src/main/java/com/zy/common/constant/MesConstant.java                |    4 
 src/main/java/com/zy/asrs/entity/param/PickMatParam.java             |   20 +
 src/main/java/com/zy/asrs/entity/WrkDetlLog.java                     |   17 +
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java          |   34 +-
 src/main/java/com/zy/asrs/controller/OpenController.java             |    9 
 src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java                |    3 
 src/main/java/com/zy/asrs/entity/param/PickConfirmParam.java         |   16 +
 src/main/java/com/zy/asrs/controller/MobileController.java           |  193 ++++++++++++++
 src/main/java/com/zy/common/CodeBuilder.java                         |    2 
 src/main/resources/mapper/OrderDetlMapper.xml                        |   16 +
 src/main/webapp/static/js/locDetl/locDetl.js                         |    2 
 src/main/webapp/views/waitPakinLog/waitPakinLog.html                 |    5 
 src/main/java/com/zy/asrs/entity/WaitPakin.java                      |   12 
 src/main/webapp/static/js/waitPakin/waitPakin.js                     |    4 
 src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java         |    2 
 src/main/webapp/views/pakStore/locDetlCheckQuery.html                |    9 
 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java     |    5 
 src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java         |  251 ++++++++++++-------
 src/main/webapp/static/js/wrkDetlLog/wrkDetlLog.js                   |    1 
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java          |   65 +---
 src/main/resources/application.yml                                   |    2 
 src/main/java/com/zy/asrs/controller/ReportQueryController.java      |    4 
 30 files changed, 545 insertions(+), 201 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 232ba46..00dff10 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -9,15 +9,13 @@
 import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.CombParam;
-import com.zy.asrs.entity.param.MobileAdjustParam;
-import com.zy.asrs.entity.param.OffSaleParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.asrs.entity.result.MobileAdjustResult;
 import com.zy.asrs.mapper.ManLocDetlMapper;
 import com.zy.asrs.service.*;
-import com.zy.common.model.LocDto;
-import com.zy.common.model.TaskDto;
 import com.zy.common.model.WrkDto;
+import com.zy.common.model.enums.WorkNoType;
+import com.zy.common.service.CommonService;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -55,7 +53,12 @@
     private PackService packService;
     @Autowired
     private ManLocDetlMapper manLocDetlMapper;
-
+    @Autowired
+    private StaDescService staDescService;
+    @Autowired
+    private CommonService commonService;
+    @Autowired
+    private MatService matService;
 
     // 鍟嗗搧涓婃灦
     @RequestMapping("/mat/onSale/auth")
@@ -358,4 +361,182 @@
         return mobileService.manDetlOut(json);
     }
 
+    @RequestMapping("/loc/f/list")
+    @ManagerAuth(memo = "鑾峰彇鍦ㄥ簱搴撲綅")
+    public R locNoF(@RequestParam(required = false) String locNo){
+        Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq("loc_sts", "F");
+        if (!Cools.isEmpty(locNo)) {
+            wrapper.like("loc_no", locNo);
+        }
+        List<LocMast> list = locMastService.selectList(wrapper);
+        return R.ok().add(list);
+    }
+
+    @RequestMapping("/pick/sta/list")
+    @ManagerAuth(memo = "鑾峰彇骞舵澘绔�")
+    public R pickSta(){
+        List<StaDesc> list = staDescService.selectList(new EntityWrapper<StaDesc>().eq("type_no",104));
+        return R.ok().add(list);
+    }
+
+    @RequestMapping("/pick/mat/list")
+    @ManagerAuth(memo = "鑾峰彇骞舵澘鐗╂枡")
+    public R pickMats(@RequestParam(required = false) String matnr){
+        List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().like("doc_name", "鍏ュ簱"));
+        ArrayList<Long> typeList = new ArrayList<>();
+        for (DocType docType : docTypes) {
+            typeList.add(docType.getDocId());
+        }
+
+        EntityWrapper<Order> wrapper = new EntityWrapper<>();
+        wrapper.eq("status", 1);
+        wrapper.in("doc_type", typeList);
+        List<Order> orders = orderService.selectList(wrapper);
+
+        ArrayList<Long> orderIds = new ArrayList<>();
+        for (Order order : orders) {
+            orderIds.add(order.getId());
+        }
+
+        //鎼滅储鏄庣粏
+        Wrapper<OrderDetl> wrapper1 = new EntityWrapper<OrderDetl>();
+        wrapper1.eq("status", 1);
+        wrapper1.in("order_id", orderIds);
+        if (!Cools.isEmpty(matnr)) {
+            wrapper1.like("matnr", matnr);
+        }
+
+        List<OrderDetl> list = orderDetlService.selectList(wrapper1);
+
+        ArrayList<PickMatParam> maps = new ArrayList<>();
+        for (OrderDetl orderDetl : list) {
+            //鍓╀綑鍙敤鏁伴噺
+            double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+            if (count <= 0) {
+                continue;
+            }
+
+            PickMatParam matParam = new PickMatParam();
+            matParam.setMatnr(orderDetl.getMatnr());
+            matParam.setBatch(orderDetl.getBatch());
+            matParam.setOrderNo(orderDetl.getOrderNo());
+            matParam.setOrderId(orderDetl.getOrderId());
+            matParam.setCount(count);
+            matParam.setUseCount(0D);
+            maps.add(matParam);
+        }
+        return R.ok().add(maps);
+    }
+
+    @RequestMapping("/pick/in")
+    @ManagerAuth(memo = "骞舵澘鍏ュ簱")
+    @Transactional
+    public R pickConfirm(@RequestBody PickConfirmParam param){
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getLocNo()));
+        if (!locMast.getLocSts().equals("F")) {
+            return R.error("搴撲綅鐘舵�佷笉鏄湪搴�");
+        }
+
+        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                .eq("type_no", 104)
+                .eq("stn_no", param.getStaNo()));
+        if (staDesc == null) {
+            return R.error("绔欑偣涓嶅瓨鍦�");
+        }
+
+        //妫�楠屼紶鍙傛槸鍚﹀拰璁㈠崟鏄庣粏鍖归厤
+        for (PickMatParam matParam : param.getList()) {
+            Wrapper<OrderDetl> wrapper = new EntityWrapper<OrderDetl>()
+                    .eq("order_no", matParam.getOrderNo())
+                    .eq("status", 1)
+                    .eq("matnr", matParam.getMatnr());
+            if (!Cools.isEmpty(matParam.getBatch())) {
+                wrapper.eq("batch", matParam.getBatch());
+            }
+            OrderDetl orderDetl = orderDetlService.selectOne(wrapper);
+            if (orderDetl == null) {
+                return R.error("鐗╂枡鏁版嵁涓嶅瓨鍦�");
+            }
+
+            //鍓╀綑鍙敤鏁伴噺
+            double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+            if (matParam.getCount() != count) {
+                return R.error("鐗╂枡鏁版嵁宸茶繃鏈�");
+            }
+
+            if (matParam.getUseCount() > count) {
+                return R.error("鍙敤鏁伴噺涓嶈冻");
+            }
+        }
+
+        Date now = new Date();
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(104));
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鐢熸垚鍑哄簱
+        wrkMast.setIoType(104); // 鍏ュ嚭搴撶姸鎬�
+        wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+        wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+        wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+        wrkMast.setSourceLocNo(param.getLocNo()); // 婧愬簱浣�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("Y"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setBarcode(locMast.getBarcode());
+        wrkMast.setAppeUser(getUserId()); // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(getUserId());
+        wrkMast.setModiTime(now);
+        wrkMast.setCrnNo(staDesc.getCrnNo());
+        if (!wrkMastService.insert(wrkMast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + param.getLocNo());
+        }
+        // 鐢熸垚宸ヤ綔妗f槑缁�
+        for (PickMatParam matParam : param.getList()) {
+            EntityWrapper<Mat> wrapper = new EntityWrapper<>();
+            wrapper.eq("status", 1);
+            wrapper.eq("matnr", matParam.getMatnr());
+            Mat mat = matService.selectOne(wrapper);
+            if (mat == null) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鐗╂枡淇℃伅涓嶅瓨鍦細" + matParam.getMatnr());
+            }
+
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(mat);
+            wrkDetl.setOrderNo(matParam.getOrderNo());
+            wrkDetl.setWrkNo(workNo);
+            wrkDetl.setZpallet(wrkMast.getBarcode());
+            wrkDetl.setIoTime(now);
+            wrkDetl.setAnfme(matParam.getUseCount()); // 鏁伴噺
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setAppeUser(getUserId());
+            wrkDetl.setModiTime(now);
+            wrkDetl.setModiUser(getUserId());
+            if (!wrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+            }
+
+            //鏇存柊璁㈠崟宸ヤ綔鏁伴噺
+            orderDetlService.increaseWorkQtyByOrderNo(matParam.getOrderNo(), matParam.getMatnr(), matParam.getBatch(), matParam.getUseCount());
+        }
+        // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+        locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getLocNo()));
+        if (locMast.getLocSts().equals("F")) {
+            locMast.setLocSts("P");
+            locMast.setModiUser(getUserId());
+            locMast.setModiTime(now);
+            if (!locMastService.updateById(locMast)) {
+                throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + param.getLocNo());
+            }
+        } else {
+            throw new CoolException(param.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+        }
+
+        return R.ok();
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index a45b4e6..a3bf4d4 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,17 +1,18 @@
 package com.zy.asrs.controller;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.core.annotations.AppAuth;
 import com.core.common.*;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.param.*;
+import com.zy.asrs.entity.param.MatSyncParam;
+import com.zy.asrs.entity.param.OpenOrderCompleteParam;
+import com.zy.asrs.entity.param.OpenOrderPakinParam;
+import com.zy.asrs.entity.param.OpenOrderPakoutParam;
 import com.zy.asrs.service.OpenService;
 import com.zy.common.model.DetlDto;
 import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
@@ -103,7 +104,7 @@
     /**
      * 搴撳瓨缁熻
      */
-    @RequestMapping("/stock/default/v1")
+    @PostMapping("/stock/default/v1")
     public R queryStock(@RequestHeader(required = false) String appkey,
                         HttpServletRequest request) {
         auth(appkey, null, request);
diff --git a/src/main/java/com/zy/asrs/controller/ReportQueryController.java b/src/main/java/com/zy/asrs/controller/ReportQueryController.java
index cd42ffc..945baa4 100644
--- a/src/main/java/com/zy/asrs/controller/ReportQueryController.java
+++ b/src/main/java/com/zy/asrs/controller/ReportQueryController.java
@@ -71,6 +71,10 @@
 		if (!Cools.isEmpty(locNo) && !locNo.equals("null")) {
 			bean.setLoc_no(locNo);
 		}
+		String matnr = String.valueOf(param.get("matnr"));
+		if (!Cools.isEmpty(matnr) && !matnr.equals("null")) {
+			bean.setMatnr(matnr);
+		}
 		List<ViewStayTimeBean> list = reportQueryMapper.queryViewStayTimeList(bean);
 		int count = reportQueryMapper.getViewStayTimeCount(bean);
 		Page<ViewStayTimeBean> page = new Page<>();
diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java
index 8792de8..11608f6 100644
--- a/src/main/java/com/zy/asrs/entity/WaitPakin.java
+++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -4,7 +4,10 @@
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.core.common.Cools;
+import com.core.common.SpringUtils;
 import com.zy.common.utils.Synchro;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -221,6 +224,15 @@
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
     }
 
+    public String getAppeUser$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.appeUser);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
     public void sync(Object source) {
         Synchro.Copy(source, this);
     }
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetlLog.java b/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
index cd07a21..b4e7076 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
@@ -2,8 +2,10 @@
 
 import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
+import com.zy.asrs.service.WrkMastLogService;
 import com.zy.system.entity.User;
 import com.zy.system.service.UserService;
 import io.swagger.annotations.ApiModelProperty;
@@ -358,5 +360,20 @@
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
     }
 
+    public String getIoType$(){
+        if (Cools.isEmpty(this.wrkNo) || Cools.isEmpty(this.ioTime)){
+            return "";
+        }
+        WrkMastLogService wrkMastLogService = SpringUtils.getBean(WrkMastLogService.class);
+        EntityWrapper<WrkMastLog> wrapper = new EntityWrapper<>();
+        wrapper.eq("wrk_no", wrkNo);
+        wrapper.eq("io_time", ioTime);
+        WrkMastLog wrkMastLog = wrkMastLogService.selectOne(wrapper);
+        if (Cools.isEmpty(wrkMastLog)){
+            return "";
+        }
+        return wrkMastLog.getIoType$();
+    }
+
 
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/PickConfirmParam.java b/src/main/java/com/zy/asrs/entity/param/PickConfirmParam.java
new file mode 100644
index 0000000..f688ef2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/PickConfirmParam.java
@@ -0,0 +1,16 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PickConfirmParam {
+
+    private String locNo;
+
+    private Integer staNo;
+
+    private List<PickMatParam> list;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/PickMatParam.java b/src/main/java/com/zy/asrs/entity/param/PickMatParam.java
new file mode 100644
index 0000000..912fb38
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/PickMatParam.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class PickMatParam {
+
+    private String matnr;
+
+    private String batch;
+
+    private String orderNo;
+
+    private Long orderId;
+
+    private Double count;
+
+    private Double useCount;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/result/StockVo.java b/src/main/java/com/zy/asrs/entity/result/StockVo.java
index b4d99ca..8114c7f 100644
--- a/src/main/java/com/zy/asrs/entity/result/StockVo.java
+++ b/src/main/java/com/zy/asrs/entity/result/StockVo.java
@@ -10,10 +10,12 @@
 
     private String matnr;
 
+    private String maktx;
+
+    private String specs;
+
     private String batch;
 
     private Double count;
-
-    private String memo;
 
 }
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index 497cc9d..8d8bbd6 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -56,4 +56,7 @@
      * @return 搴撳瓨鏁伴噺
      */
     Long selectCountToManByMatnr(@Param("matnr") String matnr,@Param("batch") String batch);
+
+    int increaseWorkQtyByOrderNo(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("qty") Double qty);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index 78708f9..c586e5d 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -52,4 +52,6 @@
      * @return 杩斿洖涓や釜閿�煎锛宎srCount鍦ㄧ珛搴撳簱瀛橈紝manCount鍦ㄥ钩搴撳簱瀛�
      */
     Map<String,Long> selectCountByMatnr(String matnr, String batch);
+
+    boolean increaseWorkQtyByOrderNo(String orderNo, String matnr, String batch, Double qty);
 }
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 f4ed538..e54969f 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,7 +1,5 @@
 package com.zy.asrs.service.impl;
 
-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.DateUtils;
@@ -9,17 +7,17 @@
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.*;
+import com.zy.asrs.entity.param.MatSyncParam;
+import com.zy.asrs.entity.param.OpenOrderPakinParam;
+import com.zy.asrs.entity.param.OpenOrderPakoutParam;
+import com.zy.asrs.entity.param.PackParam;
 import com.zy.asrs.entity.result.InOutCountDto;
-import com.zy.asrs.entity.result.OpenOrderCompeteResult;
 import com.zy.asrs.entity.result.StockVo;
 import com.zy.asrs.mapper.TagMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.MatUtils;
-import com.zy.asrs.utils.Utils;
 import com.zy.common.model.DetlDto;
 import com.zy.common.utils.NodeUtils;
-import com.zy.common.utils.Synchro;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -485,49 +483,17 @@
                 // 鍒嗙被
                 Long tagId;
                 // 涓�绾у垎绫�
-                if (!Cools.isEmpty(matParam.getGroupCode()) && !Cools.isEmpty(matParam.getGroupName())) {
-                    Tag priTag = tagService.selectByName(matParam.getGroupCode(), 2);
-                    if (priTag == null) {
-                        Tag top = tagService.getTop();
-                        NodeUtils nodeUtils = new NodeUtils();
-                        nodeUtils.executePath(top.getId());
-                        priTag = new Tag(
-                                null,    // 缂栧彿
-                                matParam.getGroupCode(),    // 鍚嶇О
-                                top.getId(),    // 鐖剁骇
-                                top.getName(),    // 鐖剁骇鍚嶇О
-                                nodeUtils.path.toString(),    // 鍏宠仈璺緞
-                                nodeUtils.pathName.toString(),    // 鍏宠仈璺緞鍚�
-                                0,    // 绫诲瀷
-                                null,    // 璐熻矗浜�
-                                null,    // 鍥剧墖
-                                null,    // 绠�瑕佹弿杩�
-                                null,    // 鏁伴噺
-                                2,    // 绛夌骇
-                                null,    // 鎺掑簭
-                                1,    // 鐘舵��
-                                now,    // 娣诲姞鏃堕棿
-                                null,    // 娣诲姞浜哄憳
-                                now,    // 淇敼鏃堕棿
-                                null,    // 淇敼浜哄憳
-                                null    // 澶囨敞
-                        );
-                        if (tagMapper.insert(priTag) == 0) {
-                            throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
-                        }
-                    }
+                if (!Cools.isEmpty(matParam.getGroupName())) {
                     // 浜岀骇鍒嗙被
                     Tag secTag = tagService.selectByName(matParam.getGroupName(), 3);
                     if (secTag == null) {
-                        NodeUtils nodeUtils = new NodeUtils();
-                        nodeUtils.executePath(priTag.getId());
                         secTag = new Tag(
                                 null,    // 缂栧彿
                                 matParam.getGroupName(),    // 鍚嶇О
-                                priTag.getId(),    // 鐖剁骇
-                                priTag.getName(),    // 鐖剁骇鍚嶇О
-                                nodeUtils.path.toString(),    // 鍏宠仈璺緞
-                                nodeUtils.pathName.toString(),    // 鍏宠仈璺緞鍚�
+                                10010L,    // 鐖剁骇
+                                "鍏ㄩ儴",    // 鐖剁骇鍚嶇О
+                                "10009,10010",    // 鍏宠仈璺緞
+                                "鍏ㄩ儴,鍏ㄩ儴",    // 鍏宠仈璺緞鍚�
                                 0,    // 绫诲瀷
                                 null,    // 璐熻矗浜�
                                 null,    // 鍥剧墖
@@ -545,17 +511,20 @@
                         if (tagMapper.insert(secTag) == 0) {
                             throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
                         }
+                        Tag tag = tagService.selectByName(matParam.getGroupName(), 3);
+                        tagId = tag.getId();
+                    } else {
+                        tagId = secTag.getId();
                     }
-                    tagId = secTag.getId();
                 } else {
-                    tagId = tagService.getTop().getId();
+                    throw new CoolException("鍟嗗搧鍒嗙被涓嶈兘涓虹┖");
+//                    tagId = tagService.getTop().getId();
                 }
                 mat.sync(matParam);
 //            mat.setMatnr(para);
 //            mat.setMaktx(param.getMaktx());
 //            mat.setSpecs(param.getSpecs());
 //            mat.setModel(param.getModel());
-
                 mat.setTagId(tagId);
                 mat.setStatus(1);
                 mat.setCreateTime(now);
@@ -566,7 +535,9 @@
                     log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
                 }
             } else {
-                mat.sync(param);
+//                mat.sync(param);
+                mat.setMaktx(matParam.getMaktx());
+                mat.setSpecs(matParam.getSpecs());
                 if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr", matParam.getMatnr()))) {
                     throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳");
                 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
index db16b05..8126ad5 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -127,4 +127,9 @@
         map.put("manCount",orderDetlMapper.selectCountToManByMatnr(matnr, batch));
         return map;
     }
+
+    @Override
+    public boolean increaseWorkQtyByOrderNo(String orderNo, String matnr, String batch, Double qty) {
+        return this.baseMapper.increaseWorkQtyByOrderNo(orderNo, matnr, batch, qty) > 0;
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 977a63a..0f50023 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -73,7 +73,7 @@
         if (complete) {
             for (OrderDetl orderDetl : orderDetls) {
                 //鐢熸垚鍗曟嵁鍜屽叆搴撻�氱煡妗f椂锛岀粰batch涓虹┖鐨勬槑缁嗚祴浜嗕竴涓� =""锛� 鐜板湪鏀逛负null锛屽洖浼犵敤
-                if (orderDetl.getBatch().equals("")){
+                if (!Cools.isEmpty(orderDetl.getBatch()) && orderDetl.getBatch().equals("")){
                     orderDetl.setBatch(null);
                     orderDetlService.updateById(orderDetl);
                 }
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 c804b6c..87e7d6e 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -835,6 +835,7 @@
             locDetl.sync(mat);
             locDetl.setZpallet(zpallet);
             locDetl.setBatch(adjust.getBatch());
+            locDetl.setBarcode(locDetls.get(0).getBarcode());
             locDetl.setLocNo(locMast.getLocNo());
             locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
             locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
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 9e5475b..f045f22 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -1,9 +1,8 @@
 package com.zy.asrs.task.handler;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 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;
@@ -15,17 +14,18 @@
 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.apache.commons.codec.digest.DigestUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Created by vincent on 2020/7/7
@@ -55,104 +55,165 @@
             return SUCCESS;
         }
         List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+
+        // 鑾峰彇璇锋眰澶�
+        Map<String, Object> headers = getHeaders();
+
+        // 鏋勯�犺姹備綋
+        String body = getBody(orderDetls, order);
+
         // 鍏ュ簱瀹屾垚涓婃姤
-        if (docType.getPakin() == 1) {
-            JSONObject orderJson = new JSONObject();
-            orderJson.put("orderNo",order.getOrderNo());
-            String response = "";
-            boolean success = false;
-            try {
-                response = new HttpHandler.Builder()
-                        .setUri(MesConstant.URL)
-                        .setPath(MesConstant.PAKIN_URL)
-                        .setJson(orderJson.toJSONString())
-                        .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(orderJson), response);
-                    throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+        String response = "";
+        boolean success = false;
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(MesConstant.URL)
+                    .setPath(MesConstant.PAKIN_URL)
+                    .setHeaders(headers)
+                    .setJson(body)
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            JSONObject std_data = jsonObject.getJSONObject("std_data");
+            JSONObject execution = std_data.getJSONObject("execution");
+            String code = execution.getString("code");
+            JSONObject std_data1 = jsonObject.getJSONObject("parameter");
+            JSONObject execution1 = std_data1.getJSONObject("response_result");
+            String status = execution1.getString("Status");
+
+            if ("0".equals(code) && "0".equals(status)) {
+                success = true;
+                // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
+                if (!orderService.updateSettle(order.getId(), 6L, null)) {
+                    throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
                 }
-            } catch (Exception e) {
-                log.error("fail", e);
+            } else {
+                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PAKIN_URL, body, 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(orderJson),
-                            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()));
-            }
-            String response = "";
-            boolean success = false;
+            return FAIL.setMsg(e.getMessage());
+        } finally {
             try {
-                response = new HttpHandler.Builder()
-                        .setUri(MesConstant.URL)
-                        .setPath(MesConstant.PAKOUT_URL)
-                        .setJson(JSON.toJSONString(pakoutParam))
-                        .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.PAKOUT_URL, JSON.toJSONString(pakoutParam), response);
-                    throw new CoolException("涓婃姤mes绯荤粺澶辫触");
-                }
+                // 淇濆瓨鎺ュ彛鏃ュ織
+                apiLogService.save(
+                        docType.getPakin() == 1 ?"鍏ュ簱涓婃姤" : "鍑哄簱涓婃姤",
+                        MesConstant.URL + MesConstant.PAKIN_URL,
+                        null,
+                        "127.0.0.1",
+                        JSON.toJSONString(body),
+                        response,
+                        success
+                );
             } catch (Exception e) {
-                log.error("fail", e);
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return FAIL.setMsg(e.getMessage());
-            } finally {
-                try {
-                    // 淇濆瓨鎺ュ彛鏃ュ織
-                    apiLogService.save(
-                            "鎴愬搧搴撳嚭搴撲笂鎶�",
-                            MesConstant.URL + MesConstant.PAKOUT_URL,
-                            null,
-                            "127.0.0.1",
-                            JSON.toJSONString(pakoutParam),
-                            response,
-                            success
-                    );
-                } catch (Exception e) { log.error("", e); }
+                log.error("", e);
             }
         }
         return SUCCESS;
     }
 
+    private String getBody(List<OrderDetl> orderDetls, Order order) {
+
+        JSONObject orderJson = new JSONObject();
+        JSONObject orderJson1 = new JSONObject();
+        JSONObject orderJson2 = new JSONObject();
+        JSONObject orderJson3 = new JSONObject();
+
+        JSONArray jsonArray = new JSONArray();
+        for(OrderDetl orderDetl:orderDetls) {
+            Map<String,Object> map = new HashMap<>();
+            map.put("matnr",orderDetl.getMatnr());
+            map.put("anfme",orderDetl.getAnfme());
+            jsonArray.add(map);
+        }
+
+        orderJson3.put("orderNo",order.getOrderNo());
+        orderJson3.put("TypeKey",order.getDocType$());
+        orderJson3.put("matList",jsonArray);
+        orderJson2.put("importData",orderJson3);
+        orderJson1.put("parameter",orderJson2);
+        orderJson.put("std_data",orderJson1);
+        return orderJson.toJSONString();
+    }
+
+    Map<String, Object> getHeaders(){
+        JSONObject digiHost = new JSONObject();
+        digiHost.put("prod","XThirdParty");
+        digiHost.put("ver","1.0");
+        digiHost.put("ip","192.168.10.160");
+        digiHost.put("id","XWMS");
+        digiHost.put("timezone","+8");
+        digiHost.put("timestamp",new Date().getTime());
+        digiHost.put("acct","dcms");
+
+        JSONObject digiService = new JSONObject();
+        digiService.put("prod","E10");
+        digiService.put("name","XCommon.ImportData");
+        digiService.put("ip","192.168.10.160");
+        digiService.put("id","SW_TEST_External");
+
+        String key = digiHost.toJSONString() + digiService.toJSONString();
+        String keyMd5 = DigestUtils.md5Hex(key);
+
+
+        Map<String,Object> headers = new HashMap<>();
+        headers.put("digi-type","sync ");
+        headers.put("digi-protocol","raw");
+        headers.put("digi-host",digiHost.toJSONString());
+        headers.put("digi-service",digiService.toJSONString());
+        headers.put("digi-key",keyMd5);
+        headers.put("digi-datakey"," XCommon.ImportData");
+
+        return headers;
+    }
+
+    public static void main(String[] args) {
+
+        String msg = "{\n" +
+                "    \"std_data\": {\n" +
+                "        \"execution\": {\n" +
+                "            \"code\": \"0\",\n" +
+                "            \"sql_code\": \"\",\n" +
+                "            \"description\": \"鎵ц鎴愬姛\",\n" +
+                "            \"token_id\": \"e7b4b7d668ec41fa83f643eb1b322959\"\n" +
+                "        },\n" +
+                "        \"parameter\": {\n" +
+                "            \"response_result\": {\n" +
+                "                \"Status\": \"0\",\n" +
+                "                \"Message\": \"鎿嶄綔鎴愬姛锛乗",\n" +
+                "                \"DOC_NO\": \"\"\n" +
+                "            }\n" +
+                "        }\n" +
+                "    }\n" +
+                "}";
+        JSONObject jsonObject = JSON.parseObject(msg);
+        JSONObject std_data = jsonObject.getJSONObject("std_data");
+        JSONObject execution = std_data.getJSONObject("execution");
+        System.out.println(jsonObject.get("std_data"));
+        System.out.println(execution.getString("code"));
+
+//        JSONObject orderJson = new JSONObject();
+//        JSONObject orderJson1 = new JSONObject();
+//        JSONObject orderJson2 = new JSONObject();
+//        JSONObject orderJson3 = new JSONObject();
+//
+//        JSONArray jsonArray = new JSONArray();
+//        Map<String,Object> map = new HashMap<>();
+//        map.put("matnr","301080001");
+//        map.put("anfme","23456");
+//        JSONObject jsonObject = new JSONObject();
+//        jsonObject.put("matnr","301080001");
+//        jsonObject.put("anfme","23456");
+//        jsonArray.add(map);
+//
+//        orderJson3.put("orderNo","3600-201702010001");
+//        orderJson3.put("TypeKey","PURCHASE_ARRIVAL");
+//        orderJson3.put("matList",jsonArray);
+//        orderJson2.put("importData",orderJson3);
+//        orderJson1.put("parameter",orderJson2);
+//        orderJson.put("std_data",orderJson1);
+//        System.out.println(orderJson.toJSONString());
+    }
 }
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 68ac6c0..7d518be 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -204,19 +204,15 @@
                     // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
                     List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                     if (wrkDetls54.isEmpty()) {
-//                        exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
                     }
                     // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
                     for (WrkDetl wrkDetl:wrkDetls54) {
 
                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
                         if (null != locDetl) {
-                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
-//                                exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
-                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            if (!locDetlService.updateAnfme(locDetl.getAnfme() + wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+                                exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
                             }
                         } else {
                             locDetl = new LocDetl();
@@ -227,11 +223,25 @@
                             locDetl.setModiTime(now);
                             locDetl.setAppeTime(now);
                             if (!locDetlService.insert(locDetl)) {
-//                                exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
-                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                                exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
                             }
                         }
+
+                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                        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())) {
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                                }
+                            }
+                        } catch (Exception ignore){}
+
                     }
                     // 淇敼搴撲綅鐘舵�� Q ====>> F
                     if (locMast.getLocSts().equals("Q")) {
@@ -240,9 +250,7 @@
                         locMast.setIoTime(now);
                         locMast.setModiTime(now);
                         if (!locMastService.updateById(locMast)) {
-//                            exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                         }
                     }
                     break;
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index 2e6289d..dc7a590 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -20,7 +20,7 @@
         generator.url="127.0.0.1:1433;databasename=phpsasrs";
         generator.username="sa";
         generator.password="sa@123";
-        generator.table="man_mat_v2";
+        generator.table="man_bom_mat";
         generator.packagePath="com.zy.asrs";
         generator.build();
     }
diff --git a/src/main/java/com/zy/common/constant/MesConstant.java b/src/main/java/com/zy/common/constant/MesConstant.java
index eb34e04..368f46e 100644
--- a/src/main/java/com/zy/common/constant/MesConstant.java
+++ b/src/main/java/com/zy/common/constant/MesConstant.java
@@ -5,11 +5,11 @@
  */
 public class MesConstant {
 
-    public static final String URL = "http://192.168.99.130:80";
+    public static final String URL = "http://192.186.5.235:9990";
 
     public static final String PACK_DOWN_URL = "mes/api/zy/v1/packDown/sendList";
 
-    public static final String PAKIN_URL = "mes/api/zy/v1/warehouse/sendList";
+    public static final String PAKIN_URL = "/CROSS/RESTful";
 
     public static final String PAKOUT_URL = "wmsFinprd/api/zy/v1/packOut/sendList";
 
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 46005e3..5acf897 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -73,7 +73,7 @@
                 if (wrkMast != null && wrkMast.getIoType() == 103) {
                     return R.parse(CodeRes.PICK_600);
                 }
-                return R.parse(CodeRes.NO_COMB_700);
+                return R.error(param.getBarcode() + "姝ゆ潯鐮佹湭缁勬墭锛岃鍏堢粍鎵橈紒");
             }
             int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
             int countWrk = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode())
diff --git a/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java b/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
index a0cd9e8..0bc7c06 100644
--- a/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
+++ b/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
@@ -126,29 +126,29 @@
         //褰撳墠鏈嶅姟鍣ㄧ湡瀹炵殑鍙傛暟淇℃伅
         LicenseCheck serverCheckModel = getServerInfos();
 
-        if(expectedCheckModel != null && serverCheckModel != null){
-            //鏍¢獙IP鍦板潃
-            if(!checkIpAddress(expectedCheckModel.getIpAddress(),serverCheckModel.getIpAddress())){
-                //throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑IP娌″湪鎺堟潈鑼冨洿鍐�");
-            }
-
-            //鏍¢獙Mac鍦板潃
-            if(!checkIpAddress(expectedCheckModel.getMacAddress(),serverCheckModel.getMacAddress())){
-                //throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑Mac鍦板潃娌″湪鎺堟潈鑼冨洿鍐�");
-            }
-
-            //鏍¢獙涓绘澘搴忓垪鍙�
-            if(!checkSerial(expectedCheckModel.getMainBoardSerial(),serverCheckModel.getMainBoardSerial())){
-                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑涓绘澘搴忓垪鍙锋病鍦ㄦ巿鏉冭寖鍥村唴");
-            }
-
-            //鏍¢獙CPU搴忓垪鍙�
-            if(!checkSerial(expectedCheckModel.getCpuSerial(),serverCheckModel.getCpuSerial())){
-                throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑CPU搴忓垪鍙锋病鍦ㄦ巿鏉冭寖鍥村唴");
-            }
-        }else{
-            throw new LicenseContentException("涓嶈兘鑾峰彇鏈嶅姟鍣ㄧ‖浠朵俊鎭�");
-        }
+        //if(expectedCheckModel != null && serverCheckModel != null){
+        //    //鏍¢獙IP鍦板潃
+        //    if(!checkIpAddress(expectedCheckModel.getIpAddress(),serverCheckModel.getIpAddress())){
+        //        //throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑IP娌″湪鎺堟潈鑼冨洿鍐�");
+        //    }
+        //
+        //    //鏍¢獙Mac鍦板潃
+        //    if(!checkIpAddress(expectedCheckModel.getMacAddress(),serverCheckModel.getMacAddress())){
+        //        //throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑Mac鍦板潃娌″湪鎺堟潈鑼冨洿鍐�");
+        //    }
+        //
+        //    //鏍¢獙涓绘澘搴忓垪鍙�
+        //    if(!checkSerial(expectedCheckModel.getMainBoardSerial(),serverCheckModel.getMainBoardSerial())){
+        //        throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑涓绘澘搴忓垪鍙锋病鍦ㄦ巿鏉冭寖鍥村唴");
+        //    }
+        //
+        //    //鏍¢獙CPU搴忓垪鍙�
+        //    if(!checkSerial(expectedCheckModel.getCpuSerial(),serverCheckModel.getCpuSerial())){
+        //        throw new LicenseContentException("褰撳墠鏈嶅姟鍣ㄧ殑CPU搴忓垪鍙锋病鍦ㄦ巿鏉冭寖鍥村唴");
+        //    }
+        //}else{
+        //    throw new LicenseContentException("涓嶈兘鑾峰彇鏈嶅姟鍣ㄧ‖浠朵俊鎭�");
+        //}
     }
 
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0ea675c..6bc75ce 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -53,7 +53,7 @@
 
 #erp
 erp:
-  enable: false
+  enable: true
 
 
 #License鐩稿叧閰嶇疆
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index b5cf37c..ffd2182 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -106,6 +106,9 @@
         <if test="crnNo!=null and crnNo!='' ">
             and b.crn_no=#{crnNo}
         </if>
+        <if test="zpallet!=null and zpallet!='' ">
+            and a.zpallet like '%' + #{zpallet} + '%'
+        </if>
     </sql>
 
     <select id="getStockOutPage" resultMap="BaseResultMap">
@@ -297,11 +300,13 @@
     <select id="queryStockTotal" resultType="com.zy.asrs.entity.result.StockVo">
         select
         matnr,
+        maktx,
+        specs,
         batch,
         count(anfme) as count
         from asr_loc_detl
         where 1=1
-        group by matnr,batch
+        group by matnr,maktx,specs,batch
     </select>
     <select id="sum" resultType="java.lang.Integer">
         SELECT SUM(anfme) FROM asr_loc_detl
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index d7238bd..3cecff7 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -246,4 +246,20 @@
         </choose>
     </update>
 
+    <update id="increaseWorkQtyByOrderNo">
+        update man_order_detl
+        set work_qty = work_qty + #{qty}
+        where 1=1
+        and order_no = #{orderNo}
+        and matnr = #{matnr}
+        <choose>
+            <when test="batch != null and batch != ''">
+                and batch = #{batch}
+            </when>
+            <otherwise>
+                and (batch IS NULL OR batch = '')
+            </otherwise>
+        </choose>
+    </update>
+
 </mapper>
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index 68b3f59..50c9d9f 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -65,6 +65,7 @@
         where 1=1
         and settle = 4
         and status = 1
+        and doc_type not in(18,19)
         order by create_time asc
     </select>
 
diff --git a/src/main/webapp/static/js/locDetl/locDetl.js b/src/main/webapp/static/js/locDetl/locDetl.js
index 31b4786..c43ffcf 100644
--- a/src/main/webapp/static/js/locDetl/locDetl.js
+++ b/src/main/webapp/static/js/locDetl/locDetl.js
@@ -8,7 +8,7 @@
         ,{field: 'batch', align: 'center',title: '鎵瑰彿', width: 300, sort:true}
         ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
         ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
-        ,{field: 'specs', align: 'center',title: '閰嶇疆'}
+        ,{field: 'specs', align: 'center',title: '瑙勬牸'}
         ,{field: 'model', align: 'center',title: '浠g爜', hide: true}
         ,{field: 'color', align: 'center',title: '棰滆壊', hide: true}
         ,{field: 'brand', align: 'center',title: '绫诲瀷', hide: false}
diff --git a/src/main/webapp/static/js/waitPakin/waitPakin.js b/src/main/webapp/static/js/waitPakin/waitPakin.js
index 469f9e4..52a5578 100644
--- a/src/main/webapp/static/js/waitPakin/waitPakin.js
+++ b/src/main/webapp/static/js/waitPakin/waitPakin.js
@@ -17,7 +17,9 @@
                 return html;
             }}
         ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide:true}
-        ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true})
+        ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true}
+        ,{field: 'appeUser$', align: 'center',title: '娣诲姞浜哄憳'}
+        ,{field: 'appeTime$', align: 'center',title: '娣诲姞鏃堕棿'})
     return cols;
 }
 
diff --git a/src/main/webapp/static/js/wrkDetlLog/wrkDetlLog.js b/src/main/webapp/static/js/wrkDetlLog/wrkDetlLog.js
index c4a776a..1424043 100644
--- a/src/main/webapp/static/js/wrkDetlLog/wrkDetlLog.js
+++ b/src/main/webapp/static/js/wrkDetlLog/wrkDetlLog.js
@@ -3,6 +3,7 @@
     var cols = [
         {field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�'}
         ,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿'}
+        ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�'}
     ];
     cols.push.apply(cols, detlCols);
     cols.push({field: 'modiUser$', align: 'center',title: '淇敼浜哄憳',hide: true}
diff --git a/src/main/webapp/views/pakStore/locDetlCheckQuery.html b/src/main/webapp/views/pakStore/locDetlCheckQuery.html
index a6bf5e0..bad6e56 100644
--- a/src/main/webapp/views/pakStore/locDetlCheckQuery.html
+++ b/src/main/webapp/views/pakStore/locDetlCheckQuery.html
@@ -76,14 +76,19 @@
                 <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿"  autocomplete="off">
             </div>
         </div>
+<!--        <div class="layui-inline">-->
+<!--            <div class="layui-input-inline">-->
+<!--                <input class="layui-input" type="text" name="maktx" placeholder="鐗╂枡鎻忚堪" autocomplete="off">-->
+<!--            </div>-->
+<!--        </div>-->
         <div class="layui-inline">
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="maktx" placeholder="鐗╂枡鎻忚堪" autocomplete="off">
+                <input class="layui-input" type="text" name="batch" placeholder="鎵瑰彿" autocomplete="off">
             </div>
         </div>
         <div class="layui-inline">
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="batch" placeholder="鎵瑰彿" autocomplete="off">
+                <input class="layui-input" type="text" name="zpallet" placeholder="鎵樼洏鐮�" autocomplete="off">
             </div>
         </div>
         <!-- 鏃ユ湡鑼冨洿 -->
diff --git a/src/main/webapp/views/report/viewStayTime.html b/src/main/webapp/views/report/viewStayTime.html
index 6269cce..3a07408 100644
--- a/src/main/webapp/views/report/viewStayTime.html
+++ b/src/main/webapp/views/report/viewStayTime.html
@@ -24,6 +24,11 @@
             <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅鍙�" autocomplete="off">
         </div>
     </div>
+    <div class="layui-inline">
+        <div class="layui-input-inline">
+            <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+        </div>
+    </div>
 
     <!-- 寰呮坊鍔� -->
     <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
diff --git a/src/main/webapp/views/waitPakinLog/waitPakinLog.html b/src/main/webapp/views/waitPakinLog/waitPakinLog.html
index 72b13f8..3fb3aea 100644
--- a/src/main/webapp/views/waitPakinLog/waitPakinLog.html
+++ b/src/main/webapp/views/waitPakinLog/waitPakinLog.html
@@ -16,6 +16,11 @@
 <div id="search-box" class="layui-form layui-card-header">
     <div class="layui-inline">
         <div class="layui-input-inline">
+            <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <div class="layui-input-inline">
             <input class="layui-input" type="text" name="pakin_id" placeholder="鍏ュ簱閫氱煡鍙�" autocomplete="off">
         </div>
     </div>

--
Gitblit v1.9.1