From 07c572bea979dbd3ee46ec24083cb1bdcc014e3a Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期五, 05 七月 2024 13:56:50 +0800
Subject: [PATCH] 一期找库位方法修改
---
src/main/resources/mapper/LocMastMapper.xml | 22 ++++++++++
src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 8 ++++
src/main/java/com/zy/common/web/WcsController.java | 11 +++--
src/main/java/com/zy/common/service/CommonService.java | 71 ++++++++++++++++++++++++++++++++++-
4 files changed, 103 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index db1c6b9..50e169a 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -46,4 +46,12 @@
LocMast queryEmptyLocNoByStaNo(@Param("crnNo") int crnNo);
LocMast queryLocByBarCode(@Param("row") int row);
+
+ /**
+ * 鑾峰彇婊¤冻鏉′欢鐨勭┖搴撲綅
+ * @param devpNo 鍏ュ簱绔欑偣
+ * @param flag 灞傛爣璇嗭紝1琛ㄧず鍘�1-6灞傦紝2鍘昏〃绀�7-11灞�
+ * @return 搴撲綅
+ */
+ LocMast queryLocByBarCodeNew(@Param("devpNo") int devpNo, @Param("flag") int flag);
}
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index ac2e0a7..6995422 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -511,12 +511,17 @@
public StartupDto emptyIngetLocNo(Integer devpNo) {
int crnNo = 0;
- // 鐩爣搴撲綅
- LocMast locMast = null;
+
if (devpNo == 304) {
crnNo = 3;
- locMast = locMastMapper.queryEmptyLocNoByStaNo(crnNo);
+ } else if(devpNo == 204) {
+ crnNo = 2;
+ } else if(devpNo == 104) {
+ crnNo = 1;
}
+
+ // 鐩爣搴撲綅
+ LocMast locMast = locMastMapper.queryEmptyLocNoByStaNo(crnNo);
if (locMast == null) {
throw new CoolException("娌℃湁绌哄簱浣�");
@@ -598,4 +603,64 @@
startupDto.setLocNo(locMast.getLocNo());
return startupDto;
}
+
+ /**
+ * 涓�鏈熷鎵惧簱浣�
+ * 1-6灞� 鏉$爜1鎴栬��2寮�澶�
+ * 7-11灞� 鏉$爜8寮�澶�
+ * @param ioType 1.鍏ュ簱
+ * @param devpNo 鍏ュ簱绔欑偣
+ * @param barcode 鏉$爜
+ * @return 搴撲綅淇℃伅
+ */
+ public StartupDto getLocNoNew(int ioType, Integer devpNo, String barcode) {
+ char type = barcode.charAt(0);
+ int flag = 0;
+ if (type == '1' || type == '2') {
+ flag = 1;
+ } else if( type == '8') {
+ flag = 2;
+ }
+ if (flag == 0) {
+ throw new CoolException("鏉$爜鏈夎锛�" + barcode);
+ }
+
+ // 鐩爣搴撲綅
+ LocMast locMast = locMastMapper.queryLocByBarCodeNew(devpNo,flag);
+ if (locMast == null) {
+ throw new CoolException("鍏ュ簱娌℃湁绌哄簱浣�");
+ }
+
+ // 鍫嗗灈鏈哄彿
+ Integer crnNo = locMast.getCrnNo();
+
+ // 鑾峰彇鐩爣绔�
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", ioType)
+ .eq("stn_no", devpNo)
+ .eq("crn_no", crnNo);
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ log.error("鍏ュ簱璺緞涓嶅瓨鍦�, staDescId={}, sourceStaNo={}, crnNo={}", 1, devpNo, crnNo);
+ throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+ }
+
+ // 妫�娴嬬洰鏍囩珯
+ BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
+ if (!staNo.getAutoing().equals("Y")) {
+ throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
+ }
+
+ basCrnpService.checkSiteStatus(crnNo, true);
+
+ // 杩斿洖dto
+ StartupDto startupDto = new StartupDto();
+ startupDto.setWorkNo(getWorkNo(0));
+ startupDto.setCrnNo(crnNo);
+ startupDto.setSourceStaNo(devpNo);
+ startupDto.setStaNo(devpNo);
+ startupDto.setLocNo(locMast.getLocNo());
+ return startupDto;
+
+ }
}
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 4946169..c99bb49 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -127,7 +127,8 @@
if (devpNo == 304) {
dto = commonService.getLocNoBy304(str5.get(0));
} else {
- dto = commonService.getLocNo(1, 1, devpNo, false, matNos, locTypeDto,0);
+// dto = commonService.getLocNo(1, 1, devpNo, false, matNos, locTypeDto,0);
+ dto = commonService.getLocNoNew(1, devpNo,barcode);
}
int workNo = dto.getWorkNo();
@@ -197,11 +198,11 @@
BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
StartupDto dto;
- if (devpNo >= 300) {
+// if (devpNo >= 300) {
dto = commonService.emptyIngetLocNo(devpNo);
- } else {
- dto = commonService.getLocNo(1, 10, devpNo, true, null, locTypeDto, 0);
- }
+// } else {
+// dto = commonService.getLocNo(1, 10, devpNo, true, null, locTypeDto, 0);
+// }
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 5aa38d2f..66c977c 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -183,7 +183,7 @@
SELECT TOP 1 loc_no AS locNo,crn_no AS crnNo FROM asr_loc_mast
where loc_sts = 'O'
<if test="crnNo == 1">
- and row1 in(1,2)
+ and row1 in(1,2,3)
</if>
<if test="crnNo == 2">
and row1 in(5,6)
@@ -197,4 +197,24 @@
SELECT TOP 1 loc_no AS locNo,crn_no AS crnNo FROM asr_loc_mast
where loc_sts = 'O' and row1 = #{row} ORDER BY lev1 ASC, bay1 ASC
</select>
+ <select id="queryLocByBarCodeNew" resultType="com.zy.asrs.entity.LocMast">
+ SELECT TOP 1 loc_no AS locNo,crn_no AS crnNo FROM asr_loc_mast
+ where loc_sts = 'O' and bay1 not in(1,39)
+ <if test="devpNo == 104">
+ and row1 in(1,2,3)
+ </if>
+ <if test="devpNo == 204">
+ and row1 in(4,5)
+ </if>
+ <if test="devpNo == 304">
+ and row1 in(6,7)
+ </if>
+ <if test="flag == 1">
+ and lev1 in(1,2,3,4,5,6)
+ </if>
+ <if test="flag == 2">
+ and lev1 in(7,8,9,10,11)
+ </if>
+ ORDER BY lev1 ASC, bay1 ASC
+ </select>
</mapper>
--
Gitblit v1.9.1