From abf97299ede3798c35377d0ea8b559f91c586b89 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 22 六月 2020 13:28:47 +0800
Subject: [PATCH] 全文搜索

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 50 insertions(+), 10 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 496d6bb..0f5e587 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -46,6 +46,8 @@
     private LocDetlService locDetlService;
     @Autowired
     private MatCodeService matCodeService;
+    @Autowired
+    private AdjDetlService adjDetlService;
 
     @Override
     @Transactional
@@ -131,8 +133,8 @@
             }
         }
         if (!locDetlDtos.isEmpty()) {
-            // 鍚姩鍑哄簱寮�濮�
-            stockOut(staNo, locDetlDtos, userId);
+            // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
+            stockOut(staNo, locDetlDtos, 101, userId);
         } else {
             throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
         }
@@ -140,9 +142,7 @@
 
     @Override
     @Transactional
-    public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Long userId) {
-        // 鐢熸垚宸ヤ綔鍙�
-        int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+    public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Integer ioType, Long userId) {
         // 鍚堝苟鍚岀被椤�
         Set<String> locNos = new HashSet<>();
         locDetlDtos.forEach(dto -> locNos.add(dto.getLocDetl().getLocNo()));
@@ -165,19 +165,21 @@
             LocMast locMast = locMastService.selectById(dto.getLocNo());
             // 鑾峰彇璺緞
             Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-                    .eq("type_no", 101)
+                    .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 workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
             // 鐢熸垚宸ヤ綔妗�
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
             wrkMast.setIoTime(new Date());
             wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
-            wrkMast.setIoType(101); // 鍏ュ嚭搴撶姸鎬侊細101.鍑哄簱
+            wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬侊細101.鍑哄簱
             wrkMast.setIoPri(13D); // 浼樺厛绾э細13
             wrkMast.setCrnNo(locMast.getCrnNo());
             wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
@@ -197,12 +199,13 @@
             }
             // 鐢熸垚宸ヤ綔妗f槑缁�
             for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
-                if (detlDto.getCount() <= 0.0D) {continue;}
+                if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
                 WrkDetl wrkDetl = new WrkDetl();
                 wrkDetl.setWrkNo(workNo);
                 wrkDetl.setIoTime(new Date());
                 wrkDetl.setMatnr(detlDto.getLocDetl().getMatnr());
-                wrkDetl.setAnfme(detlDto.getCount()); // 鏁伴噺
+                Double anfme = ioType==101?detlDto.getCount():detlDto.getLocDetl().getAnfme();
+                wrkDetl.setAnfme(anfme); // 鏁伴噺
                 wrkDetl.setZmatid(detlDto.getLocDetl().getZmatid());
                 wrkDetl.setTbpos(detlDto.getLocDetl().getTbpos());
                 wrkDetl.setTbnum(detlDto.getLocDetl().getTbnum());
@@ -348,6 +351,30 @@
                 }
             }
             // todo 鏇存柊绔欑偣淇℃伅锛堝伐浣滃彿锛�
+        }
+    }
+
+    @Override
+    @Transactional
+    public void locCheckOut(StockOutParam param, Long userId) {
+        // 鐩爣绔欑偣鐘舵�佹娴�
+        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+        // 鑾峰彇搴撲綅鏄庣粏
+        List<LocDetlDto> locDetlDtos = new ArrayList<>();
+        for (StockOutParam.LocDetl locDetl : param.getLocDetls()) {
+            if (!Cools.isEmpty(locDetl.getLocNo(), locDetl.getMatnr())) {
+                LocDetl sqlParam = new LocDetl();
+                sqlParam.setLocNo(locDetl.getLocNo());
+                sqlParam.setMatnr(locDetl.getMatnr());
+                LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
+                if (null != one) locDetlDtos.add(new LocDetlDto(one, locDetl.getCount()));
+            }
+        }
+        if (!locDetlDtos.isEmpty()) {
+            // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
+            stockOut(staNo, locDetlDtos, 107, userId);
+        } else {
+            throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
         }
     }
 
@@ -502,6 +529,13 @@
                 if (!locDetlService.insert(locDetl)) {
                     throw new CoolException("淇濆瓨搴撳瓨鏄庣粏澶辫触");
                 }
+                // 淇濆瓨璋冩暣璁板綍
+                AdjDetl adjDetl = new AdjDetl();
+                adjDetl.setLocNo(locDetl.getLocNo());
+                adjDetl.setMatNo(locDetl.getMatnr());
+                adjDetl.setOriQty(0.0D);
+                adjDetl.setAdjQty(adjust.getCount());
+                adjDetlService.save(adjDetl, userId);
             // 淇敼鍘熷簱瀛樻槑缁�
             } else {
                 // 濡傛灉鏁伴噺淇敼锛屽垯鏇存柊搴撳瓨鏄庣粏
@@ -522,9 +556,15 @@
                             throw new CoolException("淇敼搴撳瓨鏄庣粏澶辫触");
                         }
                     }
+                    // 淇濆瓨璋冩暣璁板綍
+                    AdjDetl adjDetl = new AdjDetl();
+                    adjDetl.setLocNo(locMast.getLocNo());
+                    adjDetl.setMatNo(adjust.getMatnr());
+                    adjDetl.setOriQty(one.getAnfme());
+                    adjDetl.setAdjQty(adjust.getCount());
+                    adjDetlService.save(adjDetl, userId);
                 }
             }
-
         }
     }
 

--
Gitblit v1.9.1