From 9b50ae798149b64f9e3413897ff96d4084a9a7aa Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 23 三月 2022 10:06:36 +0800 Subject: [PATCH] #杰克缝纫机立库 【优化单据管理】 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 69 ++++++++++++++++++++++++++++++++++ 1 files changed, 69 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 3d08f6b..6efa9eb 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -1,5 +1,6 @@ package com.zy.asrs.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.BaseRes; @@ -12,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.*; @@ -19,7 +21,9 @@ import com.zy.common.service.CommonService; import com.zy.common.service.wms.Result; 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; @@ -30,6 +34,7 @@ /** * Created by vincent on 2020/6/11 */ +@Slf4j @Service public class WorkServiceImpl implements WorkService { @@ -76,6 +81,8 @@ BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true); // 妫�绱㈠簱浣� LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); + log.info(JSON.toJSONString(locTypeDto)); + log.info("{}鍏ュ簱鍙e昂瀵告娴嬶細{}", param.getDevpNo(), locTypeDto.getLocType1()==1?"浣庤鏍煎簱浣�":"楂樿鏍煎簱浣�"); List<String> matNos = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatNo).distinct().collect(Collectors.toList()); StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matNos, locTypeDto, 0); // 鐢熸垚宸ヤ綔鍙� @@ -668,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"; @@ -780,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