From 5751b1892a26df14007984776d9ebca4d3272786 Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期六, 20 七月 2024 17:36:26 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 537 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 521 insertions(+), 16 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 cc39e1c..418127e 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -8,10 +8,7 @@
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-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.param.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OutboundAllocationUtil;
import com.zy.asrs.utils.Utils;
@@ -94,7 +91,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(), param.getList().get(0).getMatnr(),null,null, locTypeDto, 1);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), param.getList().get(0).getMatnr(),null,null, locTypeDto);
// 鐢熸垚宸ヤ綔鍙�
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
@@ -164,12 +161,28 @@
BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
// 鑾峰彇搴撲綅鏄庣粏
List<LocDetlDto> locDetlDtos = new ArrayList<>();
+ List<String> locNoList = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+ if (!locNoList.contains(paramLocDetl.getLocNo())){
+ locNoList.add(paramLocDetl.getLocNo());
+ }
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(), param.getOrderNo()));
}
}
+
+ List<String> locNoOtherListOne = new ArrayList<>();
+ for (String locNo :locNoList) {
+ //灏忔枡绠变即鐢熷嚭搴�
+ if (Utils.getRow(locNo) <= 8) {
+ String locNoOther = staNoOther(locNo);
+ if (!locNoList.contains(locNoOther)) {
+ locNoOtherListOne.add(locNoOther);
+ }
+ }
+ }
+
if (!locDetlDtos.isEmpty()) {
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
@@ -181,12 +194,216 @@
} else {
throw new CoolException("搴撳瓨涓嶅瓨鍦�");
}
+
+
+ for (String locNo:locNoOtherListOne){
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
+
+ //浼寸敓鍏ュ簱宸ヤ綔鍙�
+ int workNoRu = commonService.getWorkNo(0);
+
+ // 鑾峰彇搴撲綅
+ LocMast locMast = locMastService.selectById(locNo);
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
+ }
+ if (locMast.getLocSts().equals("D")){
+ // 鑾峰彇婧愮珯
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", 110)
+ .eq("stn_no", param.getOutSite())
+ .eq("crn_no", locMast.getCrnNo());
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ Integer sourceStaNo = staDesc.getCrnStn();
+ if (Cools.isEmpty(sourceStaNo)) {
+ throw new CoolException("妫�绱㈡簮绔欏け璐�");
+ }
+ Date now = new Date();
+ // 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
+ wrkMast.setIoPri(10D);
+ wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔� 鍫嗗灈鏈哄叆搴撳彛
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+ wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("Y"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ wrkMast.setWorkNoOther(workNoRu);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
+ if (locMast.getLocSts().equals("D")){
+ locMast.setLocSts("R");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+ }
+
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMastRu = new WrkMast();
+ wrkMastRu.setWrkNo(workNoRu);
+ wrkMastRu.setIoTime(new Date());
+ wrkMastRu.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMastRu.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
+ wrkMastRu.setIoPri(13D); // 浼樺厛绾�
+ wrkMastRu.setCrnNo(wrkMast.getCrnNo());
+ wrkMastRu.setSourceStaNo(wrkMast.getSourceStaNo());
+ wrkMastRu.setStaNo(wrkMast.getStaNo());
+// wrkMast.setLocNo(dto.getLocNo());
+ wrkMastRu.setFullPlt("N"); // 婊℃澘
+ wrkMastRu.setPicking("N"); // 鎷f枡
+ wrkMastRu.setExitMk("N"); // 閫�鍑�
+ wrkMastRu.setEmptyMk("Y"); // 绌烘澘
+ wrkMastRu.setLinkMis("Y");
+ wrkMastRu.setCtnType(wrkMast.getCtnType()); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMastRu.setAppeTime(new Date());
+ wrkMastRu.setModiTime(new Date());
+ boolean resOther = wrkMastService.insert(wrkMastRu);
+ if (!resOther) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ }else if (locMast.getLocSts().equals("F")){
+ // 鑾峰彇婧愮珯
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", 101)
+ .eq("stn_no", param.getOutSite())
+ .eq("crn_no", locMast.getCrnNo());
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ Integer sourceStaNo = staDesc.getCrnStn();
+ if (Cools.isEmpty(sourceStaNo)) {
+ throw new CoolException("妫�绱㈡簮绔欏け璐�");
+ }
+
+ Date now = new Date();
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
+
+// 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(101); // 鍏ュ嚭搴撶姸鎬侊細 101.婊℃澘鍑哄簱
+ wrkMast.setIoPri(13D);
+ wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔� 鍫嗗灈鏈哄叆搴撳彛
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ wrkMast.setWorkNoOther(workNoRu);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ // 鏇存柊搴撲綅鐘舵�� F.婊℃澘 -> R.鍑哄簱棰勭害
+ if (locMast.getLocSts().equals("F")){
+ locMast.setLocSts("R");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+ }
+
+
+
+ List<WaitPakin> waitPakins = new ArrayList<>();
+ for (LocDetl locDetl:locDetlList){
+ Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException("瑙勬牸娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ WaitPakin waitPakin = new WaitPakin();
+ waitPakin.sync(locDetl);
+ waitPakin.setBatch(locDetl.getBatch()); //鏈ㄧ缂栫爜 //鎵规 鍞竴鍊� 绠卞彿
+ waitPakin.setModel(locDetl.getModel()); //鍗峰彿 鍞竴鍊�
+ waitPakin.setIoStatus("Y"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(locDetl.getAnfme()); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+ waitPakin.setLocNo(null);
+ if (!waitPakinService.insert(waitPakin)) {
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+ }
+ waitPakins.add(waitPakin);
+ }
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMastRu = new WrkMast();
+ wrkMastRu.setWrkNo(workNoRu);
+ wrkMastRu.setIoTime(new Date());
+ wrkMastRu.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMastRu.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMastRu.setIoPri(13D); // 浼樺厛绾�
+ wrkMastRu.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMastRu.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔� 鍫嗗灈鏈哄叆搴撳彛
+ wrkMastRu.setCrnNo(locMast.getCrnNo());
+ wrkMastRu.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+ wrkMastRu.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMastRu.setPicking("N"); // 鎷f枡
+ wrkMastRu.setExitMk("N"); // 閫�鍑�
+ wrkMastRu.setEmptyMk("N"); // 绌烘澘
+ wrkMastRu.setLinkMis("Y");
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMastRu.setAppeTime(now);
+ wrkMastRu.setModiTime(now);
+ boolean resOther = wrkMastService.insert(wrkMastRu);
+ if (!resOther) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ waitPakins.forEach(waitPakin -> {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(waitPakin);
+ wrkDetl.setWrkNo(wrkMastRu.getWrkNo());
+ wrkDetl.setIoTime(wrkMastRu.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+
+ }else {
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+ }
+ }
}
@Override
@Transactional
public void startupFullTakeStoreOrder(StockOutParam param, Long userId) {
- if (Cools.isEmpty(param) || Cools.isEmpty(param.getOrderNo()) || Cools.isEmpty(param.getLocDetls())){
+ 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());
@@ -220,7 +437,8 @@
null, // 鍙戣揣鏃堕棿
null, // 鐗╂祦鍚嶇О
null, // 鐗╂祦鍗曞彿
- 2L, // 璁㈠崟鐘舵��
+// 2L, // 璁㈠崟鐘舵��
+ 1L, // 璁㈠崟鐘舵��
1, // 鐘舵��
userId, // 娣诲姞浜哄憳
now, // 娣诲姞鏃堕棿
@@ -250,9 +468,13 @@
orderDetl.setModel(locDetl.getModel());//鎵规
orderDetl.setSpecs(locDetl.getSpecs());//瑙勬牸
orderDetl.setBrand(locDetl.getBrand());//鏈ㄧ绫诲瀷
- orderDetl.setWorkQty(locDetl.getAnfme());
+ 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);
@@ -264,10 +486,10 @@
}
}
- List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param);
- for (StockOutParam stockOutParam : stockOutParams){
- startupFullTakeStore(stockOutParam,userId);
- }
+// List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param);
+// for (StockOutParam stockOutParam : stockOutParams){
+// startupFullTakeStore(stockOutParam,userId);
+// }
} else {
throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟"+param.getOrderNo()+"宸插瓨鍦紒锛侊紒");
@@ -336,6 +558,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);
@@ -467,7 +693,7 @@
BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null,null,null, locTypeDto, 1);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null,null,null, locTypeDto);
int workNo = dto.getWorkNo();
Date now = new Date();
// 鐢熸垚宸ヤ綔妗�
@@ -524,7 +750,17 @@
if (Cools.isEmpty(param.getOutSite())) {
throw new CoolException("绔欑偣涓嶅瓨鍦�");
}
+ List<String> locNoOtherListOne = new ArrayList<>();
for (String locNo : param.getLocNos()) {
+
+ //灏忔枡绠变即鐢熷嚭搴�
+ if (Utils.getRow(locNo)<=8){
+ String locNoOther = staNoOther(locNo);
+ if (!param.getLocNos().contains(locNoOther)){
+ locNoOtherListOne.add(locNoOther);
+ }
+ }
+
// 鑾峰彇宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
// 鑾峰彇搴撲綅
@@ -579,6 +815,252 @@
throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
}
}
+ }
+
+ for (String locNo:locNoOtherListOne){
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
+
+ //浼寸敓鍏ュ簱宸ヤ綔鍙�
+ int workNoRu = commonService.getWorkNo(0);
+
+ // 鑾峰彇搴撲綅
+ LocMast locMast = locMastService.selectById(locNo);
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
+ }
+ if (locMast.getLocSts().equals("D")){
+ // 鑾峰彇婧愮珯
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", 110)
+ .eq("stn_no", param.getOutSite())
+ .eq("crn_no", locMast.getCrnNo());
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ Integer sourceStaNo = staDesc.getCrnStn();
+ if (Cools.isEmpty(sourceStaNo)) {
+ throw new CoolException("妫�绱㈡簮绔欏け璐�");
+ }
+ Date now = new Date();
+ // 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
+ wrkMast.setIoPri(10D);
+ wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔� 鍫嗗灈鏈哄叆搴撳彛
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+ wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("Y"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ wrkMast.setWorkNoOther(workNoRu);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
+ if (locMast.getLocSts().equals("D")){
+ locMast.setLocSts("R");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+ }
+
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMastRu = new WrkMast();
+ wrkMastRu.setWrkNo(workNoRu);
+ wrkMastRu.setIoTime(new Date());
+ wrkMastRu.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMastRu.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
+ wrkMastRu.setIoPri(13D); // 浼樺厛绾�
+ wrkMastRu.setCrnNo(wrkMast.getCrnNo());
+ wrkMastRu.setSourceStaNo(wrkMast.getSourceStaNo());
+ wrkMastRu.setStaNo(wrkMast.getStaNo());
+// wrkMast.setLocNo(dto.getLocNo());
+ wrkMastRu.setFullPlt("N"); // 婊℃澘
+ wrkMastRu.setPicking("N"); // 鎷f枡
+ wrkMastRu.setExitMk("N"); // 閫�鍑�
+ wrkMastRu.setEmptyMk("Y"); // 绌烘澘
+ wrkMastRu.setLinkMis("Y");
+ wrkMastRu.setCtnType(wrkMast.getCtnType()); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMastRu.setAppeTime(new Date());
+ wrkMastRu.setModiTime(new Date());
+ boolean resOther = wrkMastService.insert(wrkMastRu);
+ if (!resOther) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ }else if (locMast.getLocSts().equals("F")){
+ // 鑾峰彇婧愮珯
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", 110)
+ .eq("stn_no", param.getOutSite())
+ .eq("crn_no", locMast.getCrnNo());
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ Integer sourceStaNo = staDesc.getCrnStn();
+ if (Cools.isEmpty(sourceStaNo)) {
+ throw new CoolException("妫�绱㈡簮绔欏け璐�");
+ }
+
+ Date now = new Date();
+ List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
+
+// 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(101); // 鍏ュ嚭搴撶姸鎬侊細 101.婊℃澘鍑哄簱
+ wrkMast.setIoPri(13D);
+ wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔� 鍫嗗灈鏈哄叆搴撳彛
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ wrkMast.setWorkNoOther(workNoRu);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ // 鏇存柊搴撲綅鐘舵�� F.婊℃澘 -> R.鍑哄簱棰勭害
+ if (locMast.getLocSts().equals("F")){
+ locMast.setLocSts("R");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+ }
+
+
+
+ List<WaitPakin> waitPakins = new ArrayList<>();
+ for (LocDetl locDetl:locDetlList){
+ Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException("瑙勬牸娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ WaitPakin waitPakin = new WaitPakin();
+ waitPakin.sync(locDetl);
+ waitPakin.setBatch(locDetl.getBatch()); //鏈ㄧ缂栫爜 //鎵规 鍞竴鍊� 绠卞彿
+ waitPakin.setModel(locDetl.getModel()); //鍗峰彿 鍞竴鍊�
+ waitPakin.setIoStatus("Y"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(locDetl.getAnfme()); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+ waitPakin.setLocNo(null);
+ if (!waitPakinService.insert(waitPakin)) {
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+ }
+ waitPakins.add(waitPakin);
+ }
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMastRu = new WrkMast();
+ wrkMastRu.setWrkNo(workNoRu);
+ wrkMastRu.setIoTime(new Date());
+ wrkMastRu.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMastRu.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMastRu.setIoPri(13D); // 浼樺厛绾�
+ wrkMastRu.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMastRu.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔� 鍫嗗灈鏈哄叆搴撳彛
+ wrkMastRu.setCrnNo(locMast.getCrnNo());
+ wrkMastRu.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+ wrkMastRu.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMastRu.setPicking("N"); // 鎷f枡
+ wrkMastRu.setExitMk("N"); // 閫�鍑�
+ wrkMastRu.setEmptyMk("N"); // 绌烘澘
+ wrkMastRu.setLinkMis("Y");
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMastRu.setAppeTime(now);
+ wrkMastRu.setModiTime(now);
+ boolean resOther = wrkMastService.insert(wrkMastRu);
+ if (!resOther) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ waitPakins.forEach(waitPakin -> {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(waitPakin);
+ wrkDetl.setWrkNo(wrkMastRu.getWrkNo());
+ wrkDetl.setIoTime(wrkMastRu.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+
+ }else {
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+ }
+ }
+ }
+
+ public Integer crnStaRu(Integer crnNo){
+ switch (crnNo){
+ case 1:
+ return 153;
+ case 2:
+ return 145;
+ default:
+ return null;
+ }
+ }
+
+ public String staNoOther(String locNo){
+ int row = Utils.getRow(locNo);
+ if (row%4==0 || row%4==1){
+ return getDeepLoc2(locNo,row);
+ }else {
+ return getDeepLoc(locNo,row);
+ }
+ }
+
+ /**
+ * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿
+ */
+ public static String getDeepLoc(String shallowLoc,int row) {
+ if (row == 2 || row == 6) {
+ return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
+ } else if (row == 3 || row == 7) {
+ return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
+ }else {
+ return shallowLoc;
+ }
+ }
+
+ /**
+ * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿
+ */
+ public static String getDeepLoc2(String shallowLoc,int row) {
+ if (row == 1 || row == 5) {
+ return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
+ } else if (row == 4 || row == 8) {
+ return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
+ }else {
+ return null;
}
}
@@ -770,14 +1252,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)) {
@@ -914,6 +1399,22 @@
if (Cools.isEmpty(wrkMast)){
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
+ if (Cools.isEmpty(wrkMast.getLocNo()) && Cools.isEmpty(wrkMast.getSourceLocNo())){
+ int devCount = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (devCount!=0){
+ throw new CoolException("鍙栨秷澶辫触锛屽伐浣滃彿锛�"+wrkMast.getWrkNo()+"鍦ㄨ緭閫佺嚎涓婅繍琛屼腑锛侊紒锛�");
+ }
+ try{
+ wrkMastService.deleteById(wrkMast.getWrkNo());
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ if (!wrkDetls.isEmpty()){
+ wrkDetlService.deleteById(wrkMast.getWrkNo());
+ }
+ }catch (Exception e){
+ throw new CoolException("鍙栨秷澶辫触锛屽紓甯�"+e);
+ }
+ return;
+ }
String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
// 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
@@ -934,7 +1435,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) {
@@ -955,6 +1456,7 @@
locMast.setModiUser(userId);
locMastService.updateById(locMast);
}
+ } else if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){
} else {
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
}
@@ -1041,6 +1543,9 @@
}
// 鍒犻櫎宸ヤ綔妗f槑缁�
boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
+ }
+ if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){
+ return;
}
// 淇敼搴撲綅鐘舵��
@@ -1228,7 +1733,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