| | |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.*; |
| | | |
| | | import org.springblade.mdm.flow.constants.FlowContants; |
| | | import org.springblade.mdm.basesetting.machine.entity.Machine; |
| | | import org.springblade.mdm.basesetting.machine.service.MachineService; |
| | | import org.springblade.mdm.commons.service.ParamService; |
| | | import org.springblade.mdm.flow.constants.FlowVariableConstant; |
| | | import org.springblade.mdm.flow.entity.FlowProgramFile; |
| | | import org.springblade.mdm.flow.entity.MdmFlowProcess; |
| | | import org.springblade.mdm.flow.util.MdmFlowCache; |
| | | import org.springblade.mdm.flow.vo.FlowVO; |
| | | import org.springblade.mdm.program.service.NcProgramService; |
| | | import org.springblade.mdm.program.service.ProcessProgRefService; |
| | | import org.springblade.mdm.flow.vo.TodoQueryVO; |
| | | import org.springblade.system.feign.IUserClient; |
| | | import org.springblade.system.pojo.entity.User; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | private final HistoryService historyService; |
| | | private final IUserClient userClient; |
| | | private final FlowProgramFileService flowProgramFileService; |
| | | private final ParamService paramService; |
| | | private final MachineService machineService; |
| | | /** |
| | | * 查询我的流程(个人待办列表) |
| | | * @param page 分页信息 |
| | |
| | | * @param keyword 查询关键字 |
| | | * @return |
| | | */ |
| | | public IPage<FlowVO> selectTodoPage(IPage<FlowVO> page, LocalDateTime createTimeBegin, LocalDateTime createTimeEnd, String keyword) { |
| | | public IPage<FlowVO> selectTodoPage(IPage<FlowVO> page, TodoQueryVO queryVO) {//LocalDateTime createTimeBegin, LocalDateTime createTimeEnd, String keyword |
| | | //String taskUser = TaskUtil.getTaskUser(); |
| | | String userId = "" + AuthUtil.getUserId(); |
| | | List<FlowVO> flowList = new LinkedList<>(); |
| | | |
| | | TaskQuery todoQuery = taskService.createTaskQuery().taskAssignee(userId).active().includeProcessVariables(); |
| | | if (Func.isNotEmpty(createTimeBegin)) { |
| | | todoQuery.taskCreatedAfter(DateUtil.toDate(createTimeBegin)); |
| | | |
| | | if(queryVO.getMachineSpec() != null){ |
| | | if(queryVO.getMachineSpec().length==1) {//2个为全选 |
| | | //查询车床代码集合 |
| | | String turnVal = paramService.turninngValue(); |
| | | List<Machine> machines = machineService.lambdaQuery().eq(Machine::getMachineSpec, turnVal).eq(Machine::getStatus, Machine.STATUS_ENABLE).list(); |
| | | List<String> turnMachineCodes = machines.stream().map(Machine::getCode).toList(); |
| | | |
| | | List<String> specs = Arrays.asList(queryVO.getMachineSpec()); |
| | | if (specs.contains("1")) { |
| | | //车床 |
| | | todoQuery.or(); |
| | | for (String mCode : turnMachineCodes) { |
| | | todoQuery.processVariableValueEquals(FlowVariableConstant.MACHINE_CODE, mCode); |
| | | } |
| | | todoQuery.endOr(); |
| | | } else { |
| | | //加工中心 |
| | | todoQuery.or(); |
| | | for (String mCode : turnMachineCodes) { |
| | | todoQuery.processVariableValueNotEquals(FlowVariableConstant.MACHINE_CODE, mCode); |
| | | } |
| | | todoQuery.endOr(); |
| | | } |
| | | } |
| | | } |
| | | if (Func.isNotEmpty(createTimeEnd)) { |
| | | todoQuery.taskCreatedBefore(DateUtil.toDate(createTimeEnd)); |
| | | //todoQuery.taskInProgressStartTimeBefore(DateUtil.toDate(createTimeEnd)); |
| | | |
| | | if (Func.isNotEmpty(queryVO.getCreateTimeBegin())) { |
| | | todoQuery.taskCreatedAfter(DateUtil.toDate(queryVO.getCreateTimeBegin())); |
| | | } |
| | | if (Func.isNotEmpty(keyword)) { |
| | | addKeywordCondition(todoQuery, keyword); |
| | | if (Func.isNotEmpty(queryVO.getCreateTimeEnd())) { |
| | | todoQuery.taskCreatedBefore(DateUtil.toDate(queryVO.getCreateTimeEnd())); |
| | | } |
| | | if (Func.isNotEmpty(queryVO.getKeyword())) { |
| | | addKeywordCondition(todoQuery, queryVO.getKeyword()); |
| | | } |
| | | |
| | | todoQuery.orderByTaskCreateTime().desc(); |
| | |
| | | if(Func.isNotEmpty(keyword)) { |
| | | String likeVal = "%" + keyword + "%"; |
| | | todoQuery.or(); |
| | | todoQuery.processVariableValueLike(FlowContants.TITLE,likeVal); |
| | | todoQuery.processVariableValueLike(FlowContants.PROCESS_NO, likeVal); |
| | | todoQuery.processVariableValueLike(FlowContants.MACHINE_CODE, likeVal); |
| | | todoQuery.processVariableValueLike(FlowContants.MACHINE_MODE, likeVal); |
| | | todoQuery.processVariableValueLike(FlowContants.PROCESS_NAME, likeVal); |
| | | todoQuery.processVariableValueLike(FlowContants.PROCESS_EDITION, likeVal); |
| | | todoQuery.processVariableValueLike(FlowContants.CRAFT_EDITION, likeVal); |
| | | todoQuery.processVariableValueLike(FlowVariableConstant.TITLE,likeVal); |
| | | todoQuery.processVariableValueLike(FlowVariableConstant.PROCESS_NO, likeVal); |
| | | todoQuery.processVariableValueLike(FlowVariableConstant.MACHINE_CODE, likeVal); |
| | | todoQuery.processVariableValueLike(FlowVariableConstant.MACHINE_MODE, likeVal); |
| | | todoQuery.processVariableValueLike(FlowVariableConstant.PROCESS_NAME, likeVal); |
| | | todoQuery.processVariableValueLike(FlowVariableConstant.PROCESS_EDITION, likeVal); |
| | | todoQuery.processVariableValueLike(FlowVariableConstant.CRAFT_EDITION, likeVal); |
| | | |
| | | todoQuery.processDefinitionNameLike(likeVal); |
| | | todoQuery.endOr(); |
| | |
| | | taskQuery.taskCreatedBefore(DateUtil.toDate(createTimeEnd.plusDays(1))); |
| | | } |
| | | if(Func.isNotEmpty(myProcessName)) { |
| | | taskQuery.processVariableValueEquals(FlowContants.MY_PROCESS_NAME, myProcessName); |
| | | taskQuery.processVariableValueEquals(FlowVariableConstant.MY_PROCESS_NAME, myProcessName); |
| | | } |
| | | |
| | | addKeywordCondition(taskQuery, keyword); |
| | |
| | | HistoricProcessInstanceQuery query = this.historyService.createHistoricProcessInstanceQuery().finished().includeProcessVariables(); |
| | | //.finished() // 只查询已完成的流程.unfinished() // 查询未完成的流程 |
| | | if(Func.isNotEmpty(myProcessName)) { |
| | | query.variableValueEquals(FlowContants.MY_PROCESS_NAME, myProcessName); |
| | | query.variableValueEquals(FlowVariableConstant.MY_PROCESS_NAME, myProcessName); |
| | | } |
| | | if(createTimeBegin!=null) { |
| | | query.startedAfter(DateUtil.toDate(createTimeBegin)); |
| | |
| | | if(Func.isNotEmpty(keyword)) { |
| | | String likeVal = "%" + keyword + "%"; |
| | | query.or(); |
| | | query.variableValueLike(FlowContants.TITLE,likeVal); |
| | | query.variableValueLike(FlowContants.PROCESS_NO, likeVal); |
| | | query.variableValueLike(FlowContants.MACHINE_CODE, likeVal); |
| | | query.variableValueLike(FlowContants.MACHINE_MODE, likeVal); |
| | | query.variableValueLike(FlowContants.PROCESS_NAME, likeVal); |
| | | query.variableValueLike(FlowContants.PROCESS_EDITION, likeVal); |
| | | query.variableValueLike(FlowContants.CRAFT_EDITION, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.TITLE,likeVal); |
| | | query.variableValueLike(FlowVariableConstant.PROCESS_NO, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.MACHINE_CODE, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.MACHINE_MODE, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.PROCESS_NAME, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.PROCESS_EDITION, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.CRAFT_EDITION, likeVal); |
| | | |
| | | query.endOr(); |
| | | } |
| | |
| | | HistoricProcessInstanceQuery query = this.historyService.createHistoricProcessInstanceQuery().finished().includeProcessVariables(); |
| | | //.finished() // 只查询已完成的流程.unfinished() // 查询未完成的流程 |
| | | |
| | | query.variableValueEquals(FlowContants.EXCEPTION, "1"); |
| | | query.variableValueEquals(FlowVariableConstant.EXCEPTION, "1"); |
| | | if(Func.isNotEmpty(myProcessName)) { |
| | | query.variableValueEquals(FlowContants.MY_PROCESS_NAME, myProcessName); |
| | | query.variableValueEquals(FlowVariableConstant.MY_PROCESS_NAME, myProcessName); |
| | | } |
| | | if(createTimeBegin!=null) { |
| | | query.startedAfter(DateUtil.toDate(createTimeBegin)); |
| | |
| | | if(Func.isNotEmpty(keyword)) { |
| | | String likeVal = "%" + keyword + "%"; |
| | | query.or(); |
| | | query.variableValueLike(FlowContants.TITLE,likeVal); |
| | | query.variableValueLike(FlowContants.PROCESS_NO, likeVal); |
| | | query.variableValueLike(FlowContants.MACHINE_CODE, likeVal); |
| | | query.variableValueLike(FlowContants.MACHINE_MODE, likeVal); |
| | | query.variableValueLike(FlowContants.PROCESS_NAME, likeVal); |
| | | query.variableValueLike(FlowContants.PROCESS_EDITION, likeVal); |
| | | query.variableValueLike(FlowContants.CRAFT_EDITION, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.TITLE,likeVal); |
| | | query.variableValueLike(FlowVariableConstant.PROCESS_NO, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.MACHINE_CODE, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.MACHINE_MODE, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.PROCESS_NAME, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.PROCESS_EDITION, likeVal); |
| | | query.variableValueLike(FlowVariableConstant.CRAFT_EDITION, likeVal); |
| | | |
| | | query.endOr(); |
| | | } |