From b00eeab31bd13ba34a03301aa441b0751d6a93e4 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期五, 19 十二月 2025 17:00:51 +0800
Subject: [PATCH] 第六排成品可以放第七排原材料
---
src/main/java/com/zy/common/service/CommonService.java | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 274 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..779d5c7 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,216 @@
}
}
+ public StartupDto emptyIngetLocNo(Integer devpNo) {
+ int crnNo = 0;
+
+ if (devpNo == 304) {
+ crnNo = 3;
+ } else if(devpNo == 204) {
+ crnNo = 2;
+ } else if(devpNo == 104) {
+ crnNo = 1;
+ }else if(devpNo == 311) {
+ crnNo = 4;
+ }
+
+ // 鐩爣搴撲綅
+ LocMast 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 type) {
+
+ int row;
+ int devpNo = 304;
+ int crnNo = 3;
+ if (type.equals("1")) {
+ row = 7;
+ } else if (type.equals("2")) {
+ row = 6;
+ } else {
+ throw new CoolException("304鐗╂枡绫诲埆璇嗗埆閿欒锛�" + type);
+ }
+
+ // 鐩爣搴撲綅
+ LocMast locMast = locMastMapper.queryLocByBarCode(row);
+
+ //绗叚鎺掓垚鍝佸彲浠ユ斁绗竷鎺掑師鏉愭枡
+ if (locMast == null && type.equals("2")){
+ locMast = locMastMapper.queryLocByBarCode(7);
+ }
+
+
+ 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;
+ }
+
+ public StartupDto getLocNoBy311(String type) {
+
+ int row;
+ int devpNo = 311;
+ int crnNo = 4;
+// if (type.equals("1")) {
+// row = 7;
+// } else if (type.equals("2")) {
+// row = 6;
+// } else {
+// throw new CoolException("304鐗╂枡绫诲埆璇嗗埆閿欒锛�" + type);
+// }
+
+ // 鐩爣搴撲綅
+ List<LocMast> locMasts = locMastMapper.selectOneByCrnNo(4);
+ LocMast locMast = locMasts.get(0);
+ if (locMast == null) {
+ throw new CoolException("311鍏ュ簱娌℃湁绌哄簱浣�");
+ }
+
+ // 鑾峰彇鐩爣绔�
+ 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;
+ }
+
+ /**
+ * 涓�鏈熷鎵惧簱浣�
+ * 1-6灞� 鏉$爜1鎴栬��2寮�澶�
+ * 7-11灞� 鏉$爜8寮�澶�
+ * @param ioType 1.鍏ュ簱
+ * @param devpNo 鍏ュ簱绔欑偣
+ * @param barcode 鏉$爜
+ * @return 搴撲綅淇℃伅
+ */
+ public StartupDto getLocNoNew(int ioType, Integer devpNo, String barcode) {
+ char type = barcode.charAt(0);
+ int flag = 0;
+ if (type == '1' || type == '2') {
+ flag = 1;
+ } else if( type == '8') {
+ flag = 2;
+ }
+ if (flag == 0) {
+ throw new CoolException("鏉$爜鏈夎锛�" + barcode);
+ }
+
+ // 鐩爣搴撲綅
+ LocMast locMast = locMastMapper.queryLocByBarCodeNew(devpNo,flag);
+ if (locMast == null) {
+ throw new CoolException("鍏ュ簱娌℃湁绌哄簱浣�");
+ }
+
+ // 鍫嗗灈鏈哄彿
+ Integer crnNo = locMast.getCrnNo();
+
+ // 鑾峰彇鐩爣绔�
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", ioType)
+ .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