From 54ff9a76122b2612e263d621298a3ca2d3e78f37 Mon Sep 17 00:00:00 2001
From: mrzhssss <pro6@qq.com>
Date: 星期六, 26 三月 2022 09:08:18 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/OrderDetlMapper.xml                        |    1 +
 src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java             |    2 ++
 src/main/java/zy/cloud/wms/manager/controller/PickoutController.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java b/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java
index 73b270d..bb59338 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java
@@ -206,11 +206,59 @@
                 orderNos.add(s);
             }
         }
+        /**
+         * 寰幆鎵�鏈夋嫞璐у崟鏄庣粏,渚濇鍒嗛厤缁欐墍鏈夊嚭搴撳崟
+         */
         for (PickoutDetl pickoutDetl : pickoutDetls) {
+            //鑾峰彇鏈娉㈡鐢熸垚鎷h揣鍗曚箣鍚�,璇ョ墿鏂欐�诲叡鎹′簡澶氬皯
             Double anfme = pickoutDetl.getAnfme();
             String matnr = pickoutDetl.getMatnr();
+            /**
+             * 鑾峰彇鎵�鏈夌殑鐗╂枡鐩稿悓,涓旇鍖呭惈鍦ㄦ尝娆℃槑缁嗛噷鐨勫嚭搴撹鍗�
+             */
             List<OrderDetl> orderDetls = orderDetlService.selectOutList(matnr,new ArrayList<String>(orderNos));
+            for (OrderDetl orderDetl : orderDetls) {
+                /**
+                 * 濡傛灉鎷h揣鍗曠殑鍓╀綑鏁伴噺绛変簬0,浠h〃璇ョ墿鏂欏凡缁忓垎閰嶅畬鎴�,鐩存帴break
+                 */
+                if (anfme == 0.0 ){
+                    break;
+                }
+                /**
+                 * 濡傛灉鎷h揣鍗曠殑鏁伴噺澶т簬璇ュ嚭搴撳崟鐨勬暟閲�,鐩存帴鎶婂嚭搴撴墍闇�閲�(out_qty)鎷夋弧
+                 */
+                if (anfme >= (orderDetl.getAnfme() - orderDetl.getOutQty())){
+                    orderDetl.setOutQty(orderDetl.getAnfme());
+                    anfme = anfme - (orderDetl.getAnfme() - orderDetl.getOutQty());
 
+                    orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>()
+                            .eq("id",orderDetl.getId()));
+                    continue;
+                }
+                /**
+                 * 濡傛灉鎷h揣鍗曠殑鏁伴噺灏忎簬鍑哄簱鍗曠殑鏁伴噺,璇佹槑璇ユ嫞璐у崟鐨勭墿鏂欏凡缁忎笉澶熷垎浜�,灏�
+                 */
+                if (anfme < (orderDetl.getAnfme() - orderDetl.getOutQty())){
+                    orderDetl.setOutQty(anfme);
+                    anfme = 0.0;
+                    orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>()
+                            .eq("id",orderDetl.getId()));
+                }
+            }
+        }
+        for (String orderNo : orderNos) {
+            Order order = orderService.selectOne(new EntityWrapper<Order>()
+                    .eq("order_no", orderNo));
+            List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
+                    .eq("order_no", orderNo));
+            for (OrderDetl orderDetl : orderDetls) {
+                if (orderDetl.getAnfme() == orderDetl.getOutQty()){
+                    break;
+                }
+            }
+            order.setSettle(4L);
+            orderService.update(order,new EntityWrapper<Order>()
+                    .eq("order_no",orderNo));
         }
 
         return R.ok();
diff --git a/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java b/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java
index 123e37d..653ae8b 100644
--- a/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java
+++ b/src/main/java/zy/cloud/wms/manager/entity/OrderDetl.java
@@ -182,6 +182,8 @@
     @ApiModelProperty(value= "澶囨敞")
     private String memo;
 
+    @TableField("out_qty")
+    private Double outQty;
 //    public OrderDetl() {}
 //
 //    public OrderDetl(Long hostId, Long orderId,Double anfme,String matnr,String maktx,String name,String specs,String model,String batch,String unit,String barcode,String supplier,Double unitPrice,Integer itemNum,Integer count,Double weight,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index b34d843..b8b70df 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -28,6 +28,7 @@
         <result column="update_by" property="updateBy" />
         <result column="update_time" property="updateTime" />
         <result column="memo" property="memo" />
+        <result column="out_qty" property="outQty" />
     </resultMap>
 
 

--
Gitblit v1.9.1