From 9528744b1db4b4c63beac11aa70c2c2f547858b6 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 11 十二月 2025 16:09:56 +0800
Subject: [PATCH] #AGV任务转历史档
---
src/main/java/com/zy/asrs/mapper/TaskMapper.java | 3 +
src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java | 5 +
src/main/resources/application-dev.yml | 2
src/main/java/com/zy/asrs/task/WorkLogScheduler.java | 20 ++++++
src/main/resources/mapper/TaskMapper.xml | 7 ++
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | 107 ++++++++++++++++++++++++++++++++++-
src/main/java/com/zy/asrs/service/TaskService.java | 3 +
7 files changed, 143 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/TaskMapper.java b/src/main/java/com/zy/asrs/mapper/TaskMapper.java
index 1d11dfa..2b0a5a0 100644
--- a/src/main/java/com/zy/asrs/mapper/TaskMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/TaskMapper.java
@@ -2,6 +2,7 @@
import com.zy.asrs.entity.Task;
import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.WrkMast;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@@ -12,4 +13,6 @@
public interface TaskMapper extends BaseMapper<Task> {
List<Task> selectToBeCompleteData();
+
+ List<Task> selectToBeHistoryData();
}
diff --git a/src/main/java/com/zy/asrs/service/TaskService.java b/src/main/java/com/zy/asrs/service/TaskService.java
index e510b48..5ded268 100644
--- a/src/main/java/com/zy/asrs/service/TaskService.java
+++ b/src/main/java/com/zy/asrs/service/TaskService.java
@@ -2,6 +2,7 @@
import com.zy.asrs.entity.Task;
import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.WrkMast;
import java.util.List;
@@ -14,4 +15,6 @@
void pickWrkMast(String workNo, Long userId);
List<Task> selectToBeCompleteData();
+
+ List<Task> selectToBeHistoryData();
}
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
index ab7b198..8e0b61d 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -142,6 +142,11 @@
return this.baseMapper.selectToBeCompleteData();
}
+ @Override
+ public List<Task> selectToBeHistoryData() {
+ return this.baseMapper.selectToBeHistoryData();
+ }
+
@Override
@Transactional
diff --git a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
index b71e608..b4bc696 100644
--- a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
@@ -1,6 +1,8 @@
package com.zy.asrs.task;
+import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.TaskService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkLogHandler;
@@ -23,6 +25,10 @@
@Autowired
private WrkMastService wrkMastService;
+ @Autowired
+ private TaskService taskService;
+
+
@Scheduled(cron = "0/3 * * * * ? ")
private void execute(){
List<WrkMast> wrkMasts = wrkMastService.selectToBeHistoryData();
@@ -37,6 +43,20 @@
}
}
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void executeTask(){
+ List<Task> taskList = taskService.selectToBeHistoryData();
+ if (taskList.isEmpty()) {
+ return;
+ }
+ for (Task task : taskList) {
+ ReturnT<String> result = workLogHandler.AgvStart(task);
+ if (!result.isSuccess()) {
+ log.error("宸ヤ綔妗workNo={}]鍘嗗彶妗e鐞嗗け璐�", task.getWrkNo());
+ }
+ }
+ }
+
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index dc6f573..013cf95 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -2,14 +2,13 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
-import com.zy.asrs.entity.WaitPakin;
-import com.zy.asrs.entity.WrkDetl;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -39,6 +38,14 @@
private WaitPakinLogService waitPakinLogService;
@Autowired
private OrderService orderService;
+ @Autowired
+ private TaskService taskService;
+ @Autowired
+ private TaskLogService taskLogService;
+ @Autowired
+ private TaskDetlService taskDetlService;
+ @Autowired
+ private TaskDetlLogService taskDetlLogService;
@Transactional
public ReturnT<String> start(WrkMast wrkMast) {
@@ -125,4 +132,98 @@
return SUCCESS;
}
+ public ReturnT<String> AgvStart(Task task) {
+ try {
+ List<TaskDetl> taskDetls = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
+ // 淇敼璁㈠崟鐘舵�� 浣滀笟涓� ===>> 宸插畬鎴�
+ if (!Cools.isEmpty(taskDetls)) {
+ Iterator<TaskDetl> iterator = taskDetls.iterator();
+ while (iterator.hasNext()) {
+ TaskDetl taskDetl = iterator.next();
+ if (!Cools.isEmpty(taskDetl.getOrderNo())) {
+// orderService.checkComplete(wrkDetl.getOrderNo());
+ if (task.getIoType() == 1 || task.getIoType() == 8 || task.getIoType() == 54 || task.getIoType() == 104){
+ OrderInAndOutUtil.checkComplete(Boolean.TRUE,taskDetl.getOrderNo());
+ } else {
+ OrderInAndOutUtil.checkComplete(Boolean.FALSE,taskDetl.getOrderNo());
+ }
+ iterator.remove();
+ }
+ }
+ }
+
+ // 鍏ュ簱 --------------------------------------------------------------------------------
+ if (task.getWrkSts() == 5) {
+ // 鍏ㄦ澘鍏ュ簱
+ if (task.getIoType() == 1) {
+ // 鍏ュ簱閫氱煡鍗�
+ if (!Cools.isEmpty(task.getBarcode())) {
+ // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。
+ if (!waitPakinLogService.save(task.getBarcode())) {
+// exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ // 鍒犻櫎鍏ュ簱閫氱煡妗�
+ if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", task.getBarcode()))) {
+// exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ }
+// // 鎵嬪姩鍏ュ簱鐢熸垚鍗曟嵁 銆� 涓婃姤涓夋柟骞冲彴 銆�
+// if (!Cools.isEmpty(wrkDetls)) {
+// if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
+// exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+// }
+// }
+ // 鎷f枡鍐嶅叆搴�
+ } else if (task.getIoType() == 53) {
+// if (!Cools.isEmpty(wrkDetls)) {
+// if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
+// exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+// }
+// }
+ }
+
+ // 鍑哄簱 --------------------------------------------------------------------------------
+ } else if (task.getWrkSts() == 15) {
+// if (!Cools.isEmpty(wrkDetls)) {
+// if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
+// exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+// }
+// }
+ }
+
+
+
+ for (TaskDetl taskDetl :taskDetls){
+ TaskDetlLog taskDetlLog = new TaskDetlLog();
+ BeanUtils.copyProperties(taskDetl, taskDetlLog);
+
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (!taskDetlLogService.insert(taskDetlLog)) {
+ exceptionHandle("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗workNo={0}]澶辫触", task.getWrkNo());
+ }
+ // 鍒犻櫎宸ヤ綔鏄庣粏妗�
+ if (!taskDetlService.deleteById(taskDetl)) {
+ exceptionHandle("鍒犻櫎宸ヤ綔鏄庣粏妗workNo={0}]澶辫触", task.getWrkNo());
+ }
+ }
+ TaskLog taskLog = new TaskLog();
+ BeanUtils.copyProperties(task, taskLog);
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!taskLogService.insert(taskLog)) {
+ exceptionHandle("淇濆瓨AGV宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", task.getWrkNo());
+ }
+
+ // 鍒犻櫎宸ヤ綔涓绘。
+ if (!taskService.deleteById(task)) {
+ exceptionHandle("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", task.getWrkNo());
+ }
+
+ } catch (Exception e) {
+ log.error("fail", e);
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg(e.getMessage());
+ }
+ return SUCCESS;
+ }
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 8c5422f..03eb3fb 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -47,7 +47,7 @@
#License鐩稿叧閰嶇疆
license:
- subject: integrationasrs
+ subject: jsxsasrs
publicAlias: publicCert
storePass: public_zhongyang_123456789
licensePath: license.lic
diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml
index 66cbbeb..16d8fda 100644
--- a/src/main/resources/mapper/TaskMapper.xml
+++ b/src/main/resources/mapper/TaskMapper.xml
@@ -12,4 +12,11 @@
select * from agv_task where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type != 103 and io_type != 104 and io_type != 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,error_time,io_time,wrk_no
</select>
+
+ <select id="selectToBeHistoryData" resultType="com.zy.asrs.entity.Task">
+ select * from agv_task
+ where wrk_sts=5 or wrk_sts=15
+ order by io_time,wrk_no asc
+ </select>
+
</mapper>
--
Gitblit v1.9.1