| | |
| | | import com.alibaba.fastjson.TypeReference; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.sxkj.gd.workorder.dto.GdTaskResultDTO; |
| | | import org.sxkj.gd.workorder.entity.GdDeviceCallDetailEntity; |
| | | import org.sxkj.gd.workorder.entity.GdDeviceCallEntity; |
| | |
| | | return page.setRecords(baseMapper.selectGdTaskResultPage(page, gdTaskResult)); |
| | | } |
| | | |
| | | /** |
| | | * 根据巡查任务ID查询成果列表 |
| | | * |
| | | * @param patrolTaskId 巡查任务ID |
| | | * @param attachmentTypes 附件类型列表(可选,为null或空时查询全部) |
| | | * @return 成果列表 |
| | | */ |
| | | @Override |
| | | public List<GdTaskResultVO> listByPatrolTaskId(Long patrolTaskId) { |
| | | List<GdTaskResultVO> gdTaskResultVOS = baseMapper.selectGdTaskResultListByPatrolTaskId(patrolTaskId); |
| | | public List<GdTaskResultVO> listByPatrolTaskId(Long patrolTaskId, List<Integer> attachmentTypes) { |
| | | // 步骤1:查询成果列表 |
| | | List<GdTaskResultVO> gdTaskResultVOS = baseMapper.selectGdTaskResultListByPatrolTaskId(patrolTaskId, attachmentTypes); |
| | | // 步骤2:处理URL转义字符 |
| | | for (GdTaskResultVO gdTaskResultVO : gdTaskResultVOS) { |
| | | gdTaskResultVO.setResultUrl(unescapeUrl(gdTaskResultVO.getResultUrl())); |
| | | } |
| | |
| | | * 保存普通成果数据(dateType != 4) |
| | | * |
| | | * @param gdTaskResults 成果DTO列表 |
| | | * @return 保存成功后的成果ID列表 |
| | | */ |
| | | @Override |
| | | public List<Long> batchSaveWithIds(List<GdTaskResultDTO> gdTaskResults) { |
| | | // 步骤1:转换DTO为实体 |
| | | List<GdTaskResultEntity> gdTaskResultEntities = GdTaskResultWrapper.build().listEntity(gdTaskResults); |
| | | |
| | | // 步骤2:处理每个实体的属性 |
| | | gdTaskResultEntities.forEach(gdTaskResult -> { |
| | | String processedAreaCode = HeaderUtils.processAreaCode(gdTaskResult.getAreaCode()); |
| | | gdTaskResult.setAreaCode(processedAreaCode); |
| | | // 如果resultCode为空,生成时间戳作为默认值 |
| | | if (StringUtil.isEmpty(gdTaskResult.getResultCode())) { |
| | | gdTaskResult.setResultCode(String.valueOf(System.currentTimeMillis())); |
| | | } |
| | | if (gdTaskResult.getShootTime() == null) { |
| | | gdTaskResult.setShootTime(new Date()); |
| | | } |
| | | gdTaskResult.setStatus(0); |
| | | gdTaskResult.setUpdateTime(new Date()); |
| | | gdTaskResult.setCreateTime(new Date()); |
| | | gdTaskResult.setIsDeleted(0); |
| | | gdTaskResult.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); |
| | | gdTaskResult.setUpdateUser(AuthUtil.getUserId()); |
| | | gdTaskResult.setDistributeStatus(0); |
| | | }); |
| | | |
| | | // 步骤3:批量插入数据 |
| | | int insertCount = baseMapper.insertBatch(gdTaskResultEntities); |
| | | |
| | | // 步骤4:收集并返回保存后的ID列表 |
| | | return gdTaskResultEntities.stream() |
| | | .map(GdTaskResultEntity::getId) |
| | | .filter(Objects::nonNull) |
| | | .collect(Collectors.toList()); |
| | | } |
| | | |
| | | /** |
| | | * 保存普通成果数据(dateType != 4) |
| | | * |
| | | * @param gdTaskResults 成果DTO列表 |
| | | */ |
| | | private void saveNormalTaskResults(List<GdTaskResultDTO> gdTaskResults) { |
| | | List<GdTaskResultEntity> gdTaskResultEntities = GdTaskResultWrapper.build().listEntity(gdTaskResults); |