|
|
@@ -17,12 +17,10 @@ import com.zksy.base.mapper.*;
|
|
|
import com.zksy.base.service.EquipmentBaseService;
|
|
|
import com.zksy.common.exception.ServiceException;
|
|
|
import com.zksy.manhole.dto.in.EquipmentCountByTypeInDTO;
|
|
|
+import com.zksy.manhole.dto.in.EquipmentExportInDTO;
|
|
|
import com.zksy.manhole.dto.in.ManholeDeviceListInDTO;
|
|
|
import com.zksy.manhole.dto.in.ManholeDevicePageInDTO;
|
|
|
-import com.zksy.manhole.dto.out.EquipmentBaseOutDTO;
|
|
|
-import com.zksy.manhole.dto.out.EquipmentCountByTypeOutDTO;
|
|
|
-import com.zksy.manhole.dto.out.EquipmentStatusOutDTO;
|
|
|
-import com.zksy.manhole.dto.out.ManholeDataOutDTO;
|
|
|
+import com.zksy.manhole.dto.out.*;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -673,4 +671,62 @@ public class EquipmentBaseServiceImpl extends ServiceImpl<EquipmentBaseMapper, E
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 导出设备明细数据
|
|
|
+ * @param inDTO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<EquipmentExportOutDTO> exportEquipmentDetail(EquipmentExportInDTO inDTO) {
|
|
|
+ log.info("导出设备明细数据-入参:{}", inDTO);
|
|
|
+ LambdaQueryWrapper<EquipmentBase> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(StringUtils.isNotEmpty(inDTO.getEquipmentTypeId()),
|
|
|
+ EquipmentBase::getEquipmentTypeId, inDTO.getEquipmentTypeId())
|
|
|
+ .orderByDesc(EquipmentBase::getCreateTime);
|
|
|
+ List<EquipmentBase> equipmentList = this.list(queryWrapper);
|
|
|
+ if(CollUtil.isEmpty(equipmentList)){
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ // 一次性查询所有设备类别
|
|
|
+ List<String> typeIds = equipmentList.stream()
|
|
|
+ .map(EquipmentBase::getEquipmentTypeId)
|
|
|
+ .filter(StringUtils::isNotEmpty)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<String, String> typeNameMap = new HashMap<>();
|
|
|
+ if(CollUtil.isNotEmpty(typeIds)){
|
|
|
+ List<EquipmentType> typeList = equipmentTypeMapper.selectBatchIds(typeIds);
|
|
|
+ typeNameMap = typeList.stream()
|
|
|
+ .collect(Collectors.toMap(EquipmentType::getTypeId, EquipmentType::getTypeName, (k1, k2) -> k1));
|
|
|
+ }
|
|
|
+ // 一次性查询所有设备状态
|
|
|
+ List<String> equipmentIds = equipmentList.stream()
|
|
|
+ .map(EquipmentBase::getEquipmentId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<String, EquipmentStatus> statusMap = new HashMap<>();
|
|
|
+ if(CollUtil.isNotEmpty(equipmentIds)){
|
|
|
+ List<EquipmentStatus> statusList = equipmentStatusMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<EquipmentStatus>()
|
|
|
+ .in(EquipmentStatus::getEquipmentId, equipmentIds));
|
|
|
+ statusMap = statusList.stream()
|
|
|
+ .collect(Collectors.toMap(EquipmentStatus::getEquipmentId, Function.identity(), (k1, k2) -> k1));
|
|
|
+ }
|
|
|
+ // 组装导出数据
|
|
|
+ List<EquipmentExportOutDTO> result = new ArrayList<>();
|
|
|
+ for(EquipmentBase equipment : equipmentList){
|
|
|
+ EquipmentExportOutDTO outDTO = new EquipmentExportOutDTO();
|
|
|
+ outDTO.setEquipmentCode(equipment.getEquipmentCode());
|
|
|
+ outDTO.setEquipmentName(equipment.getEquipmentName());
|
|
|
+ outDTO.setEquipmentLocation(equipment.getEquipmentLocation());
|
|
|
+ outDTO.setInstallTime(equipment.getInstallTime());
|
|
|
+ outDTO.setEquipmentTypeName(typeNameMap.get(equipment.getEquipmentTypeId()));
|
|
|
+ EquipmentStatus equipmentStatus = statusMap.get(equipment.getEquipmentId());
|
|
|
+ if(equipmentStatus != null){
|
|
|
+ outDTO.setCurrentStatus(equipmentStatus.getCurrentStatus());
|
|
|
+ }
|
|
|
+ result.add(outDTO);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|