fire_point/src/main/java/com/xkrs/dao/FirePointDao.java

136 lines
4.8 KiB
Java
Raw Normal View History

2021-07-13 10:18:08 +08:00
package com.xkrs.dao;
import com.xkrs.model.entity.FirePointEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
2021-07-15 15:22:23 +08:00
import org.springframework.data.jpa.repository.Query;
2021-07-13 10:18:08 +08:00
import org.springframework.stereotype.Component;
2022-05-07 17:45:40 +08:00
import javax.transaction.Transactional;
2021-07-15 15:22:23 +08:00
import java.util.List;
import java.util.Map;
2021-07-15 15:22:23 +08:00
2021-07-13 10:18:08 +08:00
/**
* @author XinYi Song
*/
@Component
public interface FirePointDao extends JpaRepository<FirePointEntity, Long>, JpaSpecificationExecutor<FirePointEntity> {
2021-07-15 15:22:23 +08:00
/**
* 查询今天的火点信息
*
2021-07-15 15:22:23 +08:00
* @param addTime
* @param address
2021-07-15 15:22:23 +08:00
* @return
*/
@Query(value = "select * from fire_point where add_time like CONCAT('%',:addTime,'%') and fire_point_address like CONCAT('%',:address,'%')", nativeQuery = true)
List<FirePointEntity> selectTodayFirePoint(String addTime, String address);
/**
* 区县条件查询今天火点信息
*
* @param addTime
* @param countyCode
* @return
*/
@Query(value = "select * from fire_point where add_time like CONCAT('%',:addTime,'%') and county_code = :countyCode", nativeQuery = true)
List<FirePointEntity> selectTodayFirePointOne(String addTime, String countyCode);
/**
* 街道条件查询今天火点信息
*
* @param addTime
* @param streetCode
* @return
*/
@Query(value = "select * from fire_point where add_time like CONCAT('%',:addTime,'%') and street_code = :streetCode", nativeQuery = true)
List<FirePointEntity> selectTodayFirePointOneStreet(String addTime, String streetCode);
/**
* 根据火点编码查询火点信息
*
* @param fireCode
* @return
*/
FirePointEntity findByFireCode(String fireCode);
/**
* 根据火点编码修改火点状态
*
* @param fireCode
* @param fireType
*/
@Modifying(clearAutomatically = true)
@Query(value = "update fire_point set fire_type = ?2 where fire_code = ?1", nativeQuery = true)
void updateFireTypeByFireCode(String fireCode, String fireType);
/**
* 查询时间段内各植被类型的火点数量
*
* @param startTime
* @param endTime
* @return
*/
@Query(value = "select la.land_name landname,count(fp.id) as num from land la left join fire_point fp " + "on fp.land_type = la.land_name AND fp.add_time BETWEEN ?1 AND ?2 " + "group by la.land_name", nativeQuery = true)
List<Map<String, Object>> selectNumByLandType(String startTime, String endTime);
/**
* 查询时间段内各地区的火点数量
*
* @param startTime
* @param endTime
* @return
*/
@Query(value = "select ci.city_name cityname,count(fp.id) from city ci left join fire_point fp " + "on fp.county_code like concat('%',ci.city_code,'%') AND fp.add_time BETWEEN ?1 AND ?2 " + "group by ci.city_name", nativeQuery = true)
List<Map<String, Object>> selectNumByArea(String startTime, String endTime);
/**
* 查询水体类型的id
*
* @return
*/
@Query(value = "select id from fire_point where land_type = '水体'", nativeQuery = true)
List<Integer> selectId();
/**
* 批量删除水体
*
* @param id
*/
@Modifying(clearAutomatically = true)
void deleteByIdIn(List<Integer> id);
/**
* 查询北京的火点
*
* @return
*/
@Query(value = "select * from fire_point fp where fp.fire_point_address like concat('%','北京市','%') and fp.add_time BETWEEN '2021-10-19' AND '2021-11-20'", nativeQuery = true)
List<FirePointEntity> selectBeijing();
/**
* 根据火点编码修改火点前后图片路径
*
* @param fireCode
* @param beforeFireImage
* @param afterFireImage
*/
@Modifying(clearAutomatically = true)
@Query(value = "update fire_point set before_fire_image = ?2,after_fire_image = ?3 where fire_code = ?1", nativeQuery = true)
void updateBeforeFireAndAfterFireImage(String fireCode, String beforeFireImage, String afterFireImage);
2022-05-07 17:45:40 +08:00
2022-05-09 10:17:57 +08:00
/**
* 查询街道编码异常的火点
*/
// @Query(value = "SELECT * FROM fire_point WHERE length(street_code) != 9", nativeQuery = true)
2022-05-09 17:18:47 +08:00
// update fire_point set street_name = (SELECT street_name from street WHERE fire_point.street_code = street.street_code) WHERE fire_point.street_name ISNULL
2022-05-09 10:17:57 +08:00
@Query(value = "SELECT * FROM fire_point WHERE street_code ISNULL", nativeQuery = true)
List<FirePointEntity> selectAbnormalStreetCode();
2022-05-07 17:45:40 +08:00
@Transactional(rollbackOn = Exception.class)
@Modifying(clearAutomatically = true)
@Query(value = "UPDATE fire_point SET street_code = ?2 WHERE id = ?1", nativeQuery = true)
void updateStreetCodeById(Integer id, String streetCode);
2021-07-13 10:18:08 +08:00
}