src/main/java/zy/cloud/wms/common/service/MainService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/entity/StoPreTab.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/static/js/custOrder/custOrder.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/custOrder/custOrder.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/zy/cloud/wms/common/service/MainService.java
@@ -38,14 +38,56 @@ @Autowired private SnowflakeIdWorker snowflakeIdWorker; // @Transactional // public List<StoPreVo> stockOutPreview0(OrderStoDto dto) { // if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getCustOrders())) { // throw new CoolException("数据异常,请联系管理员"); // } // // 检查库存是否足够 // locDetlService.checkLocDetlCount(dto.getNumber()); // List<StoPreVo> result = new ArrayList<>(); // for (CustOrder custOrder : dto.getCustOrders()) { // // 判断物料是否存在 // Mat mat = matService.selectByMatnr(custOrder.getUserCode()); // if (null == mat) { // throw new CoolException(custOrder.getUserCode() + "物料尚未更新。" + custOrder.getNumber() +"单据因此中断!"); // } // // 查询存有当前物料的货位 // List<LocDetl> locDetls = locDetlService.findOfSort(mat.getMatnr()); // double issued = Optional.ofNullable(custOrder.getQty()).orElse(0.0D) ; // // 视图对象 // StoPreVo vo = new StoPreVo(); // vo.setMatnr(mat.getMatnr()); // vo.setMaktx(mat.getMaktx()); // vo.setAnfme(issued); // List<StoPreVo.StoPreLoc> locVos = new ArrayList<>(); // vo.setLocs(locVos); // for (LocDetl locDetl : locDetls) { // if (issued > 0) { // StoPreVo.StoPreLoc locVo = new StoPreVo.StoPreLoc(); // locVo.setLocNo(locDetl.getLocNo()); // locVo.setNodeId(locDetl.getNodeId()); // locVo.setTotal(locDetl.getAnfme()); // locVo.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); // locVo.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr())); // locVos.add(locVo); // // 剩余待出数量递减 // issued = issued - locDetl.getAnfme(); // } // } // result.add(vo); // } // return result; // } @Transactional public List<StoPreVo> stockOutPreview(OrderStoDto dto) { public List<StoPreTab> stockOutPreview(OrderStoDto dto) { if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getCustOrders())) { throw new CoolException("数据异常,请联系管理员"); } // 检查库存是否足够 locDetlService.checkLocDetlCount(dto.getNumber()); List<StoPreVo> result = new ArrayList<>(); List<StoPreTab> result = new ArrayList<>(); for (CustOrder custOrder : dto.getCustOrders()) { // 判断物料是否存在 Mat mat = matService.selectByMatnr(custOrder.getUserCode()); @@ -55,27 +97,27 @@ // 查询存有当前物料的货位 List<LocDetl> locDetls = locDetlService.findOfSort(mat.getMatnr()); double issued = Optional.ofNullable(custOrder.getQty()).orElse(0.0D) ; // 视图对象 StoPreVo vo = new StoPreVo(); vo.setMatnr(mat.getMatnr()); vo.setMaktx(mat.getMaktx()); vo.setAnfme(issued); List<StoPreVo.StoPreLoc> locVos = new ArrayList<>(); vo.setLocs(locVos); double anfme = issued; for (LocDetl locDetl : locDetls) { if (issued > 0) { StoPreVo.StoPreLoc locVo = new StoPreVo.StoPreLoc(); locVo.setLocNo(locDetl.getLocNo()); locVo.setNodeId(locDetl.getNodeId()); locVo.setTotal(locDetl.getAnfme()); locVo.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); locVo.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr())); locVos.add(locVo); // 视图对象 StoPreTab tab = new StoPreTab(); tab.setTitle(mat.getMatnr() + "<br>" + mat.getMaktx() + "<br>数量:" + anfme); tab.setMatnr(mat.getMatnr()); tab.setMaktx(mat.getMaktx()); tab.setAnfme(anfme); tab.setLocNo(locDetl.getLocNo()); tab.setNodeId(locDetl.getNodeId()); tab.setTotal(locDetl.getAnfme()); tab.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); tab.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr())); result.add(tab); // 剩余待出数量递减 issued = issued - locDetl.getAnfme(); } } result.add(vo); } return result; } src/main/java/zy/cloud/wms/manager/entity/StoPreTab.java
New file @@ -0,0 +1,29 @@ package zy.cloud.wms.manager.entity; import lombok.Data; /** * Created by vincent on 2021/3/13 */ @Data public class StoPreTab { private String title; private String matnr; private String maktx; private Double anfme; private String locNo; private Long nodeId; private Double total; private Double reduce; private Boolean prior; } src/main/webapp/static/js/custOrder/custOrder.js
@@ -196,6 +196,7 @@ }), method: 'POST', success: function (res) { console.log(res) layer.close(loadIndex); // 成功 if (res.code === 200){ @@ -204,19 +205,38 @@ ,title: false ,closeBtn: false ,offset: '100px' ,area: '300px;' ,area: '1200px;' ,shade: 0.5 ,id: 'LAY_layuipro' ,btn: ['马上拣货', '稍后处理'] ,btnAlign: 'c' ,moveType: 1 //拖拽模式,0或者1 ,content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">你知道吗?亲!<br>layer ≠ layui<br><br>layer只是作为Layui的一个弹层模块,由于其用户基数较大,所以常常会有人以为layui是layerui<br><br>layer虽然已被 Layui 收编为内置的弹层模块,但仍然会作为一个独立组件全力维护、升级。<br><br>我们此后的征途是星辰大海 ^_^</div>' ,success: function(layero){ var btn = layero.find('.layui-layer-btn'); btn.find('.layui-layer-btn0').attr({ href: 'http://www.layui.com/' ,target: '_blank' // ,content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">你知道吗?亲!<br>layer ≠ layui<br><br>layer只是作为Layui的一个弹层模块,由于其用户基数较大,所以常常会有人以为layui是layerui<br><br>layer虽然已被 Layui 收编为内置的弹层模块,但仍然会作为一个独立组件全力维护、升级。<br><br>我们此后的征途是星辰大海 ^_^</div>' ,content: $('#stoukOutPreview') ,success: function(layero, index){ table.render({ elem: '#stoPreTab', // url: 'tablex-tb2.json', data: res.data, page: true, cellMinWidth: 100, cols: [[ {field: 'title', title: '名称', sort: true}, {field: 'maktx', title: '菜单名称'}, {field: 'locNo', title: '货位'}, {field: 'reduce', title: '出库数量'}, {field: 'prior', title: '推荐货位'}, ]], done: function () { tableX.merges('stoPreTab', [0]); } }); // var btn = layero.find('.layui-layer-btn'); // btn.find('.layui-layer-btn0').attr({ // href: 'http://www.layui.com/' // ,target: '_blank' // }); } }); // 缺料 src/main/webapp/views/custOrder/custOrder.html
@@ -9,6 +9,14 @@ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> <link rel="stylesheet" href="../../static/css/cool.css" media="all"> <link rel="stylesheet" href="../../static/css/common.css" media="all"> <style> .layui-table-cell { height:auto; overflow:visible; text-overflow:inherit; white-space:normal; } </style> </head> <body> @@ -87,7 +95,15 @@ <script type="text/javascript" src="../../static/js/custOrder/custOrder.js" charset="utf-8"></script> <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe> <!-- 打印容器 --> <div id="pakoutPrintBox" style="display: none"></div> <!-- 出库预览容器 --> <div id="stoukOutPreview" style="display: none"> <div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;"> <span style="font-size: large; font-weight: bold">拣货单预览</span> </div> <table id="stoPreTab" lay-filter="stoPreTab"></table> </div> </body>