From cf723668b6c5636378a276e23366298289a1a1f5 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期三, 25 三月 2026 15:20:55 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 109 ++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 77 insertions(+), 32 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index cde9b3d..4d46033 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -21,6 +21,7 @@
import com.zy.acs.manager.core.domain.TaskPosDto;
import com.zy.acs.manager.core.integrate.conveyor.ConveyorStationService;
import com.zy.acs.manager.core.integrate.dto.OpenBusSubmitParam;
+import com.zy.acs.manager.core.service.hik.HikOrderPublishService;
import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
import com.zy.acs.manager.manager.entity.*;
import com.zy.acs.manager.manager.enums.*;
@@ -98,6 +99,8 @@
private StaReserveService staReserveService;
@Autowired
private ConveyorStationService conveyorStationService;
+ @Autowired
+ private HikOrderPublishService hikOrderPublishService;
@SuppressWarnings("all")
@Transactional
@@ -1582,47 +1585,25 @@
@Transactional
public void publishAction(String actionGroupId) {
try {
- Date now = new Date();
-
- // action
- List<Action> actionList = actionService.list(new LambdaQueryWrapper<Action>()
- .eq(Action::getGroupId, actionGroupId).eq(Action::getActionSts, ActionStsType.PREPARE.val())
- .orderByDesc(Action::getPriority));
+ List<Action> actionList = listPrepareActions(actionGroupId);
if (Cools.isEmpty(actionList)) {
return;
}
Long agvId = actionList.get(0).getAgvId();
+ AgvModel agvModel = agvModelService.getByAgvId(agvId);
+ if (hikOrderPublishService.support(agvModel)) {
+ publishActionForHik(actionGroupId);
+ return;
+ }
+
+ Date now = new Date();
String agvNo = agvService.getAgvNo(agvId);
if (!agvService.judgeOnline(agvId)) {
return;
}
- long actionIssuedSts = ActionStsType.ISSUED.val();
- for (Action action : actionList) {
- action.setActionSts(actionIssuedSts);
- action.setStartTime(now);
- action.setIoTime(now);
- action.setUpdateTime(now);
- }
- if (!actionService.updateBatchById(actionList)) {
- throw new BusinessException("failed to update action batch !!!");
- }
-
- // task
- List<Long> taskIds = actionService.selectTaskIdsByGroupId(actionGroupId);
- long taskAssignSts = TaskStsType.ASSIGN.val();
- long taskProgressSts = TaskStsType.PROGRESS.val();
- for (Long taskId : taskIds) {
- Task task = taskService.getById(taskId);
- if (task.getTaskSts().equals(taskAssignSts)) {
- task.setTaskSts(taskProgressSts);
- task.setUpdateTime(now);
- if (!taskService.updateById(task)) {
- throw new BusinessException(task.getSeqNum() + "浠诲姟鏇存柊澶辫触");
- }
- }
- }
+ markActionAndTaskIssued(actionGroupId, actionList, now);
AgvAction agvAction = new AgvAction(agvNo, actionGroupId);
for (Action action : actionList) {
@@ -1750,6 +1731,70 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
+ }
+
+ @Transactional
+ public void publishActionForHik(String actionGroupId) {
+ try {
+ List<Action> actionList = listPrepareActions(actionGroupId);
+ if (Cools.isEmpty(actionList)) {
+ return;
+ }
+
+ Long agvId = actionList.get(0).getAgvId();
+ String agvNo = agvService.getAgvNo(agvId);
+ if (!agvService.judgeOnline(agvId)) {
+ return;
+ }
+
+ AgvModel agvModel = agvModelService.getByAgvId(agvId);
+ if (!hikOrderPublishService.support(agvModel)) {
+ throw new CoolException("agv [" + agvNo + "] protocol is not hik");
+ }
+
+ Date now = new Date();
+ markActionAndTaskIssued(actionGroupId, actionList, now);
+
+ hikOrderPublishService.publish(actionGroupId, agvNo, agvModel, actionList);
+ News.info("娴峰悍浠诲姟缁� [{}] order 宸蹭笅鍙� ===>> 鎸囦护鏁伴噺锛歿}", actionGroupId, actionList.size());
+ } catch (Exception e) {
+ News.error("mainService.publishActionForHik", e);
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+
+ private List<Action> listPrepareActions(String actionGroupId) {
+ return actionService.list(new LambdaQueryWrapper<Action>()
+ .eq(Action::getGroupId, actionGroupId)
+ .eq(Action::getActionSts, ActionStsType.PREPARE.val())
+ .orderByDesc(Action::getPriority));
+ }
+
+ private void markActionAndTaskIssued(String actionGroupId, List<Action> actionList, Date now) {
+ long actionIssuedSts = ActionStsType.ISSUED.val();
+ for (Action action : actionList) {
+ action.setActionSts(actionIssuedSts);
+ action.setStartTime(now);
+ action.setIoTime(now);
+ action.setUpdateTime(now);
+ }
+ if (!actionService.updateBatchById(actionList)) {
+ throw new BusinessException("failed to update action batch !!!");
+ }
+
+ List<Long> taskIds = actionService.selectTaskIdsByGroupId(actionGroupId);
+ long taskAssignSts = TaskStsType.ASSIGN.val();
+ long taskProgressSts = TaskStsType.PROGRESS.val();
+ for (Long taskId : taskIds) {
+ Task task = taskService.getById(taskId);
+ if (task != null && task.getTaskSts().equals(taskAssignSts)) {
+ task.setTaskSts(taskProgressSts);
+ task.setUpdateTime(now);
+ if (!taskService.updateById(task)) {
+ throw new BusinessException(task.getSeqNum() + "浠诲姟鏇存柊澶辫触");
+ }
+ }
+ }
}
@Transactional
@@ -2027,4 +2072,4 @@
segmentService.processNext(segmentList);
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.1