Browse Source

Merge remote-tracking branch 'origin/master'

master
WendyYang 10 months ago
parent
commit
b7bd139dea
12 changed files with 246 additions and 29 deletions
  1. +3
    -3
      pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardProjectManage.java
  2. +3
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/ProtraitProjectInfoVO.java
  3. +11
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectRenewalApprovalStatusEnum.java
  4. +3
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/scheduler/listener/EarlyWarningListener.java
  5. +3
    -3
      pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningInstanceNotStartTask.java
  6. +172
    -5
      pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningProjectTask.java
  7. +3
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/EarlyWarningManage.java
  8. +3
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/sys/model/entity/WflowEarlyWarningRecords.java
  9. +3
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/sys/model/vo/ProjectEarlyWarningVO.java
  10. +1
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/sys/service/impl/ProjectEarlyWarningServiceImpl.java
  11. +7
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserFullInfoDTO.java
  12. +34
    -13
      pmapi/src/main/java/com/ningdatech/pmapi/workbench/manage/WorkbenchManage.java

+ 3
- 3
pmapi/src/main/java/com/ningdatech/pmapi/dashboard/manage/DashboardProjectManage.java View File

@@ -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);
}



+ 3
- 0
pmapi/src/main/java/com/ningdatech/pmapi/dashboard/model/vo/ProtraitProjectInfoVO.java View File

@@ -49,6 +49,9 @@ public class ProtraitProjectInfoVO {
@ApiModelProperty("超期情况")
private String overdueSituation;

@ApiModelProperty("状态")
private String status;

@ApiModelProperty("项目状态情况")
private List<ProtraitProjectStatusSituationVO> statusSituation;
}


+ 11
- 0
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectRenewalApprovalStatusEnum.java View File

@@ -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;
}
}

+ 3
- 2
pmapi/src/main/java/com/ningdatech/pmapi/scheduler/listener/EarlyWarningListener.java View File

@@ -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);
}
}
}

+ 3
- 3
pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningInstanceNotStartTask.java View File

@@ -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)&&noticeType.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)&&noticeType.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());
}
}



+ 172
- 5
pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/EarlyWarningProjectTask.java View File

@@ -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<ProjectEarlyWarning> renewalFundWarning) {
private void checkRenewalFundWarning(List<ProjectEarlyWarning> 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<ProjectEarlyWarning> operationWarning) {
private void checkOperationWarning(List<ProjectEarlyWarning> 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<ProjectEarlyWarning> declaredWarning) {

private void checkDeclaredWarning(List<ProjectEarlyWarning> 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<ProjectEarlyWarning> processWarning) {
/**
* 流程 查看 是否已经处理过
* @param processWarnings
*/
private void checkProcessWarning(List<ProjectEarlyWarning> 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<Task> 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);
}
}

}
}

+ 3
- 1
pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/EarlyWarningManage.java View File

@@ -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.消息提醒


+ 3
- 0
pmapi/src/main/java/com/ningdatech/pmapi/sys/model/entity/WflowEarlyWarningRecords.java View File

@@ -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;



+ 3
- 0
pmapi/src/main/java/com/ningdatech/pmapi/sys/model/vo/ProjectEarlyWarningVO.java View File

@@ -34,6 +34,9 @@ public class ProjectEarlyWarningVO implements Serializable {
@ApiModelProperty(value = "项目编码")
private String projectCode;

@ApiModelProperty(value = "项目名称")
private String projectName;

@ApiModelProperty(value = "区域")
private String areaCode;



+ 1
- 2
pmapi/src/main/java/com/ningdatech/pmapi/sys/service/impl/ProjectEarlyWarningServiceImpl.java View File

@@ -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<ProjectEarlyWarn
warning.setStatus(ProjectEarlyWarningStatusEnum.OVER_TIME.name());
break;
case ADVENT:
warning.setStatus(ProjectEarlyWarningStatusEnum.OVER_TIME.name());
warning.setStatus(ProjectEarlyWarningStatusEnum.ADVENT_TIME.name());
break;
default:
warning.setStatus(ProjectEarlyWarningStatusEnum.OVER_TIME.name());


+ 7
- 0
pmapi/src/main/java/com/ningdatech/pmapi/user/security/auth/model/UserFullInfoDTO.java View File

@@ -128,4 +128,11 @@ public class UserFullInfoDTO {
}
return Boolean.FALSE;
}

public Boolean notAdmin() {
if(!getSuperAdmin() && !getRegionAdmin() && !getIsOrgAdmin()){
return Boolean.TRUE;
}
return Boolean.FALSE;
}
}

+ 34
- 13
pmapi/src/main/java/com/ningdatech/pmapi/workbench/manage/WorkbenchManage.java View File

@@ -108,7 +108,7 @@ public class WorkbenchManage {
}, ForkJoinPool.commonPool()),
CompletableFuture.runAsync(() -> {
//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<Project> 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<String> projectCodeS = Sets.newHashSet();
Map<String,String> 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<ProjectEarlyWarning> adventPage = Page.of(1,1000);
Page<ProjectEarlyWarning> normalPage = Page.of(1,1000);
LambdaQueryWrapper<ProjectEarlyWarning> 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<ProjectEarlyWarning> 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<ProjectEarlyWarning> 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<WflowEarlyWarningRecords> 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<String> projectCodeSet = Sets.newHashSet();
Map<String, WflowEarlyWarningRecords> 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)));
}
}

Loading…
Cancel
Save