From 48d8d31c884712a5dae653bc4c53ed6ae9e5b781 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期日, 12 十一月 2023 17:30:06 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/order/out.js                      |   13 +
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   15 +-
 src/main/java/com/zy/common/model/LocDto.java               |   34 ++++++
 src/main/java/com/zy/asrs/controller/OutController.java     |  144 +++++++++++++++++-----------
 src/main/webapp/static/layuiadmin/json/forum/list.js        |   63 ------------
 5 files changed, 142 insertions(+), 127 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 23fb3a9..17b8e4a 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -7,7 +7,10 @@
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.WorkServiceImpl;
+import com.zy.asrs.utils.OutboundAllocationUtil;
 import com.zy.common.model.LocDto;
 import com.zy.common.model.TaskDto;
 import com.zy.common.web.BaseController;
@@ -58,73 +61,104 @@
         }
         List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids);
         List<LocDto> locDtos = new ArrayList<>();
-
-        Set<String> exist = new HashSet<>();
-
         for (OrderDetl orderDetl : orderDetls) {
-            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
-            if (issued <= 0.0D) { continue; }
-            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
-            for (LocDetl locDetl : locDetls) {
-                if (issued > 0) {
-                    LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
-                            issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
-                    List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
-                    locDto.setStaNos(staNos);
-                    locDtos.add(locDto);
-                    exist.add(locDetl.getLocNo());
-                    // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
-                    issued = issued - locDetl.getAnfme();
-                } else {
-                    break;
-                }
-            }
-            if (issued > 0) {
-                LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
-                locDto.setLack(Boolean.TRUE);
-                locDtos.add(locDto);
-            }
+            LocDto locDto = new LocDto(orderDetl.getManu(), orderDetl.getMatnr(), orderDetl.getMaktx(),orderDetl.getModel(),orderDetl.getSpecs(),
+                    orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getBarcode(), orderDetl.getOrderNo(),orderDetl.getAnfme());
+            locDtos.add(locDto);
         }
