From 6fc595d7099ec9b98006da41528900d41ad176fa Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 08 四月 2022 09:46:32 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 196 +++++++++++++++++++++++++++++--------------------
1 files changed, 116 insertions(+), 80 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 891eab1..b051cbf 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -13,7 +13,6 @@
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
-import com.zy.asrs.utils.VersionUtils;
import com.zy.common.model.*;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
@@ -39,6 +38,8 @@
private static final int DEFAULT_ROW_NO_TYPE = 1;
@Autowired
+ private MatService matService;
+ @Autowired
private WrkMastService wrkMastService;
@Autowired
private WrkDetlService wrkDetlService;
@@ -52,8 +53,6 @@
private StaDescService staDescService;
@Autowired
private LocDetlService locDetlService;
- @Autowired
- private MatCodeService matCodeService;
@Autowired
private AdjDetlService adjDetlService;
@Autowired
@@ -79,8 +78,8 @@
BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- 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);
+ List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto, 0);
// 鐢熸垚宸ヤ綔鍙�
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
@@ -111,7 +110,7 @@
// 鐢熸垚宸ヤ綔妗f槑缁�
List<DetlDto> detlDtos = new ArrayList<>();
param.getList().forEach(elem -> {
- DetlDto detlDto = new DetlDto(elem.getMatNo(), elem.getBatch(), elem.getAnfme());
+ DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
if (DetlDto.has(detlDtos, detlDto)) {
DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
assert detlDto1 != null;
@@ -225,11 +224,11 @@
for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(detlDto.getLocDetl());
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(now);
Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
wrkDetl.setAnfme(anfme); // 鏁伴噺
- VersionUtils.setWrkDetl(wrkDetl, detlDto.getLocDetl()); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
@@ -298,12 +297,12 @@
if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(orderDetl);
wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(workNo);
wrkDetl.setBatch(locDto.getBatch());
wrkDetl.setOrderNo(locDto.getOrderNo());
wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
- VersionUtils.setWrkDetl(wrkDetl, orderDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
@@ -456,12 +455,9 @@
// 鑾峰彇搴撲綅鏄庣粏
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
- if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr())) {
- LocDetl sqlParam = new LocDetl();
- sqlParam.setLocNo(paramLocDetl.getLocNo());
- sqlParam.setMatnr(paramLocDetl.getMatnr());
- LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
- if (null != one) locDetlDtos.add(new LocDetlDto(one, one.getAnfme()));
+ if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
+ LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
}
}
if (!locDetlDtos.isEmpty()) {
@@ -516,10 +512,10 @@
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
for (LocDetl locDetl : locDetls) {
WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(locDetl);
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(new Date());
wrkDetl.setAnfme(locDetl.getAnfme());
- VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(new Date());
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(new Date());
@@ -584,84 +580,124 @@
@Override
@Transactional
public void adjustLocDetl(LocDetlAdjustParam param, Long userId) {
+ param.integrate();
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.setAnfme(adjust.getCount()); // 鏁伴噺
- VersionUtils.setLocDetl(locDetl, matCode); // 鐗堟湰鎺у埗
- 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("娓呴櫎搴撳瓨鏄庣粏澶辫触");
+ if (!(locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O"))) {
+ throw new CoolException("褰撳墠搴撲綅涓嶅彲璋冩暣锛佸簱浣嶇姸鎬侊細" + locMast.getLocSts$());
+ }
+
+ Date now = new Date();
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
+
+ List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList();
+
+ // 淇敼鏁伴噺
+ Iterator<LocDetl> iterator = locDetls.iterator();
+ while (iterator.hasNext()) {
+ LocDetl locDetl = iterator.next();
+
+ Iterator<LocDetlAdjustParam.LocDetlAdjust> iterator1 = list.iterator();
+ while (iterator1.hasNext()) {
+ LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next();
+ if (adjust.getCount() == 0) { continue; }
+ if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) {
+ if (!locDetl.getAnfme().equals(adjust.getCount())) {
+ // todo 鐩樼偣璁板綍
+ // 淇敼搴撳瓨
+ if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+ throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
}
- } 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(locDetl.getLocNo());
+ adjDetl.setMatnr(locDetl.getMatnr());
+ adjDetl.setBatch(locDetl.getBatch());
+ adjDetl.setOriQty(locDetl.getAnfme());
+ adjDetl.setAdjQty(adjust.getCount());
+ adjDetl.setModiTime(now);
+ adjDetl.setModiUser(userId);
+ adjDetl.setAppeTime(now);
+ adjDetl.setAppeUser(userId);
+ adjDetlService.save(adjDetl, userId);
}
- // 淇濆瓨璋冩暣璁板綍
- AdjDetl adjDetl = new AdjDetl();
- adjDetl.setLocNo(locMast.getLocNo());
- adjDetl.setMatNo(adjust.getMatnr());
- adjDetl.setOriQty(one.getAnfme());
- adjDetl.setAdjQty(adjust.getCount());
- adjDetlService.save(adjDetl, userId);
+ iterator.remove();
+ iterator1.remove();
}
}
}
- List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
- if (locDetls.isEmpty()) {
- locMast.setLocSts("D");
- locMast.setModiUser(userId);
- locMast.setModiTime(new Date());
- if (!locMastService.updateById(locMast)) {
- throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+
+ // 鍒犻櫎搴撳瓨
+ for (LocDetl locDetl : locDetls) {
+ // todo 鐩樼偣璁板綍
+ if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+ throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触");
}
+ // 淇濆瓨璋冩暣璁板綍
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locDetl.getLocNo());
+ adjDetl.setMatnr(locDetl.getMatnr());
+ adjDetl.setBatch(locDetl.getBatch());
+ adjDetl.setOriQty(locDetl.getAnfme());
+ adjDetl.setAdjQty(0.0D);
+ adjDetl.setModiTime(now);
+ adjDetl.setModiUser(userId);
+ adjDetl.setAppeTime(now);
+ adjDetl.setAppeUser(userId);
+ adjDetlService.save(adjDetl, userId);
+ }
+
+ // 娣诲姞搴撳瓨
+ for (LocDetlAdjustParam.LocDetlAdjust adjust : list) {
+ if (adjust.getCount() == 0.0D) { continue; }
+ Mat mat = matService.selectByMatnr(adjust.getMatnr());
+ LocDetl locDetl = new LocDetl();
+ locDetl.sync(mat);
+ locDetl.setBatch(adjust.getBatch());
+ locDetl.setLocNo(locMast.getLocNo());
+ locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
+ locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
+ locDetl.setModiTime(now);
+ locDetl.setAppeUser(userId);
+ locDetl.setAppeTime(now);
+ if (!locDetlService.insert(locDetl)) {
+ throw new CoolException("淇濆瓨搴撳瓨鏄庣粏澶辫触");
+ }
+ // 淇濆瓨璋冩暣璁板綍
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locMast.getLocNo());
+ adjDetl.setMatnr(adjust.getMatnr());
+ adjDetl.setBatch(adjust.getBatch());
+ adjDetl.setOriQty(0.0D);
+ adjDetl.setAdjQty(adjust.getCount());
+ adjDetl.setModiTime(now);
+ adjDetl.setModiUser(userId);
+ adjDetl.setAppeTime(now);
+ adjDetl.setAppeUser(userId);
+ adjDetlService.save(adjDetl, userId);
+ }
+ // 淇敼搴撲綅鐘舵��
+ int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+ if (locMast.getLocSts().equals("F")) {
+ if (count == 0) {
+ locMast.setLocSts("D");
+ }
+ }
+ if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) {
+ if (count > 0) {
+ locMast.setLocSts("F");
+ }
+ }
+ locMast.setModiUser(userId);
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
}
}
+
@Override
@Transactional
public void cancelWrkMast(String workNo, Long userId) {
--
Gitblit v1.9.1