| | |
| | | import org.sxkj.gd.workorder.enums.WorkOrderTypeEnum; |
| | | import org.sxkj.gd.workorder.excel.GdPatrolTaskExcel; |
| | | import org.sxkj.gd.workorder.mapper.GdPatrolTaskMapper; |
| | | 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.service.IGdManageDeviceService; |
| | |
| | | private JianXingtuApiService jianXingtuApiService; |
| | | @Autowired |
| | | private IGdManageDeviceService gdManageDeviceService; |
| | | @Autowired |
| | | private GdWorkOrderMapper gdWorkOrderMapper; |
| | | |
| | | @Override |
| | | public IPage<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage<GdPatrolTaskVO> page, GdPatrolTaskPageParam gdPatrolTask) { |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean savePatrolTask(List<GdPatrolTaskEntity> taskEntityList) { |
| | | // 参数校验:防止空指针 |
| | | if (taskEntityList == null || taskEntityList.isEmpty()) { |
| | | throw new RuntimeException("任务列表不能为空"); |
| | | } |
| | | |
| | | // 获取第一个任务的工单ID |
| | | Long workOrderId = taskEntityList.get(0).getWorkOrderId(); |
| | | if (workOrderId == null) { |
| | | throw new RuntimeException("工单ID不能为空"); |
| | | } |
| | | |
| | | // 查询工单信息 |
| | | GdWorkOrderEntity gdWorkOrderEntity = gdWorkOrderMapper.selectById(workOrderId); |
| | | if (gdWorkOrderEntity == null) { |
| | | throw new RuntimeException("工单不存在,工单ID: " + workOrderId); |
| | | } |
| | | |
| | | // 更新流程节点 |
| | | for (GdPatrolTaskEntity gdPatrolTaskEntity : taskEntityList) { |
| | | if (gdPatrolTaskEntity == null) { |
| | | log.warn("跳过空任务对象"); |
| | | continue; |
| | | } |
| | | |
| | | // 设置航线ID |
| | | gdPatrolTaskEntity.setAirlineId(gdPatrolTaskEntity.getPatrolRouteUrl()); |
| | | // 生成巡查任务编号 |
| | |
| | | String timestamp = OrderNumUtils.initOrderNum(WordOrderConstant.PATROL_TASK_KEY); |
| | | gdPatrolTaskEntity.setTaskNo(WordOrderConstant.PATROL_TASK_PREFIX + timestamp); |
| | | } |
| | | |
| | | // 从工单实体中获取区域编码,防止空指针 |
| | | String areaCode = gdWorkOrderEntity.getAreaCode(); |
| | | gdPatrolTaskEntity.setAreaCode(areaCode != null ? areaCode : ""); |
| | | // 设置初始状态为待签收(对应流程图:等待接单) |
| | | gdPatrolTaskEntity.setTaskStatus(PatrolTaskStatusEnum.PENDING_SIGNING.getValue()); |
| | | |
| | |
| | | gdWorkOrderFlowEntity.setFlowDesc(PatrolTaskStatusEnum.PENDING_SIGNING.getStageDesc()); |
| | | gdWorkOrderFlowEntity.setOperator(StringUtil.isBlank(AuthUtil.getNickName()) ? "系统" : AuthUtil.getNickName()); |
| | | gdWorkOrderFlowEntity.setType(WorkOrderTypeEnum.PATROL_TASK.getValue()); |
| | | gdWorkOrderFlowEntity.setAreaCode(gdPatrolTaskEntity.getAreaCode()); |
| | | // 使用局部变量areaCode,防止空指针 |
| | | gdWorkOrderFlowEntity.setAreaCode(areaCode != null ? areaCode : ""); |
| | | gdWorkOrderFlowEntity.setCreateDept(Long.valueOf(StringUtil.isBlank(AuthUtil.getDeptId()) ? "0" : AuthUtil.getDeptId())); |
| | | boolean save1 = gdWorkOrderFlowService.save(gdWorkOrderFlowEntity); |
| | | if (!save1) { |
| | |
| | | |
| | | /** |
| | | * 将区域编码转换为多级行政区划编码格式 |
| | | * |
| | | * |
| | | * @param areaCode 区域编码(如:360802) |
| | | * @return 多级行政区划编码,格式为 "省编码,市编码,区编码"(如:"3600,3608,360802") |
| | | */ |