From d5d0d1c7a84b996b9bbcebfaf2c2c95f1a5a3678 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期五, 11 十月 2024 08:39:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 119 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 81 insertions(+), 38 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java index d076724..e5d34d7 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java @@ -6,10 +6,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.github.yulichang.query.MPJQueryWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.mes.common.S7object; import com.mes.common.config.Const; +import com.mes.damage.entity.Damage; +import com.mes.damage.service.DamageService; import com.mes.device.PlcParameterObject; import com.mes.edgglasstask.entity.EdgGlassTaskInfo; import com.mes.edgglasstask.service.EdgGlassTaskInfoService; @@ -34,6 +37,7 @@ import java.util.Date; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @Author : zhoush @@ -58,6 +62,8 @@ @Autowired WebSocketServer webServerService; + @Autowired + DamageService damageService; @Value("${mes.threshold}") private int threshold; @@ -131,7 +137,7 @@ //鍔犵瀛愰噷闈㈡槸鍚︽湁鐜荤拑锛屾湁鍏堝嚭锛屾棤鐜荤拑鍏堣繘 boolean outFlase = outTo(Integer.parseInt(out08Glassstate), Integer.parseInt(out10Glassstate), confirmationWrodAddress, glassIdeValue, Integer.parseInt(currentSlot)); - log.info("鍑虹墖浠诲姟鏄惁瀹屾垚锛歿},澶辫触涓旂幓鐠僫d:{}涓嶄负绌哄垯鎵ц杩涚墖浠诲姟", outFlase, glassIdeValue); + log.info("鍑虹墖浠诲姟鏄惁瀹屾垚锛歿},涓旂幓鐠僫d:{}涓嶄负绌哄垯鎵ц杩涚墖浠诲姟", outFlase, glassIdeValue); if (!outFlase && StringUtils.isNotBlank(glassIdeValue)) { inTo(glassIdeValue, confirmationWrodAddress, currentSlot); } @@ -140,23 +146,36 @@ log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime()); } + @Scheduled(fixedDelay = 1000) - public void temperingIsRun() { - JSONObject jsonObject = new JSONObject(); - //姝e湪杩涜鐨勪换鍔� - List<TaskCache> taskCaches = taskCacheService.selectTaskCacheIsRun(); - jsonObject.append("taskCaches", taskCaches); - ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun"); - if (sendwServer != null) { - for (WebSocketServer webserver : sendwServer) { - if (webserver != null) { - webserver.sendMessage(jsonObject.toString()); - } else { - log.info("Home is closed"); - } - } + public void dealDamageTask() { + Date startDate = new Date(); + log.info("鍗у紡鐞嗙墖鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate); + List<TaskCache> taskCacheList = taskCacheService.list(new LambdaQueryWrapper<TaskCache>().in(TaskCache::getTaskStatus, Const.GLASS_STATE_DAMAGE_TAKE) + .in(TaskCache::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL)); + if (CollectionUtils.isNotEmpty(taskCacheList)) { + //鑾峰彇鐮存崯/鎷胯蛋鐜荤拑id + List<String> glassList = taskCacheList.stream().map(TaskCache::getGlassId).collect(Collectors.toList()); + //灏嗙(杈归槦鍒楃殑鏁版嵁鍒犻櫎 + edgGlassTaskInfoService.remove(new LambdaQueryWrapper<EdgGlassTaskInfo>().in(EdgGlassTaskInfo::getGlassId, glassList)); + //灏嗕换鍔¤〃涓殑鏁版嵁鍒犻櫎 + taskCacheService.remove(new LambdaQueryWrapper<TaskCache>().in(TaskCache::getGlassId, glassList).in(TaskCache::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL)); + List<Damage> damageList = taskCacheList.stream().map(e -> { + Damage damage = new Damage(); + damage.setGlassId(e.getGlassId()); + damage.setLine(e.getEndCell()); + damage.setWorkingProcedure("鍐峰姞宸�"); + damage.setRemark("纾ㄨ竟鍓嶅崸寮忕悊鐗�"); + damage.setStatus(0); + damage.setType(e.getTaskStatus()); + return damage; + }).collect(Collectors.toList()); + damageService.batchInsertDamage(damageList); } + Date endDate = new Date(); + log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime()); } + /** * 杩涚墖浠诲姟 @@ -174,21 +193,23 @@ //鏌ヨ鐜荤拑骞惰繘琛屼氦鎹� GlassInfo glassInfo = queryAndChangeGlass(glassId); - log.info("3銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo); + if (glassInfo == null) { + return; + } + log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo); EdgStorageCageDetails details = new EdgStorageCageDetails(); BeanUtils.copyProperties(glassInfo, details); details.setState(Const.GLASS_STATE_IN); details.setSlot(nearestEmpty.getSlot()); details.setDeviceId(nearestEmpty.getDeviceId()); edgStorageCageDetailsService.save(details); - log.info("4銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details); + log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details); //娣诲姞杩涚墖浠诲姟 boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN); - log.info("5銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache); + log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache); S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1); - log.info("6銆佸彂閫佺‘璁ゅ瓧瀹屾垚"); - + log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚"); } @@ -202,6 +223,10 @@ GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); // .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1")); Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�"); + if ((glassInfo.getWidth() < Double.parseDouble(minTwoFirstLength) && glassInfo.getHeight() < Double.parseDouble(minTwoSecondLength)) || (glassInfo.getWidth() < Double.parseDouble(minTwoSecondLength) && glassInfo.getHeight() < Double.parseDouble(minTwoFirstLength))) { + log.info("3銆佺幓鐠冧俊鎭笉绗﹀悎杩涘叆鐞嗙墖绗兼渶灏忓昂瀵革紝鐜荤拑淇℃伅涓簕}", glassInfo); + return null; + } //鎸夌収鐜荤拑灏哄 LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>() .eq(GlassInfo::getWidth, glassInfo.getWidth()) @@ -531,7 +556,7 @@ if (endcell == Const.A10_OUT_TARGET_POSITION) { wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " + "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " + - "on t.glass_id = t1.glass_id and (t1.first_length >= " + minOneFirstLength + " and t1.second_length >= " + minOneSecondLength); + "on t.glass_id = t1.glass_id and (t1.first_length >= " + minOneFirstLength + " and t1.second_length >= " + minOneSecondLength + ")"); } else { wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " + "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " + @@ -628,6 +653,13 @@ log.info("7銆佹坊鍔犲嚭鐗囩幓鐠冨昂瀵镐俊鎭埌纾ㄨ竟鍓嶇幓鐠冭〃鏄惁瀹屾垚锛歿}", glassSizeStatus); S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1); log.info("8銆佸彂閫佺‘璁ゅ瓧宸插畬鎴�"); + Damage damage=new Damage(); + damage.setGlassId(glassInfo.getGlassId()); + damage.setWorkingProcedure("鍒囧壊"); + damage.setLine(1001); + damage.setType(1); + damage.setRemark("杩囧崸寮忕悊鐗�"); + damageService.insertDamage(damage); return Boolean.TRUE; } return Boolean.FALSE; @@ -654,7 +686,7 @@ } /** - * 娣诲姞鐞嗙墖绗间换鍔� + * 娣诲姞纾ㄨ竟闃熷垪淇℃伅 * * @param glassInfo * @param endcell @@ -700,22 +732,8 @@ public void CacheGlassTasks() { JSONObject jsonObject = new JSONObject(); List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory(); -// List<Map<String, Object>> currentCutTerritorys=new ArrayList<>(); -// if(engineerId==null||engineerId.isEmpty()){ -// //璇嗗埆鎽嗙墖 褰撳墠鐗堝浘鏁版嵁 -// currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory(); -// }else{ -// //璇嗗埆鎽嗙墖 姝ngineerId 宸ョ▼鐗堝浘鏁版嵁 -// currentCutTerritorys = edgStorageCageDetailsService.selectCurrentCutTerritory(engineerId); -// } jsonObject.append("currentCutTerritory", currentCutTerritorys); //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys); - //纾ㄨ竟淇℃伅 - List<Map<String, Object>> EdgTasks1 = taskCacheService.selectEdgInfo("2001"); - List<Map<String, Object>> EdgTasks2 = taskCacheService.selectEdgInfo("2002"); - jsonObject.append("EdgTasks1", EdgTasks1); - jsonObject.append("EdgTasks2", EdgTasks2); - //鍗у缂撳瓨绗煎唴淇℃伅 List<Map<String, Object>> EdgStorageCageinfos = edgStorageCageService.selectEdgStorageCages(); jsonObject.append("EdgStorageCageinfos", EdgStorageCageinfos); @@ -736,11 +754,12 @@ } } } + @Scheduled(fixedDelay = 1000) - public void cacheGlassIsRun(){ + public void cacheGlassIsRun() { JSONObject jsonObject = new JSONObject(); //姝e湪杩涜鐨勪换鍔� - List<TaskCache>taskCaches=taskCacheService.selectTaskCacheIsRun(); + List<EdgGlassTaskInfo> taskCaches = edgGlassTaskInfoService.selectTaskCacheIsRun(); jsonObject.append("taskCaches", taskCaches); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlassIsRun"); if (sendwServer != null) { @@ -754,4 +773,28 @@ } } + @Scheduled(fixedDelay = 1000) + public void CacheGlassTaskss() { + JSONObject jsonObject = new JSONObject(); + //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys); + //纾ㄨ竟淇℃伅 + List<EdgGlassTaskInfo> edgTasks = edgGlassTaskInfoService.selectEdgInfo(); + jsonObject.append("edgTasks", edgTasks); + + ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("edgTasks"); + if (sendwServer != null) { + for (WebSocketServer webserver : sendwServer) { + if (webserver != null) { + webserver.sendMessage(jsonObject.toString()); + List<String> messages = webserver.getMessages(); + if (!messages.isEmpty()) { + // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛� + webserver.clearMessages(); + } + } else { + log.info("edgTasks is closed"); + } + } + } + } } -- Gitblit v1.8.0