Commit cca0053f authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.开发中间库表结构及数据导出功能,检查中间库表结构是否有变动,同时获取最新数据,验证数据是否更新;
2.创建场站每日信息统计记录表,新建场站日信息数据采集汇总定时任务,整理汇总场站纬度每日数据,完成功能验证;
3.针对吉林提供的统计数据,对吉林首页部分功能修改;
4.针对中间库每日井口数据统计表结构变动,修改井口日统计定时任务数据处理逻辑,完成功能验证;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 5d9aff9f
...@@ -15,6 +15,15 @@ import java.math.BigDecimal; ...@@ -15,6 +15,15 @@ import java.math.BigDecimal;
@Data @Data
public class DynamicQueryBasePowerLineWellheadViewOutput { public class DynamicQueryBasePowerLineWellheadViewOutput {
@XText("线路ID")
private String lineId;
/**
* 线路名称
*/
@XText("线路名称")
private String lineName;
@XText("井口ID") @XText("井口ID")
private String wellheadId; private String wellheadId;
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
<result column="run_type_name" property="runTypeName" jdbcType="VARCHAR"/> <result column="run_type_name" property="runTypeName" jdbcType="VARCHAR"/>
<result column="service_rating" property="serviceRating" jdbcType="DECIMAL"/> <result column="service_rating" property="serviceRating" jdbcType="DECIMAL"/>
<result column="rated_power" property="ratedPower" jdbcType="DECIMAL"/> <result column="rated_power" property="ratedPower" jdbcType="DECIMAL"/>
<result column="line_name" property="lineName" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<select id="selectOne" parameterType="pps.core.base.entity.BasePowerLineWellheadView" resultMap="BaseResultMap"> <select id="selectOne" parameterType="pps.core.base.entity.BasePowerLineWellheadView" resultMap="BaseResultMap">
...@@ -68,6 +69,8 @@ ...@@ -68,6 +69,8 @@
<select id="selectWellheadListByParam" parameterType="pps.core.base.entity.BasePowerLineWellheadView" <select id="selectWellheadListByParam" parameterType="pps.core.base.entity.BasePowerLineWellheadView"
resultMap="ExtendsResultMap"> resultMap="ExtendsResultMap">
SELECT SELECT
p.line_name,
p.id AS line_id,
w.id AS wellhead_id, w.id AS wellhead_id,
w.well_number, w.well_number,
w.run_type_key, w.run_type_key,
......
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.StationDailyProductionSituationView; import pps.core.prediction.entity.StationDailyProductionSituationView;
...@@ -16,4 +17,12 @@ public interface StationDailyProductionSituationViewMapper { ...@@ -16,4 +17,12 @@ public interface StationDailyProductionSituationViewMapper {
StationDailyProductionSituationView selectOne(StationDailyProductionSituationView record); StationDailyProductionSituationView selectOne(StationDailyProductionSituationView record);
List<StationDailyProductionSituationView> selectList(StationDailyProductionSituationView record); List<StationDailyProductionSituationView> selectList(StationDailyProductionSituationView record);
/**
* 批量插入
*
* @param dtoList dto列表
* @return int
*/
int batchInsert(@Param(value = "list") List<StationDailyProductionSituationView> dtoList);
} }
package pps.core.prediction.service; package pps.core.prediction.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
import pps.cloud.prediction.service.IStationDailyCloudService; import pps.cloud.prediction.service.IStationDailyCloudService;
import pps.core.prediction.entity.StationDailyProductionSituationView;
import pps.core.prediction.entity.WellheadDailyProductionSituationEnt;
import pps.core.prediction.mapper.StationDailyProductionSituationViewMapper;
import pps.core.prediction.mapper.WellheadDailyProductionSituationMapper;
import pps.core.prediction.utils.ServiceUtil;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.data.XServiceResult; import xstartup.data.XServiceResult;
import xstartup.helper.XTransactionHelper;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* 场站日统计 * 场站日统计
...@@ -16,8 +35,81 @@ public class StationDailyCloudServiceImpl implements IStationDailyCloudService { ...@@ -16,8 +35,81 @@ public class StationDailyCloudServiceImpl implements IStationDailyCloudService {
@Override @Override
public XServiceResult stationDailyJob(XContext context) { public XServiceResult stationDailyJob(XContext context) {
//查昨日井口统计数据
DateTime yesterday = DateUtil.beginOfDay(DateUtil.yesterday());
String oilFieldCode = ServiceUtil.getOilFieldCode(context);
WellheadDailyProductionSituationMapper wellDailyMapper = context.getBean(WellheadDailyProductionSituationMapper.class);
List<WellheadDailyProductionSituationEnt> wellDailyList = wellDailyMapper.selectList(new LambdaQueryWrapper<WellheadDailyProductionSituationEnt>()
.eq(WellheadDailyProductionSituationEnt::getDataDate, yesterday)
.eq(WellheadDailyProductionSituationEnt::getSystemSource, oilFieldCode)
);
if (CollUtil.isEmpty(wellDailyList)) {
return XServiceResult.OK;
}
//查线路关联井口
List<DynamicQueryBasePowerLineWellheadViewOutput> lineWellheadList = ServiceUtil.getPowerLineWellheadList(context, new DynamicQueryBasePowerLineWellheadInput());
if (CollUtil.isEmpty(lineWellheadList)) {
return XServiceResult.OK;
}
//按井号分组
Map<String, WellheadDailyProductionSituationEnt> wellMap = wellDailyList.stream()
.collect(Collectors.toMap(WellheadDailyProductionSituationEnt::getWellNumber, Function.identity()));
//按线路分组
Map<String, List<DynamicQueryBasePowerLineWellheadViewOutput>> lineMap = lineWellheadList.stream()
.collect(Collectors.groupingBy(DynamicQueryBasePowerLineWellheadViewOutput::getLineName));
//数据组装
List<StationDailyProductionSituationView> dtoDailyList = new ArrayList<>(lineMap.size());
StationDailyProductionSituationView view;
DateTime now = DateUtil.date();
List<DynamicQueryBasePowerLineWellheadViewOutput> wellList;
WellheadDailyProductionSituationEnt wellDaily;
for (Map.Entry<String, List<DynamicQueryBasePowerLineWellheadViewOutput>> entry : lineMap.entrySet()) {
view = new StationDailyProductionSituationView();
view.setStationName(entry.getKey());
view.setDataDate(yesterday);
view.setSystemSource(oilFieldCode);
view.setCreateDate(now);
view.setProductionTime(BigDecimal.ZERO);
view.setDailyLiquidProduction(BigDecimal.ZERO);
view.setDailyElectricityConsumption(BigDecimal.ZERO);
view.setDailyUtilityElectricityConsumption(BigDecimal.ZERO);
view.setElectricityConsumptionPh(BigDecimal.ZERO);
view.setElectricityConsumptionHh(BigDecimal.ZERO);
view.setElectricityConsumptionNp(BigDecimal.ZERO);
view.setElectricityConsumptionVh(BigDecimal.ZERO);
view.setElectricityChargeCity(BigDecimal.ZERO);
view.setElectricityChargesPh(BigDecimal.ZERO);
view.setPeakHourTariff(BigDecimal.ZERO);
view.setNormalPeriodTariff(BigDecimal.ZERO);
view.setAlleyHoursTariff(BigDecimal.ZERO);
//累加数据
wellList = entry.getValue();
for (DynamicQueryBasePowerLineWellheadViewOutput well : wellList) {
if (wellMap.containsKey(well.getWellNumber())) {
wellDaily = wellMap.get(well.getWellNumber());
view.setProductionTime(view.getProductionTime().add(wellDaily.getProductionTime()));
view.setDailyLiquidProduction(view.getDailyLiquidProduction().add(wellDaily.getDailyLiquidProduction()));
view.setDailyElectricityConsumption(view.getDailyElectricityConsumption().add(wellDaily.getDailyElectricityConsumption()));
view.setDailyUtilityElectricityConsumption(view.getDailyUtilityElectricityConsumption().add(wellDaily.getDailyUtilityElectricityConsumption()));
view.setElectricityConsumptionPh(view.getElectricityConsumptionPh().add(wellDaily.getElectricityConsumptionPh()));
view.setElectricityConsumptionHh(view.getElectricityConsumptionHh().add(wellDaily.getElectricityConsumptionHh()));
view.setElectricityConsumptionNp(view.getElectricityConsumptionNp().add(wellDaily.getElectricityConsumptionNp()));
view.setElectricityConsumptionVh(view.getElectricityConsumptionVh().add(wellDaily.getElectricityConsumptionVh()));
view.setElectricityChargeCity(view.getElectricityChargeCity().add(wellDaily.getElectricityChargeCity()));
view.setElectricityChargesPh(view.getElectricityChargesPh().add(wellDaily.getElectricityChargesPh()));
view.setPeakHourTariff(view.getPeakHourTariff().add(wellDaily.getPeakHourTariff()));
view.setNormalPeriodTariff(view.getNormalPeriodTariff().add(wellDaily.getNormalPeriodTariff()));
view.setAlleyHoursTariff(view.getAlleyHoursTariff().add(wellDaily.getAlleyHoursTariff()));
}
}
dtoDailyList.add(view);
}
return XTransactionHelper.begin(context, () -> {
StationDailyProductionSituationViewMapper dailyMapper = context.getBean(StationDailyProductionSituationViewMapper.class);
//保存当日最新数据
dailyMapper.batchInsert(dtoDailyList);
return XServiceResult.OK; return XServiceResult.OK;
});
} }
} }
\ No newline at end of file
...@@ -2,25 +2,26 @@ ...@@ -2,25 +2,26 @@
<!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.StationDailyProductionSituationViewMapper"> <mapper namespace="pps.core.prediction.mapper.StationDailyProductionSituationViewMapper">
<resultMap id="BaseResultMap" type="pps.core.prediction.entity.StationDailyProductionSituationView"> <resultMap id="BaseResultMap" type="pps.core.prediction.entity.StationDailyProductionSituationView">
<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="station_id" property="stationId" jdbcType="VARCHAR" /> <result column="station_id" property="stationId" jdbcType="VARCHAR"/>
<result column="data_date" property="dataDate" jdbcType="DATE" /> <result column="data_date" property="dataDate" jdbcType="DATE"/>
<result column="production_time" property="productionTime" jdbcType="DECIMAL" /> <result column="production_time" property="productionTime" jdbcType="DECIMAL"/>
<result column="daily_electricity_consumption" property="dailyElectricityConsumption" jdbcType="DECIMAL" /> <result column="daily_electricity_consumption" property="dailyElectricityConsumption" jdbcType="DECIMAL"/>
<result column="daily_liquid_production" property="dailyLiquidProduction" jdbcType="DECIMAL" /> <result column="daily_liquid_production" property="dailyLiquidProduction" jdbcType="DECIMAL"/>
<result column="daily_utility_electricity_consumption" property="dailyUtilityElectricityConsumption" jdbcType="DECIMAL" /> <result column="daily_utility_electricity_consumption" property="dailyUtilityElectricityConsumption"
<result column="electricity_consumption_ph" property="electricityConsumptionPh" jdbcType="DECIMAL" /> jdbcType="DECIMAL"/>
<result column="electricity_consumption_hh" property="electricityConsumptionHh" jdbcType="DECIMAL" /> <result column="electricity_consumption_ph" property="electricityConsumptionPh" jdbcType="DECIMAL"/>
<result column="electricity_consumption_np" property="electricityConsumptionNp" jdbcType="DECIMAL" /> <result column="electricity_consumption_hh" property="electricityConsumptionHh" jdbcType="DECIMAL"/>
<result column="electricity_consumption_vh" property="electricityConsumptionVh" jdbcType="DECIMAL" /> <result column="electricity_consumption_np" property="electricityConsumptionNp" jdbcType="DECIMAL"/>
<result column="electricity_charge_city" property="electricityChargeCity" jdbcType="DECIMAL" /> <result column="electricity_consumption_vh" property="electricityConsumptionVh" jdbcType="DECIMAL"/>
<result column="electricity_charges_ph" property="electricityChargesPh" jdbcType="DECIMAL" /> <result column="electricity_charge_city" property="electricityChargeCity" jdbcType="DECIMAL"/>
<result column="peak_hour_tariff" property="peakHourTariff" jdbcType="DECIMAL" /> <result column="electricity_charges_ph" property="electricityChargesPh" jdbcType="DECIMAL"/>
<result column="normal_period_tariff" property="normalPeriodTariff" jdbcType="DECIMAL" /> <result column="peak_hour_tariff" property="peakHourTariff" jdbcType="DECIMAL"/>
<result column="alley_hours_tariff" property="alleyHoursTariff" jdbcType="DECIMAL" /> <result column="normal_period_tariff" property="normalPeriodTariff" jdbcType="DECIMAL"/>
<result column="system_source" property="systemSource" jdbcType="VARCHAR" /> <result column="alley_hours_tariff" property="alleyHoursTariff" jdbcType="DECIMAL"/>
<result column="create_date" property="createDate" jdbcType="DATE" /> <result column="system_source" property="systemSource" jdbcType="VARCHAR"/>
<result column="create_date" property="createDate" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id id
...@@ -44,18 +45,62 @@ ...@@ -44,18 +45,62 @@
system_source, system_source,
create_date create_date
</sql> </sql>
<select id="selectOne" parameterType="pps.core.prediction.entity.StationDailyProductionSituationView" resultMap="BaseResultMap"> <select id="selectOne" parameterType="pps.core.prediction.entity.StationDailyProductionSituationView"
resultMap="BaseResultMap">
select select
<include refid="Base_Column_List" /> <include refid="Base_Column_List"/>
from station_daily_production_situation from station_daily_production_situation
where where
id=#{id} id=#{id}
</select> </select>
<select id="selectList" parameterType="pps.core.prediction.entity.StationDailyProductionSituationView" resultMap="BaseResultMap"> <select id="selectList" parameterType="pps.core.prediction.entity.StationDailyProductionSituationView"
resultMap="BaseResultMap">
select select
<include refid="Base_Column_List" /> <include refid="Base_Column_List"/>
from station_daily_production_situation from station_daily_production_situation
where where
id=#{id} id=#{id}
</select> </select>
<insert id="batchInsert" parameterType="list">
INSERT INTO station_daily_production_situation (
station_name,
data_date,
production_time,
daily_electricity_consumption,
daily_liquid_production,
daily_utility_electricity_consumption,
electricity_consumption_ph,
electricity_consumption_hh,
electricity_consumption_np,
electricity_consumption_vh,
electricity_charge_city,
electricity_charges_ph,
peak_hour_tariff,
normal_period_tariff,
alley_hours_tariff,
system_source,
create_date
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.stationName},
#{item.dataDate},
#{item.productionTime},
#{item.dailyElectricityConsumption},
#{item.dailyLiquidProduction},
#{item.dailyUtilityElectricityConsumption},
#{item.electricityConsumptionPh},
#{item.electricityConsumptionHh},
#{item.electricityConsumptionNp},
#{item.electricityConsumptionVh},
#{item.electricityChargeCity},
#{item.electricityChargesPh},
#{item.peakHourTariff},
#{item.normalPeriodTariff},
#{item.alleyHoursTariff},
#{item.systemSource},
#{item.createDate}
)
</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