From c3889b92e80992524e0f60371edf775ca7e28922 Mon Sep 17 00:00:00 2001 From: 严智鑫 <test> Date: 星期五, 12 七月 2024 13:50:26 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 122 ++++++++++++++++++++++------------------ 1 files changed, 66 insertions(+), 56 deletions(-) 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 e890fb3..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 @@ -4,6 +4,7 @@ import cn.smallbun.screw.core.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.mes.common.S7object; import com.mes.common.config.Const; import com.mes.device.PlcParameterObject; @@ -29,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; /** @@ -72,8 +70,14 @@ @Value("${mes.maxHeight}") private Integer maxHeight; + @Value("${mes.minWidth}") + private Integer minWidth; - @Scheduled(fixedDelay = 1000) + @Value("${mes.minHeight}") + private Integer minHeight; + + + @Scheduled(fixedDelay = 3000) public void plcHomeEdgTask() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; String requestWord = plcParameterObject.getPlcParameter("requestWord").getValue(); @@ -86,6 +90,7 @@ String confirmationWrodValue = plcParameterObject.getPlcParameter("confirmationWord").getValue(); String confirmationWrodAddress = plcParameterObject.getPlcParameter("confirmationWord").getAddress(); String currentSlot = plcParameterObject.getPlcParameter("currentCell").getValue(); + log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佸垎鍒负锛歡06:{}銆乬08:{}銆乬11:{}銆乬13:{},褰撳墠鏍煎瓙鍙蜂负锛歿}", requestWord, glassIdeValue, confirmationWrodValue, out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, currentSlot); @@ -108,7 +113,7 @@ inTo(glassIdeValue, requestWord, currentSlot); } else if ("2".equals(requestWord)) { //09绌洪棽 锛�1 10绌洪棽 锛�2 閮界┖闂诧細3 鍏朵粬0 - log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�"); + log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛屽嚭鐗囦换鍔�"); outTo(out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, glassIdeValue, currentSlot); } else if ("3".equals(requestWord)) { log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟"); @@ -135,8 +140,8 @@ } Boolean checkFlag = Boolean.FALSE; //鐜荤拑灏哄鏄惁璧颁汉宸ヤ笅鐗� - if (glassInfo.getWidth() > maxWidth || glassInfo.getHeight() > maxHeight) { - log.info("璇ョ幓鐠冨昂瀵歌蛋浜哄伐涓嬬墖,鐩存帴杩涚墖"); + if (glassInfo.getWidth() > maxWidth || glassInfo.getHeight() > maxHeight || glassInfo.getWidth() < minWidth || glassInfo.getHeight() < minHeight) { + log.info("璇ョ幓鐠冨昂瀵镐笉绗﹀悎瑕佹眰锛岄渶瑕佽蛋浜哄伐涓嬬墖鐩存帴杩涚墖"); } else { log.info("璇ョ幓鐠冨昂瀵搁潪浜哄伐涓嬬墖"); //鑾峰彇璇ョ幓鐠冪殑娴佺▼鍗℃槸鍚﹀凡缁戝畾鏋跺瓙 @@ -152,14 +157,11 @@ if (!checkFlag && !isBind) { log.info("璇ョ幓鐠冪殑娴佺▼鍗℃湭缁戝畾鏋跺瓙锛岃幏鍙栨槸鍚︽湁绌烘灦瀛�"); List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() - .isNull(DownWorkstation::getFlowCardId)); + .isNull(DownWorkstation::getFlowCardId).orderByDesc(DownWorkstation::getWorkstationId)); if (CollectionUtils.isNotEmpty(list)) { log.info("鏈夌┖鏋跺瓙,灏嗘祦绋嬪崱涓庢灦瀛愬ソ缁戝畾锛屾墽琛岃繘鐗囦换鍔� 缁撴潫"); //缁戝畾娴佺▼鍗� - downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>() - .set(DownWorkstation::getFlowCardId, glassInfo.getFlowCardId()) - .set(DownWorkstation::getLayer, glassInfo.getLayer()) - .eq(DownWorkstation::getWorkstationId, list.get(0).getWorkstationId())); + downWorkstationService.updateFlowCardIdAndCount(glassInfo.getFlowCardId(), glassInfo.getLayer(), list.get(0).getWorkstationId()); checkFlag = Boolean.TRUE; } } @@ -174,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; } } } @@ -207,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; @@ -236,8 +241,8 @@ return Boolean.FALSE; } Boolean flag08 = "1".equals(out08Glassstate) ? Boolean.TRUE : Boolean.FALSE; - if (!generateTaskByShelf(glassStatus11, flag08, glassStatus13, tempList, cageDetails)) { - return generateTaskByShelf(glassStatus11, !flag08, glassStatus13, tempList, cageDetails); + if (!generateTaskByShelf(glassStatus06, glassStatus11, flag08, glassStatus13, tempList, cageDetails, glassId)) { + return generateTaskByShelf(glassStatus06, glassStatus11, !flag08, glassStatus13, tempList, cageDetails, glassId); } return Boolean.TRUE; } @@ -279,16 +284,17 @@ } } - private Boolean generateTaskByShelf(String glassStatus, Boolean flag08, String glassStatus13, List<DownStorageCageDetails> tempList, DownStorageCageDetails cageDetails) { + private Boolean generateTaskByShelf(String glassStatus06, String glassStatus11, Boolean flag08, String + glassStatus13, List<DownStorageCageDetails> tempList, DownStorageCageDetails cageDetails, String glassId) { //鑾峰彇2涓満姊拌噦鑼冨洿鍐呯殑鏋跺瓙缁戝畾鐨勬祦绋嬪崱淇℃伅 List<Integer> workList = new ArrayList(); if (flag08) { - if (!"2".equals(glassStatus)) { + if (!"2".equals(glassStatus11)) { workList.addAll(Const.G11_WORK_STATION); } } else { - if (!"2".equals(glassStatus)) { + if (!"2".equals(glassStatus06)) { workList.addAll(Const.G06_WORK_STATION); } } @@ -297,7 +303,7 @@ //瀵圭鍐呯幓鐠冭繘琛岃繃婊わ紝浠呭嚭绗﹀悎閫昏緫鐨勭幓鐠� if (CollectionUtils.isNotEmpty(workList)) { List<DownWorkstation> downWorkstationList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() - .eq(DownWorkstation::getEnableState, 0).in(DownWorkstation::getWorkstationId, workList)); + .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, workList)); log.info("鏋跺瓙琚鐢紝鏃犳硶鍑虹墖钀芥灦"); if (CollectionUtils.isEmpty(downWorkstationList)) { log.info("绗煎瓙琚鐢紝鏃犳硶璧版満姊拌噦涓嬬墖"); @@ -348,10 +354,8 @@ List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Boolean.TRUE); List<String> downGlassFlowList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList()); if (CollectionUtils.isEmpty(downGlassFlowList)) { - //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑 - DownStorageCageDetails downStorageCageDetails = downStorageCageDetailsService.getGlassInfoMaxCount(); - //缁戝畾娴佺▼鍗★紝鏇存柊鐜荤拑鐘舵�侊紝鐢熸垚鍑虹墖浠诲姟锛� - tempGlassId = downStorageCageDetails.getGlassId(); + //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖 + tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId); isBind = Boolean.TRUE; break loop; } @@ -362,9 +366,8 @@ // List<DownWorkstation> emptyShelfList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() // .isNull(DownWorkstation::getFlowCardId)); if (isEmptyShelf) { - DownStorageCageDetails downStorageCageDetails = downStorageCageDetailsService.getGlassInfoMaxCount(); - //缁戝畾娴佺▼鍗★紝鏇存柊鐜荤拑鐘舵�侊紝鐢熸垚鍑虹墖浠诲姟 - tempGlassId = downStorageCageDetails.getGlassId(); + //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖 + tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId); isBind = Boolean.TRUE; break loop; } @@ -435,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())) { @@ -443,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; @@ -453,9 +457,7 @@ .isNull(DownWorkstation::getFlowCardId).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1")); if (null != emptyDownWorkstation) { log.info("鑾峰彇鍒扮┖鏋跺瓙淇℃伅锛岀粦瀹氭祦绋嬪崱"); - emptyDownWorkstation.setFlowCardId(downStorageCageDetails.getFlowCardId()); - emptyDownWorkstation.setLayer(downStorageCageDetails.getLayer()); - downWorkstationService.updateById(emptyDownWorkstation); + downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), downStorageCageDetails.getLayer(), emptyDownWorkstation.getWorkstationId()); endCell = emptyDownWorkstation.getWorkstationId(); } else { log.info("娌℃湁绌烘灦瀛愪俊鎭紝鏃犳硶缁戝畾娴佺▼鍗�"); @@ -475,6 +477,13 @@ return Boolean.FALSE; } //鏇存柊钀芥灦鐜荤拑鏁伴噺 + if (endCell == 7) { + downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId()) + .eq("layer", downStorageCageDetails.getLayer()).setSql("other_number = other_number +1")); + } else { + downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId()) + .eq("layer", downStorageCageDetails.getLayer()).setSql("racks_number = racks_number +1")); + } //鐢熸垚浠诲姟淇℃伅 DownGlassInfo downGlassInfo = new DownGlassInfo(); @@ -497,7 +506,7 @@ downGlassTask.setHeight((int) glassInfo.getHeight()); downGlassTask.setFlowCardId(glassInfo.getFlowCardId()); downGlassTask.setLayer(glassInfo.getLayer()); - downGlassTask.setTaskStauts(0); + downGlassTask.setTaskStatus(0); downGlassTask.setCreateTime(new Date()); downGlassTaskService.save(downGlassTask); //鍚憄lc鍙戦�佸懡浠� @@ -505,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); -- Gitblit v1.8.0