+
+
+
+
+//        Set<String> exist = new HashSet<>();
+
+//        for (OrderDetl orderDetl : orderDetls) {
+//            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
+//            if (issued <= 0.0D) { continue; }
+//            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
+//            for (LocDetl locDetl : locDetls) {
+//                if (issued > 0) {
+//                    LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
+//                            issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
+//                    List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+//                    locDto.setStaNos(staNos);
+//                    locDtos.add(locDto);
+//                    exist.add(locDetl.getLocNo());
+//                    // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+//                    issued = issued - locDetl.getAnfme();
+//                } else {
+//                    break;
+//                }
+//            }
+//            if (issued > 0) {
+//                LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+//                locDto.setLack(Boolean.TRUE);
+//                locDtos.add(locDto);
+//            }
+//        }
         return R.ok().add(locDtos);
     }
 
     @PostMapping("/out/pakout/auth")
     @ManagerAuth(memo = "璁㈠崟鍑哄簱")
     public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException {
-        if (Cools.isEmpty(locDtos)) {
-            return R.parse(BaseRes.PARAM);
-        }
-        boolean lack = true;
-        for (LocDto locDto : locDtos) {
-            if (!locDto.isLack()) {
-                lack = false;
-                break;
-            }
-        }
-        if (lack) {
-            return R.error("搴撳瓨涓嶈冻");
-        }
+        StockOutParam param = new StockOutParam();
+        ArrayList<StockOutParam.LocDetl> locDetls = new ArrayList<>();
+        for (LocDto locDto:locDtos){
+            StockOutParam.LocDetl locDetl = new StockOutParam.LocDetl();
+            locDetl.setBrand(locDto.getBrand());
+            locDetl.setLocNo(locDto.getLocNo());
+            locDetl.setAnfme(locDto.getAnfme());
+            locDetl.setMatnr(locDto.getMatnr());
+            locDetl.setBatch(locDto.getBatch());
+            locDetl.setModel(locDto.getModel());
+            locDetl.setSpecs(locDto.getSpecs());
+            locDetl.setZpallet(locDto.getZpallet());
 
-        Thread.sleep(1000L);
+            param.setOrderNo(locDto.getOrderNo());
 
-        List<TaskDto> taskDtos = new ArrayList<>();
-        // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
-        for (LocDto locDto : locDtos) {
-            if (locDto.isLack()) { continue; }
-            TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
-            if (TaskDto.has(taskDtos, taskDto)) {
-                TaskDto dto = TaskDto.find(taskDtos, taskDto);
-                assert dto != null;
-                dto.getLocDtos().addAll(taskDto.getLocDtos());
-            } else {
-                taskDtos.add(taskDto);
-            }
+            locDetls.add(locDetl);
         }
-        // -----------------------------------------------------------------------------------------------
-        for (TaskDto taskDto : taskDtos) {
-            BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
-            workService.stockOut(staNo, taskDto, getUserId());
+        param.setLocDetls(locDetls);
+
+        List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param);
+        for (StockOutParam stockOutParam : stockOutParams){
+            workService.startupFullTakeStore(stockOutParam, getUserId());
         }
+//        if (Cools.isEmpty(locDtos)) {
+//            return R.parse(BaseRes.PARAM);
+//        }
+//        boolean lack = true;
+//        for (LocDto locDto : locDtos) {
+//            if (!locDto.isLack()) {
+//                lack = false;
+//                break;
+//            }
+//        }
+//        if (lack) {
+//            return R.error("搴撳瓨涓嶈冻");
+//        }
+//
+//        Thread.sleep(1000L);
+//
+//        List<TaskDto> taskDtos = new ArrayList<>();
+//        // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
+//        for (LocDto locDto : locDtos) {
+//            if (locDto.isLack()) { continue; }
+//            TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
+//            if (TaskDto.has(taskDtos, taskDto)) {
+//                TaskDto dto = TaskDto.find(taskDtos, taskDto);
+//                assert dto != null;
+//                dto.getLocDtos().addAll(taskDto.getLocDtos());
+//            } else {
+//                taskDtos.add(taskDto);
+//            }
+//        }
+//        // -----------------------------------------------------------------------------------------------
+//        for (TaskDto taskDto : taskDtos) {
+//            BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
+//            workService.stockOut(staNo, taskDto, getUserId());
+//        }
         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 4e1d5b8..a658772 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -220,7 +220,8 @@
                     null,    // 鍙戣揣鏃堕棿
                     null,    // 鐗╂祦鍚嶇О
                     null,    // 鐗╂祦鍗曞彿
-                    2L,    // 璁㈠崟鐘舵��
+//                    2L,    // 璁㈠崟鐘舵��
+                    1L,    // 璁㈠崟鐘舵��
                     1,    // 鐘舵��
                     userId,    // 娣诲姞浜哄憳
                     now,    // 娣诲姞鏃堕棿
@@ -250,7 +251,9 @@
                 orderDetl.setModel(locDetl.getModel());//鎵规
                 orderDetl.setSpecs(locDetl.getSpecs());//瑙勬牸
                 orderDetl.setBrand(locDetl.getBrand());//鏈ㄧ绫诲瀷
-                orderDetl.setWorkQty(locDetl.getAnfme());
+                orderDetl.setBarcode(locDetl.getZpallet());//鏈ㄧ绫诲瀷
+//                orderDetl.setWorkQty(locDetl.getAnfme());
+                orderDetl.setWorkQty(0.0);
                 orderDetl.setOrderId(order.getId());
                 orderDetl.setOrderNo(order.getOrderNo());
                 orderDetl.setCreateBy(userId);
@@ -264,10 +267,10 @@
                 }
             }
 
