From 65521a81a3c10a18bba7a48d58f202545ce9742d Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期一, 16 六月 2025 14:57:50 +0800
Subject: [PATCH] wms优化
---
src/main/java/com/zy/common/web/WcsController.java | 138 ++++++++++++++++++++++++++++++++++++++--------
1 files changed, 114 insertions(+), 24 deletions(-)
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 66b5d65..8230f84 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
import com.zy.asrs.mapper.LocMastMapper;
+import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.StartupDto;
@@ -63,6 +64,9 @@
@Resource
private ConfigService configService;
+ @Resource
+ private WrkMastMapper wrkMastMapper;
+
@PostMapping("/pakin/loc/v1")
@ResponseBody
@Transactional
@@ -90,17 +94,30 @@
StartupDto dto = null;
+ // 鍏ュ簱鏈夊紓甯稿嚭鍒板嚭搴撳彛1024
+ if(!Cools.isEmpty(param.getErrMsg())){
+ return exceptionIsOutOfTheWarehouse(param,sourceStaNo,waitPakin);
+ }
+
if(param.getIoType() == 1) {
List<SearchLocParam.WantBucket> wantBucketFlag = param.getWantBucketFlag();
- Optional<SearchLocParam.WantBucket> first = wantBucketFlag.stream().filter(wantBucket -> wantBucket.getBucketType() == param.getBucketType()).findFirst();
- if (first.isPresent()) {
- if(waitPakin == null) {
- return R.error("鍏ュ簱閫氱煡妗d负绌�");
- } else {
- dto = startupFullPutStore(param,waitPakin,first.get()); // 鐩翠緵缃愯绾夸换鍔�
- if (dto != null) {
- log.info("WCS鍏ュ簱鐩翠緵缃愯绾挎帴鍙h繑鍙�:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
- return R.ok().add(dto);
+ for(SearchLocParam.WantBucket wantBucket: wantBucketFlag) {
+ if(wantBucket.getBucketType() != 0 && wantBucket.getBucketType() == param.getBucketType()) { // 缃愯绾挎湁瑕佹《淇″彿骞朵笖褰撳墠妗舵槸缃愯绾胯鐨勬《
+ if(waitPakin == null) {
+ return R.error("鍏ュ簱閫氱煡妗d负绌�");
+ } else {
+ // <4 < 2 < 4
+ int count = wrkMastMapper.selectInGzxCount(wantBucket.getSite());
+// int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wantBucket.getSite()));
+ if(wantBucket.getSite() == 1071 && count < 4 || wantBucket.getSite() == 1064 && count < 2 || wantBucket.getSite() == 1078 && count < 4) {
+ dto = startupFullPutStore(param,waitPakin,wantBucket); // 鐩翠緵缃愯绾夸换鍔�
+ if (dto != null) {
+ log.info("WCS鍏ュ簱鐩翠緵缃愯绾挎帴鍙h繑鍙�:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
+ return R.ok().add(dto);
+ }
+ } else {
+ log.warn("鐩翠緵鐏岃绾夸换鍔″凡婊★紝鍏ユ垚鍝佸簱,鍏ュ簱鐩爣绔欑偣{}锛屼换鍔℃暟锛歿}",wantBucket.getSite(),count);
+ }
}
}
}
@@ -124,6 +141,73 @@
}
log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
return R.ok().add(dto);
+ }
+
+ /**
+ * 鍏ュ簱寮傚父鍑哄埌鍑哄簱鍙�1024
+ */
+ @Transactional(propagation = Propagation.REQUIRED)
+ public R exceptionIsOutOfTheWarehouse(SearchLocParam param, BasDevp sourceStaNo,WaitPakin waitPakin) {
+
+ StartupDto dto = commonService.getLocNo(param,1024);
+ int workNo = dto.getWorkNo();
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(2L);
+ wrkMast.setIoType(3); // 鍏ュ嚭搴撶姸鎬侊細3.绔欏埌绔�
+ wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setSourceStaNo(dto.getSourceStaNo());
+ wrkMast.setStaNo(dto.getStaNo());
+ wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setCtnType(0); // 灏炬墭鏍囪瘑
+ wrkMast.setPdcType(waitPakin != null ? waitPakin.getMaktx() : ""); // 绌烘《绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ wrkMast.setLocNo(param.getErrMsg()); // 寮傚父鎻忚堪浣撶幇鍦ㄧ洰鏍囧簱浣嶄笂
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ if(waitPakin != null) {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(waitPakin);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+ Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
+ .eq("zpallet", param.getBarcode());
+ WaitPakin setParam = new WaitPakin();
+ setParam.setLocNo(dto.getLocNo());
+ setParam.setIoStatus("Y");
+ setParam.setModiTime(now);
+ if (!waitPakinService.update(setParam, wrapper)) {
+ throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+ }
+ }
+
+ // 鏇存柊婧愮珯鐐逛俊鎭�
+ sourceStaNo.setWrkNo(workNo);
+ sourceStaNo.setModiTime(now);
+ if (!basDevpService.updateById(sourceStaNo)){
+ throw new CoolException("鏇存柊婧愮珯澶辫触");
+ }
+
+ return R.ok(dto);
}
// 缃愯瀹屾垚鍏ュ簱
@@ -151,17 +235,19 @@
}
// 鑾峰彇绯荤粺閰嶇疆锛岀湅鎴愬搧缃愯瀹屾垚鏄惁鐩存帴鍑哄埌鍙戣揣鍙�
- Config config = configService.selectConfigByCode("gzwcfh");
- String fhFlag = "";
+ Config config = configService.selectConfigByCode("gzxfh" + param.getSourceStaNo());
+ boolean fhFlag = false;
+ int fhk = 0; // 鍙戣揣鍙�
if (config != null && config.getStatus() == 1 && !Cools.isEmpty(config.getValue())) {
- fhFlag = config.getValue();
+ fhFlag = true;
+ fhk = Integer.parseInt(config.getValue());
}
Date now = new Date();
StartupDto dto;
// 鍒ゆ柇璐存爣寮傚父锛屽妫�閲嶉噺寮傚父鐨勶紝涓嶅垎閰嶅簱浣嶏紝鍘诲線寮傚父鍙�1090
-// if ( !param.isTbFlag() || param.getGrossWeight() < param.getWeight()) {
+// if ( !param.isTbFlag() || !param.isReinspection()) {
//
// // 鐢熸垚宸ヤ綔妗� ------------------------------------------------------
// WrkMast wrkMast = new WrkMast();
@@ -195,9 +281,10 @@
// wrkDetl.setManuDate(param.getManuDate());
// wrkDetl.setWeight(param.getWeight());
// wrkDetl.setManLength(param.getGrossWeight());
-// wrkDetl.setInspect(1); // 璐存爣鎴愬姛
+// wrkDetl.setInspect(param.isTbFlag()?1:0); // 璐存爣鎴愬姛
// wrkDetl.setIoTime(now);
// wrkDetl.setAppeTime(now);
+// wrkDetl.setModel(wrkDetl1.getMaktx()); // 淇濆瓨绌烘《鍚嶇О
// wrkDetlService.insert(wrkDetl);
//
// dto = new StartupDto();
@@ -205,7 +292,7 @@
// dto.setSourceStaNo(wrkMast.getSourceStaNo());
// dto.setStaNo(wrkMast.getStaNo());
// } else
- if(param.getMatnr().equals(fhFlag)) { // 鐩存帴鍙戣揣
+ if(fhFlag) { // 鐩存帴鍙戣揣
// 鐢熸垚宸ヤ綔妗� ------------------------------------------------------
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(commonService.getWorkNo(0));
@@ -215,7 +302,7 @@
wrkMast.setIoPri(13D); // 浼樺厛绾�
// wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(param.getSourceStaNo());
- wrkMast.setStaNo(1024);
+ wrkMast.setStaNo(fhk);
// wrkMast.setLocNo(dto.getLocNo());
wrkMast.setBarcode(wrkMast1.getBarcode()); // 鎵樼洏鐮�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
@@ -241,6 +328,7 @@
wrkDetl.setInspect(1);
wrkDetl.setIoTime(now);
wrkDetl.setAppeTime(now);
+ wrkDetl.setModel(wrkDetl1.getMaktx()); // 淇濆瓨绌烘《鍚嶇О
wrkDetlService.insert(wrkDetl);
dto = new StartupDto();
@@ -293,6 +381,8 @@
wrkDetl.setInspect(1); // 璐存爣鎴愬姛
wrkDetl.setIoTime(now);
wrkDetl.setAppeTime(now);
+ log.warn("鎴愬搧缃愯瀹屾垚锛屾《绫诲瀷淇濆瓨锛屾柊浠诲姟鍙凤細{},鏃т换鍔″彿:{},鏃т换鍔℃《鍨�:{}",workNo,wrkMast1.getWrkNo(),wrkDetl1.getMaktx());
+ wrkDetl.setModel(wrkDetl1.getMaktx()); // 淇濆瓨绌烘《鍚嶇О
wrkDetlService.insert(wrkDetl);
// 鏇存柊鐩爣搴撲綅鐘舵��
@@ -362,7 +452,7 @@
if(!param.isTbFlag()) { //涓嬬嚎鍑哄簱
wrkMast.setSourceStaNo(1090);
- wrkMast.setStaNo(1016); // 寮傚父涓嬬嚎榛樿鍏ュ簱绔欑偣涓�1016
+ wrkMast.setStaNo(1024); // 寮傚父涓嬬嚎榛樿鍏ュ簱绔欑偣涓�1016
wrkMastService.updateById(wrkMast);
return R.ok();
}
@@ -699,13 +789,13 @@
// 婧愮珯鐐圭姸鎬佹娴�
BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
- // 鍒ゆ柇绌烘《搴撴湁澶氬皯杩欑妗跺瀷
- int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("matnr", param.getBucketType()).where("CAST(SUBSTRING(loc_no, 1, 2) as int) >= 9"));
-
- // 灏忎簬10涓垯鐩翠緵缃愯绾匡紝閬垮厤鍏ョ┖妗跺簱鍚庡湪鍑哄簱
- if (count > 10) {
- return null;
- }
+// // 鍒ゆ柇绌烘《搴撴湁澶氬皯杩欑妗跺瀷
+// int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("matnr", param.getBucketType()).where("CAST(SUBSTRING(loc_no, 1, 2) as int) >= 9"));
+//
+// // 灏忎簬10涓垯鐩翠緵缃愯绾匡紝閬垮厤鍏ョ┖妗跺簱鍚庡湪鍑哄簱
+// if (count > 10) {
+// return null;
+// }
StartupDto dto = commonService.getLocNo(param,wantBucket.getSite());
int workNo = dto.getWorkNo();
--
Gitblit v1.9.1