From 872a269a10513973af50da22c6673f47739954ad Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 19 六月 2020 13:21:17 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   39 ++++++++++++++++++++++++++++++++-------
 1 files changed, 32 insertions(+), 7 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 e69c42a..0f5e587 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -133,8 +133,8 @@
             }
         }
         if (!locDetlDtos.isEmpty()) {
-            // 鍚姩鍑哄簱寮�濮�
-            stockOut(staNo, locDetlDtos, userId);
+            // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
+            stockOut(staNo, locDetlDtos, 101, userId);
         } else {
             throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
         }
@@ -142,7 +142,7 @@
 
     @Override
     @Transactional
-    public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Long userId) {
+    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,7 +165,7 @@
             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);
@@ -179,7 +179,7 @@
             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()); // 婧愮珯
@@ -199,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());
@@ -355,6 +356,30 @@
 
     @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("搴撲綅鐗╂枡涓嶅瓨鍦�");
+        }
+    }
+
+    @Override
+    @Transactional
     public void locMove(String sourceLocNo, String locNo, Long userId) {
         LocMast sourceLoc = locMastService.selectById(sourceLocNo);
         if (Cools.isEmpty(sourceLoc)){

--
Gitblit v1.9.1