| | |
| | | */ |
| | | package org.springblade.flow.business.controller; |
| | | |
| | | import com.aliyun.oss.ServiceException; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import lombok.AllArgsConstructor; |
| | | import org.flowable.engine.RuntimeService; |
| | | import org.flowable.engine.TaskService; |
| | | import org.flowable.engine.impl.RuntimeServiceImpl; |
| | | import org.springblade.common.constant.AuditStatusConstant; |
| | | import org.springblade.core.launch.constant.AppConstant; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.redis.cache.BladeRedis; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.flow.business.service.FlowBusinessService; |
| | | import org.springblade.flow.core.entity.BladeFlow; |
| | | import org.springblade.flow.core.utils.TaskUtil; |
| | | import org.springblade.flow.engine.entity.FlowProcess; |
| | | import org.springblade.flow.engine.service.FlowEngineService; |
| | | import org.springblade.modules.application.entity.ApplicationEntity; |
| | | import org.springblade.modules.application.service.IApplicationService; |
| | | import org.springblade.modules.applicationCarChange.entity.ApplicationCarChangeEntity; |
| | | import org.springblade.modules.applicationCarChange.service.IApplicationCarChangeService; |
| | | import org.springblade.modules.applicationDelay.entity.ApplicationDelayEntity; |
| | | import org.springblade.modules.applicationDelay.service.IApplicationDelayService; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.time.Duration; |
| | | |
| | | /** |
| | | * 流程事务通用接口 |
| | |
| | | public class WorkController { |
| | | |
| | | private final TaskService taskService; |
| | | private final RuntimeService runtimeService; |
| | | private final FlowEngineService flowEngineService; |
| | | private final FlowBusinessService flowBusinessService; |
| | | |
| | | private final BladeRedis bladeRedis; |
| | | |
| | | private final IApplicationService applicationService; |
| | | private final IApplicationDelayService applicationDelayService; |
| | | private final IApplicationCarChangeService applicationCarChangeService; |
| | | |
| | | /** |
| | | * 发起事务列表页 |
| | |
| | | return R.success("删除任务成功"); |
| | | } |
| | | |
| | | /** |
| | | * 撤销任务 |
| | | * |
| | | */ |
| | | @PostMapping("withdraw-task") |
| | | @ApiOperationSupport(order = 9) |
| | | @ApiOperation(value = "撤销任务", notes = "传入流程信息") |
| | | public R withdraw(@RequestBody BladeFlow bladeFlow){ |
| | | int times = Func.toInt(bladeRedis.get("AUDIT-CANCEL" + AuthUtil.getUser().getUserId()), 1); |
| | | if (times>3){ |
| | | return R.fail("撤销任务失败"); |
| | | } |
| | | |
| | | bladeRedis.setEx("AUDIT-CANCEL"+AuthUtil.getUser().getUserId(),times+1, Duration.ofDays(1)); |
| | | //撤销任务操作 |
| | | runtimeService.deleteProcessInstance(bladeFlow.getProcessInstanceId(),"自己撤销"); |
| | | |
| | | switch (bladeFlow.getProcessDefinitionKey()){ |
| | | case "Leave": |
| | | break; |
| | | case "Audit": |
| | | ApplicationEntity applicationEntity = applicationService.getById(bladeFlow.getBusinessId()); |
| | | applicationEntity.setStatus(AuditStatusConstant.SELF_CANCEL); |
| | | applicationService.updateById(applicationEntity); |
| | | break; |
| | | case "delayAudit": |
| | | ApplicationDelayEntity applicationDelayEntity = applicationDelayService.getById(bladeFlow.getBusinessId()); |
| | | applicationDelayEntity.setStatus(AuditStatusConstant.SELF_CANCEL); |
| | | applicationDelayService.updateById(applicationDelayEntity); |
| | | break; |
| | | case "carChangeAudit": |
| | | ApplicationCarChangeEntity applicationCarChangeEntity = applicationCarChangeService.getById(bladeFlow.getBusinessId()); |
| | | applicationCarChangeEntity.setStatus(AuditStatusConstant.SELF_CANCEL); |
| | | applicationCarChangeService.updateById(applicationCarChangeEntity); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | return R.success("撤销任务成功"); |
| | | } |
| | | |
| | | } |