From 3e10e066189ccd1ec1bed4f889f517c379a9d123 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Tue, 10 Oct 2023 17:54:04 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20=E4=BC=81=E6=A0=87=E7=AB=8B?= =?UTF-8?q?=E9=A1=B9/=E5=8F=98=E6=9B=B4=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/ActFlowCommonService.java | 131 +++++++ .../common/service/IActFlowCustomService.java | 31 ++ .../ProcessESInitChangeController.java | 120 ++++++ .../entity/ProcessEsInitChange.java | 349 ++++++++++++++++++ .../enums/ESApplicationCategoryEnum.java | 30 ++ .../entity/enums/ESProjectType.java | 36 ++ .../entity/vo/FlowUserInfoVO.java} | 4 +- .../mapper/ProcessEsInitChangeMapper.java | 18 + .../service/ProcessEsInitChangeService.java | 46 +++ .../impl/ProcessEsInitChangeServiceImpl.java | 123 ++++++ .../activiti/util/SpringContextUtil.java | 48 +++ .../util/EnterpriseStandardUtil.java | 3 + 12 files changed, 937 insertions(+), 2 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/IActFlowCustomService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/enums/ESApplicationCategoryEnum.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/enums/ESProjectType.java rename laws-modules/src/main/java/com/jero/modules/activiti/{entity/FlowUserInfo.java => process/esInitChange/entity/vo/FlowUserInfoVO.java} (89%) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/mapper/ProcessEsInitChangeMapper.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/util/SpringContextUtil.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java new file mode 100644 index 00000000..a4bea48f --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -0,0 +1,131 @@ +package com.jero.modules.activiti.process.common.service; + +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.api.ISysBaseAPI; +import com.jero.modules.activiti.util.SpringContextUtil; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.HistoryService; +import org.activiti.engine.RepositoryService; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.activiti.engine.impl.identity.Authentication; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.activiti.engine.task.TaskQuery; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +@Transactional +public class ActFlowCommonService { + + @Resource + private RepositoryService repositoryService; + + @Resource + private RuntimeService runtimeService; + + @Resource + private TaskService taskService; + + @Resource + private HistoryService historyService; + + @Resource + private ISysBaseAPI sysBaseApi; + + + /** + * 启动流程实例 + */ + public ProcessInstance startProcess(String formKey, String beanName, String businessKey, String id) { + IActFlowCustomService customService = (IActFlowCustomService) SpringContextUtil.getBean(beanName); + // 修改业务的状态 + customService.startRunTask(id); + Map variables = customService.setVariables(id); + variables.put("businessKey", businessKey); + // 启动流程 + log.info("【启动流程】,formKey :{},businessKey:{}", formKey, businessKey); + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(formKey, businessKey, variables); + // 流程实例ID + String processDefinitionId = processInstance.getProcessDefinitionId(); + log.info("【启动流程】- 成功,processDefinitionId:{}", processDefinitionId); + return processInstance; + } + + /** + * 完成提交任务 + */ + public void completeTask(String remark, String taskId, String userId) { + //任务Id 查询任务对象 + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + + if (task == null) { + log.error("completeProcess - task is null!!"); + throw new JeroBootException("找不到对应任务"); + } + + //任务对象 获取流程实例Id + String processInstanceId = task.getProcessInstanceId(); + + //设置审批人的userId + Authentication.setAuthenticatedUserId(userId); + + //添加记录 + taskService.addComment(taskId, processInstanceId, remark); + log.info("-----------完成任务操作 开始----------"); + log.info("任务Id=" + taskId); + log.info("负责人id=" + userId); + log.info("流程实例id=" + processInstanceId); + //完成办理 + taskService.complete(taskId); + log.info("-----------完成任务操作 结束----------"); + } + + /** + * 查看个人任务列表 + */ + public List> myTaskList(String userid) { + TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(userid); + List list = taskQuery.orderByTaskCreateTime().desc().list(); + List> listMap = new ArrayList<>(); + for (Task task : list) { + Map map = new HashMap<>(); + map.put("taskId", task.getId()); + map.put("taskName", task.getName()); + map.put("description", task.getDescription()); + map.put("priority", task.getPriority()); + map.put("owner", task.getOwner()); + map.put("assignee", task.getAssignee()); + map.put("delegationState", task.getDelegationState()); + map.put("processInstanceId", task.getProcessInstanceId()); + map.put("executionId", task.getExecutionId()); + map.put("processDefinitionId", task.getProcessDefinitionId()); + map.put("createTime", task.getCreateTime()); + map.put("taskDefinitionKey", task.getTaskDefinitionKey()); + map.put("dueDate", task.getDueDate()); + map.put("category", task.getCategory()); + map.put("parentTaskId", task.getParentTaskId()); + map.put("tenantId", task.getTenantId()); + + listMap.add(map); + } + + return listMap; + } + + /** + * 转办 + */ + public void transfer(String taskId, String userId) { + taskService.setAssignee(taskId, userId); + log.info("转办 任务Id:{} 转办用户Id{}", taskId, userId); + } +} \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/IActFlowCustomService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/IActFlowCustomService.java new file mode 100644 index 00000000..d721c8a9 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/IActFlowCustomService.java @@ -0,0 +1,31 @@ +package com.jero.modules.activiti.process.common.service; + +import java.util.Map; + +/** + * 业务service 的接口 必须实现接口 实现其方法 + */ +public interface IActFlowCustomService { + + + /** + * 设置流程变量 + * @param id + * @return + */ + Map setVariables(String id); + + + /** + * 整个流程开始时需要执行的任务 + * @param id + */ + void startRunTask(String id); + + + /** + * 整个流程结束需要执行的任务 + * @param id + */ + void endRunTask(String id); +} \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java new file mode 100644 index 00000000..1b4c8e66 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java @@ -0,0 +1,120 @@ +package com.jero.modules.activiti.process.esInitChange.controller; + +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; +import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; +import com.jero.modules.laws.common.constant.FieldCommon; +import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; +import com.jero.modules.tag.enums.TableNameEnum; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.HashMap; +import java.util.Map; + +/** + * @author: Mzaxd + * @Date: 2023/10/10 14:14 + */ +@Slf4j +@RestController +@Api(tags = "企标立项变更流程") +@RequestMapping("/process/es/initChange") +public class ProcessESInitChangeController { + + @Resource + private ProcessEsInitChangeService initChangeService; + + @Resource + private EnterpriseStandardUtil esUtil; + + /** + * 生成企标编号并返回 + * @param esInitChange + */ + @AutoLog(value = "企标立项变更流程-生成企标编号并返回") + @ApiOperation(value="企标立项变更流程-生成企标编号并返回", notes="企标立项变更流程-生成企标编号并返回") + @PostMapping("/getStandardNo") + public Result getStandardNo(@Valid @RequestBody ProcessEsInitChange esInitChange) { + // 生成企标编号并返回 + Map map = new HashMap<>(); + map.put(FieldCommon.ENTERPRISE_STANDARD_CODE, esInitChange.getEnStandardCode()); + map.put(FieldCommon.ENTERPRISE_NAME_CODE, esInitChange.getEnNameCode()); + map.put(FieldCommon.STANDARD_CATEGORY_CODE, esInitChange.getStandardCategoryCode()); + return Result.OK(esUtil.generateStandardNumber(map)); + } + + /** + * 保存到待办 + * @param taskId + * @param esInitChange + */ + @AutoLog(value = "企标立项变更流程-保存到待办") + @ApiOperation(value="企标立项变更流程-保存到待办", notes="企标立项变更流程-保存到待办") + @PostMapping("/saveToWait") + public Result saveToWait(@RequestParam("taskId") String taskId, + @RequestBody ProcessEsInitChange esInitChange) { + initChangeService.saveToWait(taskId, esInitChange); + return Result.OK(); + } + + /** + * 保存到草稿 + * @param esInitChange + */ + @AutoLog(value = "企标立项变更流程-保存到草稿") + @ApiOperation(value="企标立项变更流程-保存到草稿", notes="企标立项变更流程-保存到草稿") + @PostMapping("/saveToDraft") + public Result saveToWait(@RequestBody ProcessEsInitChange esInitChange) { + // TODO 保存到草稿 + initChangeService.saveToDraft(esInitChange); + return Result.OK(); + } + + /** + * 新增立项变更申请 + * + * @param esInitChange + */ + @AutoLog(value = "企标立项变更流程-新增立项变更申请") + @ApiOperation(value="企标立项变更流程-新增立项变更申请", notes="企标立项变更流程-新增立项变更申请") + @PostMapping("/add") + public Result addInitChange(@RequestBody ProcessEsInitChange esInitChange) { + initChangeService.addInitChange(esInitChange); + return Result.OK(); + } + + + /** + * 审批(同意/驳回) + * + * @param taskId + * @param esInitChange + */ + @AutoLog(value = "企标立项变更流程-审批(同意/驳回)") + @ApiOperation(value="企标立项变更流程-审批(同意/驳回)", notes="企标立项变更流程-审批(同意/驳回)") + @PostMapping("/approval") + public Result approval(@RequestParam("taskId") String taskId, @RequestBody ProcessEsInitChange esInitChange) { + //审批 + initChangeService.approvalInitChange(taskId, esInitChange); + return Result.OK(); + } + + /** + * 转办 + * + * @param taskId + * @param userId + */ + @AutoLog(value = "企标立项变更流程-转办") + @ApiOperation(value="企标立项变更流程-转办", notes="企标立项变更流程-转办") + @PostMapping(value = "/transfer") + public Result transfer(@RequestParam("taskId") String taskId, @RequestParam("userId") String userId) { + initChangeService.transfer(taskId, userId); + return Result.OK(); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java new file mode 100644 index 00000000..79533d06 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java @@ -0,0 +1,349 @@ +package com.jero.modules.activiti.process.esInitChange.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 企标计划 + * @TableName process_es_init_change + */ +@Data +@TableName(value ="process_es_init_change") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="process_es_init_change对象", description="企标立项变更对象") +public class ProcessEsInitChange implements Serializable { + + /** 主键ID */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键ID") + private String id; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 所属部门 + */ + private String orgCode; + + /** + * 0表示未删除,1表示删除 + */ + private Integer delFlag; + + /** + * 流程名称 + */ + private String processName; + + /** + * 流程实例Id + */ + private String processInstanceId; + + /** + * 截止日期 + */ + private Date deadlineDate; + + /** + * 流程说明 + */ + private String processDescription; + + /** + * 申请类别 + */ + private String applicationCategory; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 原企标编号 + */ + private String originEnStandardNo; + + /** + * 新企标编号 + */ + private String newEnStandardNo; + + /** + * 原企标名称 + */ + private String originEnStandardName; + + /** + * 新企标名称 + */ + private String newEnStandardName; + + /** + * 企标英文名称 + */ + private String enStandardEnglishName; + + /** + * 企标体系 + */ + private String enStandardSystem; + + /** + * 企业标准代号 + */ + private String enStandardCode; + + /** + * 企业名称代号 + */ + private String enNameCode; + + /** + * 标准类别代号 + */ + private String standardCategoryCode; + + /** + * 年代号 + */ + private String decadeCode; + + /** + * 标准类型 + */ + private String standardType; + + /** + * 企标等级分类 + */ + private String enStandardClassification; + + /** + * 草稿计划完成日期 + */ + private Date draftPlannedCompleteDate; + + /** + * 征求意见稿计划完成日期 + */ + private Date solicitationDraftPlanCompleteDate; + + /** + * 计划报批日期 + */ + private Date planApprovalDate; + + /** + * 项目状态 + */ + private String projectStatus; + + /** + * 编制说明 + */ + private String compilationDescription; + + /** + * 零部件名称 + */ + private String componentName; + + /** + * 适用专业 + */ + private String applicableProfession; + + /** + * 主起草人 + */ + private String mainDraftingUser; + + /** + * 主起草单位 + */ + private String mainDraftingUnit; + + /** + * 主起草单位责任人 + */ + private String mainDraftingUnitResponsiblePerson; + + /** + * 标准推进人 + */ + private String standardPromoter; + + /** + * 草稿完成日期 + */ + private Date draftCompletionDate; + + /** + * 提交草稿日期 + */ + private Date draftSubmissionDate; + + /** + * 是否征求意见 + */ + private String solicitationOpinionEnabled; + + /** + * 征求意见稿完成日期 + */ + private Date solicitationDraftCompletionDate; + + /** + * 评审日期 + */ + private Date reviewDate; + + /** + * 报批日期 + */ + private Date approvalDate; + + /** + * 发布日期 + */ + private Date releaseDate; + + /** + * 变更状态 + */ + private String changeStatus; + + /** + * 立项背景、立项依据 + */ + private String projectBackground; + + /** + * 国际、国家及行业同类标准分析 + */ + private String similarNaStandardsAnalysis; + + /** + * 企业同类标准对比分析 + */ + private String similarEnStandardsAnalysis; + + /** + * 立项标准的领先性与必要性 + */ + private String standardLeadingNecessity; + + /** + * 立项目的及预期效果等 + */ + private String projectExpectedEffects; + + /** + * 备注 + */ + private String remarks; + + /** + * 附件 + */ + private String attachment; + + /** + * 是否为优质标准 + */ + private String qualityFlag; + + /** + * 变更原因 + */ + private String changeReason; + + /** + * 新主起草人 + */ + private String newMainDraftingUser; + + /** + * 新主起草单位 + */ + private String newMainDraftingUnit; + + /** + * 部所联络人 + */ + private String contactUser; + + /** + * 标准专家 + */ + private String standardExpert; + + /** + * 主起草人主管级领导 + */ + private String mainDraftUserLeader; + + /** + * 主起草人主管级领导上级领导 + */ + private String mainDraftUserLeaderLeader; + + /** + * 标准化审批人 + */ + private String standardizationApprovalUser; + + /** + * 新主起草部门领导的领导 + */ + private String newMainDraftUserLeaderLeader; + + /** + * 新主起草部门领导 + */ + private String newMainDraftUserLeader; + + /** + * 相关人员 + */ + private String relatedUser; + + /** + * 抄送人 + */ + private String copyUser; + + @TableField(exist = false) + private static final long serialVersionUID = 1781238971297838971L; +} \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/enums/ESApplicationCategoryEnum.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/enums/ESApplicationCategoryEnum.java new file mode 100644 index 00000000..f83d5bb5 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/enums/ESApplicationCategoryEnum.java @@ -0,0 +1,30 @@ +package com.jero.modules.activiti.process.esInitChange.entity.enums; + +/** + * @author: Mzaxd + * @Date: 2023/10/9 16:28 + */ +public enum ESApplicationCategoryEnum { + + INITIATION("立项", "1"), + + CHANGE("变更", "2") + ; + + private final String name; + + private final String value; + + public String getName() { + return name; + } + + public String getValue() { + return value; + } + + ESApplicationCategoryEnum(String name, String value) { + this.name = name; + this.value = value; + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/enums/ESProjectType.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/enums/ESProjectType.java new file mode 100644 index 00000000..9a85e330 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/enums/ESProjectType.java @@ -0,0 +1,36 @@ +package com.jero.modules.activiti.process.esInitChange.entity.enums; + +/** + * @author: Mzaxd + * @Date: 2023/10/9 16:28 + */ +public enum ESProjectType { + + /** 变更 **/ + COMPLETE_TIME_CHANGE("完成时间变更", "1"), + WORK_TERMINATE("工作中止", "2"), + RESPONSIBLE_DEPT_CHANGE("责任部门变更", "3"), + MERGE("合并", "4"), + + /** 立项 **/ + ENACT("制定", "5"), + MODIFY("修订", "6"), + ; + + private final String name; + + private final String value; + + public String getName() { + return name; + } + + public String getValue() { + return value; + } + + ESProjectType(String name, String value) { + this.name = name; + this.value = value; + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/entity/FlowUserInfo.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/vo/FlowUserInfoVO.java similarity index 89% rename from laws-modules/src/main/java/com/jero/modules/activiti/entity/FlowUserInfo.java rename to laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/vo/FlowUserInfoVO.java index 3a250b49..a13d361c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/entity/FlowUserInfo.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/vo/FlowUserInfoVO.java @@ -1,4 +1,4 @@ -package com.jero.modules.activiti.entity; +package com.jero.modules.activiti.process.esInitChange.entity.vo; import lombok.Data; @@ -7,7 +7,7 @@ import lombok.Data; * @Date: 2023/10/9 16:57 */ @Data -public class FlowUserInfo { +public class FlowUserInfoVO { // 主起草人 private String mainDraftUser; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/mapper/ProcessEsInitChangeMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/mapper/ProcessEsInitChangeMapper.java new file mode 100644 index 00000000..2b29177d --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/mapper/ProcessEsInitChangeMapper.java @@ -0,0 +1,18 @@ +package com.jero.modules.activiti.process.esInitChange.mapper; + +import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author ThinkBook +* @description 针对表【process_es_init_change(企标计划)】的数据库操作Mapper +* @createDate 2023-10-10 13:48:56 +* @Entity com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange +*/ +public interface ProcessEsInitChangeMapper extends BaseMapper { + +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java new file mode 100644 index 00000000..caa36501 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java @@ -0,0 +1,46 @@ +package com.jero.modules.activiti.process.esInitChange.service; + +import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author ThinkBook +* @description 针对表【process_es_init_change(企标计划)】的数据库操作Service +* @createDate 2023-10-10 13:48:56 +*/ +public interface ProcessEsInitChangeService extends IService { + + /** + * 新增记录 + * @param esInitChange + * @return + */ + void addInitChange(ProcessEsInitChange esInitChange); + + /** + * 转办 + * @param taskId + * @param userId + */ + void transfer(String taskId, String userId); + + /** + * 审批 + * @param taskId + * @param esInitChange + */ + void approvalInitChange(String taskId, ProcessEsInitChange esInitChange); + + /** + * 保存到待办 + * @param taskId + * @param esInitChange + */ + void saveToWait(String taskId, ProcessEsInitChange esInitChange); + + /** + * 保存到草稿 + * @param esInitChange + */ + void saveToDraft(ProcessEsInitChange esInitChange); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java new file mode 100644 index 00000000..bae0c258 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -0,0 +1,123 @@ +package com.jero.modules.activiti.process.esInitChange.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.exception.JeroBootException; +import com.jero.modules.activiti.process.common.service.ActFlowCommonService; +import com.jero.modules.activiti.process.common.service.IActFlowCustomService; +import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; +import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; +import com.jero.modules.activiti.process.esInitChange.mapper.ProcessEsInitChangeMapper; +import com.jero.modules.sys.utils.UserUtils; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.runtime.ProcessInstance; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.*; + +/** + * @author ThinkBook + * @description 针对表【process_es_init_change(企标计划)】的数据库操作Service实现 + * @createDate 2023-10-10 13:48:56 + */ +@Service +@Transactional(rollbackFor = JeroBootException.class) +@Slf4j +public class ProcessEsInitChangeServiceImpl extends ServiceImpl + implements ProcessEsInitChangeService, IActFlowCustomService { + + @Resource + private ActFlowCommonService actFlowCommonService; + + @Override + public Map setVariables(String id) { + Map map = new HashMap<>(); + ProcessEsInitChange initChange = getById(id); + // 设置流程中各个节点的人 + map.put("createUser", initChange.getCreateBy()); + map.put("contactUser", initChange.getContactUser()); + map.put("standardExpertList", Optional.ofNullable(initChange.getStandardExpert()).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList())); + map.put("mainDraftUserLeader", initChange.getMainDraftUserLeader()); + map.put("mainDraftUserLeaderLeader", initChange.getMainDraftUserLeaderLeader()); + map.put("standardizationApprovalUser", initChange.getStandardizationApprovalUser()); + map.put("newMainDraftUserLeaderLeader", initChange.getNewMainDraftUserLeaderLeader()); + map.put("newMainDraftUserLeader", initChange.getNewMainDraftUserLeader()); + map.put("relatedUserList", Optional.ofNullable(initChange.getRelatedUser()).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList())); + map.put("copyUser", initChange.getCreateBy()); + return map; + } + + @Override + public void startRunTask(String id) { + + } + + @Override + public void endRunTask(String id) { + + } + + @Override + public void addInitChange(ProcessEsInitChange esInitChange) { + String userId = UserUtils.getUserId(); + // TODO 根据业务需求设置流程状态 + // 对数据进行其他操作 + + // 保存到业务流程表 + save(esInitChange); + String id = esInitChange.getId(); + String formKey = "initChange"; + String beanName = formKey + "Service"; + + // 使用流程变量设置字符串(格式 : XXX:id 的形式) + String businessKey = formKey + ":" + id; + + ProcessInstance processInstance = actFlowCommonService.startProcess(formKey, beanName, businessKey, id); + + // 获取流程实例ID + String processDefinitionId = processInstance.getProcessDefinitionId(); + log.info("启动流程实例成功,流程定义ID为:{}", processDefinitionId); + + List> taskList = actFlowCommonService.myTaskList(userId); + if (!CollectionUtils.isEmpty(taskList)) { + for (Map map : taskList) { + if (map.get("assignee").toString().equals(userId) && + map.get("processDefinitionId").toString().equals(processDefinitionId)) { + + log.info("当前用户ID:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString()); + log.info("匹配到的任务ID:{}", map.get("taskId").toString()); + + actFlowCommonService.completeTask("同意", map.get("taskId").toString(), userId); + } + } + } + } + + @Override + public void transfer(String taskId, String userId) { + actFlowCommonService.transfer(taskId, userId); + } + + @Override + public void approvalInitChange(String taskId, ProcessEsInitChange esInitChange) { + String userId = UserUtils.getUserId(); + actFlowCommonService.completeTask(esInitChange.getRemarks(), taskId, userId); + } + + @Override + public void saveToWait(String taskId, ProcessEsInitChange esInitChange) { + // TODO 检查任务是否存在 + saveOrUpdate(esInitChange); + } + + @Override + public void saveToDraft(ProcessEsInitChange esInitChange) { + // TODO 保存到草稿 + } +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/util/SpringContextUtil.java b/laws-modules/src/main/java/com/jero/modules/activiti/util/SpringContextUtil.java new file mode 100644 index 00000000..0fe7f70a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/util/SpringContextUtil.java @@ -0,0 +1,48 @@ +package com.jero.modules.activiti.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * Spring 上下文工具, 可用于获取spring 容器中的Bean + */ +@Component +public class SpringContextUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + SpringContextUtil.applicationContext = applicationContext; + } + + /** + * 获取spring容器中的bean,通过bean名称获取 + * @param beanName bean名称 + * @return: Object 返回Object,需要做强制类型转换 + */ + public static Object getBean(String beanName){ + return applicationContext.getBean(beanName); + } + + /** + * 获取spring容器中的bean, 通过bean类型获取 + * @param beanClass bean 类型 + * @return: T 返回指定类型的bean实例 + */ + public static T getBean(Class beanClass) { + return applicationContext.getBean(beanClass); + } + + /** + * 获取spring容器中的bean, 通过bean名称和bean类型精确获取 + * @param beanName bean 名称 + * @param beanClass bean 类型 + * @return: T 返回指定类型的bean实例 + */ + public static T getBean(String beanName, Class beanClass){ + return applicationContext.getBean(beanName,beanClass); + } +} \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java index 6281f813..c6af796e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java @@ -41,6 +41,7 @@ public class EnterpriseStandardUtil { public String generateNewSequenceNumber(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) { String sequenceNumber = "0001"; // 根据 标准代号/名称代号/标准类别 的相关性生成顺序号 + // 已经存在的标准 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(LawsEnterpriseStandard::getStandardCode, esCodeDictValue); lambdaQueryWrapper.eq(LawsEnterpriseStandard::getNameCode, esNameCodeDictValue); @@ -50,6 +51,8 @@ public class EnterpriseStandardUtil { List dbSequenceNumberList = esList.stream().map(LawsEnterpriseStandard::getStandardNumber) .map(EnterpriseStandardUtil::getSequenceNoFromStandardNo).collect(Collectors.toList()); + // TODO 流程中的标准 + // 获取最大的序列号 Optional maxSequence = dbSequenceNumberList.stream().max(Comparator.naturalOrder()); From 9857abd9bfaf10c1fc176352ecd725d4a91e571b Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 11 Oct 2023 10:32:02 +0800 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20=E6=B5=81=E7=A8=8B=E4=B8=AD?= =?UTF-8?q?=E5=BF=83-=E5=BE=85=E5=8A=9E=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 只完成基础功能 --- .../controller/ActivitiController.java | 6 +- .../controller/ProcessCenterController.java | 89 +++++++++++++++++++ .../process/common/entity/CenterQueryVO.java | 27 ++++++ .../common/service/ActFlowCommonService.java | 66 +++++++++++++- .../ProcessESInitChangeController.java | 1 - 5 files changed, 181 insertions(+), 8 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/common/controller/ProcessCenterController.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/CenterQueryVO.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/controller/ActivitiController.java b/laws-modules/src/main/java/com/jero/modules/activiti/controller/ActivitiController.java index c0e34080..f9b83831 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/controller/ActivitiController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/controller/ActivitiController.java @@ -166,7 +166,7 @@ public class ActivitiController { taskQuery.processDefinitionKey(processKey); //流程Key } List list = taskQuery.list(); - List> resut = new ArrayList<>(); + List> result = new ArrayList<>(); for (Task task : list) { Map map = new HashMap<>(); map.put("流程实例id:", task.getProcessInstanceId()); @@ -174,9 +174,9 @@ public class ActivitiController { map.put("任务负责人:", task.getAssignee()); map.put("任务名称:", task.getName()); //map.put("任务名称:", task.get); - resut.add(map); + result.add(map); } - return Result.OK(resut); + return Result.OK(result); } @ApiOperation(value="完成任务") diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/controller/ProcessCenterController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/controller/ProcessCenterController.java new file mode 100644 index 00000000..b11973fb --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/controller/ProcessCenterController.java @@ -0,0 +1,89 @@ +package com.jero.modules.activiti.process.common.controller; + +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.modules.activiti.process.common.entity.CenterQueryVO; +import com.jero.modules.activiti.process.common.service.ActFlowCommonService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * @author: Mzaxd + * @Date: 2023/10/11 9:33 + */ + +@Slf4j +@RestController +@Api(tags = "流程中心") +@RequestMapping("/process/center") +public class ProcessCenterController { + + @Resource + private ActFlowCommonService actFlowCommonService; + + /** + * 待办流程 + * @param centerQueryVO + */ + @AutoLog(value = "流程中心-待办流程") + @ApiOperation(value="流程中心-待办流程", notes="流程中心-待办流程") + @PostMapping("/todoTaskList") + public Result todoTaskList(@Valid @RequestBody CenterQueryVO centerQueryVO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + return Result.OK(actFlowCommonService.todoTaskList(centerQueryVO, pageNo, pageSize)); + } + + /** + * 已办流程 + * @param centerQueryVO + */ + @AutoLog(value = "流程中心-已办流程") + @ApiOperation(value="流程中心-已办流程", notes="流程中心-已办流程") + @PostMapping("/doneTaskList") + public Result doneTaskList(@Valid @RequestBody CenterQueryVO centerQueryVO) { + // TODO + return Result.OK(); + } + + /** + * 已发流程 + * @param centerQueryVO + */ + @AutoLog(value = "流程中心-已发流程") + @ApiOperation(value="流程中心-已发流程", notes="流程中心-已发流程") + @PostMapping("/sendTaskList") + public Result sendTaskList(@Valid @RequestBody CenterQueryVO centerQueryVO) { + // TODO + return Result.OK(); + } + + /** + * 监控流程 + * @param centerQueryVO + */ + @AutoLog(value = "流程中心-监控流程") + @ApiOperation(value="流程中心-监控流程", notes="流程中心-监控流程") + @PostMapping("/monitorTaskList") + public Result monitorTaskList(@Valid @RequestBody CenterQueryVO centerQueryVO) { + // TODO + return Result.OK(); + } + + /** + * 草稿 + * @param centerQueryVO + */ + @AutoLog(value = "流程中心-草稿") + @ApiOperation(value="流程中心-草稿", notes="流程中心-草稿") + @PostMapping("/draftList") + public Result draftList(@Valid @RequestBody CenterQueryVO centerQueryVO) { + // TODO + return Result.OK(); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/CenterQueryVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/CenterQueryVO.java new file mode 100644 index 00000000..392b4782 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/CenterQueryVO.java @@ -0,0 +1,27 @@ +package com.jero.modules.activiti.process.common.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author: Mzaxd + * @Date: 2023/10/11 9:37 + */ +@Data +public class CenterQueryVO { + + @ApiModelProperty(value = "流程名称") + private String prcName; + + @ApiModelProperty(value = "流程编号") + private String prcNum; + + @ApiModelProperty(value = "流程类型") + private String prcType; + + @ApiModelProperty(value = "流程状态") + private String prcState; + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index a4bea48f..c0ced61d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -2,9 +2,13 @@ package com.jero.modules.activiti.process.common.service; import com.jero.common.exception.JeroBootException; import com.jero.common.system.api.ISysBaseAPI; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.activiti.process.common.entity.CenterQueryVO; +import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; +import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; import com.jero.modules.activiti.util.SpringContextUtil; +import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; -import org.activiti.engine.HistoryService; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; @@ -12,6 +16,7 @@ import org.activiti.engine.impl.identity.Authentication; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.task.TaskQuery; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,11 +41,10 @@ public class ActFlowCommonService { private TaskService taskService; @Resource - private HistoryService historyService; + private ProcessEsInitChangeService processEsInitChangeService; @Resource - private ISysBaseAPI sysBaseApi; - + private ISysBaseAPI sysBaseAPI; /** * 启动流程实例 @@ -121,6 +125,48 @@ public class ActFlowCommonService { return listMap; } + /** + * 查看个人任务信息 + */ + public List> taskInfoList(String userid, CenterQueryVO centerQueryVO, Integer pageNo, Integer pageSize) { + //TODO 分页 + TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(userid); + + List list = taskQuery.orderByTaskCreateTime().desc().list(); + + List> listMap = new ArrayList<>(); + for (Task task : list) { + Map map = new HashMap<>(); + map.put("taskId", task.getId()); + map.put("prcId", task.getProcessInstanceId()); + map.put("prcName", task.getProcessDefinitionId()); + LoginUser assigneeUser = sysBaseAPI.getUserById(task.getAssignee()); + map.put("assignee", assigneeUser.getId()); + map.put("assigneeText", assigneeUser.getUsername()); + map.put("claimTaskTime", task.getCreateTime()); + ProcessInstance processInstance = runtimeService + .createProcessInstanceQuery() + .processInstanceId(task.getProcessInstanceId()) + .singleResult(); + if (processInstance != null) { + String businessKey = processInstance.getBusinessKey(); + if (!StringUtils.isBlank(businessKey)) { + String type = businessKey.split(":")[0]; + String id = businessKey.split(":")[1]; + if (type.equals("intiChange")) { + ProcessEsInitChange initChange = processEsInitChangeService.getById(id); + LoginUser createUser = sysBaseAPI.getUserById(initChange.getCreateBy()); + map.put("createUser", createUser.getId()); + map.put("createUserText", createUser.getUsername()); + map.put("prcType", "企标立项/变更"); + } + } + } + listMap.add(map); + } + return listMap; + } + /** * 转办 */ @@ -128,4 +174,16 @@ public class ActFlowCommonService { taskService.setAssignee(taskId, userId); log.info("转办 任务Id:{} 转办用户Id{}", taskId, userId); } + + /** + * 待办任务列表 + * @param centerQueryVO + * @param pageNo + * @param pageSize + * @return + */ + public List> todoTaskList(CenterQueryVO centerQueryVO, Integer pageNo, Integer pageSize) { + String userId = UserUtils.getUserId(); + return this.taskInfoList(userId, centerQueryVO, pageNo, pageSize); + } } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java index 1b4c8e66..d01345ff 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java @@ -6,7 +6,6 @@ import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; import com.jero.modules.laws.common.constant.FieldCommon; import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; -import com.jero.modules.tag.enums.TableNameEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; From f4e102c7e75e4d135301689f2d3eb10e7a3e5847 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 11 Oct 2023 11:33:47 +0800 Subject: [PATCH 3/6] =?UTF-8?q?feat:=20=E4=BC=81=E6=A0=87=E7=AB=8B?= =?UTF-8?q?=E9=A1=B9=E5=8F=98=E6=9B=B4=E6=B5=81=E7=A8=8B=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=8F=98=E6=9B=B4=E4=B8=BA=E9=9B=86=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/ActFlowCommonService.java | 26 +++--------- .../ProcessESInitChangeController.java | 13 +++--- .../service/ProcessEsInitChangeService.java | 6 ++- .../impl/ProcessEsInitChangeServiceImpl.java | 40 ++++++++++++++----- 4 files changed, 45 insertions(+), 40 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index c0ced61d..b749e635 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -4,7 +4,6 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.vo.LoginUser; import com.jero.modules.activiti.process.common.entity.CenterQueryVO; -import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; import com.jero.modules.activiti.util.SpringContextUtil; import com.jero.modules.sys.utils.UserUtils; @@ -16,7 +15,6 @@ import org.activiti.engine.impl.identity.Authentication; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.task.TaskQuery; -import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -49,15 +47,13 @@ public class ActFlowCommonService { /** * 启动流程实例 */ - public ProcessInstance startProcess(String formKey, String beanName, String businessKey, String id) { + public ProcessInstance startProcess(String formKey, String beanName, String id) { IActFlowCustomService customService = (IActFlowCustomService) SpringContextUtil.getBean(beanName); // 修改业务的状态 customService.startRunTask(id); Map variables = customService.setVariables(id); - variables.put("businessKey", businessKey); // 启动流程 - log.info("【启动流程】,formKey :{},businessKey:{}", formKey, businessKey); - ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(formKey, businessKey, variables); + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(formKey, variables); // 流程实例ID String processDefinitionId = processInstance.getProcessDefinitionId(); log.info("【启动流程】- 成功,processDefinitionId:{}", processDefinitionId); @@ -118,7 +114,6 @@ public class ActFlowCommonService { map.put("category", task.getCategory()); map.put("parentTaskId", task.getParentTaskId()); map.put("tenantId", task.getTenantId()); - listMap.add(map); } @@ -148,20 +143,9 @@ public class ActFlowCommonService { .createProcessInstanceQuery() .processInstanceId(task.getProcessInstanceId()) .singleResult(); - if (processInstance != null) { - String businessKey = processInstance.getBusinessKey(); - if (!StringUtils.isBlank(businessKey)) { - String type = businessKey.split(":")[0]; - String id = businessKey.split(":")[1]; - if (type.equals("intiChange")) { - ProcessEsInitChange initChange = processEsInitChangeService.getById(id); - LoginUser createUser = sysBaseAPI.getUserById(initChange.getCreateBy()); - map.put("createUser", createUser.getId()); - map.put("createUserText", createUser.getUsername()); - map.put("prcType", "企标立项/变更"); - } - } - } + String prcId = processInstance.getId(); + //TODO 根据流程Id找到对应业务流程实体 + listMap.add(map); } return listMap; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java index d01345ff..89231aac 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -77,13 +78,13 @@ public class ProcessESInitChangeController { /** * 新增立项变更申请 * - * @param esInitChange + * @param esInitChangeList */ @AutoLog(value = "企标立项变更流程-新增立项变更申请") @ApiOperation(value="企标立项变更流程-新增立项变更申请", notes="企标立项变更流程-新增立项变更申请") @PostMapping("/add") - public Result addInitChange(@RequestBody ProcessEsInitChange esInitChange) { - initChangeService.addInitChange(esInitChange); + public Result addInitChange(@RequestBody List esInitChangeList) { + initChangeService.addInitChange(esInitChangeList); return Result.OK(); } @@ -92,14 +93,14 @@ public class ProcessESInitChangeController { * 审批(同意/驳回) * * @param taskId - * @param esInitChange + * @param esInitChangeList */ @AutoLog(value = "企标立项变更流程-审批(同意/驳回)") @ApiOperation(value="企标立项变更流程-审批(同意/驳回)", notes="企标立项变更流程-审批(同意/驳回)") @PostMapping("/approval") - public Result approval(@RequestParam("taskId") String taskId, @RequestBody ProcessEsInitChange esInitChange) { + public Result approval(@RequestParam("taskId") String taskId, @RequestBody List esInitChangeList) { //审批 - initChangeService.approvalInitChange(taskId, esInitChange); + initChangeService.approvalInitChange(taskId, esInitChangeList); return Result.OK(); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java index caa36501..94460984 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java @@ -3,6 +3,8 @@ package com.jero.modules.activiti.process.esInitChange.service; import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * @author ThinkBook * @description 针对表【process_es_init_change(企标计划)】的数据库操作Service @@ -15,7 +17,7 @@ public interface ProcessEsInitChangeService extends IService esInitChange); /** * 转办 @@ -29,7 +31,7 @@ public interface ProcessEsInitChangeService extends IService esInitChange); /** * 保存到待办 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java index bae0c258..e7aee904 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -5,6 +5,7 @@ import com.jero.common.exception.JeroBootException; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.common.service.IActFlowCustomService; import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; +import com.jero.modules.activiti.process.esInitChange.entity.enums.ESProjectType; import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; import com.jero.modules.activiti.process.esInitChange.mapper.ProcessEsInitChangeMapper; import com.jero.modules.sys.utils.UserUtils; @@ -60,21 +61,30 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { String userId = UserUtils.getUserId(); + // 保存到业务流程表 + saveOrUpdateBatch(esInitChangeList); + String id; + // 完成时间变更/工作中止 + if (isListApproval(esInitChangeList)) { + StringBuilder stringBuilder = new StringBuilder(); + for (ProcessEsInitChange ic : esInitChangeList) { + stringBuilder.append(ic.getId()).append(","); + } + // 去掉最后的逗号 + stringBuilder.deleteCharAt(stringBuilder.length() - 1); + id = stringBuilder.toString(); + } else { + id = esInitChangeList.get(0).getId(); + } + // TODO 根据业务需求设置流程状态 // 对数据进行其他操作 - - // 保存到业务流程表 - save(esInitChange); - String id = esInitChange.getId(); String formKey = "initChange"; String beanName = formKey + "Service"; - // 使用流程变量设置字符串(格式 : XXX:id 的形式) - String businessKey = formKey + ":" + id; - - ProcessInstance processInstance = actFlowCommonService.startProcess(formKey, beanName, businessKey, id); + ProcessInstance processInstance = actFlowCommonService.startProcess(formKey, beanName, id); // 获取流程实例ID String processDefinitionId = processInstance.getProcessDefinitionId(); @@ -100,10 +110,18 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { + ProcessEsInitChange initChange = esInitChangeList.get(0); + return ESProjectType.COMPLETE_TIME_CHANGE.getValue().equals(initChange.getProjectType()) || + ESProjectType.WORK_TERMINATE.getValue().equals(initChange.getProjectType()); + } + @Override - public void approvalInitChange(String taskId, ProcessEsInitChange esInitChange) { + public void approvalInitChange(String taskId, List esInitChangeList) { String userId = UserUtils.getUserId(); - actFlowCommonService.completeTask(esInitChange.getRemarks(), taskId, userId); + saveOrUpdateBatch(esInitChangeList); + // TODO 保存流程审批信息 + actFlowCommonService.completeTask(esInitChangeList.get(0).getRemarks(), taskId, userId); } @Override From 55f2ab94eac68ffd6ab0c4d0e69484236f3a9ab7 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 11 Oct 2023 14:55:04 +0800 Subject: [PATCH 4/6] =?UTF-8?q?feat:=20=E4=BC=81=E6=A0=87=E7=AB=8B?= =?UTF-8?q?=E9=A1=B9=E5=8F=98=E6=9B=B4=E6=B5=81=E7=A8=8B=20=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=BB=86=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/ActFlowCommonService.java | 20 ++++--- .../ProcessESInitChangeController.java | 11 ++-- .../entity/ProcessEsInitChange.java | 5 ++ .../service/ProcessEsInitChangeService.java | 2 +- .../impl/ProcessEsInitChangeServiceImpl.java | 52 +++++++++---------- 5 files changed, 49 insertions(+), 41 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index b749e635..75bbd1c1 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -12,6 +12,7 @@ import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.impl.identity.Authentication; +import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.task.TaskQuery; @@ -38,22 +39,27 @@ public class ActFlowCommonService { @Resource private TaskService taskService; - @Resource - private ProcessEsInitChangeService processEsInitChangeService; - @Resource private ISysBaseAPI sysBaseAPI; /** * 启动流程实例 */ - public ProcessInstance startProcess(String formKey, String beanName, String id) { + public ProcessInstance startProcess(String processDefinitionKey, String beanName, String businessId) { + ProcessDefinition latestProcessDefinition = repositoryService.createProcessDefinitionQuery() + .processDefinitionKey(processDefinitionKey) + .orderByProcessDefinitionVersion().desc() + .list() + .get(0); // 获取最新版本的流程定义 + IActFlowCustomService customService = (IActFlowCustomService) SpringContextUtil.getBean(beanName); // 修改业务的状态 - customService.startRunTask(id); - Map variables = customService.setVariables(id); + customService.startRunTask(businessId); + Map variables = customService.setVariables(businessId); + // 第一个节点默认通过 + variables.put("pass", true); // 启动流程 - ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(formKey, variables); + ProcessInstance processInstance = runtimeService.startProcessInstanceById(latestProcessDefinition.getId(), variables); // 流程实例ID String processDefinitionId = processInstance.getProcessDefinitionId(); log.info("【启动流程】- 成功,processDefinitionId:{}", processDefinitionId); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java index 89231aac..4cdd191a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java @@ -80,11 +80,11 @@ public class ProcessESInitChangeController { * * @param esInitChangeList */ - @AutoLog(value = "企标立项变更流程-新增立项变更申请") - @ApiOperation(value="企标立项变更流程-新增立项变更申请", notes="企标立项变更流程-新增立项变更申请") - @PostMapping("/add") - public Result addInitChange(@RequestBody List esInitChangeList) { - initChangeService.addInitChange(esInitChangeList); + @AutoLog(value = "企标立项变更流程-发起立项变更申请") + @ApiOperation(value="企标立项变更流程-发起立项变更申请", notes="企标立项变更流程-发起立项变更申请") + @PostMapping("/start") + public Result startInitChange(@RequestBody List esInitChangeList) { + initChangeService.startInitChange(esInitChangeList); return Result.OK(); } @@ -99,7 +99,6 @@ public class ProcessESInitChangeController { @ApiOperation(value="企标立项变更流程-审批(同意/驳回)", notes="企标立项变更流程-审批(同意/驳回)") @PostMapping("/approval") public Result approval(@RequestParam("taskId") String taskId, @RequestBody List esInitChangeList) { - //审批 initChangeService.approvalInitChange(taskId, esInitChangeList); return Result.OK(); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java index 79533d06..01d594d9 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java @@ -13,6 +13,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import javax.validation.constraints.NotBlank; + /** * 企标计划 * @TableName process_es_init_change @@ -127,16 +129,19 @@ public class ProcessEsInitChange implements Serializable { /** * 企业名称代号 */ + @NotBlank private String enNameCode; /** * 标准类别代号 */ + @NotBlank private String standardCategoryCode; /** * 年代号 */ + @NotBlank private String decadeCode; /** diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java index 94460984..07585bd3 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java @@ -17,7 +17,7 @@ public interface ProcessEsInitChangeService extends IService esInitChange); + void startInitChange(List esInitChange); /** * 转办 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java index e7aee904..c845a32b 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -34,9 +34,14 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl setVariables(String id) { - Map map = new HashMap<>(); ProcessEsInitChange initChange = getById(id); // 设置流程中各个节点的人 + return this.setVariables(initChange); + } + + private Map setVariables(ProcessEsInitChange initChange) { + Map map = new HashMap<>(); + // 设置流程中各个节点的人 map.put("createUser", initChange.getCreateBy()); map.put("contactUser", initChange.getContactUser()); map.put("standardExpertList", Optional.ofNullable(initChange.getStandardExpert()).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList())); @@ -46,7 +51,10 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl Arrays.asList(s.split(","))).orElse(Collections.emptyList())); - map.put("copyUser", initChange.getCreateBy()); + map.put("copyUser", initChange.getCopyUser()); + // 设置流程分支判断变量 + map.put("applicationCategory", initChange.getApplicationCategory()); + map.put("projectType", initChange.getProjectType()); return map; } @@ -61,30 +69,17 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { + public void startInitChange(List esInitChangeList) { + String processDefinitionKey = "es-init-change"; String userId = UserUtils.getUserId(); // 保存到业务流程表 - saveOrUpdateBatch(esInitChangeList); - String id; - // 完成时间变更/工作中止 - if (isListApproval(esInitChangeList)) { - StringBuilder stringBuilder = new StringBuilder(); - for (ProcessEsInitChange ic : esInitChangeList) { - stringBuilder.append(ic.getId()).append(","); - } - // 去掉最后的逗号 - stringBuilder.deleteCharAt(stringBuilder.length() - 1); - id = stringBuilder.toString(); - } else { - id = esInitChangeList.get(0).getId(); - } - + saveBatch(esInitChangeList); + ProcessEsInitChange initChange = esInitChangeList.get(0); // TODO 根据业务需求设置流程状态 // 对数据进行其他操作 - String formKey = "initChange"; - String beanName = formKey + "Service"; + String beanName = "initChange"; - ProcessInstance processInstance = actFlowCommonService.startProcess(formKey, beanName, id); + ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, beanName, initChange.getId()); // 获取流程实例ID String processDefinitionId = processInstance.getProcessDefinitionId(); @@ -103,6 +98,12 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { - ProcessEsInitChange initChange = esInitChangeList.get(0); - return ESProjectType.COMPLETE_TIME_CHANGE.getValue().equals(initChange.getProjectType()) || - ESProjectType.WORK_TERMINATE.getValue().equals(initChange.getProjectType()); - } - @Override public void approvalInitChange(String taskId, List esInitChangeList) { String userId = UserUtils.getUserId(); + // 更新业务流程数据 saveOrUpdateBatch(esInitChangeList); + // 设置流程变量 + setVariables(esInitChangeList.get(0)); // TODO 保存流程审批信息 actFlowCommonService.completeTask(esInitChangeList.get(0).getRemarks(), taskId, userId); } From 05f4057d33949edc51c48413b6d0bd32beec1d32 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 11 Oct 2023 15:08:40 +0800 Subject: [PATCH 5/6] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E4=BC=81=E6=A0=87=E7=BC=96=E5=8F=B7=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E6=9C=89=E6=95=88=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../esInitChange/entity/ProcessEsInitChange.java | 2 +- .../impl/ProcessEsInitChangeServiceImpl.java | 13 +++++++++++++ .../enterprise/util/EnterpriseStandardUtil.java | 4 ++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java index 01d594d9..3a08c860 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/entity/ProcessEsInitChange.java @@ -124,12 +124,12 @@ public class ProcessEsInitChange implements Serializable { /** * 企业标准代号 */ + @NotBlank private String enStandardCode; /** * 企业名称代号 */ - @NotBlank private String enNameCode; /** diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java index c845a32b..4626eb05 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -8,6 +8,7 @@ import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange import com.jero.modules.activiti.process.esInitChange.entity.enums.ESProjectType; import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; import com.jero.modules.activiti.process.esInitChange.mapper.ProcessEsInitChangeMapper; +import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.runtime.ProcessInstance; @@ -32,6 +33,9 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl setVariables(String id) { ProcessEsInitChange initChange = getById(id); @@ -70,6 +74,11 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { + // 校验企标编号是否冲突 + if (!esUtil.verifyEnStandardNumber(esInitChangeList.get(0).getOriginEnStandardNo())) { + throw new JeroBootException("企标编号冲突"); + } + String processDefinitionKey = "es-init-change"; String userId = UserUtils.getUserId(); // 保存到业务流程表 @@ -113,6 +122,10 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { + // 校验企标编号是否冲突 + if (!esUtil.verifyEnStandardNumber(esInitChangeList.get(0).getOriginEnStandardNo())) { + throw new JeroBootException("企标编号冲突"); + } String userId = UserUtils.getUserId(); // 更新业务流程数据 saveOrUpdateBatch(esInitChangeList); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java index c6af796e..2f7a470d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/EnterpriseStandardUtil.java @@ -141,4 +141,8 @@ public class EnterpriseStandardUtil { return standardNo.substring(dashIndex - 4, dashIndex); } + public boolean verifyEnStandardNumber(String StandardNumber) { + // TODO 校验企标编号是否有效 + return true; + } } From cdb8d7552de8f17f4366df8b0cc3d9565c6c6292 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 11 Oct 2023 16:07:08 +0800 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20=E5=AE=A1=E6=89=B9=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/ActFlowCommonService.java | 5 ++-- .../ProcessESInitChangeController.java | 26 ++++++++++++++----- .../service/ProcessEsInitChangeService.java | 2 +- .../impl/ProcessEsInitChangeServiceImpl.java | 26 +++++++++++-------- 4 files changed, 38 insertions(+), 21 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index 75bbd1c1..188359e9 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -4,7 +4,6 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.vo.LoginUser; import com.jero.modules.activiti.process.common.entity.CenterQueryVO; -import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; import com.jero.modules.activiti.util.SpringContextUtil; import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; @@ -69,7 +68,7 @@ public class ActFlowCommonService { /** * 完成提交任务 */ - public void completeTask(String remark, String taskId, String userId) { + public void completeTask(String remark, String taskId, String userId, Map map) { //任务Id 查询任务对象 Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); @@ -91,7 +90,7 @@ public class ActFlowCommonService { log.info("负责人id=" + userId); log.info("流程实例id=" + processInstanceId); //完成办理 - taskService.complete(taskId); + taskService.complete(taskId, map); log.info("-----------完成任务操作 结束----------"); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java index 4cdd191a..1e18185c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/controller/ProcessESInitChangeController.java @@ -90,16 +90,30 @@ public class ProcessESInitChangeController { /** - * 审批(同意/驳回) + * 同意 * * @param taskId * @param esInitChangeList */ - @AutoLog(value = "企标立项变更流程-审批(同意/驳回)") - @ApiOperation(value="企标立项变更流程-审批(同意/驳回)", notes="企标立项变更流程-审批(同意/驳回)") - @PostMapping("/approval") - public Result approval(@RequestParam("taskId") String taskId, @RequestBody List esInitChangeList) { - initChangeService.approvalInitChange(taskId, esInitChangeList); + @AutoLog(value = "企标立项变更流程-同意") + @ApiOperation(value="企标立项变更流程-同意", notes="企标立项变更流程-同意") + @PostMapping("/agree") + public Result agree(@RequestParam("taskId") String taskId, @RequestBody List esInitChangeList) { + initChangeService.approvalInitChange(taskId, esInitChangeList, true); + return Result.OK(); + } + + /** + * 驳回 + * + * @param taskId + * @param esInitChangeList + */ + @AutoLog(value = "企标立项变更流程-驳回") + @ApiOperation(value="企标立项变更流程-驳回", notes="企标立项变更流程-驳回") + @PostMapping("/reject") + public Result reject(@RequestParam("taskId") String taskId, @RequestBody List esInitChangeList) { + initChangeService.approvalInitChange(taskId, esInitChangeList, false); return Result.OK(); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java index 07585bd3..1a48282a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java @@ -31,7 +31,7 @@ public interface ProcessEsInitChangeService extends IService esInitChange); + void approvalInitChange(String taskId, List esInitChange, boolean pass); /** * 保存到待办 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java index 4626eb05..e85a74ae 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -5,7 +5,6 @@ import com.jero.common.exception.JeroBootException; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.common.service.IActFlowCustomService; import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; -import com.jero.modules.activiti.process.esInitChange.entity.enums.ESProjectType; import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; import com.jero.modules.activiti.process.esInitChange.mapper.ProcessEsInitChangeMapper; import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; @@ -103,7 +102,7 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { - // 校验企标编号是否冲突 - if (!esUtil.verifyEnStandardNumber(esInitChangeList.get(0).getOriginEnStandardNo())) { - throw new JeroBootException("企标编号冲突"); - } + public void approvalInitChange(String taskId, List esInitChangeList, boolean pass) { String userId = UserUtils.getUserId(); - // 更新业务流程数据 - saveOrUpdateBatch(esInitChangeList); + Map map = new HashMap<>(); + if (pass) { + // 校验企标编号是否冲突 + if (!esUtil.verifyEnStandardNumber(esInitChangeList.get(0).getOriginEnStandardNo())) { + throw new JeroBootException("企标编号冲突"); + } + // 更新业务流程数据 + saveOrUpdateBatch(esInitChangeList); + map = setVariables(esInitChangeList.get(0)); + } // 设置流程变量 - setVariables(esInitChangeList.get(0)); + map.put("pass", pass); // TODO 保存流程审批信息 - actFlowCommonService.completeTask(esInitChangeList.get(0).getRemarks(), taskId, userId); + actFlowCommonService.completeTask(esInitChangeList.get(0).getRemarks(), taskId, userId, map); } @Override public void saveToWait(String taskId, ProcessEsInitChange esInitChange) { // TODO 检查任务是否存在 + // 检查任务是否存在 saveOrUpdate(esInitChange); }