From 4c24135245700b0422688eb43e98d356173c16ea Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Wed, 11 May 2022 18:28:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E7=AC=A6=E5=90=88=E6=80=A7?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E3=80=81=E4=BB=BB=E5=8A=A1=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E3=80=81=E8=AE=BE=E8=AE=A1=E7=AC=A6=E5=90=88?= =?UTF-8?q?=E6=80=A7=E6=B5=81=E7=A8=8B=E5=AE=9A=E6=97=B6=E5=99=A8=EF=BC=88?= =?UTF-8?q?=E6=B6=88=E6=81=AF=EF=BC=8C=E4=B8=89=E5=A4=A9=E4=B8=8E=E5=BD=93?= =?UTF-8?q?=E5=A4=A9=E3=80=82=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectTaskInventoryEOController.java | 2 +- .../entity/ProjectTaskInventoryEO.java | 7 + .../project/job/designComplianceJob.java | 145 ++++++++++++++++++ .../ProjectTaskInventoryEOServiceImpl.java | 13 +- 4 files changed, 164 insertions(+), 3 deletions(-) create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java index 1cc62f664..9410fbc84 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectTaskInventoryEOController.java @@ -70,7 +70,7 @@ public class ProjectTaskInventoryEOController extends JeroController> queryList(ProjectTaskInventoryEO projectTaskInventoryEO,HttpServletRequest req) { List list = projectTaskInventoryEOService.queryList(projectTaskInventoryEO,req); - return Result.OK(list); + return Result.OK(projectTaskInventoryEO.getCut(),list); } /** diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java index 469c17fef..200190b24 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectTaskInventoryEO.java @@ -117,8 +117,14 @@ public class ProjectTaskInventoryEO implements Serializable { /**认证进度*/ @Excel(name = "认证进度", width = 15) @ApiModelProperty(value = "认证进度") + @Dict(dicCode = "certification_progress") private String certificationProgress; + /**认证进度备注*/ + @Excel(name = "认证进度备注", width = 15) + @ApiModelProperty(value = "认证进度备注") + private String certificationProgressRemark; + /**项目状态评估*/ @Excel(name = "项目状态评估", width = 15) @ApiModelProperty(value = "项目状态评估") @@ -138,6 +144,7 @@ public class ProjectTaskInventoryEO implements Serializable { /**责任领域**/ @TableField(exist = false) + @Dict(dicCode ="duty_territory") private String dutyTerritory; /**设计符合性 待办id**/ diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java new file mode 100644 index 000000000..b28aa9e11 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java @@ -0,0 +1,145 @@ +package com.jero.modules.project.job; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.modules.project.entity.*; +import com.jero.modules.project.enums.DesignComplianceStatusEnum; +import com.jero.modules.project.enums.SendMsgFlagEnum; +import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper; +import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; +import com.jero.modules.project.mapper.ProjectNameInfoEOMapper; +import com.jero.modules.project.service.IProjectLawsInventoryEOService; +import com.jero.modules.project.service.IProjectTaskInventoryEOService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 设计符合性流程 - 定时器 + */ +@Slf4j +public class designComplianceJob implements Job { + @Autowired + private ProjectLawsInventoryEOMapper projectLawsInventoryEOMapper; + + @Autowired + private ProjectLibraryBaseMapper projectLibraryBaseMapper; + + @Autowired + private IProjectLawsInventoryEOService projectLawsInventoryEOService; + + @Autowired + private ProjectNameInfoEOMapper projectNameInfoEOMapper; + + @Autowired + private IProjectTaskInventoryEOService projectTaskInventoryEOService; + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + + //查询出已经启动了设计符合性流程的数据。 并且流程没有结束。 + QueryWrapper queryProjectTaskInventoryWrapper = new QueryWrapper<>(); + queryProjectTaskInventoryWrapper.isNotNull("design_p_id"); + queryProjectTaskInventoryWrapper.lambda().ne(ProjectTaskInventoryEO::getDesignStatus, DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + List projectTaskInventoryEOList = projectTaskInventoryEOService.getBaseMapper().selectList(queryProjectTaskInventoryWrapper); + + if(CollectionUtils.isNotEmpty(projectTaskInventoryEOList)){ + List projectLawsInventoryIdList = projectTaskInventoryEOList.stream().distinct().map(ProjectTaskInventoryEO::getProjectLawsInventoryId).collect(Collectors.toList()); + //根据已经启动了设计符合性流程的 法规清单id。查询法规清单 + QueryWrapper queryWrapperInventory = new QueryWrapper<>(); + queryWrapperInventory.lambda().in(ProjectLawsInventoryEO::getId, projectLawsInventoryIdList); + List projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(queryWrapperInventory); + + if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){ + List projectLibraryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getProjectLibraryId).collect(Collectors.toList()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().in(ProjectLibraryBase::getId,projectLibraryIdList); + List projectLibraryBaseList = projectLibraryBaseMapper.selectList(queryWrapper); + if(CollectionUtils.isNotEmpty(projectLibraryBaseList)){ + SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd"); + + Date currentDate = new Date(); + + //获取后三天前的时间 + Calendar calendar=new GregorianCalendar(); + calendar.setTime(new Date()); + calendar.add(Calendar.DATE,3); + Date threeDays = calendar.getTime(); + + String threeDaysStr = sdf.format(threeDays); + String currentDateStr = sdf.format(currentDate); + + for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseList) { + QueryWrapper projectNameInfoEOQueryWrapper = new QueryWrapper<>(); + projectNameInfoEOQueryWrapper.lambda().eq(ProjectNameInfoEO::getId,projectLibraryBase.getProjectNameId()); + ProjectNameInfoEO projectNameInfoEO = projectNameInfoEOMapper.selectOne(projectNameInfoEOQueryWrapper); + + + for (ProjectLawsInventoryEO projectLawsInventoryEO: projectLawsInventoryEOList) { + List threeDaysUserIdList = new ArrayList<>(); + List currentDaysUserIdList = new ArrayList<>(); + + for (ProjectTaskInventoryEO projectTaskInventoryEO : projectTaskInventoryEOList) { + if(StringUtils.equals(projectTaskInventoryEO.getProjectLawsInventoryId(),projectLawsInventoryEO.getId())){ + //如果设计符合性 - 结束日期是当前日期 + if(StringUtils.equals(currentDateStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ + if(StringUtils.isEmpty(projectTaskInventoryEO.getDesignSendMsgFlag())){ + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ + currentDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); + }if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())){ + currentDaysUserIdList.add(projectLawsInventoryEO.getDesignInitiatorId()); + } + projectTaskInventoryEO.setDesignSendMsgFlag(SendMsgFlagEnum.FALSE.getValue()); + projectTaskInventoryEOService.updateById(projectTaskInventoryEO); + } + } + //如果设计符合性 - 结束日期是三天后的日期 + if(StringUtils.equals(threeDaysStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ + if(StringUtils.isEmpty(projectTaskInventoryEO.getDesignSendMsgCurrentFlag())){ + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ + threeDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); + }if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())){ + threeDaysUserIdList.add(projectLawsInventoryEO.getDesignInitiatorId()); + } + projectTaskInventoryEO.setDesignSendMsgCurrentFlag(SendMsgFlagEnum.FALSE.getValue()); + projectTaskInventoryEOService.updateById(projectTaskInventoryEO); + } + } + } + } + if(CollectionUtils.isNotEmpty(threeDaysUserIdList)){ + threeDaysUserIdList = threeDaysUserIdList.stream().distinct().collect(Collectors.toList()); + + //您XXX(项目名称)中GB 7258的设计符合性确认剩余处理时间还有3天,请及时查看处理 + String msgContentEN = "The remaining processing time for the design compliance confirmation of " + + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() + + " (project name) is 3 days. Please check and handle it in time."; + //发送消息 + projectLawsInventoryEOService.sendMessage(msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId()); + } + + if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){ + currentDaysUserIdList = currentDaysUserIdList.stream().distinct().collect(Collectors.toList()); + + //您XXX(项目名称)中GB 7258的设计符合性确认任务今天即将结束,请及时查看处理 + String msgContentEN = "The the design compliance confirmation of " + + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() + + " (project name) is coming to an end today. Please check and deal with it in time."; + //发送消息 + projectLawsInventoryEOService.sendMessage(msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId()); + } + } + } + } + } + } + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java index f16ec4814..622bf3504 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectTaskInventoryEOServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; +import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; import com.jero.modules.project.entity.*; import com.jero.modules.project.enums.*; @@ -133,8 +134,11 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl lawsInventoryEOQueryWrapper = new QueryWrapper<>(); + ProjectLawsInventoryEO projectLawsInventoryEO = new ProjectLawsInventoryEO(); + projectLawsInventoryEO.setSerialNumber(projectTaskInventoryEO.getSerialNumber()); + projectLawsInventoryEO.setDutyTerritory(projectTaskInventoryEO.getDutyTerritory()); + QueryWrapper lawsInventoryEOQueryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO,req.getParameterMap()); + //QueryWrapper lawsInventoryEOQueryWrapper = new QueryWrapper<>(); lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getInventoryAffirmStatus, InventoryAffirmStatusEnum.ACCEPTED.getValue()); lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, TaskAffirmStatusEnum.ACCEPTED.getValue()); @@ -438,7 +442,12 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl