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