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