diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java index 4f901d18..83dda701 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java @@ -15,6 +15,7 @@ public enum ProcessTypeEnum { STANDARD_INTERPRET("标准解读流程", 2, "com.jero.modules.activiti.process.standardinterpret.service.impl.StandardInterpretFlow", "/workCenter/StandardInterpretationProcess", "/workCenter/StandardInterpretationProcess"), STANDARD_COMPLIANCE_CHECK("法规符合性排查流程", 3, "com.jero.modules.activiti.process.standardComplianceCheck.service.StandardComplianceCheckFlow", "/workCenter/RegulatoryComplianceCheckProcess", "/workCenter/RegulatoryComplianceCheckProcess"), MARKET_STANDARD_PUBLISH("市场清单发布流程", 4, "com.jero.modules.activiti.process.ms.service.impl.ProcessMarketStandardReleaseServiceImpl", "/workCenter/MarketListReleaseProcess", "/workCenter/MarketListReleaseProcess"), + ENTERPRISE_STANDARD_ABOLISH_PUBLISH("企标废止发布流程", 5, "com.jero.modules.activiti.process.abolish.service.impl.ProcessAbolishReleaseServiceImpl", "/workCenter/AbolishReleaseProcess", "/workCenter/AbolishReleaseProcess"), ; private final String name; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/controller/ProcessAbolishReleaseController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/controller/ProcessAbolishReleaseController.java new file mode 100644 index 00000000..ff96d1a9 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/controller/ProcessAbolishReleaseController.java @@ -0,0 +1,84 @@ +package com.jero.modules.activiti.process.abolish.controller; + +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.aspect.annotation.Translation; +import com.jero.modules.activiti.enums.ProcessTypeEnum; +import com.jero.modules.activiti.process.abolish.entity.ProcessAbolishRelease; +import com.jero.modules.activiti.process.abolish.service.IProcessAbolishReleaseService; +import com.jero.modules.activiti.process.common.entity.ProcessDraft; +import com.jero.modules.activiti.process.common.service.ActFlowCommonService; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; + +/** + *

+ * 企标废止发布流程 前端控制器 + *

+ * + * @author sz + * @since 2024-09-05 + */ +@Slf4j +@Api(tags = "企标废止发布流程") +@RestController +@RequestMapping("/process/abolishRelease") +public class ProcessAbolishReleaseController { + + @Resource + private IProcessAbolishReleaseService processAbolishReleaseService; + + @Resource + private ActFlowCommonService actFlowCommonService; + + @AutoLog(value = "企标废止发布流程-发起流程") + @ApiOperation(value = "企标废止发布流程-发起流程", notes = "企标废止发布流程-发起流程") + @PostMapping(value = "/start") + public Result startProcess(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processAbolishReleaseService.startProcess(processInfoVO); + return Result.OK(); + } + + @AutoLog(value = "企标废止发布流程-同意") + @ApiOperation(value = "企标废止发布流程-同意", notes = "企标废止发布流程-同意") + @PostMapping("/agree") + public Result agree(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processAbolishReleaseService.approveTask(processInfoVO, true); + return Result.OK(); + } + + @AutoLog(value = "企标废止发布流程-驳回") + @ApiOperation(value = "企标废止发布流程-驳回", notes = "企标废止发布流程-驳回") + @PostMapping("/reject") + public Result reject(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processAbolishReleaseService.approveTask(processInfoVO, false); + return Result.OK(); + } + + @AutoLog(value = "企标废止发布流程-提交") + @ApiOperation(value = "企标废止发布流程-提交", notes = "企标废止发布流程-提交") + @PostMapping("/submit") + public Result submit(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processAbolishReleaseService.submit(processInfoVO); + return Result.OK(); + } + + @AutoLog(value = "企标废止发布流程-办理") + @ApiOperation(value="企标废止发布流程-办理", notes="企标废止发布流程-办理") + @GetMapping("/handle/{taskId}") + @Translation + public Result handle(@PathVariable("taskId") String taskId) { + ProcessDraft draft = actFlowCommonService.getExistDraftByTaskId(taskId, ProcessTypeEnum.ENTERPRISE_STANDARD_ABOLISH_PUBLISH); + if (draft != null) { + return Result.OK(draft); + } + return Result.OK(processAbolishReleaseService.getHandleData(taskId)); + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/entity/ProcessAbolishRelease.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/entity/ProcessAbolishRelease.java new file mode 100644 index 00000000..e34faf65 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/entity/ProcessAbolishRelease.java @@ -0,0 +1,77 @@ +package com.jero.modules.activiti.process.abolish.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableId; +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; + +/** + *

+ * 企标废止发布流程 + *

+ * + * @author sz + * @since 2024-09-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("process_abolish_release") +@ApiModel(value="ProcessAbolishRelease对象", description="企标废止发布流程") +public class ProcessAbolishRelease implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty(value = "流程实例Id") + private String processInstanceId; + + @ApiModelProperty(value = "标准编号") + private String standardNumber; + + @ApiModelProperty(value = "标准名称") + private String standardName; + + @ApiModelProperty(value = "起草人") + private String drafter; + + @ApiModelProperty(value = "主起草部门") + private String drafterDepart; + + @ApiModelProperty(value = "关联部门") + private String relatedDepart; + + @ApiModelProperty(value = "废止理由") + private String abolishReason; + + @ApiModelProperty(value = "附件文件id") + private String fileIds; + + @ApiModelProperty(value = "0表示未删除,1表示删除") + private Integer delFlag; + + @ApiModelProperty(value = "创建人") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "更新人") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/listener/ProcessESAbolishEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/listener/ProcessESAbolishEndListener.java new file mode 100644 index 00000000..5cd8f02e --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/listener/ProcessESAbolishEndListener.java @@ -0,0 +1,54 @@ +package com.jero.modules.activiti.process.abolish.listener; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.jero.modules.activiti.process.abolish.entity.ProcessAbolishRelease; +import com.jero.modules.activiti.process.abolish.service.IProcessAbolishReleaseService; +import com.jero.modules.activiti.process.common.enums.StandardStateEnum; +import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; +import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; +import com.jero.modules.tag.enums.TableNameEnum; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.springframework.stereotype.Component; +import javax.annotation.Resource; + +/** + * @author: Mzaxd + * @Date: 2023/10/10 14:14 + */ +@Slf4j +@Component("ProcessESAbolishEndListener") +public class ProcessESAbolishEndListener implements ExecutionListener { + + @Resource + private ILawsEnterpriseStandardService esService; + + @Resource + private IProcessAbolishReleaseService processAbolishReleaseService; + + /** + * 企标废止流程结束之后需要把标准状态设为废止 + * @param delegateExecution + */ + @Override + public void notify(DelegateExecution delegateExecution) { + log.info("企标废止流程结束 监听执行器开始执行"); + // 找到流程实例Id + String processInstanceId = delegateExecution.getProcessInstanceId(); + LambdaQueryWrapper abolishLambdaQueryWrapper = new LambdaQueryWrapper<>(); + abolishLambdaQueryWrapper.eq(ProcessAbolishRelease::getProcessInstanceId, processInstanceId); + ProcessAbolishRelease abolish = processAbolishReleaseService.getOne(abolishLambdaQueryWrapper); + String standNo = abolish.getStandardNumber(); + LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); + esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standNo); + LawsEnterpriseStandard one = esService.getOne(esWrapper); + log.info("企标废止流程监听执行器开始执行,企标编号为:{}", standNo); + esService.update(new LambdaUpdateWrapper() + .set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ABOLISH.getStateValue()) + .eq(LawsEnterpriseStandard::getStandardNumber, standNo)); + // todo 如果需要发消息可以在此处编写 + log.info("企标废止流程结束监听执行器执行结束"); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/mapper/ProcessAbolishReleaseMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/mapper/ProcessAbolishReleaseMapper.java new file mode 100644 index 00000000..dcdf5973 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/mapper/ProcessAbolishReleaseMapper.java @@ -0,0 +1,16 @@ +package com.jero.modules.activiti.process.abolish.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.activiti.process.abolish.entity.ProcessAbolishRelease; + +/** + *

+ * 企标废止发布流程 Mapper 接口 + *

+ * + * @author sz + * @since 2024-09-05 + */ +public interface ProcessAbolishReleaseMapper extends BaseMapper { + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/mapper/xml/ProcessAbolishReleaseMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/mapper/xml/ProcessAbolishReleaseMapper.xml new file mode 100644 index 00000000..34028e8b --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/mapper/xml/ProcessAbolishReleaseMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/service/IProcessAbolishReleaseService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/service/IProcessAbolishReleaseService.java new file mode 100644 index 00000000..96facfe9 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/service/IProcessAbolishReleaseService.java @@ -0,0 +1,25 @@ +package com.jero.modules.activiti.process.abolish.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.activiti.process.abolish.entity.ProcessAbolishRelease; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import com.jero.modules.activiti.process.ni.entity.ProcessNewStandardImport; + +/** + *

+ * 企标废止发布流程 服务类 + *

+ * + * @author sz + * @since 2024-09-05 + */ +public interface IProcessAbolishReleaseService extends IService { + + void startProcess(ProcessInfoVO processInfoVO); + + void approveTask(ProcessInfoVO processInfoVO, boolean pass); + + ProcessInfoVO getHandleData(String taskId); + + void submit(ProcessInfoVO processInfoVO); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/service/impl/ProcessAbolishReleaseServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/service/impl/ProcessAbolishReleaseServiceImpl.java new file mode 100644 index 00000000..07a3ba0c --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/abolish/service/impl/ProcessAbolishReleaseServiceImpl.java @@ -0,0 +1,281 @@ +package com.jero.modules.activiti.process.abolish.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.exception.JeroBootException; +import com.jero.modules.activiti.common.ActivitiCommon; +import com.jero.modules.activiti.entity.ProcessAll; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; +import com.jero.modules.activiti.enums.ProcessTypeEnum; +import com.jero.modules.activiti.process.abolish.entity.ProcessAbolishRelease; +import com.jero.modules.activiti.process.abolish.mapper.ProcessAbolishReleaseMapper; +import com.jero.modules.activiti.process.abolish.service.IProcessAbolishReleaseService; +import com.jero.modules.activiti.process.common.enums.ProcessType; +import com.jero.modules.activiti.process.common.enums.StandardStateEnum; +import com.jero.modules.activiti.process.common.service.ActFlowCommonService; +import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; +import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import com.jero.modules.activiti.service.ProcessAllService; +import com.jero.modules.activiti.service.ProcessApprovalRecordService; +import com.jero.modules.activiti.service.ProcessNodeLinkService; +import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; +import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; +import com.jero.modules.sys.utils.UserUtils; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import static com.jero.modules.activiti.common.ActivitiCommon.PASS; + +/** + *

+ * 企标废止发布流程 服务实现类 + *

+ * + * @author sz + * @since 2024-09-05 + */ +@Service +@Transactional(rollbackFor = JeroBootException.class) +public class ProcessAbolishReleaseServiceImpl extends ServiceImpl implements IProcessAbolishReleaseService { + + @Resource + private ActFlowCommonService actFlowCommonService; + @Resource + private ProcessNodeLinkService processNodeLinkService; + @Resource + private ProcessApprovalRecordService processApprovalRecordService; + @Resource + private ProcessAllService processAllService; + @Resource + private RuntimeService runtimeService; + @Resource + private IProcessHandleService processHandleService; + @Resource + private TaskService taskService; + @Resource + private ILawsEnterpriseStandardService esService; + + @Override + public void startProcess(ProcessInfoVO processInfoVO) { + // 流程Key + String processDefinitionKey = ProcessType.ENTERPRISE_STANDARD_ABOLISH_PUBLISH.getProcessKey(); + // 流程信息 + BasicProcessInfoDTO processInfo = processInfoVO.getBasicProcessInfoDTO(); + // 任务信息 + BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); + // 人员信息 + Map userInfoMap = processInfoVO.getUserInfoMap(); + // 业务数据 + ProcessAbolishRelease businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + // 设置流程变量 + Map actVariables = setVariables(userInfoMap); + // 删除草稿 + actFlowCommonService.getExistDraftAndRemove(processInfoVO.getDraftId()); + // 启动流程 + ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, actVariables); + // 获取流程实例ID + String processDefinitionId = processInstance.getProcessDefinitionId(); + String processInstanceId = processInstance.getId(); + businessInfoDTO.setProcessInstanceId(processInstanceId); + processInfo.setProcessInstanceId(processInstanceId); + processInfo.setProcessDefinitionId(processDefinitionId); + processInfo.setProcessType(ProcessTypeEnum.ENTERPRISE_STANDARD_ABOLISH_PUBLISH.getValue()); + // 第一个节点业务数据处理 + this.startNodeBusProcess(processInfoVO); + // 保存选人信息 + processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, changeVariables(userInfoMap)); + // 当前用户Id + String userId = UserUtils.getUserId(); + // 获取第一个任务的taskId + String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId); + processTask.setTaskId(taskId); + // 保存第一个节点的草稿 + processHandleService.saveToDraft(processInfoVO, UserUtils.getUserId()); + // 更新审批表为完成,填充数据 + actFlowCommonService.updateApprovalInfo(processTask, taskId); + // 根据流程实例id更新流程总表 + actFlowCommonService.updateProcessAll(processInfo); + // 自动完成第一个任务 + actFlowCommonService.completeTask(taskId, userId); + // 保存快照 + processHandleService.saveToSnapshot(processInfoVO,userId); + } + + @Override + public void approveTask(ProcessInfoVO processInfoVO, boolean pass) { + BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); + String taskId = processTask.getTaskId(); + // 获取task + if (StringUtils.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) { + throw new JeroBootException("taskId为空或任务不存在"); + } + // 获取当前节点的id + ProcessApprovalRecord processApprovalRecord = actFlowCommonService.getNodeIdByTaskId(taskId); + String xmlNodeId = processApprovalRecord.getNodeId(); + //任务Id 查询任务对象 + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + String processInstanceId = task.getProcessInstanceId(); + String userId = actFlowCommonService.getOriginTaskAssignee(taskId); + if(Objects.isNull(task)){ + throw new JeroBootException("找不到对应任务"); + } + if (pass && task.getName().equals("授权人审批")) { + ProcessAbolishRelease businessInfoDTO = this.getOne(new LambdaQueryWrapper() + .eq(ProcessAbolishRelease::getProcessInstanceId, processInstanceId)); + String standardNumber = businessInfoDTO.getStandardNumber(); + LawsEnterpriseStandard es = esService.getOne(new LambdaQueryWrapper() + .eq(LawsEnterpriseStandard::getStandardNumber, standardNumber)); + if (StandardStateEnum.ABOLISH.getStateValue().equals(es.getStandardState())) { + throw new JeroBootException("该标准已废止,需要驳回重新选择"); + } + } + if(Objects.isNull(processTask.getCommitFlag())){ + processTask.setCommitFlag(pass ? ActivitiCommon.COMMIT_FLAG1 : ActivitiCommon.COMMIT_FLAG2); + } + // 更新审批表为完成,填充数据 + actFlowCommonService.updateApprovalInfo(processTask, taskId); + // 设置流程变量 + runtimeService.setVariable(processInstanceId, PASS, pass); + // 审批节点 + actFlowCommonService.completeTask(taskId, userId); + // 驳回,结束所有节点 + processApprovalRecordService.updateApprovalRecordFinishFlag(pass, taskId, xmlNodeId, processInstanceId); + // 保存快照 + // 获取流程通用数据 + ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); + if(!Objects.isNull(process)){ + BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO(); + basicProcessInfoDTO.setProcessName(process.getPrcName()); + basicProcessInfoDTO.setProcessType(process.getPrcType()); + basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId()); + basicProcessInfoDTO.setProcessInstanceId(process.getProcessInstanceId()); + basicProcessInfoDTO.setProcessDescription(process.getPrcMes()); + basicProcessInfoDTO.setProcessDueDate(process.getDueTime()); + processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO); + // 保存快照 + processHandleService.saveToSnapshot(processInfoVO,userId); + } + } + + @Override + public void submit(ProcessInfoVO processInfoVO) { + BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); + String taskId = processTask.getTaskId(); + // 获取task + if (StringUtils.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) { + throw new JeroBootException("taskId为空或任务不存在"); + } + //任务Id 查询任务对象 + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if(Objects.isNull(task)){ + throw new JeroBootException("找不到对应任务"); + } + // 人员信息 + Map userInfoMap = processInfoVO.getUserInfoMap(); + // 设置流程变量 + Map actVariables = setVariables(userInfoMap); + String processInstanceId = task.getProcessInstanceId(); + runtimeService.setVariables(processInstanceId,actVariables); + String userId = actFlowCommonService.getOriginTaskAssignee(taskId); + // 发起节点 更新业务数据 + startNodeBusProcess(processInfoVO); + // 更新审批表为完成,填充数据 + actFlowCommonService.updateApprovalInfo(processTask, taskId); + // 审批节点 + actFlowCommonService.completeTask(taskId, userId); + // 保存快照 + // 获取流程通用数据 + ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); + if(!Objects.isNull(process)){ + BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO(); + basicProcessInfoDTO.setProcessName(process.getPrcName()); + basicProcessInfoDTO.setProcessType(process.getPrcType()); + basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId()); + basicProcessInfoDTO.setProcessInstanceId(process.getProcessInstanceId()); + basicProcessInfoDTO.setProcessDescription(process.getPrcMes()); + basicProcessInfoDTO.setProcessDueDate(process.getDueTime()); + processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO); + // 保存快照 + processHandleService.saveToSnapshot(processInfoVO,userId); + } + } + + @Override + public ProcessInfoVO getHandleData(String taskId) { + if (!actFlowCommonService.taskExists(taskId)) { + throw new JeroBootException("任务不存在"); + } + ProcessInfoVO result = new ProcessInfoVO<>(); + // 使用流程引擎根据taskId找到流程实例Id + String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); + // 获取流程通用数据 + ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); + if(!Objects.isNull(process)){ + BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO(); + basicProcessInfoDTO.setProcessName(process.getPrcName()); + basicProcessInfoDTO.setProcessType(process.getPrcType()); + basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId()); + basicProcessInfoDTO.setProcessInstanceId(process.getProcessInstanceId()); + basicProcessInfoDTO.setProcessDescription(process.getPrcMes()); + basicProcessInfoDTO.setProcessDueDate(process.getDueTime()); + result.setBasicProcessInfoDTO(basicProcessInfoDTO); + } + // 获取流程实例数据 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(ProcessAbolishRelease::getProcessInstanceId, processInstanceId); + ProcessAbolishRelease data = getOne(lambdaQueryWrapper,false); + result.setBusinessInfoDTO(data); + return result; + } + + private void startNodeBusProcess(ProcessInfoVO processInfoVO) { + ProcessAbolishRelease businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + saveOrUpdate(businessInfoDTO); + } + + private Map setVariables(Map userInfoMap) { + Map map = new HashMap<>(); + // 人员信息 + userInfoMap.forEach((key, value) -> { + if(Objects.equals("checkUserLeader1List",key + "List") || + Objects.equals("checkUserLeader2List",key + "List") || + Objects.equals("checkUserLeader3List",key + "List") || + Objects.equals("checkUserLeader4List",key + "List") || + Objects.equals("checkUserLeader5List",key + "List") || + Objects.equals("checkUserLeader6List",key + "List")){ + map.put(key, value); + map.put(key + "List", Arrays.asList(value.toString().split(","))); + return; + } + map.put(key, value); + }); + return map; + } + + private Map changeVariables(Map userInfoMap) { + Map map = new HashMap<>(); + // 人员信息 + userInfoMap.forEach((key, value) -> { + if(Objects.equals("checkUserLeader1List",key + "List") || + Objects.equals("checkUserLeader4List",key + "List") || + Objects.equals("checkUserLeader5List",key + "List") || + Objects.equals("checkUserLeader6List",key + "List")){ + map.put(key + "List", value); + return; + } + map.put(key, value); + }); + return map; + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java index 633d08d0..0a15ad25 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java @@ -15,6 +15,7 @@ public enum ProcessType { STANDARD_INTERPRET("标准解读流程", "2", "standard_interpret", "StandardInterpretFlowServiceImpl"), STANDARD_COMPLIANCE_CHECK("法规符合性评估流程", "3", "laws-evaluation-main", "ProcessStandardComplianceCheckServiceImpl"), MARKET_STANDARD_PUBLISH("市场清单发布流程", "4", "market_standard_publish", "ProcessNewStandardImportServiceImpl"), + ENTERPRISE_STANDARD_ABOLISH_PUBLISH("企标废止发布流程", "5", "enterprise_standard_abolish_publish", "ProcessAbolishReleaseServiceImpl"), ; private final String name; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubMeeting.java b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubMeeting.java index 35564c61..c93491f3 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubMeeting.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubMeeting.java @@ -57,8 +57,8 @@ public class LawsClubMeeting implements Serializable { @Excel(name = "会议费用", width = 20) private String meetingCost; - @ApiModelProperty(value = "线下/线上地点") - @Excel(name = "线下/线上地点", width = 20) + @ApiModelProperty(value = "线上/线下地点") + @Excel(name = "线上/线下地点", width = 20) private String meetingPlace; @ApiModelProperty(value = "计划完成日期") diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubResearchInformation.java b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubResearchInformation.java index 36edaae5..e25b5206 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubResearchInformation.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubResearchInformation.java @@ -62,6 +62,7 @@ public class LawsClubResearchInformation implements Serializable { @ApiModelProperty(value = "专业接口人") @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") + @Excel(name = "专业接口人", width = 20, dicText = "realname", dicCode = "id", dictTable = "sys_user") private String specializedInterfacePerson; @ApiModelProperty(value = "专业模块") diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java index 4f9f839f..0baaecb2 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java @@ -226,13 +226,11 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl fileList = FileUnZip.readExcelFile(zipEntryName); File zipFile = new File(zipEntryName); List fileList = new ArrayList<>(); if (zipFile.isDirectory()) { File[] files = zipFile.listFiles(); for (File fi : files) { - // 对文件进行过滤,只读取Excel文件 fileList.add(fi); } } @@ -272,7 +270,6 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl meetingExcels, Map unZipFileMap) throws IOException{ StringBuilder msg = new StringBuilder(); // 拿到这个流程的名称 @@ -459,6 +456,7 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl + + + 企标废止流程 + + + + + + + + ${!pass} + + + + + + + + + + ${pass} + + + + + ${!pass} + + + ${!pass} + + + + ${pass} + + + + + + ${!pass} + + + + ${pass} + + + + + + ${!pass} + + + + ${pass} + + + + + + ${!pass} + + + + ${pass} + + + + + + + + + + ${pass} + + + ${!pass} + + + ${!pass} + + + ${!pass} + + + ${!pass} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +