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 |   94 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 82 insertions(+), 12 deletions(-)

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 ed38381..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
@@ -125,9 +129,9 @@
                 if (elem.getAnfme() > orderDetl.getEnableQty()) {
                     throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
                 }
-                // 淇敼璁㈠崟鏄庣粏鏁伴噺
-                if (!orderDetlService.increase(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) {
-                    throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
+                // 淇敼璁㈠崟浣滀笟鏁伴噺
+                if (!orderDetlService.increaseWorkQty(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) {
+                    throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
                 }
 
                 DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
@@ -147,7 +151,7 @@
                 WaitPakin waitPakin = new WaitPakin();
                 waitPakin.sync(mat);
                 waitPakin.setOrderNo(order.getOrderNo());   // 鍗曟嵁缂栧彿
-                waitPakin.setBatch(detlDto.getBatch());     // 鎵瑰彿
+                waitPakin.setBatch(detlDto.getBatch());     // 搴忓垪鐮�
                 waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
                 waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
                 waitPakin.setAnfme(detlDto.getAnfme());  // 鏁伴噺
@@ -290,8 +294,11 @@
             if (packDown) {
                 MesCombParam mesCombParam = new MesCombParam();
                 mesCombParam.setZpallet(param.getBarcode());
-                mesCombParam.setCombTime(DateUtils.convert(now));
+                mesCombParam.setPakinTime(DateUtils.convert(now));
                 mesCombParam.setLgort("5008");
+                mesCombParam.setPlantCode("5000");
+                mesCombParam.setFromCode("5012-20");
+                mesCombParam.setStationCode("JJQ-PFZPDB-XX");
                 for (DetlDto detlDto : detlDtos) {
                     mesCombParam.getList().add(new MesCombParam.Detl(detlDto.getOrderNo(), detlDto.getAnfme()));
                 }
@@ -359,9 +366,9 @@
                 if (detlDto.getAnfme() > orderDetl.getEnableQty()) {
                     throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
                 }
-                // 淇敼璁㈠崟鏄庣粏鏁伴噺
-                if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
-                    throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
+                // 淇敼璁㈠崟浣滀笟鏁伴噺
+                if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
+                    throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
                 }
 
                 // 淇濆瓨鍏ュ簱閫氱煡妗�
@@ -397,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