From 89af7e4c0a0fcd715bad4dbcf4e66442c0bf5975 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 14 五月 2022 23:33:53 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/RowLastnoService.java | 2 + src/main/java/com/zy/asrs/service/WorkService.java | 2 src/main/java/com/zy/asrs/mapper/StaDescMapper.java | 2 + src/main/resources/mapper/RowLastnoMapper.xml | 8 ++++ src/main/java/com/zy/asrs/service/impl/RowLastnoServiceImpl.java | 4 ++ src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 77 +++++++++++++++++++++++++++++++++++++- src/main/java/com/zy/asrs/service/StaDescService.java | 2 + src/main/java/com/zy/asrs/mapper/RowLastnoMapper.java | 2 + src/main/resources/mapper/StaDescMapper.xml | 6 +++ src/main/java/com/zy/asrs/controller/WorkController.java | 4 +- src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java | 5 ++ 11 files changed, 109 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java index bc186d4..eae764b 100644 --- a/src/main/java/com/zy/asrs/controller/WorkController.java +++ b/src/main/java/com/zy/asrs/controller/WorkController.java @@ -154,8 +154,8 @@ @RequestMapping("/deal/preHave/start") @ManagerAuth(memo = "鍏堝叆鍝佸鐞�") public R dealPreHave(@RequestParam Integer wrkNo) { - StartupDto startupDto = workService.dealPreHaveStart(wrkNo, getUserId()); - return R.ok("浠诲姟閲嶆柊鍏ュ簱锛岀洰鏍囧簱浣嶏細" + startupDto.getLocNo()); + String locNo = workService.dealPreHaveStart(wrkNo, getUserId()); + return R.ok("浠诲姟閲嶆柊鍏ュ簱锛岀洰鏍囧簱浣嶏細" + locNo); } } diff --git a/src/main/java/com/zy/asrs/mapper/RowLastnoMapper.java b/src/main/java/com/zy/asrs/mapper/RowLastnoMapper.java index bfb9079..1a1ca80 100644 --- a/src/main/java/com/zy/asrs/mapper/RowLastnoMapper.java +++ b/src/main/java/com/zy/asrs/mapper/RowLastnoMapper.java @@ -9,4 +9,6 @@ @Repository public interface RowLastnoMapper extends BaseMapper<RowLastno> { + RowLastno findBySection(Integer row); + } diff --git a/src/main/java/com/zy/asrs/mapper/StaDescMapper.java b/src/main/java/com/zy/asrs/mapper/StaDescMapper.java index b79dfc7..c26c603 100644 --- a/src/main/java/com/zy/asrs/mapper/StaDescMapper.java +++ b/src/main/java/com/zy/asrs/mapper/StaDescMapper.java @@ -14,4 +14,6 @@ List<Integer> queryOutStaNosByLocNo(@Param("locNo") String locNo, @Param("typeNo") Integer typeNo); + StaDesc queryCrnStn(Integer crnNo); + } diff --git a/src/main/java/com/zy/asrs/service/RowLastnoService.java b/src/main/java/com/zy/asrs/service/RowLastnoService.java index dca50fd..66fb173 100644 --- a/src/main/java/com/zy/asrs/service/RowLastnoService.java +++ b/src/main/java/com/zy/asrs/service/RowLastnoService.java @@ -5,4 +5,6 @@ public interface RowLastnoService extends IService<RowLastno> { + RowLastno findBySection(Integer row); + } diff --git a/src/main/java/com/zy/asrs/service/StaDescService.java b/src/main/java/com/zy/asrs/service/StaDescService.java index 4d47cf9..13d18b8 100644 --- a/src/main/java/com/zy/asrs/service/StaDescService.java +++ b/src/main/java/com/zy/asrs/service/StaDescService.java @@ -13,4 +13,6 @@ StaDesc queryCrnStnAuto(Integer typeNo, Integer crnNo, Integer stnNo); + StaDesc queryCrnStn(Integer crnNo); + } diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java index f5c0c1f..239535b 100644 --- a/src/main/java/com/zy/asrs/service/WorkService.java +++ b/src/main/java/com/zy/asrs/service/WorkService.java @@ -85,6 +85,6 @@ /** * 閫氱煡妗f墜鍔ㄧ敓鎴愪换鍔� */ - StartupDto dealPreHaveStart(Integer wrkNo, Long userId); + String dealPreHaveStart(Integer wrkNo, Long userId); } diff --git a/src/main/java/com/zy/asrs/service/impl/RowLastnoServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RowLastnoServiceImpl.java index 1a32cff..4926799 100644 --- a/src/main/java/com/zy/asrs/service/impl/RowLastnoServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/RowLastnoServiceImpl.java @@ -9,4 +9,8 @@ @Service("rowLastnoService") public class RowLastnoServiceImpl extends ServiceImpl<RowLastnoMapper, RowLastno> implements RowLastnoService { + @Override + public RowLastno findBySection(Integer row) { + return this.baseMapper.findBySection(row); + } } diff --git a/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java index c92d7e8..1b995a3 100644 --- a/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java @@ -54,4 +54,9 @@ return staDesc; } + @Override + public StaDesc queryCrnStn(Integer crnNo) { + return this.baseMapper.queryCrnStn(crnNo); + } + } diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index dab964d..0b89c2c 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -13,9 +13,11 @@ import com.zy.asrs.entity.param.LocDetlAdjustParam; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.*; +import com.zy.asrs.utils.Utils; import com.zy.common.model.*; import com.zy.common.model.enums.IoWorkType; import com.zy.common.model.enums.WorkNoType; +import com.zy.common.properties.SlaveProperties; import com.zy.common.service.CommonService; import com.zy.common.web.WcsController; import lombok.extern.slf4j.Slf4j; @@ -69,6 +71,10 @@ private OrderDetlService orderDetlService; @Autowired private WcsController wcsController; + @Autowired + private RowLastnoService rowLastnoService; + @Autowired + private SlaveProperties slaveProperties; @Override @Transactional @@ -881,9 +887,76 @@ } @Override - public StartupDto dealPreHaveStart(Integer wrkNo, Long userId) { + @Transactional + public String dealPreHaveStart(Integer wrkNo, Long userId) { + WrkMast wrkMast = wrkMastService.selectById(wrkNo); + if (wrkMast == null) { + throw new CoolException("浠诲姟宸插け鏁�"); + } + String locNo = wrkMast.getLocNo(); + LocMast locMast = locMastService.selectById(locNo); + assert locMast != null; + RowLastno rowLastno = rowLastnoService.findBySection(locMast.getRow1()); + assert rowLastno != null; - return 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("鎿嶄綔澶辫触锛屽綋鍓嶄粨搴撴壘涓嶅埌绌哄簱浣�"); + } + + // 淇敼宸ヤ綔妗� + StaDesc staDesc = staDescService.queryCrnStn(targetLoc.getCrnNo()); + if (Cools.isEmpty(staDesc)) { + throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�"); + } + wrkMast.setWrkSts(2L); + wrkMast.setLocNo(targetLoc.getLocNo()); + wrkMast.setStaNo(staDesc.getCrnStn()); + if (!wrkMastService.updateById(wrkMast)) { + throw new CoolException("淇敼宸ヤ綔妗eけ璐�"); + } + + return targetLoc.getLocNo(); } } diff --git a/src/main/resources/mapper/RowLastnoMapper.xml b/src/main/resources/mapper/RowLastnoMapper.xml index 45639f6..fd58a60 100644 --- a/src/main/resources/mapper/RowLastnoMapper.xml +++ b/src/main/resources/mapper/RowLastnoMapper.xml @@ -19,4 +19,12 @@ </resultMap> + <select id="findBySection" resultMap="BaseResultMap"> + select * from asr_row_lastno + where 1=1 + and s_row <= #{row} + and e_row >= #{row} + order by (e_row - s_row) + </select> + </mapper> diff --git a/src/main/resources/mapper/StaDescMapper.xml b/src/main/resources/mapper/StaDescMapper.xml index ab8b4c6..6bbea2d 100644 --- a/src/main/resources/mapper/StaDescMapper.xml +++ b/src/main/resources/mapper/StaDescMapper.xml @@ -29,7 +29,13 @@ <if test="typeNo != null and typeNo !=''"> and asd.type_no = #{typeNo} </if> + </select> + <select id="queryCrnStn" resultMap="BaseResultMap"> + select top 1 * from asr_sta_desc + where 1=1 + and crn_no = #{crnNo} + and type_no = 1 </select> </mapper> -- Gitblit v1.9.1