Commit 3743d206 authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.对接第三方接口,接入第三方数据,完成Token接口验证,抽取公用方法封装调用工具类;
2.对接第三方接口,完成获取日耗电日产液等信息接口调用,创建数据表,同时生成对应代码,开发定时任务及对外接口,完成第三方数据接入及系统展示功能,添加线上接口文档并完成接口及定时任务冒烟测试;
3.对接第三方接口,完成获取有功功率数据信息接口调用,创建数据表,同时生成对应代码,开发定时任务及对外接口,完成第三方数据接入及系统展示功能,添加线上接口文档并完成接口及定时任务冒烟测试;
4.对接第三方接口,完成获取甘特图数据接口调用,创建数据表,同时生成对应代码,开发定时任务及对外接口,完成第三方数据接入及系统展示功能,添加线上接口文档并完成接口及定时任务冒烟测试;
5.对接第三方接口,完成本日累计数据接口调用,创建数据表,同时生成对应代码,开发定时任务及对外接口,完成第三方数据接入及系统展示功能,添加线上接口文档并完成接口及定时任务冒烟测试;
6.对接第三方接口,完成光伏发电量接口调用,创建数据表,同时生成对应代码,开发定时任务及对外接口,完成第三方数据接入及系统展示功能,添加线上接口文档并完成接口及定时任务冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 7a08db95
...@@ -19,6 +19,11 @@ public class ThirdPartyApiConstant { ...@@ -19,6 +19,11 @@ public class ThirdPartyApiConstant {
*/ */
public static final int MAX_SECOND = 300; public static final int MAX_SECOND = 300;
/**
* 系统来源
*/
public static final String CQ_SOURCE = "长庆";
/** /**
* 长庆Token * 长庆Token
*/ */
......
package pps.core.prediction.entity; package pps.core.prediction.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
...@@ -15,6 +18,9 @@ import java.util.Date; ...@@ -15,6 +18,9 @@ import java.util.Date;
* @date 2024/03/19 * @date 2024/03/19
*/ */
@Data @Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ThirdActivePowerView implements Serializable { public class ThirdActivePowerView implements Serializable {
@XText("ID") @XText("ID")
@TableField @TableField
......
package pps.core.prediction.entity; package pps.core.prediction.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
...@@ -15,6 +18,9 @@ import java.util.Date; ...@@ -15,6 +18,9 @@ import java.util.Date;
* @date 2024/03/19 * @date 2024/03/19
*/ */
@Data @Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ThirdCurrentWellConditionView implements Serializable { public class ThirdCurrentWellConditionView implements Serializable {
@XText("ID") @XText("ID")
@TableField @TableField
......
package pps.core.prediction.entity; package pps.core.prediction.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
...@@ -15,6 +18,9 @@ import java.util.Date; ...@@ -15,6 +18,9 @@ import java.util.Date;
* @date 2024/03/19 * @date 2024/03/19
*/ */
@Data @Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ThirdPhotovoltaicPowerView implements Serializable { public class ThirdPhotovoltaicPowerView implements Serializable {
@XText("ID") @XText("ID")
@TableField @TableField
......
package pps.core.prediction.mapper; package pps.core.prediction.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import pps.core.prediction.entity.ThirdActivePowerView; import pps.core.prediction.entity.ThirdActivePowerView;
...@@ -16,4 +17,12 @@ public interface ThirdActivePowerViewMapper { ...@@ -16,4 +17,12 @@ public interface ThirdActivePowerViewMapper {
ThirdActivePowerView selectOne(ThirdActivePowerView record); ThirdActivePowerView selectOne(ThirdActivePowerView record);
List<ThirdActivePowerView> selectList(ThirdActivePowerView record); List<ThirdActivePowerView> selectList(ThirdActivePowerView record);
/**
* 批量新增
*
* @param list 列表
* @return int
*/
int batchInsertList(@Param(value = "list") List<ThirdActivePowerView> list);
} }
package pps.core.prediction.service; package pps.core.prediction.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson2.JSON;
import pps.cloud.prediction.service.IThirdDataAccessCloudService; import pps.cloud.prediction.service.IThirdDataAccessCloudService;
import pps.core.prediction.constant.ThirdPartyApiConstant; import pps.core.prediction.constant.ThirdPartyApiConstant;
import pps.core.prediction.entity.ThirdActivePowerView;
import pps.core.prediction.mapper.ThirdActivePowerViewMapper;
import pps.core.prediction.service.data.third_active_power.GetThirdActivePowerViewOutput;
import pps.core.prediction.utils.ServiceUtil; import pps.core.prediction.utils.ServiceUtil;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.data.XServiceResult; import xstartup.data.XServiceResult;
import xstartup.helper.XTransactionHelper;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -33,9 +41,27 @@ public class ThirdDataAccessCloudServiceImpl implements IThirdDataAccessCloudSer ...@@ -33,9 +41,27 @@ public class ThirdDataAccessCloudServiceImpl implements IThirdDataAccessCloudSer
String resultStr = ServiceUtil.doPostFormCq(context, String resultStr = ServiceUtil.doPostFormCq(context,
ThirdPartyApiConstant.CQ_WELL_STATION_PV_DATA, ThirdPartyApiConstant.CQ_WELL_STATION_PV_DATA,
new HashMap<>(0)); new HashMap<>(0));
List<GetThirdActivePowerViewOutput> outputs = JSON.parseArray(resultStr, GetThirdActivePowerViewOutput.class);
if (CollUtil.isEmpty(outputs)) {
return null; return XServiceResult.OK;
}
List<ThirdActivePowerView> dtoList = new ArrayList<>(outputs.size());
for (GetThirdActivePowerViewOutput o : outputs) {
dtoList.add(
ThirdActivePowerView.builder()
.stationName(o.getStationName())
.createDate(o.getCreateDate())
.photovoltaicPower(o.getPhotovoltaicPower())
.meterPower(o.getMeterPower())
.systemSource(ThirdPartyApiConstant.CQ_SOURCE)
.build()
);
}
return XTransactionHelper.begin(context, () -> {
ThirdActivePowerViewMapper mapper = context.getBean(ThirdActivePowerViewMapper.class);
mapper.batchInsertList(dtoList);
return XServiceResult.OK;
});
} }
/** /**
...@@ -50,7 +76,7 @@ public class ThirdDataAccessCloudServiceImpl implements IThirdDataAccessCloudSer ...@@ -50,7 +76,7 @@ public class ThirdDataAccessCloudServiceImpl implements IThirdDataAccessCloudSer
ThirdPartyApiConstant.CQ_WELL_REAL_PV_DATA, ThirdPartyApiConstant.CQ_WELL_REAL_PV_DATA,
new HashMap<>(0)); new HashMap<>(0));
return null; return XServiceResult.OK;
} }
/** /**
...@@ -67,6 +93,6 @@ public class ThirdDataAccessCloudServiceImpl implements IThirdDataAccessCloudSer ...@@ -67,6 +93,6 @@ public class ThirdDataAccessCloudServiceImpl implements IThirdDataAccessCloudSer
ThirdPartyApiConstant.CQ_STATION_DAILY_PV_DATA, ThirdPartyApiConstant.CQ_STATION_DAILY_PV_DATA,
param); param);
return null; return XServiceResult.OK;
} }
} }
...@@ -17,18 +17,18 @@ import java.util.Date; ...@@ -17,18 +17,18 @@ import java.util.Date;
public class GetThirdActivePowerViewOutput { public class GetThirdActivePowerViewOutput {
@XText("井组名称(线路/光伏电站)") @XText("井组名称(线路/光伏电站)")
@JSONField(name = "") @JSONField(name = "stationname")
private String stationName; private String stationName;
@XText("创建时间") @XText("创建时间")
@JSONField(name = "") @JSONField(name = "ts")
private Date createDate; private Date createDate;
@XText("光伏有功功率(KW)") @XText("光伏有功功率(KW)")
@JSONField(name = "") @JSONField(name = "nbQ1_P")
private BigDecimal photovoltaicPower; private BigDecimal photovoltaicPower;
@XText("电表有功功率(KW)") @XText("电表有功功率(KW)")
@JSONField(name = "") @JSONField(name = "PJ_P")
private BigDecimal meterPower; private BigDecimal meterPower;
} }
...@@ -3,9 +3,8 @@ package pps.core.prediction.utils; ...@@ -3,9 +3,8 @@ package pps.core.prediction.utils;
import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import pps.core.auth.HttpRequestClient; import pps.core.auth.HttpRequestClient;
import pps.core.common.cache.ThirdPartyConfigCache; import pps.core.common.cache.ThirdPartyConfigCache;
import pps.core.prediction.constant.ThirdPartyApiConstant; import pps.core.prediction.constant.ThirdPartyApiConstant;
...@@ -37,7 +36,9 @@ public class ServiceUtil { ...@@ -37,7 +36,9 @@ public class ServiceUtil {
String token = ServiceUtil.getToken(context); String token = ServiceUtil.getToken(context);
HttpRequestClient client = new HttpRequestClient(token); HttpRequestClient client = new HttpRequestClient(token);
String resultStr = client.doPostForm(url + api, param); String resultStr = client.doPostForm(url + api, param);
com.alibaba.fastjson2.JSONObject jsonObject = JSON.parseObject(resultStr); JSONObject jsonObject = JSON.parseObject(resultStr);
context.getLogger().info("**** doPostFormCq api: {}", api);
context.getLogger().info("**** doPostFormCq resultStr: {}", resultStr);
return jsonObject.getString("data"); return jsonObject.getString("data");
} }
...@@ -77,8 +78,8 @@ public class ServiceUtil { ...@@ -77,8 +78,8 @@ public class ServiceUtil {
param.put("UserAccount", "PvGroup"); param.put("UserAccount", "PvGroup");
param.put("UserPassWord", "PvGroup@147369"); param.put("UserPassWord", "PvGroup@147369");
String result = XHttpUtils.postAsForm(url, param); String result = XHttpUtils.postAsForm(url, param);
JSONObject jsonObject = JSONUtil.parseObj(result); JSONObject jsonObject = JSON.parseObject(result);
String token = jsonObject.getStr("token"); String token = jsonObject.getString("token");
ServiceUtil.setThirdPartyConfigCache(context, token); ServiceUtil.setThirdPartyConfigCache(context, token);
return token; return token;
} }
......
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="pps.core.prediction.mapper.ThirdActivePowerViewMapper"> <mapper namespace="pps.core.prediction.mapper.ThirdActivePowerViewMapper">
<resultMap id="BaseResultMap" type="pps.core.prediction.entity.ThirdActivePowerView"> <resultMap id="BaseResultMap" type="pps.core.prediction.entity.ThirdActivePowerView">
<id column="id" property="id" jdbcType="BIGINT" /> <id column="id" property="id" jdbcType="BIGINT"/>
<result column="station_name" property="stationName" jdbcType="VARCHAR" /> <result column="station_name" property="stationName" jdbcType="VARCHAR"/>
<result column="create_date" property="createDate" jdbcType="DATE" /> <result column="create_date" property="createDate" jdbcType="DATE"/>
<result column="photovoltaic_power" property="photovoltaicPower" jdbcType="DECIMAL" /> <result column="photovoltaic_power" property="photovoltaicPower" jdbcType="DECIMAL"/>
<result column="meter_power" property="meterPower" jdbcType="DECIMAL" /> <result column="meter_power" property="meterPower" jdbcType="DECIMAL"/>
<result column="system_source" property="systemSource" jdbcType="VARCHAR" /> <result column="system_source" property="systemSource" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, id
,
station_name, station_name,
create_date, create_date,
photovoltaic_power, photovoltaic_power,
meter_power, meter_power,
system_source system_source
</sql> </sql>
<select id="selectOne" parameterType="pps.core.prediction.entity.ThirdActivePowerView" resultMap="BaseResultMap"> <select id="selectOne" parameterType="pps.core.prediction.entity.ThirdActivePowerView" resultMap="BaseResultMap">
select select
<include refid="Base_Column_List" /> <include refid="Base_Column_List"/>
from third_active_power from third_active_power
where where
id=#{id} id=#{id}
</select> </select>
<select id="selectList" parameterType="pps.core.prediction.entity.ThirdActivePowerView" resultMap="BaseResultMap"> <select id="selectList" parameterType="pps.core.prediction.entity.ThirdActivePowerView" resultMap="BaseResultMap">
select select
<include refid="Base_Column_List" /> <include refid="Base_Column_List"/>
from third_active_power from third_active_power
where where
id=#{id} id=#{id}
</select> </select>
<insert id="batchInsertList" parameterType="list">
INSERT INTO third_active_power ( station_name, create_date, photovoltaic_power, meter_power, system_source )
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.stationName},
#{item.createDate},
#{item.photovoltaicPower},
#{item.meterPower},
#{item.systemSource}
)
</foreach>
</insert>
</mapper> </mapper>
\ No newline at end of file
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