From 4559444158b9ab3c29fb578e5dac6788ddccd53e Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 13 八月 2024 22:02:41 +0800
Subject: [PATCH] 成品入库和界面显示
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 188 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 175 insertions(+), 13 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 fd6c732..abea98b 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -27,7 +27,6 @@
import java.util.*;
import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
/**
* Created by vincent on 2020/6/11
@@ -45,6 +44,8 @@
private MatService matService;
@Autowired
private WrkMastService wrkMastService;
+ @Autowired
+ private DocTypeService docTypeService;
@Autowired
private WrkDetlService wrkDetlService;
@Autowired
@@ -91,7 +92,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(), null, locTypeDto, 0);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), param.getList().get(0).getMatnr(),null,null, locTypeDto);
// 鐢熸垚宸ヤ綔鍙�
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
@@ -164,7 +165,7 @@
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
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 (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
}
}
if (!locDetlDtos.isEmpty()) {
@@ -179,6 +180,107 @@
throw new CoolException("搴撳瓨涓嶅瓨鍦�");
}
}
+ @Override
+ @Transactional
+ public void startupFullTakeStoreOrder(StockOutParam param, Long userId) {
+ if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls())){
+ throw new CoolException("鍙傛暟涓虹┖");
+ }
+ if (Cools.isEmpty(param.getOrderNo())){
+ throw new CoolException("璁㈠崟鍙峰弬鏁颁负绌�");
+ }
+ DocType docType = docTypeService.selectOrAdd("鎵嬪姩鍑哄簱鍗�", Boolean.FALSE);
+ Order order = orderService.selectByNo(param.getOrderNo());
+ if (Cools.isEmpty(order)){
+ Date now = new Date();
+ order = new Order(
+ String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
+ param.getOrderNo(), // 璁㈠崟缂栧彿
+ DateUtils.convert(now), // 鍗曟嵁鏃ユ湡
+ docType.getDocId(), // 鍗曟嵁绫诲瀷
+ null, // 椤圭洰缂栧彿
+ null, //
+ null, // 璋冩嫧椤圭洰缂栧彿
+ null, // 鍒濆绁ㄦ嵁鍙�
+ null, // 绁ㄦ嵁鍙�
+ null, // 瀹㈡埛缂栧彿
+ null, // 瀹㈡埛
+ null, // 鑱旂郴鏂瑰紡
+ null, // 鎿嶄綔浜哄憳
+ null, // 鍚堣閲戦
+ null, // 浼樻儬鐜�
+ null, // 浼樻儬閲戦
+ null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
+ null, // 瀹炰粯閲戦
+ null, // 浠樻绫诲瀷
+ null, // 涓氬姟鍛�
+ null, // 缁撶畻澶╂暟
+ null, // 閭垂鏀粯绫诲瀷
+ null, // 閭垂
+ null, // 浠樻鏃堕棿
+ null, // 鍙戣揣鏃堕棿
+ null, // 鐗╂祦鍚嶇О
+ null, // 鐗╂祦鍗曞彿
+// 2L, // 璁㈠崟鐘舵��
+ 1L, // 璁㈠崟鐘舵��
+ 1, // 鐘舵��
+ userId, // 娣诲姞浜哄憳
+ now, // 娣诲姞鏃堕棿
+ userId, // 淇敼浜哄憳
+ now, // 淇敼鏃堕棿
+ null // 澶囨敞
+ );
+ if (!orderService.insert(order)) {
+ throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
+ }
+ // 鍗曟嵁鏄庣粏妗�
+ List<DetlDto> list = new ArrayList<>();
+ List<StockOutParam.LocDetl> locDetls = param.getLocDetls();
+ int i=0;
+ for (StockOutParam.LocDetl locDetl : locDetls) {
+ i++;
+ Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(locDetl.getMatnr() + "鐗╂枡缂栫爜妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+ }
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ orderDetl.setSuppCode(String.valueOf(i)); // 琛屽彿
+ orderDetl.setManu(locDetl.getLocNo()); //搴撲綅鍙�
+ orderDetl.setBatch(locDetl.getBatch()); //鏈ㄧ缂栫爜
+ orderDetl.setAnfme(locDetl.getAnfme());//鍑哄簱鏁伴噺
+ orderDetl.setModel(locDetl.getModel());//鎵规
+ orderDetl.setSpecs(locDetl.getSpecs());//瑙勬牸
+ orderDetl.setBrand(locDetl.getBrand());//鏈ㄧ绫诲瀷
+ orderDetl.setBarcode(locDetl.getZpallet());//鏈ㄧ绫诲瀷
+ orderDetl.setWeight(locDetl.getWeight());
+// orderDetl.setWorkQty(locDetl.getAnfme());
+ orderDetl.setWorkQty(0.0);
+ orderDetl.setOrderId(order.getId());
+ orderDetl.setOrderNo(order.getOrderNo());
+ orderDetl.setOrigin(locDetl.getOrigin());
+ orderDetl.setCreateBy(userId);
+ orderDetl.setCreateTime(now);
+ orderDetl.setUpdateBy(userId);
+ orderDetl.setUpdateTime(now);
+ orderDetl.setStatus(1);
+ orderDetl.setQty(0.0D);
+ if (!orderDetlService.insert(orderDetl)) {
+ throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ }
+
+// List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param);
+// for (StockOutParam stockOutParam : stockOutParams){
+// startupFullTakeStore(stockOutParam,userId);
+// }
+
+ } else {
+ throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟"+param.getOrderNo()+"宸插瓨鍦紒锛侊紒");
+ }
+
+ }
+
@Override
@Transactional
@@ -240,6 +342,10 @@
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("N");
+ wrkMast.setSheetNo("0");
+ if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){
+ wrkMast.setSheetNo("3");
+ }
wrkMast.setBarcode(locMast.getBarcode());
wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeTime(now);
@@ -253,7 +359,7 @@
if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(detlDto.getLocDetl());
- wrkDetl.setOrderNo(""); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
+ wrkDetl.setOrderNo(detlDto.getOrderNo()); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(now);
Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
@@ -295,7 +401,48 @@
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
// 鑾峰彇璺緞
int ioType = taskDto.isAll() ? 101 : 103;
- StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+// StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ // 鏍规嵁搴撲綅鎺掑彿+鍑哄簱绔欑偣锛岃幏鍙栧嚭搴撴簮绔欑偣
+ int row = Integer.parseInt(locMast.getLocNo().substring(0, 2));
+ int souresStaNo = 0;
+ if (taskDto.getStaNo() < 3000) { // 浜屾ゼ
+ switch (row) {
+ case 1: case 2: case 3:
+ case 4: souresStaNo = 2062; break;
+ case 5: case 6: case 7:
+ case 8: souresStaNo = 2065; break;
+ case 9: case 10: case 11:
+ case 12: souresStaNo = 2068; break;
+ case 13: case 14: case 15:
+ case 16: souresStaNo = 2070; break;
+ case 17: case 18: case 19:
+ case 20: souresStaNo = 2073; break;
+ case 21: case 22: case 23:
+ case 24: souresStaNo = 2076; break;
+ default:
+ }
+ } else { // 涓�妤�
+ switch (row) {
+ case 1: case 2: case 3:
+ case 4: souresStaNo = 3002; break;
+ case 5: case 6: case 7:
+ case 8: souresStaNo = 3003; break;
+ case 9: case 10: case 11:
+ case 12: souresStaNo = 3006; break;
+ case 13: case 14: case 15:
+ case 16: souresStaNo = 3008; break;
+ case 17: case 18: case 19:
+ case 20: souresStaNo = 3009; break;
+ case 21: case 22: case 23:
+ case 24: souresStaNo = 3012; break;
+ default:
+ }
+ }
+
+ if (souresStaNo == 0) {
+ throw new CoolException("婧愮珯鐐硅浆鎹㈠紓甯革細" + row);
+ }
+
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -306,8 +453,8 @@
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
- wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
- wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setSourceStaNo(souresStaNo); // 婧愮珯
+ wrkMast.setStaNo(taskDto.getStaNo()); // 鐩爣绔�
wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
@@ -330,9 +477,17 @@
orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
}
WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(orderDetl);
+// wrkDetl.sync(orderDetl);
wrkDetl.setZpallet(wrkMast.getBarcode());
wrkDetl.setIoTime(now);
+ wrkDetl.setMatnr(locDto.getMatnr());
+ wrkDetl.setMaktx(locDto.getMaktx());
+ wrkDetl.setWeight(locDto.getWeight()); // 鍑�閲�
+ wrkDetl.setVolume(locDto.getVolume()); // 姣涢噸
+ wrkDetl.setOrigin(locDto.getOrigin()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
+ wrkDetl.setPrice(locDto.getPrice());
+ wrkDetl.setSpecs(locDto.getSpecs());
+ wrkDetl.setModel(locDto.getModel());
wrkDetl.setWrkNo(workNo);
wrkDetl.setBatch(locDto.getBatch());
wrkDetl.setOrderNo(locDto.getOrderNo());
@@ -371,7 +526,7 @@
BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null,null,null, locTypeDto);
int workNo = dto.getWorkNo();
Date now = new Date();
// 鐢熸垚宸ヤ綔妗�
@@ -560,7 +715,7 @@
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
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 (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(),param.getOrderNo()));
}
}
if (!locDetlDtos.isEmpty()) {
@@ -674,14 +829,17 @@
if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
wrkMast.setWrkSts(4L);
// 鍑哄簱
- } else if (wrkMast.getWrkSts() > 10) {
+ } else if (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()!=202) {
wrkMast.setWrkSts(14L);
+ }else if (wrkMast.getIoType()==202){
+ wrkMast.setWrkSts(57L);
}
Date now = new Date();
wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
wrkMast.setCrnEndTime(now);
wrkMast.setModiTime(now);
wrkMast.setModiUser(userId);
+ wrkMast.setSheetNo("3");
// 瀹屾垚鎿嶄綔浜哄憳璁板綍
wrkMast.setManuType("鎵嬪姩瀹屾垚");
if (!wrkMastService.updateById(wrkMast)) {
@@ -838,7 +996,7 @@
locMastService.updateById(locMast);
}
// 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
- } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
+ } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14 && wrkMast.getIoType()!=202) {
locNo = wrkMast.getSourceLocNo();
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
@@ -859,6 +1017,7 @@
locMast.setModiUser(userId);
locMastService.updateById(locMast);
}
+ } else if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){
} else {
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
}
@@ -945,6 +1104,9 @@
}
// 鍒犻櫎宸ヤ綔妗f槑缁�
boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
+ }
+ if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){
+ return;
}
// 淇敼搴撲綅鐘舵��
@@ -1132,7 +1294,7 @@
}
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getLocDetls().get(0).getMatnr()));
if (Cools.isEmpty(locDetls) || locDetls.size()<1){
- throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 鍝佸彿锛�"+param.getLocDetls().get(0).getMatnr());
+ throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 瑙勬牸锛�"+param.getLocDetls().get(0).getMatnr());
}
try {
locDetlService.updateMatTurn(param.getLocDetls().get(0).getMatnr(),mat.getMatnr());
--
Gitblit v1.9.1