|
|
@@ -3,20 +3,28 @@ package cn.iocoder.yudao.module.iscs.service.workdesign;
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
+import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowdesign.vo.PcValueVO;
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowdesign.vo.WorkflowDesignPageReqVO;
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowdesign.vo.WorkflowDesignSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowDesignDO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowDesignNodeDO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.mysql.workdesign.WorkflowDesignMapper;
|
|
|
+import cn.iocoder.yudao.module.iscs.utils.PcValueParser;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fasterxml.jackson.databind.JsonNode;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* 流程设计 Service 实现类
|
|
|
@@ -42,12 +50,36 @@ public class WorkflowDesignServiceImpl extends ServiceImpl<WorkflowDesignMapper,
|
|
|
// Assert.notBlank(createReqVO.getContent(), "流程配置内容不能为空!");
|
|
|
// 插入
|
|
|
WorkflowDesignDO workflowDesign = BeanUtils.toBean(createReqVO, WorkflowDesignDO.class);
|
|
|
+ // 解析节点数量
|
|
|
+ Integer nodeCount = parseJsonToData(createReqVO.getContent());
|
|
|
+ workflowDesign.setNodeCount(nodeCount);
|
|
|
workflowDesignMapper.insert(workflowDesign);
|
|
|
workflowDesignNodeService.createNodeByJson(workflowDesign.getId(), createReqVO.getContent());
|
|
|
// 返回
|
|
|
return workflowDesign.getId();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ // 解析节点数量
|
|
|
+ public static Integer parseJsonToData(String json) {
|
|
|
+ // 替换为你的JSON字符串(实际使用时注意转义,或从文件/接口读取)
|
|
|
+ int nodeCount = 0;
|
|
|
+ try {
|
|
|
+ // 1. 创建Jackson核心对象
|
|
|
+ ObjectMapper objectMapper = new ObjectMapper();
|
|
|
+
|
|
|
+ // 2. 解析JSON为树形结构的JsonNode
|
|
|
+ JsonNode rootNode = objectMapper.readTree(json);
|
|
|
+ // 3. 核心:解析节点数量
|
|
|
+ nodeCount = rootNode.get("nodeCount").asInt();
|
|
|
+ System.out.println("nodeCount--" + nodeCount);
|
|
|
+ } catch (IOException e) {
|
|
|
+ Assert.isTrue(false, "请传入正确格式的JSON");
|
|
|
+ e.printStackTrace(); // 实际项目中建议用日志框架记录异常
|
|
|
+ }
|
|
|
+ return nodeCount;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void updateWorkflowDesign(WorkflowDesignSaveReqVO updateReqVO) {
|
|
|
Assert.notNull(updateReqVO.getId(), "ID不能为空!");
|