From 34409b98d7a3f2c9a0e55cb3c09ac3abb9c73597 Mon Sep 17 00:00:00 2001 From: warm <290631660@qq.com> Date: Fri, 7 Nov 2025 15:43:48 +0800 Subject: [PATCH 1/6] =?UTF-8?q?[feat]=20=E4=BC=9A=E7=AD=BE=E5=92=8C?= =?UTF-8?q?=E7=A5=A8=E7=AD=BE=E9=80=9A=E8=BF=87=E7=8E=87=E7=AD=96=E7=95=A5?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=9B=BA=E5=AE=9A=E4=BA=BA=E6=95=B0?= =?UTF-8?q?=E5=92=8C=E8=A1=A8=E8=BE=BE=E5=BC=8F=E7=AD=96=E7=95=A5=EF=BC=8C?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=89=A9=E5=B1=95=20[feat]=20HisTaskService?= =?UTF-8?q?=E6=96=B0=E5=A2=9ElistByTaskId=E6=8E=A5=E5=8F=A3=20[feat]=20?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E8=A1=A8=E8=BE=BE=E5=BC=8F=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=20[feat]=20MapUtil=E6=96=B0=E5=A2=9Eclone?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=96=B9=E6=B3=95=20[update]=20nodeRatio?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=B1=BB=E5=9E=8B=E6=94=B9=E6=88=90=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E4=B8=B2=20[update]=20VariableStrategy=E5=8A=9E?= =?UTF-8?q?=E7=90=86=E4=BA=BA=E8=A1=A8=E8=BE=BE=E5=BC=8F=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BB=A5=E5=8F=8A=E5=AD=90=E7=B1=BB=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=94=B9=E6=88=90=E6=9B=B4=E5=90=88=E7=90=86=E7=9A=84?= =?UTF-8?q?HandlerStrategy=20[update]=20=E5=AE=8C=E5=96=84nodesevice?= =?UTF-8?q?=E4=B8=ADgetNextNodeList=E7=9B=B8=E5=85=B3=E6=B3=A8=E9=87=8A=20?= =?UTF-8?q?[remove]=20=E5=88=A0=E9=99=A4=E6=B2=A1=E7=94=A8=E5=AD=97?= =?UTF-8?q?=E6=AE=B5handler=5Ftype=E5=92=8Chandler=5Fpath=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/system/service/VoteSignService.java | 49 +++++++++++++++++++ .../service/impl/TestLeaveServiceImpl.java | 14 +++--- 2 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/system/service/VoteSignService.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/VoteSignService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/VoteSignService.java new file mode 100644 index 00000000..a5519c1c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/VoteSignService.java @@ -0,0 +1,49 @@ +package com.ruoyi.system.service; + +import org.dromara.warm.flow.core.entity.HisTask; +import org.dromara.warm.flow.core.entity.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 票签通过率计算 + * + * @author warm + * @since 2025/11/7 + */ +@Component("voteSignService") +public class VoteSignService { + + private static final Logger log = LoggerFactory.getLogger(VoteSignService.class); + + /** + * 票签通过率计算 + * + * @param skipType 跳过类型 + * @param passNum 通过数量 + * @param rejectNum 拒绝数量 + * @param todoNum 待处理数量 + * @param passList 通过历史任务列表 + * @param rejectList 拒绝历史任务列表 + * @param todoList 待处理用户列表 + * @return boolean + */ + public boolean eval(String skipType, Integer passNum, Integer rejectNum, Integer todoNum + , List passList, List rejectList, List todoList ) { + + log.info("跳过类型: {}", skipType); + log.info("通过数量: {}", passNum); + log.info("拒绝数量: {}", rejectNum); + log.info("待处理数量: {}", todoNum); + log.info("通过历史任务列表: {}", passList); + log.info("拒绝历史任务列表: {}", rejectList); + log.info("待处理用户列表: {}", todoList); + log.info("开始票签通过率计算......"); + + return true; + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/TestLeaveServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/TestLeaveServiceImpl.java index c91ddad4..733bfd51 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/TestLeaveServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/TestLeaveServiceImpl.java @@ -107,7 +107,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService variable.put("businessData", testLeave); variable.put("businessType", "testLeave"); // 条件表达式替换,判断是否满足某个任务的跳转条件 【按需传】 - variable.put("flag", String.valueOf(testLeave.getDay())); + variable.put("flag", testLeave.getDay()); // 办理人表达式替换 【按需传】 variable.put("handler1", Arrays.asList(4, "5", 100L)); variable.put("handler2", 12L); @@ -212,7 +212,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService // 流程变量传递业务数据,按实际业务需求传递 【按需传】 variable.put("businessType", "testLeave"); // 办理人表达式替换 【按需传】 - variable.put("flag", String.valueOf(testLeave.getDay())); + variable.put("flag", testLeave.getDay()); flowParams.variable(variable); // 更新请假表 @@ -254,7 +254,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService // 流程变量传递业务数据,按实际业务需求传递 【按需传】 variable.put("businessType", "testLeave"); // 办理人表达式替换 【按需传】 - variable.put("flag", String.valueOf(testLeave.getDay())); + variable.put("flag", testLeave.getDay()); flowParams.variable(variable); // 自定义流程状态扩展 【按需传】 if (StringUtils.isNotEmpty(flowStatus)) { @@ -298,7 +298,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService // 流程变量传递业务数据,按实际业务需求传递 【按需传】 variable.put("businessType", "testLeave"); // 办理人表达式替换 【按需传】 - variable.put("flag", String.valueOf(testLeave.getDay())); + variable.put("flag", testLeave.getDay()); flowParams.variable(variable); // 自定义流程状态扩展 【按需传】 if (StringUtils.isNotEmpty(flowStatus)) { @@ -342,7 +342,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService // 流程变量传递业务数据,按实际业务需求传递 【按需传】 variable.put("businessType", "testLeave"); // 办理人表达式替换 【按需传】 - variable.put("flag", String.valueOf(testLeave.getDay())); + variable.put("flag", testLeave.getDay()); flowParams.variable(variable); // 自定义流程状态扩展 【按需传】 if (StringUtils.isNotEmpty(flowStatus)) { @@ -377,7 +377,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService // 流程变量传递业务数据,按实际业务需求传递 【按需传】 variable.put("businessType", "testLeave"); // 办理人表达式替换 【按需传】 - variable.put("flag", String.valueOf(testLeave.getDay())); + variable.put("flag", testLeave.getDay()); flowParams.variable(variable); // 请假信息存入flowParams,方便查看历史审批数据 【按需传】 flowParams.hisTaskExt(JSON.toJSONString(testLeave)); @@ -408,7 +408,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService // 流程变量传递业务数据,按实际业务需求传递 【按需传】 variable.put("businessType", "testLeave"); // 办理人表达式替换 【按需传】 - variable.put("flag", String.valueOf(testLeave.getDay())); + variable.put("flag", testLeave.getDay()); flowParams.variable(variable); // 请假信息存入flowParams,方便查看历史审批数据 【按需传】 flowParams.hisTaskExt(JSON.toJSONString(testLeave)); -- Gitee From 384e5d3e7df50624357a54819c3e2ca94bd9a6f5 Mon Sep 17 00:00:00 2001 From: warm <290631660@qq.com> Date: Fri, 7 Nov 2025 16:29:27 +0800 Subject: [PATCH 2/6] =?UTF-8?q?[upgrade]=20=E5=8D=87=E7=BA=A71.8.4-m1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d0a9039a..f11ac0d4 100644 --- a/pom.xml +++ b/pom.xml @@ -36,7 +36,7 @@ 5.7.12 5.3.39 - 1.8.3 + 1.8.4-m1 -- Gitee From a77c4d1f08f91a085c0fea4942ce555bd98913e2 Mon Sep 17 00:00:00 2001 From: warm <290631660@qq.com> Date: Mon, 10 Nov 2025 16:43:33 +0800 Subject: [PATCH 3/6] =?UTF-8?q?[feat]=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E8=B7=AF=E5=BE=84=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=94=AF=E6=8C=81disabled=E5=AD=97=E6=AE=B5=EF=BC=8C=E5=8D=95?= =?UTF-8?q?=E7=8B=AC=E6=8E=A7=E5=88=B6=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=8F=AF=E7=BC=96=E8=BE=91=EF=BC=8C=E6=AF=94=E5=A6=82?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/flow/definition/index.vue | 23 ++++++++++++++++--- .../src/views/flow/definition/warm-flow.vue | 6 ++++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ruoyi-ui/src/views/flow/definition/index.vue b/ruoyi-ui/src/views/flow/definition/index.vue index 1221e9d3..c89ccfa9 100644 --- a/ruoyi-ui/src/views/flow/definition/index.vue +++ b/ruoyi-ui/src/views/flow/definition/index.vue @@ -127,6 +127,18 @@ @click="handleDesign(scope.row.id, true)" v-hasPermi="['flow:definition:queryDesign']" >流程设计② + 查看流程图① + 查看流程图② Date: Thu, 13 Nov 2025 16:06:46 +0800 Subject: [PATCH 4/6] =?UTF-8?q?[fix]=20=E4=BF=AE=E5=A4=8D=E5=B9=B6?= =?UTF-8?q?=E8=A1=8C=E5=92=8C=E4=BA=92=E6=96=A5=E7=BD=91=E5=85=B3=E9=83=BD?= =?UTF-8?q?=E6=98=AF=E6=88=90=E5=AF=B9=E5=87=BA=E7=8E=B0=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E6=9F=90=E4=BA=9B=E9=97=AE=E9=A2=98=20[remove]=20=E7=A7=BB?= =?UTF-8?q?=E9=99=A4DefService=E4=B8=ADsaveAndInitNode=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/warm/v1-upgrade/warm-flow_1.8.4.sql | 5 +++++ sql/warm/warm-flow-all.sql | 1 + 2 files changed, 6 insertions(+) create mode 100644 sql/warm/v1-upgrade/warm-flow_1.8.4.sql diff --git a/sql/warm/v1-upgrade/warm-flow_1.8.4.sql b/sql/warm/v1-upgrade/warm-flow_1.8.4.sql new file mode 100644 index 00000000..fa4ed208 --- /dev/null +++ b/sql/warm/v1-upgrade/warm-flow_1.8.4.sql @@ -0,0 +1,5 @@ +ALTER TABLE flow_node MODIFY COLUMN node_ratio varchar(200) NULL COMMENT '流程签署比例值'; +ALTER TABLE flow_node DROP COLUMN handler_type; +ALTER TABLE flow_node DROP COLUMN handler_path; + +INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES(141, 16, '网关直连-复杂', '16', 'leave_type', NULL, 'default', 'N', '0', 'admin', '2025-11-13 14:43:13', 'admin', '2025-11-13 14:43:19', 'leaveFlow-direct2'); diff --git a/sql/warm/warm-flow-all.sql b/sql/warm/warm-flow-all.sql index 7cdb1658..be78e63b 100644 --- a/sql/warm/warm-flow-all.sql +++ b/sql/warm/warm-flow-all.sql @@ -284,6 +284,7 @@ INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (137, 12, '仿钉钉', '12', 'leave_type', NULL, 'default', 'N', '0', 'admin', '2025-08-01 10:09:38', 'admin', '2025-08-01 10:10:01', 'leaveFlow-mimic'); INSERT INTO sys_dict_data(dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES(138, 13, '包含网关-经典', '13', 'leave_type', NULL, 'default', 'N', '0', 'admin', '2025-10-24 10:17:08', '', NULL, 'leaveFlow-inclusive1'); INSERT INTO sys_dict_data(dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES(139, 14, '包含网关-仿钉钉', '14', 'leave_type', NULL, 'default', 'N', '0', 'admin', '2025-10-24 10:17:34', '', NULL, 'leaveFlow-inclusive2'); +INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES(141, 16, '网关直连-复杂', '16', 'leave_type', NULL, 'default', 'N', '0', 'admin', '2025-11-13 14:43:13', 'admin', '2025-11-13 14:43:19', 'leaveFlow-direct2'); INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (100, 0, '未发布', '0', 'is_publish', '0', 'default', 'N', '0', 'admin', '2024-03-18 15:07:27', '', NULL, '未发布'); INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (101, 1, '已发布', '1', 'is_publish', '1', 'default', 'N', '0', 'admin', '2024-03-18 15:07:37', '', NULL, '已发布'); -- Gitee From ec733e12c1e323646d266cf4a9c5df77bb35dbda Mon Sep 17 00:00:00 2001 From: warm <290631660@qq.com> Date: Thu, 13 Nov 2025 16:14:22 +0800 Subject: [PATCH 5/6] =?UTF-8?q?[upgrade]=20warm-flow=20=E5=8D=87=E7=BA=A71?= =?UTF-8?q?.8.-m2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f11ac0d4..2ccb74d6 100644 --- a/pom.xml +++ b/pom.xml @@ -36,7 +36,7 @@ 5.7.12 5.3.39 - 1.8.4-m1 + 1.8.4-m2 -- Gitee From 6ae65934bbe1ef2553052e65d28dd20cbbb9ebb7 Mon Sep 17 00:00:00 2001 From: warm <290631660@qq.com> Date: Fri, 14 Nov 2025 10:20:46 +0800 Subject: [PATCH 6/6] =?UTF-8?q?[fix]=20=E4=BF=AE=E5=A4=8D=E7=A5=A8?= =?UTF-8?q?=E7=AD=BE=E7=AD=96=E7=95=A5=E9=83=A8=E5=88=86=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../ruoyi/system/service/VoteSignService.java | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 2ccb74d6..742dd930 100644 --- a/pom.xml +++ b/pom.xml @@ -36,7 +36,7 @@ 5.7.12 5.3.39 - 1.8.4-m2 + 1.8.4-m3 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/VoteSignService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/VoteSignService.java index a5519c1c..23655547 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/VoteSignService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/VoteSignService.java @@ -9,7 +9,7 @@ import org.springframework.stereotype.Component; import java.util.List; /** - * 票签通过率计算 + * 票签spel表达式计算 * * @author warm * @since 2025/11/7 @@ -22,22 +22,24 @@ public class VoteSignService { /** * 票签通过率计算 * - * @param skipType 跳过类型 - * @param passNum 通过数量 - * @param rejectNum 拒绝数量 - * @param todoNum 待处理数量 - * @param passList 通过历史任务列表 - * @param rejectList 拒绝历史任务列表 + * @param skipType 跳转类型 + * @param passNum 审批通过人数 + * @param rejectNum 审批驳回人数 + * @param todoNum 待处理人数 + * @param allNum 总人数 + * @param passList List 通过历史任务列表,HisTask中approver字段是审批人的唯一标识 + * @param rejectList List 拒绝历史任务列表,HisTask中approver字段是审批人的唯一标识 * @param todoList 待处理用户列表 * @return boolean */ - public boolean eval(String skipType, Integer passNum, Integer rejectNum, Integer todoNum + public boolean eval(String skipType, Integer passNum, Integer rejectNum, Integer todoNum, Integer allNum , List passList, List rejectList, List todoList ) { log.info("跳过类型: {}", skipType); log.info("通过数量: {}", passNum); log.info("拒绝数量: {}", rejectNum); log.info("待处理数量: {}", todoNum); + log.info("总人数: {}", allNum); log.info("通过历史任务列表: {}", passList); log.info("拒绝历史任务列表: {}", rejectList); log.info("待处理用户列表: {}", todoList); -- Gitee