|
@@ -7,14 +7,13 @@ import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
|
|
import com.ruoyi.framework.web.controller.BaseController;
|
|
import com.ruoyi.framework.web.controller.BaseController;
|
|
import com.ruoyi.framework.web.domain.AjaxResult;
|
|
import com.ruoyi.framework.web.domain.AjaxResult;
|
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
|
|
|
+import com.ruoyi.project.approve.damain.DevTask;
|
|
import com.ruoyi.project.pssr.domain.*;
|
|
import com.ruoyi.project.pssr.domain.*;
|
|
import com.ruoyi.project.pssr.service.*;
|
|
import com.ruoyi.project.pssr.service.*;
|
|
import com.ruoyi.project.system.mapper.SysUserMapper;
|
|
import com.ruoyi.project.system.mapper.SysUserMapper;
|
|
-import org.activiti.engine.ProcessEngine;
|
|
|
|
-import org.activiti.engine.ProcessEngines;
|
|
|
|
-import org.activiti.engine.RuntimeService;
|
|
|
|
-import org.activiti.engine.TaskService;
|
|
|
|
|
|
+import org.activiti.engine.*;
|
|
import org.activiti.engine.impl.identity.Authentication;
|
|
import org.activiti.engine.impl.identity.Authentication;
|
|
|
|
+import org.activiti.engine.impl.util.CollectionUtil;
|
|
import org.activiti.engine.runtime.ProcessInstance;
|
|
import org.activiti.engine.runtime.ProcessInstance;
|
|
import org.activiti.engine.task.Task;
|
|
import org.activiti.engine.task.Task;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -39,6 +38,9 @@ public class TPssrApproveController extends BaseController {
|
|
@Autowired
|
|
@Autowired
|
|
private RuntimeService runtimeService;
|
|
private RuntimeService runtimeService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private HistoryService historyService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private TaskService taskService;
|
|
private TaskService taskService;
|
|
|
|
|
|
@@ -197,6 +199,42 @@ public class TPssrApproveController extends BaseController {
|
|
return AjaxResult.success();
|
|
return AjaxResult.success();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Log(title = "pssr负责人审批", businessType = BusinessType.UPDATE)
|
|
|
|
+ @PutMapping("/handlePssrApprove")
|
|
|
|
+ public AjaxResult handlePssrApprove(@RequestBody DevTask devTask) {
|
|
|
|
+ TPssrApprove approve = devTask.gettPssrApprove();
|
|
|
|
+ //使用任务服务完成任务(提交任务)
|
|
|
|
+ String taskId = devTask.getTaskId();
|
|
|
|
+ // 使用任务id,获取任务对象,获取流程实例id
|
|
|
|
+ Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
|
|
|
+ //利用任务对象,获取流程实例id
|
|
|
|
+ String taskName = task.getName();//实例名
|
|
|
|
+ String processInstancesId = task.getProcessInstanceId();
|
|
|
|
+ String userId = getUserId().toString();
|
|
|
|
+
|
|
|
|
+ String condition = devTask.getCondition();
|
|
|
|
+ if (condition.equals("1")) {
|
|
|
|
+ approve.setApproveStatus(2L);
|
|
|
|
+ TPssrSubcontent tPssrSubcontent = new TPssrSubcontent();
|
|
|
|
+ tPssrSubcontent.setId(approve.getSubId());
|
|
|
|
+ tPssrSubcontent.setApproveStatus(2L);
|
|
|
|
+ tPssrSubcontentService.updateTPssrSubcontent(tPssrSubcontent);
|
|
|
|
+ tPssrApproveService.updateTPssrApprove(approve);
|
|
|
|
+ }
|
|
|
|
+ //处理流程节点
|
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
|
+ param.put("condition", condition);
|
|
|
|
+ ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
|
|
|
|
+ TaskService taskService = processEngine.getTaskService();
|
|
|
|
+ //认领任务
|
|
|
|
+ processEngine.getTaskService().claim(taskId, userId);
|
|
|
|
+ taskService.complete(taskId, param);
|
|
|
|
+ return AjaxResult.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 子项内容确认
|
|
|
|
+ */
|
|
public static void handleConfirmApprove(TPssrApprove approve, String userId) {
|
|
public static void handleConfirmApprove(TPssrApprove approve, String userId) {
|
|
String processInstancesId = approve.getProcessId();
|
|
String processInstancesId = approve.getProcessId();
|
|
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
|
|
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
|
|
@@ -205,10 +243,6 @@ public class TPssrApproveController extends BaseController {
|
|
.createTaskQuery()//创建查询对象
|
|
.createTaskQuery()//创建查询对象
|
|
.taskAssignee(userId)
|
|
.taskAssignee(userId)
|
|
.processInstanceId(processInstancesId).singleResult();
|
|
.processInstanceId(processInstancesId).singleResult();
|
|
- ProcessInstance pi = processEngine.getRuntimeService()//表示正在执行的流程实例和执行对象
|
|
|
|
- .createProcessInstanceQuery()//创建流程实例查询*/
|
|
|
|
- .processInstanceId(processInstancesId)//使用流程实例ID查询
|
|
|
|
- .singleResult();
|
|
|
|
String taskId = task.getId();
|
|
String taskId = task.getId();
|
|
|
|
|
|
//处理流程节点
|
|
//处理流程节点
|
|
@@ -264,32 +298,99 @@ public class TPssrApproveController extends BaseController {
|
|
//查询所有确认人
|
|
//查询所有确认人
|
|
exchanger = new TPssrOverhaulExchanger();
|
|
exchanger = new TPssrOverhaulExchanger();
|
|
exchanger.setSubId(sub.getId());
|
|
exchanger.setSubId(sub.getId());
|
|
|
|
+ exchanger.setApproveStatus(1L);
|
|
TPssrOverhaulExchanger tPssrOverhaulExchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(exchanger);
|
|
TPssrOverhaulExchanger tPssrOverhaulExchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(exchanger);
|
|
|
|
+ if (tPssrOverhaulExchanger == null) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
String confirmers = tPssrOverhaulExchanger.getConfirmedPerson();
|
|
String confirmers = tPssrOverhaulExchanger.getConfirmedPerson();
|
|
logger.info("=======================confirmers:{}", confirmers);
|
|
logger.info("=======================confirmers:{}", confirmers);
|
|
|
|
|
|
- //新增审批数据
|
|
|
|
- TPssrApprove approve = new TPssrApprove();
|
|
|
|
- approve.setSubId(sub.getId());
|
|
|
|
- approve.setApNo(DateUtils.dateTimeNow() + userId);
|
|
|
|
- approve.setApproveStatus("1");
|
|
|
|
- approve.setSubCharge(sub.getConfirm());
|
|
|
|
- approve.setCreaterCode(userId);
|
|
|
|
- approve.setCreatedate(new Date());
|
|
|
|
- tPssrApproveService.insertTPssrApprove(approve);
|
|
|
|
-
|
|
|
|
- // 开始申请流程
|
|
|
|
- long businessKey = approve.getApproveId();
|
|
|
|
- //开始工作流、监听
|
|
|
|
- Authentication.setAuthenticatedUserId(userId);//设置当前申请人
|
|
|
|
- Map<String, Object> variables = new HashMap<>();
|
|
|
|
- variables.put("applyUser", userId);
|
|
|
|
- variables.put("confirmUsers", Arrays.asList(confirmers.split(",")));
|
|
|
|
- variables.put("chargePerson", sub.getConfirm());
|
|
|
|
- //采用key来启动流程定义并设置流程变量,返回流程实例
|
|
|
|
- ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr1confirm", String.valueOf(businessKey), variables);
|
|
|
|
- approve.setProcessId(pi.getProcessInstanceId());
|
|
|
|
- tPssrApproveService.updateTPssrApprove(approve);
|
|
|
|
|
|
+ TPssrApprove exist = new TPssrApprove();
|
|
|
|
+ exist.setSubId(sub.getId());
|
|
|
|
+ List<TPssrApprove> tPssrApproves = tPssrApproveService.selectTPssrApproveList(exist);
|
|
|
|
+ //如果当前子项没有审批数据
|
|
|
|
+ if (CollectionUtil.isEmpty(tPssrApproves)) {
|
|
|
|
+ //新增审批数据
|
|
|
|
+ TPssrApprove approve = new TPssrApprove();
|
|
|
|
+ approve.setSubId(sub.getId());
|
|
|
|
+ approve.setApNo(DateUtils.dateTimeNow() + userId);
|
|
|
|
+ approve.setApproveStatus(1L);
|
|
|
|
+ approve.setSubCharge(sub.getConfirm());
|
|
|
|
+ approve.setCreaterCode(userId);
|
|
|
|
+ approve.setCreatedate(new Date());
|
|
|
|
+ tPssrApproveService.insertTPssrApprove(approve);
|
|
|
|
+
|
|
|
|
+ // 开始申请流程
|
|
|
|
+ long businessKey = approve.getApproveId();
|
|
|
|
+ //开始工作流、监听
|
|
|
|
+ Authentication.setAuthenticatedUserId(userId);//设置当前申请人
|
|
|
|
+ Map<String, Object> variables = new HashMap<>();
|
|
|
|
+ variables.put("applyUser", userId);
|
|
|
|
+ variables.put("confirmUsers", Arrays.asList(confirmers.split(",")));
|
|
|
|
+ variables.put("chargePerson", sub.getConfirm());
|
|
|
|
+ //采用key来启动流程定义并设置流程变量,返回流程实例
|
|
|
|
+ ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr1confirm", String.valueOf(businessKey), variables);
|
|
|
|
+ approve.setProcessId(pi.getProcessInstanceId());
|
|
|
|
+ tPssrApproveService.updateTPssrApprove(approve);
|
|
|
|
+ } else {
|
|
|
|
+ //有审批数据,
|
|
|
|
+ TPssrApprove approve = tPssrApproves.get(0);
|
|
|
|
+ String processInstancesId = approve.getProcessId();
|
|
|
|
+ ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
|
|
|
|
+ TaskService taskService = processEngine.getTaskService();
|
|
|
|
+ List<Task> tasks = processEngine.getTaskService()//获取任务service
|
|
|
|
+ .createTaskQuery()//创建查询对象
|
|
|
|
+ .processInstanceId(processInstancesId).list();
|
|
|
|
+
|
|
|
|
+ //处理流程节点
|
|
|
|
+ if (tasks.size() == 1) {
|
|
|
|
+ String taskId = tasks.get(0).getId();
|
|
|
|
+ String taskName = tasks.get(0).getName();
|
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
|
+ if (taskName.equals("确认人")) {
|
|
|
|
+ param.put("condition", "1");
|
|
|
|
+ taskService.addComment(taskId, processInstancesId, "发起新确认流程");
|
|
|
|
+ taskService.complete(taskId, param);
|
|
|
|
+ Task task = processEngine.getTaskService()//获取任务service
|
|
|
|
+ .createTaskQuery()//创建查询对象
|
|
|
|
+ .processInstanceId(processInstancesId).singleResult();
|
|
|
|
+ param.put("condition", "0");
|
|
|
|
+ param.put("confirmUsers", Arrays.asList(confirmers.split(",")));
|
|
|
|
+ //认领任务
|
|
|
|
+// processEngine.getTaskService().claim(taskId, userId);
|
|
|
|
+ taskService.addComment(task.getId(), processInstancesId, "发起新确认流程");
|
|
|
|
+ taskService.complete(task.getId(), param);
|
|
|
|
+ } else {
|
|
|
|
+ param.put("condition", "0");
|
|
|
|
+ param.put("confirmUsers", Arrays.asList(confirmers.split(",")));
|
|
|
|
+ //认领任务
|
|
|
|
+// processEngine.getTaskService().claim(taskId, userId);
|
|
|
|
+ taskService.complete(taskId, param);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ for (Task task : tasks) {
|
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
|
+ param.put("condition", "1");
|
|
|
|
+ taskService.addComment(task.getId(), processInstancesId, "发起新确认流程");
|
|
|
|
+ taskService.complete(task.getId(), param);
|
|
|
|
+ }
|
|
|
|
+ Task task = processEngine.getTaskService()//获取任务service
|
|
|
|
+ .createTaskQuery()//创建查询对象
|
|
|
|
+ .processInstanceId(processInstancesId).singleResult();
|
|
|
|
+
|
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
|
+ param.put("condition", "0");
|
|
|
|
+ param.put("confirmUsers", Arrays.asList(confirmers.split(",")));
|
|
|
|
+ //认领任务
|
|
|
|
+// processEngine.getTaskService().claim(taskId, userId);
|
|
|
|
+ taskService.addComment(task.getId(), processInstancesId, "发起新确认流程");
|
|
|
|
+ taskService.complete(task.getId(), param);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ approve.setApproveStatus(1L);
|
|
|
|
+ tPssrApproveService.updateTPssrApprove(approve);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|