update 工作中心 强制撤销
This commit is contained in:
+14
-1
@@ -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<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll);
|
||||
|
||||
Page<ProcessAll> page = new Page<>(pageNo, pageSize);
|
||||
IPage<ProcessAll> sentList = processAllService.getAllList(page, queryWrapper);
|
||||
return Result.OK(sentList);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private QueryWrapper<ProcessAll> 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<String, String> map) {
|
||||
String processInstanceId = map.get("processInstanceId");
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -19,4 +19,6 @@ public interface ProcessAllMapper extends BaseMapper<ProcessAll> {
|
||||
IPage<ProcessAll> getCompletedList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper);
|
||||
|
||||
IPage<ProcessAll> getSentList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper);
|
||||
|
||||
IPage<ProcessAll> getAllList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper);
|
||||
}
|
||||
+15
-2
@@ -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
|
||||
</select>
|
||||
|
||||
@@ -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
|
||||
</select>
|
||||
|
||||
<select id="getAllList" resultType="com.jero.modules.activiti.entity.ProcessAll">
|
||||
select p.*, group_concat(par.user_id) as handleUserId
|
||||
from (
|
||||
select pa.*, max(par.create_time) as receivedTaskTime, max(par.end_time) as completedTaskTime
|
||||
from process_all pa
|
||||
left join process_approval_record par on pa.process_instance_id = par.process_instance_id
|
||||
${ew.customSqlSegment}
|
||||
) p
|
||||
left join process_approval_record par on p.process_instance_id = par.process_instance_id
|
||||
WHERE par.finish_flag = 0 or par.id is null
|
||||
group by p.process_instance_id
|
||||
</select>
|
||||
</mapper>
|
||||
+22
-5
@@ -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<ProcessAllMapper, ProcessAll>
|
||||
}
|
||||
|
||||
public void delete(String processInstanceId) {
|
||||
runtimeService.deleteProcessInstance(processInstanceId,"撤销");
|
||||
LambdaQueryWrapper<ProcessAll> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessAll::getProcessInstanceId,processInstanceId);
|
||||
this.remove(wrapper);
|
||||
|
||||
//activiti撤销
|
||||
runtimeService.deleteProcessInstance(processInstanceId,"强制撤销");
|
||||
//获得流程总表
|
||||
ProcessAll processAll = getByProcessInstanceId(processInstanceId);
|
||||
//删除流程总表
|
||||
this.removeById(processAll.getId());
|
||||
//删除审批表
|
||||
LambdaQueryWrapper<ProcessApprovalRecord> 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<ProcessAll> getAllList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper) {
|
||||
return processAllMapper.getAllList(page,queryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user