优化声纹分页查询代码

This commit is contained in:
weitang 2025-05-26 09:30:28 +08:00
parent 548a337a76
commit 455ae79ceb
5 changed files with 79 additions and 35 deletions

View File

@ -54,41 +54,9 @@ public class VoicePatrolLogController {
@GetMapping("/getVoicePatrolPage")
@ApiOperation("分页查看声纹检测数据")
public ResponseResult getVoicePatrolPage(Page<Map<String, Object>> page, String stationId, String patroldeviceId,
String patroldeviceName
, String startDate, String endDate) {
if (StrUtil.isBlank(stationId)) {
return ResponseResult.error("未传变电站信息");
}
String startFormat = "";
if (StrUtil.isNotBlank(startDate)) {
Date parseStart = DateUtil.parse(startDate);
//一天的开始
Date beginOfDay = DateUtil.beginOfDay(parseStart);
startFormat = DateUtil.format(beginOfDay, "yyyy-MM-dd HH:mm:ss");
}
String endFormat = "";
if (StrUtil.isNotBlank(startDate)) {
Date parseEnd = DateUtil.parse(endDate);
//一天的结束
Date endOfDay = DateUtil.endOfDay(parseEnd);
endFormat = DateUtil.format(endOfDay, "yyyy-MM-dd HH:mm:ss");
}
LambdaQueryWrapper<VoicePatrolLog> queryWrapper = new LambdaQueryWrapper<>();
if (StrUtil.isNotBlank(stationId)) {
queryWrapper.eq(VoicePatrolLog::getStationId, stationId);
}
if (StrUtil.isNotBlank(patroldeviceId)) {
queryWrapper.eq(VoicePatrolLog::getPatroldeviceId, patroldeviceId);
}
if (StrUtil.isNotBlank(patroldeviceName)) {
queryWrapper.like(VoicePatrolLog::getPatroldeviceName, patroldeviceName);
}
if (StrUtil.isNotBlank(startFormat) && StrUtil.isNotBlank(endFormat)) {
queryWrapper.le(VoicePatrolLog::getDate, endFormat);
queryWrapper.ge(VoicePatrolLog::getDate, startFormat);
}
queryWrapper.orderByDesc(VoicePatrolLog::getDate);
Page<Map<String, Object>> mapPage = voicePatrolLogService.pageMaps(page, queryWrapper);
String patroldeviceName, String startDate, String endDate) {
Page<Map<String, Object>> mapPage = voicePatrolLogService.getVoicePatrolPage(page, stationId, patroldeviceId, patroldeviceName,startDate,endDate);
return ResponseResult.successData(mapPage);
}

View File

@ -1,8 +1,11 @@
package com.yfd.platform.modules.basedata.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.basedata.domain.VoicePatrolLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.Map;
/**
* <p>
* Mapper 接口
@ -13,4 +16,16 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface VoicePatrolLogMapper extends BaseMapper<VoicePatrolLog> {
/**********************************
* 用途说明:
* 参数说明 page分页查看声纹检测数据
* 参数说明 stationId 变电站Id
* 参数说明 patroldeviceId 巡视设备Id
* 参数说明 patroldeviceName 巡视设备名称
* 参数说明 startDate 开始时间
* 参数说明 endDate 结束时间
* 返回值说明: com.baomidou.mybatisplus.extension.plugins.pagination.Page<java.util.Map<java.lang.String,java.lang.Object>>
***********************************/
Page<Map<String, Object>> getVoicePatrolPage(Page<Map<String, Object>> page, String stationId, String patroldeviceId, String patroldeviceName, String startDate, String endDate);
}

View File

@ -1,8 +1,11 @@
package com.yfd.platform.modules.basedata.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.basedata.domain.VoicePatrolLog;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Map;
/**
* <p>
* 服务类
@ -13,4 +16,17 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IVoicePatrolLogService extends IService<VoicePatrolLog> {
/**********************************
* 用途说明:
* 参数说明 page分页查看声纹检测数据
* 参数说明 stationId 变电站Id
* 参数说明 patroldeviceId 巡视设备Id
* 参数说明 patroldeviceName 巡视设备名称
* 参数说明 startDate 开始时间
* 参数说明 endDate 结束时间
* 返回值说明: com.baomidou.mybatisplus.extension.plugins.pagination.Page<java.util.Map<java.lang.String,java.lang.Object>>
***********************************/
Page<Map<String, Object>> getVoicePatrolPage(Page<Map<String, Object>> page, String stationId, String patroldeviceId,
String patroldeviceName, String startDate, String endDate);
}

View File

@ -1,11 +1,15 @@
package com.yfd.platform.modules.basedata.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.basedata.domain.VoicePatrolLog;
import com.yfd.platform.modules.basedata.mapper.VoicePatrolLogMapper;
import com.yfd.platform.modules.basedata.service.IVoicePatrolLogService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Map;
/**
* <p>
* 服务实现类
@ -17,4 +21,22 @@ import org.springframework.stereotype.Service;
@Service
public class VoicePatrolLogServiceImpl extends ServiceImpl<VoicePatrolLogMapper, VoicePatrolLog> implements IVoicePatrolLogService {
@Resource
private VoicePatrolLogMapper voicePatrolLogMapper;
/**********************************
* 用途说明:
* 参数说明 page分页查看声纹检测数据
* 参数说明 stationId 变电站Id
* 参数说明 patroldeviceId 巡视设备Id
* 参数说明 patroldeviceName 巡视设备名称
* 参数说明 startDate 开始时间
* 参数说明 endDate 结束时间
* 返回值说明: com.baomidou.mybatisplus.extension.plugins.pagination.Page<java.util.Map<java.lang.String,java.lang.Object>>
***********************************/
@Override
public Page<Map<String, Object>> getVoicePatrolPage(Page<Map<String, Object>> page,String stationId, String patroldeviceId,
String patroldeviceName, String startDate, String endDate) {
return voicePatrolLogMapper.getVoicePatrolPage(page, stationId, patroldeviceId, patroldeviceName,startDate,endDate);
}
}

View File

@ -2,4 +2,27 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yfd.platform.modules.basedata.mapper.VoicePatrolLogMapper">
<select id="getVoicePatrolPage" resultType="java.util.Map">
SELECT
*
FROM
iis_voice_patrol_log
WHERE 1=1
<if test="stationId != null and stationId != ''">
AND station_id=#{stationId}
</if>
<if test="patroldeviceId != null and patroldeviceId != ''">
AND patroldevice_id=#{patroldeviceId}
</if>
<if test="patroldeviceName != null and patroldeviceName != ''">
AND patroldevice_name LIKE CONCAT("%",#{patroldeviceName},"%")
</if>
<if test="startDate != null and startDate != ''">
AND str_to_date(date, '%Y-%m-%d %H:%i:%s') &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND date &lt; DATE_ADD(#{endDate}, INTERVAL 1 DAY)
</if>
ORDER BY date DESC
</select>
</mapper>