From 739c1995cc3b05cb2d6cf4d498a44de23ce0676c Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Tue, 1 Apr 2025 14:30:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(bpm):=20=E9=87=87=E8=B4=AD=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=97=B6=E5=A2=9E=E5=8A=A0=E9=A1=B9=E7=9B=AE=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在获取可用采购单列表时,添加项目名称信息 - 新增 ProjectApi 接口方法 getProjectList- 实现 ProjectApiImpl 和 ProjectService 接口的 getProjectList 方法 - 优化 BpmOAProcurePayController 中的 getAvailablePurchaseOrders 方法 --- .../admin/oa/BpmOAProcurePayController.java | 23 ++++++++++++++++--- .../module/system/api/project/ProjectApi.java | 7 ++++++ .../system/api/project/ProjectApiImpl.java | 9 ++++++++ .../service/project/ProjectService.java | 8 +++++++ .../service/project/ProjectServiceImpl.java | 7 ++++++ 5 files changed, 51 insertions(+), 3 deletions(-) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcurePayController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcurePayController.java index 0facf882..2f9f5bfe 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcurePayController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAProcurePayController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @@ -10,7 +11,8 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.procurepay.BpmOAProcur import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAProcureDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAProcurePayDO; import cn.iocoder.yudao.module.bpm.service.oa.BpmOAProcurePayService; -import cn.iocoder.yudao.module.bpm.service.oa.BpmOAProcureService; +import cn.iocoder.yudao.module.system.api.project.ProjectApi; +import cn.iocoder.yudao.module.system.api.project.dto.ProjectDTO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -20,8 +22,12 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; import java.util.List; +import java.util.Map; +import java.util.Set; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; @Tag(name = "管理后台 - 采购支付") @RestController @@ -32,7 +38,7 @@ public class BpmOAProcurePayController { @Resource private BpmOAProcurePayService oAProcurePayService; @Resource - private BpmOAProcureService oaProcureService; + private ProjectApi projectApi; @PostMapping("/create") @Operation(summary = "创建采购支付") @@ -80,7 +86,18 @@ public class BpmOAProcurePayController { @Operation(summary = "获取可用采购单列表") public CommonResult> getAvailablePurchaseOrders(@RequestParam(name = "type", required = false) Integer type) { List list = oAProcurePayService.getAvailablePurchaseOrders(type); - return success(BeanUtils.toBean(list, BpmOAProcureRespVO.class)); + List respVOS = BeanUtils.toBean(list, BpmOAProcureRespVO.class); + if (CollUtil.isNotEmpty(respVOS)) { + // 获取项目编号列表 + Set projectNo = convertSet(respVOS, BpmOAProcureRespVO::getProjectNo); + List projectList = projectApi.getProjectList(projectNo).getCheckedData(); + Map projectMap = convertMap(projectList, ProjectDTO::getProjectNo); + + respVOS.forEach(respVO -> { + respVO.setProjectName(projectMap.get(respVO.getProjectNo()) != null ? projectMap.get(respVO.getProjectNo()).getName() : ""); + }); + } + return success(respVOS); } @GetMapping("/getByProcessInstanceId") diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/project/ProjectApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/project/ProjectApi.java index 99555a67..e372b114 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/project/ProjectApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/project/ProjectApi.java @@ -12,6 +12,9 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import java.util.Collection; +import java.util.List; + @FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory = @Tag(name = "RPC 服务 - 项目") public interface ProjectApi { @@ -26,4 +29,8 @@ public interface ProjectApi { @Operation(summary = "获得项目") @Parameter(name = "projectNo", description = "项目编号", required = true) CommonResult getProject(@RequestParam("projectNo") String projectNo); + + @PostMapping(PREFIX + "/get") + @Operation(summary = "获得项目") + CommonResult> getProjectList(@RequestBody Collection projectNos); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/project/ProjectApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/project/ProjectApiImpl.java index a2da17ca..08f763ec 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/project/ProjectApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/project/ProjectApiImpl.java @@ -11,6 +11,9 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; + import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @RestController // 提供 RESTful API 接口,给 Feign 调用 @@ -30,4 +33,10 @@ public class ProjectApiImpl implements ProjectApi { ProjectDO projectDO = projectService.getProject(projectNo); return success(BeanUtils.toBean(projectDO, ProjectDTO.class)); } + + @Override + public CommonResult> getProjectList(Collection projectNos) { + List projectDOList = projectService.getProjectList(projectNos); + return success(BeanUtils.toBean(projectDOList, ProjectDTO.class)); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/project/ProjectService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/project/ProjectService.java index 54562973..07d4b2b8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/project/ProjectService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/project/ProjectService.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.project.vo.ProjectSaveReq import cn.iocoder.yudao.module.system.dal.dataobject.project.ProjectDO; import javax.validation.Valid; +import java.util.Collection; import java.util.List; /** @@ -67,4 +68,11 @@ public interface ProjectService { * @return 项目列表 */ List getMyProject(Long userId); + + /** + * 获得项目列表 + * @param projectNos 项目编号集合 + * @return 项目信息列表 + */ + List getProjectList(Collection projectNos); } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/project/ProjectServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/project/ProjectServiceImpl.java index f2b9fbc0..82fdba67 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/project/ProjectServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/project/ProjectServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.Collection; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -86,4 +87,10 @@ public class ProjectServiceImpl implements ProjectService { .eq(ProjectDO::getStatus, 1)); } + @Override + public List getProjectList(Collection projectNos) { + + return projectMapper.selectList(ProjectDO::getProjectNo, projectNos); + } + } \ No newline at end of file