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)
|
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||||
private Long customerId;
|
private Long customerId;
|
||||||
|
|
||||||
|
//是否置顶
|
||||||
|
private Integer isTop;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,4 +145,7 @@ public class SysOaTask extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String files;
|
private String files;
|
||||||
|
|
||||||
|
//关联项目进度id
|
||||||
|
private Long trackId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -201,5 +201,7 @@ public class SysOaProjectBo extends BaseEntity {
|
|||||||
private Long customerId;
|
private Long customerId;
|
||||||
//客户名称
|
//客户名称
|
||||||
private String customerName;
|
private String customerName;
|
||||||
|
//是否置顶
|
||||||
|
private Integer isTop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -188,4 +188,7 @@ public class SysOaTaskBo extends BaseEntity {
|
|||||||
private String projectCode;
|
private String projectCode;
|
||||||
//部门id
|
//部门id
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
|
|
||||||
|
//关联项目进度id
|
||||||
|
private Long trackId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -267,4 +267,7 @@ public class SysOaProjectVo {
|
|||||||
private Long customerId;
|
private Long customerId;
|
||||||
//客户名称
|
//客户名称
|
||||||
private String customerName;
|
private String customerName;
|
||||||
|
|
||||||
|
//是否置顶
|
||||||
|
private Integer isTop;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.oa.domain.vo;
|
package com.ruoyi.oa.domain.vo;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
@@ -108,7 +109,7 @@ public class SysOaTaskVo {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 涉及工人列表
|
* 涉及工人列表
|
||||||
* */
|
*/
|
||||||
private List<SysUser> workerList;
|
private List<SysUser> workerList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -216,4 +217,12 @@ public class SysOaTaskVo {
|
|||||||
private String projectCode;
|
private String projectCode;
|
||||||
//部门名称
|
//部门名称
|
||||||
private String deptName;
|
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.eq(bo.getSigningCompany()!= null, SysOaProject::getSigningCompany, bo.getSigningCompany());
|
||||||
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
|
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
|
||||||
SysOaProject::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
|
SysOaProject::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
|
||||||
lqw.orderByDesc(SysOaProject::getCreateTime);
|
|
||||||
//客户id作为筛选条件
|
//客户id作为筛选条件
|
||||||
lqw.eq(bo.getCustomerId() != null, SysOaProject::getCustomerId, bo.getCustomerId());
|
lqw.eq(bo.getCustomerId() != null, SysOaProject::getCustomerId, bo.getCustomerId());
|
||||||
|
lqw.orderByDesc(SysOaProject::getIsTop) // 置顶项目优先
|
||||||
|
.orderByDesc(SysOaProject::getCreateTime); // 同状态下按创建时间倒序(多个置顶项目按创建时间排序)
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -308,7 +308,8 @@
|
|||||||
p.original_finish_time,
|
p.original_finish_time,
|
||||||
TIMESTAMPDIFF(DAY, NOW(), p.postpone_time) AS remainTime,
|
TIMESTAMPDIFF(DAY, NOW(), p.postpone_time) AS remainTime,
|
||||||
p.customer_id AS customerId,
|
p.customer_id AS customerId,
|
||||||
c.name AS customerName
|
c.name AS customerName,
|
||||||
|
p.is_top AS isTop
|
||||||
FROM sys_oa_project p
|
FROM sys_oa_project p
|
||||||
LEFT JOIN oa_customer c ON p.customer_id = c.customer_id
|
LEFT JOIN oa_customer c ON p.customer_id = c.customer_id
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
@@ -551,7 +552,8 @@
|
|||||||
color,
|
color,
|
||||||
trade_type,
|
trade_type,
|
||||||
sop.project_code,
|
sop.project_code,
|
||||||
pre_pay
|
pre_pay,
|
||||||
|
is_top
|
||||||
FROM sys_oa_project sop
|
FROM sys_oa_project sop
|
||||||
INNER JOIN sys_oa_warehouse_master sown
|
INNER JOIN sys_oa_warehouse_master sown
|
||||||
ON sown.project_id = sop.project_id
|
ON sown.project_id = sop.project_id
|
||||||
|
|||||||
@@ -77,12 +77,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
sot.update_time,
|
sot.update_time,
|
||||||
sot.del_flag,
|
sot.del_flag,
|
||||||
sot.own_rank,
|
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_name,
|
||||||
sop.project_num,
|
sop.project_num,
|
||||||
sop.project_code,
|
sop.project_code,
|
||||||
su1.nick_name AS createUserNickName,
|
su1.nick_name AS createUserNickName,
|
||||||
su2.nick_name AS workerNickName,
|
su2.nick_name AS workerNickName,
|
||||||
sd.dept_name AS deptName,
|
sd.dept_name AS deptName,
|
||||||
IF(
|
IF(
|
||||||
sot.completed_time IS NULL,
|
sot.completed_time IS NULL,
|
||||||
IF(
|
IF(
|
||||||
@@ -93,7 +97,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
WHERE a.task_id = sot.task_id
|
WHERE a.task_id = sot.task_id
|
||||||
AND a.completed_time IS NULL
|
AND a.completed_time IS NULL
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
) IS NOT NULL,
|
) IS NOT NULL,
|
||||||
-- 如果子查询有值,就用它来算超期天数
|
-- 如果子查询有值,就用它来算超期天数
|
||||||
DATEDIFF(
|
DATEDIFF(
|
||||||
NOW(),
|
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_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_oa_project sop ON sop.project_id = sot.project_id
|
||||||
LEFT JOIN sys_dept sd ON sd.dept_id = su2.dept_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}
|
${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user