From d2858d4f5fababb1407d45901a47b1bef7398f84 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Thu, 19 Oct 2023 16:01:43 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=B7=A5=E4=BD=9C=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=20=E5=BC=BA=E5=88=B6=E6=92=A4=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WorkCenterController.java | 15 ++++++++++- .../activiti/enums/ProcessTypeEnum.java | 20 +++++++++++--- .../activiti/listener/StartListener.java | 10 +------ .../activiti/mapper/ProcessAllMapper.java | 2 ++ .../activiti/mapper/xml/ProcessAllMapper.xml | 17 ++++++++++-- .../activiti/service/ProcessAllService.java | 27 +++++++++++++++---- .../activiti/service/WorkCenterService.java | 13 +++++++++ 7 files changed, 83 insertions(+), 21 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/service/WorkCenterService.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java b/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java index 5751fe6f..9add1b25 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java @@ -89,6 +89,19 @@ public class WorkCenterController { return Result.OK(sentList); } + @ApiOperation(value = "查询全部流程") + @GetMapping("/getAllList") + public Result getAllList(ProcessAll processAll, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = getProcessAllQueryWrapper(processAll); + + Page page = new Page<>(pageNo, pageSize); + IPage sentList = processAllService.getAllList(page, queryWrapper); + return Result.OK(sentList); + } + @NotNull private QueryWrapper getProcessAllQueryWrapper(ProcessAll processAll) { String prcName = processAll.getPrcName(); @@ -105,7 +118,7 @@ public class WorkCenterController { return queryWrapper; } - @ApiOperation(value = "撤销流程") + @ApiOperation(value = "强制撤销") @PostMapping("/delete") public Result delete(@RequestBody Map map) { String processInstanceId = map.get("processInstanceId"); 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 928af1fc..ccc9e67c 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 @@ -1,5 +1,6 @@ package com.jero.modules.activiti.enums; +import com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl; import lombok.AllArgsConstructor; import lombok.Getter; @@ -13,11 +14,13 @@ public enum ProcessTypeEnum { /** * A */ - A("企标制修订流程", 1,"Process_17bj7d9"); + A("企标制修订流程", 1, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl"), + B("企标立项变更流程",2, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl"), + ; private String name; private Integer value; - private String key; + private String implClass; public static String getNameByValue(Integer value) { for (ProcessTypeEnum enumObject : values()) { @@ -28,9 +31,18 @@ public enum ProcessTypeEnum { return null; } - public static Integer getValueByKey(String key) { + public static String getClassByValue(Integer value) { for (ProcessTypeEnum enumObject : values()) { - if (enumObject.getKey().equals(key)) { + if (enumObject.getValue().equals(value)) { + return enumObject.getImplClass(); + } + } + return null; + } + + public static Integer getValueByName(String name) { + for (ProcessTypeEnum enumObject : values()) { + if (enumObject.getName().equals(name)) { return enumObject.getValue(); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java index aad51627..0204a165 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java @@ -1,24 +1,16 @@ package com.jero.modules.activiti.listener; -import java.util.List; - import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.util.SpringContextUtil; -import org.activiti.bpmn.model.ActivitiListener; -import org.activiti.bpmn.model.FlowElement; import org.activiti.engine.*; import org.activiti.engine.delegate.DelegateExecution; -import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.ExecutionListener; -import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.repository.ProcessDefinition; -import org.activiti.engine.runtime.NativeProcessInstanceQuery; -import org.activiti.engine.runtime.ProcessInstance; /** * @author liJiaRao @@ -45,7 +37,7 @@ public class StartListener implements ExecutionListener { //新增流程总表信息(剩余的内容在启动流程时填充) ProcessAll processAll = new ProcessAll(); processAll.setProcessInstanceId(processInstanceId); - processAll.setPrcType(ProcessTypeEnum.getValueByKey(key)); + processAll.setPrcType(ProcessTypeEnum.getValueByName(name)); processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue()); processAllService.save(processAll); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/mapper/ProcessAllMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/mapper/ProcessAllMapper.java index 0c0f713b..8b59f312 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/mapper/ProcessAllMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/mapper/ProcessAllMapper.java @@ -19,4 +19,6 @@ public interface ProcessAllMapper extends BaseMapper { IPage getCompletedList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); IPage getSentList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + IPage getAllList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/mapper/xml/ProcessAllMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/mapper/xml/ProcessAllMapper.xml index 10965435..cf491696 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/mapper/xml/ProcessAllMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/activiti/mapper/xml/ProcessAllMapper.xml @@ -17,7 +17,7 @@ ${ew.customSqlSegment} ) p left join process_approval_record par on p.process_instance_id = par.process_instance_id - WHERE par.finish_flag = 0 + WHERE par.finish_flag = 0 or par.id is null group by p.process_instance_id @@ -30,7 +30,20 @@ ${ew.customSqlSegment} ) p left join process_approval_record par on p.process_instance_id = par.process_instance_id - WHERE par.finish_flag = 0 + WHERE par.finish_flag = 0 or par.id is null + group by p.process_instance_id + + + \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index a6c862d9..1d550e4e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.modules.activiti.entity.ProcessApprovalRecord; +import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper; import org.activiti.engine.RuntimeService; import org.springframework.stereotype.Service; @@ -46,13 +47,29 @@ public class ProcessAllService extends ServiceImpl } public void delete(String processInstanceId) { - runtimeService.deleteProcessInstance(processInstanceId,"撤销"); - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(ProcessAll::getProcessInstanceId,processInstanceId); - this.remove(wrapper); - + //activiti撤销 + runtimeService.deleteProcessInstance(processInstanceId,"强制撤销"); + //获得流程总表 + ProcessAll processAll = getByProcessInstanceId(processInstanceId); + //删除流程总表 + this.removeById(processAll.getId()); + //删除审批表 LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId); processApprovalRecordMapper.delete(wrapper1); + //业务表修改为草稿 + Integer prcType = processAll.getPrcType(); + WorkCenterService classByValue = null; + try { + classByValue = (WorkCenterService) Class.forName(ProcessTypeEnum.getClassByValue(prcType)).newInstance(); + }catch (Exception e) { + log.error(e.getMessage(),e); + } + classByValue.changeToDraft(processAll.getProjectId()); + //todo 同步删除操作到统一待办 + } + + public IPage getAllList(Page page, QueryWrapper queryWrapper) { + return processAllMapper.getAllList(page,queryWrapper); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/WorkCenterService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/WorkCenterService.java new file mode 100644 index 00000000..d25f0f5a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/WorkCenterService.java @@ -0,0 +1,13 @@ +package com.jero.modules.activiti.service; + +/** + * @author liJiaRao + * @date 2023-10-19 15:22 + */ +public interface WorkCenterService { + /** + * 更改业务表为草稿 + * @param id + */ + void changeToDraft(String id); +}