From 5315fe106471728406cbd521576c3fc5d9d28791 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 21 十一月 2025 17:01:18 +0800
Subject: [PATCH] #盘点

---
 src/main/java/com/zy/asrs/entity/CheckOrderDetl.java              |    4 
 src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java |   77 +++++++++++++++++++
 src/main/java/com/zy/asrs/controller/CheckOrderController.java    |   43 +++++-----
 src/main/java/com/zy/asrs/controller/LocDetlController.java       |    2 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java       |   35 ++++++--
 src/main/java/com/zy/asrs/service/CheckOrderService.java          |    8 ++
 src/main/webapp/static/js/checkOrder/checkOrder.js                |   24 ------
 src/main/java/com/zy/asrs/entity/param/CheckTaskListParam.java    |   12 +++
 8 files changed, 144 insertions(+), 61 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CheckOrderController.java b/src/main/java/com/zy/asrs/controller/CheckOrderController.java
index eadd92c..8194bf9 100644
--- a/src/main/java/com/zy/asrs/controller/CheckOrderController.java
+++ b/src/main/java/com/zy/asrs/controller/CheckOrderController.java
@@ -8,6 +8,7 @@
 import com.core.common.*;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.CheckTaskListParam;
 import com.zy.asrs.entity.param.OrderDomainParam;
 import com.zy.asrs.service.*;
 import com.core.annotations.ManagerAuth;
@@ -34,33 +35,29 @@
     @Autowired
     private DocTypeService docTypeService;
 
