From 2b38e9c64ce9d6b6b054d1540ccd53a9d1bba30a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 02 三月 2021 11:23:28 +0800
Subject: [PATCH] #

---
 src/main/java/zy/cloud/wms/common/config/CodeCoolException.java         |   16 +++++
 src/main/java/zy/cloud/wms/common/config/CoolExceptionHandler.java      |    5 +
 src/main/resources/mapper/LocDetlMapper.xml                             |    4 +
 src/main/webapp/static/js/custOrder/custOrder.js                        |   39 +++++++-----
 src/main/java/zy/cloud/wms/common/CodeRes.java                          |    3 +
 src/main/java/zy/cloud/wms/manager/service/LocDetlService.java          |    2 
 src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java    |    8 ++
 src/main/java/zy/cloud/wms/manager/service/WorkService.java             |    2 
 src/main/java/zy/cloud/wms/common/service/MainService.java              |    4 +
 src/main/java/zy/cloud/wms/common/service/MainScheduler.java            |    3 
 src/main/java/zy/cloud/wms/manager/controller/WorkController.java       |    7 ++
 src/main/java/zy/cloud/wms/manager/mapper/LocDetlMapper.java            |    3 +
 src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java |   37 ++++++++++++
 13 files changed, 114 insertions(+), 19 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/common/CodeRes.java b/src/main/java/zy/cloud/wms/common/CodeRes.java
index 55d82cb..ed69cef 100644
--- a/src/main/java/zy/cloud/wms/common/CodeRes.java
+++ b/src/main/java/zy/cloud/wms/common/CodeRes.java
@@ -9,4 +9,7 @@
     String USER_10002 = "10002-璐﹀彿宸茶绂佺敤";
     String USER_10003 = "10003-瀵嗙爜閿欒";
 
+    // stock
+    String NONE_STOCK = "20002-搴撳瓨涓嶈冻";
+
 }
diff --git a/src/main/java/zy/cloud/wms/common/config/CodeCoolException.java b/src/main/java/zy/cloud/wms/common/config/CodeCoolException.java
new file mode 100644
index 0000000..1d6766a
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/common/config/CodeCoolException.java
@@ -0,0 +1,16 @@
+package zy.cloud.wms.common.config;
+
+/**
+ * Created by vincent on 2021/3/2
+ */
+public class CodeCoolException extends RuntimeException {
+
+    public CodeCoolException(Throwable e) {
+        super(e);
+    }
+
+    public CodeCoolException(String message) {
+        super(message);
+    }
+
+}
diff --git a/src/main/java/zy/cloud/wms/common/config/CoolExceptionHandler.java b/src/main/java/zy/cloud/wms/common/config/CoolExceptionHandler.java
index cb164df..f28fb46 100644
--- a/src/main/java/zy/cloud/wms/common/config/CoolExceptionHandler.java
+++ b/src/main/java/zy/cloud/wms/common/config/CoolExceptionHandler.java
@@ -29,4 +29,9 @@
         return R.error(e.getMessage());
     }
 
+    @ExceptionHandler(CodeCoolException.class)
+    public R handleRRException(CodeCoolException e) {
+        return R.parse(e.getMessage());
+    }
+
 }
diff --git a/src/main/java/zy/cloud/wms/common/service/MainScheduler.java b/src/main/java/zy/cloud/wms/common/service/MainScheduler.java
index 9927ffd..0bdff18 100644
--- a/src/main/java/zy/cloud/wms/common/service/MainScheduler.java
+++ b/src/main/java/zy/cloud/wms/common/service/MainScheduler.java
@@ -4,7 +4,6 @@
 import com.core.common.Cools;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import zy.cloud.wms.common.model.OrderStoDto;
 import zy.cloud.wms.manager.entity.CustOrder;
@@ -27,7 +26,7 @@
     /**
      * 鎵弿閿�鍞鍗曟暟鎹紝鐢熸垚鍑哄簱鍗�
      */
