Explorar o código

新增解析节点数量

小车车 hai 4 meses
pai
achega
143c5378c3

+ 32 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowDesignServiceImpl.java

@@ -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不能为空!");