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