From 8efbcfef1ccb88c0f4020dc5bbfd271ab403ac1d Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 29 三月 2022 16:30:09 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   61 +++++++++++++++---------------
 1 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index e218f63..6c21b9f 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -45,11 +45,11 @@
     @Autowired
     private WrkMastService wrkMastService;
     @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
     private BasDevpService basDevpService;
     @Autowired
     private CommonService commonService;
-    @Autowired
-    private WrkDetlService wrkDetlService;
     @Autowired
     private LocMastService locMastService;
     @Autowired
@@ -68,6 +68,10 @@
     private WmsService wmsService;
     @Autowired
     private SnowflakeIdWorker snowflakeIdWorker;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private OrderDetlService orderDetlService;
 
     @Override
     @Transactional
@@ -273,15 +277,8 @@
         // 鑾峰彇搴撲綅
         LocMast locMast = locMastService.selectById(taskDto.getLocNo());
         // 鑾峰彇璺緞
-        Integer ioType = taskDto.isAll() ? 101 : 103;
-        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-                .eq("type_no", ioType)
-                .eq("stn_no", staNo.getDevNo())
-                .eq("crn_no", locMast.getCrnNo());
-        StaDesc staDesc = staDescService.selectOne(wrapper);
-        if (Cools.isEmpty(staDesc)) {
-            throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
-        }
+        int ioType = taskDto.isAll() ? 101 : 103;
+        StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo());
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
         // 鐢熸垚宸ヤ綔妗�
@@ -309,14 +306,15 @@
         }
         // 鐢熸垚宸ヤ綔妗f槑缁�
         for (LocDto locDto : taskDto.getLocDtos()) {
-            // 鍑哄簱鏃讹紝鏁伴噺涓�0鐨勭洿鎺ュ拷鐣�
-            if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
+            if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
+            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
             WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.setIoTime(now);
             wrkDetl.setWrkNo(workNo);
-            wrkDetl.setIoTime(new Date());
-            Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
-            wrkDetl.setAnfme(anfme); // 鏁伴噺
-            VersionUtils.setWrkDetl(wrkDetl, detlDto.getLocDetl()); // 鐗堟湰鎺у埗
+            wrkDetl.setBatch(locDto.getBatch());
+            wrkDetl.setOrderNo(locDto.getOrderNo());
+            wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+            VersionUtils.setWrkDetl(wrkDetl, orderDetl); // 鐗堟湰鎺у埗
             wrkDetl.setAppeTime(now);
             wrkDetl.setAppeUser(userId);
             wrkDetl.setModiTime(now);
@@ -324,6 +322,11 @@
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
+            // 淇敼璁㈠崟鏄庣粏
+            if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+                throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+            }
+            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
         }
         // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
         locMast = locMastService.selectById(taskDto.getLocNo());
@@ -453,7 +456,6 @@
                     throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
                 }
             }
-            // todo 鏇存柊绔欑偣淇℃伅锛堝伐浣滃彿锛�
         }
     }
 
@@ -751,18 +753,6 @@
             // 鍑哄簱 ===>> F.鍦ㄥ簱
             if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
                 locSts = "F";
-                // 閿�鍞崟鍏宠仈锛屽垯鐢熸垚鏂扮殑鍑哄簱浠诲姟
-                if (wrkMast.getPdcType().equals("Y")) {
-                    List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
-                    for (WrkDetl wrkDetl : wrkDetls) {
-                        Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(wrkDetl.getMatnr())).orElse(0.0D);
-                        if (sumAnfme < wrkDetl.getAnfme()) {
-                            throw new CoolException("鍙栨秷澶辫触锛佸簱瀛樹笉瓒充互閲嶆柊鐢熸垚鍑哄簱浣滀笟");
-                        }
-                    }
-                    // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
-                    stockOutRe(wrkMast, wrkDetls);
-                }
             // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
             } else if (wrkMast.getIoType() == 110) {
                 locSts = "D";
@@ -782,6 +772,17 @@
         } else {
             throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
         }
+        // 璁㈠崟鍏宠仈
+        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+        for (WrkDetl wrkDetl : wrkDetls) {
+            if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+                if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+                    throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+                }
+                // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
+//                        stockOutRe(wrkMast, wrkDetls);
+            }
+        }
         // 鍙栨秷鎿嶄綔浜哄憳璁板綍
         wrkMast.setManuType("鎵嬪姩鍙栨秷");
         wrkMast.setModiUser(userId);

--
Gitblit v1.9.1