|
|
@@ -146,6 +146,42 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
|
|
146
|
146
|
}
|
|
147
|
147
|
return insert;
|
|
148
|
148
|
}
|
|
|
149
|
+ /**
|
|
|
150
|
+ * 修改工单
|
|
|
151
|
+ *
|
|
|
152
|
+ * @param workOrder 工单
|
|
|
153
|
+ * @return 结果
|
|
|
154
|
+ */
|
|
|
155
|
+ @Override
|
|
|
156
|
+ public int updateWorkOrder(WorkOrder workOrder, WorkOrderInput workOrderInput, FlowDefinition flowDefinition) {
|
|
|
157
|
+ workOrder.setTicketType(workOrderInput.getTicketType());
|
|
|
158
|
+ workOrder.setStationId(workOrderInput.getStationId());
|
|
|
159
|
+ workOrder.setContact(workOrderInput.getContact());
|
|
|
160
|
+ workOrder.setPhone(workOrderInput.getPhone());
|
|
|
161
|
+ workOrder.setContent(workOrderInput.getContent());
|
|
|
162
|
+ workOrder.setAttachments(workOrderInput.getAttachments());
|
|
|
163
|
+ workOrder.setUpdateTime(new Date());
|
|
|
164
|
+ insertWorkOrderRecord(workOrder.getId(), workOrder.getOrderNo(), WorkOderOperationType.UPDATE.name(),
|
|
|
165
|
+ "修改工单", SecurityUtils.getUserId(), SecurityUtils.getUsername());
|
|
|
166
|
+ Long userId = SecurityUtils.getUserId();
|
|
|
167
|
+ String userName = SecurityUtils.getUsername();
|
|
|
168
|
+ int update = workOrderMapper.updateWorkOrder(workOrder);
|
|
|
169
|
+ if (update > 0) {
|
|
|
170
|
+ //提交工单时,异步处理工作流相关数据
|
|
|
171
|
+ if (workOrderInput.getIsSubmit()) {
|
|
|
172
|
+ //异步处理工作流相关数据
|
|
|
173
|
+ CompletableFuture.supplyAsync(() -> nodeStartProcessing
|
|
|
174
|
+ (flowDefinition, workOrder, userId, userName)).thenAccept(result -> System.out.println("Result: " + result))
|
|
|
175
|
+ .exceptionally(ex -> {
|
|
|
176
|
+ ex.printStackTrace();
|
|
|
177
|
+ log.error("修改工单{}时,处理工作流相关数据异常", workOrder.getOrderNo(), ex);
|
|
|
178
|
+ return null;
|
|
|
179
|
+ });
|
|
|
180
|
+
|
|
|
181
|
+ }
|
|
|
182
|
+ }
|
|
|
183
|
+ return workOrderMapper.updateWorkOrder(workOrder);
|
|
|
184
|
+ }
|
|
149
|
185
|
|
|
150
|
186
|
/**
|
|
151
|
187
|
* 提交工单
|
|
|
@@ -721,24 +757,12 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
|
|
721
|
757
|
public boolean checkPermission(WorkOrder workOrder) {
|
|
722
|
758
|
// 管理员、工单创建人、工单场站在用户场站列表中,都可以操作工单
|
|
723
|
759
|
return SecurityUtils.isAdmin(SecurityUtils.getUserId())
|
|
724
|
|
- || workOrder.getReporterId().equals(SecurityUtils.getUsername())
|
|
|
760
|
+ || workOrder.getReporterId().equals(SecurityUtils.getUserId())
|
|
725
|
761
|
|| SecurityUtils.hasStation(workOrder.getStationId());
|
|
726
|
762
|
}
|
|
727
|
763
|
|
|
728
|
764
|
|
|
729
|
|
- /**
|
|
730
|
|
- * 修改工单
|
|
731
|
|
- *
|
|
732
|
|
- * @param workOrder 工单
|
|
733
|
|
- * @return 结果
|
|
734
|
|
- */
|
|
735
|
|
- @Override
|
|
736
|
|
- public int updateWorkOrder(WorkOrder workOrder) {
|
|
737
|
|
- workOrder.setUpdateTime(new Date());
|
|
738
|
|
- insertWorkOrderRecord(workOrder.getId(), workOrder.getOrderNo(), WorkOderOperationType.UPDATE.name(),
|
|
739
|
|
- "修改工单", SecurityUtils.getUserId(), SecurityUtils.getUsername());
|
|
740
|
|
- return workOrderMapper.updateWorkOrder(workOrder);
|
|
741
|
|
- }
|
|
|
765
|
+
|
|
742
|
766
|
|
|
743
|
767
|
/**
|
|
744
|
768
|
* 添加工单记录
|
|
|
@@ -916,7 +940,7 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
|
|
916
|
940
|
workOrder.setStatus(WorkOrderStatus.PENDING_HANDING.getStatus());
|
|
917
|
941
|
insertWorkOrderRecord(workOrder.getId(), workOrder.getOrderNo(), WorkOderOperationType.PROCESS.name(),
|
|
918
|
942
|
"工单进入待办任务"+node.getNodeName(), userId, userName);
|
|
919
|
|
- nodeIds.append(taskId).append(",");
|
|
|
943
|
+ nodeIds.append(taskId).append(StringUtils.SEPARATORSTR);
|
|
920
|
944
|
}
|
|
921
|
945
|
}
|
|
922
|
946
|
} else {
|
|
|
@@ -991,7 +1015,7 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
|
|
991
|
1015
|
String parallelNode = nextNodes.stream()
|
|
992
|
1016
|
.map(FlowNode::getId)
|
|
993
|
1017
|
.map(String::valueOf) // 将Long转换为String
|
|
994
|
|
- .collect(Collectors.joining(","));
|
|
|
1018
|
+ .collect(Collectors.joining(StringUtils.SEPARATORSTR));
|
|
995
|
1019
|
for (FlowNode node : nextNodes) {
|
|
996
|
1020
|
long taskId= insertWorkOrderTask(workOrder, node,parallelNode);
|
|
997
|
1021
|
// 工单状态为待处理
|
|
|
@@ -999,7 +1023,7 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
|
|
999
|
1023
|
workOrder.setStatus(WorkOrderStatus.PENDING_HANDING.getStatus());
|
|
1000
|
1024
|
insertWorkOrderRecord(workOrder.getId(), workOrder.getOrderNo(), WorkOderOperationType.PROCESS.name(),
|
|
1001
|
1025
|
"工单退回至待办任务"+node.getNodeName(), userId, userName);
|
|
1002
|
|
- nodeIds.append(taskId).append(",");
|
|
|
1026
|
+ nodeIds.append(taskId).append(StringUtils.SEPARATORSTR);
|
|
1003
|
1027
|
}
|
|
1004
|
1028
|
} else {
|
|
1005
|
1029
|
// 没有下一个节点,说明流程定义有问题,工单直接完结
|