From f6a6cb473735249214e18e0cdb82a7d2914557e0 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 17 六月 2024 12:56:08 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 78 ++++++++-
src/main/resources/mapper/RowLastnoMapper.xml | 2
src/main/java/com/zy/asrs/task/CheckDeepScheduler.java | 2
src/main/resources/mapper/LocMastMapper.xml | 46 +++++
src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 20 +-
src/main/java/com/zy/asrs/service/LocMastService.java | 8 +
src/main/java/com/zy/common/service/CommonService.java | 324 +--------------------------------------
7 files changed, 143 insertions(+), 337 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index d0d5663..75d8b21 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -13,36 +13,36 @@
@Repository
public interface LocMastMapper extends BaseMapper<LocMast> {
- LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1);
+ LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1,@Param("whsType") Long whsType);
@Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
- List<String> queryGroupEmptyStock(Integer crnNo);
+ List<String> queryGroupEmptyStock(Integer crnNo,@Param("whsType") Long whsType);
@Select("select count(*) as count from asr_loc_mast where 1=1 and loc_sts = 'O' and loc_type1 = #{locType1} and crn_no = #{crnNo}")
- Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("crnNo") Integer crnNo);
+ Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("crnNo") Integer crnNo,@Param("whsType") Long whsType);
- List<LocMast> queryShallowLocFMast(@Param("crnNo") Integer crnNo);
+ List<LocMast> queryShallowLocFMast(@Param("crnNo") Integer crnNo,@Param("whsType") Long whsType);
- List<LocMast> selectLocShuttleMoveUnilateralY(@Param("bay")Integer bay,@Param("lev")Integer lev);
- List<LocMast> selectLocShuttleMoveUnilateralN(@Param("bay")Integer bay,@Param("lev")Integer lev);
+ List<LocMast> selectLocShuttleMoveUnilateralY(@Param("bay")Integer bay,@Param("lev")Integer lev,@Param("whsType") Long whsType);
+ List<LocMast> selectLocShuttleMoveUnilateralN(@Param("bay")Integer bay,@Param("lev")Integer lev,@Param("whsType") Long whsType);
/*
* 鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣� 娣�>娴�
* */
- LocMast selectLocByLocStsPakInF1(@Param("locNos") List<String> locNos);
+ LocMast selectLocByLocStsPakInF1(@Param("locNos") List<String> locNos,@Param("whsType") Long whsType);
/*
* 鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣� 娣�<娴�
* */
- LocMast selectLocByLocStsPakInF2(@Param("locNos") List<String> locNos);
+ LocMast selectLocByLocStsPakInF2(@Param("locNos") List<String> locNos,@Param("whsType") Long whsType);
/*
* 鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅 娣�>娴�
* */
- LocMast selectLocByLocStsPakInO1(@Param("locNos") List<String> locNos);
+ LocMast selectLocByLocStsPakInO1(@Param("locNos") List<String> locNos,@Param("whsType") Long whsType);
/*
* 鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅 娣�<娴�
* */
- LocMast selectLocByLocStsPakInO2(@Param("locNos") List<String> locNos);
+ LocMast selectLocByLocStsPakInO2(@Param("locNos") List<String> locNos,@Param("whsType") Long whsType);
}
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index d7781a9..91a2d47 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -13,6 +13,7 @@
* 妫�绱㈠彲鐢ㄥ簱浣�
*/
LocMast queryFreeLocMast(Integer row, Short locType1);
+ LocMast queryFreeLocMast(Integer row, Short locType1, Long whsType);
/**
* 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅
@@ -20,6 +21,7 @@
* @return 鍚岀粍绌哄簱浣嶉泦鍚�
*/
List<String> queryGroupEmptyStock(String sourceLocNo);
+ List<String> queryGroupEmptyStock(String sourceLocNo, Long whsType);
/**
* 妫�鏌ュ綋鍓嶅簱浣嶆墍灞炲贩閬撶殑绌哄簱浣嶆暟閲�
@@ -27,27 +29,33 @@
* @return
*/
Boolean checkEmptyCount(LocMast locMast);
+ Boolean checkEmptyCount(LocMast locMast, Long whsType);
/**
* 褰撳墠搴撳瓨鏄庣粏鏄惁涓烘暣鎵�
*/
Boolean checkWhole(List<LocDetl> locDetls);
+ Boolean checkWhole(List<LocDetl> locDetls, Long whsType);
/**
* 鏌ヨ娴呭簱浣嶅湪搴擄紝娣卞簱浣嶄负O鐨勬暟鎹�
* @return
*/
List<LocMast> queryShallowLocFMast(Integer crnNo);
+ List<LocMast> queryShallowLocFMast(Integer crnNo, Long whsType);
List<LocMast> selectLocMastShuttleMoveUnilateral(Integer bay,Integer lev,Integer crnNo);
+ List<LocMast> selectLocMastShuttleMoveUnilateral(Integer bay,Integer lev,Integer crnNo, Long whsType);
/*
* 鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣�
* */
LocMast selectLocByLocStsPakInF(Integer curRow,Integer nearRow,List<String> locNos);
+ LocMast selectLocByLocStsPakInF(Integer curRow,Integer nearRow,List<String> locNos, Long whsType);
/*
* 鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅
* */
LocMast selectLocByLocStsPakInO(Integer curRow,Integer nearRow,List<String> locNos);
+ LocMast selectLocByLocStsPakInO(Integer curRow,Integer nearRow,List<String> locNos, Long whsType);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index 8077398..4f5c4a4 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -20,7 +20,12 @@
@Override
public LocMast queryFreeLocMast(Integer row, Short locType1) {
- return this.baseMapper.queryFreeLocMast(row, locType1);
+ return this.baseMapper.queryFreeLocMast(row, locType1,1L);
+ }
+
+ @Override
+ public LocMast queryFreeLocMast(Integer row, Short locType1,Long type) {
+ return this.baseMapper.queryFreeLocMast(row, locType1,type);
}
@Override
@@ -32,7 +37,19 @@
if (Cools.isEmpty(sourceStock)) {
return null;
}
- return this.baseMapper.queryGroupEmptyStock(sourceStock.getCrnNo());
+ return this.baseMapper.queryGroupEmptyStock(sourceStock.getCrnNo(), 1L);
+ }
+
+ @Override
+ public List<String> queryGroupEmptyStock(String sourceLocNo,Long type) {
+ if (Cools.isEmpty(sourceLocNo)) {
+ return null;
+ }
+ LocMast sourceStock = this.selectById(sourceLocNo);
+ if (Cools.isEmpty(sourceStock)) {
+ return null;
+ }
+ return this.baseMapper.queryGroupEmptyStock(sourceStock.getCrnNo(), type);
}
@Override
@@ -40,7 +57,15 @@
if (locMast == null) {
return false;
}
- return this.baseMapper.selectEmptyLocCount(locMast.getLocType1(), locMast.getCrnNo()) > 1;
+ return this.baseMapper.selectEmptyLocCount(locMast.getLocType1(), locMast.getCrnNo(),1L) > 1;
+ }
+
+ @Override
+ public Boolean checkEmptyCount(LocMast locMast,Long type) {
+ if (locMast == null) {
+ return false;
+ }
+ return this.baseMapper.selectEmptyLocCount(locMast.getLocType1(), locMast.getCrnNo(),type) > 1;
}
/*
@@ -49,9 +74,17 @@
@Override
public LocMast selectLocByLocStsPakInF(Integer curRow,Integer nearRow,List<String> locNos) {
if (curRow<nearRow){
- return this.baseMapper.selectLocByLocStsPakInF1(locNos);
+ return this.baseMapper.selectLocByLocStsPakInF1(locNos,1L);
}
- return this.baseMapper.selectLocByLocStsPakInF2(locNos);
+ return this.baseMapper.selectLocByLocStsPakInF2(locNos,1L);
+ }
+
+ @Override
+ public LocMast selectLocByLocStsPakInF(Integer curRow,Integer nearRow,List<String> locNos,Long type) {
+ if (curRow<nearRow){
+ return this.baseMapper.selectLocByLocStsPakInF1(locNos,type);
+ }
+ return this.baseMapper.selectLocByLocStsPakInF2(locNos,type);
}
/*
@@ -60,9 +93,16 @@
@Override
public LocMast selectLocByLocStsPakInO(Integer curRow,Integer nearRow,List<String> locNos) {
if (curRow<nearRow){
- return this.baseMapper.selectLocByLocStsPakInO1(locNos);
+ return this.baseMapper.selectLocByLocStsPakInO1(locNos,1L);
}
- return this.baseMapper.selectLocByLocStsPakInO2(locNos);
+ return this.baseMapper.selectLocByLocStsPakInO2(locNos,1L);
+ }
+ @Override
+ public LocMast selectLocByLocStsPakInO(Integer curRow,Integer nearRow,List<String> locNos,Long type) {
+ if (curRow<nearRow){
+ return this.baseMapper.selectLocByLocStsPakInO1(locNos,type);
+ }
+ return this.baseMapper.selectLocByLocStsPakInO2(locNos,type);
}
@Override
@@ -71,15 +111,33 @@
}
@Override
+ public Boolean checkWhole(List<LocDetl> locDetls,Long type) {
+ return null;
+ }
+
+ @Override
public List<LocMast> queryShallowLocFMast(Integer crnNo) {
- return this.baseMapper.queryShallowLocFMast(crnNo);
+ return this.baseMapper.queryShallowLocFMast(crnNo,1L);
+ }
+
+ @Override
+ public List<LocMast> queryShallowLocFMast(Integer crnNo,Long type) {
+ return this.baseMapper.queryShallowLocFMast(crnNo,type);
}
@Override
public List<LocMast> selectLocMastShuttleMoveUnilateral(Integer bay,Integer lev,Integer crnNo) {
if (crnNo==1){
- return this.baseMapper.selectLocShuttleMoveUnilateralY(bay,lev);
+ return this.baseMapper.selectLocShuttleMoveUnilateralY(bay,lev,1L);
}
- return this.baseMapper.selectLocShuttleMoveUnilateralN(bay,lev);
+ return this.baseMapper.selectLocShuttleMoveUnilateralN(bay,lev,1L);
+ }
+
+ @Override
+ public List<LocMast> selectLocMastShuttleMoveUnilateral(Integer bay,Integer lev,Integer crnNo,Long type) {
+ if (crnNo==1){
+ return this.baseMapper.selectLocShuttleMoveUnilateralY(bay,lev,type);
+ }
+ return this.baseMapper.selectLocShuttleMoveUnilateralN(bay,lev,type);
}
}
diff --git a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
index 18203fc..d5c566b 100644
--- a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
+++ b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
@@ -46,7 +46,7 @@
/**
* 灏嗕袱涓繁搴撲綅鍚堝苟涓烘繁娴呭簱浣�,鐗╂枡鍙风浉鍚岋紝婧愬簱浣嶅叆搴撴棩鏈熸棭浜庣洰鏍囧簱浣嶅搴旀繁搴撲綅鍏ュ簱鏃ユ湡锛屽簱浣嶇姸鎬侀兘涓篎
*/
- @Scheduled(cron = "0/30 * * * * ?")
+// @Scheduled(cron = "0/30 * * * * ?")
private void execute() throws ParseException {
// if (!confirmDeep) return;
if (true) return;
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 6aa2a28..b06416a 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -137,7 +137,7 @@
log.error("绔欑偣={} 鏈煡璇㈠埌瀵瑰簲鐨勮鍒�",sourceStaNo);
break;
case 4:
- return getLocNoRun2(whsType,staDescId,sourceStaNo,matnr,batch,grade,0,locTypeDto,0);
+ return getLocNoRun(whsType,staDescId,sourceStaNo,matnr,batch,grade,0,locTypeDto,0);
case 5:
log.error("绔欑偣={} 鏈煡璇㈠埌瀵瑰簲鐨勮鍒�",sourceStaNo);
break;
@@ -182,6 +182,7 @@
StartupDto startupDto = new StartupDto();
RowLastno rowLastno = rowLastnoService.selectById(whsType);
+ RowLastnoType rowLastnoType = rowLastnoTypeService.selectById(rowLastno.getTypeId());
int sRow = rowLastno.getsRow();
int eRow = rowLastno.geteRow();
int crnNumber = rowLastno.getCrnQty();
@@ -209,7 +210,8 @@
if (basCrnpService.checkSiteError(crnNo, true)) {
rowCount = locNecessaryParameters[0];
nearRow = locNecessaryParameters[3];
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("row1", nearRow).eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue()));
int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type",100));
if (locMasts.size()-crnCountO<=2){
times++;
@@ -245,17 +247,18 @@
if (signRule1){
if (nearRow!=curRow){
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("row1", nearRow).eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue()));
for (LocMast locMast1:locMasts){
//鑾峰彇宸烽亾
List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,locMast1.getLocNo(), curRow>nearRow);
//鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣�
- LocMast locMastF = locMastService.selectLocByLocStsPakInF(curRow,nearRow,groupOutsideLocCrn);
+ LocMast locMastF = locMastService.selectLocByLocStsPakInF(curRow,nearRow,groupOutsideLocCrn,rowLastnoType.getType().longValue());
if (!Cools.isEmpty(locMastF) && locMastF.getLocSts().equals("F")){
LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMastF.getLocNo()));
if (!Cools.isEmpty(locDetl) && matnr.equals(locDetl.getMatnr()) && batch.equals(Cools.isEmpty(locDetl.getBatch()) ? "" : locDetl.getBatch()) && grade.equals(Cools.isEmpty(locDetl.getBrand()) ? "" : locDetl.getBrand())) {
//鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣�
- locMast = locMastService.selectLocByLocStsPakInO(curRow,nearRow,groupOutsideLocCrn);
+ locMast = locMastService.selectLocByLocStsPakInO(curRow,nearRow,groupOutsideLocCrn,rowLastnoType.getType().longValue());
break;
}
}
@@ -300,7 +303,8 @@
// 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //浜掗�氱増
if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- 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).eq("whs_type",rowLastnoType.getType().longValue()));
if (!locMasts.isEmpty()) {
for (LocMast loc : locMasts) {
if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
@@ -359,7 +363,7 @@
if (Cools.isEmpty(locMast) && crnNo != 0) {
List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
.eq("row1", nearRow)
- .eq("loc_sts", "O")
+ .eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
.orderBy("lev1",true).orderBy("bay1",true));
for (LocMast locMast1 : locMasts) {
if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
@@ -368,7 +372,7 @@
if (Utils.BooleanWhsTypeStaIoType(rowLastno)){
String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "O"));
+ .eq("loc_no", shallowLoc).eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue()));
if (!Cools.isEmpty(locMast2)) {
locMast = locMast2;
break;
@@ -389,317 +393,19 @@
if (Utils.BooleanWhsTypeStaIoType(rowLastno)){
String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "O"));
+ .eq("loc_no", shallowLoc).eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue()));
if (!Cools.isEmpty(locMast2)) {
locMast = locMast2;
break;
} else {
locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "F"));
+ .eq("loc_no", shallowLoc).eq("loc_sts", "F").eq("whs_type",rowLastnoType.getType().longValue()));
if (!Cools.isEmpty(locMast2)) {
locMast = locMast2;
break;
} else {
locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "D"));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast2;
- break;
- }
- }
- }
- } else {
- if (!Cools.isEmpty(locMast1)) {
- locMast = locMast1;
- break;
- }
- }
- }
- }
- }
-
- if (!Cools.isEmpty(locMast) && !basCrnpService.checkSiteError(crnNo, true)) {
- locMast = null;
- }
-
- // 閫掑綊鏌ヨ
- if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) {
- // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
- if (times < rowCount*2) {
- times = times + 1;
- return getLocNoRun(whsType, staDescId, sourceStaNo, matnr, batch, grade,moveCrnNo, locTypeDto, times);
- }
-// // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
-// if (locTypeDto.getLocType1() < 2) {
-// int i = locTypeDto.getLocType1() + 1;
-// locTypeDto.setLocType1((short)i);
-// return getLocNo(1, staDescId, sourceStaNo, matnr,batch,grade, locTypeDto, 0);
-// }
- log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
- throw new CoolException("娌℃湁绌哄簱浣�");
- }
- String locNo = locMast.getLocNo();
-
- // 鐢熸垚宸ヤ綔鍙�
- int workNo = getWorkNo(0);
- // 杩斿洖dto
- startupDto.setWorkNo(workNo);
- startupDto.setCrnNo(crnNo);
- startupDto.setSourceStaNo(sourceStaNo);
- startupDto.setLocNo(locNo);
- return startupDto;
- }
-
- /**
- * 妫�绱㈠簱浣嶅彿
- *
- * @param whsType 绫诲瀷 1:鍙屾繁寮忚揣鏋�
- * @param staDescId 璺緞ID
- * @param sourceStaNo 婧愮珯
- * @param matnr 鐗╂枡鍙烽泦鍚�
- * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
- */
- @Transactional
- public StartupDto getLocNoRun2(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
- if (Cools.isEmpty(matnr)) { //鐗╂枡鍙�
- matnr = "";
- }
- if (Cools.isEmpty(batch)) { //鎵规
- batch = "";
- }
- if (Cools.isEmpty(grade)) { //澶囩敤
- grade = "";
- }
-
- // 鍒濆鍖栧弬鏁�
- int crnNo = 0; //鍫嗗灈鏈哄彿
- int nearRow = 0; //鏈�娴呭簱浣嶆帓
- int curRow = 0; //鏈�娣卞簱浣嶆帓
- int rowCount = 0; //杞杞
- LocMast locMast = null; // 鐩爣搴撲綅
-
- StartupDto startupDto = new StartupDto();
- RowLastno rowLastno = rowLastnoService.selectById(whsType);
- int sRow = rowLastno.getsRow();
- int eRow = rowLastno.geteRow();
- int crnNumber = rowLastno.getCrnQty();
-
- if (Cools.isEmpty(rowLastno)) {
- throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
- }
- // ===============>>>> 寮�濮嬫墽琛�
- curRow = rowLastno.getCurrentRow();
-
- if (!Cools.isEmpty(moveCrnNo) && moveCrnNo!=0){
- crnNumber = moveCrnNo;
- if (times==0){
- curRow = moveCrnNo*4-1;
- }else {
- curRow = moveCrnNo*4-2;
- }
- }
-
- //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
- for (int i = times; i < crnNumber*2; i++) {
- int[] locNecessaryParameters = Utils.LocNecessaryParameters(whsType, curRow, crnNumber);
- curRow = locNecessaryParameters[1];
- crnNo = locNecessaryParameters[2];
- if (basCrnpService.checkSiteError(crnNo, true)) {
- rowCount = locNecessaryParameters[0];
- nearRow = locNecessaryParameters[3];
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
- int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type",100));
- if (locMasts.size()-crnCountO<=2){
- times++;
- continue;
- }
- break;
- } else {
- times++;
- }
- }
- if (nearRow == 0) {
- throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満");
- }
-
- boolean signRule1 = false;
- boolean signRule2 = false;
-
-
- if (Utils.BooleanWhsTypeStaIoType(rowLastno)){
- // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //鍒嗙鐗�
- if (!Cools.isEmpty(matnr) && staDescId == 1){
- signRule1 = true;
- }
- // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //浜掗�氱増
- if (!Cools.isEmpty(matnr) && staDescId == 1) {
- signRule2 = true;
- }
-
- if (!Cools.isEmpty(matnr) && (staDescId == 11 || staDescId == 111)) {
- signRule1 = true;
- }
- }
-
- if (signRule1){
- if (nearRow!=curRow){
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
- for (LocMast locMast1:locMasts){
- //鑾峰彇宸烽亾
- List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,locMast1.getLocNo(), curRow>nearRow);
- //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣�
- LocMast locMastF = locMastService.selectLocByLocStsPakInF(curRow,nearRow,groupOutsideLocCrn);
- if (!Cools.isEmpty(locMastF) && locMastF.getLocSts().equals("F")){
- LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMastF.getLocNo()));
- if (!Cools.isEmpty(locDetl) && matnr.equals(locDetl.getMatnr()) && batch.equals(Cools.isEmpty(locDetl.getBatch()) ? "" : locDetl.getBatch()) && grade.equals(Cools.isEmpty(locDetl.getBrand()) ? "" : locDetl.getBrand())) {
- //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣�
- locMast = locMastService.selectLocByLocStsPakInO(curRow,nearRow,groupOutsideLocCrn);
- break;
- }
- }
- }
- }
- }else if (signRule2){
- List<String> locNos = locDetlService.getSameDetlToday(matnr, 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.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
- if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
- locMast = shallowLoc;
- crnNo = locMast.getCrnNo();
- break;
- }
- }
- }
- }
- }
-
-// // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //鍒嗙鐗�
-// if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(whsType)) {
-// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
-// for (LocMast locMast1:locMasts){
-// if (VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
-// continue;
-// }
-// String shallowLoc = Utils.getDeepLoc(slaveProperties,locMast1.getLocNo());
-// LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",shallowLoc));
-// if (!Cools.isEmpty(locMast2) && locMast2.getLocSts().equals("D")){
-// locMast = locMast1;
-// break;
-// }
-// }
-// }
-
- // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //浜掗�氱増
- if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow));
- if (!locMasts.isEmpty()) {
- 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 (VersionUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
- if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
- locMast = shallowLoc;
- crnNo = locMast.getCrnNo();
- break;
- }
- }
- }
- }
- }
- }
-
- Wrapper<StaDesc> wrapper = null;
- StaDesc staDesc = null;
- BasDevp staNo = null;
-
- if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
- // 鑾峰彇鐩爣绔�
- wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", staDescId)
- .eq("stn_no", sourceStaNo)
- .eq("crn_no", crnNo);
- staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
- log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
-// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
- crnNo = 0;
- }else {
- staNo = basDevpService.selectById(staDesc.getCrnStn());
- if (!staNo.getAutoing().equals("Y")) {
- log.error("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
-// throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
- crnNo = 0;
- }
- startupDto.setStaNo(staNo.getDevNo());
- }
- // 鏇存柊搴撲綅鎺掑彿
- if (Cools.isEmpty(locMast)){
- rowLastno.setCurrentRow(curRow);
- rowLastnoService.updateById(rowLastno);
- }
- }
-
- // 寮�濮嬫煡鎵惧簱浣� ==============================>>
-
- // 1.鎸夎鍒欐煡鎵惧簱浣�
- if (Cools.isEmpty(locMast) && crnNo != 0) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("row1", nearRow)
- .eq("loc_sts", "O")
- .orderBy("lev1",true).orderBy("bay1",true));
- for (LocMast locMast1 : locMasts) {
- if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
- continue;
- }
- if (Utils.BooleanWhsTypeStaIoType(rowLastno)){
- String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
- LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "O"));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast2;
- break;
- }
- } else {
- if (!Cools.isEmpty(locMast1)) {
- locMast = locMast1;
- break;
- }
- }
- }
-
- if (Cools.isEmpty(locMast) && Utils.BooleanWhsTypeStaIoType(rowLastno)){
- for (LocMast locMast1 : locMasts) {
- if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
- continue;
- }
- if (Utils.BooleanWhsTypeStaIoType(rowLastno)){
- String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
- LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "O"));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast2;
- break;
- } else {
- locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "F"));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast2;
- break;
- } else {
- locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "D"));
+ .eq("loc_no", shallowLoc).eq("loc_sts", "D").eq("whs_type",rowLastnoType.getType().longValue()));
if (!Cools.isEmpty(locMast2)) {
locMast = locMast2;
break;
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index a9c6062..982dd31 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -42,6 +42,7 @@
from asr_loc_mast
where row1=#{row}
and loc_sts='O'
+ and whs_type=#{whsType}
<if test="locType1 != null">
and loc_type1 = #{locType1}
</if>
@@ -51,6 +52,7 @@
<select id="queryShallowLocFMast" resultMap="BaseResultMap">
select * from asr_loc_mast
where 1=1
+ and whs_type=#{whsType}
and loc_no in (
select
concat(
@@ -77,15 +79,35 @@
</select>
<select id="selectLocShuttleMoveUnilateralY" resultMap="BaseResultMap">
- select * from [dbo].[asr_loc_mast] where row1>1 and row1 < 18 and bay1 = #{bay} and lev1 = #{lev} and loc_sts='F' order by row1
+ select *
+ from [dbo].[asr_loc_mast]
+ where 1=1
+ and whs_type=#{whsType}
+ and row1>1 and row1 < 18
+ and bay1 = #{bay}
+ and lev1 = #{lev}
+ and loc_sts='F'
+ order by row1
</select>
<select id="selectLocShuttleMoveUnilateralN" resultMap="BaseResultMap">
- select * from [dbo].[asr_loc_mast] where row1>17 and row1 < 31 and bay1 = #{bay} and lev1 = #{lev} and loc_sts='F' order by row1 desc
+ select *
+ from [dbo].[asr_loc_mast]
+ where 1=1
+ and whs_type=#{whsType}
+ and row1>17 and row1 < 31
+ and bay1 = #{bay}
+ and lev1 = #{lev}
+ and loc_sts='F'
+ order by row1 desc
</select>
<select id="selectLocByLocStsPakInF1" resultMap="BaseResultMap">
- SELECT top 1 * FROM [dbo].[asr_loc_mast] WHERE loc_no in
+ SELECT top 1 *
+ FROM [dbo].[asr_loc_mast]
+ WHERE 1=1
+ and whs_type=#{whsType}
+ and loc_no in
<foreach collection="locNos" item="locNo" index="index" open="(" close=")" separator=",">
#{locNo}
</foreach>
@@ -93,7 +115,11 @@
</select>
<select id="selectLocByLocStsPakInF2" resultMap="BaseResultMap">
- SELECT top 1 * FROM [dbo].[asr_loc_mast] WHERE loc_no in
+ SELECT top 1 *
+ FROM [dbo].[asr_loc_mast]
+ WHERE 1=1
+ and whs_type=#{whsType}
+ and loc_no in
<foreach collection="locNos" item="locNo" index="index" open="(" close=")" separator=",">
#{locNo}
</foreach>
@@ -101,7 +127,11 @@
</select>
<select id="selectLocByLocStsPakInO1" resultMap="BaseResultMap">
- SELECT top 1 * FROM [dbo].[asr_loc_mast] WHERE loc_no in
+ SELECT top 1 *
+ FROM [dbo].[asr_loc_mast]
+ WHERE 1=1
+ and whs_type=#{whsType}
+ and loc_no in
<foreach collection="locNos" item="locNo" index="index" open="(" close=")" separator=",">
#{locNo}
</foreach>
@@ -109,7 +139,11 @@
</select>
<select id="selectLocByLocStsPakInO2" resultMap="BaseResultMap">
- SELECT top 1 * FROM [dbo].[asr_loc_mast] WHERE loc_no in
+ SELECT top 1 *
+ FROM [dbo].[asr_loc_mast]
+ WHERE 1=1
+ and whs_type=#{whsType}
+ and loc_no in
<foreach collection="locNos" item="locNo" index="index" open="(" close=")" separator=",">
#{locNo}
</foreach>
diff --git a/src/main/resources/mapper/RowLastnoMapper.xml b/src/main/resources/mapper/RowLastnoMapper.xml
index 5080b08..386c595 100644
--- a/src/main/resources/mapper/RowLastnoMapper.xml
+++ b/src/main/resources/mapper/RowLastnoMapper.xml
@@ -30,7 +30,7 @@
</resultMap>
<select id="findBySection" resultMap="BaseResultMap">
- select * from asr_row_lastno
+ select top 1 * from asr_row_lastno
where 1=1
and s_row <= #{row}
and e_row >= #{row}
--
Gitblit v1.9.1