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 | 83 +++++++++++++++++++++++++++++++++++++---- 1 files changed, 74 insertions(+), 9 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 449f603..e69c42a 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -44,6 +44,10 @@ private StaDescService staDescService; @Autowired private LocDetlService locDetlService; + @Autowired + private MatCodeService matCodeService; + @Autowired + private AdjDetlService adjDetlService; @Override @Transactional @@ -139,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())); @@ -170,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); @@ -466,16 +470,77 @@ if (Cools.isEmpty(locMast)) { throw new CoolException("搴撲綅涓嶅瓨鍦�"); } - // 娓呴櫎鏃у簱瀛樻槑缁� - locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); - // 淇濆瓨鏂板簱瀛樻槑缁� for (LocDetlAdjustParam.LocDetlAdjust adjust : param.getList()) { - LocDetl locDetl = new LocDetl(); - if (!locDetlService.insert(locDetl)) { - throw new CoolException("淇濆瓨搴撳瓨鏄庣粏澶辫触"); + 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 -- Gitblit v1.9.1