From 98cb07b710c6eb3301c3b6db2a0eb01feca7081f Mon Sep 17 00:00:00 2001 From: chenhao Date: Fri, 26 Sep 2025 15:29:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(sip):=20=E6=96=B0=E5=A2=9E=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E4=B8=9A=E5=8A=A1=E7=BC=96=E7=A0=81=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=AE=A2=E5=8D=95=E4=BF=A1=E6=81=AF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在IProjectOrderInfoService接口中新增listByCodeList方法 - 在ProjectOrderInfoController中添加uploadFinalFile属性 - 在ProjectOrderInfoMapper中新增listByCodeList方法 - 在ProjectOrderInfoMapper.xml中添加listByCodeList查询SQL - 在ProjectOrderInfoServiceImpl中实现listByCodeList方法 - 在Todo实体类中新增businessId和businessName字段 - 在TodoMapper.xml中优化查询条件并支持按业务名称搜索 - 在TodoServiceImpl中注入IProjectOrderInfoService并关联业务信息 --- .../ProjectOrderInfoController.java | 1 + .../com/ruoyi/sip/flowable/domain/Todo.java | 4 ++ .../service/impl/TodoServiceImpl.java | 26 +++++++- .../sip/mapper/ProjectOrderInfoMapper.java | 2 + .../sip/service/IProjectOrderInfoService.java | 2 + .../impl/ProjectOrderInfoServiceImpl.java | 5 ++ .../main/resources/mapper/flow/TodoMapper.xml | 66 ++++++++++++++----- .../mapper/sip/ProjectOrderInfoMapper.xml | 8 +++ 8 files changed, 97 insertions(+), 17 deletions(-) diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectOrderInfoController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectOrderInfoController.java index b8e00068..273b53bf 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectOrderInfoController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectOrderInfoController.java @@ -276,6 +276,7 @@ public class ProjectOrderInfoController extends BaseController ("产品经理".equals(todoCompletedList.get(todoCompletedList.size() - 1).getTaskName()) || "商务".equals(todoCompletedList.get(todoCompletedList.size() - 1).getTaskName())) : true; mmap.put("updateFile", ShiroUtils.getSubject().hasRole("sale_assistant") && updateFlag); + mmap.put("uploadFinalFile",false); return prefix + "/edit"; } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/domain/Todo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/domain/Todo.java index a4ade989..c4c48ea7 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/domain/Todo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/flowable/domain/Todo.java @@ -96,4 +96,8 @@ public class Todo extends BaseEntity private Map variables; private List taxRateData; + + + private Long businessId; + private String businessName; } 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 bb8b3b29..6aea2daf 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 @@ -12,10 +12,13 @@ import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.sip.domain.ProjectOrderInfo; +import com.ruoyi.sip.flowable.controller.TodoController; import com.ruoyi.sip.flowable.domain.Todo; import com.ruoyi.sip.flowable.mapper.TodoMapper; import com.ruoyi.sip.flowable.service.TodoCommonTemplate; import com.ruoyi.sip.flowable.service.TodoService; +import com.ruoyi.sip.service.IProjectOrderInfoService; import com.ruoyi.system.mapper.SysUserMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; @@ -29,6 +32,7 @@ import javax.annotation.Resource; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -58,6 +62,9 @@ public class TodoServiceImpl implements TodoService { @Autowired private SysUserMapper sysUserMapper; + @Autowired + private IProjectOrderInfoService projectOrderInfoService; + /** * 查询待办 * @@ -133,8 +140,6 @@ public class TodoServiceImpl implements TodoService { public List selectTodoCompletedList(Todo todo) { List todoCompletedList = todoMapper.selectTodoCompletedList(todo); List todoList = todoMapper.selectTodoList(todo); - - List collect = todoCompletedList.stream().map(item->Long.parseLong(item.getApproveUser())).collect(Collectors.toList()); SysUser queryUserParam = new SysUser(); queryUserParam.setUserIdList(collect); @@ -153,6 +158,23 @@ public class TodoServiceImpl implements TodoService { todoDto.setNextAllApproveUserName(nextApproveUserName); todoDto.setRoleName(userRoleMap.get(Long.parseLong(todoDto.getApproveUser()))); } + //关联业务信息 + List businessKeyList = todoCompletedList.stream().map(Todo::getBusinessKey).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(businessKeyList)){ + List orderInfoList = projectOrderInfoService.listByCodeList(businessKeyList); + Map orderInfoMap = orderInfoList.stream().collect(Collectors.toMap(ProjectOrderInfo::getOrderCode, Function.identity(), (v1, v2) -> v1)); + todoCompletedList.forEach(item -> { + ProjectOrderInfo projectOrderInfo = orderInfoMap.get(item.getBusinessKey()); + if (ObjectUtils.isEmpty(projectOrderInfo)) { + return; + } + item.setBusinessId(projectOrderInfo.getId()); + item.setBusinessName(projectOrderInfo.getProjectName()); + }); + } + + + return todoCompletedList; } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProjectOrderInfoMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProjectOrderInfoMapper.java index e2956dff..d2e3d941 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProjectOrderInfoMapper.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProjectOrderInfoMapper.java @@ -77,4 +77,6 @@ public interface ProjectOrderInfoMapper void bakData(ProjectOrderInfo projectOrderInfo); List listOrderInfoVo(ProjectOrderInfo queryParams); + + List listByCodeList(List businessKeyList); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java index 4bc79ea2..7e2c2443 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java @@ -96,4 +96,6 @@ public interface IProjectOrderInfoService * @return 填充后的文件字节数组 */ byte[] exportContractTemplate(ProjectOrderInfo orderInfo); + + List listByCodeList(List businessKeyList); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java index a85c5d09..98fe0dfb 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java @@ -1313,6 +1313,11 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To } } + @Override + public List listByCodeList(List businessKeyList) { + return projectOrderInfoMapper.listByCodeList(businessKeyList); + } + private void replaceTextInDocument(XWPFDocument document, ProjectOrderInfo orderInfo) { // 替换段落中的文本 for (XWPFParagraph paragraph : document.getParagraphs()) { diff --git a/ruoyi-sip/src/main/resources/mapper/flow/TodoMapper.xml b/ruoyi-sip/src/main/resources/mapper/flow/TodoMapper.xml index 8275107c..6e9015c6 100644 --- a/ruoyi-sip/src/main/resources/mapper/flow/TodoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/flow/TodoMapper.xml @@ -55,25 +55,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml index cd93cb84..cc504e82 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml @@ -269,6 +269,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t1.order_code in (select select DISTINCT order_code from oms_inventory_outer where outer_code in (select outer_code from oms_inventory_info where product_sn=#{productSn} ) ) +