From 030b1c1b91e0cd86f9969ac0cb80d262e3b03730 Mon Sep 17 00:00:00 2001
From: mrzhssss <pro6@qq.com>
Date: 星期一, 12 九月 2022 12:58:27 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/ManLocDetlController.java    |   15 +++++
 src/main/java/com/zy/asrs/entity/param/InitPakoutParam.java       |   17 +++++
 src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java |   14 ++++
 src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java            |    4 +
 src/main/resources/mapper/ManLocDetlMapper.xml                    |   29 +++++++++
 src/main/webapp/static/js/ioWorks/stockOut.js                     |    2 
 src/main/java/com/zy/asrs/controller/NodeController.java          |    6 ++
 src/main/webapp/views/ioWorks/locDetlQuery.html                   |   12 ++--
 src/main/webapp/views/ioWorks/stockOut.html                       |    4 
 src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java       |   34 +++++++++++
 src/main/java/com/zy/asrs/service/ManLocDetlService.java          |    5 +
 src/main/webapp/static/js/common.js                               |    2 
 src/main/java/com/zy/asrs/service/NodeService.java                |    5 +
 src/main/resources/application.yml                                |    2 
 14 files changed, 137 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ManLocDetlController.java b/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
index 8b6ae48..5a699cb 100644
--- a/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.controller;
 
+import com.baomidou.mybatisplus.plugins.Page;
 import com.core.annotations.ManagerAuth;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
@@ -52,4 +53,18 @@
         }
         return R.ok(manLocDetlService.getPage(toPage(curr, limit, param, ManLocDetl.class)));
     }
+
+
+    @RequestMapping("/manLocDetl/list")
+    public R outList(@RequestParam(defaultValue = "1")Integer curr,
+                     @RequestParam(defaultValue = "10")Integer limit,
+                     @RequestParam(required = false)String orderByField,
+                     @RequestParam(required = false)String orderByType,
+                     @RequestParam Map<String, Object> param){
+
+        Page<ManLocDetl> manLocDetlPage = toPage(curr, limit, param, ManLocDetl.class);
+        Page<ManLocDetl> outPage = manLocDetlService.getOutPage(manLocDetlPage);
+//        Page<ManLocDetl> page = manLocDetlService.getPage(manLocDetlPage);
+        return R.ok(outPage);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/controller/NodeController.java b/src/main/java/com/zy/asrs/controller/NodeController.java
index 06abf93..6a0c236 100644
--- a/src/main/java/com/zy/asrs/controller/NodeController.java
+++ b/src/main/java/com/zy/asrs/controller/NodeController.java
@@ -15,6 +15,7 @@
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.ManLocDetl;
 import com.zy.asrs.entity.Node;
+import com.zy.asrs.entity.param.InitPakoutParam;
 import com.zy.asrs.entity.param.PakinParam;
 import com.zy.asrs.mapper.ManLocDetlMapper;
 import com.zy.asrs.service.NodeService;
@@ -304,4 +305,9 @@
         return nodeService.stockPakin(number, getUserId(), getHostId());
     }
 
+    @RequestMapping("/work/stock/pakout")
+    @ManagerAuth(memo = "鐢熸垚鎷h揣鍗�")
+    public R initPakout(@RequestBody List<InitPakoutParam> params) {
+        return nodeService.initPakout(params, getUserId(), getHostId());
+    }
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/InitPakoutParam.java b/src/main/java/com/zy/asrs/entity/param/InitPakoutParam.java
new file mode 100644
index 0000000..75a2218
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/InitPakoutParam.java
@@ -0,0 +1,17 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+/**
+ * Created by vincent on 2021/3/10
+ */
+@Data
+public class InitPakoutParam {
+
+    private Long nodeId;
+
+    private String matnr;
+
+    private Double count;
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
index f78caf7..59f54e1 100644
--- a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
@@ -75,4 +75,8 @@
     int deleteLocNo0(String locNo, String matnr);
 
     int updateAnfme0(double anfme, Long nodeId);
+
+    List<ManLocDetl> listByOutPage(Map<String, Object> condition);
+
+    long listByOutPageCount(Map<String, Object> condition);
 }
diff --git a/src/main/java/com/zy/asrs/service/ManLocDetlService.java b/src/main/java/com/zy/asrs/service/ManLocDetlService.java
index 21597aa..63b5350 100644
--- a/src/main/java/com/zy/asrs/service/ManLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/ManLocDetlService.java
@@ -53,4 +53,9 @@
     List<ManLocDetl> unreason();
 
     Double getLocDetlSumQty(String locNo);
+
+    Page<ManLocDetl> getOutPage(Page<ManLocDetl> manLocDetlPage);
+
+
+
 }
diff --git a/src/main/java/com/zy/asrs/service/NodeService.java b/src/main/java/com/zy/asrs/service/NodeService.java
index a77f9f8..29fd936 100644
--- a/src/main/java/com/zy/asrs/service/NodeService.java
+++ b/src/main/java/com/zy/asrs/service/NodeService.java
@@ -3,7 +3,10 @@
 import com.baomidou.mybatisplus.service.IService;
 import com.core.common.R;
 import com.zy.asrs.entity.Node;
