From d0fa6b5d514110de8bcc672a08813151efa94fb6 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期二, 05 九月 2023 15:28:37 +0800 Subject: [PATCH] #拣货单 --- src/main/java/com/zy/asrs/entity/ManLocDetl.java | 1 src/main/webapp/static/js/picking/picking.js | 44 ++++++++++++-- src/main/java/com/zy/asrs/service/PakoutService.java | 1 src/main/java/com/zy/asrs/entity/OrderDetl.java | 10 ++- src/main/webapp/static/js/order/out.js | 7 - src/main/webapp/views/picking/picking.html | 1 src/main/java/com/zy/asrs/controller/PakoutController.java | 11 +-- src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java | 39 +++++++++++++ src/main/java/com/zy/common/model/LocDto.java | 8 +- src/main/java/com/zy/asrs/controller/OutController.java | 10 +-- 10 files changed, 101 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index c5acac2..c71a1f9 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -73,8 +73,8 @@ for (OrderDetl orderDetl : orderDetls) { BigDecimal a1 = new BigDecimal(orderDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP); BigDecimal b1 = new BigDecimal(orderDetl.getQty()).setScale(2,BigDecimal.ROUND_HALF_UP); - Double c1 = a1.subtract(b1).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); - double issued = Optional.of( c1 ).orElse(0.0D); + + double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); if (issued <= 0.0D) { continue; } List<LocDetl> locDetls = locDetlService.queryStock2(orderDetl.getMatnr(), orderDetl.getBatch()); for (LocDetl locDetl : locDetls) { @@ -84,7 +84,7 @@ sign=true; } LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), - sign ? locDetl.getAnfme() : issued,locDetl.getOwner(),locDetl.getPayment()); + sign ? locDetl.getAnfme() : issued); List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), sign? 101 : 103); // LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), // locDetl.getAnfme(), issued < locDetl.getAnfme()? issued : locDetl.getAnfme()); @@ -103,7 +103,7 @@ } } if (issued > 0) { - LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued,orderDetl.getOwner(),1); + LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); // LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), 0.0,issued); locDto.setLack(Boolean.TRUE); locDtos.add(locDto); @@ -281,8 +281,6 @@ manPakOut.setCreateTime(new Date()); manPakOut.setBatch(locDto.getBatch()); manPakOut.setUpdateTime(new Date()); - manPakOut.setPayment(locDto.getPayment()); - manPakOut.setOwner(locDto.getOwner()); manPakOut.setUuid(uuid); if (Cools.isEmpty(manPakOutService.selectOne(new EntityWrapper<ManPakOut>().eq("doc_num",locDto.getOrderNo())))){ manPakOut.setName(locDto.getMaktx()); diff --git a/src/main/java/com/zy/asrs/controller/PakoutController.java b/src/main/java/com/zy/asrs/controller/PakoutController.java index 9be81bd..fe360e4 100644 --- a/src/main/java/com/zy/asrs/controller/PakoutController.java +++ b/src/main/java/com/zy/asrs/controller/PakoutController.java @@ -21,6 +21,7 @@ import com.core.common.R; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.*; @@ -286,12 +287,10 @@ } @RequestMapping(value = "/pakout/delete/auth") - @ManagerAuth - public R delete(@RequestParam(value="ids[]") Long[] ids){ - for (Long id : ids){ - pakoutService.deleteById(id); - } - return R.ok(); + @ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟") + public R delete(@RequestParam String docNum){ + pakoutService.deletePakout(docNum); + return R.ok("鎷h揣鍗曞垹闄ゆ垚鍔�"); } @RequestMapping(value = "/pakout/export/auth") diff --git a/src/main/java/com/zy/asrs/entity/ManLocDetl.java b/src/main/java/com/zy/asrs/entity/ManLocDetl.java index e630caf..99eb489 100644 --- a/src/main/java/com/zy/asrs/entity/ManLocDetl.java +++ b/src/main/java/com/zy/asrs/entity/ManLocDetl.java @@ -30,6 +30,7 @@ * 鎵�灞為」鐩� */ @ApiModelProperty(value= "鎵�灞為」鐩�") + @TableId(value = "host_id", type = IdType.AUTO) @TableField("host_id") private Long hostId; diff --git a/src/main/java/com/zy/asrs/entity/OrderDetl.java b/src/main/java/com/zy/asrs/entity/OrderDetl.java index 9dcc5aa..5b7533c 100644 --- a/src/main/java/com/zy/asrs/entity/OrderDetl.java +++ b/src/main/java/com/zy/asrs/entity/OrderDetl.java @@ -506,11 +506,15 @@ } public Double getEnableQty() { + Double enableQty = null; + if (null != this.anfme && this.workQty != null) { + enableQty = this.anfme - this.workQty; + if (enableQty <0){ + enableQty = 0.0D; + } - if (null != this.anfme && this.qty != null) { - return this.anfme - this.qty; } - return null; + return enableQty; } public void sync(Object source) { diff --git a/src/main/java/com/zy/asrs/service/PakoutService.java b/src/main/java/com/zy/asrs/service/PakoutService.java index 01f8447..7240a23 100644 --- a/src/main/java/com/zy/asrs/service/PakoutService.java +++ b/src/main/java/com/zy/asrs/service/PakoutService.java @@ -5,4 +5,5 @@ public interface PakoutService extends IService<Pakout> { + void deletePakout(String docNum); } diff --git a/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java index 4438c18..0e09253 100644 --- a/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java @@ -1,12 +1,51 @@ package com.zy.asrs.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.zy.asrs.entity.Order; +import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.mapper.PakoutMapper; import com.zy.asrs.entity.Pakout; +import com.zy.asrs.service.OrderDetlService; +import com.zy.asrs.service.OrderService; import com.zy.asrs.service.PakoutService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; @Service("pakoutService") public class PakoutServiceImpl extends ServiceImpl<PakoutMapper, Pakout> implements PakoutService { + @Autowired + private OrderService orderService; + @Autowired + private OrderDetlService orderDetlService; + + @Override + public void deletePakout(String docNum) { + Order order = orderService.selectByNo(docNum); + List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", docNum)); + + for (OrderDetl orderDetl: orderDetls){ + if (orderDetl.getQty() > 0.0){ + throw new RuntimeException("鎷h揣鍗曞凡鏈夊嚭搴撲换鍔★紝涓嶅彲鍒犻櫎!"); + } + orderDetl.setWorkQty(0.0D); + } + + if (!orderDetlService.updateBatchById(orderDetls)){ + throw new RuntimeException("璁㈠崟鏄庣粏鎵归噺鏇存柊澶辫触"); + } + order.setSettle(1L); + if (!orderService.updateById(order)){ + throw new RuntimeException("璁㈠崟鏄庣粏鎵归噺鏇存柊澶辫触"); + } + if (!delete(new EntityWrapper<Pakout>().eq("doc_num",docNum))){ + throw new RuntimeException("鎷h揣鍗曞垹闄ゅけ璐�"); + } + + + } } diff --git a/src/main/java/com/zy/common/model/LocDto.java b/src/main/java/com/zy/common/model/LocDto.java index 2bd8484..435baa0 100644 --- a/src/main/java/com/zy/common/model/LocDto.java +++ b/src/main/java/com/zy/common/model/LocDto.java @@ -25,8 +25,7 @@ //瀹為檯鍑哄簱閲� private Double anfme; - private int owner; - private int payment; + //鎵�闇�鍑哄簱閲� private Double needQty; @@ -55,15 +54,14 @@ this.anfme = anfme; } - public LocDto(String locNo, String matnr, String maktx, String batch, String orderNo, Double anfme,int owner ,int payment) { + public LocDto(String locNo, String matnr, String maktx, String batch, String orderNo, Double anfme) { this.locNo = locNo; this.matnr = matnr; this.maktx = maktx; this.batch = batch; this.orderNo = orderNo; this.anfme = anfme; - this.owner = owner; - this.payment = payment; + } public LocDto(String locNo, String matnr, String maktx, String batch, String orderNo, Double anfme, Double needQty) { diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js index a589b9f..9dc629a 100644 --- a/src/main/webapp/static/js/order/out.js +++ b/src/main/webapp/static/js/order/out.js @@ -35,13 +35,10 @@ ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl', width: 160} ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜', width: 160} ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200} - ,{field: 'owner$', align: 'center',title: '璐т富'} - ,{field: 'payment$', align: 'center',title: '璐х墿褰㈡��'} - ,{field: 'owner', align: 'center',title: '璐т富', hide: true} - ,{field: 'payment', align: 'center',title: '璐х墿褰㈡��', hide: true} // ,{field: 'anfme', align: 'center',title: '鏁伴噺'} // ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'} ,{field: 'anfme', align: 'center',title: '鎬绘暟閲�', style: 'font-weight: bold'} + ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'} // ,{field: 'name', align: 'center',title: '鍚嶇О'} // ,{field: 'model', align: 'center',title: '鍨嬪彿'} ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true} @@ -267,7 +264,7 @@ } ,yes: function(index, layero){ //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟 - pakout(tableCache, index); + //pakout(tableCache, index); pakout2(tableCache, index); } ,btn2: function(index, layero){ diff --git a/src/main/webapp/static/js/picking/picking.js b/src/main/webapp/static/js/picking/picking.js index 553fb28..9d3afee 100644 --- a/src/main/webapp/static/js/picking/picking.js +++ b/src/main/webapp/static/js/picking/picking.js @@ -1,6 +1,7 @@ var pageCurr; var printMatCodeNos = []; var ordernoo = "123"; +var insTbCount = 0; layui.config({ base: baseUrl + "/static/layui/lay/modules/" }).use(['table','laydate', 'form', 'admin', 'layer'], function(){ @@ -30,8 +31,6 @@ ,{align: 'center', title: '浜岀淮鐮�', toolbar: '#operate', width: 200 , hide:true} ,{align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160} ,{field: 'status$', align: 'center',title: '鐘舵��'} - ,{field: 'owner$', align: 'center',title: '璐т富'} - ,{field: 'payment$', align: 'center',title: '璐х墿褰㈡��'} // ,{field: 'custName', align: 'center',title: '瀹㈡埛鍚嶇О', width: 160} ,{field: 'createTime$', align: 'center',title: '鎿嶄綔鏃堕棿'} ,{align: 'center', title: '鎿嶄綔', toolbar: '#operate'} @@ -96,6 +95,9 @@ case "btnPrint2": btnPrint2(data.wrkNo, data.docNum, 4); break; + case "del": + doDel(data.docNum); + break; case "look": var $a = $(obj.tr).find('a[lay-event="look"]'); var offset = $a.offset(); @@ -131,10 +133,6 @@ ,{field: 'matnr', align: 'center',title: '鐗╂枡鍙�'} ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О'} ,{field: 'anfme', align: 'center',title: '鏁伴噺'} - ,{field: 'owner$', align: 'center',title: '璐т富'} - ,{field: 'payment$', align: 'center',title: '璐х墿褰㈡��'} - ,{field: 'owner', align: 'center',title: '璐т富', hide:true} - ,{field: 'payment', align: 'center',title: '璐х墿褰㈡��', hide:true} ,{field: 'createTime$', align: 'center',title: '鎿嶄綔鏃堕棿'} ,{field: 'count', align: 'center',title: '瀹屾垚鏁�'} ,{field: 'status$', align: 'center',title: '鐘舵��'} @@ -319,6 +317,40 @@ }) } + function doDel(docNum) { + console.log(docNum) + layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', { + shade: .1, + skin: 'layui-layer-admin' + }, function (i) { + layer.close(i); + layer.load(2); + $.ajax({ + url: baseUrl+"/pakout/delete/auth", + headers: {'token': localStorage.getItem('token')}, + data:{ + docNum:docNum + }, + method: 'GET', + success: function (res) { + layer.closeAll('loading'); + if (res.code === 200){ + if (insTbCount === 0) { + insTb.reload({page: {curr: 1}}); + } else { + $(".layui-laypage-btn")[0].click(); + } + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + diff --git a/src/main/webapp/views/picking/picking.html b/src/main/webapp/views/picking/picking.html index 018c501..32f447f 100644 --- a/src/main/webapp/views/picking/picking.html +++ b/src/main/webapp/views/picking/picking.html @@ -75,6 +75,7 @@ <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">瀹岀粨</a> {{# } }} <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="btnPrint2">鎵撳嵃</a> + <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">鍒犻櫎</a> <!-- <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="btnPrint"><img src="../../static/image/nav/fn_3.png" alt="浜岀淮鐮�"></a> --> </script> -- Gitblit v1.9.1