From f9877bcd32a2f508f990ddf0621ad7b2e9797542 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Thu, 26 Oct 2023 18:10:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=85=E5=8A=9E--=E8=AE=A4=E8=AF=81=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=94=B6=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ParamsManifestTodoCenterServiceImpl.java | 57 +++++++++++++++---- 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ParamsManifestTodoCenterServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ParamsManifestTodoCenterServiceImpl.java index 0068bba6a..d4e729690 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ParamsManifestTodoCenterServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ParamsManifestTodoCenterServiceImpl.java @@ -10,15 +10,21 @@ import com.jero.modules.cert.collect.enums.CollectManifestStateEnum; import com.jero.modules.cert.collect.enums.ManifestStateEnum; import com.jero.modules.cert.collect.mapper.ParamsCollectManifestEOMapper; import com.jero.modules.cert.collect.mapper.ParamsManifestEOMapper; +import com.jero.modules.project.entity.ProjectLibraryBase; +import com.jero.modules.project.service.impl.ProjectLibraryBaseServiceImpl; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; import com.jero.modules.todoCenter.entity.ParamsManifestTodoCenterEO; import com.jero.modules.todoCenter.enums.FlagEnum; import com.jero.modules.todoCenter.service.IParamsManifestTodoCenterService; import com.jero.modules.todoCenter.vo.ParamsManifestTodoCenterEOPage; +import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -35,6 +41,10 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC @Autowired private ParamsManifestEOMapper paramsManifestEOMapper; + @Autowired + private ProjectLibraryBaseServiceImpl projectLibraryBaseService; + @Autowired + private ISysUserService sysUserService; @Override public IPage queryPage(ParamsManifestTodoCenterEOPage pageVO) { @@ -49,6 +59,14 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC pageVO.setUserName(loginUser.getUsername()); List paramsManifestEOListAll = paramsManifestEOMapper.listForTodoCenter(pageVO); + List projectLibraryBaseList = new ArrayList<>(); + if(ObjectUtil.isNotEmpty(paramsManifestEOListAll)){ + List projectIdList = paramsManifestEOListAll.stream().map(ParamsManifestTodoCenterEO::getProjectId).distinct().collect(Collectors.toList()); + if(ObjectUtil.isNotEmpty(projectIdList)){ + projectLibraryBaseList = projectLibraryBaseService.queryList(projectIdList); + } + } + // 查询清单的所有参数项 List manifestIdList = paramsManifestEOListAll.stream().map(ParamsManifestTodoCenterEO::getId).collect(Collectors.toList()); if (CollectionUtil.isEmpty(manifestIdList)) { @@ -61,6 +79,15 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC List manifestIdListHomo = paramsManifestEOMapper.listInfoHomo(loginUser.getId(), ManifestStateEnum.COLLECTING.getValue());// 获取当前登录人 拥有认证工程师角色的清单 for(ParamsManifestTodoCenterEO paramsManifestEO : paramsManifestEOListAll) { + List libraryBaseList = projectLibraryBaseList.stream().filter(e -> e.getId().equals(paramsManifestEO.getProjectId())).collect(Collectors.toList()); + List userNameList = new ArrayList<>(); + if(ObjectUtil.isNotEmpty(libraryBaseList)){ + String certificationEngineer = libraryBaseList.get(0).getCertificationEngineer(); + if(StringUtils.isNotBlank(certificationEngineer)){ + List sysUserList = sysUserService.querySysUserListByIdList(Arrays.asList(certificationEngineer.split(","))); + userNameList = sysUserList.stream().map(SysUser::getUsername).collect(Collectors.toList()); + } + } // 查询清单的所有参数项 List pcmList = pcmListAll.stream().filter(e->paramsManifestEO.getId().equals(e.getParamsManifestId())).collect(Collectors.toList()); int count1 = (int) pcmList.stream().filter(e-> CollectManifestStateEnum.SUBMIT.getValue().equals(e.getState()) @@ -68,27 +95,31 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC if (count1 == pcmList.size()) { continue; } - int count = 0; - if(CollectionUtil.isNotEmpty(manifestIdListHomo) && manifestIdListHomo.contains(paramsManifestEO.getId())) { // 认证工程师 可以看到三种数量 - // 统计待发起数量 包括状态:待发起收集,变更,工程接口人退回 - count = (int) pcmList.stream().filter(e -> CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState()) - || CollectManifestStateEnum.SDT_BACK.getValue().equals(e.getState()) - || CollectManifestStateEnum.CHANGE.getValue().equals(e.getState())).count(); - if (count > 0) { - paramsManifestEO.setWaitCollectNum(count); + if(ObjectUtil.isNotEmpty(userNameList)){ + // 统计待发起数量 包括状态:待发起收集,变更,工程接口人退回 + List finalUserNameList = userNameList; + count = (int) pcmList.stream().filter(e -> finalUserNameList.contains(loginUser.getUsername()) && CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState()) + || CollectManifestStateEnum.SDT_BACK.getValue().equals(e.getState()) + || CollectManifestStateEnum.CHANGE.getValue().equals(e.getState())).count(); + if (count > 0) { + paramsManifestEO.setWaitCollectNum(count); + } } + // 统计待分配数量 包括状态:待工程接口人处理,填写人退回 - count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState()) + count = (int) pcmList.stream().filter(e->loginUser.getUsername().equals(e.getSdt()) + && (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState()) || CollectManifestStateEnum.DRE_BACK.getValue().equals(e.getState()))).count(); if (count > 0) { paramsManifestEO.setWaitSdtNum(count); } // 统计待填写数量 包括状态:待填写,认证工程师退回 - count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState()) + count = (int) pcmList.stream().filter(e-> loginUser.getUsername().equals(e.getDre()) + &&(CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState()) || CollectManifestStateEnum.CERT_BACK.getValue().equals(e.getState()))).count(); if (count > 0) { paramsManifestEO.setWaitFillNum(count); @@ -96,7 +127,8 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC paramsManifestEO.setFlag(FlagEnum.ZERO.getValue()); } else { // 工程接口只能看到工程接口人是自己的;填写人只能看到填写人是自己 的数量 // 统计待分配数量 包括状态:待工程接口人处理,填写人退回 - count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState()) + count = (int) pcmList.stream().filter(e->loginUser.getUsername().equals(e.getSdt()) + && (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState()) || CollectManifestStateEnum.DRE_BACK.getValue().equals(e.getState())) && loginUser.getUsername().equals(e.getSdt())).count(); if (count > 0) { @@ -104,7 +136,8 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC } // 统计待填写数量 包括状态:待填写,认证工程师退回 - count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState()) + count = (int) pcmList.stream().filter(e->loginUser.getUsername().equals(e.getDre()) + && (CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState()) || CollectManifestStateEnum.CERT_BACK.getValue().equals(e.getState())) && (loginUser.getUsername().equals(e.getDre()) || loginUser.getUsername().equals(e.getSdt()))).count(); if (count > 0) {