From e6fc4345bb82c01a190c16093a175b87573525b7 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期六, 11 二月 2023 11:16:52 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 9 +++-
src/main/resources/mapper/LocMastMapper.xml | 19 +++++++++
src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 4 +
src/main/java/com/zy/asrs/service/LocMastService.java | 7 +++
src/main/java/com/zy/common/service/CommonService.java | 26 +++++++++---
src/main/resources/application.yml | 2 +
6 files changed, 55 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index c495423..46de5b0 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -17,7 +17,9 @@
LocMast queryFreeLocMast1(@Param("row") Integer row, @Param("locType1") Short locType1 ,@Param("channelMax") int channelMax);
- LocMast queryFreeLocMast2(@Param("row") Integer row, @Param("locType1") Short locType1);
+ LocMast queryFreeLocMast2(@Param("row") Integer row, @Param("locType1") Short locType1, @Param("locType2") Short locType2);
+
+ Integer queryFreeLocMastCount(@Param("row") Integer row, @Param("locType1") Short locType1, @Param("locType2") Short locType2);
@Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
List<String> queryGroupEmptyStock(Integer crnNo);
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index e137a2c..db7cb1d 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -21,7 +21,12 @@
/**
* 妫�绱㈠彲鐢ㄥ簱浣�
*/
- LocMast queryFreeLocMast2(Integer row, Short locType1);
+ LocMast queryFreeLocMast2(Integer row, Short locType1, Short locType2);
+
+ /**
+ * 妫�绱㈠彲鐢ㄥ簱浣�
+ */
+ Integer queryFreeLocMastCount(Integer row, Short locType1, Short locType2);
/**
* 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅
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 163de40..97348ce 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -29,8 +29,13 @@
}
@Override
- public LocMast queryFreeLocMast2(Integer row, Short locType1) {
- return this.baseMapper.queryFreeLocMast2(row, locType1);
+ public LocMast queryFreeLocMast2(Integer row, Short locType1, Short locType2) {
+ return this.baseMapper.queryFreeLocMast2(row, locType1 ,locType2);
+ }
+
+ @Override
+ public Integer queryFreeLocMastCount(Integer row, Short locType1, Short locType2) {
+ return this.baseMapper.queryFreeLocMastCount(row, locType1 ,locType2);
}
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 0ca81d5..d27601c 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -3,16 +3,12 @@
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;
@@ -51,6 +47,8 @@
private SlaveProperties slaveProperties;
@Value("${channel.channelMax}")
private Integer channelMax;
+ @Value("${channel.equipmentCount}")
+ private Integer equipmentCount;
/**
* 鐢熸垚宸ヤ綔鍙�
@@ -162,10 +160,10 @@
} else if (ruleId == 1){ //鎸夋祴璇曡澶囨帓搴忥紝浼樺厛鎺掓弧鍗曞彴璁惧
locMast = locMastService.queryFreeLocMast1(curRow, locTypeDto.getLocType1() ,channelMax+1);
} else if (ruleId == 2){ //鎸夐�氶亾鎺掑簭锛屽潎鍖�鍒嗛厤姣忓彴璁惧
-
- locMast = locMastService.queryFreeLocMast2(curRow, locTypeDto.getLocType1() );
+ Short locType2 = getLocType2Small(curRow, locTypeDto.getLocType1());
+ locMast = locMastService.queryFreeLocMast2(curRow, locTypeDto.getLocType1() ,locType2);
} else { //榛樿瑙勫垯
- locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
+ locMast = locMastService.queryFreeLocMast2(curRow, locTypeDto.getLocType1(),(short)0);
}
}
@@ -193,4 +191,18 @@
return startupDto;
}
+ public Short getLocType2Small(Integer curRow,short locType1){
+ Integer OCount = locMastService.queryFreeLocMastCount(curRow, locType1, (short)1);
+ Short locType2=1;
+ for (int i=2;i<equipmentCount+1;i++){
+ Integer integer =locMastService.queryFreeLocMastCount(curRow, locType1, (short)i);
+ if (OCount<integer){
+ OCount=integer;
+ locType2=(short)i;
+ }
+ }
+
+ return locType2;
+ }
+
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 6a87a9f..c747e2e 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -56,6 +56,8 @@
channel:
# 鏈�澶ч�氶亾鏁�
channelMax: 48
+ # 鍏呮斁鐢垫祴璇曟煖鏁伴噺
+ equipmentCount: 6
# MES绯荤粺
mes:
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 9c463e0..57b8a01 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -70,13 +70,30 @@
from asr_loc_mast
where row1=#{row}
and loc_sts='O'
- and bay1=#{bay}
+ <if test="locType2 != null and locType != 0">
+ and loc_type2 = #{locType2}
+ </if>
+ <if test="locType2 != null and locType == 0">
+ and loc_type2 != null
+ and loc_type2 != #{locType2}
+ </if>
<if test="locType1 != null">
and loc_type1 = #{locType1}
</if>
order by lev1 asc,bay1 asc
</select>
+ <select id="queryFreeLocMastCount" resultMap="BaseResultMap">
+ select count(1)
+ from asr_loc_mast
+ where row1=#{row}
+ and loc_sts='O'
+ and loc_type2 = #{locType2}
+ <if test="locType1 != null">
+ and loc_type1 = #{locType1}
+ </if>
+ </select>
+
<select id="queryShallowLocFMast" resultMap="BaseResultMap">
select * from asr_loc_mast
where 1=1
--
Gitblit v1.9.1