-
-    @PostMapping(value = "/checkOrder/preview/auth")
-    @ManagerAuth
-    public R checkOrderPreview(@RequestParam("orderId") Long orderId) {
-
-
-
-        List<LocDto> locDtos = checkOrderService.preview(orderId);
-        return R.ok(locDtos);
-    }
-
-
-
-    @PostMapping(value = "/checkOrder/createTask/auth")
-    @ManagerAuth
-    public R checkOrderCreateTask(@RequestParam("orderId") Long orderId) {
-        CheckOrder checkOrder = checkOrderService.selectById(orderId);
-        if (Cools.isEmpty(checkOrder)) {
-            throw new CoolException("鏁版嵁閿欒");
-        }
-        checkOrder.setSettle(11L);
-        checkOrderService.updateById(checkOrder);
+    @PostMapping(value = "/checkOrder/pdaComplete/auth")
+    @ManagerAuth(memo = "pda锛氬畬鎴愮洏鐐�")
+    public R checkOrderPdaComplete(@RequestBody CheckTaskListParam checkTaskListParam) {
+        checkOrderService.pdaComplete(checkTaskListParam);
         return R.ok();
     }
 
+
+    @PostMapping(value = "/checkOrder/preview/auth")
+    @ManagerAuth(memo = "鐩樼偣鍗曞嚭搴撻瑙�")
+    public R checkOrderPreview(@RequestParam("orderId") Long orderId) {
+        List<LocDto> locDtos = checkOrderService.preview(orderId);
+        return R.ok(locDtos);
+    }
+    @PostMapping(value = "/checkOrder/getTaskList/auth")
+    @ManagerAuth(memo = "pda锛氳幏鍙栫洏鐐逛换鍔″垪琛�")
+    public R checkOrderGetTaskList(@RequestBody CheckTaskListParam checkTaskListParam) {
+        List<CheckOrderDetl> list = checkOrderService.getTaskList(checkTaskListParam.getBarcode());
+        return R.ok(list);
+    }
+
     @PostMapping(value = "/checkOrder/complete/auth")
-    @ManagerAuth
+    @ManagerAuth(memo = "瀹屾垚鐩樼偣鍗�")
     public R checkOrderComplete(@RequestParam("orderId") Long orderId) {
         CheckOrder checkOrder = checkOrderService.selectById(orderId);
         if (Cools.isEmpty(checkOrder)) {
diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index 619459d..dd6a4a7 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -39,8 +39,6 @@
     private LocDetlService locDetlService;
 
     @Autowired
-    private LocDetlMapper locDetlMapper;
-    @Autowired
     private MatService matService;
 
     @Autowired
diff --git a/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java b/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
index 7777584..d86d360 100644
--- a/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
@@ -255,7 +255,7 @@
     private Integer danger;
 
     /**
-     * 鐘舵�� 1: 姝e父  0: 绂佺敤
+     * 鐘舵�� 1: 鏈敓鎴�  0: 绂佺敤  2锛氬緟鐩�  3锛氬凡鐩�
      */
     @ApiModelProperty(value= "鐘舵�� 1: 鏈敓鎴�  0: 绂佺敤  2锛氬緟鐩�  3锛氬凡鐩�")
     private Integer status;
@@ -495,7 +495,7 @@
         }
         if (null != this.anfme && this.workQty != null) {
 
-            BigDecimal subtract = new BigDecimal(this.anfme.toString()).subtract(new BigDecimal(this.workQty.toString()));
+            BigDecimal subtract = new BigDecimal(this.workQty.toString()).subtract(new BigDecimal(this.anfme.toString()));
 
             return subtract.doubleValue();
         }
diff --git a/src/main/java/com/zy/asrs/entity/param/CheckTaskListParam.java b/src/main/java/com/zy/asrs/entity/param/CheckTaskListParam.java
new file mode 100644
index 0000000..a3bec47
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/CheckTaskListParam.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.entity.param;
+
+import com.zy.asrs.entity.CheckOrderDetl;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CheckTaskListParam {
+    private String barcode;
+    private List<CheckOrderDetl> checkOrderDetlList;
+}
diff --git a/src/main/java/com/zy/asrs/service/CheckOrderService.java b/src/main/java/com/zy/asrs/service/CheckOrderService.java
index 520e858..3d531f6 100644
--- a/src/main/java/com/zy/asrs/service/CheckOrderService.java
+++ b/src/main/java/com/zy/asrs/service/CheckOrderService.java
@@ -2,7 +2,11 @@
 
 import com.zy.asrs.entity.CheckOrder;
 import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.CheckOrderDetl;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.param.CheckTaskListParam;
 import com.zy.common.model.LocDto;
+import com.core.common.R;
 
 import java.util.List;
 
@@ -11,4 +15,8 @@
     void remove(Long orderId);
 
     List<LocDto> preview(Long orderId);
+
+    List<CheckOrderDetl> getTaskList(String barcode);
+
+    R pdaComplete(CheckTaskListParam checkTaskListParam);
 }
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 4f650e4..1380b77 100644
--- a/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
@@ -3,14 +3,17 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.Cools;
+import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.CheckTaskListParam;
 import com.zy.asrs.mapper.CheckOrderMapper;
 import com.zy.asrs.service.*;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.zy.common.model.LocDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -30,6 +33,12 @@
 
     @Autowired
     private StaDescService staDescService;
+
+    @Autowired
+    private WrkMastService wrkMastService;
+
+    @Autowired
+    private WrkDetlService wrkDetlService;
 
     @Override
     public void remove(Long orderId) {
@@ -68,4 +77,72 @@
         return locDtos;
 
     }
+
+    @Override
+    public List<CheckOrderDetl> getTaskList(String barcode) {
+        List<CheckOrderDetl> checkOrderDetls = new ArrayList<>();
+
+        WrkMast wrkMast = wrkMastService.selectByBarcode(barcode);
+        if (Cools.isEmpty(wrkMast)) {
+            throw new CoolException("鏈壘鍒颁换鍔�");
+        }
+
+        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+        if (Cools.isEmpty(wrkDetls)) {
+            throw new CoolException("鏈壘鍒颁换鍔℃槑缁�");
+        }
+
+        for (WrkDetl wrkDetl : wrkDetls) {
+            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()));
+            if(Cools.isEmpty(checkOrderDetl)){
+                throw new CoolException("鏄庣粏鏁版嵁鏈夎锛屾湭鎵惧埌鐩樼偣鍗曟暟鎹�");
+            }
+            if (checkOrderDetl.getStatus().equals(2)){
+                checkOrderDetls.add(checkOrderDetl);
+            }
+
+        }
+        if (Cools.isEmpty(checkOrderDetls)) {
+            throw new CoolException("璇ュ鍣ㄥ凡瀹屾垚鐩樼偣");
+        }
+
+        return checkOrderDetls;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R pdaComplete(CheckTaskListParam checkTaskListParam) {
+
+        WrkMast wrkMast = wrkMastService.selectByBarcode(checkTaskListParam.getBarcode());
+        if (Cools.isEmpty(wrkMast)) {
+            throw new CoolException("鏈壘鍒颁换鍔�");
+        }
+
+        for (CheckOrderDetl checkOrderDetl: checkTaskListParam.getCheckOrderDetlList()){
+            checkOrderDetl.setStatus(3);
+            if (!checkOrderDetlService.updateById(checkOrderDetl)){
+                throw new CoolException("鏇存柊鐩樼偣鐘舵�佸け璐�");
+            }
+        }
+        CheckOrder checkOrder = this.selectOne(new EntityWrapper<CheckOrder>().eq("order_no", checkTaskListParam.getCheckOrderDetlList().get(0).getOrderNo()));
+        List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>().eq("order_id", checkOrder.getId()));
+        boolean is = checkOrderDetls.stream().allMatch(item -> item.getStatus().equals(3));
+        if (is){
+            checkOrder.setSettle(4L);
+            if (!this.updateById(checkOrder)){
+                throw new CoolException("鏇存柊鐩樼偣涓诲崟鐘舵�佸け璐�");
+            }
+
+        }
+
+
+        return R.ok();
+    }
 }
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 669e524..5e26534 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -69,12 +69,6 @@
     @Autowired
     private WrkDetlLogService wrkDetlLogService;
     @Autowired
