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