From 105168a0c03b1361aefa8facc34639ca4ed676fd Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期一, 15 一月 2024 12:24:47 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OpenController.java             |   17 +
 src/main/java/com/zy/asrs/entity/param/PalletizingCompleteParam.java |   36 ++-
 src/main/java/com/zy/asrs/entity/WrkDetl.java                        |    2 
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java        |   94 ++++++++++
 src/main/java/com/zy/asrs/controller/MobileController.java           |    7 
 src/main/java/com/zy/common/web/WcsController.java                   |   24 +-
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java          |  172 +++++++++++++++++++
 src/main/java/com/zy/asrs/entity/param/TrussCombParam.java           |   88 +++++++--
 src/main/java/com/zy/asrs/service/OpenService.java                   |    1 
 src/main/java/com/zy/asrs/service/MobileService.java                 |    1 
 src/main/java/com/zy/asrs/utils/PostMesDataUtils.java                |   69 +++++++
 11 files changed, 462 insertions(+), 49 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 8683a42..2256762 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -206,6 +206,13 @@
         return R.ok("缁勬墭鎴愬姛");
     }
 
+    @RequestMapping("/truss/order/auth")
+    @ManagerAuth(memo = "閫�搴擄紝1妤兼鏋堕��搴擄紝閫�搴撳崟閫�搴�")
+    public R trussCombOrder(@RequestBody TrussCombParam combParam){
+        mobileService.trussCombOrder(combParam, getUserId());
+        return R.ok("缁勬墭鎴愬姛");
+    }
+
     @RequestMapping("/truss/comd/auth")
     @ManagerAuth(memo = "鎵嬪姩鍏ュ簱锛�2妤兼棤闇�妗佹灦鎵嬪姩鍏ュ簱")
     public R trussComb2(@RequestBody PalletizingCompleteParam combParam){
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index a343c06..425582e 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -222,7 +222,7 @@
      * 涓帶锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�
      */
     @PostMapping("/palletizing/complete/auth/v1")
-    @AppAuth(memo = "鐮佸灈瀹屾垚涓嬪彂鍏ュ簱淇℃伅")
+    @AppAuth(memo = "涓帶(2妤�)锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�")
     public synchronized R palletizingComplete(@RequestHeader(required = false) String appkey,
                                            @RequestBody PalletizingCompleteParam param,
                                            HttpServletRequest request) {
@@ -234,6 +234,21 @@
     }
 
     /**
+     * 鏉剧洓(1妤�)锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�
+     */
+    @PostMapping("/palletizing/complete/auth/v2")
+    @AppAuth(memo = "鏉剧洓(1妤�)锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�")
+    public synchronized R palletizingCompleteS(@RequestHeader(required = false) String appkey,
+                                              @RequestBody PalletizingCompleteParam param,
+                                              HttpServletRequest request) {
+//        appkey = "ea1f0459efc02a79f046f982767939ae";
+
+        auth(appkey, param, request);
+        openService.palletizingComplete(param);
+        return R.ok(param);
+    }
+
+    /**
      * 涓帶锛氬嚭搴撳畬鎴愭湀鍙扮浉鍏�
      */
     @PostMapping("/balcony/complete/auth/v1")
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetl.java b/src/main/java/com/zy/asrs/entity/WrkDetl.java
index 2e40634..7959e9f 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetl.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -128,7 +128,7 @@
     /**
      * 浜у湴
      */
-    @ApiModelProperty(value= "浜у湴")
+    @ApiModelProperty(value= "浜у湴  //姹熼摐 鏈ㄧ浣嶇疆")
     private String origin;
 
     /**
diff --git a/src/main/java/com/zy/asrs/entity/param/PalletizingCompleteParam.java b/src/main/java/com/zy/asrs/entity/param/PalletizingCompleteParam.java
index 14b5e2a..2198560 100644
--- a/src/main/java/com/zy/asrs/entity/param/PalletizingCompleteParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/PalletizingCompleteParam.java
@@ -11,8 +11,11 @@
 public class PalletizingCompleteParam {
 
     private String barcode;//	鏄�	瀛楃涓�	鎵樼洏鐮�
-    private String palletizingNo;//	鏄�	瀛楃涓�	鐮佸灈浣嶇紪鍙�
+    private Integer palletizingNo = 147;//	鏄�	瀛楃涓�	鐮佸灈浣嶇紪鍙�
+    private Integer palletizingNo2;//	鏄�	瀛楃涓�	鐩爣浣嶇疆缂栧彿
     private String boxType;//	鏄�	瀛楃涓�	鏈ㄧ绫诲瀷
+    private String orderNo;//	鏄�	瀛楃涓�	璁㈠崟缂栧彿
+    private String uuid;//	鏄�	瀛楃涓�	璁㈠崟缂栧彿
     private String createTime;//	鏄�	瀛楃涓�	鍒涘缓鏃堕棿
 
     private List<MatList> matLists;//		鏄�	鍒楄〃	鎷嗗灈璐х墿淇℃伅锛�2绠憋紝灏剧鍙兘1绠憋級
@@ -27,6 +30,7 @@
         private Integer anfme;//	鏄�	鏁板瓧鍨�	鏈ㄧ涓摐绠旀暟閲�
         private String batch;//	(鏄惁鍒嗘壒)	瀛楃涓�	鎵规鍙�
         private String specs;//	(鏄惁闇�瑕侊級	瀛楃涓�	瑙勬牸
+        private String standby4;//		鍗蜂俊鎭痷uid
         private List<MatDetlList> matDetlList;//		鏄�	鍒楄〃	鏈ㄧ涓摐绠斾俊鎭�
     }
 
@@ -39,20 +43,20 @@
         private String specsDetl;//	(鏄惁闇�瑕侊級	瀛楃涓�	瑙勬牸
     }
 
-    public Integer getDevNo$(){
-        if (!Cools.isEmpty(this.palletizingNo)){
-            switch (this.palletizingNo){
-                case "1":
-                    return 220;
-                case "2":
-                    return 216;
-                case "3":
-                    return 118;
-                default:
-                    return null;
-            }
-        }
-        return null;
-    }
+//    public Integer getDevNo$(){
+//        if (!Cools.isEmpty(this.palletizingNo)){
+//            switch (this.palletizingNo){
+//                case "1":
+//                    return 219;
+//                case "2":
+//                    return 215;
+//                case "3":
+//                    return 118;
+//                default:
+//                    return null;
+//            }
+//        }
+//        return null;
+//    }
 
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/TrussCombParam.java b/src/main/java/com/zy/asrs/entity/param/TrussCombParam.java
index 1c49418..d99aef9 100644
--- a/src/main/java/com/zy/asrs/entity/param/TrussCombParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/TrussCombParam.java
@@ -1,6 +1,16 @@
 package com.zy.asrs.entity.param;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.LocDetlRullUpDetail;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.service.LocDetlRullUpDetailService;
+import com.zy.asrs.service.OrderService;
+import io.swagger.models.License;
 import lombok.Data;
+
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -9,35 +19,77 @@
 @Data
 public class TrussCombParam {
 
-    private String barcode;//		瀛楃涓�	鎵樼洏鐮�
-    private String palletizingNo;//	鏄�	瀛楃涓�	鐮佸灈浣嶇紪鍙�
-    private String palletizingNo2;//	鏄�	瀛楃涓�	鐩爣鐮佸灈浣嶇紪鍙�
-    private String boxType;//	鏄�	瀛楃涓�	鏈ㄧ绫诲瀷
-    private String uuid;//		瀛楃涓�	鏃堕棿鎴�
+    private String barcode;//		瀛楃涓�	鎵樼洏鐮�    璁㈠崟鍏辩敤                        //涓婁紶
+    private Integer palletizingNo = 147;//	鏄�	瀛楃涓�	鐮佸灈浣嶇紪鍙�
+    private Integer staStart  = 147;//	鏄�	瀛楃涓�	鐮佸灈浣嶇紪鍙�                               //涓婁紶
+    private Integer palletizingNo2;//	鏄�	瀛楃涓�	鐩爣鐮佸灈浣嶇紪鍙�    璁㈠崟鍏辩敤
+    private Integer staEnd;//	鏄�	瀛楃涓�	鐩爣鐮佸灈浣嶇紪鍙�    璁㈠崟鍏辩敤                 //涓婁紶
+    private String boxType;//	鏄�	瀛楃涓�	鏈ㄧ绫诲瀷  brand                         //涓婁紶
+    private String uuid;//		瀛楃涓�	鏃堕棿鎴�                                      //涓婁紶
     private String createTime;//		瀛楃涓�	鍒涘缓鏃堕棿
+    private String orderNo;//		瀛楃涓�	璁㈠崟鍙�                                  //涓婁紶
 
-    private List<MatList> matLists;//		鏄�	鍒楄〃	鎷嗗灈璐х墿淇℃伅锛�2绠憋紝灏剧鍙兘1绠憋級
+    private List<MatList> matList;//		鏄�	鍒楄〃	鎷嗗灈璐х墿淇℃伅锛�2绠憋紝灏剧鍙兘1绠憋級    //涓婁紶
 
     @Data
     public static class MatList{
-        private String matnr;//	鏄�	瀛楃涓�	鐗╂枡缂栫爜
-        private String maktx;//		瀛楃涓�	鐗╂枡鍚嶇О
-        private String boxNo;//	鏄�	瀛楃涓�	鏈ㄧ缂栧彿锛堝敮涓�瀛楁锛屽嚭搴撲緷鎹紝鍑哄簱鏃舵寜鐓ф湪绠辩紪鍙峰嚭搴擄級
-        private String position;//	鏄�	瀛楃涓�	鏈ㄧ浣嶇疆锛堟媶鍨涙椂闇�瑕侊級
-        private Double weight;//	鏄�	灏忔暟鍨�	閲嶉噺
-        private Integer anfme;//		鏁板瓧鍨�	鏈ㄧ涓摐绠旀暟閲�
-        private String batch;//		瀛楃涓�	鎵规鍙�
+        private String matnr;//	鏄�	瀛楃涓�	鐗╂枡缂栫爜                                 //涓婁紶
+        private String maktx;//		瀛楃涓�	鐗╂枡鍚嶇О                                 //涓婁紶
+        private String boxNo;//	鏄�	瀛楃涓�	鏈ㄧ缂栧彿锛堝敮涓�瀛楁锛屽嚭搴撲緷鎹紝鍑哄簱鏃舵寜鐓ф湪绠辩紪鍙峰嚭搴擄級 batch      //涓婁紶
+        private String position;//	鏄�	瀛楃涓�	鏈ㄧ浣嶇疆锛堟媶鍨涙椂闇�瑕侊級 origin             //涓婁紶
+        private Double weight;//	鏄�	灏忔暟鍨�	閲嶉噺                                   //涓婁紶
+        private Integer anfme;//		鏁板瓧鍨�	鏈ㄧ涓摐绠旀暟閲�                          //涓婁紶
+        private String batch;//		瀛楃涓�	绠卞彿
         private String specs;//		瀛楃涓�	瑙勬牸
+        private String standby4;//		鍗蜂俊鎭疘d                                   //涓婁紶
         private List<MatDetlList> matDetlList;//		鏄�	鍒楄〃	鏈ㄧ涓摐绠斾俊鎭�
     }
 
     @Data
     public static class MatDetlList{
-        private String boxNoDetl;//	鏄�	瀛楃涓�	閾滅當缂栧彿锛堝敮涓�瀛楁锛�
-        private String positionDetl;//	鏄�	瀛楃涓�	閾滅當浣嶇疆锛堟媶鍨涙椂闇�瑕侊級
-        private Double weightDetl;//	鏄�	灏忔暟鍨�	閲嶉噺
-        private String batchDetl;//		瀛楃涓�	鎵规鍙�
-        private String specsDetl;//		瀛楃涓�	瑙勬牸
+        private String boxNoDetl;//	鏄�	瀛楃涓�	閾滅當缂栧彿锛堝敮涓�瀛楁锛�                  //涓婁紶
+        private String positionDetl;//	鏄�	瀛楃涓�	閾滅當浣嶇疆锛堟媶鍨涙椂闇�瑕侊級             //涓婁紶
+        private String weightDetl;//	鏄�	灏忔暟鍨�	閲嶉噺                              //涓婁紶
+        private String batchDetl;//		瀛楃涓�	鎵规鍙�                             //涓婁紶
+        private String specsDetl;//		瀛楃涓�	瑙勬牸                              //涓婁紶
+    }
+
+    public TrussCombParam(){}
+
+    public TrussCombParam(TrussCombParam trussCombParam, Order order, List<OrderDetl> orderDetlList){
+        LocDetlRullUpDetailService locDetlRullUpDetailService = SpringUtils.getBean(LocDetlRullUpDetailService.class);
+
+        this.barcode = trussCombParam.getBarcode();
+        this.staStart = 147;
+        this.staEnd = trussCombParam.getStaEnd();
+        this.boxType = orderDetlList.get(0).getBrand();
+        this.uuid = trussCombParam.getBarcode();
+        this.orderNo = trussCombParam.getOrderNo();
+        List<MatList> matLists = new ArrayList<>();
+        for (OrderDetl orderDetl:orderDetlList){
+            MatList matList = new MatList();
+            matList.setMatnr(orderDetl.getMatnr());
+            matList.setMaktx(orderDetl.getMaktx());
+            matList.setAnfme(orderDetl.getAnfme().intValue());
+            matList.setBatch(orderDetl.getBatch());
+            matList.setBoxNo(orderDetl.getBatch());
+            matList.setPosition("1");
+            matList.setWeight(orderDetl.getWeight());
+            matList.setSpecs(orderDetl.getSpecs());
+            List<MatDetlList> matDetlLists= new ArrayList<>();
+            List<LocDetlRullUpDetail> locDetlRullUpDetails = locDetlRullUpDetailService.selectList(new EntityWrapper<LocDetlRullUpDetail>().eq("uuid", orderDetl.getUnit()));
+            for (LocDetlRullUpDetail locDetlRullUpDetail:locDetlRullUpDetails){
+                MatDetlList matDetlList = new MatDetlList();
+                matDetlList.setBoxNoDetl(locDetlRullUpDetail.getRollNo());
+                matDetlList.setWeightDetl(locDetlRullUpDetail.getRollWeight());
+                matDetlList.setBatchDetl(locDetlRullUpDetail.getStandby1());
+                matDetlList.setSpecsDetl(locDetlRullUpDetail.getStandby2());
+                matDetlLists.add(matDetlList);
+            }
+            matList.setMatDetlList(matDetlLists);
+            matLists.add(matList);
+        }
+        this.matList = matLists;
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 26b564a..1d93e24 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -15,6 +15,7 @@
      */
     void comb(CombParam param, Long userId);
     void trussComb(TrussCombParam param, Long userId);
+    void trussCombOrder(TrussCombParam param, Long userId);
     void trussComb2(PalletizingCompleteParam param, 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 3bcfe4c..3144915 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -51,6 +51,7 @@
     void balconyComplete(LabellerMatParam param);
 
     void palletizingComplete(PalletizingCompleteParam param);
+    void palletizingCompleteS(PalletizingCompleteParam param);
 
     void singleUnstackingComplete(SingleUnstackingCompleteParam param);
 
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 d17cace..dbdd277 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -10,7 +10,9 @@
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.mapper.ManLocDetlMapper;
 import com.zy.asrs.service.*;
+import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.utils.MatUtils;
+import com.zy.asrs.utils.PostMesDataUtils;
 import com.zy.common.CodeRes;
 import com.zy.common.constant.MesConstant;
 import com.zy.common.entity.Parameter;
@@ -20,6 +22,7 @@
 import com.zy.common.utils.HttpHandler;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -35,6 +38,12 @@
 @Slf4j
 @Service
 public class MobileServiceImpl implements MobileService {
+
+    @Value("${srHangJia.url}")
+    private String srHangJiaUrl;
+
+    @Value("${srHangJia.reportOutPath}")
+    private String reportOutPath;
 
     @Autowired
     private MatService matService;
@@ -74,13 +83,96 @@
     private ManLocDetlService manLocDetlService;
     @Autowired
     private ManLocDetlMapper manLocDetlMapper;
+    @Autowired
+    private DocTypeService docTypeService;
 
 
     @Override
     @Transactional
     public void trussComb(TrussCombParam param, Long userId) {
-        param.setUuid(String.valueOf(new Date().getTime()));
+        param.setBarcode(String.valueOf(new Date().getTime()));
 
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getPalletizingNo())){
+            throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖");
+        }else if (Cools.isEmpty(param.getBoxType())){
+            throw new CoolException("鍙傛暟锛氭湪绠辩被鍨� boxType涓虹┖");
+        }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size() != 1){
+            throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖");
+        }
+
+        param.setStaEnd(param.getPalletizingNo2());
+
+        try{
+            ReturnT<String> success = new PostMesDataUtils().postMesData("妗佹灦涓婁綅杞欢", srHangJiaUrl, reportOutPath, param);
+            if (success.getCode()!=200){
+                throw new CoolException("缁勬墭澶辫触");
+            }
+        } catch (Exception e){
+            throw new CoolException("缁勬墭澶辫触");
+        }
+    }
+
+    @Override
+    @Transactional
+    public void trussCombOrder(TrussCombParam param, Long userId) {
+
+        param.setBarcode(String.valueOf(new Date().getTime()));
+
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getPalletizingNo())){
+            throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖");
+        }else if (Cools.isEmpty(param.getOrderNo())){
+            throw new CoolException("鍙傛暟锛氶��璐у崟鍗曞彿 orderNo涓虹┖");
+        }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size() != 1){
+            throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖");
+        }
+
+        Order order = orderService.selectByNo(param.getOrderNo());
+        if (Cools.isEmpty(order)){
+            throw new CoolException("鏈煡璇㈠埌姝よ鍗曪紝鍗曞彿锛�"+param.getOrderNo());
+        }
+        DocType docType = docTypeService.selectById(order.getDocType());
+        if (Cools.isEmpty(docType) || !docType.getDocName().equals("閫�璐у叆搴撳崟")){
+            throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+"涓嶆槸閫�璐у叆搴撳崟");
+        }
+
+        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+        if (Cools.isEmpty(orderDetls) || orderDetls.size()==0){
+            throw new CoolException("鏈煡璇㈠埌姝よ鍗曟槑缁嗭紝鍗曞彿锛�"+param.getOrderNo());
+        }
+        List<String> orderBoxNoList = new ArrayList<>();
+        for (OrderDetl orderDetl: orderDetls){
+            if (orderDetl.getWorkQty()==0){
+                orderBoxNoList.add(orderDetl.getBatch());
+            }
+        }
+        if (orderBoxNoList.size()==0 || orderBoxNoList.size()<param.getMatList().size()){
+            throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 閫�璐ф暟閲忓ぇ浜庢槑缁嗘暟閲�");
+        }
+        List<String> matListBoxNoList = new ArrayList<>();
+        for (TrussCombParam.MatList matList: param.getMatList()){
+            if (!orderBoxNoList.contains(matList.getBoxNo())){
+                throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 绠卞彿锛�"+matList.getBatch()+"涓嶅睘浜庢璁㈠崟鎴栬�呭凡缁忓叆搴�");
+            }else {
+                matListBoxNoList.add(matList.getBoxNo());
+            }
+        }
+        List<OrderDetl> orderDetlList = new ArrayList<>();
+        for (OrderDetl orderDetl: orderDetls){
+            if (matListBoxNoList.contains(orderDetl.getBatch())){
+                orderDetlList.add(orderDetl);
+            }
+        }
+        TrussCombParam trussCombParam = new TrussCombParam(param, order, orderDetlList);
+        try{
+            ReturnT<String> success = new PostMesDataUtils().postMesData("妗佹灦涓婁綅杞欢", srHangJiaUrl, reportOutPath, trussCombParam);
+            if (success.getCode()!=200){
+                throw new CoolException("缁勬墭澶辫触");
+            }
+        } catch (Exception e){
+            throw new CoolException("缁勬墭澶辫触");
+        }
     }
     @Override
     @Transactional
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 13f2923..f7788cf 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
@@ -14,9 +15,13 @@
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.MatUtils;
 import com.zy.common.model.DetlDto;