-    @Scheduled(cron = "0/5 * * * * ? ")
+//    @Scheduled(cron = "0/5 * * * * ? ")
     public void stockOutExecute(){
         List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("status", 1));
         if (Cools.isEmpty(custOrders)){
diff --git a/src/main/java/zy/cloud/wms/common/service/MainService.java b/src/main/java/zy/cloud/wms/common/service/MainService.java
index beff4c3..cc82650 100644
--- a/src/main/java/zy/cloud/wms/common/service/MainService.java
+++ b/src/main/java/zy/cloud/wms/common/service/MainService.java
@@ -55,7 +55,7 @@
                 for (Prior prior : priors) {
                     LocDetl locDetl = locDetlService.getLocDetl(prior.getNodeId(), prior.getMatnr());
                     if (null != locDetl && locDetl.getAnfme() > 0) {
-                        // 淇濆瓨鍑哄簱閫氱煡鍗�
+                        // 淇濆瓨鍑哄簱閫氱煡鍗昞
                         Pakout pakout = new Pakout();
                         pakout.setWrkSts(1L);
 //                        pakout.setAnfme();
@@ -73,6 +73,8 @@
 
                     }
                 }
+            } else {
+
             }
 
 
diff --git a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
index d661097..2086f73 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
@@ -5,6 +5,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 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 zy.cloud.wms.common.web.BaseController;
 import zy.cloud.wms.manager.entity.param.StockInParam;
@@ -27,6 +28,12 @@
         return workService.stockIn(stockInParam, getUserId());
     }
 
+    @RequestMapping("/stock/out/check")
+    @ManagerAuth(memo = "鎷h揣")
+    public R stockOutCheck(@RequestParam String number) {
+        return workService.stockOutCheck(number, getUserId());
+    }
+
     @RequestMapping("/stock/out")
     @ManagerAuth(memo = "鎷h揣")
     public R stockOut(@RequestBody StockOutParam stockOutParam) {
diff --git a/src/main/java/zy/cloud/wms/manager/mapper/LocDetlMapper.java b/src/main/java/zy/cloud/wms/manager/mapper/LocDetlMapper.java
index ff30237..577eb81 100644
--- a/src/main/java/zy/cloud/wms/manager/mapper/LocDetlMapper.java
+++ b/src/main/java/zy/cloud/wms/manager/mapper/LocDetlMapper.java
@@ -16,4 +16,7 @@
     List<LocDetl> listByPage(Page page, @Param("nodeId") String nodeId, @Param("locNo") Object locNo, @Param("matnr") Object matnr, @Param("maktx") Object maktx);
 
     LocDetl selectByLocNoAndMatnr(@Param("nodeId")Long nodeId, @Param("matnr")String martnr);
+
+    Double selectCountByMatnr(@Param("matnr") String matnr);
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/LocDetlService.java b/src/main/java/zy/cloud/wms/manager/service/LocDetlService.java
index deb5b13..13d029f 100644
--- a/src/main/java/zy/cloud/wms/manager/service/LocDetlService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/LocDetlService.java
@@ -10,4 +10,6 @@
 
     LocDetl getLocDetl(Long nodeId, String matnr);
 
+    void checkLocDetlCount(String number);
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/WorkService.java b/src/main/java/zy/cloud/wms/manager/service/WorkService.java
index e022bdf..a95b921 100644
--- a/src/main/java/zy/cloud/wms/manager/service/WorkService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/WorkService.java
@@ -8,6 +8,8 @@
 
     R stockIn(StockInParam param, Long userId);
 
+    R stockOutCheck(String number, Long userId);
+
     R stockOut(StockOutParam param, Long userId);
 
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java
index 3c37193..733e735 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java
@@ -1,14 +1,28 @@
 package zy.cloud.wms.manager.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import zy.cloud.wms.common.config.CodeCoolException;
+import zy.cloud.wms.manager.entity.CustOrder;
 import zy.cloud.wms.manager.entity.LocDetl;
+import zy.cloud.wms.manager.entity.Mat;
 import zy.cloud.wms.manager.mapper.LocDetlMapper;
+import zy.cloud.wms.manager.service.CustOrderService;
 import zy.cloud.wms.manager.service.LocDetlService;
+import zy.cloud.wms.manager.service.MatService;
+
+import java.util.List;
 
 @Service("locDetlService")
 public class LocDetlServiceImpl extends ServiceImpl<LocDetlMapper, LocDetl> implements LocDetlService {
+
+    @Autowired
+    private CustOrderService custOrderService;
+    @Autowired
+    private MatService matService;
 
     @Override
     public Page<LocDetl> getPage(Page page, String nodeId, Object locNo, Object matnr, Object maktx) {
@@ -20,5 +34,28 @@
         return this.baseMapper.selectByLocNoAndMatnr(nodeId, matnr);
     }
 
+    @Override
+    public void checkLocDetlCount(String number) {
+        List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("number", number).eq("status", 1));
+        StringBuilder errorMsg = new StringBuilder();
+        boolean error = false;
+        for (CustOrder custOrder : custOrders) {
+            Double count = this.baseMapper.selectCountByMatnr(custOrder.getUserCode());
+            if (count == null) {
+                count = 0.0D;
+            }
+            if (count < custOrder.getQty()) {
+                if (!error) {
+                    error = true;
+                }
+                Mat mat = matService.selectByMatnr(custOrder.getUserCode());
+                errorMsg.append(mat == null ? custOrder.getUserCode() : mat.getMaktx()).append("搴撳瓨涓嶈冻锛岀己璐ф暟閲忥細").append(custOrder.getQty() - count).append("</br>");
+            }
+        }
+        if (error) {
+            throw new CodeCoolException("20001-" + errorMsg.toString());
+        }
+    }
+
 
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
index 047063b..b7b32cd 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -76,7 +76,15 @@
     }
 
     @Override
