From 1ed0d9a39f500c2b39de10320c47ce90a38bb2ba Mon Sep 17 00:00:00 2001
From: 18516761980 <56479841@qq.com>
Date: 星期一, 27 六月 2022 13:57:34 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/luxiaotao1123/zy-asrs into hylyasrs

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   75 +++++++++++++++++++++++++++++++++++--
 src/main/java/com/zy/asrs/controller/MobileController.java    |   19 ++-------
 src/main/java/com/zy/asrs/service/MobileService.java          |    2 +
 3 files changed, 77 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 0aa03bc..027c0fd 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
@@ -303,20 +304,8 @@
         if(!param.containsKey("staNo") || !param.containsKey("orderNo")){
             return R.parse(BaseRes.PARAM);
         }
-        Integer staNo = param.containsKey("staNo") ? Integer.parseInt(param.get("staNo").toString()) : 0;
-        String orderNo = param.containsKey("orderNo") ? param.get("orderNo").toString() : "";
-
-        BasDevp sta = basDevpService.checkSiteStatus(staNo);
-        //鏍规嵁璁㈠崟鍙风敓鎴愬嚭搴撲换鍔″伐浣滄。,寰呭疄鐜�
-        List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
-        for(OrderDetl orderDetl : orderDetls){
-            //鏌ヨ鎵�鏈夊簱浣嶇姸鎬佷负F鐨勫簱浣嶄俊鎭�
-            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),null);
-            if (locDetls.size() == 0) {
-                throw new CoolException("搴撳瓨涓病鏈夎鐗╂枡");
-            }
-        }
-
+        mobileService.pakoutByOrder(param,getUserId());
+        return R.ok("鍑哄簱鎴愬姛");
 
 //        if (Cools.isEmpty(locDtos)) {
 //            return R.parse(BaseRes.PARAM);
@@ -352,7 +341,7 @@
 //            BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
 //            workService.stockOut(staNo, taskDto, getUserId());
 //        }
-        return R.ok();
+//        return R.ok();
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 51e6c59..072f9a3 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.zy.asrs.entity.param.CombParam;
 import com.zy.asrs.entity.param.MobileAdjustParam;
 
@@ -17,4 +18,5 @@
 
     void packComb(CombParam param, Long userId);
 
+    void pakoutByOrder(JSONObject param, Long userId);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 11bc041..34c46a2 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -3,10 +3,8 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.BaseRes;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.SnowflakeIdWorker;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.core.common.*;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.CombParam;
@@ -59,6 +57,12 @@
     private SnowflakeIdWorker snowflakeIdWorker;
     @Autowired
     private ApiLogService apiLogService;
+    @Autowired
+    private BasCrnpService basCrnpService;
+    @Autowired
+    private LocMastService locMastService;
+    @Autowired
+    private LocDetlService locDetlService;
 
     @Override
     @Transactional
@@ -400,4 +404,67 @@
         }
     }
 
+    @Override
+    @Transactional
+    public void pakoutByOrder(JSONObject param, Long userId) {
+        Integer staNo = param.containsKey("staNo") ? Integer.parseInt(param.get("staNo").toString()) : 0;
+        String orderNo = param.containsKey("orderNo") ? param.get("orderNo").toString() : "";
+
+        BasDevp sta = basDevpService.checkSiteStatus(staNo);
+        //鏍规嵁璁㈠崟鍙风敓鎴愬嚭搴撲换鍔″伐浣滄。
+        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderNo));
+        List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
+        Date now = new Date();
+        for(OrderDetl orderDetl : orderDetls){
+            //鏌ヨ鎵�鏈夊簱浣嶇姸鎬佷负F鐨勫簱浣嶄俊鎭�
+            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),null);
+            if (locDetls.size() == 0) {
+                throw new CoolException("搴撳瓨涓病鏈夎鐗╂枡");
+            }
+            for(LocDetl locDetl : locDetls){
+                //濡傛灉璇ュ簱浣嶅嚭搴撹矾绾挎墍鐢ㄧ殑鍫嗗灈鏈簅ut_enable涓嶄负Y,璺宠繃璇ュ惊鐜�
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                        .eq("loc_no", locDetl.getLocNo()));
+                if (Cools.isEmpty(locMast)) {
+                    continue;
+                }
+                BasCrnp crn_no = basCrnpService.selectOne(new EntityWrapper<BasCrnp>()
+                        .eq("crn_no", locMast.getCrnNo()));
+                if (Cools.isEmpty(crn_no) || !crn_no.getOutEnable().equals("Y")){
+                    continue;
+                }
+
+                //鍙嚭搴撴暟閲� = 璁㈠崟鏁伴噺 - 浣滀笟涓暟閲�
+                Double outQty = orderDetl.getAnfme() - orderDetl.getWorkQty();
+                if(outQty <= 0){
+                    break;
+                }
+                // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱
+                Double sumCount = locDetlService.getLocDetlSumQty(locDetl.getLocNo());
+                Double curOutQty = outQty >= locDetl.getAnfme() ? locDetl.getAnfme() : outQty;   //鏈鍑哄簱閲�
+                int ioType = sumCount <= curOutQty ? 101 : 103;
+
+//                stockOut(orderDetl, staNo, locDetl, curOutQty, ioType, userId);
+                order.setSettle(2L);
+                order.setUpdateBy(userId);
+                order.setUpdateTime(now);
+                if(orderService.update(order, new EntityWrapper<Order>().eq("order_no", orderNo))){
+                    throw new CoolException("鏇存柊璁㈠崟鐘舵�佸け璐�");
+                }
+                orderDetl.setWorkQty(orderDetl.getWorkQty() + curOutQty);
+                orderDetl.setUpdateBy(userId);
+                orderDetl.setUpdateTime(now);
+                Wrapper wrapper = new EntityWrapper<OrderDetl>().eq("order_no", orderNo)
+                        .eq("matnr",orderDetl.getMatnr());
+                if(!Cools.isEmpty(orderDetl.getBatch())){
+                    wrapper.eq("batch", orderDetl.getBatch());
+                }
+                if(orderDetlService.update(orderDetl, wrapper)){
+                    throw new CoolException("鏇存柊璁㈠崟鏄庣粏澶辫触");
+                }
+            }
+
+        }
+    }
+
 }

--
Gitblit v1.9.1