From f0e9f9626f62a928544ab6c282cf76c1808d4ecc Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Sat, 13 Dec 2025 15:20:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E6=96=B0=E5=A2=9E=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=B7=A5=E8=89=BA=E5=8D=A1=E5=92=8C=E5=8F=91=E8=B4=A7?= =?UTF-8?q?=E5=8D=95=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 - 在 IOaProcessCardService 接口中新增 queryProjectList 方法 - 在 OaProcessCardController 中添加 /projectList 接口用于查询项目列表 - 实现 OaProcessCardServiceImpl 中的 queryProjectList 方法逻辑 - 统计每个项目的工艺卡和发货单数量并返回 - 新增 SysOaProjectVo 字段 processCardCount 和 deliveryOrderCount - 注入 SysOaProjectMapper 和 OaDeliveryOrderMapper 依赖 - 使用 BeanUtil 转换 SysOaProject 到 SysOaProjectVo 对象 - 添加相关 import 引用及必要的 Java 工具类导入 --- .../controller/OaProcessCardController.java | 7 ++++ .../ruoyi/oa/domain/vo/SysOaProjectVo.java | 4 ++ .../oa/service/IOaProcessCardService.java | 3 ++ .../impl/OaProcessCardServiceImpl.java | 39 +++++++++++++++++++ 4 files changed, 53 insertions(+) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardController.java index b6d8212..ae0f289 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardController.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Arrays; import java.util.concurrent.TimeUnit; +import com.ruoyi.oa.domain.vo.SysOaProjectVo; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.*; @@ -106,4 +107,10 @@ public class OaProcessCardController extends BaseController { public R insertProcessCard(@Validated(AddGroup.class) @RequestBody OaProcessCardBo bo) { return toAjax(iOaProcessCardService.insertProcessCard(bo)); } + + //查询所有项目并且带上工艺卡和发货单数量 + @GetMapping("/projectList") + public R> projectList() { + return R.ok(iOaProcessCardService.queryProjectList()); + } } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java index 30b55f4..a075d6f 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaProjectVo.java @@ -280,4 +280,8 @@ public class SysOaProjectVo { //生产结项状态 private Integer productStatus; + + private Long processCardCount; + + private Long deliveryOrderCount; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardService.java index 0b87df8..9fd582c 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardService.java @@ -5,6 +5,7 @@ import com.ruoyi.oa.domain.vo.OaProcessCardVo; import com.ruoyi.oa.domain.bo.OaProcessCardBo; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.oa.domain.vo.SysOaProjectVo; import java.util.Collection; import java.util.List; @@ -48,4 +49,6 @@ public interface IOaProcessCardService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); Boolean insertProcessCard(OaProcessCardBo bo); + + List queryProjectList(); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java index 0c3bf89..cae9032 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java @@ -9,8 +9,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.oa.domain.OaProcessCardDetail; +import com.ruoyi.oa.domain.SysOaProject; import com.ruoyi.oa.domain.bo.OaProcessCardDetailBo; +import com.ruoyi.oa.domain.vo.SysOaProjectVo; import com.ruoyi.oa.mapper.OaProcessCardDetailMapper; +import com.ruoyi.oa.mapper.SysOaProjectMapper; import com.ruoyi.oa.service.IOaProcessCardDetailService; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; @@ -19,9 +22,12 @@ import com.ruoyi.oa.domain.bo.OaProcessCardBo; import com.ruoyi.oa.domain.vo.OaProcessCardVo; import com.ruoyi.oa.domain.OaProcessCard; import com.ruoyi.oa.mapper.OaProcessCardMapper; +import com.ruoyi.oa.mapper.OaDeliveryOrderMapper; +import com.ruoyi.oa.domain.OaDeliveryOrder; import com.ruoyi.oa.service.IOaProcessCardService; import org.springframework.transaction.annotation.Transactional; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Collection; @@ -41,6 +47,10 @@ public class OaProcessCardServiceImpl implements IOaProcessCardService { private final OaProcessCardDetailMapper oaProcessCardDetailMapper; + private final SysOaProjectMapper sysOaProjectMapper; + + private final OaDeliveryOrderMapper oaDeliveryOrderMapper; + /** * 查询工艺卡主 */ @@ -176,4 +186,33 @@ public class OaProcessCardServiceImpl implements IOaProcessCardService { } return flag; } + + @Override + public List queryProjectList() { + // 拿到项目名字projectName projectNum projectCode + List sysOaProjects = sysOaProjectMapper.selectList(); + // 现在已经有了projectId然后需要看到工艺还是发货哪个地方绑定了这个projectId + List sysOaProjectVos = sysOaProjects.stream() + .map(sysOaProject -> { + SysOaProjectVo vo = BeanUtil.toBean(sysOaProject, SysOaProjectVo.class); + Long projectId = sysOaProject.getProjectId(); + // 统计工艺卡数量(未删除) + Long processCardCount = baseMapper.selectCount( + Wrappers.lambdaQuery() + .eq(OaProcessCard::getProjectId, projectId) + .eq(OaProcessCard::getDelFlag, 0) + ); + vo.setProcessCardCount(processCardCount); + // 统计送货单数量(未删除) + Long deliveryOrderCount = oaDeliveryOrderMapper.selectCount( + Wrappers.lambdaQuery() + .eq(OaDeliveryOrder::getProjectId, projectId) + .eq(OaDeliveryOrder::getDelFlag, 0) + ); + vo.setDeliveryOrderCount(deliveryOrderCount); + return vo; + }) + .collect(Collectors.toList()); + return sysOaProjectVos; + } }