设计符合性流程、任务清单列表、设计符合性流程定时器(消息,三天与当天。)

This commit is contained in:
wangzhijiang
2022-05-11 18:28:12 +08:00
parent 78978812f3
commit 4c24135245
4 changed files with 164 additions and 3 deletions
@@ -70,7 +70,7 @@ public class ProjectTaskInventoryEOController extends JeroController<ProjectTask
@GetMapping(value = "/list")
public Result<List<ProjectTaskInventoryEO>> queryList(ProjectTaskInventoryEO projectTaskInventoryEO,HttpServletRequest req) {
List<ProjectTaskInventoryEO> list = projectTaskInventoryEOService.queryList(projectTaskInventoryEO,req);
return Result.OK(list);
return Result.OK(projectTaskInventoryEO.getCut(),list);
}
/**
@@ -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**/
@@ -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<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>();
queryProjectTaskInventoryWrapper.isNotNull("design_p_id");
queryProjectTaskInventoryWrapper.lambda().ne(ProjectTaskInventoryEO::getDesignStatus, DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue());
List<ProjectTaskInventoryEO> projectTaskInventoryEOList = projectTaskInventoryEOService.getBaseMapper().selectList(queryProjectTaskInventoryWrapper);
if(CollectionUtils.isNotEmpty(projectTaskInventoryEOList)){
List<String> projectLawsInventoryIdList = projectTaskInventoryEOList.stream().distinct().map(ProjectTaskInventoryEO::getProjectLawsInventoryId).collect(Collectors.toList());
//根据已经启动了设计符合性流程的 法规清单id。查询法规清单
QueryWrapper<ProjectLawsInventoryEO> queryWrapperInventory = new QueryWrapper<>();
queryWrapperInventory.lambda().in(ProjectLawsInventoryEO::getId, projectLawsInventoryIdList);
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(queryWrapperInventory);
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
List<String> projectLibraryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getProjectLibraryId).collect(Collectors.toList());
QueryWrapper<ProjectLibraryBase> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(ProjectLibraryBase::getId,projectLibraryIdList);
List<ProjectLibraryBase> 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<ProjectNameInfoEO> projectNameInfoEOQueryWrapper = new QueryWrapper<>();
projectNameInfoEOQueryWrapper.lambda().eq(ProjectNameInfoEO::getId,projectLibraryBase.getProjectNameId());
ProjectNameInfoEO projectNameInfoEO = projectNameInfoEOMapper.selectOne(projectNameInfoEOQueryWrapper);
for (ProjectLawsInventoryEO projectLawsInventoryEO: projectLawsInventoryEOList) {
List<String> threeDaysUserIdList = new ArrayList<>();
List<String> 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());
}
}
}
}
}
}
}
}
@@ -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<ProjectTaskIn
}
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrapper = new QueryWrapper<>();
ProjectLawsInventoryEO projectLawsInventoryEO = new ProjectLawsInventoryEO();
projectLawsInventoryEO.setSerialNumber(projectTaskInventoryEO.getSerialNumber());
projectLawsInventoryEO.setDutyTerritory(projectTaskInventoryEO.getDutyTerritory());
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO,req.getParameterMap());
//QueryWrapper<ProjectLawsInventoryEO> 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<ProjectTaskIn
projectTaskInventoryEO.setVerifyTaskDefinitionKey(verifyTaskDefinitionKey);
projectTaskInventoryEO.setVerifyTaskDetailId(verifyTaskDetailId);
}
projectTaskInventoryEO.setCertificationProgress(projectTaskInventoryEO.getCertificationProgress());
projectTaskInventoryEO.setCertificationProgressRemark(projectTaskInventoryEO.getCertificationProgressRemark());
}else {
projectTaskInventoryEO.setCertificationProgress("");
projectTaskInventoryEO.setCertificationProgressRemark("");
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetailEO.getUserId())){
actiProcInstId = projectTaskInventoryDetailEO.getActiProcInstId();
if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue())){