需求增加筛选

This commit is contained in:
2025-12-02 16:55:34 +08:00
parent 0f1c7b02fe
commit 563699a527
5 changed files with 133 additions and 63 deletions

View File

@@ -64,6 +64,8 @@ public class ZtProjectQo extends BaseQo {
private String status; private String status;
private List<String> stageList;
private String title; private String title;
private Integer module; private Integer module;

View File

@@ -305,6 +305,11 @@ public class ZtStoryUserServiceImpl extends ServiceImpl<ZtStoryUserMapper, ZtSto
qo.setProductIds(pIds); qo.setProductIds(pIds);
} }
if(!CollectionUtils.isEmpty(qo.getStatusList())&&qo.getStatusList().contains("unconfirmed")) {
qo.getStatusList().addAll(Arrays.asList("unconfirmed",
"waitcommunicate","waitdesign","designdoing","designdone","storyunconfirmed"));
}
Page<ZtStoryUserDTO> page = PageHelper.startPage(qo.getCurrentPage(), qo.getPageSize()); Page<ZtStoryUserDTO> page = PageHelper.startPage(qo.getCurrentPage(), qo.getPageSize());
List<ZtStoryUserDTO> list = this.baseMapper.pageList(qo); List<ZtStoryUserDTO> list = this.baseMapper.pageList(qo);
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {

View File

@@ -786,6 +786,44 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
} }
} }
if (ztTask.getDeadline() != null && ztTask.getStory() != null && ztTask.getStory() != 0) {
ZtStory ztStory = this.storyService.getById(ztTask.getStory());
ztStory.setDevelPlanEndTime(null);
if (ztTask.getType().equals("devel") && (ztStory.getDevelPlanEndTime() == null || ztTask.getDeadline().after(ztStory.getDevelPlanEndTime()))) {
ztStory.setDevelPlanEndTime(ztTask.getDeadline());
} else {
//查找最大时间那个
List<ZtTask> ztTasks = this.baseMapper.selectList(new QueryWrapper<ZtTask>().lambda()
.select(ZtTask::getDeadline)
.isNotNull(ZtTask::getDeadline)
.eq(ZtTask::getType, "devel")
.ne(ZtTask::getId, ztTask.getId())
.in(ZtTask::getStatus, "pause", "done", "wait", "reviewing", "doing", "draft")
.eq(ZtTask::getStory, ztTask.getStory()).orderByDesc(ZtTask::getDeadline));
this.storyService.update(new UpdateWrapper<ZtStory>().lambda()
.eq(ZtStory::getId, ztTask.getStory())
.set(ZtStory::getDevelPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline())));
}
if (ztTask.getType().equals("test") && (ztStory.getTestPlanEndTime() == null || ztTask.getDeadline().after(ztStory.getTestPlanEndTime()))) {
ztStory.setTestPlanEndTime(ztTask.getDeadline());
} else {
if (ztTask.getType().equals("test") && ztStory.getTestPlanEndTime() != null) {
//查找最大时间那个
ztStory.setDevelPlanEndTime(ztTask.getDeadline());
List<ZtTask> ztTasks = this.baseMapper.selectList(new QueryWrapper<ZtTask>().lambda()
.select(ZtTask::getDeadline)
.isNotNull(ZtTask::getDeadline)
.eq(ZtTask::getType, "test")
.ne(ZtTask::getId, ztTask.getId())
.in(ZtTask::getStatus, "pause", "done", "wait", "reviewing", "doing", "draft")
.eq(ZtTask::getStory, ztTask.getStory()).orderByDesc(ZtTask::getDeadline));
this.storyService.update(new UpdateWrapper<ZtStory>().lambda()
.eq(ZtStory::getId, ztTask.getStory())
.set(ZtStory::getTestPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline())));
}
}
this.storyService.updateById(ztStory);
}
fileService.updateFile(dto.getFiles(), ztTask.getId(), FileTypes.task); fileService.updateFile(dto.getFiles(), ztTask.getId(), FileTypes.task);

View File

@@ -264,11 +264,16 @@
and closedBy =#{qo.userName} and closedBy =#{qo.userName}
</if> </if>
<if test="qo.stageList != null and qo.stageList.size() > 0">
and s.stage in
<foreach collection="qo.stageList" item="id" index="index"
open="(" close=")" separator=",">
#{id}
</foreach>
</if>
group by s.id group by s.id
<choose> <choose>
<when test="qo.orderName != '' and qo.orderName != null "> <when test="qo.orderName != '' and qo.orderName != null ">
<choose> <choose>
@@ -284,20 +289,9 @@
order by s.id desc order by s.id desc
</otherwise> </otherwise>
</choose> </choose>
-- order by id desc -- order by id desc
</select> </select>
<select id="projectStoryPageList" resultType="com.sa.zentao.dao.ZtStoryDTO"> <select id="projectStoryPageList" resultType="com.sa.zentao.dao.ZtStoryDTO">
select s.id, select s.id,
s.vision, s.vision,
s.parent, s.parent,
@@ -381,6 +375,12 @@
WHERE 1=1 WHERE 1=1
<!-- <if test="qo.startDate !=null">-->
<!-- and s.openedDate <![CDATA[>=]]> #{qo.startDate}-->
<!-- </if>-->
<!-- <if test="qo.endDate !=null">-->
<!-- and s.openedDate <![CDATA[<=]]> #{qo.endDate}-->
<!-- </if>-->
<!-- <if test="qo.startDate !=null">--> <!-- <if test="qo.startDate !=null">-->
<!-- and s.openedDate <![CDATA[>=]]> #{qo.startDate}--> <!-- and s.openedDate <![CDATA[>=]]> #{qo.startDate}-->
<!-- </if>--> <!-- </if>-->
@@ -476,7 +476,6 @@
</if> </if>
<if test="qo.searchVal == 'JH' "> <if test="qo.searchVal == 'JH' ">
and s.status = 'active' and s.status = 'active'
</if> </if>
@@ -576,6 +575,14 @@
#{id} #{id}
</foreach> </foreach>
</if>
<if test="qo.stageList != null and qo.stageList.size() > 0">
and s.stage in
<foreach collection="qo.stageList" item="id" index="index"
open="(" close=")" separator=",">
#{id}
</foreach>
</if> </if>
@@ -1046,6 +1053,14 @@
</if> </if>
<if test="qo.stageList != null and qo.stageList.size() > 0">
and s.stage in
<foreach collection="qo.stageList" item="id" index="index"
open="(" close=")" separator=",">
#{id}
</foreach>
</if>
group by s.id group by s.id
<choose> <choose>

View File

@@ -162,6 +162,16 @@
and s.openedBy = #{qo.openedby} and s.openedBy = #{qo.openedby}
</if> </if>
<if test="qo.statusList != null and qo.statusList.size() > 0">
and s.status in
<foreach collection="qo.statusList" item="id" index="index"
open="(" close=")" separator=",">
#{id}
</foreach>
</if>
<if test="qo.status != null and qo.status != '' "> <if test="qo.status != null and qo.status != '' ">
-- 需求明确中、详细设计、详细设计中、产品已设计、需求待确认 这些查询状态合并成 “需求明确中” -- 需求明确中、详细设计、详细设计中、产品已设计、需求待确认 这些查询状态合并成 “需求明确中”