From be57f327a933a597ffba088f3501c2563fd31a37 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 25 十月 2024 15:03:14 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 117 +++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 98 insertions(+), 19 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 1e42f78..b4d075a 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -94,7 +94,7 @@
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
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);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto,0);
// 鐢熸垚宸ヤ綔鍙�
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
@@ -170,6 +170,8 @@
List<StockOutParam.LocDetl> stockOutParamLocDetlSort = Utils.getStockOutParamLocDetlSort(param.getLocDetls());
boolean sign = true;
+ boolean isfull = false; // 鏄惁澶熸暟閲�
+ Double isOut = 0.0;
List<String> locNoWeighting = new ArrayList<>();
for (StockOutParam.LocDetl locDetl : stockOutParamLocDetlSort) {
if (Cools.isEmpty(locNoWeighting)){
@@ -191,6 +193,10 @@
for (String locNo : groupOuterSingleLoc) {
//姣忎釜搴撲綅鐨勫簱浣嶆槑缁�
if(locs.contains(locNo)) continue;
+ LocMast mast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locNo));
+ if (mast.getLocSts().equals("P") || mast.getLocSts().equals("Q")){
+ throw new CoolException("褰撳墠搴撲綅鐨勬祬搴撲綅鐘舵�佷负" + mast.getLocSts() + "鏆備笉鏀寔鍑哄簱锛�");
+ }
for (LocDetl detl : locDetlService.selectByLocNo(locNo)) {
if (!detl.getMatnr().equals(locDetl.getMatnr())) {
//涓嶆槸鐩稿悓鐗╂枡
@@ -199,11 +205,28 @@
}
continue;
}
- locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme()));
+ if (!param.getOutSite().equals(214) && !param.getOutSite().equals(114)){
+ if (detl.getAnfme() >= locDetl.getCount()) {
+ locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), locDetl.getCount()));
+ isOut = locDetl.getCount();
+ isfull = true;
+ break;
+ } else {
+ locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme()));
+ isOut = detl.getAnfme();
+ }
+ } else {
+ //寮哄埗涓嶆槸鐩稿悓鐗╂枡
+ locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme()));
+ }
}
}
}
- locDetls.add(locDetl);
+ if (!isfull) {
+
+ locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getCount() - isOut));
+// locDetls.add(locDetl);
+ }
}
//鍑哄簱鏃讹紝濡傛灉褰撳墠搴撲綅缁勬湁鐩稿悓鐨勭墿鏂欙紝鍒欏厛鍑哄渚х墿鏂� 6.30鏃� 娉ㄩ噴
//for (StockOutParam.LocDetl locDetl : param.getLocDetls()) {
@@ -478,21 +501,44 @@
Date now = new Date();
// 鍚堝苟鍚岀被椤�
Set<String> locNos = new HashSet<>();
+ ArrayList<String> locNos2 = new ArrayList<String>();
List<OutLocDto> dtos = new ArrayList<>();
for (LocDetlDto locDetlDto : locDetlDtos) {
String locNo = locDetlDto.getLocDetl().getLocNo();
- if (locNos.contains(locNo)) {
- for (OutLocDto dto : dtos) {
- if (dto.getLocNo().equals(locNo)) {
- dto.getLocDetlDtos().add(locDetlDto);
- break;
+ locNos2.add(locNo);
+ //if (locNos.contains(locNo)) {
+ //for (OutLocDto dto : dtos) {
+ // if (dto.getLocNo().equals(locNo)) {
+ // dto.getLocDetlDtos().add(locDetlDto);
+ // break;
+ // }
+ //}
+ //} else {
+ //locNos.add(locNo);
+
+ //dtos.add(new OutLocDto(locNo, locDetlDto));
+ //}
+ }
+ List<String> innermostSideLoc = Utils.getInnermostSideLoc(locNos2, true);
+ System.out.println(innermostSideLoc);
+ for (LocDetlDto locDetlDto : locDetlDtos) {
+ String locNo = locDetlDto.getLocDetl().getLocNo();
+ if(innermostSideLoc.contains(locNo)) {
+ if (locNos.contains(locNo)) {
+ for (OutLocDto dto : dtos) {
+ if (dto.getLocNo().equals(locNo)) {
+ dto.getLocDetlDtos().add(locDetlDto);
+ break;
+ }
}
+ } else {
+ locNos.add(locNo);
+ dtos.add(new OutLocDto(locNo, locDetlDto));
}
- } else {
- locNos.add(locNo);
- dtos.add(new OutLocDto(locNo, locDetlDto));
+ //dtos.add(new OutLocDto(locNo,locDetlDto));
}
}
+
Integer ioType = null;
List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList());
// 鐢熸垚宸ヤ綔妗�
@@ -771,8 +817,18 @@
if (locNos.contains(locNo)) {
for (OutLocDto dto : dtos) {
if (dto.getLocNo().equals(locNo)) {
- dto.getLocDetlDtos().add(locDetlDto);
- break;
+ boolean signDto = false;
+ for (LocDetlDto locDetlDto1 : dto.getLocDetlDtos()){
+ if (locDetlDto1.getLocDetl().getBatch().equals(locDetlDto.getLocDetl().getBatch())
+ && locDetlDto1.getLocDetl().getMatnr().equals(locDetlDto.getLocDetl().getMatnr())
+ && locDetlDto1.getLocDetl().getLocNo().equals(locDetlDto.getLocDetl().getLocNo())){
+ signDto = true;
+ }
+ }
+ if (!signDto){
+ dto.getLocDetlDtos().add(locDetlDto);
+ break;
+ }
}
}
} else {
@@ -790,7 +846,6 @@
continue;
}
}
-
//-----------------2023.5.31涓婃灦鍖哄煙鐗堟湰鍏煎浠g爜-----------------------
//鍒ゆ柇褰撳墠搴撲綅缁勬槸鍚﹀潎涓哄悓涓�绉嶇墿鏂欙紝濡備笉鏄紝鍒欒瀹氶渶瑕佹墽琛屽吋瀹逛唬鐮�
//闇�瑕佸皢寰呭嚭搴撳簱浣嶅墠渚у簱浣�(涓嶅寘鍚渶澶栦晶楂橀搴撲綅)鎵ц101鍏ㄦ澘鍑哄簱
@@ -823,7 +878,7 @@
}
WaitPakin waitPakin = new WaitPakin();
waitPakin.sync(mat);
- waitPakin.setBatch("");
+ //waitPakin.setBatch("");
waitPakin.setZpallet(locDetl.getZpallet()); // 鎵樼洏鐮�
waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
waitPakin.setAnfme(locDetl.getAnfme()); // 鏁伴噺
@@ -853,6 +908,12 @@
// throw new CoolException("鍙兘瀛樺湪涓�绗旂洏鐐逛换鍔�");
// }
}
+ if (ioType!=101){
+ if (basDevp==114 || basDevp==214){
+ throw new CoolException("2妤煎彧鍏佽鍏ㄦ澘鍑哄簱锛岃閫夋嫨鍏ㄩ儴鐗╂枡");
+ }
+ }
+
assert ioType != null;
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(dto.getLocNo());
@@ -868,13 +929,30 @@
// }
//}
if (ioType == 101) {
- if (staNo.getDevNo()==300){
+ if (basDevp==300){
if(locMast.getCrnNo() == 1) {
staNo.setDevNo(100);
} else {
staNo.setDevNo(200);
}
-
+ } else if (basDevp == 114){
+ if (!dto.isSign()){
+ staNo.setDevNo(100);
+ } else {
+ staNo.setDevNo(basDevp);
+ }
+ } else if (basDevp == 214){
+ if (!dto.isSign()){
+ staNo.setDevNo(200);
+ } else {
+ staNo.setDevNo(basDevp);
+ }
+ } else {
+ if(locMast.getCrnNo() == 1) {
+ staNo.setDevNo(100);
+ } else {
+ staNo.setDevNo(200);
+ }
}
} else {
staNo.setDevNo(basDevp);
@@ -1201,7 +1279,7 @@
BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto,0);
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
@@ -1512,6 +1590,7 @@
AdjDetl adjDetl = new AdjDetl();
adjDetl.setLocNo(locDetl.getLocNo());
adjDetl.setMatnr(locDetl.getMatnr());
+ adjDetl.setSpecs(locDetl.getSpecs());
adjDetl.setBatch(locDetl.getBatch());
adjDetl.setOriQty(locDetl.getAnfme());
adjDetl.setAdjQty(adjust.getCount());
@@ -1663,7 +1742,7 @@
for (WrkDetl wrkDetl : wrkDetls) {
if (!Cools.isEmpty(wrkDetl.getOrderNo())){
String[] orderNos = GetOrderNo(wrkDetl.getOrderNo());
- if (!Cools.isEmpty(orderNos)){
+ if (!Cools.isEmpty(orderNos) && orderNos.length!=0){
String[] anfmes = GetAnfme(wrkDetl.getOrderNo());
int i = 0;
for (String orderNo : orderNos) {
--
Gitblit v1.9.1