From 2899c05e9529917bae1daad9423209399c6f6336 Mon Sep 17 00:00:00 2001 From: chenhao Date: Tue, 9 Dec 2025 09:10:05 +0800 Subject: [PATCH] =?UTF-8?q?fix(flow):=20=E4=BF=AE=E6=AD=A3=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E4=BA=8B=E9=A1=B9=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=B9=B6=E6=96=B0=E5=A2=9E=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修正待办事项查询条件,使用用户ID替代用户名 - 新增待办事项统计接口及实现逻辑 - 调整项目订单信息字段拼写错误(order_tpye → order_type) - 在XML映射文件中增加approveUser查询条件判断 - 实现按流程类型分组统计数据功能 --- .../flowable/controller/TodoController.java | 10 ++++++-- .../sip/flowable/service/TodoService.java | 5 ++++ .../service/impl/TodoServiceImpl.java | 23 +++++++++++++++++++ .../main/resources/mapper/flow/TodoMapper.xml | 2 ++ .../mapper/sip/ProjectOrderInfoMapper.xml | 2 +- 5 files changed, 39 insertions(+), 3 deletions(-) diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/controller/TodoController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/controller/TodoController.java index d38bcdcc..81888ab0 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/controller/TodoController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/controller/TodoController.java @@ -48,7 +48,7 @@ public class TodoController extends BaseController { @ResponseBody public TableDataInfo todoList( Todo todo) { startPage(); - todo.setApproveUserName(getSysUser().getUserName()); + todo.setApproveUser(getSysUser().getUserId().toString()); List list = todoService.selectTodoList(todo); return getDataTable(list); } @@ -61,7 +61,7 @@ public class TodoController extends BaseController { @ResponseBody public TableDataInfo editSave( Todo todo) { startPage(); - todo.setApproveUserName(getSysUser().getUserName()); + todo.setApproveUser(getSysUser().getUserId().toString()); List list = todoService.selectTodoCompletedList(todo); return getDataTable(list); } @@ -110,4 +110,10 @@ public class TodoController extends BaseController { public AjaxResult statistics(@RequestBody Todo todo){ return todoService.statistics(todo); } + + @GetMapping("/todo/statistics") + @ResponseBody + public AjaxResult statisticsTodo(){ + return todoService.statisticsTodo(); + } } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/service/TodoService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/service/TodoService.java index 798112b7..6a36235d 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/service/TodoService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/service/TodoService.java @@ -136,4 +136,9 @@ public interface TodoService void fillOrderApproveNode(List list); void fillPurchaseOrderApproveNode(List list); + + + AjaxResult statisticsTodo(); + + } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/service/impl/TodoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/service/impl/TodoServiceImpl.java index 603144a9..5b7d96c8 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/service/impl/TodoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/service/impl/TodoServiceImpl.java @@ -370,6 +370,29 @@ public class TodoServiceImpl implements TodoService { } } + @Override + public AjaxResult statisticsTodo() { + Long userId = ShiroUtils.getUserId(); + if (userId == null) { + return AjaxResult.success(); + } + List orderKeyList = Arrays.asList(processConfig.getDefinition().getOrderApproveOffline(), processConfig.getDefinition().getOrderApproveOnline()); + Todo todo = new Todo(); + todo.setApproveUser(userId.toString()); + List todoList = todoMapper.selectTodoList(todo); + Map map = todoList.stream().collect(Collectors.groupingBy(Todo::getProcessKey, Collectors.counting())); + HashMap resultMap = new HashMap<>(); + for (Map.Entry entry : map.entrySet()) { + + String key = orderKeyList.contains(entry.getKey()) ? "order_approve" : entry.getKey(); + resultMap.compute(key, (k, v) -> { + Long value = entry.getValue() == null ? 0L : entry.getValue(); + return v == null ? value : v + value; + }); + } + return AjaxResult.success(resultMap); + } + /** * 流程审批 */ diff --git a/ruoyi-sip/src/main/resources/mapper/flow/TodoMapper.xml b/ruoyi-sip/src/main/resources/mapper/flow/TodoMapper.xml index 1d0c2845..ce3e474e 100644 --- a/ruoyi-sip/src/main/resources/mapper/flow/TodoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/flow/TodoMapper.xml @@ -44,6 +44,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and task_name like concat('%', #{taskName}, '%') and approve_user_name = #{approveUserName} + + and approve_user = #{approveUser} and apply_user_name like concat('%', #{applyUserName}, '%') diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml index 19ad8259..6b340181 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml @@ -50,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select t1.id, t1.project_id,t1.province, t1.city, t1.business_person, t1.business_email, t1.business_phone, t1.order_code, t1.currencyType, - t1.shipment_amount, t1.actual_purchase_amount, t1.order_end_time, t1.delivery_time, t1.company_delivery, t1.notifier,t1.order_tpye, + t1.shipment_amount, t1.actual_purchase_amount, t1.order_end_time, t1.delivery_time, t1.company_delivery, t1.notifier,t1.order_type, t1.notifier_email, t1.notifier_phone, t1.duty, t1.duty_email, t1.duty_phone, t1.order_channel, t1.partner_code, t1.supplier, t1.remark, t1.order_status, t1.create_by, t1.create_time, t1.update_by, t1.update_time,t1.partner_user_name,t1.partner_email ,t1.partner_phone,t1.version_code,t1.process_type,t1.process_template,t1.discount_fold,t1.notifier_address,t1.finance_status,