From 63a52ec239c245954def02450f91925b4003f924 Mon Sep 17 00:00:00 2001
From: DELL <56479841@qq.com>
Date: 星期二, 25 六月 2024 16:25:25 +0800
Subject: [PATCH] 只能有一个在设备上走的工作档
---
src/main/java/com/zy/common/service/CommonService.java | 160 +++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 142 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 23c8432..7aab917 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -7,6 +7,7 @@
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
+import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.asrs.utils.VersionUtils;
@@ -46,6 +47,9 @@
private LocDetlService locDetlService;
@Autowired
private SlaveProperties slaveProperties;
+
+ @Autowired
+ private LocMastMapper locMastMapper;
/**
* 鐢熸垚宸ヤ綔鍙�
@@ -109,9 +113,12 @@
if (sourceStaNo < 200) {
whsType = 1;
crnNo=1;
- } else if (sourceStaNo >= 200) {
+ } else if (sourceStaNo < 300) {
whsType = 2;
crnNo=2;
+ }else {
+ whsType = 3;
+ crnNo=3;
}
int workNo = getWorkNo(0);
@@ -157,7 +164,14 @@
}
// 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
if (emptyMk) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow));
+// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow));
+ List<LocMast> locMasts = null;
+ if(crnNo==1) {
+ locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").eq("row1", 1));
+ } else {
+ locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow));
+ }
+
if (locMasts.size() > 0) {
for (LocMast loc : locMasts) {
if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
@@ -185,27 +199,39 @@
if (null == locMast) {
Shelves shelves = new Shelves(rowCount, crn_qty);
if (whsType == 1) {
- for (int i = 0; i < shelves.group; i ++) {
- curRow = shelves.start(curRow);
- if (curRow < 0) {
- throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
- }
- Integer crnNo1 = shelves.getCrnNo(curRow);
- if (basCrnpService.checkSiteError(crnNo1, true)) {
- crnNo = crnNo1;
- if (curRow == 3 || curRow == 4) {
- curRow = 3;
- }
- break;
- }
+ curRow = curRow + 1;
+ if (curRow > eRow) {
+ curRow = sRow;
}
+ crnNo = whsType;
+ basCrnpService.checkSiteStatus(crnNo, true);
+// for (int i = 0; i < shelves.group; i ++) {
+// curRow = shelves.start(curRow);
+// if (curRow < 0) {
+// throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳");
+// }
+// Integer crnNo1 = shelves.getCrnNo(curRow);
+// if (basCrnpService.checkSiteError(crnNo1, true)) {
+// crnNo = crnNo1;
+// if (curRow == 3 || curRow == 4) {
+// curRow = 3;
+// }
+// break;
+// }
+// }
} else if (whsType == 2) {
if (curRow == sRow) {
curRow = eRow;
} else {
curRow = sRow;
}
- crnNo = whsType;
+ basCrnpService.checkSiteStatus(crnNo, true);
+ }else {
+ if (curRow == sRow) {
+ curRow = eRow;
+ } else {
+ curRow = sRow;
+ }
basCrnpService.checkSiteStatus(crnNo, true);
}
}
@@ -245,14 +271,32 @@
} else {
deepRow = curRow;
}
- locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
+
+ if(emptyMk){
+ locMast = locMastService.queryFreeLocMastIncludeFirst(deepRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
+ if (Cools.isEmpty(locMast)){
+ locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
+ }
+ } else {
+ locMast = locMastService.queryFreeLocMastExceptFirst(deepRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
+ }
+
+// locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
// 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
if (!locMastService.checkEmptyCount(locMast)) {
locMast = null;
}
}
if (Cools.isEmpty(locMast)) {
- locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
+ if(emptyMk){
+ locMast = locMastService.queryFreeLocMastIncludeFirst(curRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
+ if (Cools.isEmpty(locMast)){
+ locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
+ }
+ } else {
+ locMast = locMastService.queryFreeLocMastExceptFirst(curRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
+ }
+// locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
// 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
if (!locMastService.checkEmptyCount(locMast)) {
locMast = null;
@@ -465,4 +509,84 @@
}
}
+ public StartupDto emptyIngetLocNo(Integer devpNo) {
+ int crnNo = 0;
+ // 鐩爣搴撲綅
+ LocMast locMast = null;
+ if (devpNo == 304) {
+ crnNo = 3;
+ locMast = locMastMapper.queryEmptyLocNoByStaNo(crnNo);
+ }
+
+ if (locMast == null) {
+ throw new CoolException("娌℃湁绌哄簱浣�");
+ }
+
+ // 鑾峰彇鐩爣绔�
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", 10)
+ .eq("stn_no", devpNo)
+ .eq("crn_no", crnNo);
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ log.error("鍏ュ簱璺緞涓嶅瓨鍦�, staDescId={}, sourceStaNo={}, crnNo={}", 10, devpNo, crnNo);
+ throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+ }
+
+ // 妫�娴嬬洰鏍囩珯
+ BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
+ if (!staNo.getAutoing().equals("Y")) {
+ throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
+ }
+
+ basCrnpService.checkSiteStatus(crnNo, true);
+
+ // 杩斿洖dto
+ StartupDto startupDto = new StartupDto();
+ startupDto.setWorkNo(getWorkNo(0));
+ startupDto.setCrnNo(crnNo);
+ startupDto.setSourceStaNo(devpNo);
+ startupDto.setStaNo(devpNo);
+ startupDto.setLocNo(locMast.getLocNo());
+ return startupDto;
+ }
+
+ public StartupDto getLocNoBy304(String barcode) {
+ int crnNo = 3;
+ int devpNo = 304;
+ int row = barcode.charAt(0) == '5' ? 7 : 6;
+ // 鐩爣搴撲綅
+ LocMast locMast = locMastMapper.queryLocByBarCode(row);
+ if (locMast == null) {
+ throw new CoolException("304鍏ュ簱娌℃湁绌哄簱浣�");
+ }
+
+ // 鑾峰彇鐩爣绔�
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", 1)
+ .eq("stn_no", devpNo)
+ .eq("crn_no", crnNo);
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ log.error("鍏ュ簱璺緞涓嶅瓨鍦�, staDescId={}, sourceStaNo={}, crnNo={}", 1, devpNo, crnNo);
+ throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+ }
+
+ // 妫�娴嬬洰鏍囩珯
+ BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
+ if (!staNo.getAutoing().equals("Y")) {
+ throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
+ }
+
+ basCrnpService.checkSiteStatus(crnNo, true);
+
+ // 杩斿洖dto
+ StartupDto startupDto = new StartupDto();
+ startupDto.setWorkNo(getWorkNo(0));
+ startupDto.setCrnNo(crnNo);
+ startupDto.setSourceStaNo(devpNo);
+ startupDto.setStaNo(devpNo);
+ startupDto.setLocNo(locMast.getLocNo());
+ return startupDto;
+ }
}
--
Gitblit v1.9.1