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