skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/entity/DistanceRecord.java
skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/entity/SelectPageParam.java
New file @@ -0,0 +1,30 @@ package cn.gistack.by.waterdata.pojo.entity; import lombok.Data; @Data public class SelectPageParam { /** * 10字符的设备编码(RTU编码) */ private String deviceNo; /** * 格式:2024-12-12 08:08:43 */ private String startTime; private String endTime; private int order; /** * 当前页索引,从1开始 */ private int currentPageIndex; /** * 每页包含的数据数量 */ private int pageSize; /** * 毫米波雷达设备的初始距离 */ private double initDistance; } skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/entity/WaterDevice.java
New file @@ -0,0 +1,105 @@ package cn.gistack.by.waterdata.pojo.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data @TableName(value = "\"water_device\"") public class WaterDevice { @TableField(value = "\"id\"") int id; @TableField(value = "\"name\"") String name; @TableField(value = "\"code\"") String code; @TableField(value = "\"device_password\"") private String devicePassword; @TableField(value = "\"mn_no\"") String mnNo; @TableField(value = "\"factory_id\"") int factoryId; @TableField(value = "\"station_id\"") int stationId; @TableField(value = "\"station_name\"") String stationName; @TableField(value = "\"created_at\"") int createdAt; @TableField(value = "\"created_user\"") int createdUser; @TableField(value = "\"updated_at\"") int updatedAt; @TableField(value = "\"updated_user\"") int updatedUser; @TableField(value = "\"status\"") int status; @TableField(value = "\"lat\"") BigDecimal lat ; @TableField(value = "\"lon\"") BigDecimal lon ; @TableField(value = "\"province_id\"") long provinceId; @TableField(value = "\"province_name\"") String provinceName; @TableField(value = "\"city_id\"") long cityId; @TableField(value = "\"city_name\"") String cityName; @TableField(value = "\"area_name\"") String areaName; @TableField(value = "\"area_id\"") long areaId; @TableField(value = "\"type\"") int type; @TableField(value = "\"accessType\"") int accessType; @TableField(value = "\"contact\"") String contact; @TableField(value = "\"telephone\"") String telephone; @TableField(value = "\"river\"") String river; @TableField(value = "\"address\"") String address; @TableField(value = "\"model\"") String model; @TableField(value = "\"remark\"") String remark; @TableField(value = "\"communication_type\"") int communicationType; @TableField(value = "\"image_url\"") String imageUrl; @TableField(value = "\"video_ip\"") String videoIp; @TableField(value = "\"video_id\"") String videoId; @TableField(value = "\"send_type\"") String sendType; @TableField(value = "\"sim_no\"") String simNo; @TableField(value = "\"stake_no\"") String stakeNo; @TableField(value = "\"wheel_base\"") double wheelBase; @TableField(value = "\"altitude\"") double altitude; @TableField(value = "\"bottom_of_inlet_section\"") double bottomOfInletSection; @TableField(value = "\"inlet_section_surface\"") double inletSectionSurface; @TableField(value = "\"nozzle_elevation\"") double nozzleElevation; @TableField(value = "\"pipe_bottom_elevation\"") double pipeBottomElevation; @TableField(value = "\"device_manufacturers_name\"") String deviceManufacturersName; @TableField(value = "\"integration_manufacturers_name\"") String integrationManufacturersName; @TableField(value = "\"integration_manufacturers_number\"") int integrationManufacturersNumber; @TableField(exist = false) private WaterDistanceDeviceEx waterDistanceDeviceEx; } skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/entity/WaterDistanceDeviceEx.java
New file @@ -0,0 +1,28 @@ package cn.gistack.by.waterdata.pojo.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data @TableName(value = "\"water_distance_device_ex\"") public class WaterDistanceDeviceEx { @TableField(value = "\"id\"") private int id; @TableField(value = "\"device_code\"") private String deviceCode; @TableField(value = "\"distance1\"") private float distance1; @TableField(value = "\"distance2\"") private float distance2; @TableField(value = "\"distance3\"") private float distance3; @TableField(value = "\"distance4\"") private float distance4; @TableField(value = "\"distance5\"") private float distance5; @TableField(value = "\"distance6\"") private float distance6; @TableField(value = "\"distance7\"") private float distance7; } skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/vo/DistanceRecordVO.java
File was renamed from skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/pojo/vo/DistanceRecordVO.java @@ -31,4 +31,7 @@ public class DistanceRecordVO extends DistanceRecord { private static final long serialVersionUID = 1L; private double distanceOffset; private double initDistance; } skjcmanager/skjcmanager-service-api/skjcmanager-by-api/src/main/java/cn/gistack/by/waterdata/pojo/wrapper/DistanceRecordWrapper.java
skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/controller/DistanceRecordController.java
@@ -17,10 +17,10 @@ package cn.gistack.by.waterdata.controller; import cn.gistack.by.waterdata.pojo.entity.DistanceRecord; import cn.gistack.by.waterdata.pojo.entity.SelectPageParam; import cn.gistack.by.waterdata.pojo.vo.DistanceRecordVO; import cn.gistack.by.waterdata.pojo.wrapper.DistanceRecordWrapper; import cn.gistack.by.waterdata.service.api.IDistanceRecordService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; @@ -37,6 +37,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * E0功能码数据controller. @@ -71,12 +73,11 @@ /** * DistanceRecord 分页 */ @GetMapping("/list") @ApiOperation(value = "分页", notes = "传入DistanceRecord实体对象") public R<IPage<DistanceRecordVO>> list(DistanceRecord distanceRecord, Query query) { QueryWrapper<DistanceRecord> queryWrapper = Condition.getQueryWrapper(distanceRecord); IPage<DistanceRecord> pages = distanceRecordService.page(Condition.getPage(query), queryWrapper); return R.data(DistanceRecordWrapper.build().pageVO(pages)); @GetMapping("/selectpage") @ApiOperation(value = "自定义分页", notes = "传入SelectPageParam对象") public R<List<DistanceRecordVO>> selectPage(SelectPageParam param) { List<DistanceRecordVO> recordVOList = distanceRecordService.selectPage(param); return R.data(recordVOList); } /** skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/controller/WaterDeviceController.java
New file @@ -0,0 +1,50 @@ /* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package cn.gistack.by.waterdata.controller; import cn.gistack.by.waterdata.pojo.entity.WaterDevice; import cn.gistack.by.waterdata.service.api.IWaterDeviceService; import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * E0功能码数据controller. * * @author Kai.Shan * @since 2024-12-11 */ @RestController @AllArgsConstructor @RequestMapping("/waterdevice") @Api(value = "水库设备", tags = "Water device设备信息查询接口") public class WaterDeviceController extends BladeController { private final IWaterDeviceService waterDeviceService; @GetMapping("/getdistancedevices") public R<List<WaterDevice>> selectDistanceDevicesByGuid(@RequestParam String guid) { List<WaterDevice> waterDevices = waterDeviceService.selectDistanceDevicesByGuid(guid); return R.data(waterDevices); } } skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.java
@@ -18,6 +18,7 @@ package cn.gistack.by.waterdata.mapper; import cn.gistack.by.waterdata.pojo.entity.DistanceRecord; import cn.gistack.by.waterdata.pojo.entity.SelectPageParam; import cn.gistack.by.waterdata.pojo.vo.DistanceRecordVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -33,6 +34,14 @@ */ public interface DistanceRecordMapper extends BaseMapper<DistanceRecord> { /** * 自定义分页逻辑 * * @param param {@link SelectPageParam} * @return */ List<DistanceRecord> selectPage(SelectPageParam param); /** * 自定义分页 * * @param page skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/DistanceRecordMapper.xml
@@ -20,9 +20,18 @@ <result column="power_voltage" property="powerVoltage"/> </resultMap> <sql id="mainSql"> select * from SJZT_ODS."water_data_distance" </sql> <select id="selectPage" parameterType="cn.gistack.by.waterdata.pojo.entity.SelectPageParam" resultMap="distanceRecordResultMap"> select * from ( select * from SJZT_ODS."water_data_distance" where "device_no" = #{deviceNo} and "ob_date" >= to_date(#{startTime}, 'yyyy-mm-dd hh24:mi:ss') and "ob_date" <![CDATA[ <= ]]> to_date(#{endTime}, 'yyyy-mm-dd hh24:mi:ss') and "order" = #{order} ) temp limit ((#{currentPageIndex} - 1) * #{pageSize}), #{pageSize} </select> <select id="selectDistanceRecordPage" resultMap="distanceRecordResultMap"> select * from SJZT_ODS."water_data_distance" skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/WaterDeviceMapper.javacopy from skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/pojo/vo/DistanceRecordVO.java copy to skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/WaterDeviceMapper.java
File was copied from skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/pojo/vo/DistanceRecordVO.java @@ -14,21 +14,20 @@ * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package cn.gistack.by.waterdata.pojo.vo; import cn.gistack.by.waterdata.pojo.entity.DistanceRecord; import lombok.Data; import lombok.EqualsAndHashCode; package cn.gistack.by.waterdata.mapper; import cn.gistack.by.waterdata.pojo.entity.WaterDevice; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; /** * DistanceRecordVO * 水库全景图 Mapper 接口 * * @author BladeX * @since 2023-12-06 * @since 2024-03-29 */ @Data @EqualsAndHashCode(callSuper = true) public class DistanceRecordVO extends DistanceRecord { private static final long serialVersionUID = 1L; public interface WaterDeviceMapper extends BaseMapper<WaterDevice> { List<WaterDevice> selectMillimeterWaveRadarDevicesByGuid(String guid); } skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/mapper/WaterDeviceMapper.xml
New file @@ -0,0 +1,71 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.gistack.by.waterdata.mapper.WaterDeviceMapper"> <resultMap id="waterDeviceAndExResultMap" type="cn.gistack.by.waterdata.pojo.entity.WaterDevice"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="code" property="code"/> <result column="mn_no" property="mnNo"/> <result column="factory_id" property="factoryId"/> <result column="station_id" property="stationId"/> <result column="station_name" property="stationName"/> <result column="created_at" property="createdAt"/> <result column="created_user" property="createdUser"/> <result column="updated_at" property="updatedAt"/> <result column="updated_user" property="updatedUser"/> <result column="status" property="status"/> <result column="lat" property="lat"/> <result column="lon" property="lon"/> <result column="province_id" property="provinceId"/> <result column="province_name" property="provinceName"/> <result column="city_id" property="cityId"/> <result column="city_name" property="cityName"/> <result column="area_name" property="areaName"/> <result column="area_id" property="areaId"/> <result column="send_type" property="sendType"/> <result column="telephone" property="telephone"/> <result column="river" property="river"/> <result column="address" property="address"/> <result column="model" property="model"/> <result column="remark" property="remark"/> <result column="communication_type" property="communicationType"/> <result column="image_url" property="imageUrl"/> <result column="video_ip" property="videoIp"/> <result column="video_id" property="videoId"/> <association property="waterDistanceDeviceEx" javaType="cn.gistack.by.waterdata.pojo.entity.WaterDistanceDeviceEx"> <id column="ex_id" property="id"/> <result column="device_code" property="deviceCode"/> <result column="distance_1" property="distance1"/> <result column="distance_2" property="distance2"/> <result column="distance_3" property="distance3"/> <result column="distance_4" property="distance4"/> <result column="distance_5" property="distance5"/> <result column="distance_6" property="distance6"/> <result column="distance_7" property="distance7"/> </association> </resultMap> <select id="selectMillimeterWaveRadarDevicesByGuid" resultMap="waterDeviceAndExResultMap"> SELECT "SJZT_ODS"."water_device".*, DEVICE_EX."id" as "ex_id", DEVICE_EX."device_code", DEVICE_EX."distance_1", DEVICE_EX."distance_2", DEVICE_EX."distance_3", DEVICE_EX."distance_4", DEVICE_EX."distance_5", DEVICE_EX."distance_6", DEVICE_EX."distance_7" from ( "SJZT_ODS"."water_distance_device_ex" DEVICE_EX LEFT JOIN "SJZT_ODS"."water_device" ON DEVICE_EX."device_code" = "SJZT_ODS"."water_device"."code" LEFT JOIN "SJZT_MD"."att_res_base" ON "SJZT_ODS"."water_device"."mn_no" = "SJZT_MD"."att_res_base"."res_reg_code" ) WHERE "SJZT_MD"."att_res_base"."guid" = #{guid}; </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/api/IDistanceRecordService.java
@@ -17,10 +17,13 @@ package cn.gistack.by.waterdata.service.api; import cn.gistack.by.waterdata.pojo.entity.DistanceRecord; import cn.gistack.by.waterdata.pojo.entity.SelectPageParam; import cn.gistack.by.waterdata.pojo.vo.DistanceRecordVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.apache.ibatis.annotations.Param; import java.util.List; /** * E0 distance service. @@ -30,6 +33,14 @@ */ public interface IDistanceRecordService extends IService<DistanceRecord> { /** * 自定义分页逻辑 * * @param param {@link SelectPageParam} * @return */ List<DistanceRecordVO> selectPage(SelectPageParam param); /** * 自定义分页 * * @param page skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/api/IWaterDeviceService.java
New file @@ -0,0 +1,21 @@ package cn.gistack.by.waterdata.service.api; import cn.gistack.by.waterdata.pojo.entity.WaterDevice; import java.util.List; /** * E0 distance service. * * @author Kai.Shan * @since 2023-12-06 */ public interface IWaterDeviceService { /** * selectDistanceDevicesByGuid * * @param guid 水库编码 * @return 毫米波雷达设备信息(包括距离初始信息) */ List<WaterDevice> selectDistanceDevicesByGuid(String guid); } skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/impl/DistanceRecordServiceImpl.java
@@ -18,11 +18,16 @@ import cn.gistack.by.waterdata.mapper.DistanceRecordMapper; import cn.gistack.by.waterdata.pojo.entity.DistanceRecord; import cn.gistack.by.waterdata.pojo.entity.SelectPageParam; import cn.gistack.by.waterdata.pojo.vo.DistanceRecordVO; import cn.gistack.by.waterdata.pojo.wrapper.DistanceRecordWrapper; import cn.gistack.by.waterdata.service.api.IDistanceRecordService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * 新闻 服务实现类 @@ -33,6 +38,25 @@ @Service public class DistanceRecordServiceImpl extends ServiceImpl<DistanceRecordMapper, DistanceRecord> implements IDistanceRecordService { /** * 自定义分页逻辑 * * @param param {@link SelectPageParam} * @return */ public List<DistanceRecordVO> selectPage(SelectPageParam param) { List<DistanceRecord> distanceRecords = this.baseMapper.selectPage(param); List<DistanceRecordVO> recordVOList = new ArrayList<>(distanceRecords.size()); for (DistanceRecord distanceRecord : distanceRecords) { DistanceRecordVO distanceRecordVO = DistanceRecordWrapper.build().entityVO(distanceRecord); distanceRecordVO.setInitDistance(param.getInitDistance()); distanceRecordVO.setDistanceOffset(distanceRecordVO.getDistance() - distanceRecordVO.getInitDistance()); recordVOList.add(distanceRecordVO); } return recordVOList; } @Override public IPage<DistanceRecordVO> selectDistanceRecordPage(IPage<DistanceRecordVO> page, DistanceRecordVO distanceRecordVO) { return page.setRecords(baseMapper.selectDistanceRecordPage(page, distanceRecordVO)); skjcmanager/skjcmanager-service/skjcmanager-by/src/main/java/cn/gistack/by/waterdata/service/impl/WaterDeviceServiceImpl.java
New file @@ -0,0 +1,24 @@ package cn.gistack.by.waterdata.service.impl; import cn.gistack.by.waterdata.mapper.WaterDeviceMapper; import cn.gistack.by.waterdata.pojo.entity.WaterDevice; import cn.gistack.by.waterdata.service.api.IWaterDeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.List; /** * WaterDeviceServiceImpl 服务实现类 * * @author BladeX * @since 2023-12-06 */ @Service public class WaterDeviceServiceImpl extends ServiceImpl<WaterDeviceMapper, WaterDevice> implements IWaterDeviceService { @Override public List<WaterDevice> selectDistanceDevicesByGuid(String guid) { return this.baseMapper.selectMillimeterWaveRadarDevicesByGuid(guid); } }