diff --git a/smart-flow-api/pom.xml b/smart-flow-api/pom.xml index 8584520..a8e75f4 100644 --- a/smart-flow-api/pom.xml +++ b/smart-flow-api/pom.xml @@ -10,21 +10,20 @@ sa-parent SmartFlow project - + sa-base - sa-admin + sa-admin - 21 + 17 UTF-8 UTF-8 3.3.1 2.0.8 6.4.3 - 8.3.0 - 8.6.0 3.5.7 + 3.9.1 4.4.0 2.0.52 @@ -51,7 +50,7 @@ 0.9.0 3.1 1.41.0 - 1.7.3 + 1.8.4 2.7.0 1.80 2.13.4 @@ -62,9 +61,10 @@ 2.3.33 1.18.1 3.1.0 + 8.6.0 - + @@ -77,19 +77,6 @@ - - com.mysql - mysql-connector-j - ${mysql.version} - - - - - cn.com.kingbase - kingbase8 - ${kingbase8.version} - - com.baomidou mybatis-plus-spring-boot3-starter @@ -99,9 +86,31 @@ org.springframework.boot spring-boot-starter-logging + + org.mybatis + mybatis + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + + + + + org.mybatis + mybatis + 3.5.16 + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 3.0.3 + + org.springframework.security spring-security-crypto @@ -114,6 +123,12 @@ ${p6spy.version} + + cn.com.kingbase + kingbase8 + ${kingbase.version} + + com.github.xiaoymin knife4j-openapi3-jakarta-spring-boot-starter @@ -262,16 +277,15 @@ org.dromara.warm warm-flow-mybatis-plus-sb3-starter ${warm-flow.version} + pom + import org.dromara.warm warm-flow-plugin-ui-sb-web ${warm-flow.version} - - - org.dromara.warm - warm-flow-mybatis-plus-core - ${warm-flow.version} + pom + import @@ -318,11 +332,7 @@ ${poi.version} - - org.apache.poi - ooxml-schemas - ${ooxml-schemas.version} - + com.fasterxml.jackson.datatype @@ -374,8 +384,8 @@ - + ${project.name}-${profiles.active}-${project.version} @@ -415,8 +425,8 @@ 3.13.0 -parameters - 21 - 21 + 17 + 17 UTF-8 diff --git a/smart-flow-api/sa-admin/pom.xml b/smart-flow-api/sa-admin/pom.xml index 9950d7f..81d0cd8 100644 --- a/smart-flow-api/sa-admin/pom.xml +++ b/smart-flow-api/sa-admin/pom.xml @@ -20,39 +20,64 @@ net.lab1024 sa-base - ${project.version} + 3.0.1 - + com.baomidou mybatis-plus-spring-boot3-starter + ${mybatis-plus.version} + - org.dromara.warm - warm-flow-mybatis-plus-core + com.baomidou + mybatis-plus-extension + ${mybatis-plus.version} org.dromara.warm warm-flow-mybatis-plus-sb3-starter + ${warm-flow.version} org.dromara.warm warm-flow-plugin-ui-sb-web + ${warm-flow.version} + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.6.1 + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/lib + net.lab1024 + runtime + false + false + true + + + + org.springframework.boot spring-boot-maven-plugin - - net.lab1024.sa.admin.AdminApplication - - true - + ${springboot.version} @@ -60,6 +85,17 @@ + + net.lab1024.sa.AdminApplication + ZIP + + + + net.lab1024 + sa-base + + + diff --git a/smart-flow-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/flow/controller/DefController.java b/smart-flow-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/flow/controller/DefController.java index 6768174..fe14dac 100644 --- a/smart-flow-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/flow/controller/DefController.java +++ b/smart-flow-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/flow/controller/DefController.java @@ -14,9 +14,17 @@ import net.lab1024.sa.base.common.domain.PageResult; import net.lab1024.sa.base.common.domain.ResponseDTO; import net.lab1024.sa.base.common.util.SmartResponseUtil; import net.lab1024.sa.base.common.util.SmartStringUtil; +import org.dromara.warm.flow.core.FlowEngine; +import org.dromara.warm.flow.core.dto.DefJson; +import org.dromara.warm.flow.core.dto.FlowCombine; import org.dromara.warm.flow.core.entity.Definition; +import org.dromara.warm.flow.core.entity.Node; +import org.dromara.warm.flow.core.entity.Skip; +import org.dromara.warm.flow.core.enums.NodeType; +import org.dromara.warm.flow.core.enums.SkipType; import org.dromara.warm.flow.core.service.ChartService; import org.dromara.warm.flow.core.service.DefService; +import org.dromara.warm.flow.core.utils.FlowConfigUtil; import org.dromara.warm.flow.orm.entity.FlowDefinition; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -28,7 +36,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.math.BigDecimal; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.List; /** @@ -44,7 +54,7 @@ import java.util.List; public class DefController { @Resource private FlowDefinitionService flowDefinitionService; - + @Resource private DefService defService; @@ -54,16 +64,16 @@ public class DefController { /** * 分页查询流程定义列表 */ - @Operation(summary = "分页查询") + @Operation(summary = "分页查询 @author kaiyun") @PostMapping("/queryPage") public ResponseDTO> queryPage(@RequestBody @Valid FlowDefinitionQueryForm queryForm) { return ResponseDTO.ok(flowDefinitionService.queryPage(queryForm)); } - + /** * 获取流程定义详细信息 */ - @Operation(summary = "获取流程定义详细信息") + @Operation(summary = "获取流程定义详细信息 @author kaiyun") @SaCheckPermission("flow:definition:query") @GetMapping(value = "/{id}") public ResponseDTO getInfo(@PathVariable("id") Long id) { @@ -73,18 +83,23 @@ public class DefController { /** * 新增流程定义 */ - @Operation(summary = "添加") + @Operation(summary = "添加 @author kaiyun") @SaCheckPermission("flow:definition:add") @PostMapping("/add") @Transactional(rollbackFor = Exception.class) - public ResponseDTO add(@RequestBody FlowDefinition flowDefinition) { - return ResponseDTO.ok(defService.saveAndInitNode(flowDefinition)); + public ResponseDTO add(@RequestBody DefJson definition) { + try { + defService.saveDef(definition, false); + } catch (Exception e) { + throw new RuntimeException(e); + } + return ResponseDTO.ok(true); } /** * 发布流程定义 */ - @Operation(summary = "发布流程定义") + @Operation(summary = "发布流程定义 @author kaiyun") @SaCheckPermission("flow:definition:publish") @GetMapping("/publish/{id}") @Transactional(rollbackFor = Exception.class) @@ -95,7 +110,7 @@ public class DefController { /** * 取消发布流程定义 */ - @Operation(summary = "取消发布流程定义") + @Operation(summary = "取消发布流程定义 @author kaiyun") @SaCheckPermission("flow:definition:publish") @GetMapping("/unPublish/{id}") @Transactional(rollbackFor = Exception.class) @@ -107,7 +122,7 @@ public class DefController { /** * 修改流程定义 */ - @Operation(summary = "更新") + @Operation(summary = "更新 @author kaiyun") @SaCheckPermission("flow:definition:edit") @PostMapping("/update") @Transactional(rollbackFor = Exception.class) @@ -118,7 +133,7 @@ public class DefController { /** * 删除流程定义 */ - @Operation(summary = "删除") + @Operation(summary = "删除 @author kaiyun") @SaCheckPermission("flow:definition:remove") @GetMapping("/delete/{ids}") @Transactional(rollbackFor = Exception.class) @@ -129,7 +144,7 @@ public class DefController { /** * 复制流程定义 */ - @Operation(summary = "复制流程定义") + @Operation(summary = "复制流程定义 @author kaiyun") @SaCheckPermission("flow:definition:publish") @GetMapping("/copyDef/{id}") @Transactional(rollbackFor = Exception.class) @@ -137,7 +152,7 @@ public class DefController { return ResponseDTO.ok(defService.copyDef(id)); } - @Operation(summary = "流程定义导入") + @Operation(summary = "流程定义导入 @author kaiyun") @SaCheckPermission("flow:definition:importDefinition") @PostMapping("/importDefinition") @Transactional(rollbackFor = Exception.class) @@ -146,7 +161,7 @@ public class DefController { return ResponseDTO.ok(); } - @Operation(summary = "流程定义导出") + @Operation(summary = "流程定义导出 @author kaiyun") @SaCheckPermission("flow:definition:exportDefinition") @PostMapping("/exportDefinition/{id}") public void exportDefinition(@PathVariable("id") Long id, HttpServletResponse response) throws IOException { @@ -167,10 +182,10 @@ public class DefController { * * @return */ - @Operation(summary = "查询流程图") + @Operation(summary = "查询流程图 @author kaiyun") @GetMapping("/chartDef/{definitionId}") public ResponseDTO chartDef(@PathVariable("definitionId") Long definitionId) { - return ResponseDTO.ok(chartService.chartDef(definitionId)); + return ResponseDTO.ok(""); } /** @@ -179,10 +194,10 @@ public class DefController { * @param instanceId * @return */ - @Operation(summary = "查询流程图") + @Operation(summary = "查询流程图 @author kaiyun") @GetMapping("/flowChart/{instanceId}") public ResponseDTO flowChart(@PathVariable("instanceId") Long instanceId) throws IOException { - return ResponseDTO.ok(chartService.chartIns(instanceId)); + return ResponseDTO.ok(""); } /** @@ -191,7 +206,7 @@ public class DefController { * @param definitionId * @return */ - @Operation(summary = "激活流程") + @Operation(summary = "激活流程 @author kaiyun") @GetMapping("/active/{definitionId}") public ResponseDTO active(@PathVariable("definitionId") Long definitionId) { return ResponseDTO.ok(defService.active(definitionId)); @@ -203,7 +218,7 @@ public class DefController { * @param definitionId * @return */ - @Operation(summary = "挂起流程") + @Operation(summary = "挂起流程 @author kaiyun") @GetMapping("/unActive/{definitionId}") public ResponseDTO unActive(@PathVariable("definitionId") Long definitionId) { return ResponseDTO.ok(defService.unActive(definitionId)); diff --git a/smart-flow-api/sa-base/pom.xml b/smart-flow-api/sa-base/pom.xml index 9b78325..71a1f77 100644 --- a/smart-flow-api/sa-base/pom.xml +++ b/smart-flow-api/sa-base/pom.xml @@ -37,6 +37,7 @@ + org.springframework.boot spring-boot-starter-web @@ -85,7 +86,10 @@ com.mysql mysql-connector-j - + + cn.com.kingbase + kingbase8 + com.github.ben-manes.caffeine caffeine @@ -115,6 +119,25 @@ com.baomidou mybatis-plus-spring-boot3-starter + + + org.springframework.boot + spring-boot-starter-logging + + + + + + + com.baomidou + mybatis-plus-extension + ${mybatis-plus.version} + + + + + org.mybatis + mybatis @@ -242,10 +265,7 @@ poi-scratchpad - - org.apache.poi - ooxml-schemas - + com.fasterxml.jackson.datatype @@ -287,11 +307,7 @@ org.apache.tika tika-core - - - cn.com.kingbase - kingbase8 - + diff --git a/smart-flow-web/src/router/flow/flow.js b/smart-flow-web/src/router/flow/flow.js index 3531dd5..4f165f4 100644 --- a/smart-flow-web/src/router/flow/flow.js +++ b/smart-flow-web/src/router/flow/flow.js @@ -1,17 +1,17 @@ import SmartLayout from '/@/layout/index.vue'; export const flowRouters = [ - { - path: '/flow/flow-design', - component: SmartLayout, - hidden: true, - permissions: ['flow:definition:design'], - children: [ - { - path: 'index/:id(\\d+)', - component: () => import('/@/views/flow/definition/warm-flow.vue'), - name: 'Design', - meta: { title: '流程设计', activeMenu: '/flow/definition' } - } - ] - }, - ] \ No newline at end of file + { + path: '/flow/flow-design', + component: SmartLayout, + hidden: true, + permissions: ['flow:definition:design'], + children: [ + { + path: 'index/:id', + component: () => import('/@/views/flow/definition/warm-flow.vue'), + name: 'Design', + meta: { title: '流程设计', activeMenu: '/flow/definition' } + } + ] + }, +] \ No newline at end of file diff --git a/smart-flow-web/src/views/flow/definition/definition-form.vue b/smart-flow-web/src/views/flow/definition/definition-form.vue index 6f76776..4f5fa93 100644 --- a/smart-flow-web/src/views/flow/definition/definition-form.vue +++ b/smart-flow-web/src/views/flow/definition/definition-form.vue @@ -1,262 +1,370 @@ -