From 09073d8b84d438d57d237d93d6dac4df5f838c57 Mon Sep 17 00:00:00 2001
From: mrzhssss <pro6@qq.com>
Date: 星期二, 29 十一月 2022 11:33:21 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/entity/OrderDetl.java                  |    8 +--
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java      |   25 +++++-------
 src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java            |    2 +
 src/main/resources/mapper/WrkMastMapper.xml                      |    3 +
 src/main/java/com/zy/common/web/WcsController.java               |   14 ++++++
 src/main/resources/mapper/OrderDetlMapper.xml                    |    3 +
 src/main/java/com/zy/asrs/service/WrkMastService.java            |    3 +
 src/main/java/com/zy/asrs/service/OrderDetlService.java          |    2 +
 src/main/webapp/static/js/order/out.js                           |    6 +-
 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java |    5 ++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java      |    6 +-
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java   |    5 ++
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java              |    2 +
 src/main/webapp/static/js/order/order.js                         |    2 
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java    |    8 ++-
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java      |    2 
 16 files changed, 65 insertions(+), 31 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/OrderDetl.java b/src/main/java/com/zy/asrs/entity/OrderDetl.java
index 311979d..bba9977 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -443,12 +443,10 @@
     }
 
     public Double getEnableQty() {
-        if (null != this.anfme && this.workQty != null) {
-            return this.anfme - this.workQty;
+
+        if (null != this.anfme && this.qty != null) {
+            return this.anfme - this.qty;
         }
-//        if (null != this.anfme && this.qty != null) {
-//            return this.anfme - this.qty;
-//        }
         return null;
     }
 
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index 51c99ad..48b4cc4 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -34,4 +34,6 @@
     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);
+
+    Integer checkAllDetlFinish(@Param("orderNo") String orderNo);
 }
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index dd349bd..37e384b 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.zy.asrs.entity.WrkMast;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -16,4 +17,5 @@
 
     List<WrkMast> selectToBeHistoryData();
 
+    Integer checkFinishByOrder(@Param("orderNo") String orderNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index ecf08d2..53e6e05 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -37,4 +37,6 @@
      * @return
      */
     boolean increaseWorkQty(Long orderId, String matnr, String batch, Double workQty);
+
+    Boolean checkAllDetlFinish(String orderNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index ff9c2ba..8116e57 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -21,4 +21,7 @@
      * @return
      */
     int getStoreCount(Integer crnNo);
+
+    Boolean checkFinishByOrder(String orderNo);
+
 }
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 386c035..8f7de88 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -151,10 +151,12 @@
             }
             // 鐢熸垚鍏ュ簱閫氱煡妗�
             List<DetlDto> detlDtos = new ArrayList<>();
-            param.getCombMats().forEach(elem -> {
-
+            for (CombParam.CombMat elem : param.getCombMats()) {
                 // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
                 OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch());
+                if(orderDetl == null){
+                    throw new CoolException("璇ュ崟鎹腑涓嶅瓨鍦ㄨ鐗╂枡鏄庣粏锛�" + elem);
+                }
                 if (elem.getAnfme() > orderDetl.getEnableQty()) {
                     throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
                 }
@@ -171,7 +173,7 @@
                 } else {
                     detlDtos.add(detlDto);
                 }
-            });
+            }
             for (DetlDto detlDto : detlDtos) {
                 Mat mat = matService.selectByMatnr(detlDto.getMatnr());
                 if (Cools.isEmpty(mat)) {
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 2715f0e..b485a88 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -260,7 +260,7 @@
             }
             OrderDetl orderDetl = new OrderDetl();
             orderDetl.sync(mat);
-            orderDetl.setBatch(detlDto.getBatch());
+            orderDetl.setBatch(detlDto.getBatch() == null ? "" : detlDto.getBatch());
             orderDetl.setAnfme(detlDto.getAnfme());
             orderDetl.setOrderId(order.getId());
             orderDetl.setOrderNo(order.getOrderNo());
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 327edbb..725f062 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -90,4 +90,9 @@
     public boolean increaseWorkQty(Long orderId, String matnr, String batch, Double workQty) {
         return this.baseMapper.increaseWorkQty(orderId, matnr, batch, workQty) > 0;
     }
+
+    @Override
+    public Boolean checkAllDetlFinish(String orderNo) {
+        return this.baseMapper.checkAllDetlFinish(orderNo) <= 0 ;
+    }
 }
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 8955567..14bd5ef 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -323,9 +323,9 @@
         for (LocDto locDto : taskDto.getLocDtos()) {
             if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
             OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
-            if (orderDetl == null) {
-                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
-            }
+//            if (orderDetl == null) {
+//                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+//            }
             WrkDetl wrkDetl = new WrkDetl();
             wrkDetl.sync(orderDetl);
             wrkDetl.setZpallet(wrkMast.getBarcode());
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index ab394ec..08d614d 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -45,4 +45,9 @@
                 .last(" and (wrk_sts in (1,2) or (wrk_sts=3 and wrk_no in (select wrk_no from asr_bas_devp)))"));
     }
 
