| | |
| | | private final INkyClient nkyClient; |
| | | private final IYwTermitesTaskService waterDataTermitesService; |
| | | |
| | | private final String PATROL_USER = "patrolUser"; |
| | | private final String TECH_USER = "techUser"; |
| | | private final String SUPERVISOR_USER = "supervisorUser"; |
| | | private final String ADMIN_USER = "adminUser"; |
| | | private final String DEPT_USER = "deptUser"; |
| | | |
| | | /** |
| | | * 自定义分页查询 |
| | | * |
| | | * @param page |
| | | * @param patrolTask |
| | | * @return |
| | |
| | | public IPage<PatrolTaskVO> selectPatrolTask(IPage<PatrolTaskVO> page, PatrolTaskVO patrolTask) { |
| | | // List<PatrolTaskVO> patrolTaskList = baseMapper.selectPatrolTask(page, patrolTask); |
| | | |
| | | List<PatrolTaskVO> patrolTaskList = baseMapper.selectPatrolTaskPage(page.getCurrent()-1,page.getSize(),patrolTask); |
| | | List<PatrolTaskVO> patrolTaskList = baseMapper.selectPatrolTaskPage(page.getCurrent() - 1, page.getSize(), patrolTask); |
| | | long total = baseMapper.getPatrolTaskTotal(patrolTask); |
| | | page.setRecords(patrolTaskList); |
| | | page.setTotal(total); |
| | |
| | | |
| | | /** |
| | | * 查询巡查人员统计数据信息 |
| | | * |
| | | * @param patrolTask |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 自定义编辑(空间坐标编辑) |
| | | * |
| | | * @param patrolTask |
| | | * @return |
| | | */ |
| | |
| | | enhancementServicesTool.resolveEntity(patrolTask); |
| | | Integer update = baseMapper.updatePatrolTask(patrolTask); |
| | | //返回 |
| | | return update>0?true:false; |
| | | return update > 0 ? true : false; |
| | | } |
| | | |
| | | /** |
| | | * 自定义添加 |
| | | * |
| | | * @param patrolTask |
| | | * @return |
| | | */ |
| | |
| | | // 新增 |
| | | Integer save = baseMapper.savePatrolTask(patrolTask); |
| | | //返回 |
| | | return save>0?true:false; |
| | | return save > 0 ? true : false; |
| | | } |
| | | |
| | | /** |
| | | * 自定义通过id查询 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | String businessTable = FlowUtil.getBusinessTable(ProcessConstant.PATROL_KEY); |
| | | if (Func.isEmpty(patrolTask.getId())) { |
| | | save(patrolTask); |
| | | |
| | | |
| | | // 启动流程 |
| | | // Kv variables = Kv.create() |
| | | // //设置创建人 |
| | | // .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserId()) |
| | | // //指定任务处理人 |
| | | // .set("taskUser", TaskUtil.getTaskUser(patrolTask.getToUserId())); |
| | | // R<BladeFlow> result = flowClient.startProcessInstanceById(patrolTask.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(patrolTask.getId())), variables); |
| | | |
| | | Kv variables = Kv.create() |
| | | //设置创建人 |
| | | .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserId()) |
| | | //指定巡查责任人 |
| | | .set(PATROL_USER, TaskUtil.getTaskUser(patrolTask.getToUserId())) |
| | | .set("taskUser", TaskUtil.getTaskUser(patrolTask.getToUserId())); |
| | | R<BladeFlow> result = flowClient.startProcessInstanceById(patrolTask.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(patrolTask.getId())), variables); |
| | | |
| | | if (result.isSuccess()) { |
| | | log.debug("流程已启动,流程ID:" + result.getData().getProcessInstanceId()); |
| | | // 返回流程id写入leave |
| | |
| | | return patrolTask; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean patrolCompleteTask(PatrolTaskVO patrolTask,String currentUserId,String taskUser) { |
| | | R<BladeFlow> res = flowClient.getBladeFlow(patrolTask.getId().toString(),currentUserId); |
| | | if (res.isSuccess()){ |
| | | BladeFlow flow = res.getData(); |
| | | String taskId = flow.getTaskId(); |
| | | String processInstanceId = patrolTask.getProcessInstanceId(); |
| | | // String comment = Func.toStr(flow.getComment(), ProcessConstant.PASS_COMMENT); |
| | | String comment = "完成"; |
| | | // 创建变量 |
| | | Map<String, Object> variables = flow.getVariables(); |
| | | if (variables == null) { |
| | | variables = Kv.create(); |
| | | } |
| | | variables.put(ProcessConstant.REPORT_KEY,patrolTask.getReport()); |
| | | variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser)); |
| | | // 完成任务 |
| | | flowClient.completeTask(taskId,processInstanceId,comment,variables); |
| | | //保存巡查记录 |
| | | patrolRecordService.saveBatch(patrolTask.getPatrolRecordList()); |
| | | //保存上报 |
| | | //停用 |
| | | // saveReport(patrolTask); |
| | | |
| | | |
| | | //查监测预警表,看是否有这个任务,有的话修改任务状态 |
| | | Boolean finishDamTask = nkyClient.finishTask(patrolTask.getId().toString()); |
| | | if (!finishDamTask){ |
| | | //查白蚁表,看是否有这个任务,有的话修改任务状态 |
| | | Boolean finishTermitesTask = waterDataTermitesService.finishTask(patrolTask.getId().toString()); |
| | | } |
| | | |
| | | return baseMapper.updateById(patrolTask) >0; |
| | | }else { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public boolean chargeCompletePerson(BladeFlowTask bladeFlowTask) { |
| | | //判断是否上报 |
| | | // boolean isReport = false; |
| | | // List<PatrolReport> collect = bladeFlowTask.getPatrolReportList().stream().filter(report -> Func.equals(report.getStatus(), 2)).collect(Collectors.toList()); |
| | | // if (collect.size()>0){ |
| | | // isReport = true; |
| | | // } |
| | | // //更新report表 |
| | | // boolean update = patrolReportService.updateBatchById(bladeFlowTask.getPatrolReportList()); |
| | | public boolean personCompleteTask(PatrolTaskVO patrolTaskVO, String currentUserId, String taskUser) { |
| | | |
| | | boolean isReport = false; |
| | | if (StringUtil.isNoneBlank(bladeFlowTask.getTaskUser())){ |
| | | isReport = true; |
| | | String taskId = patrolTaskVO.getFlowTaskId(); |
| | | String processInstanceId = patrolTaskVO.getProcessInstanceId(); |
| | | String comment = patrolTaskVO.getComment(); |
| | | |
| | | //保存巡查记录 |
| | | if (patrolTaskVO.getPatrolRecordList() != null && patrolTaskVO.getPatrolRecordList().size()>0){ |
| | | patrolRecordService.saveBatch(patrolTaskVO.getPatrolRecordList()); |
| | | } |
| | | |
| | | String taskId = bladeFlowTask.getTaskId(); |
| | | String processInstanceId = bladeFlowTask.getProcessInstanceId(); |
| | | String comment = "完成"; |
| | | // 创建变量 |
| | | Map<String, Object> variables = new HashMap<>(); |
| | | if (variables == null) { |
| | | variables = Kv.create(); |
| | | } |
| | | //指定下一个人 |
| | | variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, bladeFlowTask.getTaskUser())); |
| | | //指定是否上报 |
| | | variables.put(ProcessConstant.REPORT_KEY,isReport); |
| | | //指定是否上报给部门 |
| | | variables.put(ProcessConstant.TODEPT_KEY,bladeFlowTask.getToDept()); |
| | | //指定是否转交 |
| | | variables.put(ProcessConstant.TOTECH_KEY,bladeFlowTask.getToTech()); |
| | | //完成任务 |
| | | |
| | | //指定了人就是上报,没指定就表示已经处理了 |
| | | if (StringUtil.isNotBlank(taskUser)){ |
| | | variables.put("taskUser",TaskUtil.getTaskUser(taskUser)); |
| | | variables.put(ProcessConstant.REPORT_KEY,true); |
| | | }else{ |
| | | variables.put(ProcessConstant.REPORT_KEY,false); |
| | | |
| | | //查监测预警表,看是否有这个任务,有的话修改任务状态 |
| | | Boolean finishDamTask = nkyClient.finishTask(patrolTaskVO.getId().toString()); |
| | | if (!finishDamTask){ |
| | | //查白蚁表,看是否有这个任务,有的话修改任务状态 |
| | | Boolean finishTermitesTask = waterDataTermitesService.finishTask(patrolTaskVO.getId().toString()); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | flowClient.completeTask(taskId, processInstanceId, comment, variables); |
| | | return updateById(patrolTaskVO); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean patrolCompleteTask(PatrolTaskVO patrolTask, String currentUserId, String taskUser) { |
| | | R<BladeFlow> res = flowClient.getBladeFlow(patrolTask.getId().toString(), currentUserId); |
| | | if (res.isSuccess()) { |
| | | BladeFlow flow = res.getData(); |
| | | String taskId = flow.getTaskId(); |
| | | String processInstanceId = patrolTask.getProcessInstanceId(); |
| | | // String comment = patrolTask.getReport() ? "巡查任务发现问题" : "巡查任务完成,未发现问题"; |
| | | String comment = patrolTask.getComment(); |
| | | // 创建变量 |
| | | Map<String, Object> variables = flow.getVariables(); |
| | | if (variables == null) { |
| | | variables = Kv.create(); |
| | | } |
| | | //设置是否上报标识 |
| | | variables.put(ProcessConstant.REPORT_KEY, patrolTask.getReport()); |
| | | // variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser)); |
| | | variables.put(TECH_USER, TaskUtil.getTaskUser(taskUser)); |
| | | // 完成任务 |
| | | flowClient.completeTask(taskId, processInstanceId, comment, variables); |
| | | //保存巡查记录 |
| | | if (patrolTask.getPatrolRecordList() != null && patrolTask.getPatrolRecordList().size() > 0){ |
| | | patrolRecordService.saveBatch(patrolTask.getPatrolRecordList()); |
| | | } |
| | | |
| | | |
| | | |
| | | return baseMapper.updateById(patrolTask) > 0; |
| | | } else { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public boolean chargeCompletePerson(BladeFlowTask bladeFlowTask) { |
| | | // boolean isReport = false; |
| | | // if (StringUtil.isNoneBlank(bladeFlowTask.getTaskUser())){ |
| | | // isReport = true; |
| | | // } |
| | | // |
| | | // String taskId = bladeFlowTask.getTaskId(); |
| | | // String processInstanceId = bladeFlowTask.getProcessInstanceId(); |
| | | // String comment = "完成"; |
| | | // // 创建变量 |
| | | // Map<String, Object> variables = new HashMap<>(); |
| | | // if (variables == null) { |
| | | // variables = Kv.create(); |
| | | // } |
| | | // //指定下一个人 |
| | | // variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, bladeFlowTask.getTaskUser())); |
| | | // //指定是否上报 |
| | | // variables.put(ProcessConstant.REPORT_KEY,isReport); |
| | | // //指定是否上报给部门 |
| | | // variables.put(ProcessConstant.TODEPT_KEY,bladeFlowTask.getToDept()); |
| | | // //指定是否转交 |
| | | // variables.put(ProcessConstant.TOTECH_KEY,bladeFlowTask.getToTech()); |
| | | // //完成任务 |
| | | // flowClient.completeTask(taskId, processInstanceId, comment, variables); |
| | | // return true; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | String taskId = bladeFlowTask.getTaskId(); |
| | | String processInstanceId = bladeFlowTask.getProcessInstanceId(); |
| | | String comment = bladeFlowTask.getComment(); |
| | | |
| | | // 创建变量 |
| | | Map<String, Object> variables = new HashMap<>(); |
| | | if (variables == null) { |
| | | variables = Kv.create(); |
| | | } |
| | | |
| | | //默认不上报 |
| | | boolean isReport = false; |
| | | if (StringUtil.isNoneBlank(bladeFlowTask.getTaskUser())) { |
| | | //指定了下一个人,修改状态为上报 |
| | | isReport = true; |
| | | } |
| | | |
| | | //techPerson supervisorPerson adminPerson department |
| | | //获取当前节点 |
| | | BladeFlow currentNode = getFlowNode(processInstanceId, 1); |
| | | |
| | | switch (currentNode.getHistoryActivityId()) { |
| | | case "techPerson": |
| | | variables.put(bladeFlowTask.getToDept()?DEPT_USER:SUPERVISOR_USER,TaskUtil.getTaskUser(bladeFlowTask.getTaskUser())); |
| | | break; |
| | | case "supervisorPerson": |
| | | variables.put(bladeFlowTask.getToDept()?DEPT_USER:ADMIN_USER,TaskUtil.getTaskUser(bladeFlowTask.getTaskUser())); |
| | | break; |
| | | case "adminPerson": |
| | | variables.put(DEPT_USER,TaskUtil.getTaskUser(bladeFlowTask.getTaskUser())); |
| | | break; |
| | | case "department": |
| | | //当前节点为水行政部门,需要指定回复给谁 |
| | | //获取前一个节点 |
| | | BladeFlow beforeNode = getFlowNode(processInstanceId, 2); |
| | | String beforeId = beforeNode.getHistoryActivityId(); |
| | | if (beforeId.equals("techPerson")) { |
| | | //前一个节点是技术责任人 |
| | | variables.put(ProcessConstant.TOTECH_KEY, true); |
| | | }else if (beforeId.equals("supervisorPerson")){ |
| | | variables.put(ProcessConstant.TOSUPERVISOR_KEY, true); |
| | | }else if (beforeId.equals("adminPerson")){ |
| | | variables.put(ProcessConstant.TOADMIN_KEY, true); |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | variables.put(ProcessConstant.REPORT_KEY, isReport); |
| | | variables.put(ProcessConstant.TODEPT_KEY, bladeFlowTask.getToDept()); |
| | | flowClient.completeTask(taskId, processInstanceId, comment, variables); |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 获取节点信息,倒数第一个是自己,第二个是上一节点 |
| | | * |
| | | * @param processInstanceId |
| | | * @param i 倒数第几 |
| | | * @return |
| | | */ |
| | | private BladeFlow getFlowNode(String processInstanceId, int i) { |
| | | R<List<BladeFlow>> res = flowClient.historyFlowList(processInstanceId, "start", "finish"); |
| | | |
| | | if (res.isSuccess()) { |
| | | //历史流程 |
| | | List<BladeFlow> data = res.getData(); |
| | | |
| | | //size减1为当前节点,-2为上一节点 |
| | | BladeFlow bladeFlow = data.get(data.size() - i); |
| | | return bladeFlow; |
| | | } else { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public IPage<PatrolTaskReport> getTaskReportPage(IPage<PatrolTaskReport> page,PatrolTaskReport patrolTaskReport) { |
| | | List<PatrolTaskReport> list = new ArrayList<>(); |
| | | public IPage<PatrolTaskReport> getTaskReportPage(IPage<PatrolTaskReport> page, PatrolTaskReport patrolTaskReport) { |
| | | List<PatrolTaskReport> list = new ArrayList<>(); |
| | | |
| | | //获取行政区划统计报表 |
| | | if (patrolTaskReport.getRegionFlag().equals("1")){ |
| | | list = baseMapper.getRegionReportPage(page,patrolTaskReport); |
| | | }else { |
| | | if (patrolTaskReport.getRegionFlag().equals("1")) { |
| | | list = baseMapper.getRegionReportPage(page, patrolTaskReport); |
| | | } else { |
| | | //获取水库巡查报表 |
| | | list = baseMapper.getReservoirReportPage(page,patrolTaskReport); |
| | | list = baseMapper.getReservoirReportPage(page, patrolTaskReport); |
| | | } |
| | | return page.setRecords(list); |
| | | } |
| | |
| | | List<PatrolTaskReport> list = new ArrayList(); |
| | | |
| | | //获取行政区划统计报表 |
| | | if (patrolTaskReport.getRegionFlag().equals("1")){ |
| | | if (patrolTaskReport.getRegionFlag().equals("1")) { |
| | | list = baseMapper.getRegionReportList(patrolTaskReport); |
| | | }else { |
| | | } else { |
| | | //获取水库巡查报表 |
| | | list = baseMapper.getReservoirReportList(patrolTaskReport); |
| | | } |
| | |
| | | |
| | | TaskStatus taskStatus = baseMapper.getTaskStatus(patrolTaskVO); |
| | | |
| | | TaskStatusCount unfinished = new TaskStatusCount("未完成","1",taskStatus.getUnfinished()); |
| | | TaskStatusCount processing = new TaskStatusCount("进行中","2",taskStatus.getProcessing()); |
| | | TaskStatusCount finished = new TaskStatusCount("已完成","3",taskStatus.getFinished()); |
| | | TaskStatusCount all = new TaskStatusCount("全部","",taskStatus.getTotal()); |
| | | TaskStatusCount unfinished = new TaskStatusCount("未完成", "1", taskStatus.getUnfinished()); |
| | | TaskStatusCount processing = new TaskStatusCount("进行中", "2", taskStatus.getProcessing()); |
| | | TaskStatusCount finished = new TaskStatusCount("已完成", "3", taskStatus.getFinished()); |
| | | TaskStatusCount all = new TaskStatusCount("全部", "", taskStatus.getTotal()); |
| | | |
| | | list.add(unfinished); |
| | | list.add(processing); |
| | |
| | | return taskStatus; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<TaskStatusCount> getTaskTypeCount(PatrolTaskVO patrolTaskVO) { |
| | | return baseMapper.getTaskTypeCount(patrolTaskVO); |
| | |
| | | |
| | | List<PatrolTaskReport> list = new ArrayList(); |
| | | |
| | | list = baseMapper.getTaskReportDetailRegion(page,patrolTaskReport); |
| | | list = baseMapper.getTaskReportDetailRegion(page, patrolTaskReport); |
| | | |
| | | return page.setRecords(list); |
| | | } |
| | | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void saveReport(PatrolTask patrolTask){ |
| | | public void saveReport(PatrolTask patrolTask) { |
| | | //拿到当前任务下的异常巡查记录 |
| | | PatrolRecord patrolRecord = new PatrolRecord(); |
| | | patrolRecord.setTaskId(patrolTask.getId().toString()); |
| | |
| | | List<PatrolRecord> list = patrolRecordService.list(Condition.getQueryWrapper(patrolRecord)); |
| | | |
| | | //向上报表中添加数据 |
| | | list.forEach(record->{ |
| | | list.forEach(record -> { |
| | | PatrolReport patrolReport = new PatrolReport(); |
| | | patrolReport.setContent(record.getContent()); |
| | | patrolReport.setImages(record.getImages()); |