feat(oa): 添加项目置顶功能和任务关联项目进度字段
- 在项目实体类 SysOaProject 及其相关 BO、VO 类中增加 isTop 字段,用于标识项目是否置顶- 更新 SysOaProjectMapper.xml 查询语句,将 is_top 字段纳入查询结果 - 修改 SysOaProjectServiceImpl 中的查询逻辑,优先展示置顶项目,并按创建时间排序 - 在任务实体类 SysOaTask 及其相关 BO、VO 类中新增 trackId 字段,用于关联项目进度- 更新 SysOaTaskMapper.xml 查询语句,联查 oa_project_schedule_step 表获取节点信息 - 优化 SQL 查询中的字段对齐格式,提升可读性
This commit is contained in:
@@ -165,4 +165,6 @@ public class SysOaProject extends BaseEntity {
|
||||
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||
private Long customerId;
|
||||
|
||||
//是否置顶
|
||||
private Integer isTop;
|
||||
}
|
||||
|
||||
@@ -145,4 +145,7 @@ public class SysOaTask extends BaseEntity {
|
||||
*/
|
||||
private String files;
|
||||
|
||||
//关联项目进度id
|
||||
private Long trackId;
|
||||
|
||||
}
|
||||
|
||||
@@ -201,5 +201,7 @@ public class SysOaProjectBo extends BaseEntity {
|
||||
private Long customerId;
|
||||
//客户名称
|
||||
private String customerName;
|
||||
//是否置顶
|
||||
private Integer isTop;
|
||||
}
|
||||
|
||||
|
||||
@@ -188,4 +188,7 @@ public class SysOaTaskBo extends BaseEntity {
|
||||
private String projectCode;
|
||||
//部门id
|
||||
private Long deptId;
|
||||
|
||||
//关联项目进度id
|
||||
private Long trackId;
|
||||
}
|
||||
|
||||
@@ -267,4 +267,7 @@ public class SysOaProjectVo {
|
||||
private Long customerId;
|
||||
//客户名称
|
||||
private String customerName;
|
||||
|
||||
//是否置顶
|
||||
private Integer isTop;
|
||||
}
|
||||
|
||||
@@ -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<SysUser> 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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
</select>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user