update 通用查询单选

This commit is contained in:
liao
2023-11-17 14:49:17 +08:00
parent 0a79cda549
commit bfac88b257
4 changed files with 63 additions and 86 deletions
@@ -91,65 +91,24 @@ public class ProcessFbInfoController {
@ApiOperation(value = "测试")
@GetMapping("/test")
public Result<T> test() {
Map<String, Object> variables = new HashMap<>();
variables.put("creator", "tom");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("test_countersign", variables);
String processInstanceId = processInstance.getId();
System.out.println("流程实例Id: " + processInstanceId);
List<Task> taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
System.out.println("============== 提出申请 ============");
taskList.forEach(task -> {
System.out.println("任务Id: " + task.getId());
System.out.println("任务名称: " + task.getName());
System.out.println("执行实例Id: " + task.getExecutionId());
System.out.println("任务处理人: " + task.getAssignee());
});
System.out.println("==========================");
List<String> leaderList = Arrays.asList(new String[] {"aaa", "bbb", "ccc"});
variables.put("leaderList", leaderList);
runtimeService.setVariables(processInstanceId, variables);
Task tomTask = taskList.get(0);
taskService.complete(tomTask.getId());
System.out.println("完成任务: " + tomTask.getId());
System.out.println("任务名称: " + tomTask.getName());
System.out.println("完成人: " + tomTask.getAssignee());
taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
System.out.println("============== 多人会签 ============");
taskList.forEach(task -> {
System.out.println("任务Id: " + task.getId());
System.out.println("任务名称: " + task.getName());
System.out.println("执行实例Id: " + task.getExecutionId());
System.out.println("任务处理人: " + task.getAssignee());
});
System.out.println("==========================");
System.out.println("============= 多人会签 =============");
taskList.forEach(task -> {
taskService.claim(task.getId(), task.getAssignee());
//taskService.complete(task.getId());
System.out.println("完成任务: " + task.getId());
});
System.out.println("==========================");
taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
System.out.println("============== 汇总 ============");
taskList.forEach(task -> {
System.out.println("任务Id: " + task.getId());
System.out.println("任务名称: " + task.getName());
System.out.println("执行实例Id: " + task.getExecutionId());
System.out.println("任务处理人: " + task.getAssignee());
});
System.out.println("==========================");
tomTask = taskList.get(0);
//taskService.complete(tomTask.getId());
System.out.println("完成任务: " + tomTask.getId());
System.out.println("任务名称: " + tomTask.getName());
System.out.println("完成人: " + tomTask.getAssignee());
String processInstanceId = "20231117135055516";
// 查询正在执行的多实例子流程的执行实例列表
List<Execution> executions = runtimeService.createExecutionQuery()
.processInstanceId(processInstanceId)
.activityId("depart_leader_start_1") // 指定多实例活动的ID
.list();
// 遍历执行实例列表
System.out.println("processInstanceId: " + processInstanceId);
for (Execution execution : executions) {
// 获取执行实例的ID,即每个实例的唯一标识
System.out.println("Id: " + execution.getId());
System.out.println("SuperExecutionId: " + execution.getSuperExecutionId());
System.out.println("ParentId: " + execution.getParentId());
System.out.println("RootProcessInstanceId: " + execution.getRootProcessInstanceId());
System.out.println("ProcessInstanceId: " + execution.getProcessInstanceId());
// 执行其他逻辑,例如查询与该实例相关的任务等
}
return Result.OK();
}
@@ -18,8 +18,10 @@ import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessFbStandardConsultationVO;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.Execution;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils;
@@ -39,6 +41,7 @@ import java.util.*;
* @Version: V1.0
*/
@Service
@Slf4j
@Transactional(rollbackFor = JeroBootException.class)
public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<ProcessFbStandardConsultationMapper, ProcessFbStandardConsultation> implements IProcessFbStandardConsultationService {
@@ -76,22 +79,6 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.FB_STANDARD_CONSULTATION.getValue()); // 流程类型
String processInstanceId = processHandleService.startProcess(processInfoVO);
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
List<Task> taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
System.out.println("=============流程信息=============");
System.out.println("processInstanceId" + processInstance.getId());
System.out.println("SuperExecutionId" + processInstance.getSuperExecutionId());
System.out.println("============任务信息==============");
taskList.forEach(task -> {
System.out.println("任务Id: " + task.getId());
System.out.println("ExecutionId: " + task.getExecutionId());
System.out.println("ProcessInstanceId: " + task.getProcessInstanceId());
System.out.println("Assignee: " + task.getAssignee());
System.out.println("==========================");
});
// 把各部所主管级领导数据存入关联人员表
List<String> departLeaderList = Arrays.asList(departLeaders.split(","));
List<ProcessFbConsultationUserLink> linkList = new ArrayList<>();
@@ -206,7 +193,6 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
String taskId = processInfoVO.getBasicTaskInfoDTO().getTaskId();
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String subProcessInstanceId = task.getProcessInstanceId();
String executionId = task.getExecutionId();
LambdaQueryWrapper<ProcessFbConsultationUserLink> removeWrapper = new LambdaQueryWrapper<>();
removeWrapper.eq(ProcessFbConsultationUserLink::getBusinessId, processInfoVO.getBusinessId());
@@ -251,11 +237,5 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
// 完成任务
taskService.complete(taskId);
System.out.println("================================各部门主管级领导分发=================================");
System.out.println("processInstanceId: " + processInfoVO.getBasicProcessInfoDTO().getProcessInstanceId());
System.out.println("subProcessInstanceId: " + subProcessInstanceId);
System.out.println("taskId: " + taskId);
System.out.println("executionId: " + executionId);
System.out.println("=======================================================================");
}
}
@@ -35,6 +35,32 @@ public class FieldCommon {
LawsFieldTypeEnum.TREE_OPTION.getValue() // 树形弹框选择
);
/**
* @Author: liao
* @Date: 2023/11/17 14:38
* @Description: 多选弹框
**/
public static final List<String> TYPE_MANY_OPTION = Arrays.asList(
LawsFieldTypeEnum.BOX_MANY.getValue(), // 多选标准弹框
LawsFieldTypeEnum.GROUP_MANY.getValue(), // 多选组织机构弹框
LawsFieldTypeEnum.FILE_UP.getValue(), // 上传文件
LawsFieldTypeEnum.TREE_BOX.getValue(), // 树型多选
LawsFieldTypeEnum.OPTION_MANY.getValue(), // 下拉多选
LawsFieldTypeEnum.TREE_OPTION.getValue() // 树形弹框选择
);
/**
* @Author: liao
* @Date: 2023/11/17 14:38
* @Description: 单选搜索
**/
public static final List<String> TYPE_SIMPLE_OPTION = Arrays.asList(
LawsFieldTypeEnum.USER_SINGLE.getValue(), // 单选用户弹框
LawsFieldTypeEnum.GROUP_SINGLE.getValue(), // 单选组织机构弹框
LawsFieldTypeEnum.OPTION_SINGLE.getValue(), // 下拉单选
LawsFieldTypeEnum.TREE_BOX_SINGLE.getValue() // 树型单选
);
/**
* @Author: liao
* @Date: 2023/11/3 17:22
@@ -1920,9 +1920,12 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
if (FieldCommon.TYPE_LIKE.contains(fieldShowType)) {
// 模糊查询拼接
processLikeTypeCondition(selectCondition, key, value);
} else if (FieldCommon.TYPE_LIKE_IN.contains(fieldShowType)) {
// 模糊查询+in查询
processLikeInTypeCondition(selectCondition, key, value);
} else if (FieldCommon.TYPE_MANY_OPTION.contains(fieldShowType)) {
// 多选
manyOption(selectCondition, key, value);
} else if (FieldCommon.TYPE_SIMPLE_OPTION.contains(fieldShowType)) {
// 单选
simpleOption(selectCondition, key, value);
} else if (LawsFieldTypeEnum.DATE_SINGLE.getValue().equals(fieldShowType)) {
// 单日期查询
processDateSingleTypeCondition(selectCondition, key, value);
@@ -1950,9 +1953,9 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
/**
* @Author: liao
* @Date: 2023/8/25 11:00
* @Description: 模糊查询+in查询
* @Description: 多选
**/
private void processLikeInTypeCondition(StringBuilder selectCondition, String key, String value) {
private void manyOption(StringBuilder selectCondition, String key, String value) {
StringBuilder valueSb = new StringBuilder();
StringBuilder condition = new StringBuilder();
for (String valueTemp : value.split(",")) {
@@ -1964,6 +1967,15 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
selectCondition.append(" and (").append(key).append(" in(").append(substring).append(")").append(condition);
}
/**
* @Author: liao
* @Date: 2023/11/17 14:41
* @Description:单选
**/
private void simpleOption(StringBuilder selectCondition, String key, String value) {
selectCondition.append(" and (").append(key).append(" = '").append(value).append("')");
}
/**
* @Author: liao
* @Date: 2023/8/25 11:00