-            List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param);
-            for (StockOutParam stockOutParam : stockOutParams){
-                startupFullTakeStore(stockOutParam,userId);
-            }
+//            List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param);
+//            for (StockOutParam stockOutParam : stockOutParams){
+//                startupFullTakeStore(stockOutParam,userId);
+//            }
 
         } else {
             throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟"+param.getOrderNo()+"宸插瓨鍦紒锛侊紒");
diff --git a/src/main/java/com/zy/common/model/LocDto.java b/src/main/java/com/zy/common/model/LocDto.java
index ca099a3..3cf862a 100644
--- a/src/main/java/com/zy/common/model/LocDto.java
+++ b/src/main/java/com/zy/common/model/LocDto.java
@@ -16,12 +16,22 @@
     private String matnr;
 
     private String maktx;
+    private String model;
+    //瑙勬牸
+    private String specs;
 
     private String batch;
+
+    //鏈ㄧ绫诲瀷
+    private String brand;
+
+    //鎵樼洏鐮�
+    private String zpallet;
 
     private String orderNo;
 
     private Double anfme;
+    private Double count;
 
     private boolean lack = false;
 
@@ -37,6 +47,8 @@
         this.matnr = matnr;
         this.batch = batch;
         this.anfme = anfme;
+        this.count = anfme;
+
     }
 
     public LocDto(String locNo, String matnr, String batch, String orderNo, Double anfme) {
@@ -45,6 +57,8 @@
         this.batch = batch;
         this.orderNo = orderNo;
         this.anfme = anfme;
+        this.count = anfme;
+
     }
 
     public LocDto(String locNo, String matnr, String maktx, String batch, String orderNo, Double anfme) {
@@ -54,6 +68,21 @@
         this.batch = batch;
         this.orderNo = orderNo;
         this.anfme = anfme;
+        this.count = anfme;
+    }
+
+    public LocDto(String locNo, String matnr, String maktx,String model,String specs, String batch,String brand,String zpallet, String orderNo, Double anfme) {
+        this.locNo = locNo;
+        this.matnr = matnr;
+        this.maktx = maktx;
+        this.batch = batch;
+        this.orderNo = orderNo;
+        this.anfme = anfme;
+        this.count = anfme;
+        this.model = model;
+        this.specs = specs;
+        this.brand = brand;
+        this.zpallet = zpallet;
     }
 
     public String getTitle() {
@@ -67,4 +96,9 @@
         }
     }
 
+    public void setAnfme(Double anfme){
+        this.anfme=anfme;
+        this.count=anfme;
+    }
+
 }
diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index 2237010..c26bfbc 100644
--- a/src/main/webapp/static/js/order/out.js
+++ b/src/main/webapp/static/js/order/out.js
@@ -140,7 +140,7 @@
                         ,title: false
                         ,closeBtn: false
                         ,offset: '50px'
-                        ,area: ['1200px', '700px']
+                        ,area: ['1500px', '700px']
                         ,shade: 0.5
                         ,shadeClose: false
                         ,btn: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊']
