|
|
@@ -4,15 +4,20 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.zksy.base.domain.EquipmentBase;
|
|
|
import com.zksy.base.manhole.domain.ManholeData;
|
|
|
import com.zksy.base.manhole.mapper.ManholeDataMapper;
|
|
|
import com.zksy.base.manhole.service.ManholeDataService;
|
|
|
+import com.zksy.base.mapper.EquipmentBaseMapper;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author Administrator
|
|
|
@@ -24,12 +29,28 @@ import java.util.Map;
|
|
|
@Service
|
|
|
public class ManholeDataServiceImpl extends ServiceImpl<ManholeDataMapper, ManholeData> implements ManholeDataService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private EquipmentBaseMapper equipmentBaseMapper;
|
|
|
+
|
|
|
@Override
|
|
|
- public IPage<ManholeData> queryPage(Page<ManholeData> page, String imeiCardNumber, LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
+ public IPage<ManholeData> queryPage(Page<ManholeData> page, String imeiCardNumber, String deviceName, LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
LambdaQueryWrapper<ManholeData> wrapper = new LambdaQueryWrapper<>();
|
|
|
if (StringUtils.hasText(imeiCardNumber)) {
|
|
|
wrapper.eq(ManholeData::getImeiCardNumber, imeiCardNumber);
|
|
|
}
|
|
|
+ if (StringUtils.hasText(deviceName)) {
|
|
|
+ // 按设备名称模糊匹配 equipment_base,取 equipment_code 集合后转换为 imei_card_number 过滤
|
|
|
+ List<String> codes = equipmentBaseMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<EquipmentBase>()
|
|
|
+ .like(EquipmentBase::getEquipmentName, deviceName))
|
|
|
+ .stream().map(EquipmentBase::getEquipmentCode).collect(Collectors.toList());
|
|
|
+ if (codes.isEmpty()) {
|
|
|
+ // 无匹配设备,强制空结果
|
|
|
+ wrapper.eq(ManholeData::getImeiCardNumber, "__no_match__");
|
|
|
+ } else {
|
|
|
+ wrapper.in(ManholeData::getImeiCardNumber, codes);
|
|
|
+ }
|
|
|
+ }
|
|
|
if (startTime != null) {
|
|
|
wrapper.ge(ManholeData::getCreateTime, startTime);
|
|
|
}
|
|
|
@@ -37,7 +58,17 @@ public class ManholeDataServiceImpl extends ServiceImpl<ManholeDataMapper, Manho
|
|
|
wrapper.le(ManholeData::getCreateTime, endTime);
|
|
|
}
|
|
|
wrapper.orderByDesc(ManholeData::getCreateTime);
|
|
|
- return this.page(page, wrapper);
|
|
|
+ IPage<ManholeData> resultPage = this.page(page, wrapper);
|
|
|
+ // 关联设备名称(equipment_base.equipment_name)
|
|
|
+ List<String> imeis = resultPage.getRecords().stream()
|
|
|
+ .map(ManholeData::getImeiCardNumber).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
+ if (!imeis.isEmpty()) {
|
|
|
+ Map<String, String> nameMap = equipmentBaseMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<EquipmentBase>().in(EquipmentBase::getEquipmentCode, imeis))
|
|
|
+ .stream().collect(Collectors.toMap(EquipmentBase::getEquipmentCode, EquipmentBase::getEquipmentName, (a, b) -> a));
|
|
|
+ resultPage.getRecords().forEach(r -> r.setEquipmentName(nameMap.get(r.getImeiCardNumber())));
|
|
|
+ }
|
|
|
+ return resultPage;
|
|
|
}
|
|
|
|
|
|
@Override
|