From 6d84da23c3243f904cee97716a87f52c15f73e39 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 3 Dec 2025 16:54:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E6=96=B0=E5=A2=9E=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E9=A1=B9=E7=9B=AE=E8=BF=9B=E5=BA=A6=E6=AD=A5=E9=AA=A4?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在IOaProjectScheduleStepService接口中新增queryPageListMyPage方法 - 在OaProjectScheduleStepController中新增/listMyPage接口 - 实现buildQueryMyWrapper方法,默认筛选当前用户负责的节点 - 添加按照负责人(steward)字段进行筛选的功能 - 查询条件包括状态、供应商、计划完成时间范围等 - 结果按计划完成时间倒序排列,已完成项排在最后 - 支持分页查询和个人工作台页面展示需求 --- .../OaProjectScheduleStepController.java | 7 +++++ .../IOaProjectScheduleStepService.java | 1 + .../impl/OaProjectScheduleServiceImpl.java | 2 ++ .../OaProjectScheduleStepServiceImpl.java | 29 +++++++++++++++++++ 4 files changed, 39 insertions(+) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProjectScheduleStepController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProjectScheduleStepController.java index 61ee8a3..9b49bc3 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProjectScheduleStepController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProjectScheduleStepController.java @@ -61,6 +61,13 @@ public class OaProjectScheduleStepController extends BaseController { return iOaProjectScheduleStepService.queryPageListPage(bo, pageQuery); } + /** + * 查询项目进度步骤跟踪列表 + */ + @GetMapping("/listMyPage") + public TableDataInfo listMyPage(OaProjectScheduleStepBo bo, PageQuery pageQuery) { + return iOaProjectScheduleStepService.queryPageListMyPage(bo, pageQuery); + } /** * 导出项目进度步骤跟踪列表 */ diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProjectScheduleStepService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProjectScheduleStepService.java index c215a59..61bf761 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProjectScheduleStepService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProjectScheduleStepService.java @@ -76,4 +76,5 @@ public interface IOaProjectScheduleStepService{ PersonalReportDTO personalReport(Long poolId, String nickName); + TableDataInfo queryPageListMyPage(OaProjectScheduleStepBo bo, PageQuery pageQuery); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java index ab0f981..8def0ca 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java @@ -93,6 +93,8 @@ public class OaProjectScheduleServiceImpl implements IOaProjectScheduleService { lqw.eq(bo.getStatus() != null, "ops.status", bo.getStatus()); //根据内外贸 lqw.eq(bo.getTradeType() !=null, "op.trade_type",bo.getTradeType()); + //新增按照steward筛选 + lqw.eq(bo.getSteward() != null, "ops.steward", bo.getSteward()); //根据代号 lqw.like(bo.getProjectCode() != null, "op.project_code", bo.getProjectCode()); lqw.like(bo.getProjectNum() != null, "op.project_num", bo.getProjectNum()); diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java index 59aec6b..31cf410 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java @@ -105,6 +105,33 @@ public class OaProjectScheduleStepServiceImpl implements IOaProjectScheduleStepS return TableDataInfo.build(result); } + @Override + public TableDataInfo queryPageListMyPage(OaProjectScheduleStepBo bo, PageQuery pageQuery) { + QueryWrapper lqw = buildQueryMyWrapper(bo); + Page result = baseMapper.selectVoPageNew(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + private QueryWrapper buildQueryMyWrapper(OaProjectScheduleStepBo bo) { + Map params = bo.getParams(); + QueryWrapper lqw = Wrappers.query(); + lqw.eq("opss.use_flag", 1); + lqw.eq(bo.getScheduleId() != null, "opss.schedule_id", bo.getScheduleId()); + lqw.eq("opss.del_flag", 0); + lqw.eq(bo.getStepOrder() != null, "opss.step_order", bo.getStepOrder()); + lqw.like(StringUtils.isNotBlank(bo.getStepName()), "opss.step_name", bo.getStepName()); + lqw.eq(bo.getStatus() != null, "opss.status", bo.getStatus()); + // 默认将负责人设置为当前用户 + String currentUser = LoginHelper.getNickName(); + lqw.eq(StringUtils.isNotBlank(currentUser), "opss.node_header", currentUser); + lqw.eq(bo.getSupplierId() != null, "opss.supplier_id", bo.getSupplierId()); + //根据开始时间和结束时间作为范围判断planEnd + lqw.ge(bo.getStartTime() != null, "opss.plan_end", bo.getStartTime()); + lqw.le(bo.getEndTime() != null, "opss.plan_end", bo.getEndTime()); + // 按时间倒序排列,已完成的排在最后 + lqw.orderByDesc("opss.plan_end"); + lqw.orderByAsc("opss.status = 2"); // 状态为2表示已完成,将其排在最后 + return lqw; + } /** * 查询项目进度步骤跟踪列表 */ @@ -488,6 +515,8 @@ public class OaProjectScheduleStepServiceImpl implements IOaProjectScheduleStepS return result; } + + /** * 统计用户活跃天数 * @param userId 用户ID