diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaProject.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaProject.java index 0fe00d3..f9ff66f 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaProject.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaProject.java @@ -165,4 +165,6 @@ public class SysOaProject extends BaseEntity { @TableField(updateStrategy = FieldStrategy.IGNORED) private Long customerId; + //是否置顶 + private Integer isTop; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTask.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTask.java index f7033d3..934f2f3 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTask.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SysOaTask.java @@ -145,4 +145,7 @@ public class SysOaTask extends BaseEntity { */ private String files; + //关联项目进度id + private Long trackId; + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaProjectBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaProjectBo.java index 400afd4..1640110 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaProjectBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaProjectBo.java @@ -201,5 +201,7 @@ public class SysOaProjectBo extends BaseEntity { private Long customerId; //客户名称 private String customerName; + //是否置顶 + private Integer isTop; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java index 5f45630..8ce8387 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaTaskBo.java @@ -188,4 +188,7 @@ public class SysOaTaskBo extends BaseEntity { private String projectCode; //部门id private Long deptId; + + //关联项目进度id + private Long trackId; } 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 9178198..5cebe75 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 @@ -267,4 +267,7 @@ public class SysOaProjectVo { private Long customerId; //客户名称 private String customerName; + + //是否置顶 + private Integer isTop; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java index 23def11..4ba838f 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SysOaTaskVo.java @@ -1,6 +1,7 @@ package com.ruoyi.oa.domain.vo; import java.util.Date; + import com.fasterxml.jackson.annotation.JsonFormat; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -108,7 +109,7 @@ public class SysOaTaskVo { /** * 涉及工人列表 - * */ + */ private List workerList; /** @@ -216,4 +217,12 @@ public class SysOaTaskVo { private String projectCode; //部门名称 private String deptName; + + //关联项目进度id + private Long trackId; + + //联查的节点信息 + private String tabNode; + private String firstLevelNode; + private String secondLevelNode; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java index 5c76c7e..b1f5f7a 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java @@ -189,9 +189,10 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { lqw.eq(bo.getSigningCompany()!= null, SysOaProject::getSigningCompany, bo.getSigningCompany()); lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null, SysOaProject::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime")); - lqw.orderByDesc(SysOaProject::getCreateTime); //客户id作为筛选条件 lqw.eq(bo.getCustomerId() != null, SysOaProject::getCustomerId, bo.getCustomerId()); + lqw.orderByDesc(SysOaProject::getIsTop) // 置顶项目优先 + .orderByDesc(SysOaProject::getCreateTime); // 同状态下按创建时间倒序(多个置顶项目按创建时间排序) return lqw; } diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml index 848d7f0..a0253ff 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaProjectMapper.xml @@ -308,7 +308,8 @@ p.original_finish_time, TIMESTAMPDIFF(DAY, NOW(), p.postpone_time) AS remainTime, p.customer_id AS customerId, - c.name AS customerName + c.name AS customerName, + p.is_top AS isTop FROM sys_oa_project p LEFT JOIN oa_customer c ON p.customer_id = c.customer_id ${ew.getCustomSqlSegment} @@ -551,7 +552,8 @@ color, trade_type, sop.project_code, - pre_pay + pre_pay, + is_top FROM sys_oa_project sop INNER JOIN sys_oa_warehouse_master sown ON sown.project_id = sop.project_id diff --git a/ruoyi-oa/src/main/resources/mapper/oa/SysOaTaskMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/SysOaTaskMapper.xml index 275d73c..001067a 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/SysOaTaskMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/SysOaTaskMapper.xml @@ -77,12 +77,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sot.update_time, sot.del_flag, sot.own_rank, + sot.track_id, + stepAgg.tab_node AS tabNode, + stepAgg.first_level_node AS firstLevelNode, + stepAgg.second_level_node AS secondLevelNode, sop.project_name, sop.project_num, sop.project_code, - su1.nick_name AS createUserNickName, - su2.nick_name AS workerNickName, - sd.dept_name AS deptName, + su1.nick_name AS createUserNickName, + su2.nick_name AS workerNickName, + sd.dept_name AS deptName, IF( sot.completed_time IS NULL, IF( @@ -93,7 +97,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE a.task_id = sot.task_id AND a.completed_time IS NULL LIMIT 1 - ) IS NOT NULL, + ) IS NOT NULL, -- 如果子查询有值,就用它来算超期天数 DATEDIFF( NOW(), @@ -115,6 +119,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LEFT JOIN sys_user su2 ON su2.user_id = sot.worker_id LEFT JOIN sys_oa_project sop ON sop.project_id = sot.project_id LEFT JOIN sys_dept sd ON sd.dept_id = su2.dept_id + LEFT JOIN oa_project_schedule_step stepAgg ON stepAgg.track_id = sot.track_id ${ew.getCustomSqlSegment}