+import com.zy.asrs.entity.param.InitPakoutParam;
 import com.zy.asrs.entity.param.PakinParam;
+
+import java.util.List;
 
 public interface NodeService extends IService<Node> {
 
@@ -18,4 +21,6 @@
         Node selectByUuid(String uuid, Long hostId, Integer type, Long parentId);
 
     R stockPakin(PakinParam number, Long userId, Long hostId);
+
+        R initPakout(List<InitPakoutParam> params, Long userId, Long hostId);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
index 3357726..57e2713 100644
--- a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
@@ -9,6 +9,7 @@
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 @Service("manLocDetlService")
@@ -18,7 +19,9 @@
 
         @Override
         public Page<ManLocDetl> getPage(Page<ManLocDetl> page) {
-            page.setRecords(baseMapper.listByPage(page.getCondition()));
+            Map<String, Object> condition = page.getCondition();
+            List<ManLocDetl> manLocDetls = baseMapper.listByPage(condition);
+            page.setRecords(manLocDetls);
             page.setTotal(baseMapper.listByPageCount(page.getCondition()));
             return page;
         }
@@ -119,4 +122,13 @@
             return this.baseMapper.selectLocDetlSumQty(locNo);
         }
 
+    @Override
+    public Page<ManLocDetl> getOutPage(Page<ManLocDetl> manLocDetlPage) {
+        Map<String, Object> condition = manLocDetlPage.getCondition();
+        List<ManLocDetl> manLocDetls = baseMapper.listByOutPage(condition);
+        manLocDetlPage.setRecords(manLocDetls);
+        manLocDetlPage.setTotal(baseMapper.listByOutPageCount(manLocDetlPage.getCondition()));
+        return manLocDetlPage;
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java
index a0a9408..009310e 100644
--- a/src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java
@@ -9,6 +9,7 @@
 import com.zy.asrs.entity.ManLocDetl;
 import com.zy.asrs.entity.Mat;
 import com.zy.asrs.entity.Node;
+import com.zy.asrs.entity.param.InitPakoutParam;
 import com.zy.asrs.entity.param.MatnrDto;
 import com.zy.asrs.entity.param.PakinParam;
 import com.zy.asrs.entity.result.Pakin;
@@ -19,8 +20,11 @@
 import com.zy.asrs.utils.VersionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.beans.Transient;
 import java.util.Date;
+import java.util.List;
 
 @Service("nodeService")
 public class NodeServiceImpl extends ServiceImpl<NodeMapper, Node> implements NodeService {
@@ -110,4 +114,34 @@
         }
         return R.ok("鍏ュ簱鎴愬姛");
     }
+
+    @Transactional
+    @Override
+    public R initPakout(List<InitPakoutParam> params, Long userId, Long hostId) {
+        if (!Cools.isEmpty(params)) {
+            Date now = new Date();
+            for (InitPakoutParam param : params) {
+                ManLocDetl manLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>()
+                        .eq("node_id", param.getNodeId())
+                        .eq("matnr", param.getMatnr()));
+                Node node = nodeService.selectOne(new EntityWrapper<Node>()
+                        .eq("id", param.getNodeId()));
+                if (node == null) {
+                    return R.error("鎵句笉鍒拌搴撲綅,璇疯仈绯荤鐞嗗憳:" + param.getNodeId() );
+                }
+                if (manLocDetl == null) {
+                    return R.error("鐗╂枡:"+ param.getMatnr() + " 鍦ㄥ簱浣嶄腑涓嶅瓨鍦�");
+                }
+                if (manLocDetl.getAnfme() - param.getCount() < 0) {
+                    return R.error("鐗╂枡:"+ param.getMatnr() + " 鍦ㄥ簱浣嶄腑鏁伴噺涓嶈冻");
+                }else {
+                    manLocDetl.setAnfme(manLocDetl.getAnfme() - param.getCount());
+                    manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>()
+                            .eq("loc_no",node.getUuid())
+                            .eq("matnr",param.getMatnr()));
+                }
+            }
+        }
+        return R.ok("鍑哄簱鎴愬姛");
+    }
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 7fa20f9..b51131d 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -26,7 +26,7 @@
       maxRequestSize: 100MB
 
 mybatis-plus:
