From c1ad529b3d450a1762cb957d81b80d57e475a7dd Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期六, 28 十二月 2024 14:49:36 +0800
Subject: [PATCH] 1、卧式理片笼新增重置接口,供前端使用 2、与电气交互新增状态6用于电气手动汇报后将任务重置,避免任务无法重置导致车间无法生产
---
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskService.java | 2
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java | 57 +++++++++++++++++-
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskServiceImpl.java | 65 ++++++++++++++++++++-
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceController.java | 30 ++++++++++
4 files changed, 146 insertions(+), 8 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 2cb907c..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
@@ -158,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());
@@ -481,7 +484,6 @@
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);
@@ -498,14 +500,59 @@
edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
.eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
.eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
- .set(EdgStorageDeviceTaskHistory::getTaskState,
- Const.GLASS_CACHE_TYPE_FINISH.equals(state) ? Const.RAW_GLASS_TASK_SUCCESS : Const.RAW_GLASS_TASK_FAILURE)
+ .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;
+
}
/**
@@ -652,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;
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceController.java
index 5021252..39fb4b2 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceController.java
@@ -1,9 +1,39 @@
package com.mes.opctask.controller;
+import com.mes.opctask.service.EdgStorageDeviceTaskService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
/**
* @Author : zhoush
* @Date: 2024/10/24 15:35
* @Description:
*/
+@Api(tags = "鍗у紡鐞嗙墖绗间换鍔�")
+@RestController
+@RequestMapping("edgStorageDeviceTask")
public class EdgStorageDeviceController {
+
+ /**
+ * 鏈嶅姟瀵硅薄
+ */
+ @Resource
+ private EdgStorageDeviceTaskService edgStorageDeviceTaskService;
+
+ @ApiOperation(value = "閲嶇疆浠诲姟锛氭寜鐓ц澶噄d閲嶇疆浠诲姟")
+ @PostMapping("/resetTask")
+ public Result<Boolean> resetTask(Integer deviceId) {
+ Boolean flag = edgStorageDeviceTaskService.resetTask(deviceId);
+ if (flag) {
+ return Result.build(200, "閲嶇疆鎴愬姛", flag);
+ } else {
+ return Result.build(200, "鏃犱换鍔★紝鏃犻渶閲嶇疆", flag);
+ }
+ }
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskService.java
index 78b51f2..d7fad87 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskService.java
@@ -18,4 +18,6 @@
boolean updateTaskMessage(String tableName, EdgStorageDeviceTask edgStorageDeviceTask);
+ Boolean resetTask(Integer deviceId);
+
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskServiceImpl.java
index 46691ce..4e13ea7 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskServiceImpl.java
@@ -1,7 +1,15 @@
package com.mes.opctask.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.mes.common.config.Const;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.job.OpcCacheGlassTask;
import com.mes.opctask.entity.EdgStorageDeviceTask;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
import com.mes.opctask.mapper.EdgStorageDeviceTaskMapper;
+import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
import com.mes.opctask.service.EdgStorageDeviceTaskService;
import org.springframework.stereotype.Service;
@@ -14,12 +22,20 @@
*/
@Service
public class EdgStorageDeviceTaskServiceImpl implements EdgStorageDeviceTaskService {
-// @Override
-// public void updateTaskMessage(Integer slot, Integer taskRunning, String glassIdOut) {
- // }
+
+ private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
+
+ private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task";
+
+ @Resource
+ private EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
+ @Resource
+ private EdgStorageCageDetailsService edgStorageCageDetailsService;
@Resource
EdgStorageDeviceTaskMapper edgStorageDeviceTaskMapper;
+ @Resource
+ OpcCacheGlassTask opcCacheGlassTask;
@Override
public EdgStorageDeviceTask queryTaskMessage(String tableName) {
@@ -30,4 +46,47 @@
public boolean updateTaskMessage(String tableName, EdgStorageDeviceTask edgStorageDeviceTask) {
return edgStorageDeviceTaskMapper.updateTaskMessage(tableName, edgStorageDeviceTask);
}
+
+
+ @Override
+ public Boolean resetTask(Integer deviceId) {
+ String tableName = deviceId == 1 ? EDG_STORAGE_DEVICE_ONE_TASK : EDG_STORAGE_DEVICE_TWO_TASK;
+ EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+ .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+ .eq(EdgStorageDeviceTaskHistory::getDeviceId, deviceId)
+ .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+ if (taskHistory == null) {
+ return Boolean.FALSE;
+ }
+ 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, deviceId)
+ .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, deviceId)
+ .eq(EdgStorageCageDetails::getSlot, cell)
+ .eq(EdgStorageCageDetails::getGlassId, glassId));
+ }
+
+ opcCacheGlassTask.updateCellRemainWidth(cell, deviceId, taskHistory);
+ edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
+ .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+ .eq(EdgStorageDeviceTaskHistory::getDeviceId, deviceId)
+ .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_FAILURE)
+ );
+ //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹�
+ EdgStorageDeviceTask task = new EdgStorageDeviceTask();
+ task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+ task.setGlassIdOut("");
+ task.setStartCell(0);
+ this.updateTaskMessage(tableName, task);
+ return Boolean.TRUE;
+ }
}
--
Gitblit v1.8.0