Browse Source

流程处理修改

tags/24080901
CMM 1 year ago
parent
commit
34c55be705
2 changed files with 13 additions and 27 deletions
  1. +1
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/WorkNoticeFlowTask.java
  2. +12
    -26
      pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java

+ 1
- 1
pmapi/src/main/java/com/ningdatech/pmapi/scheduler/task/WorkNoticeFlowTask.java View File

@@ -46,7 +46,7 @@ public class WorkNoticeFlowTask {
private final INdWorkNoticeStagingService workNoticeStagingService; private final INdWorkNoticeStagingService workNoticeStagingService;
private final ZwddClient zwddClient; private final ZwddClient zwddClient;


@Scheduled(cron = "0 */1 * * * ?")
// @Scheduled(cron = "0 */1 * * * ?")
public void statusFlow() throws UnknownHostException { public void statusFlow() throws UnknownHostException {
//测试暂时用自己电脑HOST //测试暂时用自己电脑HOST
if (TaskContant.Host.HOST_CMM.equals(InetAddress.getLocalHost().getHostName())) { if (TaskContant.Host.HOST_CMM.equals(InetAddress.getLocalHost().getHostName())) {


+ 12
- 26
pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java View File

@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.ningdatech.basic.exception.BizException; import com.ningdatech.basic.exception.BizException;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.PageVo; import com.ningdatech.basic.model.PageVo;
import com.ningdatech.basic.util.CollUtils; import com.ningdatech.basic.util.CollUtils;
import com.ningdatech.pmapi.common.constant.CommonConst; import com.ningdatech.pmapi.common.constant.CommonConst;
@@ -201,11 +202,13 @@ public class TodoCenterManage {
// 获取入参 // 获取入参
String processInstanceId = param.getInstanceId(); String processInstanceId = param.getInstanceId();
Long projectId = param.getProjectId(); Long projectId = param.getProjectId();

VUtils.isTrue(Objects.isNull(processInstanceId)).throwMessage("获取流程实例ID失败!");
VUtils.isTrue(Objects.isNull(projectId)).throwMessage("获取项目ID失败!");
// 获取当前申报项目 // 获取当前申报项目
Project declaredProject = projectService.getOne(Wrappers.lambdaQuery(Project.class) Project declaredProject = projectService.getOne(Wrappers.lambdaQuery(Project.class)
.eq(Project::getInstCode, processInstanceId) .eq(Project::getInstCode, processInstanceId)
.eq(Project::getId,projectId)); .eq(Project::getId,projectId));
VUtils.isTrue(Objects.isNull(projectId)).throwMessage("获取项目ID失败!");
// 获取当前项目名称 // 获取当前项目名称
String projectName = declaredProject.getProjectName(); String projectName = declaredProject.getProjectName();
// 获取当前项目状态 // 获取当前项目状态
@@ -253,11 +256,6 @@ public class TodoCenterManage {
// 如果流程状态是被退回状态,流程通过后,进入下一个审核人, // 如果流程状态是被退回状态,流程通过后,进入下一个审核人,
// 当前通过审核人一定不是最后一个审核人(下一个审核人至多是最后一个),更新流程状态为审核中 // 当前通过审核人一定不是最后一个审核人(下一个审核人至多是最后一个),更新流程状态为审核中
if (ProcessStatusEnum.BE_BACKED.getDesc().equals(currentProcessStatus)) { if (ProcessStatusEnum.BE_BACKED.getDesc().equals(currentProcessStatus)) {
// 更新流程状态为审核中
declaredProject.setProcessStatus(ProcessStatusEnum.UNDER_REVIEW.getCode());
declaredProject.setUpdateOn(LocalDateTime.now());
declaredProject.setUpdateBy(userId);
projectService.updateById(declaredProject);
// 获取发送浙政钉工作通知必要信息 // 获取发送浙政钉工作通知必要信息
WorkNoticeInfo passWorkNoticeInfo = getSendWorkNoticeInfo(auditUserInfo); WorkNoticeInfo passWorkNoticeInfo = getSendWorkNoticeInfo(auditUserInfo);
String passMsg = String.format(PASS_MSG_TEMPLATE, passWorkNoticeInfo.getOrganizationName(), projectName); String passMsg = String.format(PASS_MSG_TEMPLATE, passWorkNoticeInfo.getOrganizationName(), projectName);
@@ -296,6 +294,9 @@ public class TodoCenterManage {
// 若有下一个审核人(当前节点的用户), // 若有下一个审核人(当前节点的用户),
// 向其发送浙政钉工作通知:标题:审核任务 内容:【单位名称】的【项目名称】需要您审核。 // 向其发送浙政钉工作通知:标题:审核任务 内容:【单位名称】的【项目名称】需要您审核。
// 获取发送浙政钉工作通知必要信息 // 获取发送浙政钉工作通知必要信息
if (Objects.isNull(auditUserInfo)){
throw new BizException("审核人信息不存在!");
}
WorkNoticeInfo sendWorkNoticeInfo = getSendWorkNoticeInfo(auditUserInfo); WorkNoticeInfo sendWorkNoticeInfo = getSendWorkNoticeInfo(auditUserInfo);
String msg = String.format(PASS_MSG_TEMPLATE, sendWorkNoticeInfo.getOrganizationName(), projectName); String msg = String.format(PASS_MSG_TEMPLATE, sendWorkNoticeInfo.getOrganizationName(), projectName);
sendWorkNoticeInfo.setMsg(msg); sendWorkNoticeInfo.setMsg(msg);
@@ -327,11 +328,6 @@ public class TodoCenterManage {
case BACK: case BACK:
// 退回该任务 // 退回该任务
processTaskService.handleTask(param, userId); processTaskService.handleTask(param, userId);
// 更新申报项目表中的流程状态为被退回
declaredProject.setProcessStatus(ProcessStatusEnum.BE_BACKED.getCode());
declaredProject.setUpdateOn(LocalDateTime.now());
declaredProject.setUpdateBy(userId);
projectService.updateById(declaredProject);
// 给项目创建人、流程发起人发送浙政钉工作通知:【项目名称】的【流程名称】被退回,请及时处理。 // 给项目创建人、流程发起人发送浙政钉工作通知:【项目名称】的【流程名称】被退回,请及时处理。
// 获取发送浙政钉工作通知必要信息 // 获取发送浙政钉工作通知必要信息
WorkNoticeInfo backWorkNoticeInfo = getSendWorkNoticeInfo(startUserInfo); WorkNoticeInfo backWorkNoticeInfo = getSendWorkNoticeInfo(startUserInfo);
@@ -410,10 +406,6 @@ public class TodoCenterManage {
} catch (Exception e) { } catch (Exception e) {
throw new BizException("状态机执行失败!"); throw new BizException("状态机执行失败!");
} }
// 更新流程状态、项目状态到下一个状态
declaredProject.setProcessStatus(ProcessStatusEnum.BE_REJECTED.getCode());
declaredProject.setUpdateOn(LocalDateTime.now());
declaredProject.setUpdateBy(userId);
projectService.updateById(declaredProject); projectService.updateById(declaredProject);
} }


@@ -471,10 +463,6 @@ public class TodoCenterManage {
} catch (Exception e) { } catch (Exception e) {
throw new BizException("状态机执行失败!"); throw new BizException("状态机执行失败!");
} }
// 更新流程状态、项目状态到下一个状态
declaredProject.setProcessStatus(ProcessStatusEnum.APPROVED.getCode());
declaredProject.setUpdateOn(LocalDateTime.now());
declaredProject.setUpdateBy(userId);
projectService.updateById(declaredProject); projectService.updateById(declaredProject);
} }


@@ -565,11 +553,6 @@ public class TodoCenterManage {
} catch (Exception e) { } catch (Exception e) {
throw new BizException("状态机执行失败!"); throw new BizException("状态机执行失败!");
} }
// 更新项目状态
declaredProject.setProcessStatus(ProcessStatusEnum.APPROVED.getCode());
declaredProject.setUpdateOn(LocalDateTime.now());
declaredProject.setUpdateBy(userId);
projectService.updateById(declaredProject);
} }


/** /**
@@ -724,6 +707,8 @@ public class TodoCenterManage {
Long startUserId = LoginUserUtil.getUserId(); Long startUserId = LoginUserUtil.getUserId();
// 查出登录用户已提交工作流 // 查出登录用户已提交工作流
List<ProcessInstanceVo> userSubmittedList = processInstanceService.getUserSubmittedList(String.valueOf(startUserId), param.getProcessDefId(), null); List<ProcessInstanceVo> userSubmittedList = processInstanceService.getUserSubmittedList(String.valueOf(startUserId), param.getProcessDefId(), null);
Map<String, ProcessInstanceVo> instanceVoMap = userSubmittedList.stream()
.collect(Collectors.toMap(ProcessInstanceVo::getInstanceId, v -> v));
if(CollUtil.isEmpty(userSubmittedList)){ if(CollUtil.isEmpty(userSubmittedList)){
return PageVo.empty(); return PageVo.empty();
} }
@@ -743,7 +728,8 @@ public class TodoCenterManage {
ResToBeProcessedVO res = new ResToBeProcessedVO(); ResToBeProcessedVO res = new ResToBeProcessedVO();
BeanUtils.copyProperties(d, res); BeanUtils.copyProperties(d, res);
res.setProjectId(d.getId()); res.setProjectId(d.getId());
res.setProcessStatusName(ProcessStatusEnum.getDescByCode(d.getProcessStatus()));
ProcessInstanceVo instanceVo = instanceVoMap.get(d.getInstCode());
res.setProcessStatusName(instanceVo.getStatus());
res.setProcessLaunchTime(d.getCreateOn()); res.setProcessLaunchTime(d.getCreateOn());
return res; return res;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
@@ -840,7 +826,7 @@ public class TodoCenterManage {
ProcessInstanceVo instanceVo = instanceVoMap.get(d.getInstCode()); ProcessInstanceVo instanceVo = instanceVoMap.get(d.getInstCode());
res.setNodeId(instanceVo.getNodeId()); res.setNodeId(instanceVo.getNodeId());
res.setProjectId(d.getId()); res.setProjectId(d.getId());
res.setProcessStatusName(ProcessStatusEnum.getDescByCode(d.getProcessStatus()));
res.setProcessStatusName(instanceVo.getStatus());
res.setProcessLaunchTime(d.getCreateOn()); res.setProcessLaunchTime(d.getCreateOn());
return res; return res;
}).collect(Collectors.toList()); }).collect(Collectors.toList());


Loading…
Cancel
Save