From 61593c7f55cf24d81746aa041e60d0ccccd8b80a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 19 六月 2020 09:30:08 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   99 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 96 insertions(+), 3 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 e18f821..e69c42a 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -8,6 +8,7 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.EmptyPlateOutParam;
 import com.zy.asrs.entity.param.FullStoreParam;
+import com.zy.asrs.entity.param.LocDetlAdjustParam;
 import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.service.*;
 import com.zy.common.model.LocDetlDto;
@@ -43,6 +44,10 @@
     private StaDescService staDescService;
     @Autowired
     private LocDetlService locDetlService;
+    @Autowired
+    private MatCodeService matCodeService;
+    @Autowired
+    private AdjDetlService adjDetlService;
 
     @Override
     @Transactional
@@ -138,8 +143,6 @@
     @Override
     @Transactional
     public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Long userId) {
-        // 鐢熸垚宸ヤ綔鍙�
-        int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
         // 鍚堝苟鍚岀被椤�
         Set<String> locNos = new HashSet<>();
         locDetlDtos.forEach(dto -> locNos.add(dto.getLocDetl().getLocNo()));
@@ -169,6 +172,8 @@
             if (Cools.isEmpty(staDesc)) {
                 throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
             }
+            // 鐢熸垚宸ヤ綔鍙�
+            int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
             // 鐢熸垚宸ヤ綔妗�
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
@@ -194,6 +199,7 @@
             }
             // 鐢熸垚宸ヤ綔妗f槑缁�
             for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
+                if (detlDto.getCount() <= 0.0D) {continue;}
                 WrkDetl wrkDetl = new WrkDetl();
                 wrkDetl.setWrkNo(workNo);
                 wrkDetl.setIoTime(new Date());
@@ -394,6 +400,13 @@
             wrkDetl.setIoTime(new Date());
             wrkDetl.setMatnr(locDetl.getMatnr());
             wrkDetl.setAnfme(locDetl.getAnfme());
+            wrkDetl.setZmatid(locDetl.getZmatid());
+            wrkDetl.setTbpos(locDetl.getTbpos());
+            wrkDetl.setTbnum(locDetl.getTbnum());
+            wrkDetl.setLgnum(locDetl.getLgnum());
+            wrkDetl.setAltme(locDetl.getAltme());
+            wrkDetl.setBname(locDetl.getBname());
+            wrkDetl.setMaktx(locDetl.getMaktx());
             wrkDetl.setAppeTime(new Date());
             wrkDetl.setAppeUser(userId);
             wrkDetl.setModiTime(new Date());
@@ -422,7 +435,7 @@
                 throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
             }
         } else {
-            throw new CoolException("棰勭害鐩爣搴撲綅鍏ュ簱澶辫触锛岀姸鎬侊細"+loc.getLocType$());
+            throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocType$());
         }
     }
 
@@ -452,6 +465,86 @@
 
     @Override
     @Transactional
+    public void adjustLocDetl(LocDetlAdjustParam param, Long userId) {
+        LocMast locMast = locMastService.selectById(param.getLocNo());
+        if (Cools.isEmpty(locMast)) {
+            throw new CoolException("搴撲綅涓嶅瓨鍦�");
+        }
+        for (LocDetlAdjustParam.LocDetlAdjust adjust : param.getList()) {
+            if (Cools.isEmpty(adjust.getMatnr())) {
+                throw new CoolException(BaseRes.PARAM);
+            }
+            LocDetl sqlParam = new LocDetl();
+            sqlParam.setLocNo(locMast.getLocNo());
+            sqlParam.setMatnr(adjust.getMatnr());
+            LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
+            // 淇濆瓨鏂板簱瀛樻槑缁�
+            if (Cools.isEmpty(one)) {
+                if (adjust.getCount() == 0){
+                    continue;
+                }
+                MatCode matCode = matCodeService.selectById(adjust.getMatnr());
+                LocDetl locDetl = new LocDetl();
+                locDetl.setLocNo(locMast.getLocNo());
+                locDetl.setMatnr(matCode.getMatNo());
+                locDetl.setMaktx(matCode.getMatName()); // 鐗╂枡鎻忚堪
+                locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
+                locDetl.setAltme(matCode.getStr1()); // 鍗曚綅
+                // todo:luxiaoao
+                locDetl.setLgnum("寰呭畾"); // 浠撳簱鍙�
+                locDetl.setTbnum(0); // 杞偍璇锋眰缂栧彿
+                locDetl.setTbpos(0); // 琛岄」鐩�
+                locDetl.setZmatid("寰呭畾"); // 鐗╂枡鏍囩ID
+                locDetl.setZpallet("寰呭畾"); // 鎵樼洏鏉$爜
+
+                locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
+                locDetl.setModiTime(new Date());
+                locDetl.setAppeUser(userId);
+                locDetl.setAppeTime(new Date());
+                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 {
+                // 濡傛灉鏁伴噺淇敼锛屽垯鏇存柊搴撳瓨鏄庣粏
+                if (!adjust.getCount().equals(one.getAnfme())) {
+                    // 褰撴暟閲忚淇敼涓� 0 鏃讹紝鐩存帴娓呴櫎搴撳瓨鏄庣粏
+                    if (adjust.getCount() == 0) {
+                        if (!locDetlService.delete(new EntityWrapper<>(one))) {
+                            throw new CoolException("娓呴櫎搴撳瓨鏄庣粏澶辫触");
+                        }
+                    } else {
+                        LocDetl sqlParam1 = new LocDetl();
+                        sqlParam1.setAnfme(adjust.getCount());
+                        sqlParam1.setModiTime(new Date());
+                        sqlParam1.setModiUser(userId);
+                        if (!locDetlService.update(sqlParam1, new EntityWrapper<LocDetl>()
+                                .eq("loc_no", locMast.getLocNo())
+                                .eq("matnr", adjust.getMatnr()))) {
+                            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);
+                }
+            }
+        }
+    }
+
+    @Override
+    @Transactional
     public void cancelWrkMast(String workNo, Long userId) {
         WrkMast wrkMast = wrkMastService.selectById(workNo);
         if (Cools.isEmpty(wrkMast)){

--
Gitblit v1.9.1