From c7338c0fc1513507c05c1a7fd00bff8c11ad5d1e Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 24 十月 2024 08:49:01 +0800
Subject: [PATCH] 生成移库时寻找库位不占用备货区
---
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 5 +++++
src/main/java/com/zy/system/mapper/ConfigMapper.java | 6 +++++-
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 19 +++++++++++++++++--
src/main/resources/mapper/LocMastMapper.xml | 11 +++++++++++
src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 5 +++++
src/main/resources/mapper/ConfigMapper.xml | 3 +++
src/main/java/com/zy/asrs/service/LocMastService.java | 5 +++++
7 files changed, 51 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 9fd1d06..1232af6 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -22,6 +22,11 @@
LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1);
+ /**
+ * 妫�绱㈠彲鐢ㄥ簱浣�,涓嶅崰鐢ㄥ璐у尯
+ */
+ LocMast queryFreeLocMastNotBay(@Param("row") Integer row, @Param("locType1") Short locType1,@Param("bay") Integer bay);
+
@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 bc45966..31f4075 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -18,6 +18,11 @@
LocMast queryFreeLocMast(Integer row, Short locType1);
/**
+ * 妫�绱㈠彲鐢ㄥ簱浣�,涓嶅崰鐢ㄥ璐у尯
+ */
+ LocMast queryFreeLocMastNotBay(Integer row, Short locType1, Integer bay);
+
+ /**
* 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅
* @param sourceLocNo 婧愬簱浣�
* @return 鍚岀粍绌哄簱浣嶉泦鍚�
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 ababf93..59f47d8 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -23,6 +23,11 @@
}
@Override
+ public LocMast queryFreeLocMastNotBay(Integer row, Short locType1, Integer bay) {
+ return this.baseMapper.queryFreeLocMastNotBay(row, locType1,bay);
+ }
+
+ @Override
public List<String> queryGroupEmptyStock(String sourceLocNo) {
if (Cools.isEmpty(sourceLocNo)) {
return null;
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 6c4e932..c7d420b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -38,6 +38,8 @@
import com.zy.core.thread.LedThread;
import com.zy.core.thread.RgvThread;
import com.zy.core.thread.SiemensDevpThread;
+import com.zy.system.entity.Config;
+import com.zy.system.mapper.ConfigMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -45,6 +47,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -100,6 +103,9 @@
private BasRgvMapMapper basRgvMapMapper;
@Autowired
private RgvOneSignMapper rgvOneSignMapper;
+
+ @Resource
+ private ConfigMapper configMapper;
@Value("${wms.url}")
private String wmsUrl;
@@ -2714,9 +2720,18 @@
try {
List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
LocMast loc = null;
+
+ // 鑾峰彇澶囪揣鍖洪厤缃�
+ Config config = configMapper.selectConfigByCode("auto_stock_up");
+ if (config == null) {
+ return;
+ }
+ // 澶囪揣鍙栨槸鍓嶅嚑鍒�
+ int bay1 = Integer.parseInt(config.getValue());
+
for (Integer row : rows) {
if (Utils.isDeepLoc(slaveProperties, row)) {
- loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+ loc = locMastService.queryFreeLocMastNotBay(row, shallowLoc.getLocType1(),bay1);
if (loc != null) {
if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
@@ -2735,7 +2750,7 @@
if (null == loc) {
for (Integer row : rows) {
if (Utils.isShallowLoc(slaveProperties, row)) {
- loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+ loc = locMastService.queryFreeLocMastNotBay(row, shallowLoc.getLocType1(),bay1);
if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
diff --git a/src/main/java/com/zy/system/mapper/ConfigMapper.java b/src/main/java/com/zy/system/mapper/ConfigMapper.java
index 9ec6ab3..29400f6 100644
--- a/src/main/java/com/zy/system/mapper/ConfigMapper.java
+++ b/src/main/java/com/zy/system/mapper/ConfigMapper.java
@@ -3,10 +3,14 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.system.entity.Config;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface ConfigMapper extends BaseMapper<Config> {
-
+ /**
+ * 鏍规嵁缂栫爜鏌ヨ閰嶇疆璇︽儏
+ */
+ Config selectConfigByCode(@Param("code") String code);
}
diff --git a/src/main/resources/mapper/ConfigMapper.xml b/src/main/resources/mapper/ConfigMapper.xml
index 8673fe5..b49e6b7 100644
--- a/src/main/resources/mapper/ConfigMapper.xml
+++ b/src/main/resources/mapper/ConfigMapper.xml
@@ -12,5 +12,8 @@
<result column="status" property="status" />
</resultMap>
+ <select id="selectConfigByCode" resultType="com.zy.system.entity.Config">
+ select Top 1 * from sys_config where code = #{code}
+ </select>
</mapper>
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 7821af2..dadeb9b 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -58,5 +58,16 @@
select top 1 * from asr_loc_mast where crn_no = #{crnNo} and loc_sts = 'O'
ORDER BY NEWID()
</select>
+ <select id="queryFreeLocMastNotBay" resultMap="BaseResultMap">
+ select top 1 *
+ from asr_loc_mast
+ where row1=#{row}
+ and loc_sts='O'
+ and bay1 > #{bay}
+ <if test="locType1 != null">
+ and loc_type1 = #{locType1}
+ </if>
+ order by NEWID(),lev1 asc,bay1 asc
+ </select>
</mapper>
--
Gitblit v1.9.1