| | |
| | | import org.sxkj.gd.workorder.mapper.GdWorkOrderMapper; |
| | | import org.sxkj.gd.workorder.param.GdPatrolTaskAuditParam; |
| | | import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam; |
| | | import org.sxkj.gd.workorder.param.GdPatrolTaskPendingAcceptanceQueryParam; |
| | | import org.sxkj.gd.workorder.service.IGdManageDeviceService; |
| | | import org.sxkj.gd.workorder.service.IGdPatrolTaskService; |
| | | import org.sxkj.gd.workorder.service.IGdTaskResultService; |
| | |
| | | @Override |
| | | public IPage<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage<GdPatrolTaskVO> page, GdPatrolTaskPageParam gdPatrolTask) { |
| | | List<Long> deptList = new ArrayList<>(); |
| | | if (!AuthUtil.isAdministrator() || !AuthUtil.isAdmin()) { |
| | | if (!(AuthUtil.isAdministrator() || AuthUtil.isAdmin())) { |
| | | deptList = SysCache.getDeptChildIds(Long.valueOf(StringUtil.isBlank(AuthUtil.getDeptId()) ? "0" : AuthUtil.getDeptId())); |
| | | } |
| | | gdPatrolTask.setDeptList(deptList); |
| | |
| | | // 6. 判断是否审核成功,如果是,需要判断是否整个订单的子任务都审核成功了,除了被撤回和验收拒绝的 |
| | | if (auditStatus == 4) { |
| | | // 将审核后的任务信息推送到星图 |
| | | pushXingtuFlyTask(auditParam.getId()); |
| | | R pushResult = pushXingtuFlyTask(auditParam.getId()); |
| | | // 检查推送结果,如果失败则抛出异常回滚事务 |
| | | if (pushResult != null && !pushResult.isSuccess()) { |
| | | String errorMsg = pushResult.getMsg(); |
| | | log.error("推送星图飞行任务失败: {}", errorMsg); |
| | | throw new RuntimeException(errorMsg + ",请更改执行时间重新提交。"); |
| | | } |
| | | // 查询同一个工单下的所有子任务 |
| | | List<GdPatrolTaskEntity> subTasks = list(Wrappers.<GdPatrolTaskEntity>lambdaQuery() |
| | | .eq(GdPatrolTaskEntity::getWorkOrderId, task.getWorkOrderId())); |
| | |
| | | attach.setOriginalName(bladeFile.getOriginalName()); |
| | | attach.setAttachSize(reportFile.length()); |
| | | attach.setExtension(FileUtil.getFileExtension(reportFile.getName())); |
| | | attach.setResultType(JSON.toJSONString(resultType)); |
| | | attach.setResultType(resultType); |
| | | attach.setPatrolTaskId(String.valueOf(taskEntity != null ? taskEntity.getId() : null)); |
| | | Long createUser = taskEntity != null ? taskEntity.getCreateUser() : null; |
| | | Long updateUser = taskEntity != null ? taskEntity.getUpdateUser() : null; |
| | |
| | | // 1. 更新当前任务状态 |
| | | boolean updateResult = updateById(auditParam); |
| | | if (!updateResult) { |
| | | log.warn("更新任务失败,任务ID: {}"); |
| | | log.warn("更新任务失败,任务ID: {}", auditParam.getId()); |
| | | return false; |
| | | } |
| | | |
| | |
| | | GdPatrolTaskEntity patrolTaskEntity = Optional.ofNullable(getById(auditParam.getId())) |
| | | .orElseThrow(() -> new RuntimeException("任务不存在,任务ID: " + auditParam.getId())); |
| | | |
| | | // 3. 保存巡查工单流转 |
| | | saveWorkOrderFlow(patrolTaskEntity.getWorkOrderId(), PatrolTaskStatusEnum.PENDING_ACCEPTANCE, null, null); |
| | | // 3. 保存巡查工单流转(使用传入的实际状态) |
| | | PatrolTaskStatusEnum statusEnum = PatrolTaskStatusEnum.getByValue(auditParam.getTaskStatus()); |
| | | if (statusEnum != null) { |
| | | saveWorkOrderFlow(patrolTaskEntity.getId(), statusEnum, null, patrolTaskEntity.getAreaCode()); |
| | | } |
| | | |
| | | // 4. 查询同一个工单下的所有子任务 |
| | | List<GdPatrolTaskEntity> subTasks = list(Wrappers.<GdPatrolTaskEntity>lambdaQuery() |
| | |
| | | } |
| | | |
| | | /** |
| | | * 查询待验收状态的巡查任务列表(对外接口) |
| | | * |
| | | * @param queryParam 查询参数,包含任务名称和时间区间 |
| | | * @return 待验收状态的巡查任务列表 |
| | | */ |
| | | @Override |
| | | public List<GdPatrolTaskVO> selectPendingAcceptanceTasks(GdPatrolTaskPendingAcceptanceQueryParam queryParam) { |
| | | // 1. 参数校验:防止空指针 |
| | | if (queryParam == null) { |
| | | queryParam = new GdPatrolTaskPendingAcceptanceQueryParam(); |
| | | } |
| | | |
| | | // 2. 调用Mapper查询待验收状态的巡查任务 |
| | | List<GdPatrolTaskVO> pendingAcceptanceTasks = baseMapper.selectPendingAcceptanceTasks(queryParam); |
| | | |
| | | // 3. 返回查询结果 |
| | | return pendingAcceptanceTasks; |
| | | } |
| | | |
| | | /** |
| | | * 将区域编码转换为多级行政区划编码格式 |
| | | * |
| | | * @param areaCode 区域编码(如:360802) |
| | |
| | | try { |
| | | // 提取省、市、区三级编码 |
| | | String provinceCode = cleanCode.substring(0, 2) + "00"; // 省级编码(如:3600) |
| | | String cityCode = cleanCode.substring(0, 4) + "0"; // 市级编码(如:3608) |
| | | String cityCode = cleanCode.substring(0, 4); // 市级编码(如:3608) |
| | | String districtCode = cleanCode; // 区级编码(如:360802) |
| | | |
| | | return provinceCode + "," + cityCode + "," + districtCode; |