From 84dc7fa60ba6c5c412f194bfe22c14e3eceebde4 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 09 六月 2025 10:47:08 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 3 +
src/main/java/com/zy/asrs/service/WrkMastService.java | 2 +
src/main/java/com/zy/asrs/utils/Utils.java | 18 +++++++++
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 24 ++++++++++++
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java | 25 ++++++++++++
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 4 ++
src/main/resources/mapper/WrkMastMapper.xml | 8 ++++
src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 5 ++
8 files changed, 89 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 45ef477..612f0dc 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -109,5 +109,9 @@
WrkMast selectPakoutEmpty(@Param("staNo")Integer outSite);
+ List<WrkMast> selectLaneWrkMastIn();//鏌ヨ鍏ュ簱浠诲姟
+
+ List<WrkMast> selectLaneWrkMastOut();//鏌ヨ鍑哄簱浠诲姟
+
}
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index 67469f8..d8d8e98 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -15,4 +15,6 @@
int getOutToStn182(Integer devpNo);
+ List<WrkMast> selectLaneWrkMast(Integer lane, Boolean pakIn);//鏌ヨ鎸囧畾宸烽亾浠诲姟
+
}
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 5787dcb..404181e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -87,6 +87,8 @@
private BasErrLogService basErrLogService;
@Autowired
private BasCrnErrorMapper basCrnErrorMapper;
+ @Autowired
+ private WrkMastService wrkMastService;
@Value("${wms.url}")
private String wmsUrl;
@@ -722,6 +724,17 @@
continue;
}
+ if (crnProtocol.getCrnNo() == 1) {
+ //鍒ゆ柇鍫嗗灈鏈哄拰褰撳墠浠诲姟鏄惁澶勪簬涓�涓贩閬�
+ if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) {
+ //鍒ゆ柇鍫嗗灈鏈烘墍鍦ㄥ贩閬撴槸鍚﹀瓨鍦ㄥ叾浠栦换鍔★紝濡傚瓨鍦ㄥ垯浼樺厛鎵ц
+ List<WrkMast> currentWrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), false);
+ if (!currentWrkMasts.isEmpty()) {
+ continue;//褰撳墠鍫嗗灈鏈烘墍鍦ㄥ贩閬撳瓨鍦ㄤ换鍔�
+ }
+ }
+ }
+
// 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
News.warnNoLog(""+mark+" - 1"+" - 8"+" - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}",wrkMast.getWrkNo());
@@ -875,6 +888,17 @@
break;
}
+ if (crnProtocol.getCrnNo() == 1) {
+ //鍒ゆ柇鍫嗗灈鏈哄拰褰撳墠浠诲姟鏄惁澶勪簬涓�涓贩閬�
+ if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) {
+ //鍒ゆ柇鍫嗗灈鏈烘墍鍦ㄥ贩閬撴槸鍚﹀瓨鍦ㄥ叾浠栦换鍔★紝濡傚瓨鍦ㄥ垯浼樺厛鎵ц
+ List<WrkMast> currentWrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), false);
+ if (!currentWrkMasts.isEmpty()) {
+ continue;//褰撳墠鍫嗗灈鏈烘墍鍦ㄥ贩閬撳瓨鍦ㄤ换鍔�
+ }
+ }
+ }
+
// 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
News.warnNoLog(""+mark+" - 2"+" - 6"+" - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}",wrkMast.getWrkNo());
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index 8c0b9e9..c1638cd 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -5,8 +5,10 @@
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.utils.Utils;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
@Service("wrkMastService")
@@ -31,4 +33,27 @@
public int getOutToStn182(Integer devpNo) {
return selectCount(new EntityWrapper<WrkMast>().eq("sta_no", devpNo).in("wrk_sts",11,12));
}
+
+ @Override
+ public List<WrkMast> selectLaneWrkMast(Integer lane, Boolean pakIn) {
+ List<WrkMast> list = new ArrayList<>();
+
+ List<WrkMast> wrkMasts = null;
+ if (pakIn) {
+ wrkMasts = this.baseMapper.selectLaneWrkMastIn();
+ }else {
+ wrkMasts = this.baseMapper.selectLaneWrkMastOut();
+ }
+
+ if (wrkMasts == null) {
+ return list;
+ }
+
+ for (WrkMast wrkMast : wrkMasts) {
+ if (Utils.getLaneByLocNo(wrkMast.getIoType() > 100 ? wrkMast.getSourceLocNo() : wrkMast.getLocNo()) == lane) {
+ list.add(wrkMast);
+ }
+ }
+ return list;
+ }
}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index e82cac2..17910d6 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -164,6 +164,24 @@
}
+ /**
+ * 閫氳繃搴撲綅鍙疯幏鍙栨墍鍦ㄥ贩閬�
+ */
+ public static int getLaneByLocNo(String locNo) {
+ int row = Utils.getRow(locNo);
+ switch (row) {
+ case 1:
+ case 2:
+ case 3:
+ return 1;
+ case 4:
+ case 5:
+ case 6:
+ return 2;
+ }
+ return 0;
+ }
+
public static void main(String[] args) {
SlaveProperties slaveProperties = new SlaveProperties();
slaveProperties.setDoubleDeep(true);
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index a63b90b..fff8bc1 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -187,6 +187,11 @@
*/
public Float yDuration;
+ /**
+ * 鍫嗗灈鏈烘墍鍦ㄥ贩閬�
+ */
+ private Integer crnLane = 1;
+
public void setMode(Short mode) {
this.mode = mode;
this.modeType = CrnModeType.get(mode);
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index edbaac5..cdc49e4 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -181,6 +181,9 @@
crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44));
crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
+ if (slave.getId() == 1) {
+ crnProtocol.setCrnLane((int) siemensNet.getByteTransform().TransInt16(result.Content, 56));
+ }
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 53cb7a2..1e68904 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -189,4 +189,12 @@
<select id="selectPakoutEmpty" resultMap="BaseResultMap">
select top 1 * from dbo.asr_wrk_mast where io_type = 110 and sta_no = #{staNo} order by io_time,wrk_no
</select>
+
+ <select id="selectLaneWrkMastIn" resultMap="BaseResultMap">
+ select * from dbo.asr_wrk_mast where wrk_sts=2 and (io_type=1 or io_type=10 or io_type=53 or io_type=54 or io_type=57) order by io_pri desc,io_time,wrk_no ASC
+ </select>
+
+ <select id="selectLaneWrkMastOut" resultMap="BaseResultMap">
+ select * from dbo.asr_wrk_mast where wrk_sts in (11,12,13,14) and io_type>100 order by io_pri desc,io_time,wrk_no asc
+ </select>
</mapper>
--
Gitblit v1.9.1