From 2c08bfb96d6523dfbf5ae543e94495c151aadbf1 Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期五, 14 三月 2025 17:53:18 +0800 Subject: [PATCH] 大屏嵌入历史任务,生产统计显示 --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java | 127 +++++++++++++++++++++++++++++++++++------- 1 files changed, 106 insertions(+), 21 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java index 5745741..8b0232b 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java @@ -9,6 +9,7 @@ import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.service.MiloService; import com.mes.common.config.Const; +import com.mes.damage.service.DamageService; import com.mes.edgglasstask.entity.EdgGlassTaskInfo; import com.mes.edgglasstask.service.EdgGlassTaskInfoService; import com.mes.edgstoragecage.entity.EdgStorageCage; @@ -72,6 +73,8 @@ EdgStorageCageService edgStorageCageService; @Resource EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService; + @Resource + DamageService damageService; @Value("${mes.glassGap}") private int glassGap; @@ -122,17 +125,17 @@ private void startOneOpcTaskChild(String tableName, int device) { EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName); // try { - if (task == null) { - log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�"); - return; - } - if (task.getTaskState() == 2) { - //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠� - task.setGlassIdIn(""); - } + if (task == null) { + log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�"); + return; + } + if (task.getTaskState() == 2) { + //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠� + task.setGlassIdIn(""); + } int request = task.getTaskState(); int taskRunning = task.getTaskRunning(); - log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task); + log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task); if (request == 0) { log.info("璁惧锛歿}鐘舵�侊細{}", device, request); log.info("鏈敹鍒颁换鍔¤姹傦紝缁撴潫鏈浠诲姟"); @@ -155,9 +158,12 @@ log.info("灏嗗惎鍔ㄥ瓙鏀逛负4"); task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING); edgStorageDeviceTaskService.updateTaskMessage(tableName, task); - } else { + } else if (request == 5) { log.info("璁惧锛歿}鐘舵�侊細{}", device, request); finishTask(task, tableName); + } else { + log.info("鐜荤拑寮傚父澶勭悊"); + damageTask(task, tableName); } // } catch (Exception e) { // log.info("鎵ц浠诲姟杩囩▼涓彂鐢熷紓甯革紝浠诲姟瀛梴}锛寋}", task.getTaskState(), e.getMessage()); @@ -478,26 +484,75 @@ Date startDate = new Date(); log.info("寮�濮嬫墽琛屽畬鎴愪换鍔″悗娓呴櫎鍔ㄤ綔锛屼换鍔′俊鎭负锛歿},琛ㄥ悕涓猴細{},寮�濮嬫椂闂达細{}", task, tableName, startDate); Integer cell = task.getStartCell(); - Integer state = task.getTaskState(); task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY); task.setGlassIdOut(""); task.setStartCell(0); - + int device = tableName.equals("edg_storage_device_one_task") ? 1 : 2; EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>() .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW) + .eq(EdgStorageDeviceTaskHistory::getDeviceId, device) .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1")); - int device = tableName.equals("edg_storage_device_one_task") ? 1 : 2; + //濡傛灉浠诲姟绫诲瀷涓�1锛�3锛屽皢鍒囧壊瀹屾垚鐨勭幓鐠冭嚜鍔ㄦ姤宸� + if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskHistory.getTaskType())) { + damageService.autoSubmitReport(taskHistory.getGlassIdIn(), taskHistory.getDeviceId(), "鍒囧壊", "杩涘崸鐞�", 1); + } updateCellRemainWidth(cell, device, taskHistory); edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>() .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW) - .set(EdgStorageDeviceTaskHistory::getTaskState, - Const.GLASS_CACHE_TYPE_FINISH.equals(state) ? Const.RAW_GLASS_TASK_SUCCESS : Const.RAW_GLASS_TASK_FAILURE) + .eq(EdgStorageDeviceTaskHistory::getDeviceId, device) + .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_SUCCESS) ); //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹� edgStorageDeviceTaskService.updateTaskMessage(tableName, task); Date endDate = new Date(); log.info("缁撴潫瀹屾垚浠诲姟鍚庢竻闄ゅ姩浣滐紝琛ㄥ悕涓猴細{},缁撴潫鏃堕棿涓猴細{}锛屽叡鑰楁椂锛歿}ms", tableName, endDate, endDate.getTime() - startDate.getTime()); return Boolean.TRUE; + } + + private boolean damageTask(EdgStorageDeviceTask task, String tableName) { + if (task.getTaskState() <= 5) { + log.info("浠诲姟鏈彂鐢熷紓甯告竻绌猴紝浠诲姟缁撴潫锛岀數姘旂姸鎬亄},mes鐘舵�亄}", task.getTaskState(), task.getTaskRunning()); + return Boolean.FALSE; + } + Date startDate = new Date(); + log.info("寮�濮嬫墽琛屽紓甯稿鐞嗕换鍔″悗娓呴櫎鍔ㄤ綔锛屼换鍔′俊鎭负锛歿},琛ㄥ悕涓猴細{},寮�濮嬫椂闂达細{}", task, tableName, startDate); + int device = tableName.equals("edg_storage_device_one_task") ? 1 : 2; + EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>() + .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW) + .eq(EdgStorageDeviceTaskHistory::getDeviceId, device) + .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1")); + Integer cell = taskHistory.getStartCell(); + Integer taskType = taskHistory.getTaskType(); + if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskType)) { + String glassId = taskHistory.getGlassIdIn(); + edgStorageCageDetailsService.remove(new LambdaQueryWrapper<EdgStorageCageDetails>() + .eq(EdgStorageCageDetails::getDeviceId, device) + .eq(EdgStorageCageDetails::getSlot, cell) + .eq(EdgStorageCageDetails::getGlassId, glassId)); + } else { + String glassId = taskHistory.getGlassIdOut(); + edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>() + .set(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN) + .eq(EdgStorageCageDetails::getDeviceId, device) + .eq(EdgStorageCageDetails::getSlot, cell) + .eq(EdgStorageCageDetails::getGlassId, glassId)); + } + + updateCellRemainWidth(cell, device, taskHistory); + edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>() + .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW) + .eq(EdgStorageDeviceTaskHistory::getDeviceId, device) + .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_FAILURE) + ); + //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹� + task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY); + task.setGlassIdOut(""); + task.setStartCell(0); + edgStorageDeviceTaskService.updateTaskMessage(tableName, task); + Date endDate = new Date(); + log.info("瀹屾垚鎵ц寮傚父澶勭悊浠诲姟鍚庢竻闄ゅ姩浣滐紝琛ㄥ悕涓猴細{},缁撴潫鏃堕棿涓猴細{}锛屽叡鑰楁椂锛歿}ms", tableName, endDate, endDate.getTime() - startDate.getTime()); + return Boolean.TRUE; + } /** @@ -527,13 +582,43 @@ .last("Limit 1"); GlassInfo swapGlassInfo = glassInfoService.getOne(queryWrapper); if (swapGlassInfo != null && !glassInfo.getGlassId().equals(swapGlassInfo.getGlassId())) { - String swapGlassId = swapGlassInfo.getGlassId(); - log.info("灏嗙幓鐠儃}鍜岀幓鐠儃}锛屼俊鎭簰鎹�,杩涚幓鐠� {}", glassInfo, swapGlassInfo, swapGlassInfo); - swapGlassInfo.setGlassId(glassId); - glassInfo.setGlassId(swapGlassId); + //寰呮浛鎹㈢殑鐜荤拑淇℃伅 + Integer ishorizontal = glassInfo.getIshorizontal(); + Integer temperingLayoutId = glassInfo.getTemperingLayoutId(); + Integer temperingFeedSequence = glassInfo.getTemperingFeedSequence(); + Integer xCoordinate = glassInfo.getXCoordinate(); + Integer yCoordinate = glassInfo.getYCoordinate(); + double angle = glassInfo.getAngle(); + Integer ruleId = glassInfo.getRuleId(); + //鏇挎崲鍚庣殑鐜荤拑淇℃伅 + Integer swapIshorizontal = swapGlassInfo.getIshorizontal(); + Integer swapTemperingLayoutId = swapGlassInfo.getTemperingLayoutId(); + Integer swapTemperingFeedSequence = swapGlassInfo.getTemperingFeedSequence(); + Integer swapXCoordinate = swapGlassInfo.getXCoordinate(); + Integer swapYCoordinate = swapGlassInfo.getYCoordinate(); + double swapAngle = swapGlassInfo.getAngle(); + Integer swapRuleId = swapGlassInfo.getRuleId(); + //鏇挎崲鐜荤拑淇℃伅 + glassInfo.setIshorizontal(swapIshorizontal); + glassInfo.setTemperingLayoutId(swapTemperingLayoutId); + glassInfo.setTemperingFeedSequence(swapTemperingFeedSequence); + glassInfo.setXCoordinate(swapXCoordinate); + glassInfo.setYCoordinate(swapYCoordinate); + glassInfo.setAngle(swapAngle); + glassInfo.setRuleId(swapRuleId); + + swapGlassInfo.setIshorizontal(ishorizontal); + swapGlassInfo.setTemperingLayoutId(temperingLayoutId); + swapGlassInfo.setTemperingFeedSequence(temperingFeedSequence); + swapGlassInfo.setXCoordinate(xCoordinate); + swapGlassInfo.setYCoordinate(yCoordinate); + swapGlassInfo.setAngle(angle); + swapGlassInfo.setRuleId(ruleId); + + log.info("灏嗙幓鐠儃}鍜岀幓鐠儃}锛屼俊鎭簰鎹�(鍘熺墖搴忓彿鍙婂潗鏍囬櫎澶�),杩涚幓鐠� {}", glassInfo, swapGlassInfo, swapGlassInfo); glassInfoService.updateById(swapGlassInfo); glassInfoService.updateById(glassInfo); - return swapGlassId; + return swapGlassInfo.getGlassId(); } return ""; } @@ -614,7 +699,7 @@ return Boolean.TRUE; } - private boolean updateCellRemainWidth(int slot, int device, EdgStorageDeviceTaskHistory taskHistory) { + public boolean updateCellRemainWidth(int slot, int device, EdgStorageDeviceTaskHistory taskHistory) { List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot, slot) .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)); int remainWidth = cellLength; -- Gitblit v1.8.0