feat: 发起年度制修订主动上报流程
This commit is contained in:
+2
@@ -12,6 +12,8 @@ public enum ProcessType {
|
|||||||
* 企标立项变更
|
* 企标立项变更
|
||||||
*/
|
*/
|
||||||
ES_INIT_CHANGE("企标立项/变更计划", "1", "es-init-change", "processEsInitChangeServiceImpl"),
|
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.activiti.engine.task.TaskQuery;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -218,4 +219,23 @@ public class ActFlowCommonService {
|
|||||||
}
|
}
|
||||||
return result;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+2
-2
@@ -10,10 +10,10 @@ public interface IActFlowCustomService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置流程变量
|
* 设置流程变量
|
||||||
* @param id
|
* @param processInstanceId
|
||||||
* @return
|
* @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.jeecgframework.poi.excel.annotation.Excel;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 企标-年度制修订计划-标准化发起
|
* 企标-年度制修订计划-标准化发起
|
||||||
* @TableName process_es_annual_init
|
* @TableName process_es_annual_init
|
||||||
|
|||||||
+42
@@ -21,6 +21,7 @@ import org.springframework.web.servlet.ModelAndView;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static com.jero.common.system.base.controller.JeroController.*;
|
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 com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -14,4 +15,8 @@ import java.util.Map;
|
|||||||
public interface ProcessEsAnnualReportService extends IService<ProcessEsAnnualReport> {
|
public interface ProcessEsAnnualReportService extends IService<ProcessEsAnnualReport> {
|
||||||
|
|
||||||
Map<String, Object> importData(MultipartFile file);
|
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.api.CommonAPI;
|
||||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.system.api.ISysBaseAPI;
|
||||||
import com.jero.common.system.vo.SysDictItemCore;
|
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.entity.ProcessEsAnnualReport;
|
||||||
import com.jero.modules.activiti.process.esAnnualReport.mapper.ProcessEsAnnualReportMapper;
|
import com.jero.modules.activiti.process.esAnnualReport.mapper.ProcessEsAnnualReportMapper;
|
||||||
import com.jero.modules.activiti.process.esAnnualReport.service.ProcessEsAnnualReportService;
|
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.activiti.util.ExcelUtils;
|
||||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
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.ExcelImportUtil;
|
||||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -29,10 +42,11 @@ import java.util.stream.Collectors;
|
|||||||
* @description 针对表【process_es_annual_report(企标-年度制修订计划-各部门主动上报)】的数据库操作Service实现
|
* @description 针对表【process_es_annual_report(企标-年度制修订计划-各部门主动上报)】的数据库操作Service实现
|
||||||
* @createDate 2023-10-18 09:52:41
|
* @createDate 2023-10-18 09:52:41
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@Transactional(rollbackFor = JeroBootException.class)
|
@Transactional(rollbackFor = JeroBootException.class)
|
||||||
public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnualReportMapper, ProcessEsAnnualReport>
|
public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnualReportMapper, ProcessEsAnnualReport>
|
||||||
implements ProcessEsAnnualReportService {
|
implements ProcessEsAnnualReportService, IActFlowCustomService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private CommonAPI commonAPI;
|
private CommonAPI commonAPI;
|
||||||
@@ -43,6 +57,82 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
|||||||
@Resource
|
@Resource
|
||||||
private ILawsEnterpriseStandardService enterpriseStandardService;
|
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
|
@Override
|
||||||
public Map<String, Object> importData(MultipartFile file) {
|
public Map<String, Object> importData(MultipartFile file) {
|
||||||
List<SysDictItemCore> listDict = commonAPI.getDictItemAll();
|
List<SysDictItemCore> listDict = commonAPI.getDictItemAll();
|
||||||
|
|||||||
+4
-1
@@ -126,9 +126,12 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
|
|||||||
if (!CollectionUtils.isEmpty(taskList)) {
|
if (!CollectionUtils.isEmpty(taskList)) {
|
||||||
for (Map<String, Object> map : taskList) {
|
for (Map<String, Object> map : taskList) {
|
||||||
if (map.get("assignee").toString().equals(userId) &&
|
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:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString());
|
||||||
log.info("匹配到的任务ID:{}", map.get("taskId").toString());
|
log.info("匹配到的任务ID:{}", map.get("taskId").toString());
|
||||||
|
|
||||||
actFlowCommonService.completeTask("同意", map.get("taskId").toString(), userId, map);
|
actFlowCommonService.completeTask("同意", map.get("taskId").toString(), userId, map);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user