From 5ad8b0705e74a6a6268bc0353847e7dce30f8bdd Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 24 三月 2022 10:25:37 +0800 Subject: [PATCH] #杰克缝纫机立库 【生成/修改单据】 1 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 64 ++++++++++++++++++++++++++++++++ 1 files changed, 64 insertions(+), 0 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 cbbf3d5..6efa9eb 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -13,6 +13,7 @@ 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.entity.result.PakoutVo; import com.zy.asrs.service.*; import com.zy.asrs.utils.VersionUtils; import com.zy.common.model.*; @@ -22,6 +23,7 @@ import com.zy.common.service.wms.WmsService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -673,6 +675,18 @@ // 鍑哄簱 ===>> 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"; @@ -785,4 +799,54 @@ } } + @Autowired + private JdbcTemplate jdbcTemplate; + private boolean pickSite = false; + private void stockOutRe(WrkMast wrkMast, List<WrkDetl> wrkDetls) { + for (WrkDetl wrkDetl : wrkDetls) { + List<LocDetl> locDetls = locDetlService.selectPakoutByRule(wrkDetl.getMatnr()); + double issued = wrkDetl.getAnfme(); + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + // 鐢熸垚鍑哄簱宸ヤ綔妗� + // 鍏ㄦ澘 + if (issued>=locDetl.getAnfme()) { + BasDevp staNo = basDevpService.checkSiteStatus(103); + List<LocDetlDto> detlDtos = new ArrayList<>(); + LocDetlDto dto = new LocDetlDto(); + dto.setLocDetl(locDetl); + dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); + detlDtos.add(dto); + stockOut(staNo, detlDtos, 101, 9527L, null, true, null); + // 鎷f枡 + } else { + int priorCount = jdbcTemplate.queryForObject("select isnull(count(*),0) from man_prior where 1=1 and matnr = '" + wrkDetl.getMatnr() + "'", Integer.class); + if (priorCount > 0) { + BasDevp staNo = basDevpService.checkSiteStatus(103); + List<LocDetlDto> detlDtos = new ArrayList<>(); + LocDetlDto dto = new LocDetlDto(); + dto.setLocDetl(locDetl); + dto.setCount(locDetl.getAnfme()); + detlDtos.add(dto); + stockOut(staNo, detlDtos, 101, 9527L,null, true,locDetl.getAnfme()-issued); + } else { + BasDevp staNo = basDevpService.checkSiteStatus(pickSite?113:109); + List<LocDetlDto> detlDtos = new ArrayList<>(); + LocDetlDto dto = new LocDetlDto(); + dto.setLocDetl(locDetl); + dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); + detlDtos.add(dto); + stockOut(staNo, detlDtos, 103, 9527L, null, true, null); + } + + } + + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + } + } + } + pickSite = !pickSite; + } + } -- Gitblit v1.9.1