-  mapper-locations: classpath:mapper/*.xml
+  mapper-locations: classpath:mapper/*.xml 
 #  global-config:
 #    field-strategy: 0
 #  configuration:
diff --git a/src/main/resources/mapper/ManLocDetlMapper.xml b/src/main/resources/mapper/ManLocDetlMapper.xml
index 1b51a72..c9ece68 100644
--- a/src/main/resources/mapper/ManLocDetlMapper.xml
+++ b/src/main/resources/mapper/ManLocDetlMapper.xml
@@ -62,8 +62,8 @@
         LEFT JOIN man_mat mm ON mld.matnr = mm.matnr
         LEFT JOIN man_tag mt ON mm.tag_id = mt.id
         WHERE 1=1
-        AND (CHARINDEX(','+#{node_id}+',', ','+mn.path+',') > 0 OR mn.id = #{node_id})
-        AND (CHARINDEX(','+#{tag_id}+',', ','+mt.path+',') > 0 OR mt.id = #{tag_id})
+         AND (CHARINDEX(','+#{node_id}+',', ','+mn.path+',') > 0 OR mn.id = #{node_id})
+         AND (CHARINDEX(','+#{tag_id}+',', ','+mt.path+',') > 0 OR mt.id = #{tag_id})
         <include refid="locDetlCondition"></include>
         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
     </select>
@@ -230,6 +230,31 @@
         and matnr = #{matnr}
     </select>
 
+    <select id="listByOutPage" resultMap="BaseResultMap">
+        select * from
+        (
+        SELECT
+        ROW_NUMBER() over (order by mld.create_time desc) as row,
+        mld.*
+        FROM man_loc_detl mld
+        LEFT JOIN man_node mn ON mld.node_id = mn.id
+        LEFT JOIN man_mat mm ON mld.matnr = mm.matnr
+        LEFT JOIN man_tag mt ON mm.tag_id = mt.id
+        WHERE 1=1
+        <include refid="locDetlCondition"></include>
+        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+    </select>
+    <select id="listByOutPageCount" resultType="java.lang.Long">
+        select
+        count(1)
+        FROM man_loc_detl mld
+        LEFT JOIN man_node mn ON mld.node_id = mn.id
+        LEFT JOIN man_mat mm ON mld.matnr = mm.matnr
+        LEFT JOIN man_tag mt ON mm.tag_id = mt.id
+        WHERE 1=1
+        <include refid="locDetlCondition"></include>
+    </select>
+
 
     <update id="updateLocNo0">
         update man_loc_detl set loc_no = #{locNo}
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 55b4401..f65aef1 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -224,7 +224,7 @@
 var detlCols = [
     {field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿', sort:true}
     ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', sort:true}
-    ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: false}
+    ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: true}
     ,{field: 'batch', align: 'center',title: '鎵瑰彿', sort:true}
     ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
     ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
diff --git a/src/main/webapp/static/js/ioWorks/stockOut.js b/src/main/webapp/static/js/ioWorks/stockOut.js
index bbdc8d6..7823220 100644
--- a/src/main/webapp/static/js/ioWorks/stockOut.js
+++ b/src/main/webapp/static/js/ioWorks/stockOut.js
@@ -50,7 +50,7 @@
                         locDetls.push({nodeId: elem.nodeId, matnr: elem.matnr, count: elem.count});
                     });
                     $.ajax({
-                        url: baseUrl+"/work/pakout/init",
+                        url: baseUrl+"/work/stock/pakout",
                         headers: {'token': localStorage.getItem('token')},
                         data: JSON.stringify(locDetls),
                         contentType:'application/json;charset=UTF-8',
diff --git a/src/main/webapp/views/ioWorks/locDetlQuery.html b/src/main/webapp/views/ioWorks/locDetlQuery.html
index e105d43..dd61a33 100644
--- a/src/main/webapp/views/ioWorks/locDetlQuery.html
+++ b/src/main/webapp/views/ioWorks/locDetlQuery.html
@@ -61,11 +61,11 @@
             </div>
         </div>
         <!-- 鏃ユ湡鑼冨洿 -->
-        <div class="layui-inline" style="width: 300px">
-            <div class="layui-input-inline">
-                <input class="layui-input layui-laydate-range" name="update_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
-            </div>
-        </div>
+<!--        <div class="layui-inline" style="width: 300px">-->
+<!--            <div class="layui-input-inline">-->
+<!--                <input class="layui-input layui-laydate-range" name="update_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">-->
+<!--            </div>-->
+<!--        </div>-->
         <!-- 寰呮坊鍔� -->
         <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
             <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
@@ -115,7 +115,7 @@
         locDetlTableIns = table.render({
             elem: '#stockOut',
             headers: {token: localStorage.getItem('token')},
-            url: baseUrl+'/locDetl/list/auth',
+            url: baseUrl+'/manLocDetl/list',
             page: true,
             limit: 10,
             even: true,
diff --git a/src/main/webapp/views/ioWorks/stockOut.html b/src/main/webapp/views/ioWorks/stockOut.html
index ad619a2..1e7aef4 100644
--- a/src/main/webapp/views/ioWorks/stockOut.html
+++ b/src/main/webapp/views/ioWorks/stockOut.html
@@ -47,7 +47,7 @@
 
         #btn-outbound {
             margin-left: 20px;
-            display: none;
+            /*display: none;*/
         }
 
         /*----------------------------------*/
@@ -74,7 +74,7 @@
         }
 
         #mat-query {
-            display: none;
+            /*display: none;*/
         }
     </style>
 </head>

--
Gitblit v1.9.1