diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardProjectManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardProjectManage.java index 899fc86..6398e2f 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardProjectManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardProjectManage.java @@ -379,15 +379,14 @@ public class DashboardProjectManage { //2.转换项目信息 if(Objects.nonNull(project)){ ProtraitProjectInfoVO projectInfo = BeanUtil.copyProperties(project,ProtraitProjectInfoVO.class); - //todo: 超期逻辑 projectInfo.setOverdueSituation("即将超期"); projectInfo.setSafetyInputRate(convertSafetyInputRate(project)); + projectInfo.setStatus(Objects.nonNull(project.getStatus()) ? project.getStatus().toString() : null); //3.项目状态情况 projectInfo.setStatusSituation(generateProjectStatus(project)); res.setProjectInfo(projectInfo); }else if(Objects.nonNull(baseInfo)){ ProtraitProjectInfoVO projectInfo = BeanUtil.copyProperties(baseInfo,ProtraitProjectInfoVO.class); - //todo: 超期逻辑 projectInfo.setOverdueSituation("即将超期"); projectInfo.setSafetyInputRate("0"); if(Objects.nonNull(apply)){ @@ -404,10 +403,10 @@ public class DashboardProjectManage { projectInfo.setBuildOrgCode(baseInfo.getBaseBuildDeprtDing()); //3.项目状态情况 projectInfo.setStatusSituation(generateProjectStatus(baseInfo)); + projectInfo.setStatus(baseInfo.getBaseProjSetProg()); res.setProjectInfo(projectInfo); }else if(Objects.nonNull(operationBase)){ ProtraitProjectInfoVO projectInfo = BeanUtil.copyProperties(operationBase,ProtraitProjectInfoVO.class); - //todo: 超期逻辑 projectInfo.setOverdueSituation("即将超期"); projectInfo.setSafetyInputRate("0"); if(Objects.nonNull(apply)){ @@ -424,6 +423,7 @@ public class DashboardProjectManage { projectInfo.setBuildOrgCode(operationBase.getBaseBuildDeprtDing()); //3.项目状态情况 projectInfo.setStatusSituation(generateProjectStatus(operationBase)); + projectInfo.setStatus(operationBase.getBaseProjSetProg()); res.setProjectInfo(projectInfo); } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/ProtraitProjectInfoVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/ProtraitProjectInfoVO.java index bc38835..e0b2234 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/ProtraitProjectInfoVO.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/ProtraitProjectInfoVO.java @@ -49,6 +49,9 @@ public class ProtraitProjectInfoVO { @ApiModelProperty("超期情况") private String overdueSituation; + @ApiModelProperty("状态") + private String status; + @ApiModelProperty("项目状态情况") private List statusSituation; } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectRenewalApprovalStatusEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectRenewalApprovalStatusEnum.java index 27a38ed..7e042da 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectRenewalApprovalStatusEnum.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectRenewalApprovalStatusEnum.java @@ -45,4 +45,15 @@ public enum ProjectRenewalApprovalStatusEnum { return StringUtils.EMPTY; } + public static ProjectRenewalApprovalStatusEnum match(String name) { + if (StringUtils.isBlank(name)) { + return null; + } + for (ProjectRenewalApprovalStatusEnum t : ProjectRenewalApprovalStatusEnum.values()) { + if (name.equals(t.name())) { + return t; + } + } + return null; + } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/listener/EarlyWarningListener.java b/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/listener/EarlyWarningListener.java index 7838282..24ea2fd 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/listener/EarlyWarningListener.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/listener/EarlyWarningListener.java @@ -121,10 +121,11 @@ public class EarlyWarningListener { String employeeCode = hai.getAssignee(); String taskId = hai.getTaskId(); String path = "toDoCenter/handleDuringExamine?instanceId=" + - instanceId + "&projectId=1610&nodeId=" + nodeId + "&taskId=" + taskId; + instanceId + "&projectId=" + projectId + "&nodeId=" + nodeId + "&taskId=" + taskId; earlyWarningManage.doEarlyWarning(noticeMethod,noticeContent,timeout,pi.getInstType(), hai.getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime() - ,employeeCode,project,WarningRuleTypeEnum.PROCESS_WARNING.getCode(),noticeType,path,batchEmployees); + ,employeeCode,project,WarningRuleTypeEnum.PROCESS_WARNING.getCode(),noticeType, + path,batchEmployees,nodeId); } } } \ No newline at end of file diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningInstanceNotStartTask.java b/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningInstanceNotStartTask.java index 8de93b0..274310c 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningInstanceNotStartTask.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningInstanceNotStartTask.java @@ -233,7 +233,7 @@ public class EarlyWarningInstanceNotStartTask { for (String employeeCode : batchEmployees) { earlyWarningManage.doEarlyWarning(noticeMethod, Objects.nonNull(noticeType) && noticeType.equals(1) ? noticeContent : adventContent, time, biz, needToWaringProject.getUpdateOn(),employeeCode, needToWaringProject, - WarningRuleTypeEnum.DECLARED_WARNING.getCode(), noticeType, path, batchEmployeesStr); + WarningRuleTypeEnum.DECLARED_WARNING.getCode(), noticeType, path, batchEmployeesStr,null); } } } @@ -385,7 +385,7 @@ public class EarlyWarningInstanceNotStartTask { for(Integer noticeType : noticeTypes){ earlyWarningManage.doEarlyWarning(noticeMethod,Objects.nonNull(noticeType)&¬iceType.equals(1) ? noticeContent : adventContent,time,biz, needToWaringProject.getUpdateOn(),employeeCode,needToWaringProject, - WarningRuleTypeEnum.OPERATION_WARNING.getCode(),noticeType,path,employeeCode); + WarningRuleTypeEnum.OPERATION_WARNING.getCode(),noticeType,path,employeeCode,null); } } @@ -500,7 +500,7 @@ public class EarlyWarningInstanceNotStartTask { for(Integer noticeType : noticeTypes){ earlyWarningManage.doEarlyWarning(noticeMethod,Objects.nonNull(noticeType)&¬iceType.equals(1) ? noticeContent : adventContent,time,null, needToWaringProject.getUpdateOn(),user.getEmployeeCode(),project, - WarningRuleTypeEnum.RENEWAL_FUND.getCode(),noticeType,path,employeesStr); + WarningRuleTypeEnum.RENEWAL_FUND.getCode(),noticeType,path,employeesStr,needToWaringProject.getId().toString()); } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningProjectTask.java b/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningProjectTask.java index e461aae..85676ee 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningProjectTask.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningProjectTask.java @@ -3,13 +3,25 @@ package com.ningdatech.pmapi.scheduler.task; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.StopWatch; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ningdatech.pmapi.common.constant.BizConst; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectRenewalApprovalStatusEnum; +import com.ningdatech.pmapi.projectlib.enumeration.WarningFlowTypeEnum; +import com.ningdatech.pmapi.projectlib.enumeration.WarningOperationTypeEnum; import com.ningdatech.pmapi.projectlib.model.entity.Project; +import com.ningdatech.pmapi.projectlib.model.entity.ProjectRenewalFundDeclaration; +import com.ningdatech.pmapi.projectlib.service.IProjectRenewalFundDeclarationService; import com.ningdatech.pmapi.projectlib.service.IProjectService; import com.ningdatech.pmapi.sys.enumeration.ProjectEarlyWarningStatusEnum; import com.ningdatech.pmapi.sys.model.entity.ProjectEarlyWarning; +import com.ningdatech.pmapi.sys.model.entity.WflowEarlyWarningRecords; +import com.ningdatech.pmapi.sys.service.IEarlyWarningRecordsService; import com.ningdatech.pmapi.sys.service.IProjectEarlyWarningService; +import com.wflow.enums.WarningRuleTypeEnum; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.flowable.engine.TaskService; +import org.flowable.task.api.Task; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -34,6 +46,12 @@ public class EarlyWarningProjectTask { private final IProjectEarlyWarningService projectEarlyWarningService; + private final IEarlyWarningRecordsService earlyWarningRecordsService; + + private final IProjectRenewalFundDeclarationService renewalFundDeclarationService; + + private final TaskService taskService; + @Value("${hostname}") private String HOST_NAME; @@ -127,19 +145,168 @@ public class EarlyWarningProjectTask { log.info("=========== 预警项目维度任务结束 耗时{}s", stopWatch.getTotalTimeSeconds()); } - private void checkRenewalFundWarning(List renewalFundWarning) { + private void checkRenewalFundWarning(List renewalFundWarnings) { + if(CollUtil.isEmpty(renewalFundWarnings)){ + return; + } + for(ProjectEarlyWarning renewalFundWarning : renewalFundWarnings){ + String projectCode = renewalFundWarning.getProjectCode(); + Project project = projectService.getProjectByCode(projectCode); + if(Objects.isNull(project)){ + continue; + } + + WflowEarlyWarningRecords record = earlyWarningRecordsService.getOne(Wrappers.lambdaQuery(WflowEarlyWarningRecords.class) + .eq(WflowEarlyWarningRecords::getProjectCode, projectCode) + .eq(WflowEarlyWarningRecords::getRuleType, WarningRuleTypeEnum.OPERATION_WARNING.getCode()) + .orderByDesc(WflowEarlyWarningRecords::getWarningTime) + .last(BizConst.LIMIT_1)); + if(Objects.isNull(record)){ + continue; + } + //借用了NODEID 其实 是续建id + String nodeId = record.getNodeId(); + ProjectRenewalFundDeclaration renewalFund = renewalFundDeclarationService.getById(nodeId); + if(Objects.isNull(renewalFund)){ + continue; + } + String approvalStatus = renewalFund.getApprovalStatus(); + ProjectRenewalApprovalStatusEnum match = ProjectRenewalApprovalStatusEnum + .match(approvalStatus); + if(Objects.nonNull(match)){ + //如果是已经审批 + if(match.name().equals(ProjectRenewalApprovalStatusEnum.PASS.name())){ + renewalFundWarning.setRenewalFundWarning(Boolean.FALSE); + //其它三种 都没有 说明已经正常了 + if(!renewalFundWarning.getProcessWarning() && + !renewalFundWarning.getDeclaredWarning() && + !renewalFundWarning.getOperationWarning()){ + renewalFundWarning.setNormal(Boolean.TRUE); + renewalFundWarning.setStatus(ProjectEarlyWarningStatusEnum.NORMAL.name()); + } + projectEarlyWarningService.updateById(renewalFundWarning); + } + } + } } - private void checkOperationWarning(List operationWarning) { + private void checkOperationWarning(List operationWarnings) { + if(CollUtil.isEmpty(operationWarnings)){ + return; + } + for( ProjectEarlyWarning operationWarning : operationWarnings){ + String projectCode = operationWarning.getProjectCode(); + Project project = projectService.getProjectByCode(projectCode); + if(Objects.isNull(project)){ + continue; + } + WflowEarlyWarningRecords record = earlyWarningRecordsService.getOne(Wrappers.lambdaQuery(WflowEarlyWarningRecords.class) + .eq(WflowEarlyWarningRecords::getProjectCode, projectCode) + .eq(WflowEarlyWarningRecords::getRuleType, WarningRuleTypeEnum.OPERATION_WARNING.getCode()) + .orderByDesc(WflowEarlyWarningRecords::getWarningTime) + .last(BizConst.LIMIT_1)); + if(Objects.isNull(record)){ + continue; + } + Integer biz = record.getBiz(); + WarningOperationTypeEnum operationTypeEnum = WarningOperationTypeEnum.getByCode(biz); + if(Objects.isNull(operationTypeEnum)){ + continue; + } + Integer projectStutas = operationTypeEnum.getProjectStutas(); + //已经不是这个状态了 说明已经被提交了 + if(!projectStutas.equals(project.getStatus())){ + operationWarning.setOperationWarning(Boolean.FALSE); + //其它三种 都没有 说明已经正常了 + if(!operationWarning.getProcessWarning() && + !operationWarning.getDeclaredWarning() && + !operationWarning.getRenewalFundWarning()){ + operationWarning.setNormal(Boolean.TRUE); + operationWarning.setStatus(ProjectEarlyWarningStatusEnum.NORMAL.name()); + } + projectEarlyWarningService.updateById(operationWarning); + } + } } - private void checkDeclaredWarning(List declaredWarning) { - + private void checkDeclaredWarning(List declaredWarnings) { + if(CollUtil.isEmpty(declaredWarnings)){ + return; + } + for( ProjectEarlyWarning declaredWarning : declaredWarnings){ + String projectCode = declaredWarning.getProjectCode(); + Project project = projectService.getProjectByCode(projectCode); + if(Objects.isNull(project)){ + continue; + } + WflowEarlyWarningRecords record = earlyWarningRecordsService.getOne(Wrappers.lambdaQuery(WflowEarlyWarningRecords.class) + .eq(WflowEarlyWarningRecords::getProjectCode, projectCode) + .eq(WflowEarlyWarningRecords::getRuleType, WarningRuleTypeEnum.DECLARED_WARNING.getCode()) + .orderByDesc(WflowEarlyWarningRecords::getWarningTime) + .last(BizConst.LIMIT_1)); + if(Objects.isNull(record)){ + continue; + } + Integer biz = record.getBiz(); + WarningFlowTypeEnum flowTypeEnum = WarningFlowTypeEnum.getByCode(biz); + if(Objects.isNull(flowTypeEnum)){ + continue; + } + Integer projectStutas = flowTypeEnum.getProjectStutas(); + //已经不是这个状态了 说明已经被提交了 + if(!projectStutas.equals(project.getStatus())){ + declaredWarning.setDeclaredWarning(Boolean.FALSE); + //其它三种 都没有 说明已经正常了 + if(!declaredWarning.getProcessWarning() && + !declaredWarning.getOperationWarning() && + !declaredWarning.getRenewalFundWarning()){ + declaredWarning.setNormal(Boolean.TRUE); + declaredWarning.setStatus(ProjectEarlyWarningStatusEnum.NORMAL.name()); + } + projectEarlyWarningService.updateById(declaredWarning); + } + } } - private void checkProcessWarning(List processWarning) { + /** + * 流程 查看 是否已经处理过 + * @param processWarnings + */ + private void checkProcessWarning(List processWarnings) { + if(CollUtil.isEmpty(processWarnings)){ + return; + } + for( ProjectEarlyWarning processWarning : processWarnings){ + String projectCode = processWarning.getProjectCode(); + WflowEarlyWarningRecords record = earlyWarningRecordsService.getOne(Wrappers.lambdaQuery(WflowEarlyWarningRecords.class) + .eq(WflowEarlyWarningRecords::getProjectCode, projectCode) + .orderByDesc(WflowEarlyWarningRecords::getWarningTime) + .last(BizConst.LIMIT_1)); + if(Objects.isNull(record)){ + continue; + } + String nodeId = record.getNodeId(); + if(StringUtils.isBlank(nodeId)){ + continue; + } + List tasks = taskService.createTaskQuery() + .taskDefinitionKey(nodeId) + .list(); + if(CollUtil.isEmpty(tasks)){ + //说明 已经审批通过了 + processWarning.setProcessWarning(Boolean.FALSE); + //其它三种 都没有 说明已经正常了 + if(!processWarning.getDeclaredWarning() && + !processWarning.getOperationWarning() && + !processWarning.getRenewalFundWarning()){ + processWarning.setNormal(Boolean.TRUE); + processWarning.setStatus(ProjectEarlyWarningStatusEnum.NORMAL.name()); + } + projectEarlyWarningService.updateById(processWarning); + } + } } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/EarlyWarningManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/EarlyWarningManage.java index e3fa344..b686e57 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/EarlyWarningManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/EarlyWarningManage.java @@ -57,7 +57,8 @@ public class EarlyWarningManage { */ public void doEarlyWarning(String noticeMethod,String noticeContent, Integer timeout,Integer biz, LocalDateTime startTime,String employeeCode, - Project project,Integer ruleType,Integer noticeType,String path,String batchEmployees) { + Project project,Integer ruleType,Integer noticeType, + String path,String batchEmployees,String nodeId) { //1.存入 预警记录 UserFullInfoDTO user = userInfoHelper.getUserFullInfoByEmployeeCode(employeeCode); WflowEarlyWarningRecords records = new WflowEarlyWarningRecords(); @@ -107,6 +108,7 @@ public class EarlyWarningManage { records.setPath(path); records.setBatchEmployees(batchEmployees); records.setBiz(biz); + records.setNodeId(nodeId); earlyWarningRecordsService.save(records); //2.消息提醒 diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/sys/model/entity/WflowEarlyWarningRecords.java b/pmapi/src/main/java/com/ningdatech/pmapi/sys/model/entity/WflowEarlyWarningRecords.java index 0f01a7f..6142b56 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/sys/model/entity/WflowEarlyWarningRecords.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/sys/model/entity/WflowEarlyWarningRecords.java @@ -116,6 +116,9 @@ public class WflowEarlyWarningRecords implements Serializable { @ApiModelProperty(value = "路径") private String path; + @ApiModelProperty(value = "审批节点ID") + private String nodeId; + @ApiModelProperty(value = "这一批要通知的员工号") private String batchEmployees; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/sys/model/vo/ProjectEarlyWarningVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/sys/model/vo/ProjectEarlyWarningVO.java index 1300f44..55aa5d1 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/sys/model/vo/ProjectEarlyWarningVO.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/sys/model/vo/ProjectEarlyWarningVO.java @@ -34,6 +34,9 @@ public class ProjectEarlyWarningVO implements Serializable { @ApiModelProperty(value = "项目编码") private String projectCode; + @ApiModelProperty(value = "项目名称") + private String projectName; + @ApiModelProperty(value = "区域") private String areaCode; diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/sys/service/impl/ProjectEarlyWarningServiceImpl.java b/pmapi/src/main/java/com/ningdatech/pmapi/sys/service/impl/ProjectEarlyWarningServiceImpl.java index 0f3056a..470f25d 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/sys/service/impl/ProjectEarlyWarningServiceImpl.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/sys/service/impl/ProjectEarlyWarningServiceImpl.java @@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ningdatech.pmapi.common.constant.BizConst; -import com.ningdatech.pmapi.projectlib.mapper.ProjectMapper; import com.ningdatech.pmapi.projectlib.model.entity.Project; import com.ningdatech.pmapi.projectlib.service.IProjectService; import com.ningdatech.pmapi.sys.enumeration.ProjectEarlyWarningStatusEnum; @@ -105,7 +104,7 @@ public class ProjectEarlyWarningServiceImpl extends ServiceImpl { //4.项目预警记录 - res.setProjectEarlyWarning(getProjectEarlyWarning()); + res.setProjectEarlyWarning(getProjectEarlyWarning(user)); }, ForkJoinPool.commonPool()) ).join(); @@ -122,17 +122,31 @@ public class WorkbenchManage { return res; } - private WorkbenchVO.ProjectEarlyWarning getProjectEarlyWarning() { + private WorkbenchVO.ProjectEarlyWarning getProjectEarlyWarning(UserFullInfoDTO user) { WorkbenchVO.ProjectEarlyWarning projectEarlyWarning = new WorkbenchVO.ProjectEarlyWarning(); + + List projects = projectService.list(Wrappers.lambdaQuery(Project.class) + .eq(Project::getNewest, Boolean.TRUE) + .eq(user.getRegionAdmin(),Project::getAreaCode,user.getRegionCode()) + .eq(user.getIsOrgAdmin() || user.notAdmin(),Project::getBuildOrgCode,user.getEmpPosUnitCode())); + Set projectCodeS = Sets.newHashSet(); + Map projectNameMap = projects.stream() + .filter(p -> projectCodeS.add(p.getProjectCode())) + .collect(Collectors.toMap(Project::getProjectCode,Project::getProjectName)); + //4.1 //累积预警统计 WorkbenchVO.WarningStatistics accumulate = new WorkbenchVO.WarningStatistics(); Long overCount = earlyWarningRecordsService.count(Wrappers.lambdaQuery(WflowEarlyWarningRecords.class) .eq(WflowEarlyWarningRecords::getNoticeType, WarningNoticeTypeEnum.OVER.getCode()) - .or(q2 -> q2.isNull(WflowEarlyWarningRecords::getNoticeType))); + .or(q2 -> q2.isNull(WflowEarlyWarningRecords::getNoticeType)) + .eq(user.getRegionAdmin(),WflowEarlyWarningRecords::getAreaCode,user.getRegionCode()) + .eq(user.getIsOrgAdmin() || user.notAdmin(),WflowEarlyWarningRecords::getBuildOrgCode,user.getEmpPosUnitCode())); accumulate.setOver(overCount.intValue()); Long adventCount = earlyWarningRecordsService.count(Wrappers.lambdaQuery(WflowEarlyWarningRecords.class) - .eq(WflowEarlyWarningRecords::getNoticeType, WarningNoticeTypeEnum.ADVENT.getCode())); + .eq(WflowEarlyWarningRecords::getNoticeType, WarningNoticeTypeEnum.ADVENT.getCode()) + .eq(user.getRegionAdmin(),WflowEarlyWarningRecords::getAreaCode,user.getRegionCode()) + .eq(user.getIsOrgAdmin() || user.notAdmin(),WflowEarlyWarningRecords::getBuildOrgCode,user.getEmpPosUnitCode())); accumulate.setAdvent(adventCount.intValue()); projectEarlyWarning.setAccumulate(accumulate); @@ -143,13 +157,19 @@ public class WorkbenchManage { Page adventPage = Page.of(1,1000); Page normalPage = Page.of(1,1000); LambdaQueryWrapper overWrapper = Wrappers.lambdaQuery(ProjectEarlyWarning.class) - .eq(ProjectEarlyWarning::getStatus, ProjectEarlyWarningStatusEnum.OVER_TIME.name()); + .eq(ProjectEarlyWarning::getStatus, ProjectEarlyWarningStatusEnum.OVER_TIME.name()) + .eq(user.getRegionAdmin(),ProjectEarlyWarning::getAreaCode,user.getRegionCode()) + .eq(user.getIsOrgAdmin() || user.notAdmin(),ProjectEarlyWarning::getBuildOrgCode,user.getEmpPosUnitCode()); projectEarlyWarningService.page(overPage,overWrapper); LambdaQueryWrapper adventWrapper = Wrappers.lambdaQuery(ProjectEarlyWarning.class) - .eq(ProjectEarlyWarning::getStatus, ProjectEarlyWarningStatusEnum.ADVENT_TIME.name()); + .eq(ProjectEarlyWarning::getStatus, ProjectEarlyWarningStatusEnum.ADVENT_TIME.name()) + .eq(user.getRegionAdmin(),ProjectEarlyWarning::getAreaCode,user.getRegionCode()) + .eq(user.getIsOrgAdmin() || user.notAdmin(),ProjectEarlyWarning::getBuildOrgCode,user.getEmpPosUnitCode()); projectEarlyWarningService.page(adventPage,adventWrapper); LambdaQueryWrapper normalWrapper = Wrappers.lambdaQuery(ProjectEarlyWarning.class) - .eq(ProjectEarlyWarning::getStatus, ProjectEarlyWarningStatusEnum.NORMAL.name()); + .eq(ProjectEarlyWarning::getStatus, ProjectEarlyWarningStatusEnum.NORMAL.name()) + .eq(user.getRegionAdmin(),ProjectEarlyWarning::getAreaCode,user.getRegionCode()) + .eq(user.getIsOrgAdmin() || user.notAdmin(),ProjectEarlyWarning::getBuildOrgCode,user.getEmpPosUnitCode()); projectEarlyWarningService.page(normalPage,normalWrapper); WorkbenchVO.WarningStatistics cuurent = new WorkbenchVO.WarningStatistics(); @@ -162,6 +182,8 @@ public class WorkbenchManage { projectEarlyWarning.setCurrent(cuurent); List warningRecords = earlyWarningRecordsService.list(Wrappers.lambdaQuery(WflowEarlyWarningRecords.class) + .eq(user.getRegionAdmin(),WflowEarlyWarningRecords::getAreaCode,user.getRegionCode()) + .eq(user.getIsOrgAdmin() || user.notAdmin(),WflowEarlyWarningRecords::getBuildOrgCode,user.getEmpPosUnitCode()) .orderByDesc(WflowEarlyWarningRecords::getWarningTime)); Set projectCodeSet = Sets.newHashSet(); Map warningMap = warningRecords.stream() @@ -183,6 +205,7 @@ public class WorkbenchManage { vo.setBatchEmployees(record.getBatchEmployees()); vo.setRecordId(record.getId()); } + vo.setProjectName(projectNameMap.get(o.getProjectCode())); return vo; }).collect(Collectors.toList()); projectEarlyWarning.setOvers(PageVo.of(overVos,overPage.getTotal())); @@ -205,6 +228,7 @@ public class WorkbenchManage { vo.setBatchEmployees(record.getBatchEmployees()); vo.setRecordId(record.getId()); } + vo.setProjectName(projectNameMap.get(o.getProjectCode())); return vo; }).collect(Collectors.toList()); projectEarlyWarning.setAdvents(PageVo.of(adventVos,adventPage.getTotal())); @@ -227,6 +251,7 @@ public class WorkbenchManage { vo.setBatchEmployees(record.getBatchEmployees()); vo.setRecordId(record.getId()); } + vo.setProjectName(projectNameMap.get(o.getProjectCode())); return vo; }).collect(Collectors.toList()); projectEarlyWarning.setNormals(PageVo.of(normalVos,normalPage.getTotal())); @@ -265,20 +290,16 @@ public class WorkbenchManage { VUtils.isTrue(StringUtils.isBlank(batchEmployees)) .throwMessage("催办失败,员工为空!"); String[] employees = batchEmployees.split(StrPool.COMMA); -// Integer hours = LocalDateTime.now(); + //算出 当前和他的 小时差 Long between = ChronoUnit.HOURS.between(instStart,LocalDateTime.now()); Integer times = 0; for(String employee : employees){ earlyWarningManage.doEarlyWarning(noticeMethod,noticeContent,between.intValue(),biz, instStart,employee,project, - ruleType,noticeType,path,batchEmployees); + ruleType,noticeType,path,batchEmployees,record.getNodeId()); times++; } return "催办成功了" + times + "个人"; } - - public static void main(String[] args) { - System.out.println(ChronoUnit.HOURS.between(LocalDateTime.now(),LocalDateTime.now().plusMonths(1))); - } }