| | |
| | | package org.jeecg.modules.dncFlow.service.impl; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.google.common.collect.Lists; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.flowable.engine.TaskService; |
| | |
| | | import org.jeecg.modules.dncFlow.service.IToEquipmentTaskService; |
| | | import org.jeecg.modules.dncFlow.vo.AssignFlowTaskVo; |
| | | import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; |
| | | import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; |
| | | import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; |
| | | import org.jeecg.modules.flowable.apithird.service.FlowCommonService; |
| | | import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; |
| | |
| | | private IFlowTaskService flowTaskService; |
| | | @Autowired |
| | | private IDeviceTypeService deviceTypeService; |
| | | @Autowired |
| | | private IFlowMyBusinessService flowMyBusinessService; |
| | | |
| | | @Value("${securedoc.whether}") |
| | | private String whether; |
| | |
| | | //flowable处理 |
| | | FlowTaskVo flowTaskVo = new FlowTaskVo(); |
| | | BeanUtils.copyProperties(assignFlowTaskVo, flowTaskVo); |
| | | |
| | | List<FlowMyBusiness> businessList = flowMyBusinessService.list( |
| | | new QueryWrapper<FlowMyBusiness>() |
| | | .eq("process_instance_id", assignFlowTaskVo.getInstanceId()) |
| | | ); |
| | | if (businessList.isEmpty()) { |
| | | return false; |
| | | } |
| | | FlowMyBusiness flowMyBusiness = businessList.get(0); |
| | | List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); |
| | | if (todoUsers == null || !todoUsers.contains(user.getUsername())) { |
| | | return false; |
| | | } |
| | | |
| | | // 4. 认领任务(处理已被认领的情况) |
| | | String taskId = flowMyBusiness.getTaskId(); |
| | | Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); |
| | | if (task == null) { |
| | | return false; |
| | | } |
| | | if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) { |
| | | return false; |
| | | } |
| | | taskService.claim(taskId, user.getUsername()); |
| | | Map<String, Object> values=new HashMap<>(); |
| | | values.put("dataId", assignFlowTaskVo.getDataId()); |
| | | flowTaskVo.setTaskId(assignFlowTaskVo.getTaskId()); |
| | |
| | | List<TaskRequest> list = approveBatchRequest.getTaskArr(); |
| | | if(list == null || list.isEmpty()) |
| | | ExceptionCast.cast(CommonCode.INVALID_PARAM); |
| | | // list.forEach(item -> { |
| | | // AssignFileStream stream = new AssignFileStream(); |
| | | // stream.setApproveContent(approveBatchRequest.getApproveContent()); |
| | | // stream.setStatus(approveBatchRequest.getStatus()); |
| | | // boolean b = approveAssignFile(item.getId(), item.getBusinessKey(), stream); |
| | | // if(!b) |
| | | // ExceptionCast.cast(ActivitiCode.ACT_APPROVE_ERROR); |
| | | // }); |
| | | return synchronizedFlagService.updateFlag(1); |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | //开始工作流 |
| | | // private ProcessInstance startProcessInstance(AssignFileStream stream, List<String> userIdList) { |
| | | // String approveUsers = String.join(",", userIdList); |
| | | // Map<String, Object> avariableMap = new HashMap<>(); |
| | | // avariableMap.put(APPLY_VARIABLE, stream.getApplyUserId()); |
| | | // avariableMap.put(APPROVE_VARIABLE, approveUsers); |
| | | // ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(PROCESS_KEY, stream.getStreamId(), avariableMap); |
| | | // if (processInstance == null) { |
| | | // ExceptionCast.cast(ActivitiCode.ACT_APPROVE_USERS_NONE); |
| | | // } |
| | | // return processInstance; |
| | | // } |
| | | |
| | | //拾取任务 |
| | | private void completeTask(ProcessInstance processInstance, String userId) { |
| | | Task task = taskService.createTaskQuery().processDefinitionKey(PROCESS_KEY).taskAssignee(userId) |
| | |
| | | |
| | | @Override |
| | | public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { |
| | | return Lists.newArrayList("jeecg"); |
| | | return null; |
| | | } |
| | | } |