feat: 发起年度制修订主动上报流程
This commit is contained in:
+2
@@ -12,6 +12,8 @@ public enum ProcessType {
|
||||
* 企标立项变更
|
||||
*/
|
||||
ES_INIT_CHANGE("企标立项/变更计划", "1", "es-init-change", "processEsInitChangeServiceImpl"),
|
||||
ES_ANNUAL_REPORT("年度制修订-各部门主动上报", "2", "es-annual-report", "processEsAnnualReportServiceImpl"),
|
||||
ES_ANNUAL_INIT("年度制修订-标准化部门主动发起", "3", "es-annual-init", "processEsAnnualInitServiceImpl"),
|
||||
|
||||
;
|
||||
|
||||
|
||||
+20
@@ -18,6 +18,7 @@ import org.activiti.engine.task.Task;
|
||||
import org.activiti.engine.task.TaskQuery;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
@@ -218,4 +219,23 @@ public class ActFlowCommonService {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void autoCompleteFirstTask(String userId, String processInstanceId, String processDefinitionId) {
|
||||
// 自动完成第一个任务
|
||||
List<Map<String, Object>> taskList = this.myTaskList(userId);
|
||||
if (!CollectionUtils.isEmpty(taskList)) {
|
||||
for (Map<String, Object> map : taskList) {
|
||||
if (map.get("assignee").toString().equals(userId) &&
|
||||
map.get("processDefinitionId").toString().equals(processDefinitionId) &&
|
||||
map.get("processInstanceId").toString().equals(processInstanceId)) { // 添加这一行来进行更精确的匹配
|
||||
|
||||
log.info("当前用户ID:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString());
|
||||
log.info("匹配到的任务ID:{}", map.get("taskId").toString());
|
||||
|
||||
this.completeTask("同意", map.get("taskId").toString(), userId, map);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -10,11 +10,11 @@ public interface IActFlowCustomService {
|
||||
|
||||
/**
|
||||
* 设置流程变量
|
||||
* @param id
|
||||
* @param processInstanceId
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> setVariables(String id);
|
||||
|
||||
Map<String, Object> setVariables(String processInstanceId);
|
||||
|
||||
|
||||
/**
|
||||
* 整个流程开始时需要执行的任务
|
||||
|
||||
-2
@@ -17,8 +17,6 @@ import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 企标-年度制修订计划-标准化发起
|
||||
* @TableName process_es_annual_init
|
||||
|
||||
+42
@@ -21,6 +21,7 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.jero.common.system.base.controller.JeroController.*;
|
||||
@@ -78,4 +79,45 @@ public class ESAnnualReportController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增主动上报申请
|
||||
*
|
||||
* @param esAnnualReportList
|
||||
*/
|
||||
@AutoLog(value = "企标年度制修订主动上报流程-发起流程")
|
||||
@ApiOperation(value="企标年度制修订主动上报流程-发起流程", notes="企标年度制修订主动上报流程-发起流程")
|
||||
@PostMapping("/start")
|
||||
public Result<?> startInitChange() {
|
||||
// TODO 暂时不处理参数
|
||||
annualReportService.startProcess();
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 同意
|
||||
*
|
||||
* @param taskId
|
||||
* @param esAnnualReportList
|
||||
*/
|
||||
@AutoLog(value = "企标年度制修订主动上报流程-同意")
|
||||
@ApiOperation(value="企标年度制修订主动上报流程-同意", notes="企标年度制修订主动上报流程-同意")
|
||||
@PostMapping("/agree")
|
||||
public Result<?> agree(@RequestParam("taskId") String taskId, @RequestBody List<ProcessEsAnnualReport> esAnnualReportList) {
|
||||
annualReportService.approvalProcess(taskId, esAnnualReportList, true);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 驳回
|
||||
*
|
||||
* @param taskId
|
||||
* @param esAnnualReportList
|
||||
*/
|
||||
@AutoLog(value = "企标年度制修订主动上报流程-驳回")
|
||||
@ApiOperation(value="企标年度制修订主动上报流程-驳回", notes="企标年度制修订主动上报流程-驳回")
|
||||
@PostMapping("/reject")
|
||||
public Result<?> reject(@RequestParam("taskId") String taskId, @RequestBody List<ProcessEsAnnualReport> esAnnualReportList) {
|
||||
annualReportService.approvalProcess(taskId, esAnnualReportList, false);
|
||||
return Result.OK();
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -14,4 +15,8 @@ import java.util.Map;
|
||||
public interface ProcessEsAnnualReportService extends IService<ProcessEsAnnualReport> {
|
||||
|
||||
Map<String, Object> importData(MultipartFile file);
|
||||
|
||||
void startProcess();
|
||||
|
||||
void approvalProcess(String taskId, List<ProcessEsAnnualReport> esAnnualReportList, boolean b);
|
||||
}
|
||||
|
||||
+91
-1
@@ -5,7 +5,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.CommonAPI;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.SysDictItemCore;
|
||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
import com.jero.modules.activiti.process.common.service.IActFlowCustomService;
|
||||
import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
||||
import com.jero.modules.activiti.process.esAnnualReport.mapper.ProcessEsAnnualReportMapper;
|
||||
import com.jero.modules.activiti.process.esAnnualReport.service.ProcessEsAnnualReportService;
|
||||
@@ -13,10 +17,19 @@ import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectTyp
|
||||
import com.jero.modules.activiti.util.ExcelUtils;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.sys.utils.UserUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.RepositoryService;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.repository.ProcessDefinition;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -29,10 +42,11 @@ import java.util.stream.Collectors;
|
||||
* @description 针对表【process_es_annual_report(企标-年度制修订计划-各部门主动上报)】的数据库操作Service实现
|
||||
* @createDate 2023-10-18 09:52:41
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnualReportMapper, ProcessEsAnnualReport>
|
||||
implements ProcessEsAnnualReportService {
|
||||
implements ProcessEsAnnualReportService, IActFlowCustomService {
|
||||
|
||||
@Resource
|
||||
private CommonAPI commonAPI;
|
||||
@@ -43,6 +57,82 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardService enterpriseStandardService;
|
||||
|
||||
@Resource
|
||||
private ActFlowCommonService actFlowCommonService;
|
||||
|
||||
@Resource
|
||||
private RepositoryService repositoryService;
|
||||
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> setVariables(String processInstanceId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startRunTask(String id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endRunTask(String id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getHandleData(String id) {
|
||||
// 根据当前task定义判断返回数据
|
||||
String userId = UserUtils.getUserId();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startProcess() {
|
||||
String userId = UserUtils.getUserId();
|
||||
// TODO 校验数据
|
||||
|
||||
String processDefinitionKey = ProcessType.ES_ANNUAL_REPORT.getProcessKey();
|
||||
ProcessDefinition latestProcessDefinition = repositoryService.createProcessDefinitionQuery()
|
||||
.processDefinitionKey(processDefinitionKey)
|
||||
.orderByProcessDefinitionVersion().desc()
|
||||
.list()
|
||||
.get(0); // 获取最新版本的流程定义
|
||||
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("","");
|
||||
// 启动流程
|
||||
ProcessInstance processInstance = runtimeService.startProcessInstanceById(latestProcessDefinition.getId(), variables);
|
||||
// 流程定义ID
|
||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||
// 流程实例Id
|
||||
String processInstanceId = processInstance.getProcessInstanceId();
|
||||
// 自动完成第一个任务
|
||||
actFlowCommonService.autoCompleteFirstTask(userId, processDefinitionId, processInstanceId);
|
||||
// TODO 保存数据
|
||||
log.info("【启动流程】- 成功,processDefinitionId:{}", processDefinitionId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void approvalProcess(String taskId, List<ProcessEsAnnualReport> esAnnualReportList, boolean b) {
|
||||
String userId = UserUtils.getUserId();
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||
// TODO 校验数据
|
||||
// TODO 根据当前节点类型保存数据
|
||||
// 设置流程变量
|
||||
// 完成任务
|
||||
actFlowCommonService.completeTask("同意", taskId, userId, null);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> importData(MultipartFile file) {
|
||||
List<SysDictItemCore> listDict = commonAPI.getDictItemAll();
|
||||
|
||||
+4
-1
@@ -126,9 +126,12 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
|
||||
if (!CollectionUtils.isEmpty(taskList)) {
|
||||
for (Map<String, Object> map : taskList) {
|
||||
if (map.get("assignee").toString().equals(userId) &&
|
||||
map.get("processDefinitionId").toString().equals(processDefinitionId)) {
|
||||
map.get("processDefinitionId").toString().equals(processDefinitionId) &&
|
||||
map.get("processInstanceId").toString().equals(processInstance.getId())) { // 添加这一行来进行更精确的匹配
|
||||
|
||||
log.info("当前用户ID:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString());
|
||||
log.info("匹配到的任务ID:{}", map.get("taskId").toString());
|
||||
|
||||
actFlowCommonService.completeTask("同意", map.get("taskId").toString(), userId, map);
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user