From 70b86bb70e6941127888979dbde37dda3b1db0b6 Mon Sep 17 00:00:00 2001
From: cp <513960435@qq.com>
Date: 星期二, 19 十一月 2024 09:14:43 +0800
Subject: [PATCH] 完善下架功能

---
 zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/MatParam.java      |    2 
 zy-asrs-wms/src/main/webapp/static/js/mat/mat.js                                        |   28 +++++-
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java              |   92 ++++++++++++++++++++--
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java   |    3 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java                 |   42 ++++++++--
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java |    5 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java             |   65 +++-------------
 7 files changed, 158 insertions(+), 79 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/MatParam.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/MatParam.java
index b27d87f..a08aee8 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/MatParam.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/MatParam.java
@@ -36,7 +36,7 @@
 //    private Double price;
 //
 //    //sku
-//    private String sku;
+    private String sku;
 //
 //    //浜у湴
 //    private String origin;
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
index 9dd70e8..4872ed1 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
@@ -376,7 +376,7 @@
                     .eq(LocDetl::getHostId, hostId)
                     .eq(LocDetl::getZpallet, combMat.getZpallet())
                     .eq(LocDetl::getMatnr, combMat.getMatnr())
-                    .eq(LocDetl::getBatch, combMat.getBatch())
+//                    .eq(LocDetl::getBatch, combMat.getBatch())
             );
             if (Cools.isEmpty(locDetl)){
                 return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
@@ -397,7 +397,7 @@
                     continue;
                 }
                 if (orderDetl.getAnfme() < orderDetl.getWorkQty()+combMat.getAnfme()){
-                    throw new CoolException("涓嬫灦鏁伴噺鍑洪敊");
+                    combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getWorkQty());
                 }
                 // 淇敼璁㈠崟鏄庣粏浣滀笟鏁伴噺
                 if (!orderDetlService.increaseWorkQtyByOrderNo(combParam.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) {
@@ -851,4 +851,5 @@
 
         return R.ok();
     }
+
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
index 82ab630..526be1b 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
@@ -432,6 +432,9 @@
                 .eq(LocMast::getHostId, hostId));
         // 鑾峰彇璺緞
         int ioType = taskDto.isAll() ? 101 : 103;
+        if(ioType==101){
+            staNo=102;
+        }
         // 鑾峰彇璺緞
         StaDesc staDesc = staDescService.getOne(new LambdaQueryWrapper<StaDesc>().eq(StaDesc::getTypeNo, ioType).eq(StaDesc::getStnNo, staNo).eq(StaDesc::getHostId, hostId));
         // 鐢熸垚宸ヤ綔鍙�
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
index 32772ee..45fd7af 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
@@ -48,13 +48,10 @@
 
     @RequestMapping(value = "/locDetl/forlocNo/auth/v1")
     @ManagerAuth
