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