| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package jnpf.flowable.util;
- import cn.hutool.core.util.ObjectUtil;
- import jnpf.constant.MsgCode;
- import jnpf.exception.WorkFlowException;
- import jnpf.flowable.entity.OperatorEntity;
- import jnpf.flowable.entity.TaskEntity;
- import jnpf.flowable.entity.TemplateEntity;
- import jnpf.flowable.enums.OperatorStateEnum;
- import jnpf.flowable.enums.TemplateStatueEnum;
- import jnpf.flowable.model.message.FlowMsgModel;
- import jnpf.flowable.model.time.FlowTimeModel;
- import jnpf.flowable.model.util.FlowNature;
- import jnpf.flowable.service.OperatorService;
- import jnpf.flowable.service.TaskService;
- import jnpf.flowable.service.TemplateService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * @author :JNPF开发平台组
- * @version: V3.1.0
- * @copyright 引迈信息技术有限公司
- * @date :2024/5/23 上午10:33
- */
- @Component
- public class OverTimeUtil {
- @Autowired
- private MsgUtil msgUtil;
- @Autowired
- private TaskUtil taskUtil;
- @Autowired
- private TaskService taskService;
- @Autowired
- private OperatorService operatorService;
- @Autowired
- private TemplateService templateService;
- public void overMsg(FlowTimeModel flowTimeModel) throws WorkFlowException {
- TaskEntity task = taskService.getInfo(flowTimeModel.getTaskId());
- //暂停,是跳过
- if (task == null) {
- throw new WorkFlowException(MsgCode.FA001.get());
- }
- boolean isSuccess = false;
- try {
- taskUtil.isSuspend(task);
- } catch (Exception e) {
- isSuccess = true;
- }
- if (!isSuccess) {
- // 判断是否下架
- TemplateEntity template = templateService.getById(task.getTemplateId());
- if (null != template && !ObjectUtil.equals(template.getStatus(), TemplateStatueEnum.up.getCode())) {
- isSuccess = true;
- }
- }
- if (isSuccess) {
- if (flowTimeModel.getOverTime()) {
- flowTimeModel.setNum(flowTimeModel.getNum() + 1);
- flowTimeModel.setTransferNum(flowTimeModel.getTransferNum() + 1);
- }
- flowTimeModel.setIsPause(true);
- return;
- }
- taskUtil.isCancel(task);
- OperatorEntity operator = operatorService.getById(flowTimeModel.getOperatorId());
- if (operator == null || ObjectUtil.equals(operator.getStatus(), OperatorStateEnum.Futility.getCode())) {
- throw new WorkFlowException(MsgCode.FA001.get());
- }
- if (operator.getHandleStatus() != null) {
- throw new WorkFlowException(MsgCode.WF031.get());
- }
- // complete为1的经办,不执行(加签、指派、转办、驳回、撤回、变更、复活流程,该节点的限时提醒规则重新生效)
- if (operator.getCompletion().equals(FlowNature.Action)) {
- throw new WorkFlowException(MsgCode.FA001.get());
- }
- if (flowTimeModel.getOverTime()) {
- if (operator.getDuedate() == null) {
- operator.setDuedate(new Date());
- operatorService.updateById(operator);
- }
- }
- List<OperatorEntity> list = new ArrayList<>();
- list.add(operator);
- FlowMsgModel msgModel = new FlowMsgModel();
- msgModel.setFlowModel(flowTimeModel.getFlowModel());
- msgModel.setTaskEntity(task);
- msgModel.setNodeList(flowTimeModel.getFlowModel().getNodeEntityList());
- msgModel.setNodeCode(operator.getNodeCode());
- msgModel.setOperatorList(list);
- msgModel.setNotice(!flowTimeModel.getOverTime());
- msgModel.setOvertime(flowTimeModel.getOverTime());
- msgModel.setWait(false);
- msgUtil.message(msgModel);
- if (flowTimeModel.getOverTime()) {
- flowTimeModel.setNum(flowTimeModel.getNum() + 1);
- flowTimeModel.setTransferNum(flowTimeModel.getTransferNum() + 1);
- }
- }
- }
|