From 127e75e16fba5aa42b1d368a07ea334445881112 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期六, 22 十一月 2025 16:57:03 +0800
Subject: [PATCH] #盘点完成

---
 src/main/java/com/zy/asrs/entity/CheckOrderDetl.java              |    2 
 src/main/java/com/zy/asrs/entity/WrkDetlLog.java                  |    4 ++
 src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java |   12 +++--
 src/main/webapp/static/js/locDetl/locDetl.js                      |   14 ++++++
 src/main/webapp/views/checkOrder/checkOrder.html                  |    3 +
 src/main/java/com/zy/asrs/controller/CheckOrderController.java    |    1 
 src/main/java/com/zy/asrs/entity/LocDetl.java                     |   19 +++++++++
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java       |   26 ++++++++----
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java       |    3 +
 src/main/java/com/zy/asrs/entity/WrkDetl.java                     |    4 ++
 src/main/webapp/static/js/checkOrder/checkOrder.js                |    1 
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java    |   19 +++++++++
 12 files changed, 88 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CheckOrderController.java b/src/main/java/com/zy/asrs/controller/CheckOrderController.java
index 0212f1d..a2886a9 100644
--- a/src/main/java/com/zy/asrs/controller/CheckOrderController.java
+++ b/src/main/java/com/zy/asrs/controller/CheckOrderController.java
@@ -211,6 +211,7 @@
         convert(param, wrapper);
         allLike(CheckOrder.class, param.keySet(), wrapper, condition);
         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        wrapper.orderBy("create_time", false);
         return R.ok(checkOrderService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
diff --git a/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java b/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
index c2f3e39..0daf52e 100644
--- a/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
@@ -490,7 +490,7 @@
 //    );
 
     public BigDecimal getDiffQty() {
-        if (null == this.status || this.status == 1  ||  this.status == 0 ) {
+        if (null == this.status || this.status == 1  ||  this.status == 0 ||  this.status == 2) {
             return BigDecimal.ZERO;
         }
         if (null != this.anfme && this.workQty != null) {
diff --git a/src/main/java/com/zy/asrs/entity/LocDetl.java b/src/main/java/com/zy/asrs/entity/LocDetl.java
index 4eea3f0..0a63eff 100644
--- a/src/main/java/com/zy/asrs/entity/LocDetl.java
+++ b/src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -21,6 +21,7 @@
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
@@ -234,7 +235,23 @@
      */
     @ApiModelProperty(value= "宸紓鏁伴噺")
     @TableField("diff_qty")
-    private String diffQty = "";
+    private BigDecimal diffQty = BigDecimal.ZERO;
+
+
+
+    @ApiModelProperty(value= "璐﹂潰鏁伴噺")
+    @TableField("book_qty")
+    private BigDecimal bookQty = BigDecimal.ZERO;
+//    private BigDecimal bookQty = Cools.isEmpty(anfme)? BigDecimal.ZERO : new BigDecimal(anfme.toString());
+
+
+    public BigDecimal getBookQty() {
+        if (diffQty.compareTo(BigDecimal.ZERO) == 0 || diffQty.compareTo(BigDecimal.ZERO) > 0) {
+            return new  BigDecimal(anfme.toString());
+
+        }
+        return new BigDecimal(anfme.toString()).subtract(diffQty);
+    }
 
     public String getLocNo$(){
         LocMastService service = SpringUtils.getBean(LocMastService.class);
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetl.java b/src/main/java/com/zy/asrs/entity/WrkDetl.java
index d367151..39aa1db 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetl.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -72,6 +72,10 @@
     @TableField("order_no")
     private String orderNo;
 
+    @ApiModelProperty(value= "鍗曟嵁id")
+    @TableField("order_id")
+    private Long orderId;
+
     /**
      * 瑙勬牸
      */
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetlLog.java b/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
index 6fa1590..48cf60d 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetlLog.java
@@ -71,6 +71,10 @@
     @TableField("order_no")
     private String orderNo;
 
+    @ApiModelProperty(value= "鍗曟嵁id")
+    @TableField("order_id")
+    private Long orderId;
+
     /**
      * 瑙勬牸
      */
diff --git a/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
index 1380b77..43ff929 100644
--- a/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
@@ -61,9 +61,15 @@
         }
         List<LocDto> locDtos = new ArrayList<>();
         for (CheckOrderDetl checkOrderDetl : checkOrderDetls) {
+            if (!checkOrderDetl.getStatus().equals(1)){
+                continue;
+            }
             LocDto locDto = new LocDto(checkOrderDetl.getLocNo(), checkOrderDetl.getMatnr(), checkOrderDetl.getMaktx(), checkOrderDetl.getBatch(), checkOrderDetl.getOrderNo(),
                     checkOrderDetl.getAnfme().doubleValue());
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", checkOrderDetl.getLocNo()));
+            if (!locMast.getLocSts().equals("F")){
+                continue;
+            }
             LocDetl locDetl = locDetlService.selectById(checkOrderDetl.getLocDetlId());
             locDto.setFrozen(locDetl.getFrozen());
             locDto.setFrozenLoc(locMast.getFrozen());
@@ -96,11 +102,7 @@
             if(Cools.isEmpty(wrkDetl.getOrderNo())){
                 throw new CoolException("鏄庣粏鏁版嵁鏈夎锛屾棤璁㈠崟鍙锋暟鎹�");
             }
-            CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectOne(new EntityWrapper<CheckOrderDetl>()
-                    .eq("loc_no", wrkMast.getSourceLocNo())
-                    .eq("matnr", wrkDetl.getMatnr())
-                    .eq("batch", wrkDetl.getBatch())
-                    .eq("order_no", wrkDetl.getOrderNo()));
+            CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectById(wrkDetl.getOrderId());
             if(Cools.isEmpty(checkOrderDetl)){
                 throw new CoolException("鏄庣粏鏁版嵁鏈夎锛屾湭鎵惧埌鐩樼偣鍗曟暟鎹�");
             }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index 2e14e9b..38b96af 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.core.common.Cools;
@@ -13,6 +14,7 @@
 import com.zy.asrs.service.LocDetlService;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -55,7 +57,22 @@
     @Override
     public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch,
                                String brand,String standby1,String standby2,String standby3,String boxType1,String boxType2,String boxType3) {
-        if (anfme <= 0) {
+        LocDetl locDetl = this.selectOne(new EntityWrapper<LocDetl>()
+                .eq(!Cools.isEmpty(locNo),"loc_no", locNo)
+                .eq(!Cools.isEmpty(locNo),"matnr", matnr)
+                .eq(!Cools.isEmpty(locNo),"batch", batch)
+                .eq(!Cools.isEmpty(brand),"brand", brand)
+                .eq(!Cools.isEmpty(standby1),"standby1", standby1)
+                .eq(!Cools.isEmpty(standby2),"standby2", standby2)
+                .eq(!Cools.isEmpty(standby3),"standby3", standby3)
+                .eq(!Cools.isEmpty(boxType1),"box_type1", boxType1)
+                .eq(!Cools.isEmpty(boxType2),"box_type2", boxType2)
+                .eq(!Cools.isEmpty(boxType3),"box_type3", boxType3)
+        );
+        if (Cools.isEmpty(locDetl)) {
+            return false;
+        }
+        if (anfme <= 0 && locDetl.getDiffQty().compareTo(BigDecimal.ZERO) == 0) {
             return this.baseMapper.deleteItem(locNo, matnr, batch, brand, standby1, standby2, standby3, boxType1, boxType2, boxType3) > 0;
         } else {
             return baseMapper.updateAnfme(anfme, locNo, matnr, batch, brand, standby1, standby2, standby3, boxType1, boxType2, boxType3) > 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 5e26534..c1caa89 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -543,6 +543,7 @@
 
             WrkDetl wrkDetl = new WrkDetl();
             wrkDetl.sync(checkOrderDetls.get(0));
+            wrkDetl.setOrderId(checkOrderDetls.get(0).getId());
             wrkDetl.setZpallet(wrkMast.getBarcode());
             wrkDetl.setIoTime(now);
             wrkDetl.setWrkNo(workNo);
@@ -1339,7 +1340,7 @@
     @Override
     @Transactional
     public void pickWrkMast(String workNo, Long userId) {
-        WrkMast wrkMast = wrkMastService.selectById(workNo);
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
         if (Cools.isEmpty(wrkMast)) {
             throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
         }
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 2d3edb0..5ed6a71 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -19,6 +19,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -56,6 +57,8 @@
     private TaskDetlService taskDetlService;
     @Autowired
     private BasStationServiceImpl basStationService;
+    @Autowired
+    private CheckOrderDetlService checkOrderDetlService;
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 4.鍏ュ簱瀹屾垚
@@ -355,16 +358,21 @@
                     for (WrkDetl wrkDetl : wrkDetls57) {
                         if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
                             // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                            OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
-                                    wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-                            if (!Cools.isEmpty(orderDetlPakout)) {
-                                if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
-                                        orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
-                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
-                                }
+                            CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectById(wrkDetl.getOrderId());
+                            LocDetl locDetl = locDetlService.selectById(checkOrderDetl.getLocDetlId());
+                            BigDecimal oriAnfme = new BigDecimal(locDetl.getAnfme());
+                            locDetl.setAnfme(checkOrderDetl.getDiffQty()
+                                    .compareTo(BigDecimal.ZERO) == 0 || checkOrderDetl.getDiffQty()
+                                    .compareTo(BigDecimal.ZERO) > 0
+                                    ? oriAnfme.doubleValue()
+                                    : oriAnfme.add(checkOrderDetl.getDiffQty()).doubleValue());
+                            locDetl.setBookQty(oriAnfme);
+                            locDetl.setDiffQty(checkOrderDetl.getDiffQty());
+                            if (!locDetlService.updateById(locDetl)){
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 淇敼搴撳瓨宸紓鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                             }
+
                         }
                     }
                     // 淇敼搴撲綅鐘舵�� Q ====>> F
diff --git a/src/main/webapp/static/js/checkOrder/checkOrder.js b/src/main/webapp/static/js/checkOrder/checkOrder.js
index 33dfa2d..186aa3c 100644
--- a/src/main/webapp/static/js/checkOrder/checkOrder.js
+++ b/src/main/webapp/static/js/checkOrder/checkOrder.js
@@ -666,7 +666,6 @@
                     layer.close(layerIndex);
                     layer.msg(res.msg, {icon: 1});
                     insTb.reload({where: null});
-                    insTb2.reload({where: null, page: {curr: 1}});
                 } else if (res.code === 403) {
                     top.location.href = baseUrl + "/";
                 } else {
diff --git a/src/main/webapp/static/js/locDetl/locDetl.js b/src/main/webapp/static/js/locDetl/locDetl.js
index 14c17ee..f55e8b1 100644
--- a/src/main/webapp/static/js/locDetl/locDetl.js
+++ b/src/main/webapp/static/js/locDetl/locDetl.js
@@ -8,7 +8,8 @@
         ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', sort:true}
         ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: true}
         ,{field: 'batch', align: 'center',title: '鎵瑰彿', width: 300, sort:true}
-        ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+        ,{field: 'anfme', align: 'center',title: '鍙敤鏁伴噺'}
+        ,{field: 'bookQty', align: 'center',title: '璐﹂潰鏁伴噺'}
         ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
         ,{field: 'specs', align: 'center',title: '瑙勬牸'}
         ,{field: 'model', align: 'center',title: '浠g爜', hide: true}
@@ -45,6 +46,17 @@
                     return '<span">' +d.frozen$ + '</span>';
                 }
             }}
+        ,{field: 'diffQty', align: 'center',title: '鐩樼偣鏁伴噺',
+            templet: function(d) {
+                // 鏍规嵁鏉′欢鍒ゆ柇瀛椾綋棰滆壊
+                if (d.diffQty < 0 ) {
+                    return '<span style="color: #de3434;">' +d.diffQty + '</span>';
+                }else if (d.diffQty > 0){
+                    return '<span style="color: #19fa02;">' +d.diffQty + '</span>';
+                } else {
+                    return '<span">' +d.diffQty + '</span>';
+                }
+            }}
     ];
 
     // cols.push.apply(cols, detlCols);
diff --git a/src/main/webapp/views/checkOrder/checkOrder.html b/src/main/webapp/views/checkOrder/checkOrder.html
index d0c64a3..6978c80 100644
--- a/src/main/webapp/views/checkOrder/checkOrder.html
+++ b/src/main/webapp/views/checkOrder/checkOrder.html
@@ -108,6 +108,9 @@
     {{# if (d.settle == 2 || d.settle == 11) { }}
     <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">瀹岀粨</a>
     {{# } }}
+    {{# if (d.settle == 12) { }}
+    <a class="layui-btn layui-btn-primary layui-btn-xs layui-border-blue" lay-event="createTask">鐢熸垚浠诲姟</a>
+    {{# } }}
     {{# if (d.settle == 4) { }}
     <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="export">瀵煎嚭宸紓鍗�</a>
     {{# } }}

--
Gitblit v1.9.1