+import com.zy.common.model.LocTypeDto;
+import com.zy.common.model.StartupDto;
 import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.NodeUtils;
+import com.zy.common.web.WcsController;
+import com.zy.common.web.param.SearchLocParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -71,6 +76,8 @@
     private WrkMastStaLogService wrkMastStaLogService;
     @Autowired
     private StaDescService staDescService;
+    @Autowired
+    private LocMastService locMastService;
 
     @Override
     @Transactional
@@ -788,6 +795,171 @@
 
     }
 
+    /*
+     * 鏉剧洓(1妤�)锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�
+     * */
+    @Override
+    @Transactional
+    public void palletizingCompleteS(PalletizingCompleteParam param) {
+        Long userId = 7776L;//鏉剧洓
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getBarcode())){
+            throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode涓虹┖");
+        }else if (Cools.isEmpty(param.getPalletizingNo())){
+            throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖");
+        }else if (Cools.isEmpty(param.getBoxType())){
+            throw new CoolException("鍙傛暟锛氭湪绠辩被鍨� boxType涓虹┖");
+        }else if (Cools.isEmpty(param.getMatLists()) || param.getMatLists().size()!=1){
+            throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖");
+        }
+
+        ArrayList<String> positions = new ArrayList<>();   //鏈ㄧ浣嶇疆鏌ラ噸      (orgin)
+        ArrayList<String> boxNos = new ArrayList<>();   //鏈ㄧ鍞竴缂栫爜鏌ラ噸  锛坆atch锛�
+        //鍒ゆ柇matLists鍙傛暟
+        for (PalletizingCompleteParam.MatList matList:param.getMatLists()){
+            if (Cools.isEmpty(matList.getMatnr())){
+                throw new CoolException("鍙傛暟锛氱墿鏂欑紪鐮� matnr涓虹┖");
+            }else if (Cools.isEmpty(matList.getPosition())){
+                throw new CoolException("鐗╂枡缂栫爜锛�"+matList.getMatnr()+"銆佸弬鏁帮細鐮佸灈浣嶇疆 position涓虹┖");
+            }else if (Cools.isEmpty(matList.getBoxNo())){
+                throw new CoolException("鐗╂枡缂栫爜锛�"+matList.getMatnr()+"銆佸弬鏁帮細鏈ㄧ缂栧彿 boxNo涓虹┖");
+            }else if (Cools.isEmpty(matList.getAnfme()) || matList.getAnfme().equals(0)){
+                throw new CoolException("鐗╂枡缂栫爜锛�"+matList.getMatnr()+"銆佸弬鏁帮細鏈ㄧ涓摐绠旀暟閲� anfme涓虹┖");
+            }else if (Cools.isEmpty(matList.getWeight()) || matList.getWeight().equals(0D)){
+                throw new CoolException("鐗╂枡缂栫爜锛�"+matList.getMatnr()+"銆佸弬鏁帮細閲嶉噺 weight涓虹┖");
+            }
+
+            if (!positions.contains(matList.getPosition())){
+                positions.add(matList.getPosition());
+            }else {
+                throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBoxNo()+",鏈ㄧ浣嶇疆瀛樺湪閲嶅锛�"+matList.getPosition());
+            }
+
+            if (!boxNos.contains(matList.getBoxNo())){
+                boxNos.add(matList.getBoxNo());
+            }else {
+                throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBoxNo()+",鏈ㄧ缂栫爜瀛樺湪閲嶅");
+            }
+        }
+
+        BasDevp basDevp = basDevpService.selectById(param.getPalletizingNo2());
+        if (Cools.isEmpty(basDevp)){
+            throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo="+param.getPalletizingNo2()+"涓嶅瓨鍦�");
+        }
+        if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getPalletizingNo()+" 鎵�澶勭珯鐐逛笉鏄嚜鍔ㄧ姸鎬�");
+        }
+        if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getPalletizingNo()+" 鎵�澶勭珯鐐逛笉鏄湁鐗╃姸鎬�");
+        }
+//        if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){
+//            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getPalletizingNo()+" 鎵�澶勭珯鐐逛笉鏄兘鍏ョ姸鎬�");
+//        }
+
+
+        if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()))!=0
+                || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()))!=0
+                || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()))!=0){
+            throw new CoolException("鎵樼洏鏉$爜锛�"+param.getBarcode()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭");
+        }
+
+
+        Date now = new Date();
+        List<WaitPakin> waitPakins = new ArrayList<>();
+        String matnr = null;
+        for (PalletizingCompleteParam.MatList matList:param.getMatLists()){
+            long rollUp = new Date().getTime();
+            Mat mat = matService.selectByMatnr(matList.getMatnr());
+            if (Cools.isEmpty(mat)) {
+                throw new CoolException(matList.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+            }
+            matnr = mat.getMatnr();
+            WaitPakin waitPakin = new WaitPakin();
+            waitPakin.sync(mat);
+            waitPakin.setModel(matList.getBatch());     //鎵规
+            waitPakin.setSpecs(matList.getSpecs());     //瑙勬牸
+            waitPakin.setBatch(matList.getBoxNo());       //鏈ㄧ缂栫爜
+            waitPakin.setBrand(param.getBoxType());     //鏈ㄧ绫诲瀷
+            waitPakin.setZpallet(param.getBarcode());   //鎵樼洏鐮�
+            waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃�
+            waitPakin.setIoStatus("Y");     // 鍏ュ嚭鐘舵��
+            waitPakin.setAnfme(matList.getAnfme().doubleValue());  // 鏈ㄧ涓摐绠旀暟閲�
+            waitPakin.setStatus("Y");    // 鐘舵��
+            waitPakin.setAppeUser(userId);
+            waitPakin.setAppeTime(now);
+            waitPakin.setModiUser(userId);
+            waitPakin.setModiTime(now);
+            waitPakin.setRollUp(rollUp);
+            if (!Cools.isEmpty(matList.getMatDetlList())){
+                for (PalletizingCompleteParam.MatDetlList matDetlList:matList.getMatDetlList()){
+                    LocDetlRullUpDetail locDetlRullUpDetail = new LocDetlRullUpDetail();
+                    locDetlRullUpDetail.setUuid(rollUp);
+                    locDetlRullUpDetail.setRollNo(matDetlList.getBoxNoDetl());
+                    locDetlRullUpDetail.setRollWeight(matDetlList.getWeightDetl().toString());
+                    locDetlRullUpDetailService.insert(locDetlRullUpDetail);
+                }
+            }
+            if (!waitPakinService.insert(waitPakin)) {
+                throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+            }
+            waitPakins.add(waitPakin);
+        }
+        LocTypeDto locTypeDto = new LocTypeDto();
+        locTypeDto.setLocType1((short)1);
+
+        StartupDto dto = commonService.getLocNo(1, 1, param.getPalletizingNo2(), matnr,null,null, locTypeDto);
+
+        int workNo = dto.getWorkNo();
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(new Date());
+        wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+        wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+        wrkMast.setIoPri(13D); // 浼樺厛绾�
+        wrkMast.setCrnNo(dto.getCrnNo());
+        wrkMast.setSourceStaNo(dto.getSourceStaNo());
+        wrkMast.setStaNo(dto.getStaNo());
+        wrkMast.setLocNo(dto.getLocNo());
+        wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("Y");
+        wrkMast.setCtnType(0); // 瀹瑰櫒绫诲瀷
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiTime(now);
+        boolean res = wrkMastService.insert(wrkMast);
+        if (!res) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        // 鐢熸垚宸ヤ綔妗f槑缁�
+        waitPakins.forEach(waitPakin -> {
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(waitPakin);
+            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+            wrkDetl.setIoTime(wrkMast.getIoTime());
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiTime(now);
+            if (!wrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
+        });
+        // 鏇存柊鐩爣搴撲綅鐘舵��
+        LocMast locMast = locMastService.selectById(dto.getLocNo());
+        if (locMast.getLocSts().equals("O")){
+            locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+            locMast.setModiTime(now);
+            if (!locMastService.updateById(locMast)){
+                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+            }
+        } else {
+            throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+        }
+    }
+
 
     /*
      *涓帶锛氬嚭搴撳畬鎴愭湀鍙扮浉鍏�
diff --git a/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java b/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
new file mode 100644
index 0000000..dad036d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
@@ -0,0 +1,69 @@
+package com.zy.asrs.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.core.common.SpringUtils;
+import com.core.exception.CoolException;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.impl.ApiLogServiceImpl;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+
+@Slf4j
+public class PostMesDataUtils extends AbstractHandler<String> {
+
+    public ReturnT<String> postMesData(String name,String URL,String mesPath, Object combParam){
+//        if (true){
+//            System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam);
+//            return SUCCESS;
+//        }
+        if(combParam != null){
+            String response = "";
+            boolean success = false;
+            try {
+//                Map<String, Object> map = new HashMap<>()
+//                map.put("appkey","ea1f0459efc02a79f046f982767939ae");
+                response = new HttpHandler.Builder()
+//                        .setHeaders(map)
+                        .setUri(URL)
+                        .setPath(mesPath)
+                        .setJson(JSON.toJSONString(combParam))
+                        .build()
+                        .doPost();
+                System.out.println("response:"+response);
+                JSONObject jsonObject = JSON.parseObject(response);
+
+                if (jsonObject.getInteger("code").equals(200)) {
+                    success = true;
+                } else {
+                    log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
+                    throw new CoolException("涓婃姤"+name);
+                }
+            } catch (Exception e) {
+                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
+//                      TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg(e.getMessage());
+            } finally {
+                try {
+                    // 淇濆瓨鎺ュ彛鏃ュ織
+                    ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
+                    apiLogService.save(
+                            "涓婃姤"+name,
+                            URL +"/"+ mesPath,
+                            null,
+                            "127.0.0.1",
+                            JSON.toJSONString(combParam),
+                            response,
+                            success
+                    );
+                } catch (Exception e) {
+                    log.error("", e); }
+            }
+        }
+        return SUCCESS;
+    }
+}
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 16f7ce4..780c3bd 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -271,12 +271,12 @@
         if (!waitPakinService.update(setParam, wrapper)) {
             throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
         }
-        // 鏇存柊婧愮珯鐐逛俊鎭�
-        sourceStaNo.setWrkNo(workNo);
-        sourceStaNo.setModiTime(now);
-        if (!basDevpService.updateById(sourceStaNo)){
-            throw new CoolException("鏇存柊婧愮珯澶辫触");
-        }
+//        // 鏇存柊婧愮珯鐐逛俊鎭�
+////        sourceStaNo.setWrkNo(workNo);
+//        sourceStaNo.setModiTime(now);
+//        if (!basDevpService.updateById(sourceStaNo)){
+//            throw new CoolException("鏇存柊婧愮珯澶辫触");
+//        }
         // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
         if (locMast.getLocSts().equals("O")){
@@ -323,12 +323,12 @@
         if (!res) {
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
-        // 鏇存柊婧愮珯鐐逛俊鎭�
-        sourceStaNo.setWrkNo(workNo);
-        sourceStaNo.setModiTime(new Date());
-        if (!basDevpService.updateById(sourceStaNo)){
-            throw new CoolException("鏇存柊婧愮珯澶辫触");
-        }
+//        // 鏇存柊婧愮珯鐐逛俊鎭�
+//        sourceStaNo.setWrkNo(workNo);
+//        sourceStaNo.setModiTime(new Date());
+//        if (!basDevpService.updateById(sourceStaNo)){
+//            throw new CoolException("鏇存柊婧愮珯澶辫触");
+//        }
         // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
         if (locMast.getLocSts().equals("O")){

--
Gitblit v1.9.1