+    @Override
+    public Boolean checkFinishByOrder(String orderNo) {
+        return this.baseMapper.checkFinishByOrder(orderNo) <= 0;
+    }
+
 }
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 f5fb2df..450a109 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -35,6 +35,8 @@
     private WaitPakinService waitPakinService;
     @Autowired
     private OrderDetlService orderDetlService;
+    @Autowired
+    private OrderService orderService;
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 4.鍏ュ簱瀹屾垚
@@ -341,21 +343,16 @@
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                     }
-                    for (WrkDetl wrkDetl : wrkDetls101) {
-                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
-                        try {
-                            if(!Cools.isEmpty(orderDetl)){
-                                if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
-                                        wrkDetl.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){}
+
+                    Boolean finsihed = orderDetlService.checkAllDetlFinish(wrkDetls101.get(0).getOrderNo());
+                    if (finsihed) {
+                        Boolean mastFinished = wrkMastService.checkFinishByOrder(wrkDetls101.get(0).getOrderNo());
+                        if (mastFinished) {
+                            Order order = orderService.selectByNo(wrkDetls101.get(0).getOrderNo());
+                            orderService.updateSettle(order.getId(),4L,1L);
+                        }
                     }
+
                     // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
                     if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
 //                        exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index ed8a294..e49a7ad 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -49,6 +49,8 @@
     private RowLastnoService rowLastnoService;
     @Autowired
     private WorkService workService;
+    @Autowired
+    private BasCrnpService basCrnpService;
 
     @PostMapping("/pakin/loc/v1")
     @ResponseBody
@@ -163,7 +165,17 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
         List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
-        Integer integer = rowLastnoService.selectNextWhsType();
+        int rowCount = rowLastnoService.selectCount(null);
+        Integer integer = 1;
+        for (int i = 1; i <= rowCount; i++) {
+            integer = rowLastnoService.selectNextWhsType();
+            BasCrnp crn_no = basCrnpService.selectOne(new EntityWrapper<BasCrnp>()
+                    .eq("crn_no", i));
+            if (crn_no.getInEnable().equals("Y")){
+                break;
+            }
+        }
+
         StartupDto dto = commonService.getLocNo(integer, 1, devpNo, matNos, locTypeDto,0);
         int workNo = dto.getWorkNo();
         Date now = new Date();
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 86757d2..99ccde1 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -124,6 +124,9 @@
         and mdt.pakout = 1
         <include refid="pakOutPageCondition"></include>
     </select>
+    <select id="checkAllDetlFinish" resultType="java.lang.Integer">
+        SELECT count(*) From man_order_detl WHERE qty &lt; anfme and order_no = #{orderNo}
+    </select>
 
     <update id="increase">
         update man_order_detl
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index ce04079..7a419f1 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -74,5 +74,8 @@
         or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp))
         order by io_time,wrk_no asc
     </select>
+    <select id="checkFinishByOrder" resultType="java.lang.Integer">
+        select Count(*) FROM asr_wrk_detl d left join asr_wrk_mast m on d.wrk_no = m.wrk_no WHERE d.order_no = #{orderNo} and m.wrk_sts &lt; 14
+    </select>
 
 </mapper>
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index e277615..21d75e0 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -123,7 +123,7 @@
                             {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160},
                             {field: 'batch', title: '鎵瑰彿'},
                             {field: 'anfme', title: '鏁伴噺'},
-                            {field: 'workQty', title: '浣滀笟鏁伴噺'},
+                            // {field: 'workQty', title: '浣滀笟鏁伴噺'},
                             {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'},
                             // {field: 'unit', title: '鍗曚綅'},
                             // {
diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index 0643b0b..4d33bcb 100644
--- a/src/main/webapp/static/js/order/out.js
+++ b/src/main/webapp/static/js/order/out.js
@@ -39,7 +39,7 @@
             ,{field: 'specs', align: 'center',title: '瑙勬牸'}
             // ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
             // ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
-            ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
+            ,{field: 'enableQty', align: 'center',title: '鎬绘暟閲�', style: 'font-weight: bold'}
             // ,{field: 'name', align: 'center',title: '鍚嶇О'}
             // ,{field: 'model', align: 'center',title: '鍨嬪彿'}
             ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
@@ -162,9 +162,9 @@
                                     {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
                                     {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
                                     {field: 'batch', title: '搴忓垪鐮�', align: 'center'},
-                                    { title: '闇�姹傛暟閲�', align: 'center' , width: 90, toolbar: '#checkNeedQty'},
+                                    { title: '鍓╀綑闇�姹傞噺', align: 'center' , width: 120, toolbar: '#checkNeedQty'},
                                     // {field: 'anfme', title: '瀹為檯鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
-                                    { title: '瀹為檯鏁伴噺', align: 'center', width: 90, toolbar: '#checkAnfme'},
+                                    { title: '绔嬪簱浣欓噺', align: 'center', width: 90, toolbar: '#checkAnfme'},
                                     {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'},
                                     {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
                                     {type: 'checkbox', merge: ['locNo']},

--
Gitblit v1.9.1