-    private SnowflakeIdWorker snowflakeIdWorker;
-    @Autowired
-    private OrderService orderService;
-    @Autowired
-    private OrderDetlService orderDetlService;
-    @Autowired
     private WcsController wcsController;
     @Autowired
     private RowLastnoService rowLastnoService;
@@ -91,9 +85,6 @@
 
     @Resource
     private LocMastMapper locMastMapper;
-
-    @Resource
-    private OrderPakoutService orderPakOutService;
 
     @Autowired
     private CheckOrderService checkOrderService;
@@ -1165,7 +1156,7 @@
 
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void cancelWrkMast(String workNo, Long userId) {
         Date now = new Date();
         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",workNo));
@@ -1272,6 +1263,30 @@
 
         }
 
+        if (wrkMast.getIoType() == 107) {
+            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+            if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())){
+
+                for (WrkDetl wrkDetl : wrkDetls) {
+                    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.setStatus(1);
+                    checkOrderDetlService.updateById(checkOrderDetl);
+                }
+                CheckOrder checkOrder = checkOrderService.selectOne(new EntityWrapper<CheckOrder>().eq("order_no", wrkDetls.get(0).getOrderNo()));
+                List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>().eq("order_id", checkOrder.getId()));
+                boolean is = checkOrderDetls.stream().allMatch(item -> item.getStatus().equals(1));
+                checkOrder.setSettle(is?1L:12L);
+                checkOrderService.updateById(checkOrder);
+            }
+
+
+        }
+
 //        // 璁㈠崟鍏宠仈
 //        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
 //        for (WrkDetl wrkDetl : wrkDetls) {
diff --git a/src/main/webapp/static/js/checkOrder/checkOrder.js b/src/main/webapp/static/js/checkOrder/checkOrder.js
index d752f36..0f19c71 100644
--- a/src/main/webapp/static/js/checkOrder/checkOrder.js
+++ b/src/main/webapp/static/js/checkOrder/checkOrder.js
@@ -626,30 +626,6 @@
         });
     }
 
-
-    function createTask(orderId) {
-        let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
-        $.ajax({
-            url: baseUrl+"/checkOrder/createTask/auth",
-            headers: {'token': localStorage.getItem('token')},
-            data: {
-                orderId: orderId
-            },
-            method: 'POST',
-            success: function (res) {
-                layer.close(loadIndex);
-                if (res.code === 200){
-                    layer.msg(res.msg, {icon: 1});
-                    insTb.reload({page: {curr: 1}});
-                } else if (res.code === 403){
-                    top.location.href = baseUrl+"/";
-                }else {
-                    layer.msg(res.msg, {icon: 2});
-                }
-            }
-        })
-    }
-
     layDate.render({
         elem: '.layui-laydate-range'
         ,type: 'datetime'

--
Gitblit v1.9.1