174-OA待办修改

This commit is contained in:
liyawei
2022-11-21 17:46:39 +08:00
parent 9e2c4fce87
commit edacaa3172
13 changed files with 486 additions and 51 deletions
@@ -0,0 +1,100 @@
package com.ydw.bat.wkflow.config;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.EsPrcRelation;
import com.ydw.bat.wkflow.business_main.datas.entity.EsRevisePlanDTO;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IEsPrcRelationService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import java.util.stream.Collectors;
public class ScheduledJobEsPlan {
Logger logger = LoggerFactory.getLogger(ScheduledJobEsPlan.class);
@Value("${isNotScheduled}")
private boolean isNotScheduled; //是否开启定时器
@Scheduled(cron = "0 0 2 * * ?") //每天的凌晨2点执行
@Async
public void SchedulingTask() {
if(isNotScheduled) {
logger.info("============企标计划定时任务开始===========");
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
IEsPrcRelationService esPrcRelationService = SpringContextUtil.getBean(IEsPrcRelationService.class);
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
List<EsRevisePlanDTO> esRevisePlanDTOList = lawsUserInfoService.getAllPlansByWk(); // 查询 制定中,修订中的企标计划
// 计划标准初稿时间前一个月的企标计划
SimpleDateFormat sdfQuery = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
String endDate = sdfQuery.format(calendar.getTime());
List<EsRevisePlanDTO> esRevisePlanDTOList2 = esRevisePlanDTOList.stream()
.filter(e -> endDate.equals(sdfQuery.format(e.getDraftTime())))
.collect(Collectors.toList());
if (!esRevisePlanDTOList2.isEmpty()) {
for (EsRevisePlanDTO esRevisePlanDTO : esRevisePlanDTOList2) {
List<EsPrcRelation> esPrcRelationList = esPrcRelationService.list(esRevisePlanDTO.getId());
if (esPrcRelationList.isEmpty()) {
continue;
}
String esId = esPrcRelationList.get(0).getEsId();
String prcIdGk = esPrcRelationList.get(0).getPrcIdGk();
String oaFlag = esPrcRelationList.get(0).getOaFlag();
// 判断对应 管控流程是否还在 技术标准起草节点, 且之前点过接受任务
if (StringUtils.isNotBlank(prcIdGk)) {
List<Task> list2 = taskService.createTaskQuery().processInstanceId(prcIdGk).active().list();
if (!list2.isEmpty()) {
String nowTaskInfo = list2.get(0).getName();
if ("技术标准起草".equals(nowTaskInfo) && "0".equals(oaFlag)) {
// 再次发送待办
logger.info("============再次发送待办的企标计划" + esRevisePlanDTO.getEsName() +"===========");
sendOATodo(list2.get(0));
// 更新 状态为待办
esPrcRelationService.modifyEsPrcRelation(esId, null, "1", null);
}
}
}
}
}
logger.info("============企标计划定时任务结束===========");
}
}
public void sendOATodo(Task delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
queryWrapper1.eq("USER_ID",delegateTask.getAssignee());
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()) {
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
// 发送 oa 待办 设置 跳转页面 router ? 后面流程类型
one1.setLink("qbzxdjhgkStep6?prcType=25");
one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1);
}
}
}