From c474556f44163526700fd7c99a88e37e4297e23f Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 27 二月 2025 19:14:23 +0800
Subject: [PATCH] 审批流定时任务

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java |   47 +++++++++++++++++++++++++++++++++--------------
 1 files changed, 33 insertions(+), 14 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
index ff6b9ed..f00b9e5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -3,34 +3,39 @@
 
 import cn.afterturn.easypoi.excel.ExcelExportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
-import cn.hutool.core.util.ObjectUtil;
-import com.aizuda.bpm.engine.core.FlowCreator;
+import com.aizuda.bpm.engine.entity.FlwTask;
+import com.aizuda.bpm.mybatisplus.mapper.FlwTaskMapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.google.common.collect.ImmutableMap;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.constant.DictConstants;
-import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.enums.ProcessCategoryEnum;
-import com.ruoyi.common.utils.*;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.DictUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.WebUtils;
 import com.ruoyi.system.bo.ProcessStartBO;
-import com.ruoyi.system.dto.*;
+import com.ruoyi.system.dto.RevokeDTO;
+import com.ruoyi.system.dto.SetContractDto;
+import com.ruoyi.system.dto.TContractDTO;
+import com.ruoyi.system.dto.TerminateContractDTO;
 import com.ruoyi.system.export.ContractExport;
-import com.ruoyi.system.export.OpticalInspectionExport;
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.query.TContractBillQuery;
 import com.ruoyi.system.query.TContractQuery;
-import com.ruoyi.system.query.THouseQuery;
-import com.ruoyi.system.query.TUserHistoryQuery;
 import com.ruoyi.system.service.*;
+import com.ruoyi.system.task.base.QuartzManager;
+import com.ruoyi.system.task.base.TimeJobType;
+import com.ruoyi.system.task.jobs.StateProcessJob;
 import com.ruoyi.system.vo.BillVO;
 import com.ruoyi.system.vo.CheckAcceptRecordVO;
-import com.ruoyi.system.vo.HouseVO;
+import com.ruoyi.system.vo.TContractVO;
 import com.ruoyi.web.controller.tool.NumberToChineseUtils;
 import com.ruoyi.web.controller.tool.WordUtil;
-import io.swagger.annotations.Api;
-import com.ruoyi.system.vo.TContractVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -45,7 +50,6 @@
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
@@ -74,7 +78,8 @@
     private TCheckAcceptRecordService checkAcceptRecordService;
     @Autowired
     private StateProcessTemplateService stateProcessTemplateService;
-
+    @Autowired
+    private FlwTaskMapper flwTaskMapper;
     @ApiOperation(value = "测试生成账单")
     @PostMapping(value = "/testBill")
     public R testBill(String id) {
@@ -208,7 +213,21 @@
             variable.put("projectId", dto.getId());
             processStartBO.setVariable(variable);
             //开启工作流程
-            stateProcessTemplateService.start(processStartBO);
+            Boolean start = stateProcessTemplateService.start(processStartBO);
+            if(start){
+                FlwTask flwTask = flwTaskMapper.selectOne(Wrappers.lambdaQuery(FlwTask.class)
+                        .like(FlwTask::getVariable, dto.getId())
+                        .orderByDesc(FlwTask::getCreateTime)
+                        .last("LIMIT 1"));
+                if(Objects.nonNull(flwTask)){
+                    // 添加定时任务
+                    Map<String, ? extends Object> maps =
+                            new ImmutableMap.Builder<String, Long>().
+                                    put("id", flwTask.getId())
+                                    .build();
+                    QuartzManager.addJob(StateProcessJob.class, (StateProcessJob.name+flwTask.getId()).toUpperCase(), TimeJobType.AUTO_AUDIT,new Date(new Date().getTime()+10*1000L), maps);
+                }
+            }
         }
         if (dto.getIsIncreasing()){
             TContractRentType tContractRentType = new TContractRentType();

--
Gitblit v1.7.1