From eecef7098921ecd0fa27a86b978600761391adb7 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Mon, 16 Mar 2026 15:54:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(domain):=20=E6=B7=BB=E5=8A=A0=E9=A2=86?= =?UTF-8?q?=E5=9F=9F=E9=83=A8=E9=97=A8=E5=92=8C=E5=B0=8F=E7=BB=84=E7=9A=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=8A=B6=E6=80=81=E6=8E=A7=E5=88=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../query/DomainDepartmentQueryExe.java | 29 ++++++++++++++++++- .../command/query/DomainGroupQueryExe.java | 28 ++++++++++++++++++ .../clientobject/DomainDepartmentListCO.java | 3 ++ .../dto/clientobject/DomainGroupCO.java | 2 ++ .../repository/ProjectTaskRepository.java | 4 +++ .../impl/ProjectTaskRepositoryImpl.java | 17 +++++++++++ 6 files changed, 82 insertions(+), 1 deletion(-) diff --git a/web-app/src/main/java/com/zcloud/domain/command/query/DomainDepartmentQueryExe.java b/web-app/src/main/java/com/zcloud/domain/command/query/DomainDepartmentQueryExe.java index 3fdd54d..65045bf 100644 --- a/web-app/src/main/java/com/zcloud/domain/command/query/DomainDepartmentQueryExe.java +++ b/web-app/src/main/java/com/zcloud/domain/command/query/DomainDepartmentQueryExe.java @@ -1,5 +1,6 @@ package com.zcloud.domain.command.query; +import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.dto.PageResponse; import com.zcloud.domain.command.convertor.DomainDepartmentCoConvertor; 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.persistence.dataobject.DomainDepartmentDO; 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.DomainDepartmentUserRepository; +import com.zcloud.domain.persistence.repository.ProjectTaskRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; @@ -18,6 +21,7 @@ import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -33,6 +37,7 @@ public class DomainDepartmentQueryExe { private final DomainDepartmentCoConvertor domainDepartmentCoConvertor; private final DomainDepartmentUserRepository domainDepartmentUserRepository; private final DomainDepartmentUserCoConvertor domainDepartmentUserCoConvertor; + private final ProjectTaskRepository projectTaskRepository; /** * 分页 @@ -44,7 +49,29 @@ public class DomainDepartmentQueryExe { Map params = PageQueryHelper.toHashMap(domainDepartmentPageQry); PageResponse pageResponse = domainDepartmentRepository.listPage(params); List examCenterCOS = domainDepartmentCoConvertor.converDOsToListCOs(pageResponse.getData()); - //补充数量 + //有进行中的不允许修改 + if(CollUtil.isEmpty(examCenterCOS)){ + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + // + List domainDepartmentIds = examCenterCOS.stream().map(DomainDepartmentListCO::getDomainDepartmentId).collect(Collectors.toList()); + + List projectTaskDOList = projectTaskRepository.getNoFinishByDomainDepartmentId(domainDepartmentIds); + //分组 + if(CollUtil.isEmpty(projectTaskDOList)){ + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + //分组 + Map> projectTaskDOMap = projectTaskDOList.stream().collect(Collectors.groupingBy(ProjectTaskDO::getDomainDepartmentId)); + examCenterCOS.forEach(info -> { + List 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()); } diff --git a/web-app/src/main/java/com/zcloud/domain/command/query/DomainGroupQueryExe.java b/web-app/src/main/java/com/zcloud/domain/command/query/DomainGroupQueryExe.java index 60de18a..d68e078 100644 --- a/web-app/src/main/java/com/zcloud/domain/command/query/DomainGroupQueryExe.java +++ b/web-app/src/main/java/com/zcloud/domain/command/query/DomainGroupQueryExe.java @@ -1,23 +1,28 @@ package com.zcloud.domain.command.query; +import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.dto.PageResponse; import com.zcloud.domain.command.convertor.DomainGroupCoConvertor; import com.zcloud.domain.command.convertor.DomainGroupUserCoConvertor; import com.zcloud.domain.dto.DomainGroupPageQry; 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.DomainGroupInfoCO; import com.zcloud.domain.dto.clientobject.DomainGroupUserCO; import com.zcloud.domain.persistence.dataobject.DomainGroupDO; 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.DomainGroupUserRepository; +import com.zcloud.domain.persistence.repository.ProjectTaskRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -33,6 +38,7 @@ public class DomainGroupQueryExe { private final DomainGroupCoConvertor domainGroupCoConvertor; private final DomainGroupUserRepository domainGroupUserRepository; private final DomainGroupUserCoConvertor domainGroupUserCoConvertor; + private final ProjectTaskRepository projectTaskRepository; /** * 分页 @@ -44,6 +50,28 @@ public class DomainGroupQueryExe { Map params = PageQueryHelper.toHashMap(domainGroupPageQry); PageResponse pageResponse = domainGroupRepository.listPage(params); List examCenterCOS = domainGroupCoConvertor.converDOsToCOs(pageResponse.getData()); + //有进行中的不允许修改 + if(CollUtil.isEmpty(examCenterCOS)){ + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + // + List groupIdList = examCenterCOS.stream().map(DomainGroupCO::getDomainGroupId).collect(Collectors.toList()); + + List projectTaskDOList = projectTaskRepository.getNoFinishByDomainGroupId(groupIdList); + //分组 + if(CollUtil.isEmpty(projectTaskDOList)){ + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + //分组 + Map> projectTaskDOMap = projectTaskDOList.stream().collect(Collectors.groupingBy(ProjectTaskDO::getDomainGroupId)); + examCenterCOS.forEach(info -> { + List 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()); } diff --git a/web-client/src/main/java/com/zcloud/domain/dto/clientobject/DomainDepartmentListCO.java b/web-client/src/main/java/com/zcloud/domain/dto/clientobject/DomainDepartmentListCO.java index eafca0f..6cd7d14 100644 --- a/web-client/src/main/java/com/zcloud/domain/dto/clientobject/DomainDepartmentListCO.java +++ b/web-client/src/main/java/com/zcloud/domain/dto/clientobject/DomainDepartmentListCO.java @@ -45,5 +45,8 @@ public class DomainDepartmentListCO { @ApiModelProperty(value = "领域评审人员数") private Long domainDepartmentUserCount; + + @ApiModelProperty(value = "是否可以修改,true:可以,false:不可以") + private Boolean updateFlag ; } diff --git a/web-client/src/main/java/com/zcloud/domain/dto/clientobject/DomainGroupCO.java b/web-client/src/main/java/com/zcloud/domain/dto/clientobject/DomainGroupCO.java index f3e0ad8..c410414 100644 --- a/web-client/src/main/java/com/zcloud/domain/dto/clientobject/DomainGroupCO.java +++ b/web-client/src/main/java/com/zcloud/domain/dto/clientobject/DomainGroupCO.java @@ -55,5 +55,7 @@ public class DomainGroupCO implements Serializable { @ApiModelProperty(value = "领域课题完成数") private Long projectTaskFinishedCount; + @ApiModelProperty(value = "是否可以修改,true:可以,false:不可以") + private Boolean updateFlag ; } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/ProjectTaskRepository.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/ProjectTaskRepository.java index 2121d72..369a369 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/ProjectTaskRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/ProjectTaskRepository.java @@ -30,5 +30,9 @@ public interface ProjectTaskRepository extends BaseRepository { void updateExecuteStatusBatchById(Integer code, List idList); ProjectTaskDO getInfoByTaskId(@NotEmpty(message = "课题任务不能为空") String projectTaskId); + + List getNoFinishByDomainDepartmentId(List domainDepartmentIds); + + List getNoFinishByDomainGroupId(List groupIdList); } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/ProjectTaskRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/ProjectTaskRepositoryImpl.java index 2aea0d1..530bbf2 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/ProjectTaskRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/ProjectTaskRepositoryImpl.java @@ -8,6 +8,7 @@ import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.zcloud.domain.domain.enums.MenuEnum; 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.persistence.dataobject.ProjectTaskDO; import com.zcloud.domain.persistence.mapper.ProjectTaskMapper; @@ -95,5 +96,21 @@ public class ProjectTaskRepositoryImpl extends BaseRepositoryImpl getNoFinishByDomainDepartmentId(List domainDepartmentIds) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ne("score_status", ScoreStatusEnum.SCORED.getCode()); + queryWrapper.in("domain_department_id", domainDepartmentIds); + return projectTaskMapper.selectList(queryWrapper); + } + + @Override + public List getNoFinishByDomainGroupId(List groupIdList) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ne("score_status", ScoreStatusEnum.SCORED.getCode()); + queryWrapper.in("domain_group_id", groupIdList); + return projectTaskMapper.selectList(queryWrapper); + } }