fix: 79963 企标复审计划--默认条件查询失败

This commit is contained in:
2024-01-15 18:17:35 +08:00
parent 89b85525b4
commit bb6df92398
6 changed files with 152 additions and 55 deletions
@@ -451,6 +451,16 @@ public class ActFlowCommonService {
* @param data * @param data
*/ */
public void saveFirstNodeDraft(CommonVO common, ProcessTypeEnum processTypeEnum, Object data) { public void saveFirstNodeDraft(CommonVO common, ProcessTypeEnum processTypeEnum, Object data) {
ProcessInfoVO processInfoVo = this.getProcessInfoVo(common, processTypeEnum, data);
processHandleService.saveToDraft(processInfoVo);
}
public void saveFirstNodeDraftCustomUserId(CommonVO common, ProcessTypeEnum processTypeEnum, Object data, String userId) {
ProcessInfoVO processInfoVo = this.getProcessInfoVo(common, processTypeEnum, data);
processHandleService.saveToDraftCustomUserId(processInfoVo, userId);
}
private ProcessInfoVO getProcessInfoVo(CommonVO common, ProcessTypeEnum processTypeEnum, Object data) {
// 将archiveData转为Json // 将archiveData转为Json
String dataJson = JSON.toJSONString(data); String dataJson = JSON.toJSONString(data);
ProcessInfoVO<ESArchiveDataVO> processInfoVO = new ProcessInfoVO<>(); ProcessInfoVO<ESArchiveDataVO> processInfoVO = new ProcessInfoVO<>();
@@ -467,6 +477,6 @@ public class ActFlowCommonService {
processInfoVO.setInfoJsonStr(dataJson); processInfoVO.setInfoJsonStr(dataJson);
processInfoVO.setBasicTaskInfoDTO(basicTaskInfoDTO); processInfoVO.setBasicTaskInfoDTO(basicTaskInfoDTO);
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO); processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
processHandleService.saveToDraft(processInfoVO); return processInfoVO;
} }
} }
@@ -144,7 +144,7 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime); actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
// 强制撤回 // 强制撤回
common.setProcessInstanceId(processInstanceId); common.setProcessInstanceId(processInstanceId);
actFlowCommonService.saveFirstNodeDraft(common, ProcessTypeEnum.ES_RECHECK, recheckData); actFlowCommonService.saveFirstNodeDraftCustomUserId(common, ProcessTypeEnum.ES_RECHECK, recheckData, userId);
} }
public Map<String, Object> setVariables(Map<String, Object> flowUser) { public Map<String, Object> setVariables(Map<String, Object> flowUser) {
@@ -62,6 +62,13 @@ public interface IProcessHandleService {
**/ **/
void updateProcessAll(ProcessInfoVO processInfoVO); void updateProcessAll(ProcessInfoVO processInfoVO);
/**
* @Author: caihaohan
* @Date: 2024/1/15 10:45
* @Description: 更新流程总表
**/
void updateProcessAllCustomUserId(ProcessInfoVO processInfoVO, String userId);
/** /**
* @Author: liao * @Author: liao
* @Date: 2023/11/3 10:52 * @Date: 2023/11/3 10:52
@@ -76,6 +83,9 @@ public interface IProcessHandleService {
**/ **/
void saveToDraft(ProcessInfoVO processInfoVO); void saveToDraft(ProcessInfoVO processInfoVO);
void saveToDraftCustomUserId(ProcessInfoVO processInfoVO, String userId);
/** /**
* @Author: yjz * @Author: yjz
* @Date: 2023/11/3 10:29 * @Date: 2023/11/3 10:29
@@ -101,6 +111,12 @@ public interface IProcessHandleService {
**/ **/
void deleteMyDraft(String taskId, String businessId, Integer processType); void deleteMyDraft(String taskId, String businessId, Integer processType);
/**
* @Author: caihaohan
* @Date: 2024/1/15 16:48
* @Description: 删除自己的草稿
**/
void deleteMyDraftCustomUserId(String taskId, String businessId, Integer processType, String userId);
/** /**
* @Author: liao * @Author: liao
@@ -305,6 +305,28 @@ public class ProcessHandleServiceImpl implements IProcessHandleService{
processAllService.updateById(process); processAllService.updateById(process);
} }
/**
* @Author: liao
* @Date: 2023/11/3 10:46
* @Description: 更新流程总表
**/
@Override
public void updateProcessAllCustomUserId(ProcessInfoVO processInfoVO, String userId) {
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
ProcessAll process = processAllService.getByProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId());
if (Objects.isNull(process)) {
process = new ProcessAll();
}
process.setCreateUserId(userId); // 流程创建人
process.setPrcName(basicProcessInfoDTO.getProcessName()); // 流程名称
process.setMes(basicProcessInfoDTO.getProcessDescription()); // 流程说明
process.setPrcMes(basicProcessInfoDTO.getProcessDescription()); // 流程说明
process.setDueTime(basicProcessInfoDTO.getProcessDueDate()); // 流程截止时间
process.setPrcType(basicProcessInfoDTO.getProcessType()); // 流程类型
process.setProjectId(processInfoVO.getBusinessId()); // 业务id
processAllService.updateById(process);
}
/** /**
* @Author: liao * @Author: liao
* @Date: 2023/11/3 10:53 * @Date: 2023/11/3 10:53
@@ -333,6 +355,15 @@ public class ProcessHandleServiceImpl implements IProcessHandleService{
**/ **/
@Override @Override
public void saveToDraft(ProcessInfoVO processInfoVO) { public void saveToDraft(ProcessInfoVO processInfoVO) {
this.saveToDraft(processInfoVO, CurrentUserUtil.getId());
}
@Override
public void saveToDraftCustomUserId(ProcessInfoVO processInfoVO, String userId) {
this.saveToDraft(processInfoVO, userId);
}
private void saveToDraft(ProcessInfoVO processInfoVO, String userId) {
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO(); BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO(); BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
String taskId = null; String taskId = null;
@@ -347,7 +378,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService{
} }
// 保存 // 保存
updateProcessAll(processInfoVO); updateProcessAllCustomUserId(processInfoVO, userId);
updateApprovalRecord(processInfoVO); updateApprovalRecord(processInfoVO);
// 删除自己的草稿 // 删除自己的草稿
@@ -355,9 +386,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService{
if (StringUtils.isNotBlank(draftId)) { if (StringUtils.isNotBlank(draftId)) {
processDraftService.removeById(draftId); processDraftService.removeById(draftId);
} }
deleteMyDraft(taskId, processInfoVO.getBusinessId(), basicProcessInfoDTO.getProcessType()); deleteMyDraftCustomUserId(taskId, processInfoVO.getBusinessId(), basicProcessInfoDTO.getProcessType(), userId);
// 根据是否有taskId区分保存来源(待办、草稿) // 根据是否有taskId区分保存来源(待办、草稿)
BasicTaskInfoDTO basicTaskInfoDTO1 = processInfoVO.getBasicTaskInfoDTO();
ProcessDraft processDraft = new ProcessDraft(); ProcessDraft processDraft = new ProcessDraft();
processDraft.setProjectId(processInfoVO.getBusinessId()); // 业务id processDraft.setProjectId(processInfoVO.getBusinessId()); // 业务id
processDraft.setProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId()); // 流程实例id processDraft.setProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId()); // 流程实例id
@@ -368,7 +398,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService{
processDraft.setTaskId(taskId); // 任务id processDraft.setTaskId(taskId); // 任务id
processDraft.setHandleText(handleText); // 流程审批信息-备注 processDraft.setHandleText(handleText); // 流程审批信息-备注
processDraft.setHandleFile(handleFile); // 流程审批信息-附件 processDraft.setHandleFile(handleFile); // 流程审批信息-附件
processDraft.setUserId(CurrentUserUtil.getId()); // 用户id processDraft.setUserId(userId); // 用户id
processDraft.setInfoJsonStr(processInfoVO.getInfoJsonStr());//草稿信息json字符串 processDraft.setInfoJsonStr(processInfoVO.getInfoJsonStr());//草稿信息json字符串
processDraft.setSaveSource(processInfoVO.getSaveSource());//来源(启动流程时有用,用于保存初始业务信息用于强制驳回) processDraft.setSaveSource(processInfoVO.getSaveSource());//来源(启动流程时有用,用于保存初始业务信息用于强制驳回)
processDraftService.save(processDraft); processDraftService.save(processDraft);
@@ -440,6 +470,31 @@ public class ProcessHandleServiceImpl implements IProcessHandleService{
} }
} }
/**
* @Author: caihaohan
* @Date: 2024/1/15 16:46
* @Description: 删除自己的草稿
**/
@Override
public void deleteMyDraftCustomUserId(String taskId, String businessId, Integer processType, String userId) {
LambdaQueryWrapper<ProcessDraft> deleteWrapper = new LambdaQueryWrapper<>();
deleteWrapper.eq(ProcessDraft::getUserId, userId);
if (processType != null) {
deleteWrapper.eq(ProcessDraft::getPrcType, processType);
}
if (StringUtils.isNotBlank(businessId)) {
deleteWrapper.eq(ProcessDraft::getProjectId, businessId);
}
if (StringUtils.isNotBlank(taskId)) {
deleteWrapper.eq(ProcessDraft::getTaskId, taskId);
}
deleteWrapper.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE);
List<ProcessDraft> processDraftList = processDraftService.list(deleteWrapper);
for (ProcessDraft processDraft : processDraftList) {
processDraftService.removeById(processDraft.getId());
}
}
/** /**
* @Author: liao * @Author: liao
* @Date: 2023/11/3 11:14 * @Date: 2023/11/3 11:14
@@ -650,6 +705,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService{
/** /**
* 保存流程定义节点用户 * 保存流程定义节点用户
*
* @param processInstanceId * @param processInstanceId
* @param nodeId * @param nodeId
* @param userIdList * @param userIdList
@@ -2,12 +2,17 @@ package com.jero.modules.laws.enterprise.job;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.modules.activiti.process.common.entity.CommonVO; import com.jero.modules.activiti.process.common.entity.CommonVO;
import com.jero.modules.activiti.process.esRecheck.entity.ProcessEsRecheck; import com.jero.modules.activiti.process.esRecheck.entity.ProcessEsRecheck;
import com.jero.modules.activiti.process.esRecheck.entity.vo.ESRecheckDataVO; import com.jero.modules.activiti.process.esRecheck.entity.vo.ESRecheckDataVO;
import com.jero.modules.activiti.process.esRecheck.service.ProcessEsRecheckService; import com.jero.modules.activiti.process.esRecheck.service.ProcessEsRecheckService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRecheckPlan; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRecheckPlan;
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardRecheckPlanVo;
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardRecheckPlanMapper;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardRecheckPlanService; import com.jero.modules.laws.enterprise.service.EnterpriseStandardRecheckPlanService;
import com.jero.modules.laws.enterprise.util.BeanCopyUtils; import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
@@ -22,10 +27,7 @@ import javax.annotation.Resource;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -48,6 +50,9 @@ public class ESRecheckPlanJob implements Job {
@Resource @Resource
private ProcessEsRecheckService recheckService; private ProcessEsRecheckService recheckService;
@Resource
private EnterpriseStandardRecheckPlanMapper esRecheckPlanMapper;
@Override @Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
List<LawsEnterpriseStandard> allEs = esService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>().eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getValue())); List<LawsEnterpriseStandard> allEs = esService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>().eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getValue()));
@@ -100,6 +105,35 @@ public class ESRecheckPlanJob implements Job {
} }
} }
} }
// 遍历所有复审计划数据 如果当前时间超过复审日期7天,则显示下一次复审日期
IPage<EnterpriseStandardRecheckPlanVo> page = new Page<>(1, Integer.MAX_VALUE);
List<EnterpriseStandardRecheckPlanVo> records = esRecheckPlanMapper.page(page, new ESQueryCommonDTO()).getRecords();
records.forEach(recheckPlan -> {
// 获取复审日期前7天的时间戳
long sevenDaysAfterRecheck = recheckPlan.getRecheckDate().getTime() + (8L * 24 * 60 * 60 * 1000);
// 检查当前时间是否在复审日期前7天内
if (System.currentTimeMillis() > sevenDaysAfterRecheck) {
// 获取发布日期
Date releaseDate = recheckPlan.getReleaseDate();
// 使用Calendar进行日期的加减
Calendar calendar = Calendar.getInstance();
if (releaseDate != null) {
calendar.setTime(releaseDate); // 设置发布日期
calendar.add(Calendar.YEAR, 6); // 在发布日期的基础上加三年
// 如果新的日期小于等于复审日期,则在复审日期的基础上加三年
if (calendar.getTime().getTime() <= recheckPlan.getRecheckDate().getTime()) {
calendar.setTime(recheckPlan.getRecheckDate());
calendar.add(Calendar.YEAR, 3);
}
// 将新的复审日期设置回对象中
recheckPlan.setRecheckDate(calendar.getTime());
}
}
});
List<EnterpriseStandardRecheckPlan> enterpriseStandardRecheckPlans = BeanCopyUtils
.copyBeanList(records, EnterpriseStandardRecheckPlan.class);
esRecheckPlanService.updateBatchById(enterpriseStandardRecheckPlans);
log.info("企标复审计划定时任务执行完成"); log.info("企标复审计划定时任务执行完成");
} }
@@ -38,26 +38,7 @@ public class EnterpriseStandardRecheckPlanServiceImpl extends ServiceImpl<Enterp
@Override @Override
public IPage<EnterpriseStandardRecheckPlanVo> queryPageList(ESQueryCommonDTO esRecheckPlan, Integer pageNo, Integer pageSize) { public IPage<EnterpriseStandardRecheckPlanVo> queryPageList(ESQueryCommonDTO esRecheckPlan, Integer pageNo, Integer pageSize) {
IPage<EnterpriseStandardRecheckPlanVo> page = new Page<>(pageNo, pageSize); IPage<EnterpriseStandardRecheckPlanVo> page = new Page<>(pageNo, pageSize);
// 遍历数据 如果当前时间超过复审日期7天,则显示下一次复审日期 return esRecheckPlanMapper.page(page, esRecheckPlan);
List<EnterpriseStandardRecheckPlanVo> records = esRecheckPlanMapper.page(page, esRecheckPlan).getRecords();
records.forEach(recheckPlan -> {
// 获取复审日期前7天的时间戳
long sevenDaysAfterRecheck = recheckPlan.getRecheckDate().getTime() + (8L * 24 * 60 * 60 * 1000);
// 检查当前时间是否在复审日期前7天内
if (System.currentTimeMillis() > sevenDaysAfterRecheck) {
// 获取发布日期
Date releaseDate = recheckPlan.getReleaseDate();
// 使用Calendar进行日期的加减
Calendar calendar = Calendar.getInstance();
if (releaseDate != null) {
calendar.setTime(releaseDate); // 设置发布日期
calendar.add(Calendar.YEAR, 6); // 在发布日期的基础上加三年
// 将新的复审日期设置回对象中
recheckPlan.setRecheckDate(calendar.getTime());
}
}
});
return page.setRecords(records);
} }
@Override @Override