From f9dd569895f007d09c3b568b4a4755d7ae8add45 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期五, 10 二月 2023 17:10:17 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/service/CommonService.java | 178 ++++++++++------------------------------------------------
1 files changed, 32 insertions(+), 146 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 036b48d..0ca81d5 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -3,18 +3,21 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.core.common.Arith;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.asrs.utils.VersionUtils;
+import com.zy.common.entity.Parameter;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.Shelves;
import com.zy.common.model.StartupDto;
import com.zy.common.properties.SlaveProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -46,6 +49,8 @@
private LocDetlService locDetlService;
@Autowired
private SlaveProperties slaveProperties;
+ @Value("${channel.channelMax}")
+ private Integer channelMax;
/**
* 鐢熸垚宸ヤ綔鍙�
@@ -96,10 +101,13 @@
*/
@Transactional
public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
- whsType = getWhsType(sourceStaNo, times);
+ if (sourceStaNo.equals(100)){
+ whsType=1;
+ }else if (sourceStaNo.equals(200)){
+ whsType=2;
+ }
+
StartupDto startupDto = new StartupDto();
- // 鐢熸垚宸ヤ綔鍙�
- int workNo = getWorkNo(0);
RowLastno rowLastno = rowLastnoService.selectById(whsType);
if (Cools.isEmpty(rowLastno)) {
throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
@@ -110,72 +118,18 @@
int sRow = rowLastno.getsRow();
int eRow = rowLastno.geteRow();
int crn_qty = rowLastno.getCrnQty();
- int rowCount = eRow - sRow + 1;
+ int rowCount = eRow - sRow;
// 鐩爣鍫嗗灈鏈哄彿
- int crnNo = 0;
+ int crnNo = crn_qty;
// 鐩爣搴撲綅
LocMast locMast = null;
- // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂�
- if (!Cools.isEmpty(matNos)) {
- List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0), sRow, eRow);
- for (String locNo : locNos) {
- if (Utils.isShallowLoc(slaveProperties, locNo)) {
- continue;
- }
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo);
- // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
- if (VersionUtils.locMoveCheckLocType(shallowLoc, locTypeDto)) {
- if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
- locMast = shallowLoc;
- crnNo = locMast.getCrnNo();
- break;
- }
- }
- }
- }
- }
-
- // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
- if (staDescId == 10) {
- List<LocMast> 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())) {
- continue;
- }
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
- // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
- if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
- locMast = shallowLoc;
- crnNo = locMast.getCrnNo();
- break;
- }
- }
- }
- }
- }
-
- // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
- 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.get(curRow);
- if (basCrnpService.checkSiteError(crnNo1, true)) {
- crnNo = crnNo1;
- break;
- }
- }
- }
+ if (curRow==3){
+ curRow=4;
+ }else if (curRow==4){
+ curRow=3;
+ }else {
+ rowCount=0;
}
if (crnNo == 0) {
@@ -195,43 +149,23 @@
if (!staNo.getAutoing().equals("Y")) {
throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
}
+
// 鏇存柊搴撲綅鎺掑彿
rowLastno.setCurrentRow(curRow);
rowLastnoService.updateById(rowLastno);
// 寮�濮嬫煡鎵惧簱浣� ==============================>>
-
- // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺�
- if (locMast == null) {
- if (Utils.isShallowLoc(slaveProperties, curRow)) {
- Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
- locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1());
- // todo:luxiaotao 濡傛灉鐢ㄦ祬鎺掓壘鍒扮殑娣卞簱浣嶏紝閭d箞鍒欓渶瑕佸垽鏂繖涓繁搴撲綅瀵瑰簲鐨勬祬搴撲綅鏄惁鏈夎揣锛團銆乆銆丏锛�
- // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
- if (!locMastService.checkEmptyCount(locMast)) {
- locMast = null;
- }
- }
- if (Cools.isEmpty(locMast)) {
+ if (Cools.isEmpty(locMast)) {
+ Integer ruleId = Integer.parseInt(Parameter.get().getFindLocRule());
+ if (whsType!=1){
locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
- // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
- if (!locMastService.checkEmptyCount(locMast)) {
- locMast = null;
- }
- // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X
- if (null != locMast && Utils.isShallowLoc(slaveProperties, locMast.getLocNo())) {
- LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, locMast.getLocNo()));
- if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) {
- locMast = null;
- }
- }
- // 鐩爣搴撲綅 ===>> 娣卞簱浣嶏紝 鍒欐牎楠屽叾娴呭簱浣嶆槸鍚︿负 O
- if (null != locMast && Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) {
- LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, locMast.getLocNo()));
- if (!shallowLoc.getLocSts().equals("O")) {
- locMast = null;
- }
- }
+ } else if (ruleId == 1){ //鎸夋祴璇曡澶囨帓搴忥紝浼樺厛鎺掓弧鍗曞彴璁惧
+ locMast = locMastService.queryFreeLocMast1(curRow, locTypeDto.getLocType1() ,channelMax+1);
+ } else if (ruleId == 2){ //鎸夐�氶亾鎺掑簭锛屽潎鍖�鍒嗛厤姣忓彴璁惧
+
+ locMast = locMastService.queryFreeLocMast2(curRow, locTypeDto.getLocType1() );
+ } else { //榛樿瑙勫垯
+ locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
}
}
@@ -243,16 +177,13 @@
return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
}
- // 杞昏揣鐗╂壘杞诲簱浣嶄负绌烘椂锛屽彲浠ュ幓鎵鹃噸搴撲綅浠�
- if (locTypeDto.getLocType1() == 1) {
- locTypeDto.setLocType1((short) 2);
- return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
- }
log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
throw new CoolException("娌℃湁绌哄簱浣�");
}
String locNo = locMast.getLocNo();
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = getWorkNo(0);
// 杩斿洖dto
startupDto.setWorkNo(workNo);
startupDto.setCrnNo(crnNo);
@@ -260,51 +191,6 @@
startupDto.setStaNo(staNo.getDevNo());
startupDto.setLocNo(locNo);
return startupDto;
- }
-
-
- public static String zerofill(String msg, Integer count) {
- if (msg.length() == count) {
- return msg;
- } else if (msg.length() > count) {
- return msg.substring(0, 16);
- } else {
- StringBuilder msgBuilder = new StringBuilder(msg);
- for(int i = 0; i < count - msg.length(); ++i) {
- msgBuilder.insert(0, "0");
- }
- return msgBuilder.toString();
- }
- }
-
- /**
- * 鏍规嵁鍏ュ簱绔欒幏鍙栧簱浣嶆帓鍙峰垎閰�
- */
- private Integer getWhsType(Integer sourceStaNo, int times) {
- if (times >= 16) {
- return 4;
- }
- switch (sourceStaNo) {
- case 173:
- case 176:
- case 180:
- case 185:
- return 1;
- case 189:
- case 194:
- case 198:
- case 202:
- return 2;
- case 206:
-// case 211:
-// case 215:
-// case 219:
-// case 223:
- case 227:
- return 3;
- default:
- throw new CoolException("鏍规嵁鍏ュ簱绔欒幏鍙栧簱浣嶆帓鍙峰垎閰嶅け璐ワ紝鍏ュ簱绔欙細" + sourceStaNo);
- }
}
}
--
Gitblit v1.9.1