feat(domain): 添加领域部门和小组的修改状态控制功能

master
zhaokai 2026-03-16 15:54:46 +08:00
parent 80054ff4b4
commit eecef70989
6 changed files with 82 additions and 1 deletions

View File

@ -1,5 +1,6 @@
package com.zcloud.domain.command.query; package com.zcloud.domain.command.query;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.zcloud.domain.command.convertor.DomainDepartmentCoConvertor; import com.zcloud.domain.command.convertor.DomainDepartmentCoConvertor;
import com.zcloud.domain.command.convertor.DomainDepartmentUserCoConvertor; import com.zcloud.domain.command.convertor.DomainDepartmentUserCoConvertor;
@ -9,8 +10,10 @@ import com.zcloud.domain.dto.clientobject.DomainDepartmentListCO;
import com.zcloud.domain.dto.clientobject.DomainDepartmentUserCO; import com.zcloud.domain.dto.clientobject.DomainDepartmentUserCO;
import com.zcloud.domain.persistence.dataobject.DomainDepartmentDO; import com.zcloud.domain.persistence.dataobject.DomainDepartmentDO;
import com.zcloud.domain.persistence.dataobject.DomainDepartmentUserDO; import com.zcloud.domain.persistence.dataobject.DomainDepartmentUserDO;
import com.zcloud.domain.persistence.dataobject.ProjectTaskDO;
import com.zcloud.domain.persistence.repository.DomainDepartmentRepository; import com.zcloud.domain.persistence.repository.DomainDepartmentRepository;
import com.zcloud.domain.persistence.repository.DomainDepartmentUserRepository; import com.zcloud.domain.persistence.repository.DomainDepartmentUserRepository;
import com.zcloud.domain.persistence.repository.ProjectTaskRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -18,6 +21,7 @@ import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
@ -33,6 +37,7 @@ public class DomainDepartmentQueryExe {
private final DomainDepartmentCoConvertor domainDepartmentCoConvertor; private final DomainDepartmentCoConvertor domainDepartmentCoConvertor;
private final DomainDepartmentUserRepository domainDepartmentUserRepository; private final DomainDepartmentUserRepository domainDepartmentUserRepository;
private final DomainDepartmentUserCoConvertor domainDepartmentUserCoConvertor; private final DomainDepartmentUserCoConvertor domainDepartmentUserCoConvertor;
private final ProjectTaskRepository projectTaskRepository;
/** /**
* *
@ -44,7 +49,29 @@ public class DomainDepartmentQueryExe {
Map<String, Object> params = PageQueryHelper.toHashMap(domainDepartmentPageQry); Map<String, Object> params = PageQueryHelper.toHashMap(domainDepartmentPageQry);
PageResponse<DomainDepartmentDO> pageResponse = domainDepartmentRepository.listPage(params); PageResponse<DomainDepartmentDO> pageResponse = domainDepartmentRepository.listPage(params);
List<DomainDepartmentListCO> examCenterCOS = domainDepartmentCoConvertor.converDOsToListCOs(pageResponse.getData()); List<DomainDepartmentListCO> examCenterCOS = domainDepartmentCoConvertor.converDOsToListCOs(pageResponse.getData());
//补充数量 //有进行中的不允许修改
if(CollUtil.isEmpty(examCenterCOS)){
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//
List<String> domainDepartmentIds = examCenterCOS.stream().map(DomainDepartmentListCO::getDomainDepartmentId).collect(Collectors.toList());
List<ProjectTaskDO> projectTaskDOList = projectTaskRepository.getNoFinishByDomainDepartmentId(domainDepartmentIds);
//分组
if(CollUtil.isEmpty(projectTaskDOList)){
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//分组
Map<String, List<ProjectTaskDO>> projectTaskDOMap = projectTaskDOList.stream().collect(Collectors.groupingBy(ProjectTaskDO::getDomainDepartmentId));
examCenterCOS.forEach(info -> {
List<ProjectTaskDO> projectTaskDOS = projectTaskDOMap.get(info.getDomainDepartmentId());
if(CollUtil.isNotEmpty(projectTaskDOS)){
info.setUpdateFlag( false);
}else{
info.setUpdateFlag( true);
}
});
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }

View File

@ -1,23 +1,28 @@
package com.zcloud.domain.command.query; package com.zcloud.domain.command.query;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.zcloud.domain.command.convertor.DomainGroupCoConvertor; import com.zcloud.domain.command.convertor.DomainGroupCoConvertor;
import com.zcloud.domain.command.convertor.DomainGroupUserCoConvertor; import com.zcloud.domain.command.convertor.DomainGroupUserCoConvertor;
import com.zcloud.domain.dto.DomainGroupPageQry; import com.zcloud.domain.dto.DomainGroupPageQry;
import com.zcloud.domain.dto.DomainGroupQry; import com.zcloud.domain.dto.DomainGroupQry;
import com.zcloud.domain.dto.clientobject.DomainDepartmentListCO;
import com.zcloud.domain.dto.clientobject.DomainGroupCO; import com.zcloud.domain.dto.clientobject.DomainGroupCO;
import com.zcloud.domain.dto.clientobject.DomainGroupInfoCO; import com.zcloud.domain.dto.clientobject.DomainGroupInfoCO;
import com.zcloud.domain.dto.clientobject.DomainGroupUserCO; import com.zcloud.domain.dto.clientobject.DomainGroupUserCO;
import com.zcloud.domain.persistence.dataobject.DomainGroupDO; import com.zcloud.domain.persistence.dataobject.DomainGroupDO;
import com.zcloud.domain.persistence.dataobject.DomainGroupUserDO; import com.zcloud.domain.persistence.dataobject.DomainGroupUserDO;
import com.zcloud.domain.persistence.dataobject.ProjectTaskDO;
import com.zcloud.domain.persistence.repository.DomainGroupRepository; import com.zcloud.domain.persistence.repository.DomainGroupRepository;
import com.zcloud.domain.persistence.repository.DomainGroupUserRepository; import com.zcloud.domain.persistence.repository.DomainGroupUserRepository;
import com.zcloud.domain.persistence.repository.ProjectTaskRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
@ -33,6 +38,7 @@ public class DomainGroupQueryExe {
private final DomainGroupCoConvertor domainGroupCoConvertor; private final DomainGroupCoConvertor domainGroupCoConvertor;
private final DomainGroupUserRepository domainGroupUserRepository; private final DomainGroupUserRepository domainGroupUserRepository;
private final DomainGroupUserCoConvertor domainGroupUserCoConvertor; private final DomainGroupUserCoConvertor domainGroupUserCoConvertor;
private final ProjectTaskRepository projectTaskRepository;
/** /**
* *
@ -44,6 +50,28 @@ public class DomainGroupQueryExe {
Map<String, Object> params = PageQueryHelper.toHashMap(domainGroupPageQry); Map<String, Object> params = PageQueryHelper.toHashMap(domainGroupPageQry);
PageResponse<DomainGroupDO> pageResponse = domainGroupRepository.listPage(params); PageResponse<DomainGroupDO> pageResponse = domainGroupRepository.listPage(params);
List<DomainGroupCO> examCenterCOS = domainGroupCoConvertor.converDOsToCOs(pageResponse.getData()); List<DomainGroupCO> examCenterCOS = domainGroupCoConvertor.converDOsToCOs(pageResponse.getData());
//有进行中的不允许修改
if(CollUtil.isEmpty(examCenterCOS)){
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//
List<String> groupIdList = examCenterCOS.stream().map(DomainGroupCO::getDomainGroupId).collect(Collectors.toList());
List<ProjectTaskDO> projectTaskDOList = projectTaskRepository.getNoFinishByDomainGroupId(groupIdList);
//分组
if(CollUtil.isEmpty(projectTaskDOList)){
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//分组
Map<String, List<ProjectTaskDO>> projectTaskDOMap = projectTaskDOList.stream().collect(Collectors.groupingBy(ProjectTaskDO::getDomainGroupId));
examCenterCOS.forEach(info -> {
List<ProjectTaskDO> projectTaskDOS = projectTaskDOMap.get(info.getDomainGroupId());
if(CollUtil.isNotEmpty(projectTaskDOS)){
info.setUpdateFlag( false);
}else{
info.setUpdateFlag( true);
}
});
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }

View File

@ -45,5 +45,8 @@ public class DomainDepartmentListCO {
@ApiModelProperty(value = "领域评审人员数") @ApiModelProperty(value = "领域评审人员数")
private Long domainDepartmentUserCount; private Long domainDepartmentUserCount;
@ApiModelProperty(value = "是否可以修改,true:可以,false:不可以")
private Boolean updateFlag ;
} }

View File

@ -55,5 +55,7 @@ public class DomainGroupCO implements Serializable {
@ApiModelProperty(value = "领域课题完成数") @ApiModelProperty(value = "领域课题完成数")
private Long projectTaskFinishedCount; private Long projectTaskFinishedCount;
@ApiModelProperty(value = "是否可以修改,true:可以,false:不可以")
private Boolean updateFlag ;
} }

View File

@ -30,5 +30,9 @@ public interface ProjectTaskRepository extends BaseRepository<ProjectTaskDO> {
void updateExecuteStatusBatchById(Integer code, List<Long> idList); void updateExecuteStatusBatchById(Integer code, List<Long> idList);
ProjectTaskDO getInfoByTaskId(@NotEmpty(message = "课题任务不能为空") String projectTaskId); ProjectTaskDO getInfoByTaskId(@NotEmpty(message = "课题任务不能为空") String projectTaskId);
List<ProjectTaskDO> getNoFinishByDomainDepartmentId(List<String> domainDepartmentIds);
List<ProjectTaskDO> getNoFinishByDomainGroupId(List<String> groupIdList);
} }

View File

@ -8,6 +8,7 @@ import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.domain.domain.enums.MenuEnum; import com.zcloud.domain.domain.enums.MenuEnum;
import com.zcloud.domain.domain.enums.ProjectTaskExecuteStatusEnum; import com.zcloud.domain.domain.enums.ProjectTaskExecuteStatusEnum;
import com.zcloud.domain.domain.enums.ScoreStatusEnum;
import com.zcloud.domain.domain.model.CorpInfoE; import com.zcloud.domain.domain.model.CorpInfoE;
import com.zcloud.domain.persistence.dataobject.ProjectTaskDO; import com.zcloud.domain.persistence.dataobject.ProjectTaskDO;
import com.zcloud.domain.persistence.mapper.ProjectTaskMapper; import com.zcloud.domain.persistence.mapper.ProjectTaskMapper;
@ -95,5 +96,21 @@ public class ProjectTaskRepositoryImpl extends BaseRepositoryImpl<ProjectTaskMap
queryWrapper.eq("project_task_id", projectTaskId); queryWrapper.eq("project_task_id", projectTaskId);
return projectTaskMapper.selectOne(queryWrapper); return projectTaskMapper.selectOne(queryWrapper);
} }
@Override
public List<ProjectTaskDO> getNoFinishByDomainDepartmentId(List<String> domainDepartmentIds) {
QueryWrapper<ProjectTaskDO> queryWrapper = new QueryWrapper<>();
queryWrapper.ne("score_status", ScoreStatusEnum.SCORED.getCode());
queryWrapper.in("domain_department_id", domainDepartmentIds);
return projectTaskMapper.selectList(queryWrapper);
}
@Override
public List<ProjectTaskDO> getNoFinishByDomainGroupId(List<String> groupIdList) {
QueryWrapper<ProjectTaskDO> queryWrapper = new QueryWrapper<>();
queryWrapper.ne("score_status", ScoreStatusEnum.SCORED.getCode());
queryWrapper.in("domain_group_id", groupIdList);
return projectTaskMapper.selectList(queryWrapper);
}
} }