update 流程节点排序(首次导入时需要手动处理)
This commit is contained in:
+2
@@ -14,4 +14,6 @@ public interface ProcessModelNodeMapper extends BaseMapper<ProcessModelNode> {
|
|||||||
int deleteByModelId(@Param("modelId")String modelId);
|
int deleteByModelId(@Param("modelId")String modelId);
|
||||||
|
|
||||||
|
|
||||||
|
void updateSortByInsertNode(@Param("modelId") String modelId, @Param("sort") Integer sort);
|
||||||
|
void updateSortByDeleteNode(@Param("modelId") String modelId, @Param("sort") Integer sort);
|
||||||
}
|
}
|
||||||
+14
@@ -42,4 +42,18 @@
|
|||||||
delete from process_model_node
|
delete from process_model_node
|
||||||
where model_id=#{modelId}
|
where model_id=#{modelId}
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
|
<update id="updateSortByInsertNode">
|
||||||
|
update process_model_node
|
||||||
|
set sort = sort + 1
|
||||||
|
where model_id = #{modelId}
|
||||||
|
and sort > #{sort}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="updateSortByDeleteNode">
|
||||||
|
update process_model_node
|
||||||
|
set sort = sort - 1
|
||||||
|
where model_id = #{modelId}
|
||||||
|
and sort > #{sort}
|
||||||
|
</update>
|
||||||
</mapper>
|
</mapper>
|
||||||
+13
-4
@@ -145,7 +145,12 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
|
|||||||
updateFlow.eq(ProcessModelNode::getXmlNodeId,flowOrigin2.getXmlNodeId());
|
updateFlow.eq(ProcessModelNode::getXmlNodeId,flowOrigin2.getXmlNodeId());
|
||||||
updateFlow.set(ProcessModelNode::getXmlTargetRef,userTaskId);
|
updateFlow.set(ProcessModelNode::getXmlTargetRef,userTaskId);
|
||||||
processModelNodeMapper.update(null,updateFlow);
|
processModelNodeMapper.update(null,updateFlow);
|
||||||
insertUserTask(modelId, userTask);
|
//获得排序
|
||||||
|
Integer sort = processModelNode.getSort();
|
||||||
|
//更新所有大于当前sort的加1(空出来的用于存放新节点)
|
||||||
|
processModelNodeMapper.updateSortByInsertNode(modelId,sort);
|
||||||
|
//新增节点
|
||||||
|
insertUserTask(modelId, userTask, sort+1);
|
||||||
List<SequenceFlow> incomingFlows = gateway.getIncomingFlows();
|
List<SequenceFlow> incomingFlows = gateway.getIncomingFlows();
|
||||||
for (SequenceFlow incomingFlow : incomingFlows) {
|
for (SequenceFlow incomingFlow : incomingFlows) {
|
||||||
insertFlow(modelId, incomingFlow);
|
insertFlow(modelId, incomingFlow);
|
||||||
@@ -155,6 +160,7 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
|
|||||||
for (SequenceFlow outgoingFlow : outgoingFlows) {
|
for (SequenceFlow outgoingFlow : outgoingFlows) {
|
||||||
insertFlow(modelId, outgoingFlow);
|
insertFlow(modelId, outgoingFlow);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -234,7 +240,9 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
|
|||||||
String json = objectNode1.toString();
|
String json = objectNode1.toString();
|
||||||
byte[] bytes1 = json.getBytes(StandardCharsets.UTF_8);
|
byte[] bytes1 = json.getBytes(StandardCharsets.UTF_8);
|
||||||
repositoryService.addModelEditorSource(modelId, bytes1);
|
repositoryService.addModelEditorSource(modelId, bytes1);
|
||||||
|
Integer sort = processModelNode.getSort();
|
||||||
|
//更新所有大于当前sort的减1(把当前节点的空位去掉)
|
||||||
|
processModelNodeMapper.updateSortByDeleteNode(modelId,sort);
|
||||||
//删除数据库中的节点
|
//删除数据库中的节点
|
||||||
removeNode(modelId,xmlNodeIdList);
|
removeNode(modelId,xmlNodeIdList);
|
||||||
//更新待删除节点前的线的指向
|
//更新待删除节点前的线的指向
|
||||||
@@ -268,12 +276,13 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
|
|||||||
processModelNodeMapper.insert(gatewayNode);
|
processModelNodeMapper.insert(gatewayNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertUserTask(String modelId, UserTask userTask) {
|
private void insertUserTask(String modelId, UserTask userTask, int sort) {
|
||||||
ProcessModelNode userTaskNode = new ProcessModelNode();
|
ProcessModelNode userTaskNode = new ProcessModelNode();
|
||||||
userTaskNode.setModelId(modelId);
|
userTaskNode.setModelId(modelId);
|
||||||
userTaskNode.setNodeName(userTask.getName());
|
userTaskNode.setNodeName(userTask.getName());
|
||||||
userTaskNode.setNodeType("userTask");
|
userTaskNode.setNodeType("userTask");
|
||||||
userTaskNode.setXmlNodeId(userTask.getId());
|
userTaskNode.setXmlNodeId(userTask.getId());
|
||||||
|
userTaskNode.setSort(sort);
|
||||||
userTaskNode.setIsApprovalNode(1);
|
userTaskNode.setIsApprovalNode(1);
|
||||||
userTaskNode.setIsCanDeleted(1);
|
userTaskNode.setIsCanDeleted(1);
|
||||||
processModelNodeMapper.insert(userTaskNode);
|
processModelNodeMapper.insert(userTaskNode);
|
||||||
@@ -356,6 +365,7 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
|
|||||||
nodeType = "userTask";
|
nodeType = "userTask";
|
||||||
nodeName = userTask.getName();
|
nodeName = userTask.getName();
|
||||||
xmlNodeId = userTask.getId();
|
xmlNodeId = userTask.getId();
|
||||||
|
processModelNode.setSort(sort++);
|
||||||
} else if (flowElement instanceof SequenceFlow) {
|
} else if (flowElement instanceof SequenceFlow) {
|
||||||
SequenceFlow sequenceFlow = (SequenceFlow) flowElement;
|
SequenceFlow sequenceFlow = (SequenceFlow) flowElement;
|
||||||
nodeType = "sequenceFlow";
|
nodeType = "sequenceFlow";
|
||||||
@@ -400,7 +410,6 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
|
|||||||
processModelNode.setXmlNodeId(xmlNodeId);
|
processModelNode.setXmlNodeId(xmlNodeId);
|
||||||
processModelNode.setXmlSourceRef(xmlSourceRef);
|
processModelNode.setXmlSourceRef(xmlSourceRef);
|
||||||
processModelNode.setXmlTargetRef(xmlTargetRef);
|
processModelNode.setXmlTargetRef(xmlTargetRef);
|
||||||
processModelNode.setSort(sort++);
|
|
||||||
processModelNode.setIsApprovalNode(YesOrNoEnum.NO.getInteger());
|
processModelNode.setIsApprovalNode(YesOrNoEnum.NO.getInteger());
|
||||||
processModelNode.setIsCanDeleted(YesOrNoEnum.NO.getInteger());
|
processModelNode.setIsCanDeleted(YesOrNoEnum.NO.getInteger());
|
||||||
processModelNodeList.add(processModelNode);
|
processModelNodeList.add(processModelNode);
|
||||||
|
|||||||
Reference in New Issue
Block a user