Commit c515d3b4 authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.修改代码扫描测试账号遗留问题,修改环境配置表增加字段,同时修改对应代码增加字段,修改获取当前配置接口逻辑,完成接口冒烟测试;
2.修改天气数据抽取定时任务,修改定时任务配置,将两小时抽取数据改完半小时抽取数据;
3.修改代码扫描硬编码问题,修改第三方环境配置表,增加字段保存第三方接口认证配置信息,修改代码添加对应字段同时修改代码逻辑,完成接口冒烟测试;
4.统计分析模块风能发电监控页面风机运行情况接口开发,完成接口冒烟测试并编写线上接口文档同时生成接口用例;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent c5db221a
......@@ -81,4 +81,11 @@ public class BaseWindTurbineView extends BaseModel implements Serializable {
@XText("城市编码")
@TableField(exist = false)
private String cityCode;
/**
* 城市名称
*/
@XText("城市名称")
@TableField(exist = false)
private String cityName;
}
......@@ -33,6 +33,15 @@ public enum WindDirection implements DictEnum {
return null;
}
public static String findByCode(Integer v) {
for (WindDirection e : values()) {
if (v.equals(e.getValue())) {
return e.getDesc();
}
}
return "无持续风向";
}
@Override
public Integer getValue() {
return value;
......
package pps.core.base.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import pps.core.base.entity.BaseWindTurbineView;
......@@ -13,10 +14,17 @@ import java.util.List;
*/
@Repository(value = "pps.core.base.mapper.BaseWindTurbineViewMapper")
public interface BaseWindTurbineViewMapper {
BaseWindTurbineView selectOne(BaseWindTurbineView record);
List<BaseWindTurbineView> selectList(BaseWindTurbineView record);
/**
* 风机电站详情
*
* @param id 身份证件
* @return {@link BaseWindTurbineView }
*/
BaseWindTurbineView selectOne(@Param(value = "id") String id);
/**
* 风机列表
*
......
......@@ -5,9 +5,16 @@ import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.core.base.entity.BaseWindTurbineView;
import pps.core.base.entity.WindPredictionFutureEnt;
import pps.core.base.enums.WindDirection;
import pps.core.base.mapper.BaseWindTurbineViewMapper;
import pps.core.base.mapper.WindPredictionFutureMapper;
import pps.core.base.service.data.base_wind_turbine.GetBaseWindTurbineViewOutput;
import pps.core.base.service.data.weather_bureau_data.GetWeatherBureauDataOutput;
import pps.core.base.service.data.wind_prediction_future.GetWindPredictionFutureInput;
import pps.core.base.service.data.wind_prediction_future.GetWindPredictionFutureOutput;
import pps.core.common.constant.BusinessConstant;
......@@ -15,6 +22,7 @@ import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XListResult;
import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiPost;
import java.math.BigDecimal;
......@@ -89,6 +97,60 @@ public class WindPredictionFutureService {
return XListResult.success(getPowerOutput(DateUtil.offsetDay(day, -1), endTime, betweenDay, now, predictedMap, powerMap));
}
/*-----------------------------------统计分析(风能发电监控)-----------------------------------*/
/**
* 风机运行情况
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult }<{@link GetWeatherBureauDataOutput }>
*/
@XApiPost
@XText("风机运行情况")
public XSingleResult<GetBaseWindTurbineViewOutput> workCondition(XContext context, GetWindPredictionFutureInput input) {
GetBaseWindTurbineViewOutput output = new GetBaseWindTurbineViewOutput();
//风机详情
BaseWindTurbineViewMapper mapper = context.getBean(BaseWindTurbineViewMapper.class);
BaseWindTurbineView turbineView = mapper.selectOne(input.getStationId());
if (ObjectUtil.isNull(turbineView)) {
return XSingleResult.success(output);
}
//实时天气
DateTime endTime = DateUtil.date();
DateTime beginTime = DateUtil.offsetHour(endTime, -1);
WindPredictionFutureMapper futureMapper = context.getBean(WindPredictionFutureMapper.class);
WindPredictionFutureEnt futureEnt = futureMapper.selectOne(new LambdaQueryWrapper<WindPredictionFutureEnt>()
.eq(WindPredictionFutureEnt::getStationId, input.getStationId())
.between(WindPredictionFutureEnt::getDataTime, beginTime, endTime)
.orderByDesc(WindPredictionFutureEnt::getDataTime)
.last(BusinessConstant.LAST_LIMIT)
);
if (ObjectUtil.isNotNull(futureEnt)) {
output.setWindDirection(WindDirection.findByCode(futureEnt.getWindDirection()));
output.setWindSpeed(futureEnt.getWindSpeed());
output.setAirTemperature(futureEnt.getAirTemperature());
output.setHumidity(futureEnt.getHumidity());
output.setPressure(futureEnt.getPressure());
}
output.setStationName(turbineView.getStationName());
output.setTotalPower(turbineView.getTotalPower());
output.setDiameter(turbineView.getDiameter());
output.setVaneLength(turbineView.getVaneLength());
output.setHubHeight(turbineView.getHubHeight());
output.setAreaName(turbineView.getCityName());
//todo 型号暂时不知道从哪来
output.setModelNumber(BusinessConstant.DEFAULT_VALUE);
//todo 第三方发电量(后续接入)
output.setDailyGeneration(BigDecimal.ZERO);
output.setGrossGeneration(BigDecimal.ZERO);
output.setRunTime(BigDecimal.ZERO);
output.setActivePower(BigDecimal.ZERO);
output.setRunState("启动");
output.setActualWindSpeed(BigDecimal.ZERO);
return XSingleResult.success(output);
}
/*-----------------------------------private-----------------------------------*/
/**
......
package pps.core.base.service.data.base_wind_turbine;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
/**
* 风机运行情况
*
* @author ZWT
* @date 2024/09/02
*/
@Data
public class GetBaseWindTurbineViewOutput {
/*------------------基本信息------------------*/
@XText("风机电站名称")
private String stationName;
@XText("装机总量(KWP)")
private BigDecimal totalPower;
@XText("风轮直径(m)")
private BigDecimal diameter;
@XText("叶片长度(m)")
private BigDecimal vaneLength;
@XText("轮毂高度(m)")
private BigDecimal hubHeight;
@XText("地区名称")
private String areaName;
@XText("型号")
private String modelNumber;
/*------------------第三方推送信息------------------*/
@XText("日发电量(kWh)")
private BigDecimal dailyGeneration;
@XText("总发电量(kWh)")
private BigDecimal grossGeneration;
@XText("运行时长(h)")
private BigDecimal runTime;
@XText("有功功率(kW)")
private BigDecimal activePower;
@XText("运行状态")
private String runState;
@XText("实际风速(m/s)")
private BigDecimal actualWindSpeed;
/*------------------天气预报------------------*/
@XText("风向")
private String windDirection;
@XText("预报风速(m/s)")
private BigDecimal windSpeed;
@XText("气温(℃)")
private BigDecimal airTemperature;
@XText("湿度(%)")
private BigDecimal humidity;
@XText("气压(hPa)")
private BigDecimal pressure;
}
package pps.core.base.service.data.weather_bureau_data;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 气象局天气数据表
*
* @author ZWT
* @date 2024/09/02
*/
@Data
public class GetWeatherBureauDataOutput {
@XText("ID")
private Long id;
@XText("记录时间")
private Date dataTime;
@XText("天气图标")
private String weatherIcon;
@XText("气温(℃)")
private BigDecimal airTemperature;
@XText("降水")
private String precipitation;
@XText("风速(m/s)")
private BigDecimal windSpeed;
@XText("风向")
private Integer windDirection;
@XText("气压(hPa)")
private BigDecimal pressure;
@XText("湿度(%)")
private BigDecimal humidity;
@XText("云量(%)")
private BigDecimal cloudCover;
@XText("地区编码")
private String areaCode;
}
package pps.core.base.service.data.wind_prediction_future;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import xstartup.annotation.XText;
......@@ -13,6 +14,7 @@ import xstartup.annotation.XText;
public class GetWindPredictionFutureInput {
@XText("风电站ID")
@NotBlank(message = "缺少风电站ID")
private String stationId;
@XText("记录时间")
......
......@@ -44,13 +44,7 @@
elevation,
area_code
</sql>
<select id="selectOne" parameterType="pps.core.base.entity.BaseWindTurbineView" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from base_wind_turbine
where
id=#{id}
</select>
<select id="selectList" parameterType="pps.core.base.entity.BaseWindTurbineView" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
......@@ -70,8 +64,28 @@
<resultMap id="ExtResultMap" type="pps.core.base.entity.BaseWindTurbineView" extends="BaseResultMap">
<result column="city_code" property="cityCode" jdbcType="VARCHAR"/>
<result column="city_name" property="cityName" jdbcType="VARCHAR"/>
</resultMap>
<select id="selectOne" parameterType="pps.core.base.entity.BaseWindTurbineView" resultMap="ExtResultMap">
SELECT t.id,
t.station_name,
t.total_power,
t.diameter,
t.vane_length,
t.hub_height,
t.longitude,
t.latitude,
t.elevation,
t.area_code,
a.city_code,
a.`name` AS city_name
FROM base_wind_turbine t
LEFT JOIN sys_area a ON t.area_code = a.id
WHERE t.is_deleted = 1
AND t.id = #{id} LIMIT 1
</select>
<select id="selectWindTurbineList" resultMap="ExtResultMap">
SELECT p.id,
p.is_deleted,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment