需求增加筛选

This commit is contained in:
2025-12-02 16:55:34 +08:00
parent 39fb580c0d
commit 3cd02cd773
5 changed files with 204 additions and 142 deletions

View File

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

View File

@@ -305,6 +305,11 @@ public class ZtStoryUserServiceImpl extends ServiceImpl<ZtStoryUserMapper, ZtSto
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());
List<ZtStoryUserDTO> list = this.baseMapper.pageList(qo);
if (!CollectionUtils.isEmpty(list)) {

View File

@@ -179,8 +179,8 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
if (CollectionUtils.isEmpty(taskList)) {
return new ArrayList<>();
}
taskList=taskList.stream().peek(e->{
if(e.getDeadline()!=null){
taskList = taskList.stream().peek(e -> {
if (e.getDeadline() != null) {
e.setDeadline(DateUtils.getDayLast(e.getDeadline()));
}
}).collect(Collectors.toList());
@@ -341,7 +341,7 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
// .and(e->e.or().)
// );
return this.baseMapper.taskListByPIdsAndDate(pids,firstDayOfMonth,lastDayOfMonth);
return this.baseMapper.taskListByPIdsAndDate(pids, firstDayOfMonth, lastDayOfMonth);
// return taskList;
}
@@ -386,8 +386,8 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
}
List<ZtTask> taskList = this.list(new QueryWrapper<ZtTask>().lambda()
.select(SFunctionColums.taskColumes())
.in(ZtTask::getProduct,pids)
.in(ZtTask::getAssignedTo,uids)
.in(ZtTask::getProduct, pids)
.in(ZtTask::getAssignedTo, uids)
.ge(ZtTask::getFinishedDate, firstDayOfMonth).le(ZtTask::getFinishedDate, lastDayOfMonth));
return taskList;
@@ -518,7 +518,7 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
List<String> userIds = list.stream().map(o -> o.getFinishedby()).collect(Collectors.toList());
userIds.addAll(list.stream().map(o -> o.getAssignedTo()).collect(Collectors.toList()));
Map<String, ZtUser> userMap = this.userService.userMapByIds(null);
Date d=new Date();
Date d = new Date();
for (ZtTaskDTO task : list) {
ZtUser ztUser = userMap.get(task.getFinishedby());
if (ztUser != null) {
@@ -531,16 +531,16 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
if (task.getDeadline() != null) {
task.setDeadline(DateUtils.getDayLast(task.getDeadline()));
}
if(task.getFinishedDate()!=null){
if(task.getFinishedDate().getTime()>DateUtils.getDayLast(task.getDeadline()).getTime()){
if (task.getFinishedDate() != null) {
if (task.getFinishedDate().getTime() > DateUtils.getDayLast(task.getDeadline()).getTime()) {
task.setDelayFlag(1);
}else{
} else {
task.setDelayFlag(2);
}
}else{
if(d.getTime()>DateUtils.getDayLast(task.getDeadline()).getTime()){
} else {
if (d.getTime() > DateUtils.getDayLast(task.getDeadline()).getTime()) {
task.setDelayFlag(1);
}else{
} else {
task.setDelayFlag(2);
}
}
@@ -644,16 +644,16 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
ztTask.setEstimate(ztTask.getUseTime().floatValue());
ztTask.setLeft(ztTask.getUseTime().floatValue());
}
if(ztTask.getDeadline()==null){
if (ztTask.getDeadline() == null) {
throw new BusinessException("当前环境异常请联系管理员");
}
this.baseMapper.insert(ztTask);
if(ztTask.getDeadline()!=null&&ztTask.getStory()!=null&&ztTask.getStory()!=0){
if (ztTask.getDeadline() != null && ztTask.getStory() != null && ztTask.getStory() != 0) {
ZtStory ztStory = this.storyService.getById(ztTask.getStory());
if(ztTask.getType().equals("devel")&&(ztStory.getDevelPlanEndTime()==null||ztTask.getDeadline().after(ztStory.getDevelPlanEndTime()))){
if (ztTask.getType().equals("devel") && (ztStory.getDevelPlanEndTime() == null || ztTask.getDeadline().after(ztStory.getDevelPlanEndTime()))) {
ztStory.setDevelPlanEndTime(ztTask.getDeadline());
}
if(ztTask.getType().equals("test")&&(ztStory.getTestPlanEndTime()==null||ztTask.getDeadline().after(ztStory.getTestPlanEndTime()))){
if (ztTask.getType().equals("test") && (ztStory.getTestPlanEndTime() == null || ztTask.getDeadline().after(ztStory.getTestPlanEndTime()))) {
ztStory.setTestPlanEndTime(ztTask.getDeadline());
}
this.storyService.updateById(ztStory);
@@ -703,7 +703,7 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
@Override
@Transactional
public void modifyTask(ZtTaskDTO dto) {
if(dto.getDeadline()==null||dto.getEstStarted()==null){
if (dto.getDeadline() == null || dto.getEstStarted() == null) {
throw new BusinessException("请录入开始结束日期");
}
ZtTask ztTask = this.baseMapper.selectById(dto.getId());
@@ -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);
@@ -812,11 +850,11 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
this.storyService.taskFinishChangeStatus(ztTask.getStory(), null, TaskType.transferType(ztTask.getType()), false);
}
if(ObjectUtils.notEqual(oldExecution,newExecution)){
if (ObjectUtils.notEqual(oldExecution, newExecution)) {
//迭代切换了
this.kanbanlaneService.removeKanbanCell(oldExecution,ztTask.getId(),KanbanCellType.TASK);
this.kanbanlaneService.removeKanbanCell(oldExecution, ztTask.getId(), KanbanCellType.TASK);
//添加新的看板迭代
this.kanbanlaneService.addKanbanCell(newExecution,ztTask.getId(),KanbanCellType.TASK,ztTask);
this.kanbanlaneService.addKanbanCell(newExecution, ztTask.getId(), KanbanCellType.TASK, ztTask);
}
taskSendZpMessage(ztTask.getId(), oldAssignedTo, ztTask.getAssignedTo());
@@ -872,7 +910,7 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
if ("doing".equals(ztTask.getStatus())) {
this.storyFeedbackService.feedbackStart(ztTask.getFeedback());
} else {
this.storyFeedbackService.feedbackFinished(ztTask.getFeedback(),ztTask.getFeedbackRemark());
this.storyFeedbackService.feedbackFinished(ztTask.getFeedback(), ztTask.getFeedbackRemark());
}
}
if (dto.getConsumed() > 0) {
@@ -889,26 +927,26 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
actionService.addAction(ActionType.RW, ActionStatus.KS, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(),
RiskUserThreadLocal.get().getName(), "", null);
if("done".equals(ztTask.getStatus())){
String finishBy = StringUtils.isEmpty(ztTask.getFinishedby())?RiskUserThreadLocal.get().getName():ztTask.getFinishedby();
if ("done".equals(ztTask.getStatus())) {
String finishBy = StringUtils.isEmpty(ztTask.getFinishedby()) ? RiskUserThreadLocal.get().getName() : ztTask.getFinishedby();
//如果是测试任务 提交交付物
if("test".equals(ztTask.getType())&&!StringUtils.isEmpty(ztTask.getDeliverContent())){
actionService.addAction(ActionType.RW, ActionStatus.TJJFW, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(),
if ("test".equals(ztTask.getType()) && !StringUtils.isEmpty(ztTask.getDeliverContent())) {
actionService.addAction(ActionType.RW, ActionStatus.TJJFW, ztTask.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(),
StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getDeliverContent(), null);
if(ztTask.getStory()!=null&&ztTask.getStory()!=0){
actionService.addAction(ActionType.XQ, ActionStatus.TJJFW, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(),
if (ztTask.getStory() != null && ztTask.getStory() != 0) {
actionService.addAction(ActionType.XQ, ActionStatus.TJJFW, ztTask.getStory(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(),
StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getDeliverContent(), null);
}
if(ztTask.getStory()!=null&&ztTask.getStory()!=0){
if (ztTask.getStory() != null && ztTask.getStory() != 0) {
//更新需求交付物
ZtStory ztStory = this.storyService.getById(ztTask.getStory());
if(ztStory!=null){
if (ztStory != null) {
ztStory.setDeliverContent(ztTask.getDeliverContent());
this.storyService.updateById(ztStory);
}
}
}
if(!StringUtils.isEmpty(dto.getRemark())){
if (!StringUtils.isEmpty(dto.getRemark())) {
actionService.addAction(ActionType.RW, ActionStatus.TJBZ, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(),
StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getRemark(), null);
}
@@ -992,15 +1030,15 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
//添加action
ZtProjectproduct projectproduct = projectproductService.getOne(new QueryWrapper<ZtProjectproduct>().lambda().eq(ZtProjectproduct::getProject, ztTask.getProject()));
//如果是测试任务 提交交付物
if("test".equals(ztTask.getType())&&!StringUtils.isEmpty(ztTask.getDeliverContent())){
if ("test".equals(ztTask.getType()) && !StringUtils.isEmpty(ztTask.getDeliverContent())) {
actionService.addAction(ActionType.RW, ActionStatus.TJJFW, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(),
StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getDeliverContent(), null);
if(ztTask.getStory()!=null&&ztTask.getStory()!=0){
actionService.addAction(ActionType.XQ, ActionStatus.TJJFW, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(),
if (ztTask.getStory() != null && ztTask.getStory() != 0) {
actionService.addAction(ActionType.XQ, ActionStatus.TJJFW, ztTask.getStory(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(),
StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getDeliverContent(), null);
}
}
if(!StringUtils.isEmpty(dto.getRemark())){
if (!StringUtils.isEmpty(dto.getRemark())) {
actionService.addAction(ActionType.RW, ActionStatus.TJBZ, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), projectproduct == null ? null : projectproduct.getProject(), ztTask.getExecution(),
StringUtils.isEmpty(finishBy) ? RiskUserThreadLocal.get().getName() : finishBy, dto.getRemark(), null);
}
@@ -1033,7 +1071,7 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
this.storyService.taskFinishChangeStatus(ztTask.getStory(), finishBy, TaskType.transferType(type), false);
}
if (ztTask.getFeedback() != null && ztTask.getFeedback() != 0) {
this.storyFeedbackService.feedbackFinished(ztTask.getFeedback(),ztTask.getFeedbackRemark());
this.storyFeedbackService.feedbackFinished(ztTask.getFeedback(), ztTask.getFeedbackRemark());
}
}
@@ -1052,9 +1090,9 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
ztTask.setLastediteddate(new Date());
this.baseMapper.updateById(ztTask);
if(ztTask.getDeadline()!=null&&ztTask.getStory()!=null&&ztTask.getStory()!=0){
if (ztTask.getDeadline() != null && ztTask.getStory() != null && ztTask.getStory() != 0) {
ZtStory ztStory = this.storyService.getById(ztTask.getStory());
if(ztTask.getType().equals("devel")&&ztStory.getDevelPlanEndTime()!=null){
if (ztTask.getType().equals("devel") && ztStory.getDevelPlanEndTime() != null) {
//查找最大时间那个
ztStory.setDevelPlanEndTime(ztTask.getDeadline());
List<ZtTask> ztTasks = this.baseMapper.selectList(new QueryWrapper<ZtTask>().lambda()
@@ -1066,9 +1104,9 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
.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())));
.set(ZtStory::getDevelPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline())));
}
if(ztTask.getType().equals("test")&&ztStory.getTestPlanEndTime()!=null){
if (ztTask.getType().equals("test") && ztStory.getTestPlanEndTime() != null) {
//查找最大时间那个
ztStory.setDevelPlanEndTime(ztTask.getDeadline());
List<ZtTask> ztTasks = this.baseMapper.selectList(new QueryWrapper<ZtTask>().lambda()
@@ -1080,12 +1118,11 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
.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())));
.set(ZtStory::getTestPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline())));
}
}
ZtProjectproduct projectproduct = projectproductService.getOne(new QueryWrapper<ZtProjectproduct>().lambda().eq(ZtProjectproduct::getProject, ztTask.getProject()));
//添加action
@@ -1131,9 +1168,9 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
//添加action
actionService.addAction(ActionType.RW, ActionStatus.QX, dto.getId(), projectproduct == null ? null : projectproduct.getProduct().toString(), ztTask.getProject(), ztTask.getExecution(),
RiskUserThreadLocal.get().getName(), dto.getDesc(), null);
if(ztTask.getDeadline()!=null&&ztTask.getStory()!=null&&ztTask.getStory()!=0){
if (ztTask.getDeadline() != null && ztTask.getStory() != null && ztTask.getStory() != 0) {
ZtStory ztStory = this.storyService.getById(ztTask.getStory());
if(ztTask.getType().equals("devel")&&ztStory.getDevelPlanEndTime()!=null){
if (ztTask.getType().equals("devel") && ztStory.getDevelPlanEndTime() != null) {
//查找最大时间那个
ztStory.setDevelPlanEndTime(ztTask.getDeadline());
List<ZtTask> ztTasks = this.baseMapper.selectList(new QueryWrapper<ZtTask>().lambda()
@@ -1145,9 +1182,9 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
.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())));
.set(ZtStory::getDevelPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline())));
}
if(ztTask.getType().equals("test")&&ztStory.getTestPlanEndTime()!=null){
if (ztTask.getType().equals("test") && ztStory.getTestPlanEndTime() != null) {
//查找最大时间那个
ztStory.setDevelPlanEndTime(ztTask.getDeadline());
List<ZtTask> ztTasks = this.baseMapper.selectList(new QueryWrapper<ZtTask>().lambda()
@@ -1159,7 +1196,7 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
.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())));
.set(ZtStory::getTestPlanEndTime, CollectionUtils.isEmpty(ztTasks) ? null : DateUtils.getDayLast(ztTasks.get(0).getDeadline())));
}
}
if (ztTask.getExecution() != null && ztTask.getExecution() != 0) {
@@ -1207,7 +1244,7 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
List<ZtTaskDTO> list = dto.getList();
long nullDeadlineCount = list.stream().filter(o -> o.getDeadline() == null || o.getEstStarted() == null).count();
if(nullDeadlineCount>0){
if (nullDeadlineCount > 0) {
throw new BusinessException("请录入开始结束日期");
}
@@ -1254,13 +1291,13 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
}
saveList.add(ztTask);
if(ztTask.getDeadline()!=null&&ztTask.getStory()!=null&&ztTask.getStory()!=0){
if (ztTask.getDeadline() != null && ztTask.getStory() != null && ztTask.getStory() != 0) {
ZtStory ztStory = this.storyService.getById(ztTask.getStory());
if(ztTask.getType().equals("devel")&&(ztStory.getDevelPlanEndTime()==null||ztTask.getDeadline().getTime()>=ztStory.getDevelPlanEndTime().getTime()
)){
if (ztTask.getType().equals("devel") && (ztStory.getDevelPlanEndTime() == null || ztTask.getDeadline().getTime() >= ztStory.getDevelPlanEndTime().getTime()
)) {
ztStory.setDevelPlanEndTime(ztTask.getDeadline());
}
if(ztTask.getType().equals("test")&&(ztStory.getTestPlanEndTime()==null||ztTask.getDeadline().getTime()>=ztStory.getTestPlanEndTime().getTime())){
if (ztTask.getType().equals("test") && (ztStory.getTestPlanEndTime() == null || ztTask.getDeadline().getTime() >= ztStory.getTestPlanEndTime().getTime())) {
ztStory.setTestPlanEndTime(ztTask.getDeadline());
}
this.storyService.updateById(ztStory);
@@ -1275,7 +1312,7 @@ public class ZtTaskServiceImpl extends ServiceImpl<ZtTaskMapper, ZtTask> impleme
this.storyService.taskFinishChangeStatus(ztTask.getStory(), null, TaskType.transferType(ztTask.getType()), false);
taskSendZpMessage(ztTask.getId(), null, ztTask.getAssignedTo());
} else {
taskSendPsMessage(ztTask.getId(), ztProject.getPm(),ztTask.getOpenedby());
taskSendPsMessage(ztTask.getId(), ztProject.getPm(), ztTask.getOpenedby());
}
}

View File

@@ -257,11 +257,16 @@
and closedBy =#{qo.userName}
</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
<choose>
<when test="qo.orderName != '' and qo.orderName != null ">
<choose>
@@ -277,20 +282,9 @@
order by s.id desc
</otherwise>
</choose>
-- order by id desc
</select>
<select id="projectStoryPageList" resultType="com.sa.zentao.dao.ZtStoryDTO">
select s.id,
s.vision,
s.parent,
@@ -374,12 +368,12 @@
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">-->
<!-- and s.openedDate <![CDATA[>=]]> #{qo.startDate}-->
<!-- </if>-->
<!-- <if test="qo.endDate !=null">-->
<!-- and s.openedDate <![CDATA[<=]]> #{qo.endDate}-->
<!-- </if>-->
<if test="qo.pri != null and qo.pri != '' ">
and s.pri = #{qo.pri}
</if>
@@ -463,7 +457,6 @@
</if>
<if test="qo.searchVal == 'JH' ">
and s.status = 'active'
</if>
@@ -505,11 +498,11 @@
<if test="qo.searchCode != null and qo.searchCode != '' ">
-- //项目名称
-- //项目名称
<if test="qo.searchCode=='xmmc' and qo.searchValue != null and qo.searchValue != '' ">
and pj.name like concat('%', #{qo.searchValue}, '%')
</if>
-- 项目id
-- 项目id
<if test="qo.searchCode=='xmid' and qo.searchValue != null and qo.searchValue != '' ">
and pj.id =#{qo.searchValue}
</if>
@@ -523,15 +516,15 @@
and s.id =#{qo.searchValue}
</if>
-- 状态
-- 状态
<if test="qo.searchCode=='zt' and qo.searchValue != null and qo.searchValue != '' ">
and s.stage =#{qo.searchValue}
</if>
-- 项目描述
-- 项目描述
<if test="qo.searchCode=='xmms' and qo.searchValue != null and qo.searchValue != '' ">
and sp.`spec` =#{qo.searchValue}
</if>
-- 负责人
-- 负责人
<if test="qo.searchCode=='fzr' and qo.searchValue != null and qo.searchValue != '' ">
and s.assignedTo =#{qo.searchValue}
@@ -564,7 +557,14 @@
</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>
group by s.id
@@ -1028,6 +1028,14 @@
</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
<choose>

View File

@@ -162,6 +162,16 @@
and s.openedBy = #{qo.openedby}
</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 != '' ">
-- 需求明确中、详细设计、详细设计中、产品已设计、需求待确认 这些查询状态合并成 “需求明确中”