| | |
| | | package com.java110.common.smo.impl; |
| | | |
| | | |
| | | import com.java110.core.base.smo.BaseServiceSMO; |
| | | import com.java110.dto.PageDto; |
| | | import com.java110.dto.allocationStorehouse.AllocationStorehouseDto; |
| | | import com.java110.dto.allocationStorehouseApply.AllocationStorehouseApplyDto; |
| | | import com.java110.dto.workflow.WorkflowDto; |
| | | import com.java110.entity.audit.AuditUser; |
| | | import com.java110.intf.common.IAllocationStorehouseUserInnerServiceSMO; |
| | | import com.java110.intf.common.IWorkflowInnerServiceSMO; |
| | | import com.java110.intf.store.IAllocationStorehouseInnerServiceSMO; |
| | | import com.java110.intf.store.IContractInnerServiceSMO; |
| | | import com.java110.intf.store.IAllocationStorehouseApplyInnerServiceSMO; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.StringUtil; |
| | | import org.activiti.engine.HistoryService; |
| | |
| | | private RuntimeService runtimeService; |
| | | |
| | | @Autowired |
| | | private TaskService taskService; |
| | | |
| | | @Autowired |
| | | private IAllocationStorehouseInnerServiceSMO allocationStorehouseInnerServiceSMOImpl; |
| | | private IAllocationStorehouseApplyInnerServiceSMO allocationStorehouseApplyInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IWorkflowInnerServiceSMO workflowInnerServiceSMOImpl; |
| | | |
| | | |
| | | /** |
| | | * 启动流程 |
| | | * |
| | | * @return |
| | | */ |
| | | public AllocationStorehouseDto startProcess(@RequestBody AllocationStorehouseDto allocationStorehouseDto) { |
| | | public AllocationStorehouseApplyDto startProcess(@RequestBody AllocationStorehouseApplyDto allocationStorehouseApplyDto) { |
| | | //将信息加入map,以便传入流程中 |
| | | Map<String, Object> variables = new HashMap<String, Object>(); |
| | | variables.put("allocationStorehouseDto", allocationStorehouseDto); |
| | | variables.put("userId", allocationStorehouseDto.getCurrentUserId()); |
| | | variables.put("startUserId", allocationStorehouseDto.getCurrentUserId()); |
| | | variables.put("allocationStorehouseApplyDto", allocationStorehouseApplyDto); |
| | | variables.put("userId", allocationStorehouseApplyDto.getCurrentUserId()); |
| | | variables.put("startUserId", allocationStorehouseApplyDto.getCurrentUserId()); |
| | | //开启流程 |
| | | ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(getWorkflowDto(allocationStorehouseDto.getStoreId()), allocationStorehouseDto.getAsId(), variables); |
| | | ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(getWorkflowDto(allocationStorehouseApplyDto.getStoreId()), allocationStorehouseApplyDto.getApplyId(), variables); |
| | | //将得到的实例流程id值赋给之前设置的变量 |
| | | String processInstanceId = processInstance.getId(); |
| | | // System.out.println("流程开启成功.......实例流程id:" + processInstanceId); |
| | | |
| | | allocationStorehouseDto.setProcessInstanceId(processInstanceId); |
| | | allocationStorehouseApplyDto.setProcessInstanceId(processInstanceId); |
| | | |
| | | return allocationStorehouseDto; |
| | | return allocationStorehouseApplyDto; |
| | | |
| | | } |
| | | |
| | |
| | | * |
| | | * @param user 用户信息 |
| | | */ |
| | | public List<AllocationStorehouseDto> getUserTasks(@RequestBody AuditUser user) { |
| | | public List<AllocationStorehouseApplyDto> getUserTasks(@RequestBody AuditUser user) { |
| | | TaskService taskService = processEngine.getTaskService(); |
| | | TaskQuery query = taskService.createTaskQuery().processDefinitionKey(getWorkflowDto(user.getStoreId())); |
| | | query.taskAssignee(user.getUserId()); |
| | |
| | | list = query.list(); |
| | | } |
| | | |
| | | List<String> asIds = new ArrayList<>(); |
| | | List<String> appIyIds = new ArrayList<>(); |
| | | Map<String, String> taskBusinessKeyMap = new HashMap<>(); |
| | | for (Task task : list) { |
| | | String processInstanceId = task.getProcessInstanceId(); |
| | |
| | | ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); |
| | | //4.使用流程实例对象获取BusinessKey |
| | | String business_key = pi.getBusinessKey(); |
| | | asIds.add(business_key); |
| | | appIyIds.add(business_key); |
| | | taskBusinessKeyMap.put(business_key, task.getId()); |
| | | } |
| | | |
| | | if (asIds == null || asIds.size() == 0) { |
| | | if (appIyIds == null || appIyIds.size() == 0) { |
| | | return new ArrayList<>(); |
| | | } |
| | | |
| | | //查询 投诉信息 |
| | | AllocationStorehouseDto allocationStorehouseDto = new AllocationStorehouseDto(); |
| | | allocationStorehouseDto.setStoreId(user.getStoreId()); |
| | | allocationStorehouseDto.setAsIds(asIds.toArray(new String[asIds.size()])); |
| | | List<AllocationStorehouseDto> tmpAllocationStorehouseDtos = allocationStorehouseInnerServiceSMOImpl.queryAllocationStorehouses(allocationStorehouseDto); |
| | | |
| | | for (AllocationStorehouseDto tmpAllocationStorehouseDto : tmpAllocationStorehouseDtos) { |
| | | tmpAllocationStorehouseDto.setTaskId(taskBusinessKeyMap.get(tmpAllocationStorehouseDto.getAsId())); |
| | | AllocationStorehouseApplyDto allocationStorehouseApplyDto = new AllocationStorehouseApplyDto(); |
| | | allocationStorehouseApplyDto.setStoreId(user.getStoreId()); |
| | | allocationStorehouseApplyDto.setApplyIds(appIyIds.toArray(new String[appIyIds.size()])); |
| | | List<AllocationStorehouseApplyDto> tmpAllocationStorehouseApplyDtos = allocationStorehouseApplyInnerServiceSMOImpl.queryAllocationStorehouseApplys(allocationStorehouseApplyDto); |
| | | for (AllocationStorehouseApplyDto tmpAllocationStorehouseApplyDto : tmpAllocationStorehouseApplyDtos) { |
| | | tmpAllocationStorehouseApplyDto.setTaskId(taskBusinessKeyMap.get(tmpAllocationStorehouseApplyDto.getApplyId())); |
| | | } |
| | | return tmpAllocationStorehouseDtos; |
| | | return tmpAllocationStorehouseApplyDtos; |
| | | } |
| | | |
| | | public boolean agreeCompleteTask(@RequestBody AllocationStorehouseDto allocationStorehouseDto) { |
| | | public boolean agreeCompleteTask(@RequestBody AllocationStorehouseApplyDto allocationStorehouseApplyDto) { |
| | | TaskService taskService = processEngine.getTaskService(); |
| | | Map<String, Object> variables = new HashMap<String, Object>(); |
| | | variables.put("auditCode", allocationStorehouseDto.getAuditCode()); |
| | | taskService.complete(allocationStorehouseDto.getTaskId(), variables); |
| | | variables.put("auditCode", allocationStorehouseApplyDto.getAuditCode()); |
| | | taskService.complete(allocationStorehouseApplyDto.getTaskId(), variables); |
| | | return true; |
| | | } |
| | | |
| | | public boolean refuteCompleteTask(@RequestBody AllocationStorehouseDto allocationStorehouseDto) { |
| | | public boolean refuteCompleteTask(@RequestBody AllocationStorehouseApplyDto allocationStorehouseApplyDto) { |
| | | TaskService taskService = processEngine.getTaskService(); |
| | | Map<String, Object> variables = new HashMap<String, Object>(); |
| | | variables.put("auditCode", allocationStorehouseDto.getAuditCode()); |
| | | taskService.complete(allocationStorehouseDto.getTaskId(), variables); |
| | | variables.put("auditCode", allocationStorehouseApplyDto.getAuditCode()); |
| | | taskService.complete(allocationStorehouseApplyDto.getTaskId(), variables); |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 审核 当前任务 |
| | | * |
| | | * @param allocationStorehouseDto 资源订单 |
| | | * @param allocationStorehouseApplyDto 资源订单 |
| | | * @return |
| | | */ |
| | | public boolean complete(@RequestBody AllocationStorehouseDto allocationStorehouseDto) { |
| | | public boolean complete(@RequestBody AllocationStorehouseApplyDto allocationStorehouseApplyDto) { |
| | | TaskService taskService = processEngine.getTaskService(); |
| | | |
| | | taskService.complete(allocationStorehouseDto.getTaskId()); |
| | | taskService.complete(allocationStorehouseApplyDto.getTaskId()); |
| | | |
| | | |
| | | return true; |
| | |
| | | //开启流程 |
| | | //WorkflowDto.DEFAULT_PROCESS + workflowDto.getFlowId() |
| | | WorkflowDto workflowDto = new WorkflowDto(); |
| | | workflowDto.setFlowType(WorkflowDto.FLOW_TYPE_CONTRACT_APPLY); |
| | | workflowDto.setFlowType(WorkflowDto.FLOW_TYPE_ALLOCATION_STOREHOUSE); |
| | | workflowDto.setStoreId(storeId); |
| | | List<WorkflowDto> workflowDtos = workflowInnerServiceSMOImpl.queryWorkflows(workflowDto); |
| | | Assert.listOnlyOne(workflowDtos, "未找到 投诉建议流程或找到多条,请在物业账号系统管理下流程管理中配置流程"); |
| | |
| | | * |
| | | * @param user 用户信息 |
| | | */ |
| | | public List<AllocationStorehouseDto> getUserHistoryTasks(@RequestBody AuditUser user) { |
| | | public List<AllocationStorehouseApplyDto> getUserHistoryTasks(@RequestBody AuditUser user) { |
| | | HistoryService historyService = processEngine.getHistoryService(); |
| | | |
| | | HistoricTaskInstanceQuery historicTaskInstanceQuery = historyService.createHistoricTaskInstanceQuery() |
| | |
| | | list = query.list(); |
| | | } |
| | | |
| | | List<String> asIds = new ArrayList<>(); |
| | | List<String> appIyIds = new ArrayList<>(); |
| | | Map<String, String> taskBusinessKeyMap = new HashMap<>(); |
| | | |
| | | for (HistoricTaskInstance task : list) { |
| | |
| | | HistoricProcessInstance pi = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); |
| | | //4.使用流程实例对象获取BusinessKey |
| | | String business_key = pi.getBusinessKey(); |
| | | asIds.add(business_key); |
| | | appIyIds.add(business_key); |
| | | taskBusinessKeyMap.put(business_key, task.getId()); |
| | | } |
| | | |
| | | //查询 投诉信息 |
| | | AllocationStorehouseDto allocationStorehouseDto = new AllocationStorehouseDto(); |
| | | allocationStorehouseDto.setStoreId(user.getStoreId()); |
| | | allocationStorehouseDto.setAsIds(asIds.toArray(new String[asIds.size()])); |
| | | List<AllocationStorehouseDto> tmpAllocationStorehouseDtos = allocationStorehouseInnerServiceSMOImpl.queryAllocationStorehouses(allocationStorehouseDto); |
| | | AllocationStorehouseApplyDto allocationStorehouseApplyDto = new AllocationStorehouseApplyDto(); |
| | | allocationStorehouseApplyDto.setStoreId(user.getStoreId()); |
| | | allocationStorehouseApplyDto.setApplyIds(appIyIds.toArray(new String[appIyIds.size()])); |
| | | List<AllocationStorehouseApplyDto> tmpAllocationStorehouseApplyDtos = allocationStorehouseApplyInnerServiceSMOImpl.queryAllocationStorehouseApplys(allocationStorehouseApplyDto); |
| | | |
| | | for (AllocationStorehouseDto tmpAllocationStorehouseDto : tmpAllocationStorehouseDtos) { |
| | | tmpAllocationStorehouseDto.setTaskId(taskBusinessKeyMap.get(tmpAllocationStorehouseDto.getAsId())); |
| | | for (AllocationStorehouseApplyDto tmpAllocationStorehouseApplyDto : tmpAllocationStorehouseApplyDtos) { |
| | | tmpAllocationStorehouseApplyDto.setTaskId(taskBusinessKeyMap.get(tmpAllocationStorehouseApplyDto.getApplyId())); |
| | | } |
| | | return tmpAllocationStorehouseDtos; |
| | | return tmpAllocationStorehouseApplyDtos; |
| | | } |
| | | |
| | | |
| | | public boolean completeTask(@RequestBody AllocationStorehouseDto allocationStorehouseDto) { |
| | | public boolean completeTask(@RequestBody AllocationStorehouseApplyDto allocationStorehouseApplyDto) { |
| | | TaskService taskService = processEngine.getTaskService(); |
| | | Task task = taskService.createTaskQuery().taskId(allocationStorehouseDto.getTaskId()).singleResult(); |
| | | Task task = taskService.createTaskQuery().taskId(allocationStorehouseApplyDto.getTaskId()).singleResult(); |
| | | String processInstanceId = task.getProcessInstanceId(); |
| | | Authentication.setAuthenticatedUserId(allocationStorehouseDto.getCurrentUserId()); |
| | | taskService.addComment(allocationStorehouseDto.getTaskId(), processInstanceId, allocationStorehouseDto.getAuditMessage()); |
| | | Authentication.setAuthenticatedUserId(allocationStorehouseApplyDto.getCurrentUserId()); |
| | | taskService.addComment(allocationStorehouseApplyDto.getTaskId(), processInstanceId, allocationStorehouseApplyDto.getAuditMessage()); |
| | | Map<String, Object> variables = new HashMap<String, Object>(); |
| | | variables.put("auditCode", allocationStorehouseDto.getAuditCode()); |
| | | variables.put("currentUserId", allocationStorehouseDto.getCurrentUserId()); |
| | | variables.put("flag", "1200".equals(allocationStorehouseDto.getAuditCode()) ? "false" : "true"); |
| | | variables.put("startUserId", allocationStorehouseDto.getStartUserId()); |
| | | taskService.complete(allocationStorehouseDto.getTaskId(), variables); |
| | | variables.put("auditCode", allocationStorehouseApplyDto.getAuditCode()); |
| | | variables.put("currentUserId", allocationStorehouseApplyDto.getCurrentUserId()); |
| | | variables.put("flag", "1200".equals(allocationStorehouseApplyDto.getAuditCode()) ? "false" : "true"); |
| | | variables.put("startUserId", allocationStorehouseApplyDto.getStartUserId()); |
| | | taskService.complete(allocationStorehouseApplyDto.getTaskId(), variables); |
| | | |
| | | ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); |
| | | if (pi == null) { |