From f18925b9a7793f00bd033a8fcc790947d310c8f0 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 09 九月 2025 13:48:54 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/web/WcsController.java | 291 ++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 221 insertions(+), 70 deletions(-)
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 72cd9a1..c6150ae 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -46,43 +46,122 @@
private LocDetlService locDetlService;
@Autowired
private BasCrnpService basCrnpService;
+ @PostMapping("/pakin/loc/returnWarehouse")
+ @ResponseBody
+ public synchronized StorageResult returnWarehouse(@RequestBody(required = false) SearchLocParam param) {
+ StorageResult storageResult=new StorageResult();
+ if (Cools.isEmpty(param.getTaskNo())) {
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("浼犲叆宸ヤ綔鍙蜂负绌�");
+ return storageResult;
+ }
+ WrkMast wrkMast =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("wrk_no",param.getTaskNo())
+ .in("io_type",103,107));
+ WrkMast wrkMast537 =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("wrk_no",param.getTaskNo())
+ .in("io_type",53,57));
+ if (Cools.isEmpty(wrkMast)&&Cools.isEmpty(wrkMast537)){
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("娌℃湁鎵惧埌鐩樼偣鎷f枡浠诲姟---------"+param.getTaskNo());
+ return storageResult;
+ }
+
+ SearchLocParam searchLocParam = new SearchLocParam();
+ searchLocParam.setBoxNo(Cools.isEmpty(wrkMast)?wrkMast537.getBarcode() : wrkMast.getBarcode());
+ searchLocParam.setWcsIoType(1);//婊℃澘
+ searchLocParam.setWcsSourceStaNo(Cools.isEmpty(wrkMast)?wrkMast537.getSourceStaNo() : wrkMast.getStaNo());
+ searchLocParam.setWcsStatus(0);
+ return getLocNo(searchLocParam);
+ }
+
@PostMapping("/pakin/loc/v1")
@ResponseBody
- public synchronized R getLocNo(@RequestBody(required = false) SearchLocParam param) {
+ public synchronized StorageResult getLocNo(@RequestBody(required = false) SearchLocParam param) {
StorageResult storageResult=new StorageResult();
log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
if (Cools.isEmpty(param.getWcsIoType())) {
- return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
+ return storageResult;
}
if (Cools.isEmpty(param.getWcsSourceStaNo())) {
- return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("婧愮珯缂栧彿涓嶈兘涓虹┖");
+ return storageResult;
}
+ BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",param.getWcsSourceStaNo()));
+ //
+ List<WrkMast> wrkMasts=wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no",param.getWcsSourceStaNo()).in("wrk_sts",11,12,13));
+ if(!Cools.isEmpty(wrkMasts)){
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("鏈夊嚭搴撲换鍔$姝㈠叆搴�");
+ basDevp.setArea("鏈夊嚭搴撲换鍔$姝㈠叆搴�");
+ basDevpService.updateById(basDevp);
+ return storageResult;
+ }
+ int ioType = 0;
List<WaitPakin> waitPakins = null;
if (param.getWcsIoType() == 1) {
- if (Cools.isEmpty(param.getBoxNo())) {
- return R.error("鏉$爜涓嶈兘涓虹┖");
+ //鎷f枡鍜岀洏鐐瑰叆搴�
+ WrkMast wrkMast1037 =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("barcode", param.getBoxNo())
+ .in("io_type",103,107));
+ WrkMast wrkMast537 =wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("barcode", param.getBoxNo())
+ .in("io_type",53,57));
+ if (wrkMast537 != null) {
+ StorageResult.Results results=new StorageResult.Results();
+ results.setTaskNo(wrkMast537.getWrkNo());
+ results.setShelfUnitId(wrkMast537.getLocNo()+"");
+ storageResult.setResults(results);
+ return storageResult;
}
- waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBoxNo()));
- if (Cools.isEmpty(waitPakins)) {
- WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBoxNo());
- if (wrkMast != null && wrkMast.getIoType() == 103) {
- return R.parse(CodeRes.PICK_600);
+ if(Cools.isEmpty(wrkMast1037)) {
+ if (Cools.isEmpty(param.getBoxNo())) {
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage("鏉$爜涓嶈兘涓虹┖");
+ basDevp.setArea("鏉$爜涓嶈兘涓虹┖");
+ basDevpService.updateById(basDevp);
+ return storageResult;
}
- return R.parse(CodeRes.NO_COMB_700);
+ waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBoxNo()));
+ if (Cools.isEmpty(waitPakins)) {
+ WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBoxNo());
+ if (wrkMast != null && wrkMast.getIoType() == 103) {
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage(CodeRes.PICK_600);
+ basDevp.setArea(CodeRes.PICK_600);
+ basDevpService.updateById(basDevp);
+ return storageResult;
+ }
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage(CodeRes.NO_COMB_700);
+ basDevp.setArea(CodeRes.NO_COMB_700);
+ basDevpService.updateById(basDevp);
+ return storageResult;
+ }
+ int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBoxNo()));
+ int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBoxNo()));
+ if (countLoc > 0 || countWrk > 0) {
+ storageResult.setReturnStatus(1);
+ storageResult.setErrorMessage(CodeRes.EXIST_500);
+ basDevp.setArea(CodeRes.NO_COMB_700);
+ basDevpService.updateById(basDevp);
+ return storageResult;
+ }
+ }else {
+ ioType = wrkMast1037.getIoType();
}
- int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBoxNo()));
- int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBoxNo()));
- if (countLoc > 0 || countWrk > 0) {
- return R.error(CodeRes.EXIST_500);
- }
+
}
switch (param.getWcsIoType()) {
case 1://婊℃墭鐩樺叆搴�
assert waitPakins != null;
- storageResult = startupFullPutStore(param.getWcsSourceStaNo(), param.getBoxNo(), waitPakins);
+ storageResult = startupFullPutStore(param.getWcsSourceStaNo(), param.getBoxNo(), waitPakins,ioType);
break;
case 2://绌烘墭鐩樺叆搴�
storageResult = emptyPlateIn(param.getWcsSourceStaNo(), param.getBoxNo());
@@ -91,80 +170,141 @@
break;
}
log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", storageResult, param.getBoxNo());
- return R.ok().add(storageResult);
+ return storageResult;
}
+
/**
* 鍏ㄦ澘鍏ュ簱
*/
@Transactional
- public StorageResult startupFullPutStore(Integer devpNo, String barcode, List<WaitPakin> waitPakins) {
+ public StorageResult startupFullPutStore(Integer devpNo, String barcode, List<WaitPakin> waitPakins,Integer ioType) {
+ BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",devpNo));
+
StorageResult storageResult=new StorageResult();
Integer[] arr=arr();
- int type=Cools.isEmpty(waitPakins.get(0).getBeBatch())?1:waitPakins.get(0).getBeBatch();
- // 妫�绱㈠簱浣�
- LocMast locMast1 =commonService.getLocNo2(waitPakins.get(0),arr,0,type,1);
- int workNo = commonService.getWorkNo(0);
- Date now = new Date();
- // 鐢熸垚宸ヤ綔妗�
- WrkMast wrkMast = new WrkMast();
- wrkMast.setWrkNo(workNo);
- wrkMast.setIoTime(new Date());
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
- wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
- wrkMast.setIoPri(13D); // 浼樺厛绾�
- wrkMast.setSourceStaNo(devpNo);
- wrkMast.setLocNo(locMast1.getLocNo());
- wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
- wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk("N"); // 绌烘澘
- wrkMast.setLinkMis("Y");
- wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷
- // 鎿嶄綔浜哄憳鏁版嵁
- wrkMast.setAppeTime(now);
- wrkMast.setModiTime(now);
- boolean res = wrkMastService.insert(wrkMast);
- if (!res) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
- // 鐢熸垚宸ヤ綔妗f槑缁�
- waitPakins.forEach(waitPakin -> {
- 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("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ LocMast locMast1=new LocMast();
+ Integer workNo = 0;
+ //鍒ゆ柇鏄惁鏄嫞鏂欐垨鑰呮槸鐩樼偣
+ if(ioType==103||ioType==107) {
+ WrkDetl wrkDetl=wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("zpallet", barcode));
+
+ int type=Cools.isEmpty(wrkDetl.getBeBatch())?1:wrkDetl.getBeBatch();
+ // 妫�绱㈠簱浣�
+ WaitPakin waitPakin1=new WaitPakin();
+ waitPakin1.sync(wrkDetl);
+ locMast1 =commonService.getLocNo2(waitPakin1,arr,0,type,1);
+ if (locMast1 == null) {
+ basDevp.setArea("鏈壘鍒扮┖搴撲綅");
+ basDevpService.updateById(basDevp);
+ throw new CoolException("鏈壘鍒扮┖搴撲綅");
}
- });
- // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
- Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
- .eq("zpallet", barcode);
- WaitPakin setParam = new WaitPakin();
- setParam.setLocNo(locMast1.getLocNo());
- setParam.setIoStatus("Y");
- setParam.setModiTime(now);
- if (!waitPakinService.update(setParam, wrapper)) {
- throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+
+ //鏇存柊璐х墿鎵�鍦ㄥ簱浣嶇殑娣辨祬鍙�
+ wrkDetl.setSource(locMast1.getLocAttribute());
+ wrkDetlService.update(wrkDetl,new EntityWrapper<WrkDetl>().eq("wrk_no", wrkDetl.getWrkNo()));
+ WrkMast wrkMast=wrkMastService.selectByBarcode(barcode);
+ workNo = wrkMast.getWrkNo();
+ int mbz=basDevp.getDevNo()*10+Integer.valueOf(wrkMast.getSourceLocNo().substring(6));
+ String ykw=wrkMast.getLocNo();
+ wrkMast.setIoType(ioType-50);
+ wrkMast.setWrkSts(1L);//鍏ュ簱
+ wrkMast.setModiTime(new Date());
+ wrkMast.setSourceStaNo(basDevp.getDevNo()); // 婧愮珯
+ wrkMast.setStaNo(mbz); // 鐩爣绔�
+ wrkMast.setLocNo(locMast1.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(ykw); // 婧愬簱浣�
+
+ wrkMastService.updateById(wrkMast);
+ }else{
+ int type=Cools.isEmpty(waitPakins.get(0).getBeBatch())?1:waitPakins.get(0).getBeBatch();
+ // 妫�绱㈠簱浣�
+ locMast1 =commonService.getLocNo2(waitPakins.get(0),arr,0,type,1);
+ if (locMast1 == null) {
+ basDevp.setArea("鏈壘鍒扮┖搴撲綅");
+ basDevpService.updateById(basDevp);
+ throw new CoolException("鏈壘鍒扮┖搴撲綅");
+ }
+
+ int mbz=devpNo*10+Integer.valueOf(locMast1.getLocNo().substring(6));
+ //姝e父鍏ュ簱
+ workNo = commonService.getWorkNo(0);
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setSourceStaNo(devpNo);
+ wrkMast.setStaNo(mbz);
+ wrkMast.setLocNo(locMast1.getLocNo());
+ wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ basDevp.setArea("淇濆瓨宸ヤ綔妗eけ璐�");
+ basDevpService.updateById(basDevp);
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ int source = locMast1.getLocAttribute();
+ waitPakins.forEach(waitPakin -> {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(waitPakin);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setSource(source);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ basDevp.setArea("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ basDevpService.updateById(basDevp);
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+ Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
+ .eq("zpallet", barcode);
+ WaitPakin setParam = new WaitPakin();
+ setParam.setLocNo(locMast1.getLocNo());
+ setParam.setIoStatus("Y");
+ setParam.setModiTime(now);
+ if (!waitPakinService.update(setParam, wrapper)) {
+ basDevp.setArea("鏇存柊閫氱煡妗eけ璐�");
+ basDevpService.updateById(basDevp);
+ throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+ }
}
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(locMast1.getLocNo());
if (locMast.getLocSts().equals("O")){
locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
- locMast.setModiTime(now);
+ locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)){
+ basDevp.setArea("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ basDevpService.updateById(basDevp);
throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
}
} else {
+ basDevp.setArea(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+ basDevpService.updateById(basDevp);
throw new CoolException(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
}
+
StorageResult.Results results=new StorageResult.Results();
results.setTaskNo(workNo);
results.setShelfUnitId(locMast1.getLocNo());
+ results.setBarcode(barcode);
storageResult.setResults(results);
return storageResult;
}
@@ -252,6 +392,7 @@
}else{
basCrnp.setTankQty(0);
basCrnpService.update(basCrnp,new EntityWrapper<BasCrnp>().eq("crn_no",basCrnp.getCrnNo()));
+ int xx=0;
arr[i]=basCrnp.getLev1();
i++;
int o=basCrnp.getCrnNo();
@@ -260,18 +401,27 @@
o=1;
}
basCrnp=basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no",o));
- if(q==1){
+ if(Cools.isEmpty(basCrnp)){
+ log.error(q+"鍙峰皬杞︽病鏈夋壘鍒�");
+ continue;
+ }
+ if(basCrnp.getCrnErr()>0||basCrnp.getCrnSts()!=1){
+ log.error(q+"鍙峰皬杞︽姤璀︽垨鑰呭湪鍏呯數璺宠繃姝よ溅");
+ continue;
+ }
+ if(xx==0){
basCrnp.setTankQty(1);
basCrnpService.update(basCrnp,new EntityWrapper<BasCrnp>().eq("crn_no",o));
}
arr[i]=basCrnp.getLev1();
i++;
+ xx++;
}
}
for (int w=1;w<=7;w++){
boolean boo=true;
- for(int g=0;g<count;g++){
+ for(int g=0;g<i;g++){
if(arr[g]==w){
boo=false;
break;
@@ -281,6 +431,7 @@
arr[i]=w;
i++;
}
+ if(i==7) break;
}
return arr;
}
--
Gitblit v1.9.1