src/main/java/com/zy/asrs/mapper/LocMastMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/LocMastService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/service/CommonService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/LocMastMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -13,7 +13,7 @@ @Repository public interface LocMastMapper extends BaseMapper<LocMast> { LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1); LocMast queryFreeLocMast(@Param("row") Integer row, @Param("rows") List<Integer> rows, @Param("locType1") Short locType1); @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}") List<String> queryGroupEmptyStock(Integer crnNo); src/main/java/com/zy/asrs/service/LocMastService.java
@@ -11,7 +11,7 @@ /** * 检索可用库位 */ LocMast queryFreeLocMast(Integer row, Short locType1); LocMast queryFreeLocMast(Integer row, List<Integer> rows, Short locType1); /** * 获取同组货架的空库位 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -23,8 +23,8 @@ private RowLastnoService rowLastnoService; @Override public LocMast queryFreeLocMast(Integer row, Short locType1) { return this.baseMapper.queryFreeLocMast(row, locType1); public LocMast queryFreeLocMast(Integer row, List<Integer> rows, Short locType1) { return this.baseMapper.queryFreeLocMast(row, rows, locType1); } @Override src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -907,96 +907,10 @@ @Override @Transactional public String dealPreHaveStart(Integer wrkNo, Long userId) { WrkMast wrkMast = wrkMastService.selectById(wrkNo); if (wrkMast == null) { throw new CoolException("任务已失效"); if (true) { throw new CoolException("功能停用"); } String locNo = wrkMast.getLocNo(); LocMast locMast = locMastService.selectById(locNo); assert locMast != null; RowLastno rowLastno = rowLastnoService.findBySection(locMast.getRow1()); assert rowLastno != null; // 目标库位 LocMast targetLoc = null; for (int curRow = rowLastno.getsRow(); curRow<=rowLastno.geteRow(); curRow++) { if (Utils.isShallowLoc(slaveProperties, curRow)) { Integer deepRow = Utils.getDeepRow(slaveProperties, curRow); targetLoc = locMastService.queryFreeLocMast(deepRow, locMast.getLocType1()); // 因库位移转、需预留空库位 if (!locMastService.checkEmptyCount(targetLoc)) { continue; } } if (Cools.isEmpty(targetLoc)) { targetLoc = locMastService.queryFreeLocMast(curRow, locMast.getLocType1()); // 因库位移转、需预留空库位 if (!locMastService.checkEmptyCount(targetLoc)) { continue; } // 目标库位 ===>> 浅库位, 则校验其深库位是否为 F D X if (null != targetLoc && Utils.isShallowLoc(slaveProperties, targetLoc.getLocNo())) { LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, targetLoc.getLocNo())); if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) { continue; } } // 目标库位 ===>> 深库位, 则校验其浅库位是否为 O if (null != targetLoc && Utils.isDeepLoc(slaveProperties, targetLoc.getLocNo())) { LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, targetLoc.getLocNo())); if (!shallowLoc.getLocSts().equals("O")) { continue; } } } if (!Cools.isEmpty(targetLoc)) { break; } } if (targetLoc == null) { throw new CoolException("操作失败,当前仓库找不到空库位"); } Date now = new Date(); // 修改工作档 StaDesc staDesc = staDescService.queryCrnStn(targetLoc.getCrnNo()); if (Cools.isEmpty(staDesc)) { throw new CoolException("入库路径不存在"); } wrkMast.setWrkSts(2L); wrkMast.setLocNo(targetLoc.getLocNo()); wrkMast.setStaNo(staDesc.getCrnStn()); wrkMast.setCrnNo(targetLoc.getCrnNo()); wrkMast.setModiTime(now); wrkMast.setModiUser(userId); wrkMast.setPreHave("N"); if (!wrkMastService.updateById(wrkMast)) { throw new CoolException("修改工作档失败"); } // 修改库位状态 O ===>>> S if (targetLoc.getLocSts().equals("O")){ targetLoc.setLocSts("S"); // S.入库预约 targetLoc.setModiUser(userId); targetLoc.setModiTime(now); if (!locMastService.updateById(targetLoc)){ throw new CoolException("改变库位状态失败"); } } else { throw new CoolException(targetLoc.getLocNo()+"目标库位已被占用"); } // 禁用异常库位 // locMast.setLocSts("X"); // X.禁用 // locMast.setModiUser(userId); // locMast.setModiTime(now); // if (!locMastService.updateById(locMast)){ // throw new CoolException("改变库位状态失败"); // } return targetLoc.getLocNo(); return ""; } } src/main/java/com/zy/common/service/CommonService.java
@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** @@ -26,6 +27,15 @@ @Slf4j @Service public class CommonService { public static final List<Integer> FIRST_GROUP_ROW_LIST = new ArrayList<Integer>() {{ add(2);add(3);add(4);add(5);add(6);add(7);add(8);add(9);add(10); add(11);add(12);add(13);add(14);add(15);add(16);add(17); }}; public static final List<Integer> SECOND_GROUP_ROW_LIST = new ArrayList<Integer>() {{ add(18);add(19);add(20); add(21);add(22);add(23);add(24);add(25);add(26);add(27);add(28);add(29);add(30); }}; @Autowired private WrkMastService wrkMastService; @@ -204,11 +214,23 @@ // 1.当检索库排为浅库位排时,优先寻找当前库排的深库位排 if (locMast == null) { locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1()); // 因库位移转、需预留空库位 if (!locMastService.checkEmptyCount(locMast)) { locMast = null; List<Integer> rows; switch (curRow) { case 1: rows = FIRST_GROUP_ROW_LIST; break; case 2: rows = SECOND_GROUP_ROW_LIST; break; default: throw new CoolException("入库逻辑故障【" + curRow + "】"); } locMast = locMastService.queryFreeLocMast(curRow, rows, locTypeDto.getLocType1()); // 因库位移转、需预留空库位 // if (!locMastService.checkEmptyCount(locMast)) { // locMast = null; // } } // 2.库位当前所属尺寸无空库位时,调整尺寸参数,向上兼容检索库位 src/main/resources/mapper/LocMastMapper.xml
@@ -42,17 +42,10 @@ select top 1 * from asr_loc_mast where row1 = ( case when #{row}=3 then 1 when #{row}=4 then 7 when #{row}=11 then 8 when #{row}=12 then 14 when #{row}=18 then 15 when #{row}=19 then 21 end ) row1 in <foreach item="item" collection="rows" index="index" separator="," open="(" close=")"> #{item} </foreach> <if test="locType1 != null"> and loc_type1 = #{locType1} </if> @@ -63,7 +56,7 @@ and loc_type3 = #{locType3} </if> and loc_sts='O' order by loc_sts desc ,lev1 asc,bay1 asc order by loc_sts desc,row1 asc, lev1 asc, bay1 asc </select> </mapper>