@@ -160,10 +160,15 @@
                                     {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
                                     {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
                                     {field: 'batch', title: '绠卞彿', align: 'center'},
-                                    {field: 'anfme', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
+                                    {field: 'model', title: '鎵规', align: 'center'},
+                                    {field: 'specs', title: '瑙勬牸', align: 'center'},
+                                    {field: 'brand', title: '鏈ㄧ绫诲瀷', align: 'center'},
+                                    {field: 'zpallet', title: '鎵樼洏鐮�', align: 'center'},
+                                    {field: 'anfme', title: '鏈ㄧ涓摐绠旀暟閲�', align: 'center', width: 90, style: 'font-weight: bold'},
+                                    {field: 'count', title: '鏈ㄧ涓摐绠旀暟閲�', align: 'center', width: 90, style: 'font-weight: bold'},
                                     {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'},
-                                    {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
-                                    {type: 'checkbox', merge: ['locNo']},
+                                    // {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
+                                    // {type: 'checkbox', merge: ['locNo']},
                                 ]],
                                 done: function (res) {
                                     tableMerge.render(this);
diff --git a/src/main/webapp/static/layuiadmin/json/forum/list.js b/src/main/webapp/static/layuiadmin/json/forum/list.js
index 144e75b..90b95c9 100644
--- a/src/main/webapp/static/layuiadmin/json/forum/list.js
+++ b/src/main/webapp/static/layuiadmin/json/forum/list.js
@@ -1,62 +1 @@
-{
-  "code": 0
-  ,"msg": ""
-  ,"count": "100"
-  ,"data": [{
-    "id": "1001"
-    ,"poster": "璧�"
-    ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
-    ,"content": "涓轰粈涔堣姳鍎胯繖涔堜箞绾�"
-    ,"posttime": 20160805
-    ,"top": false
-  },{
-    "id": "1002"
-    ,"poster": "閽�"
-    ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
-    ,"content": "鍠滄鑳℃瓕锛岃禐璧炶禐"
-    ,"posttime": 20161205
-    ,"top": true
-  },{
-    "id": "1003"
-    ,"poster": "瀛�"
-    ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
-    ,"content": "鏄庡ぉ灏辫鑰冭瘯浜嗭紝濂界揣寮狅紝姹備繚浣�"
-    ,"posttime": 20170405
-    ,"top": false
-  },{
-    "id": "1004"
-    ,"poster": "鏉�"
-    ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
-    ,"content": "甯屾湜鏄庡ぉ鏄釜濂藉ぉ姘�" 
-    ,"posttime": 20171005
-    ,"top": false
-  },{
-    "id": "1005"
-    ,"poster": "鍛�"
-    ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
-    ,"content": "濂宠拷鐢烽殧灞傜罕锛屾槸涓嶆槸鐪熺殑"
-    ,"posttime": 20180205
-    ,"top": false
-  },{
-    "id": "1006"
-    ,"poster": "鍚�"
-    ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
-    ,"content": "绔熺劧鏈変汉璺虫ゼ锛屽勾杞讳汉鎯充笉寮�鍟婏紒" 
-    ,"posttime": 20180512
-    ,"top": false
-  },{
-    "id": "1007"
-    ,"poster": "閮�"
-    ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
-    ,"content": "澶у涓�瀹氫笉鑳藉閭d釜骞磋交浜猴紝鐝嶇埍鐢熷懡鍟�"
-    ,"posttime": 20180512
-    ,"top": false
-  },{
-    "id": "1008"
-    ,"poster": "鐜�"
-    ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
-    ,"content": "鎯崇煡閬撳崡鏄屽摢閲屾湁濂藉悆鐨勮タ瀹夎倝澶归"
-    ,"posttime": 20180514
-    ,"top": false
-  }]
-}
\ No newline at end of file
+{"code":0,"msg":"","count":"100","data":[{"id":"1001","poster":"璧�","avatar":"https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg","content":"涓轰粈涔堣姳鍎胯繖涔堜箞绾�","posttime":20160805,"top":false},{"id":"1002","poster":"閽�","avatar":"https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg","content":"鍠滄鑳℃瓕锛岃禐璧炶禐","posttime":20161205,"top":true},{"id":"1003","poster":"瀛�","avatar":"https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg","content":"鏄庡ぉ灏辫鑰冭瘯浜嗭紝濂界揣寮狅紝姹備繚浣�","posttime":20170405,"top":false},{"id":"1004","poster":"鏉�","avatar":"https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg","content":"甯屾湜鏄庡ぉ鏄釜濂藉ぉ姘�","posttime":20171005,"top":false},{"id":"1005","poster":"鍛�","avatar":"https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg","content":"濂宠拷鐢烽殧灞傜罕锛屾槸涓嶆槸鐪熺殑","posttime":20180205,"top":false},{"id":"1006","poster":"鍚�","avatar":"https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg","content":"绔熺劧鏈変汉璺虫ゼ锛屽勾杞讳汉鎯充笉寮�鍟婏紒","posttime":20180512,"top":false},{"id":"1007","poster":"閮�","avatar":"https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg","content":"澶у涓�瀹氫笉鑳藉閭d釜骞磋交浜猴紝鐝嶇埍鐢熷懡鍟�","posttime":20180512,"top":false},{"id":"1008","poster":"鐜�","avatar":"https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg","content":"鎯崇煡閬撳崡鏄屽摢閲屾湁濂藉悆鐨勮タ瀹夎倝澶归","posttime":20180514,"top":false}]}
\ No newline at end of file

--
Gitblit v1.9.1