| | |
| | | import org.springblade.core.mp.base.BaseServiceImpl; |
| | | import org.springblade.modules.application.wrapper.ApplicationWrapper; |
| | | import org.springblade.modules.enterprise.wrapper.EnterpriseWrapper; |
| | | import org.springblade.modules.evaluation.entity.EvaluationEntity; |
| | | import org.springblade.modules.evaluation.service.IEvaluationService; |
| | | import org.springblade.modules.pass.entity.PassEntity; |
| | | import org.springblade.modules.pass.service.IPassService; |
| | | import org.springblade.modules.reject.entity.RejectEntity; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | private final ISchemeService schemeService; |
| | | private final IGoodsService goodsService; |
| | | private final ICarService carService; |
| | | private final IPassService passService; |
| | | private final IEvaluationService evaluationService; |
| | | |
| | | private final IFlowService flowService; |
| | | private final TaskService taskService; |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Boolean completeTask(BladeFlow flow, ApplicationEntity applicationEntity, RejectEntity rejectEntity) { |
| | | String taskId = flow.getTaskId(); |
| | | |
| | |
| | | if (variables == null) { |
| | | variables = Kv.create(); |
| | | } |
| | | variables.put("suggestion",Func.toStr(applicationEntity.getSuggestion(),"")); |
| | | variables.put(ProcessConstant.SUGGESTION_KEY,applicationEntity.getIsSuggestion()); |
| | | variables.put(ProcessConstant.PASS_KEY, flow.isPass()); |
| | | // 完成任务 |
| | | taskService.complete(taskId, variables); |
| | |
| | | //改变业务状态 |
| | | entity.setStatus(10); |
| | | //生成通行证 |
| | | |
| | | |
| | | PassEntity passEntity = new PassEntity(); |
| | | passEntity.setNo(entity.getNo()); |
| | | passService.save(passEntity); |
| | | //添加评价 |
| | | EvaluationEntity evaluationEntity = new EvaluationEntity(); |
| | | evaluationEntity.setNo(entity.getNo()); |
| | | evaluationService.save(evaluationEntity); |
| | | } |
| | | } |
| | | updateById(entity); |
| | | boolean update = updateById(entity); |
| | | return update; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Boolean userCompleteTask(BladeFlow flow,ApplicationEntity applicationEntity, BasicInfoEntity basicInfoEntity, CarEntity carEntity, PlanEntity planEntity, SchemeEntity schemeEntity, GoodsEntity goodsEntity, RejectEntity rejectEntity) { |
| | | String taskId = flow.getTaskId(); |
| | | |
| | | Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); |
| | | |
| | | String processInstanceId = flow.getProcessInstanceId(); |
| | | String comment = Func.toStr(flow.getComment(), ProcessConstant.PASS_COMMENT); |
| | | // 增加评论 |
| | | if (StringUtil.isNoneBlank(processInstanceId, comment)) { |
| | | taskService.addComment(taskId, processInstanceId, comment); |
| | | } |
| | | // 创建变量 |
| | | Map<String, Object> variables = flow.getVariables(); |
| | | if (variables == null) { |
| | | variables = Kv.create(); |
| | | } |
| | | variables.put(ProcessConstant.SUGGESTION_KEY,applicationEntity.getIsSuggestion()); |
| | | variables.put(ProcessConstant.PASS_KEY, flow.isPass()); |
| | | |
| | | if (flow.isPass()&&applicationEntity.getIsSuggestion()){ |
| | | updateVoById(applicationEntity,basicInfoEntity,carEntity,planEntity,schemeEntity,goodsEntity); |
| | | } |
| | | |
| | | // 完成任务 |
| | | taskService.complete(taskId, variables); |
| | | return true; |
| | | } |
| | | |
| | |
| | | return baseMapper.getMaxNoEntity(); |
| | | } |
| | | |
| | | /** |
| | | * 判断是否包含最终节点且为倒数第二个节点 |
| | | * @param task |
| | | * @param definitionId |
| | | * @return |
| | | */ |
| | | public boolean getEndNode(Task task,String definitionId){ |
| | | boolean isEnd=false; |
| | | boolean isAuditTask2 = false; |
| | | BpmnModel bpmnModel = repositoryService.getBpmnModel(definitionId); |
| | | FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(task.getTaskDefinitionKey()); |
| | | List<SequenceFlow> outgoingFlows = flowNode.getOutgoingFlows(); |
| | | for (SequenceFlow outgoingFlow : outgoingFlows) { |
| | | FlowElement targetFlowElement = outgoingFlow.getTargetFlowElement(); |
| | | FlowElement sourceFlowElement = outgoingFlow.getSourceFlowElement(); |
| | | if (sourceFlowElement.getId().equals("auditTask_2")){ |
| | | isAuditTask2 = true; |
| | | } |
| | | if (targetFlowElement instanceof EndEvent){ |
| | | return true; |
| | | isEnd = true; |
| | | break; |
| | | } |
| | | } |
| | | return false; |
| | | return isEnd&&isAuditTask2; |
| | | } |
| | | } |