From 1c6659a0f946b15bea84bccb206fe11111ac211e Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 10 三月 2021 16:18:48 +0800 Subject: [PATCH] # --- src/main/java/zy/cloud/wms/manager/controller/PakoutController.java | 6 src/main/resources/mapper/LocDetlMapper.xml | 9 + src/main/java/zy/cloud/wms/manager/controller/WorkController.java | 14 ++ src/main/java/zy/cloud/wms/common/utils/VersionUtils.java | 22 +++ src/main/java/zy/cloud/wms/manager/mapper/LocDetlMapper.java | 2 src/main/java/zy/cloud/wms/manager/service/LocDetlService.java | 5 src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java | 56 ++++++++ src/main/java/zy/cloud/wms/manager/service/WorkService.java | 4 src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java | 5 src/main/webapp/views/pakout/pakout.html | 5 src/main/webapp/static/js/pakout/pakout.js | 192 +++---------------------------- 11 files changed, 145 insertions(+), 175 deletions(-) diff --git a/src/main/java/zy/cloud/wms/common/utils/VersionUtils.java b/src/main/java/zy/cloud/wms/common/utils/VersionUtils.java index 841a436..1de1c1b 100644 --- a/src/main/java/zy/cloud/wms/common/utils/VersionUtils.java +++ b/src/main/java/zy/cloud/wms/common/utils/VersionUtils.java @@ -82,4 +82,26 @@ pakout.setDocNum(locDetl.getDocNum()); } + public static void setLocDetl(LocDetl locDetl, Pakout pakout) { + locDetl.setNodeId(pakout.getNodeId()); + locDetl.setLocNo(pakout.getLocNo()); + locDetl.setZpallet(pakout.getZpallet()); + locDetl.setAnfme(pakout.getAnfme()); + locDetl.setMatnr(pakout.getMatnr()); + locDetl.setMaktx(pakout.getMaktx()); + locDetl.setName(pakout.getName()); + locDetl.setSpecs(pakout.getSpecs()); + locDetl.setModel(pakout.getModel()); + locDetl.setBatch(pakout.getBatch()); + locDetl.setUnit(pakout.getUnit()); + locDetl.setBarcode(pakout.getBarcode()); + locDetl.setCustName(pakout.getCustName()); + locDetl.setItemNum(pakout.getItemNum()); + locDetl.setCount(pakout.getCount()); + locDetl.setWeight(pakout.getWeight()); + locDetl.setStatus(1); + locDetl.setDocId(pakout.getDocId()); + locDetl.setDocNum(pakout.getDocNum()); + } + } diff --git a/src/main/java/zy/cloud/wms/manager/controller/PakoutController.java b/src/main/java/zy/cloud/wms/manager/controller/PakoutController.java index db929bc..bc618a0 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/PakoutController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/PakoutController.java @@ -43,7 +43,11 @@ EntityWrapper<Pakout> wrapper = new EntityWrapper<>(); excludeTrash(param); convert(param, wrapper); - if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + if (!Cools.isEmpty(orderByField)){ + wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); + } else { + wrapper.orderBy("update_time", false); + } return R.ok(pakoutService.selectPage(new Page<>(curr, limit), wrapper)); } 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 19f92f9..7c826d2 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java @@ -95,9 +95,21 @@ } @RequestMapping("/pakout/init") - @ManagerAuth(memo = "鐢熸垚鍑哄簱鍗�") + @ManagerAuth(memo = "鐢熸垚鎷h揣鍗�") public R initPakout(@RequestBody List<InitPakoutParam> params) { return workService.initPakout(params, getUserId()); } + + @RequestMapping("/hand/control/pakout") + @ManagerAuth(memo = "鎵嬪姩澶勭悊鎷h揣鍗�") + public R handControlWrkMast(@RequestParam String wrkNo, @RequestParam Integer type){ + if (type == 1) { + return workService.completePakout(wrkNo, getUserId()); + } else if (type == 2) { + return workService.cancelPakout(wrkNo, getUserId()); + } + return R.ok(); + } + } 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 3446b58..1f9a5cc 100644 --- a/src/main/java/zy/cloud/wms/manager/mapper/LocDetlMapper.java +++ b/src/main/java/zy/cloud/wms/manager/mapper/LocDetlMapper.java @@ -23,6 +23,8 @@ Integer reduceStock(@Param("nodeId") Long nodeId, @Param("matnr") String matnr, @Param("anfme") Double anfme); + Integer incrementStock(@Param("nodeId") Long nodeId, @Param("matnr") String matnr, @Param("anfme") Double anfme); + Integer removeStock(@Param("nodeId") Long nodeId, @Param("matnr") String matnr); List<LocDetl> selectByPrior(@Param("matnr") String matnr, @Param("nodeId") Long nodeId); 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 b5af7d5..d49545d 100644 --- a/src/main/java/zy/cloud/wms/manager/service/LocDetlService.java +++ b/src/main/java/zy/cloud/wms/manager/service/LocDetlService.java @@ -26,6 +26,11 @@ Boolean reduceStock(Long nodeId, String matnr, Double anfme); /** + * 澧炲姞搴撳瓨 + */ + Boolean incrementStock(Long nodeId, String matnr, Double anfme); + + /** * 鍒犻櫎搴撳瓨 * @param nodeId * @param matnr 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 0825803..7351e80 100644 --- a/src/main/java/zy/cloud/wms/manager/service/WorkService.java +++ b/src/main/java/zy/cloud/wms/manager/service/WorkService.java @@ -22,4 +22,8 @@ R initPakout(List<InitPakoutParam> params, Long userId); + R completePakout(String wrkNo, Long userId); + + R cancelPakout(String wrkNo, 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 a5141f7..3cb3441 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 @@ -85,6 +85,11 @@ } @Override + public Boolean incrementStock(Long nodeId, String matnr, Double anfme) { + return this.baseMapper.incrementStock(nodeId, matnr, anfme)>0; + } + + @Override public Boolean removeStock(Long nodeId, String matnr) { return this.baseMapper.removeStock(nodeId, matnr)>0; } 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 30a8371..7266714 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 @@ -154,13 +154,63 @@ if (!pakoutService.insert(pakout)) { throw new CoolException("鐢熸垚鎷h揣鍗曞け璐�"); } - // 淇敼搴撳瓨鏄庣粏鏁伴噺 - if (!locDetlService.reduceStock(locDetl.getNodeId(), locDetl.getMatnr(), param.getCount())) { - throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触"); + if (param.getCount() > locDetl.getAnfme()) { + throw new CoolException("搴撳瓨涓嶈冻"); + } else if (param.getCount()<locDetl.getAnfme()) { + // 淇敼搴撳瓨鏄庣粏鏁伴噺 + if (!locDetlService.reduceStock(locDetl.getNodeId(), param.getMatnr(), param.getCount())) { + throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触"); + } + } else { + // 鍒犻櫎搴撳瓨鏄庣粏 + if (!locDetlService.removeStock(locDetl.getNodeId(), param.getMatnr())) { + throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触"); + } } } } return R.ok(); } + @Override + public R completePakout(String wrkNo, Long userId) { + Pakout pakout = pakoutService.selectOne(new EntityWrapper<Pakout>().eq("wrk_no", wrkNo)); + if (null != pakout) { + if (pakoutService.stockOutComplete(wrkNo, null, userId)) { + return R.ok("鎷h揣鍗曞凡瀹屾垚"); + } + } + return R.error(); + } + + @Override + @Transactional + public R cancelPakout(String wrkNo, Long userId) { + Pakout pakout = pakoutService.selectOne(new EntityWrapper<Pakout>().eq("wrk_no", wrkNo)); + if (null != pakout) { + LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr()); + if (locDetl == null) { + LocDetl oldLocDetl = new LocDetl(); + VersionUtils.setLocDetl(oldLocDetl, pakout); + oldLocDetl.setCreateTime(new Date()); + oldLocDetl.setCreateBy(userId); + oldLocDetl.setUpdateTime(new Date()); + oldLocDetl.setUpdateBy(userId); + if (!locDetlService.insert(oldLocDetl)) { + throw new CoolException("鎭㈠搴撳瓨鏄庣粏澶辫触"); + } + } else { + if (!locDetlService.incrementStock(locDetl.getNodeId(), locDetl.getMatnr(), pakout.getAnfme())) { + throw new CoolException("鎭㈠搴撳瓨鏄庣粏澶辫触"); + } + } + } else { + return R.error("鎷h揣鍗曞凡澶辨晥锛屽彇娑堝け璐ワ紒"); + } + if (!pakoutService.delete(new EntityWrapper<Pakout>().eq("wrk_no", pakout.getWrkNo()))) { + throw new CoolException("鍒犻櫎鎷h揣鍗曞け璐�"); + } + return R.ok("鎷h揣鍗曞凡鍙栨秷"); + } + } diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml index 6b51896..0a05582 100644 --- a/src/main/resources/mapper/LocDetlMapper.xml +++ b/src/main/resources/mapper/LocDetlMapper.xml @@ -97,6 +97,15 @@ and matnr = #{matnr} </update> + <update id="incrementStock"> + update man_loc_detl + set anfme = anfme + #{anfme} + , update_time = getdate() + where 1=1 + and node_id = #{nodeId} + and matnr = #{matnr} + </update> + <update id="removeStock"> delete from man_loc_detl where 1=1 diff --git a/src/main/webapp/static/js/pakout/pakout.js b/src/main/webapp/static/js/pakout/pakout.js index 38f1e1b..3bec522 100644 --- a/src/main/webapp/static/js/pakout/pakout.js +++ b/src/main/webapp/static/js/pakout/pakout.js @@ -42,12 +42,12 @@ ,{field: 'weight', align: 'center',title: '閲嶉噺', hide: true} ,{field: 'status$', align: 'center',title: '鐘舵��', hide: true} // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳',event: 'createBy', style: 'cursor:pointer'} - // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'} + ,{field: 'createTime$', align: 'center',title: '鐢熸垚鏃堕棿'} // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳',event: 'updateBy', style: 'cursor:pointer'} // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'} ,{field: 'memo', align: 'center',title: '澶囨敞', hide: true} - ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150} + ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:200} ]], request: { pageName: 'curr', @@ -108,46 +108,6 @@ table.on('toolbar(pakout)', function (obj) { var checkStatus = table.checkStatus(obj.config.id); switch(obj.event) { - case 'addData': - layer.open({ - type: 2, - title: '鏂板', - maxmin: true, - area: [top.detailWidth, top.detailHeight], - content: 'pakout_detail.html', - success: function(layero, index){ - layer.getChildFrame('#data-detail-submit-edit', index).hide(); - clearFormVal(layer.getChildFrame('#detail', index)); - layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); - } - }); - break; - case 'deleteData': - var data = checkStatus.data; - if (data.length === 0){ - layer.msg('璇烽�夋嫨鏁版嵁'); - } else { - layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){ - $.ajax({ - url: baseUrl+"/pakout/delete/auth", - headers: {'token': localStorage.getItem('token')}, - data: {param: JSON.stringify(data)}, - method: 'POST', - traditional:true, - success: function (res) { - if (res.code === 200){ - layer.closeAll(); - tableReload(false); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; - } else { - layer.msg(res.msg) - } - } - }) - }); - } - break; case 'exportData': layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){ var titles=[]; @@ -193,6 +153,27 @@ table.on('tool(pakout)', function(obj){ var data = obj.data; switch (obj.event) { + // 瀹屾垚 + case 'complete': + layer.confirm('纭瀹屾垚璇ョ瑪鎷h揣鍗曪紵', {title: '宸ヤ綔鍙凤細'+data.wrkNo, shadeClose: true}, function(){ + http.post(baseUrl+"/work/hand/control/pakout", {wrkNo: data.wrkNo, type:1}, function (res) { + $(".layui-laypage-btn")[0].click(); + layer.msg(data.wrkNo + res.msg); + }) + layer.closeAll(); + + }); + break; + // 鍙栨秷 + case 'cancel': + layer.confirm('纭鍙栨秷璇ョ瑪鎷h揣鍗曪紵', {title: '宸ヤ綔鍙凤細'+data.wrkNo, shadeClose: true}, function(){ + http.post(baseUrl+"/work/hand/control/pakout", {wrkNo: data.wrkNo, type:2}, function (res) { + $(".layui-laypage-btn")[0].click(); + layer.msg(data.wrkNo + res.msg); + }) + layer.closeAll(); + }); + break; // 璇︽儏 case 'detail': layer.open({ @@ -211,133 +192,6 @@ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox'); } }); - break; - // 缂栬緫 - case 'edit': - layer.open({ - type: 2, - title: '淇敼', - maxmin: true, - area: [top.detailWidth, top.detailHeight], - content: 'pakout_detail.html', - success: function(layero, index){ - layer.getChildFrame('#data-detail-submit-save', index).hide(); - setFormVal(layer.getChildFrame('#detail', index), data, false); - top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false); - top.convertDisabled(layer.getChildFrame('#wrkNo', index), true); - 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 'wrkSts': - var param = top.reObject(data).wrkSts; - if (param === undefined) { - layer.msg("鏃犳暟鎹�"); - } else { - layer.open({ - type: 2, - title: '宸ヤ綔鐘舵�佽鎯�', - maxmin: true, - area: [top.detailWidth, top.detailHeight], - shadeClose: true, - content: '../wrkSts/wrkSts_detail.html', - success: function(layero, index){ - $.ajax({ - url: "baseUrl+/wrkSts/"+ param +"/auth", - headers: {'token': localStorage.getItem('token')}, - method: 'GET', - success: function (res) { - if (res.code === 200){ - setFormVal(layer.getChildFrame('#detail', index), res.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'); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; - }else { - layer.msg(res.msg) - } - } - }) - } - }); - } - break; - case 'createBy': - var param = top.reObject(data).createBy; - if (param === undefined) { - layer.msg("鏃犳暟鎹�"); - } else { - layer.open({ - type: 2, - title: '娣诲姞浜哄憳璇︽儏', - maxmin: true, - area: [top.detailWidth, top.detailHeight], - shadeClose: true, - content: '../user/user_detail.html', - success: function(layero, index){ - $.ajax({ - url: "baseUrl+/user/"+ param +"/auth", - headers: {'token': localStorage.getItem('token')}, - method: 'GET', - success: function (res) { - if (res.code === 200){ - setFormVal(layer.getChildFrame('#detail', index), res.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'); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; - }else { - layer.msg(res.msg) - } - } - }) - } - }); - } - break; - case 'updateBy': - var param = top.reObject(data).updateBy; - if (param === undefined) { - layer.msg("鏃犳暟鎹�"); - } else { - layer.open({ - type: 2, - title: '淇敼浜哄憳璇︽儏', - maxmin: true, - area: [top.detailWidth, top.detailHeight], - shadeClose: true, - content: '../user/user_detail.html', - success: function(layero, index){ - $.ajax({ - url: "baseUrl+/user/"+ param +"/auth", - headers: {'token': localStorage.getItem('token')}, - method: 'GET', - success: function (res) { - if (res.code === 200){ - setFormVal(layer.getChildFrame('#detail', index), res.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'); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; - }else { - layer.msg(res.msg) - } - } - }) - } - }); - } break; } diff --git a/src/main/webapp/views/pakout/pakout.html b/src/main/webapp/views/pakout/pakout.html index ec29f75..83da4cb 100644 --- a/src/main/webapp/views/pakout/pakout.html +++ b/src/main/webapp/views/pakout/pakout.html @@ -51,8 +51,11 @@ </script> <script type="text/html" id="operate"> + {{#if (d.wrkSts == 1||d.wrkSts == 2){ }} + <a class="layui-btn layui-btn-danger layui-btn-xs btn-complete" lay-event="complete">瀹屾垚</a> + <a class="layui-btn layui-btn-primary layui-btn-xs btn-cancel" lay-event="cancel">鍙栨秷</a> + {{# } }} <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a> - <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a> </script> <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> -- Gitblit v1.9.1