diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbInfoController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbInfoController.java index 7b752d93..ff2c97b8 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbInfoController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbInfoController.java @@ -91,65 +91,24 @@ public class ProcessFbInfoController { @ApiOperation(value = "测试") @GetMapping("/test") public Result test() { - Map variables = new HashMap<>(); - variables.put("creator", "tom"); - ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("test_countersign", variables); - String processInstanceId = processInstance.getId(); - System.out.println("流程实例Id: " + processInstanceId); - - List 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 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 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(); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java index 174a6d20..b4f3d7a8 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java @@ -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 implements IProcessFbStandardConsultationService { @@ -76,22 +79,6 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl 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 departLeaderList = Arrays.asList(departLeaders.split(",")); List linkList = new ArrayList<>(); @@ -206,7 +193,6 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl removeWrapper = new LambdaQueryWrapper<>(); removeWrapper.eq(ProcessFbConsultationUserLink::getBusinessId, processInfoVO.getBusinessId()); @@ -251,11 +237,5 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl 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 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 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index 6671cb69..168c40bb 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -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