Commit 5d9aff9f authored by ZWT's avatar ZWT

feat(吉林演示): 松原

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

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 5fa1b744
package pps.core.task.job;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import pps.cloud.prediction.service.IStationDailyCloudService;
import pps.core.common.cache.TaskLockCache;
import pps.core.task.constant.TaskConstant;
import pps.core.task.utils.ServiceUtil;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
/**
* 场站纬度每日信息统计定时任务
*
* @author ZWT
* @date 2024/10/20 16:22
*/
@XText("场站纬度每日信息统计定时任务")
public class StationDailyProductionSituationJob {
/**
* 每天0点10分执行 0 10 0 * * ?
*
* @param xContext x上下文
* @return {@link XServiceResult}
*/
public XServiceResult execute(XContext xContext) {
xContext.getLogger().info("------ StationDailyProductionSituationJob start:{}", DateUtil.date());
String key = TaskConstant.TASK_LOCK_KEY + "StationDailyProductionSituationJob";
TaskLockCache exist = TaskLockCache.exist(xContext, key);
if (ObjectUtil.isNull(exist)) {
ServiceUtil.setCache(xContext, key);
try {
IStationDailyCloudService service = xContext.getBean(IStationDailyCloudService.class);
XServiceResult result = service.stationDailyJob(xContext);
result.throwIfFail();
} catch (Exception e) {
xContext.getLogger().error("------ StationDailyProductionSituationJob Exception: ", e);
} finally {
xContext.getLogger().info("------ StationDailyProductionSituationJob end:{}", DateUtil.date());
TaskLockCache.delete(xContext, key);
}
}
return XServiceResult.OK;
}
}
package pps.cloud.prediction.service;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
/**
* 场站日统计
*
* @author ZWT
* @date 2024/10/20 16:25
*/
@XService
@XText("场站日统计Cloud模块")
public interface IStationDailyCloudService {
/**
* 场站日统计定时任务
*
* @param context 上下文
* @return {@link XServiceResult}
*/
@XText("光伏预测Cloud模块--场站日统计定时任务")
XServiceResult stationDailyJob(XContext context);
}
......@@ -174,7 +174,7 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower
*/
@Override
public XServiceResult wellTechDailyJob(XContext context) {
List<WellheadDailyProductionSituationJob> list;
List<WellheadDailyProductionSituationJob> list = null;
//区分环境
String oilFieldCode = ServiceUtil.getOilFieldCode(context);
switch (oilFieldCode) {
......@@ -182,7 +182,31 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower
IWellDailyProductionSituationCloudService service = context.getBean(IWellDailyProductionSituationCloudService.class);
XListResult<GetWellheadDailyProductionSituationOutput> result = service.getWellDailyProductionSituationList(context, new GetWellheadDailyProductionSituationInput());
result.throwIfFail();
list = XCopyUtils.copyNewList(result.getResult(), WellheadDailyProductionSituationJob.class);
List<GetWellheadDailyProductionSituationOutput> dailyList = result.getResult();
if (CollUtil.isNotEmpty(dailyList)) {
list = new ArrayList<>(dailyList.size());
for (GetWellheadDailyProductionSituationOutput output : dailyList) {
list.add(
WellheadDailyProductionSituationJob.builder()
.wellNumber(output.getWellNumber())
.dataDate(DateUtil.parseDate(output.getDataDate()))
.dailyLiquidProduction(output.getDailyLiquidProduction())
.productionTime(output.getProductionTime())
.dailyElectricityConsumption(output.getDailyElectricityConsumption())
.dailyUtilityElectricityConsumption(output.getDailyUtilityElectricityConsumption())
.electricityConsumptionPh(output.getElectricityConsumptionPh())
.electricityConsumptionHh(output.getElectricityConsumptionHh())
.electricityConsumptionNp(output.getElectricityConsumptionNp())
.electricityConsumptionVh(output.getElectricityConsumptionVh())
.electricityChargeCity(output.getElectricityChargeCity())
.electricityChargesPh(output.getElectricityChargesPh())
.peakHourTariff(output.getPeakHourTariff())
.normalPeriodTariff(output.getNormalPeriodTariff())
.alleyHoursTariff(output.getAlleyHoursTariff())
.build()
);
}
}
break;
case BusinessConstant.ENV_CQ:
String token = ServiceUtil.getToken(context);
......@@ -198,9 +222,7 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower
list = JSON.parseArray(data, WellheadDailyProductionSituationJob.class);
break;
default:
return XServiceResult.OK;
}
DateTime now = DateUtil.date();
if (CollUtil.isEmpty(list)) {
context.getLogger().info("------ WellTechDailyJob 未发现数据: {}", DateUtil.yesterday().toString("yyyy-MM-dd"));
return XServiceResult.OK;
......@@ -212,6 +234,7 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower
.wellNumbers(collect)
.build()).stream()
.collect(Collectors.toMap(DynamicQueryBaseWellheadOutput::getWellNumber, DynamicQueryBaseWellheadOutput::getId));
DateTime now = DateUtil.date();
List<WellheadDailyProductionSituationView> dtoList = new ArrayList<>(list.size());
for (WellheadDailyProductionSituationJob wellhead : list) {
dtoList.add(WellheadDailyProductionSituationView.builder()
......
package pps.core.prediction.service;
import pps.cloud.prediction.service.IStationDailyCloudService;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
/**
* 场站日统计
*
* @author ZWT
* @date 2024/10/20 16:27
*/
@XService
public class StationDailyCloudServiceImpl implements IStationDailyCloudService {
@Override
public XServiceResult stationDailyJob(XContext context) {
return XServiceResult.OK;
}
}
\ No newline at end of file
package pps.core.prediction.service.data.wellhead_daily_production_situation;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.math.BigDecimal;
......@@ -14,6 +17,9 @@ import java.util.Date;
* @date 2023/09/27
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class WellheadDailyProductionSituationJob {
@XText("井号")
......
......@@ -26,4 +26,4 @@ public interface IWellDailyProductionSituationCloudService {
*/
@XText("井口日累计生产数据列表")
XListResult<GetWellheadDailyProductionSituationOutput> getWellDailyProductionSituationList(XContext context, GetWellheadDailyProductionSituationInput input);
}
}
\ No newline at end of file
......@@ -21,7 +21,7 @@ public class GetWellheadDailyProductionSituationInput {
private String wellNumber;
@XText("数据日期")
private Date dataDate;
private String dataDate;
@XText("日耗电量(kW-h)")
private BigDecimal powerConsumeDaily;
......
......@@ -4,7 +4,6 @@ import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 井口日累计生产数据
......@@ -19,7 +18,7 @@ public class GetWellheadDailyProductionSituationOutput {
private String wellNumber;
@XText("数据日期")
private Date dataDate;
private String dataDate;
@XText("日耗电量(kW-h)")
private BigDecimal powerConsumeDaily;
......
......@@ -30,7 +30,7 @@ public class WellheadDailyProductionSituationEnt implements Serializable {
@XText("数据日期")
@TableField
private Date dataDate;
private String dataDate;
@XText("日耗电量(kW-h)")
@TableField
......
......@@ -32,7 +32,7 @@ public class WellheadDailyProductionSituationView implements Serializable {
@XText("数据日期")
@TableField
private Date dataDate;
private String dataDate;
@XText("日耗电量(kW-h)")
@TableField
......
......@@ -26,7 +26,7 @@ public class WellDailyProductionSituationCloudServiceImpl implements IWellDailyP
public XListResult<GetWellheadDailyProductionSituationOutput> getWellDailyProductionSituationList(XContext context, GetWellheadDailyProductionSituationInput input) {
WellheadDailyProductionSituationViewMapper viewMapper = context.getBean(WellheadDailyProductionSituationViewMapper.class);
List<WellheadDailyProductionSituationView> list = viewMapper.selectWellDailyProductionSituationList(WellheadDailyProductionSituationView.builder()
.dataDate(DateUtil.beginOfDay(DateUtil.yesterday()))
.dataDate(DateUtil.beginOfDay(DateUtil.yesterday()).toDateStr())
.build());
return XListResult.success(XCopyUtils.copyNewList(list, GetWellheadDailyProductionSituationOutput.class));
}
......
......@@ -84,6 +84,6 @@
STARTHOURS AS PRODUCTION_TIME,
DAILY_LIQUID_PRODUCTION
FROM WELLHEAD_DAILY_PRODUCTION_SITUATION
WHERE TRUNC(DATA_DATE) = #{dataDate}
WHERE DATA_DATE = #{dataDate}
</select>
</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