-    public R forlocNoV1(@RequestParam String locNo,@RequestParam String matnr) {
+    public R forlocNoV1(@RequestParam String locNo) {
         LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>()
                 .eq(LocDetl::getLocNo, locNo)
                 .eq(LocDetl::getHostId, getHostId());
-        if (!Cools.isEmpty(matnr)) {
-            locDetlLambdaQueryWrapper.eq(LocDetl::getMatnr, matnr);
-        }
         List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper);
         if (Cools.isEmpty(detls)){
             return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
@@ -299,56 +296,20 @@
 
     @RequestMapping(value = "/stock/out/list/auth")
     @ManagerAuth
-    public R stockOutList(@RequestParam(defaultValue = "1") Integer curr,
-                          @RequestParam(defaultValue = "10") Integer limit,
-                          @RequestParam(required = false)String orderByField,
-                          @RequestParam(required = false)String orderByType,
-                          @RequestParam(required = false) String condition,
-                          @RequestParam(required = false) String timeRange,
-                          @RequestParam Map<String, Object> param) {
-        QueryWrapper<LocDetl> wrapper = new QueryWrapper<>();
-
-        if (!Cools.isEmpty(param.get("decrees"))) {
-            ArrayList<String> mats = new ArrayList<>();
-            List<Mat> decrees = matService.list(new LambdaQueryWrapper<Mat>().like(Mat::getDecrees, param.get("decrees")));
-            if (decrees.isEmpty()) {
-                mats.add("-1");
-            }else {
-                for (Mat mat : decrees) {
-                    mats.add(mat.getMatnr());
-                }
+    public R stockOutList(@RequestParam(defaultValue = "1")Integer curr,
+                          @RequestParam(defaultValue = "10")Integer limit,
+                          @RequestParam Map<String, Object> param){
+        if (!Cools.isEmpty(param.get("modi_time"))){
+            String val = String.valueOf(param.get("modi_time"));
+            if (val.contains(RANGE_TIME_LINK)) {
+                String[] dates = val.split(RANGE_TIME_LINK);
+                param.put("startTime", DateUtils.convert(dates[0]));
+                param.put("endTime", DateUtils.convert(dates[1]));
+                param.remove("modi_time");
             }
-            wrapper.in("matnr", mats);
-            param.remove("decrees");
         }
-
-        convert(param,wrapper);
-        wrapper.eq("host_id", getHostId());
-//        if (!Cools.isEmpty(condition)) {
-//            wrapper.like(LocDetl::getLocNo, condition);
-//        }
-        if (!Cools.isEmpty(timeRange)) {
-            String[] range = timeRange.split(RANGE_TIME_LINK);
-            wrapper.ge("appe_time", DateUtils.convert(range[0]));
-            wrapper.le("appe_time", DateUtils.convert(range[1]));
-        }
-        if (!Cools.isEmpty(param.get("locNo"))) {
-            wrapper.like("loc_no", param.get("locNo"));
-        }
-
-        if (!Cools.isEmpty(param.get("zpallet"))) {
-            wrapper.like("zpallet", param.get("zpallet"));
-        }
-
-        if (!Cools.isEmpty(orderByField)){
-            wrapper.orderBy(true, "asc".equals(orderByType), humpToLine(orderByField));
-        }
-
-        param.remove("locNo");
-        param.remove("owner");
-        param.remove("matnr");
-        allLike(LocDetl.class, param.keySet(), wrapper, condition);
-        return R.ok(locDetlService.page(new Page<>(curr, limit), wrapper));
+        param.put("hostId", getHostId());
+        return R.ok(locDetlService.getStockOut(curr, limit, param));
     }
 
     @RequestMapping(value = "/locDetl/statis/export")
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
index ac291c0..ea3fdf0 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MatController.java
@@ -251,18 +251,44 @@
         }
         List<Mat> mats=matService.list();
         for (Mat mat:mats
-             ) {
+        ) {
             List<LocDetl>locDetls=locDetlService.list(new LambdaQueryWrapper<LocDetl>()
                     .eq(LocDetl::getMatnr,mat.getMatnr()));
             for (LocDetl locDetl:locDetls
-                 ) {
+            ) {
                 locDetl.setMaktx(mat.getMaktx());
-                locDetl.setSpecs(mat.getSpecs());
-                locDetl.setModel(mat.getModel());
-                locDetl.setSku(mat.getSku());
-                locDetl.setItemNum(mat.getImgNum());//鍥惧彿
-                locDetl.setWeight(Double.parseDouble(mat.getWeight()));
-                locDetl.setLength(Double.parseDouble(mat.getLength()));
+
+                if(!Cools.isEmpty(mat.getSpecs())){
+                    locDetl.setSpecs(mat.getSpecs());
+                }else{
+                    locDetl.setSpecs("");
+                }
+                if(!Cools.isEmpty(mat.getModel())){
+                    locDetl.setModel(mat.getModel());
+                }else {
+                    locDetl.setModel("");
+                }
+                if(!Cools.isEmpty(mat.getSku())){
+                    locDetl.setSku(mat.getSku());
+                }else {
+                    locDetl.setSku("");
+                }
+                //鍥惧彿
+                if(!Cools.isEmpty(mat.getImgNum())){
+                    locDetl.setItemNum(mat.getImgNum());
+                }else {
+                    locDetl.setItemNum("");
+                }
+//                if(!Cools.isEmpty(mat.getWeight())){
+//                    locDetl.setWeight(Double.parseDouble(mat.getWeight()));
+//                }else {
+//                    locDetl.setWeight(0.0);
+//                }
+//                if(!Cools.isEmpty(mat.getLength())){
+//                    locDetl.setLength(Double.parseDouble(mat.getLength()));
+//                }else {
+//                    locDetl.setLength(0.0);
+//                }
                 locDetlService.updateById(locDetl);
             }
         }
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
index a84fb60..0f9375b 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
@@ -22,10 +22,7 @@
 import com.zy.asrs.framework.exception.CoolException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -69,6 +66,7 @@
 
     /**
      * 骞冲韩涓婃灦
+     *
      * @param locNo
      * @param barcode
      * @return
@@ -81,6 +79,7 @@
 
     /**
      * 骞冲韩涓嬫灦
+     *
      * @param combParam
      * @return
      */
@@ -128,8 +127,8 @@
                     .eq(OrderDetl::getMatnr, matnr)
                     .like(OrderDetl::getOrderNo, orderNo)
                     .orderByDesc(OrderDetl::getCreateTime));
-            for (OrderDetl orderDetl:list
-                 ) {
+            for (OrderDetl orderDetl : list
+            ) {
                 double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
                 PickMatParam matParam = new PickMatParam();
                 matParam.setMatnr(orderDetl.getMatnr());
@@ -165,18 +164,19 @@
     @RequestMapping("/pda/WarehouseOutPickMerge/v1")
     @ManagerAuth
     public R WarehouseOutPickMergeV1(@RequestBody WarehouseOutPickMergeParam param) {
-        return mobileService.WarehouseOutPickMergeV1(param, getHostId(),getUserId());
+        return mobileService.WarehouseOutPickMergeV1(param, getHostId(), getUserId());
     }
 
     /**
      * 澶氭骞舵澘
+     *
      * @param param
      * @return
      */
     @RequestMapping("/pda/WarehouseOutMergeBoardMany/v1")
     @ManagerAuth
     public R WarehouseOutMergeBoardManyV1(@RequestBody WarehouseOutMergeBoardManyParam param) {
-        return mobileService.WarehouseOutMergeBoardMany(param, getHostId(),getUserId());
+        return mobileService.WarehouseOutMergeBoardMany(param, getHostId(), getUserId());
     }
 
     @RequestMapping("/menu/pda/auth")
@@ -534,7 +534,7 @@
 
     @RequestMapping("/outBound/order/list")
     @ManagerAuth(memo = "鑾峰彇鍑哄簱璁㈠崟")
-    public R outBound(@RequestParam(required = false) String matnr,@RequestParam(required = false) String orderNo){
+    public R outBound(@RequestParam(required = false) String matnr, @RequestParam(required = false) String orderNo) {
         List<DocType> docTypes = docTypeService.list(new LambdaQueryWrapper<DocType>().like(DocType::getPakout, 1));
         ArrayList<Long> typeList = new ArrayList<>();
         for (DocType docType : docTypes) {
@@ -776,4 +776,78 @@
         return R.ok().add(wrkMastArrayList);
     }
 
+    @PostMapping("/pda/OutLocNo")
+    @ManagerAuth(memo = "鑾峰緱骞冲簱鍑哄簱鐨勫搴斿簱浣嶅彿")
+    @Transactional
+    public R OutLocNo(@RequestParam Long orderId) {
+        List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+                .eq(OrderDetl::getOrderId, orderId)
+                .eq(OrderDetl::getHostId, getHostId())
+        );
+        if (Cools.isEmpty(orderDetls)) {
+            return R.error("璁㈠崟鏄庣粏涓嶅瓨鍦�");
+        }
+        List<String> list = new ArrayList<>();
+        for (OrderDetl o : orderDetls
+        ) {
+            if (o.getAnfme() <= o.getWorkQty()) {
+                continue;
+            } else {
+                //鏌ョ湅搴撲綅鏄庣粏涓湁鐨勭墿鏂�
+                List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+                        .eq(LocDetl::getMatnr, o.getMatnr()).eq(LocDetl::getHostId, getHostId())
+                );
+                if (Cools.isEmpty(locDetls)) {
+                    continue;
+                } else {
+                    for (LocDetl l : locDetls
+                    ) {
+                        String s = l.getLocNo().substring(1, 2);
+                        if (Integer.valueOf(s) > 4) {
+                            list.add(l.getLocNo());
+                        }
+                    }
+
+                }
+            }
+        }
+        List<String> myList = list.stream().distinct().collect(Collectors.toList());
+        return R.ok(myList);
+    }
+
+    @PostMapping("/pda/OrderDetlContrastLocDetl")
+    @ManagerAuth(memo = "鑾峰緱璁㈠崟鏄庣粏瀵瑰簲鐨勫簱瀛樻槑缁�")
+    @Transactional
+    public R OrderDetlContrastLocDetl(@RequestParam Long orderId, @RequestParam String locNo) {
+        List<LocDetl> locDetlList = new ArrayList<LocDetl>();
+        List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+                .eq(OrderDetl::getOrderId, orderId)
+                .eq(OrderDetl::getHostId, getHostId())
+        );
+        if (Cools.isEmpty(orderDetls)) {
+            return R.error("璁㈠崟鏄庣粏涓嶅瓨鍦�");
+        }
+        List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+                .eq(LocDetl::getLocNo, locNo));
+        if (Cools.isEmpty(locDetls)) {
+            return R.error("搴撲綅涓虹┖");
+        }
+        for (OrderDetl o : orderDetls
+        ) {
+            for (LocDetl l : locDetls
+            ) {
+                if (o.getMatnr().equals(l.getMatnr())) {
+                    if (o.getAnfme() - o.getWorkQty() >= l.getAnfme()) {
+
+                    } else {
+                        l.setAnfme(o.getAnfme() - o.getWorkQty());
+                    }
+                    locDetlList.add(l);
+                    break;
+                }
+            }
+        }
+        return R.ok(locDetlList);
+    }
+
 }
diff --git a/zy-asrs-wms/src/main/webapp/static/js/mat/mat.js b/zy-asrs-wms/src/main/webapp/static/js/mat/mat.js
index b4cd9eb..f40461f 100644
--- a/zy-asrs-wms/src/main/webapp/static/js/mat/mat.js
+++ b/zy-asrs-wms/src/main/webapp/static/js/mat/mat.js
@@ -16,8 +16,8 @@
 layui.config({
     base: baseUrl + "/static/layui/lay/modules/"
 }).extend({
-    dropdown: 'dropdown/dropdown',
-}).use(['table','laydate', 'form', 'treeTable', 'admin', 'xmSelect', 'dropdown', 'element'], function(){
+    dropdown: 'dropdown/dropdown',notice: 'notice/notice',
+}).use(['table','laydate', 'form', 'treeTable','notice', 'admin', 'xmSelect', 'dropdown', 'element'], function(){
     var table = layui.table;
     var $ = layui.jquery;
     var layer = layui.layer;
@@ -26,7 +26,7 @@
     admin = layui.admin;
     var treeTable = layui.treeTable;
     var xmSelect = layui.xmSelect;
-
+    var notice = layui.notice;
     // 鍟嗗搧鍒嗙被鏁版嵁
     var insTb = treeTable.render({
         elem: '#tag',
@@ -367,11 +367,25 @@
     // 鍚屾搴瓨
     form.on('submit(synchronous)', function (data) {
         layer.confirm('纭鍚屾搴瓨锛�', function(){
-            http.get(baseUrl+"/hand/control/wrkMast", {workNo: data.wrkNo, type:1}, function (res) {
-                $(".layui-laypage-btn")[0].click();
-                layer.msg(data.wrkNo + res.msg);
+            notice.msg('姝e湪鍚屾搴瓨......', {icon: 4});
+            $.ajax({
+                url: baseUrl+"/mat/synchronous",
+                headers: {'token': localStorage.getItem('token')},
+                method: 'GET',
+                success: function (res) {
+                    notice.destroy();
+                    // layer.close(loadIndex);
+                    if (res.code === 200){
+                        layer.close(dIndex);
+                        layer.msg(res.msg, {icon: 1});
+                        $(".layui-laypage-btn")[0].click();
+                    } else if (res.code === 403){
+                        top.location.href = baseUrl+"/";
+                    }else {
+                        layer.msg(res.msg, {icon: 2});
+                    }
+                }
             })
-            layer.closeAll();
 
         });
     });

--
Gitblit v1.9.1