From 439452f59b03556aecc5dd6dbaa8f064b70cd026 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 31 五月 2021 11:13:49 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/WorkService.java | 2 src/main/java/com/zy/asrs/controller/OpenController.java | 38 +++++++++++++------ src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 7 ++- src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | 19 +++++++++ 4 files changed, 50 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java index 018f04d..336b816 100644 --- a/src/main/java/com/zy/asrs/controller/OpenController.java +++ b/src/main/java/com/zy/asrs/controller/OpenController.java @@ -14,11 +14,9 @@ import com.zy.asrs.service.*; import com.zy.common.model.LocDetlDto; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; @@ -41,6 +39,8 @@ private BasDevpService basDevpService; @Autowired private WrkMastService wrkMastService; + @Autowired + private JdbcTemplate jdbcTemplate; @PostMapping("/stockOut/prew") @Transactional @@ -140,6 +140,8 @@ if (issued > 0) { // 鐢熸垚鍑哄簱宸ヤ綔妗� + int priorCount = jdbcTemplate.queryForObject("select isnull(count(*),0) from man_prior where 1=1 and matnr = '" + param.getMatnr() + "'", Integer.class); + // 鍏ㄦ澘 if (issued>=locDetl.getAnfme()) { BasDevp staNo = basDevpService.checkSiteStatus(103); @@ -148,16 +150,28 @@ dto.setLocDetl(locDetl); dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); detlDtos.add(dto); - workService.stockOut(staNo, detlDtos, 101, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo())); + workService.stockOut(staNo, detlDtos, 101, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo()), null); // 鎷f枡 } else { - BasDevp staNo = basDevpService.checkSiteStatus(113); - List<LocDetlDto> detlDtos = new ArrayList<>(); - LocDetlDto dto = new LocDetlDto(); - dto.setLocDetl(locDetl); - dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); - detlDtos.add(dto); - workService.stockOut(staNo, detlDtos, 103, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo())); + + 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); + workService.stockOut(staNo, detlDtos, 101, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo()), locDetl.getAnfme()-issued); + } else { + BasDevp staNo = basDevpService.checkSiteStatus(113); + List<LocDetlDto> detlDtos = new ArrayList<>(); + LocDetlDto dto = new LocDetlDto(); + dto.setLocDetl(locDetl); + dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); + detlDtos.add(dto); + workService.stockOut(staNo, detlDtos, 103, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo()), null); + } + } PakoutVo pakoutVo = new PakoutVo(); diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java index ae85a2c..1bd977f 100644 --- a/src/main/java/com/zy/asrs/service/WorkService.java +++ b/src/main/java/com/zy/asrs/service/WorkService.java @@ -28,7 +28,7 @@ * @param locDetls 寰呭嚭搴撶墿鏂� * @param ioType 鍏ュ嚭搴撶被鍨� */ - void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, Integer ioType, Long userId, String allotNo, Boolean sell); + void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, Integer ioType, Long userId, String allotNo, Boolean sell, Double more); /** * 绌烘澘鍏ュ簱 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 1c91ccf..bf67288 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -149,7 +149,7 @@ } if (!locDetlDtos.isEmpty()) { // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱 - stockOut(staNo, locDetlDtos, null, userId, null, false); + stockOut(staNo, locDetlDtos, null, userId, null, false, null); } else { throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�"); } @@ -157,7 +157,7 @@ @Override @Transactional - public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Integer ioType, Long userId, String allotNo, Boolean sell) { + public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Integer ioType, Long userId, String allotNo, Boolean sell, Double more) { // 鍚堝苟鍚岀被椤� Set<String> locNos = new HashSet<>(); locDetlDtos.forEach(dto -> locNos.add(dto.getLocDetl().getLocNo())); @@ -211,6 +211,7 @@ wrkMast.setLinkMis("N"); wrkMast.setPacked(allotNo); // 骞充粨琛ヤ粨鍗曞彿 wrkMast.setPdcType(sell?"Y":"N"); // ERP閿�鍞鍗曞嚭搴撲换鍔� + wrkMast.setRefWrkno(more==null?0.0D:more); wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁 wrkMast.setAppeTime(new Date()); wrkMast.setModiUser(userId); @@ -387,7 +388,7 @@ } if (!locDetlDtos.isEmpty()) { // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱 - stockOut(staNo, locDetlDtos, 107, userId, null, false); + stockOut(staNo, locDetlDtos, 107, userId, null, false, null); } else { throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�"); } diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java index add9e2a..07e740c 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Optional; /** * Created by vincent on 2020/7/6 @@ -125,6 +126,24 @@ if (result.getCode() != 200) { exceptionHandle("琛ヨ揣鍒板钩浠揫workNo={0}]澶辫触", wrkMast.getWrkNo()); } + // 閿�鍞鍗� + } else { + if (wrkMast.getIoType() == 101) { + Double more = Optional.ofNullable(wrkMast.getRefWrkno()).orElse(0.0D); + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + if (more > 0 && !Cools.isEmpty(wrkDetls)) { + WrkDetl wrkDetl = wrkDetls.get(0); + ReplenishDto param = new ReplenishDto(); + param.setMatnr(wrkDetl.getMatnr()); + param.setCount(more); + List<ReplenishDto> replenishDtos = new ArrayList<>(); + replenishDtos.add(param); + Result result = wmsService.replenish(replenishDtos); + if (result.getCode() != 200) { + exceptionHandle("琛ヨ揣鍒板钩浠揫workNo={0}]澶辫触", wrkMast.getWrkNo()); + } + } + } } } -- Gitblit v1.9.1