From 43d838bbe517a7b8ec68685755037ec78d0e6edc Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期四, 11 七月 2024 14:21:35 +0800 Subject: [PATCH] 下篇逻辑调整:1、fixbug:进片玻璃存在可替换玻璃未进行替换 2、添加方式注释说明 --- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java | 21 +++++++++- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml | 24 +++++------ hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/dto/DownGlassInfoDTO.java | 7 +++ hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 65 +++++++++++++++++--------------- 4 files changed, 70 insertions(+), 47 deletions(-) diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java index fac40d1..1a6ba68 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java @@ -10,11 +10,28 @@ @Repository public interface DownGlassInfoMapper extends BaseMapper<DownGlassInfo> { - - + /** + * 鎸夋祦绋嬪崱鏌ヨ钀芥灦鏁伴噺鏈�澶氱殑娴佺▼鍗″強灞傛暟 + * + * @param flowCardId + * @return + */ DownGlassInfoDTO queryDownGlassMaxLayer(@Param(value = "flowCardId") String flowCardId); + /** + * 鏌ヨ娴佺▼鍗℃寚瀹氬眰鏁伴渶瑕佽惤鏋剁殑娆″簭 + * + * @param flowCardId + * @param layer + * @return + */ Integer queryMaxSequence(@Param(value = "flowCardId") String flowCardId, @Param(value = "layer") int layer); + /** + * 鑾峰彇钀芥灦鐜荤拑淇℃伅锛屽寘鎷凡缁戝畾娴佺▼鍗°�佸眰鏁版湭钀芥灦鐨勭幓鐠冧俊鎭� + * + * @param isDownload 鏄惁鑾峰彇鏈惤鏋剁幓鐠冧俊鎭� True 宸茶惤鏋� false 鏈惤鏋� + * @return + */ List<DownGlassInfoDTO> queryWorkStationIsIn(@Param(value = "isDownload") Boolean isDownload); } diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/dto/DownGlassInfoDTO.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/dto/DownGlassInfoDTO.java index dc3fe51..7d9a7c0 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/dto/DownGlassInfoDTO.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/dto/DownGlassInfoDTO.java @@ -21,11 +21,16 @@ */ private Integer layer; /** - * 钀芥灦鏁伴噺 + * 宸插嚭鐗囨暟閲� */ private Integer count; /** + * 钀芥灦鏁伴噺 + */ + private Integer racksNumber; + + /** * 娴佺▼鍗℃湭杩涚墖鐨勭幓鐠冧俊鎭� */ private List<GlassInfo> glassInfoList; diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java index 1e79b15..686084b 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java @@ -30,10 +30,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -179,27 +176,28 @@ endLoop: for (DownGlassInfoDTO e : downGlassInfoDTOList) { List<GlassInfo> glassInfoList = e.getGlassInfoList(); - for (GlassInfo item : glassInfoList) { - if (item.getWidth() == glassInfo.getWidth() && item.getHeight() == glassInfo.getHeight() - && item.getThickness() == glassInfo.getThickness() && item.getFilmsid().equals(glassInfo.getFilmsid())) { - //鐜荤拑鏄惁涓哄灞� - checkFlag = multilayerCheck(item, Boolean.FALSE); - if (checkFlag) { - //鐜荤拑鏇挎崲 浠呮浛鎹㈡祦绋嬪崱id鍙婂眰鏁� - String tempFlowCardId = item.getFlowCardId(); - Integer tempLayer = item.getLayer(); - String flowCardId = glassInfo.getFlowCardId(); - Integer layer = glassInfo.getLayer(); - log.info("鏇挎崲娴佺▼鍗′俊鎭�,褰撳墠鐜荤拑淇℃伅:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗},鏇挎崲鍚庣幓鐠冧俊鎭�:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗}", - item, glassInfo, flowCardId, layer, tempFlowCardId, tempLayer); - glassInfo.setFlowCardId(tempFlowCardId); - glassInfo.setLayer(tempLayer); - glassInfoService.updateById(glassInfo); - item.setFlowCardId(flowCardId); - item.setLayer(layer); - glassInfoService.updateById(item); - break endLoop; - } + Optional<GlassInfo> glassInfoTempOptional = glassInfoList.stream().filter(item -> item.getWidth() == glassInfo.getWidth() && item.getHeight() == glassInfo.getHeight() + && item.getThickness() == glassInfo.getThickness() && item.getFilmsid().equals(glassInfo.getFilmsid())) + .findFirst(); + if (glassInfoTempOptional.isPresent()) { + GlassInfo item = glassInfoTempOptional.get(); + //鐜荤拑鏄惁涓哄灞� + checkFlag = multilayerCheck(item, Boolean.FALSE); + if (checkFlag) { + //鐜荤拑鏇挎崲 浠呮浛鎹㈡祦绋嬪崱id鍙婂眰鏁� + String tempFlowCardId = item.getFlowCardId(); + Integer tempLayer = item.getLayer(); + String flowCardId = glassInfo.getFlowCardId(); + Integer layer = glassInfo.getLayer(); + log.info("鏇挎崲娴佺▼鍗′俊鎭�,褰撳墠鐜荤拑淇℃伅:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗},鏇挎崲鍚庣幓鐠冧俊鎭�:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗}", + item, glassInfo, flowCardId, layer, tempFlowCardId, tempLayer); + glassInfo.setFlowCardId(tempFlowCardId); + glassInfo.setLayer(tempLayer); + glassInfoService.updateById(glassInfo); + item.setFlowCardId(flowCardId); + item.setLayer(layer); + glassInfoService.updateById(item); + break endLoop; } } } @@ -212,11 +210,13 @@ downStorageCageDetails.setState(Const.GLASS_STATE_IN); downStorageCageDetails.setSlot(nearestEmpty.getSlot()); downStorageCageDetailsService.save(downStorageCageDetails); -// 鐢熸垚杩涚墖浠诲姟 + + // 鐢熸垚杩涚墖浠诲姟 initDownGlassTask(glassInfo, 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN); } - public Boolean outTo(String glassStatus06, String out08Glassstate, String glassStatus11, String glassStatus13, String glassId, String currentSlot) { + public Boolean outTo(String glassStatus06, String out08Glassstate, String glassStatus11, String + glassStatus13, String glassId, String currentSlot) { if ("2".equals(glassStatus06) && "2".equals(glassStatus11) && "2".equals(glassStatus13)) { log.info("G06銆丟11銆丟13鍒嗗埆涓簕},{}銆亄}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", glassStatus06, glassStatus11, glassStatus13); return Boolean.FALSE; @@ -284,7 +284,8 @@ } } - private Boolean generateTaskByShelf(String glassStatus06, String glassStatus11, Boolean flag08, String glassStatus13, List<DownStorageCageDetails> tempList, DownStorageCageDetails cageDetails, String glassId) { + private Boolean generateTaskByShelf(String glassStatus06, String glassStatus11, Boolean flag08, String + glassStatus13, List<DownStorageCageDetails> tempList, DownStorageCageDetails cageDetails, String glassId) { //鑾峰彇2涓満姊拌噦鑼冨洿鍐呯殑鏋跺瓙缁戝畾鐨勬祦绋嬪崱淇℃伅 List<Integer> workList = new ArrayList(); @@ -437,7 +438,8 @@ } } - public Boolean generateDownGlassOutTask(String glassId, Integer taskType, Boolean isBind, DownStorageCageDetails cageDetails) { + public Boolean generateDownGlassOutTask(String glassId, Integer taskType, Boolean + isBind, DownStorageCageDetails cageDetails) { //鎸夌幓鐠僫d鑾峰彇鐜荤拑淇℃伅 DownStorageCageDetails downStorageCageDetails = null; if (glassId.equals(cageDetails.getGlassId())) { @@ -445,7 +447,7 @@ taskType = 3; } else { downStorageCageDetails = downStorageCageDetailsService.getOne(new LambdaQueryWrapper<DownStorageCageDetails>() - .eq(DownStorageCageDetails::getGlassId, glassId)); + .eq(DownStorageCageDetails::getGlassId, glassId).eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN)); } Integer endCell = null; @@ -512,7 +514,8 @@ startCell, endCell, taskType); } - private Boolean sendMessageToPlc(int width, int height, int thickness, int startCell, int endCell, int taskType) { + private Boolean sendMessageToPlc(int width, int height, int thickness, int startCell, int endCell, + int taskType) { S7control s7control = S7object.getinstance().plccontrol; PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject; s7control.writeWord(plcMesObject.getPlcParameter("Glass_width").getAddress(), width); diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml index 76a9216..1930840 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml @@ -10,7 +10,7 @@ <resultMap id="downGlassInfo" type="com.mes.downworkstation.entity.dto.DownGlassInfoDTO"> <result column="flow_card_id" property="flowCardId"/> <result column="layer" property="layer"/> - <result column="count" property="count"/> + <result column="racks_number" property="racksNumber"/> <collection property="glassInfoList" ofType="com.mes.glassinfo.entity.GlassInfo"> <id column="id" property="id"/> <result column="flow_card_id" property="flowCardId"/> @@ -45,31 +45,29 @@ </select> <select id="queryWorkStationIsIn" resultMap="downGlassInfo"> - SELECT T.* + SELECT + T.FLOW_CARD_ID, + T.LAYER, + T.RACKS_NUMBER <if test="!isDownload"> ,T1.* </if> - FROM ( - SELECT T.FLOW_CARD_ID, - T.LAYER, - COUNT(T.LAYER) AS COUNT FROM DOWN_WORKSTATION T - LEFT JOIN DOWN_GLASS_INFO T1 ON T.FLOW_CARD_ID = T1.FLOW_CARD_ID - GROUP BY T.FLOW_CARD_ID,LAYER - HAVING T.FLOW_CARD_ID IS NOT NULL - ) T INNER JOIN GLASS_INFO T1 ON T.FLOW_CARD_ID = T1.FLOW_CARD_ID AND T.LAYER = T1.LAYER LEFT JOIN DOWN_GLASS_INFO T2 ON T1.GLASS_ID = T2.GLASS_ID <where> - <if test="isDownload"> + <if test="!isDownload"> AND T2.GLASS_ID IS NULL </if> - <if test="!isDownload"> + <if test="isDownload"> AND T2.GLASS_ID IS not NULL </if> </where> - order by t.count desc + ORDER BY + T.RACKS_NUMBER DESC, + T1.TEMPERING_LAYOUT_ID, + T1.TEMPERING_FEED_SEQUENCE DESC </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0