| | |
| | | import cn.gistack.flow.core.feign.IFlowClient; |
| | | import cn.gistack.flow.core.utils.FlowUtil; |
| | | import cn.gistack.flow.core.utils.TaskUtil; |
| | | import cn.gistack.nky.fegin.INkyClient; |
| | | import cn.gistack.sm.patrol.entity.PatrolRecord; |
| | | import cn.gistack.sm.patrol.entity.PatrolReport; |
| | | import cn.gistack.sm.patrol.entity.PatrolTask; |
| | |
| | | import cn.gistack.sm.patrol.util.EnhancementServicesTool; |
| | | import cn.gistack.sm.patrol.util.IdWorker; |
| | | import cn.gistack.sm.patrol.vo.BladeFlowTask; |
| | | import cn.gistack.sm.patrol.vo.PatrolTaskReport; |
| | | import cn.gistack.sm.patrol.vo.PatrolTaskVO; |
| | | import cn.gistack.sm.patrol.vo.TaskStatusCount; |
| | | import cn.gistack.sm.sjztmd.service.IWaterDataTermitesService; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.net.http.HttpRequest; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX; |
| | | |
| | | @Service |
| | | @AllArgsConstructor |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public class PatrolTaskServiceImpl extends BaseServiceImpl<PatrolTaskMapper, PatrolTask> implements IPatrolTaskService { |
| | | private final IFlowClient flowClient; |
| | | private final IPatrolRecordService patrolRecordService; |
| | | private final IPatrolReportService patrolReportService; |
| | | private final INkyClient nkyClient; |
| | | private final IWaterDataTermitesService waterDataTermitesService; |
| | | |
| | | /** |
| | | * 自定义分页查询 |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean startProcess(PatrolTask patrolTask) { |
| | | public PatrolTask startProcess(PatrolTask patrolTask) { |
| | | String businessTable = FlowUtil.getBusinessTable(ProcessConstant.PATROL_KEY); |
| | | if (Func.isEmpty(patrolTask.getId())) { |
| | | save(patrolTask); |
| | |
| | | } else { |
| | | updateById(patrolTask); |
| | | } |
| | | return true; |
| | | return patrolTask; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public boolean patrolCompleteTask(PatrolTask patrolTask,String currentUserId) { |
| | | @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(); |
| | |
| | | variables = Kv.create(); |
| | | } |
| | | variables.put(ProcessConstant.REPORT_KEY,patrolTask.getReport()); |
| | | variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, "1650048152667467777")); |
| | | variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser)); |
| | | // 完成任务 |
| | | flowClient.completeTask(taskId,processInstanceId,comment,variables); |
| | | saveReport(patrolTask); |
| | | //保存巡查记录 |
| | | 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()); |
| | | |
| | | boolean isReport = false; |
| | | List<PatrolReport> collect = bladeFlowTask.getPatrolReportList().stream().filter(report -> Func.equals(report.getStatus(), 2)).collect(Collectors.toList()); |
| | | if (collect.size()>0){ |
| | | if (StringUtil.isNoneBlank(bladeFlowTask.getTaskUser())){ |
| | | isReport = true; |
| | | } |
| | | //更新report表 |
| | | boolean update = patrolReportService.updateBatchById(bladeFlowTask.getPatrolReportList()); |
| | | |
| | | String taskId = bladeFlowTask.getTaskId(); |
| | | String processInstanceId = bladeFlowTask.getProcessInstanceId(); |
| | |
| | | variables.put(ProcessConstant.TOTECH_KEY,bladeFlowTask.getToTech()); |
| | | //完成任务 |
| | | flowClient.completeTask(taskId, processInstanceId, comment, variables); |
| | | return update; |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public PatrolTask customizeGetById(String businessId) { |
| | | public PatrolTaskVO customizeGetById(String businessId) { |
| | | return baseMapper.customizeGetById(businessId); |
| | | } |
| | | |
| | | @Override |
| | | public List<PatrolTask> getAll(PatrolTaskVO patrolTaskVO) { |
| | | return baseMapper.getAll(patrolTaskVO); |
| | | } |
| | | |
| | | @Override |
| | | 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 { |
| | | //获取水库巡查报表 |
| | | list = baseMapper.getReservoirReportPage(page,patrolTaskReport); |
| | | } |
| | | return page.setRecords(list); |
| | | } |
| | | |
| | | @Override |
| | | public List<PatrolTaskReport> getTaskReportList(PatrolTaskReport patrolTaskReport) { |
| | | List<PatrolTaskReport> list = new ArrayList(); |
| | | |
| | | //获取行政区划统计报表 |
| | | if (patrolTaskReport.getRegionFlag().equals("1")){ |
| | | list = baseMapper.getRegionReportList(patrolTaskReport); |
| | | }else { |
| | | //获取水库巡查报表 |
| | | list = baseMapper.getReservoirReportList(patrolTaskReport); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public List<TaskStatusCount> getTaskStatusCount(PatrolTaskVO patrolTaskVO) { |
| | | return baseMapper.getTaskStatusCount(patrolTaskVO); |
| | | } |
| | | |
| | | @Override |
| | | public List<TaskStatusCount> getTaskTypeCount(PatrolTaskVO patrolTaskVO) { |
| | | return baseMapper.getTaskTypeCount(patrolTaskVO); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<PatrolTaskReport> getTaskReportDetail(IPage<PatrolTaskReport> page, PatrolTaskReport patrolTaskReport) { |
| | | |
| | | List<PatrolTaskReport> list = new ArrayList(); |
| | | |
| | | list = baseMapper.getTaskReportDetailRegion(page,patrolTaskReport); |
| | | |
| | | return page.setRecords(list); |
| | | } |
| | | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void saveReport(PatrolTask patrolTask){ |
| | | //拿到当前任务下的异常巡查记录 |
| | | PatrolRecord patrolRecord = new PatrolRecord(); |