+    public R stockOutCheck(String number, Long userId) {
+        return null;
+    }
+
+    @Override
     public R stockOut(StockOutParam param, Long userId) {
+        // 妫�鏌ュ簱瀛樻槸鍚﹁冻澶�
+        locDetlService.checkLocDetlCount(param.getNumber());
+
         return null;
     }
 
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 8a39a3a..f736e12 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -54,4 +54,8 @@
         select * from man_loc_detl where 1=1 and node_id = #{nodeId} and matnr = #{matnr}
     </select>
 
+    <select id="selectCountByMatnr" resultType="java.lang.Double">
+       select sum(anfme) as count from man_loc_detl where 1=1 and matnr = #{matnr}
+    </select>
+
 </mapper>
diff --git a/src/main/webapp/static/js/custOrder/custOrder.js b/src/main/webapp/static/js/custOrder/custOrder.js
index fb5fccd..f0901c8 100644
--- a/src/main/webapp/static/js/custOrder/custOrder.js
+++ b/src/main/webapp/static/js/custOrder/custOrder.js
@@ -183,23 +183,30 @@
             case 'stockOut':
                 layer.confirm(data.number + ' 璁㈠崟鎷h揣', {shadeClose: true}, function(){
                     layer.closeAll();
+                    $.ajax({
+                        url: baseUrl+"/work/stock/out",
+                        headers: {'token': localStorage.getItem('token')},
+                        contentType:'application/json;charset=UTF-8',
+                        data: JSON.stringify({
+                            number: data.number
+                        }),
+                        method: 'POST',
+                        success: function (res) {
+                            if (res.code === 200){
+
+                            } else if (res.code === 20001) {
+                                layer.confirm(res.msg, {shadeClose: true}, function(){
+                                    layer.closeAll();
+                                })
+                            } else if (res.code === 403){
+                                top.location.href = baseUrl+"/";
+                            } else {
+                                layer.msg(res.msg)
+                            }
+                            layer.close(index);
+                        }
+                    })
                 });
-                // layer.open({
-                //     type: 2,
-                //     title: data.number + ' 璁㈠崟鎷h揣',
-                //     maxmin: true,
-                //     area: [top.detailWidth, top.detailHeight],
-                //     shadeClose: true,
-                //     content: 'custOrder_detail.html',
-                //     success: function(layero, index){
-                //         setFormVal(layer.getChildFrame('#detail', index), data, true);
-                //         top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
-                //         layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
-                //         layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                //         layero.find('iframe')[0].contentWindow.layui.form.render('select');
-                //         layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
-                //     }
-                // });
                 break;
             // 璇︽儏
             case 'detail':

--
Gitblit v1.9.1