update 工作中心 强制撤销
This commit is contained in:
+14
-1
@@ -89,6 +89,19 @@ public class WorkCenterController {
|
|||||||
return Result.OK(sentList);
|
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
|
@NotNull
|
||||||
private QueryWrapper<ProcessAll> getProcessAllQueryWrapper(ProcessAll processAll) {
|
private QueryWrapper<ProcessAll> getProcessAllQueryWrapper(ProcessAll processAll) {
|
||||||
String prcName = processAll.getPrcName();
|
String prcName = processAll.getPrcName();
|
||||||
@@ -105,7 +118,7 @@ public class WorkCenterController {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "撤销流程")
|
@ApiOperation(value = "强制撤销")
|
||||||
@PostMapping("/delete")
|
@PostMapping("/delete")
|
||||||
public Result<?> delete(@RequestBody Map<String, String> map) {
|
public Result<?> delete(@RequestBody Map<String, String> map) {
|
||||||
String processInstanceId = map.get("processInstanceId");
|
String processInstanceId = map.get("processInstanceId");
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.jero.modules.activiti.enums;
|
package com.jero.modules.activiti.enums;
|
||||||
|
|
||||||
|
import com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@@ -13,11 +14,13 @@ public enum ProcessTypeEnum {
|
|||||||
/**
|
/**
|
||||||
* A
|
* 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 String name;
|
||||||
private Integer value;
|
private Integer value;
|
||||||
private String key;
|
private String implClass;
|
||||||
|
|
||||||
public static String getNameByValue(Integer value) {
|
public static String getNameByValue(Integer value) {
|
||||||
for (ProcessTypeEnum enumObject : values()) {
|
for (ProcessTypeEnum enumObject : values()) {
|
||||||
@@ -28,9 +31,18 @@ public enum ProcessTypeEnum {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Integer getValueByKey(String key) {
|
public static String getClassByValue(Integer value) {
|
||||||
for (ProcessTypeEnum enumObject : values()) {
|
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();
|
return enumObject.getValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +1,16 @@
|
|||||||
package com.jero.modules.activiti.listener;
|
package com.jero.modules.activiti.listener;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.jero.modules.activiti.entity.ProcessAll;
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
||||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||||
import com.jero.modules.activiti.service.ProcessAllService;
|
import com.jero.modules.activiti.service.ProcessAllService;
|
||||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||||
import com.jero.modules.activiti.util.SpringContextUtil;
|
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.*;
|
||||||
import org.activiti.engine.delegate.DelegateExecution;
|
import org.activiti.engine.delegate.DelegateExecution;
|
||||||
import org.activiti.engine.delegate.DelegateTask;
|
|
||||||
import org.activiti.engine.delegate.ExecutionListener;
|
import org.activiti.engine.delegate.ExecutionListener;
|
||||||
import org.activiti.engine.delegate.TaskListener;
|
|
||||||
import org.activiti.engine.repository.ProcessDefinition;
|
import org.activiti.engine.repository.ProcessDefinition;
|
||||||
import org.activiti.engine.runtime.NativeProcessInstanceQuery;
|
|
||||||
import org.activiti.engine.runtime.ProcessInstance;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author liJiaRao
|
* @author liJiaRao
|
||||||
@@ -45,7 +37,7 @@ public class StartListener implements ExecutionListener {
|
|||||||
//新增流程总表信息(剩余的内容在启动流程时填充)
|
//新增流程总表信息(剩余的内容在启动流程时填充)
|
||||||
ProcessAll processAll = new ProcessAll();
|
ProcessAll processAll = new ProcessAll();
|
||||||
processAll.setProcessInstanceId(processInstanceId);
|
processAll.setProcessInstanceId(processInstanceId);
|
||||||
processAll.setPrcType(ProcessTypeEnum.getValueByKey(key));
|
processAll.setPrcType(ProcessTypeEnum.getValueByName(name));
|
||||||
processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue());
|
processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue());
|
||||||
processAllService.save(processAll);
|
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> getCompletedList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper);
|
||||||
|
|
||||||
IPage<ProcessAll> getSentList(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}
|
${ew.customSqlSegment}
|
||||||
) p
|
) p
|
||||||
left join process_approval_record par on p.process_instance_id = par.process_instance_id
|
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
|
group by p.process_instance_id
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -30,7 +30,20 @@
|
|||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
) p
|
) p
|
||||||
left join process_approval_record par on p.process_instance_id = par.process_instance_id
|
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
|
group by p.process_instance_id
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</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.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||||
|
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||||
import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper;
|
import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper;
|
||||||
import org.activiti.engine.RuntimeService;
|
import org.activiti.engine.RuntimeService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -46,13 +47,29 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void delete(String processInstanceId) {
|
public void delete(String processInstanceId) {
|
||||||
runtimeService.deleteProcessInstance(processInstanceId,"撤销");
|
//activiti撤销
|
||||||
LambdaQueryWrapper<ProcessAll> wrapper = new LambdaQueryWrapper<>();
|
runtimeService.deleteProcessInstance(processInstanceId,"强制撤销");
|
||||||
wrapper.eq(ProcessAll::getProcessInstanceId,processInstanceId);
|
//获得流程总表
|
||||||
this.remove(wrapper);
|
ProcessAll processAll = getByProcessInstanceId(processInstanceId);
|
||||||
|
//删除流程总表
|
||||||
|
this.removeById(processAll.getId());
|
||||||
|
//删除审批表
|
||||||
LambdaQueryWrapper<ProcessApprovalRecord> wrapper1 = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProcessApprovalRecord> wrapper1 = new LambdaQueryWrapper<>();
|
||||||
wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
|
wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
|
||||||
processApprovalRecordMapper.delete(wrapper1);
|
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