Commit fc9164c7 authored by ZWT's avatar ZWT

feat(零碳): 长庆演示系统新增功能

1.修改第三方日累计数据推送表表结构,增加日累计储能放电量字段,同时修改代码对应实体及mapper文件,修改相关接口增加储能日累计放电量接收逻辑;
2.修改首页井场收益分析模块接口,修改获取储能累计放电量逻辑;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 57c8c40a
...@@ -108,7 +108,17 @@ public class BusinessConstant { ...@@ -108,7 +108,17 @@ public class BusinessConstant {
/** /**
* 六十 * 六十
*/ */
public static final BigDecimal SIXTY = new BigDecimal(60); public static final BigDecimal BIG_DECIMAL_60 = BigDecimal.valueOf(60);
/**
* 100
*/
public static final BigDecimal BIG_DECIMAL_100 = BigDecimal.valueOf(100);
/**
* 10000
*/
public static final BigDecimal BIG_DECIMAL_10000 = BigDecimal.valueOf(10000);
/*------------------------------日期------------------------------*/ /*------------------------------日期------------------------------*/
......
...@@ -20,12 +20,11 @@ import java.util.Map; ...@@ -20,12 +20,11 @@ import java.util.Map;
@AllArgsConstructor @AllArgsConstructor
public class SelectedSheetWriteHandler implements SheetWriteHandler { public class SelectedSheetWriteHandler implements SheetWriteHandler {
private final Map<Integer, ExcelSelectedResolve> selectedMap;
/** /**
* 设置阈值,避免生成的导入模板下拉值获取不到,可自行设置数量大小 * 设置阈值,避免生成的导入模板下拉值获取不到,可自行设置数量大小
*/ */
private static final Integer LIMIT_NUMBER = 25; private static final Integer LIMIT_NUMBER = 25;
private final Map<Integer, ExcelSelectedResolve> selectedMap;
/** /**
* Called before create the sheet * Called before create the sheet
......
...@@ -18,10 +18,6 @@ import java.util.Set; ...@@ -18,10 +18,6 @@ import java.util.Set;
*/ */
public class ValidationUtil { public class ValidationUtil {
public static Validator getValidator() {
return validator;
}
static Validator validator; static Validator validator;
static { static {
...@@ -29,6 +25,10 @@ public class ValidationUtil { ...@@ -29,6 +25,10 @@ public class ValidationUtil {
validator = validatorFactory.getValidator(); validator = validatorFactory.getValidator();
} }
public static Validator getValidator() {
return validator;
}
/** /**
* 进行验证 * 进行验证
* *
......
...@@ -12,10 +12,12 @@ public class Builder<T> { ...@@ -12,10 +12,12 @@ public class Builder<T> {
public Builder(Class<T> clazz) { public Builder(Class<T> clazz) {
this.clazz = clazz; this.clazz = clazz;
} }
public Builder(Class<T> clazz, Init<T> init) { public Builder(Class<T> clazz, Init<T> init) {
this.clazz = clazz; this.clazz = clazz;
this.init = init; this.init = init;
} }
public Builder(Class<T> clazz, Init<T> init, FieldsValidator<T> fieldsValidator) { public Builder(Class<T> clazz, Init<T> init, FieldsValidator<T> fieldsValidator) {
this.clazz = clazz; this.clazz = clazz;
this.init = init; this.init = init;
......
package pps.core.common.utils; package pps.core.common.utils;
import pps.core.common.constant.BusinessConstant;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.DecimalFormat; import java.text.DecimalFormat;
...@@ -71,7 +73,7 @@ public class BigDecimalUtil { ...@@ -71,7 +73,7 @@ public class BigDecimalUtil {
public static String getPercentStr(int total, int part) { public static String getPercentStr(int total, int part) {
if (total == 0) return "100%"; if (total == 0) return "100%";
if (part == 0) return "0%"; if (part == 0) return "0%";
return new BigDecimal(part).divide(new BigDecimal(total), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)) + "%"; return new BigDecimal(part).divide(new BigDecimal(total), 2, RoundingMode.HALF_UP).multiply(BusinessConstant.BIG_DECIMAL_100) + "%";
} }
/** /**
......
...@@ -26,6 +26,7 @@ public class CounterBuilder { ...@@ -26,6 +26,7 @@ public class CounterBuilder {
private final ConcurrentHashMap<String, AtomicLong> counterMap = new ConcurrentHashMap<>(); private final ConcurrentHashMap<String, AtomicLong> counterMap = new ConcurrentHashMap<>();
private final ConcurrentHashMap<String, CounterBuildItemInfoType> fileInfoTypeMap = new ConcurrentHashMap<>(); private final ConcurrentHashMap<String, CounterBuildItemInfoType> fileInfoTypeMap = new ConcurrentHashMap<>();
private String groupName; private String groupName;
public CounterBuilder() { public CounterBuilder() {
this.setFieldValue("__COUNTERID__", counterId); this.setFieldValue("__COUNTERID__", counterId);
this.setFieldValue("__CREATETIME__", DateUtil.getCurrentDateTime()); this.setFieldValue("__CREATETIME__", DateUtil.getCurrentDateTime());
......
...@@ -38,6 +38,7 @@ public enum WellKnownRegex { ...@@ -38,6 +38,7 @@ public enum WellKnownRegex {
private int id; private int id;
private String expression; private String expression;
WellKnownRegex(int _id, String _expression) { WellKnownRegex(int _id, String _expression) {
this.id = _id; this.id = _id;
this.expression = _expression; this.expression = _expression;
......
...@@ -16,6 +16,7 @@ public enum ImportFieldDic { ...@@ -16,6 +16,7 @@ public enum ImportFieldDic {
private String col; private String col;
private String name; private String name;
private Integer sort; private Integer sort;
ImportFieldDic(String col, String name, Integer sort) { ImportFieldDic(String col, String name, Integer sort) {
this.col = col; this.col = col;
this.name = name; this.name = name;
......
...@@ -18,17 +18,15 @@ import java.util.List; ...@@ -18,17 +18,15 @@ import java.util.List;
public class ThirdApiWeatherDataListener implements ReadListener<ThirdApiWeatherExcelData> { public class ThirdApiWeatherDataListener implements ReadListener<ThirdApiWeatherExcelData> {
private XContext context; private XContext context;
public ThirdApiWeatherDataListener(XContext context) {
this.context = context;
}
/** /**
* 缓存的数据 * 缓存的数据
*/ */
private List<ThirdApiWeatherExcelData> cachedDataList = new ArrayList<>(4096); private List<ThirdApiWeatherExcelData> cachedDataList = new ArrayList<>(4096);
public ThirdApiWeatherDataListener(XContext context) {
this.context = context;
}
@Override @Override
public void invoke(ThirdApiWeatherExcelData thirdApiWeatherData, AnalysisContext analysisContext) { public void invoke(ThirdApiWeatherExcelData thirdApiWeatherData, AnalysisContext analysisContext) {
cachedDataList.add(thirdApiWeatherData); cachedDataList.add(thirdApiWeatherData);
...@@ -37,6 +35,6 @@ public class ThirdApiWeatherDataListener implements ReadListener<ThirdApiWeather ...@@ -37,6 +35,6 @@ public class ThirdApiWeatherDataListener implements ReadListener<ThirdApiWeather
@Override @Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) { public void doAfterAllAnalysed(AnalysisContext analysisContext) {
BaseLineService bean = context.getBean(BaseLineService.class); BaseLineService bean = context.getBean(BaseLineService.class);
bean.saveHistory(context,cachedDataList); bean.saveHistory(context, cachedDataList);
} }
} }
...@@ -4,6 +4,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,6 +4,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import pps.core.base.entity.BasePhotovoltaicPlantMapeAdjEnt; import pps.core.base.entity.BasePhotovoltaicPlantMapeAdjEnt;
@Repository(value="pps.core.base.mapper.BasePhotovoltaicPlantMapeAdjMapper") @Repository(value = "pps.core.base.mapper.BasePhotovoltaicPlantMapeAdjMapper")
public interface BasePhotovoltaicPlantMapeAdjMapper extends BaseMapper<BasePhotovoltaicPlantMapeAdjEnt> { public interface BasePhotovoltaicPlantMapeAdjMapper extends BaseMapper<BasePhotovoltaicPlantMapeAdjEnt> {
} }
...@@ -5,8 +5,9 @@ import pps.core.base.entity.BasePhotovoltaicPlantMapeAdjView; ...@@ -5,8 +5,9 @@ import pps.core.base.entity.BasePhotovoltaicPlantMapeAdjView;
import java.util.List; import java.util.List;
@Repository(value="pps.core.base.mapper.BasePhotovoltaicPlantMapeAdjViewMapper") @Repository(value = "pps.core.base.mapper.BasePhotovoltaicPlantMapeAdjViewMapper")
public interface BasePhotovoltaicPlantMapeAdjViewMapper { public interface BasePhotovoltaicPlantMapeAdjViewMapper {
BasePhotovoltaicPlantMapeAdjView selectOne(BasePhotovoltaicPlantMapeAdjView record); BasePhotovoltaicPlantMapeAdjView selectOne(BasePhotovoltaicPlantMapeAdjView record);
List<BasePhotovoltaicPlantMapeAdjView> selectList(BasePhotovoltaicPlantMapeAdjView record); List<BasePhotovoltaicPlantMapeAdjView> selectList(BasePhotovoltaicPlantMapeAdjView record);
} }
...@@ -30,18 +30,18 @@ public class BasePhotovoltaicPlantMapeAdjService { ...@@ -30,18 +30,18 @@ public class BasePhotovoltaicPlantMapeAdjService {
@XText("保存数据") @XText("保存数据")
@XApiPost @XApiPost
public XServiceResult saveData(XContext context, CreateBasePhotovoltaicPlantMapeAdjInput input){ public XServiceResult saveData(XContext context, CreateBasePhotovoltaicPlantMapeAdjInput input) {
BasePhotovoltaicPlantMapeAdjMapper mapper = context.getBean(BasePhotovoltaicPlantMapeAdjMapper.class); BasePhotovoltaicPlantMapeAdjMapper mapper = context.getBean(BasePhotovoltaicPlantMapeAdjMapper.class);
BasePhotovoltaicPlantMapeAdjEnt ent = XCopyUtils.copyNewObject(input, BasePhotovoltaicPlantMapeAdjEnt.class); BasePhotovoltaicPlantMapeAdjEnt ent = XCopyUtils.copyNewObject(input, BasePhotovoltaicPlantMapeAdjEnt.class);
if(ent.getMapePlusVal()==null) ent.setMapePlusVal(BigDecimal.ZERO); if (ent.getMapePlusVal() == null) ent.setMapePlusVal(BigDecimal.ZERO);
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
Date date = new Date(); Date date = new Date();
if(input.getId() == null){ if (input.getId() == null) {
ent.setCreateById(session.getId()); ent.setCreateById(session.getId());
ent.setCreateByName(session.getUserName()); ent.setCreateByName(session.getUserName());
ent.setCreateTime(date); ent.setCreateTime(date);
mapper.insert(ent); mapper.insert(ent);
}else{ } else {
ent.setModifyById(session.getId()); ent.setModifyById(session.getId());
ent.setModifyByName(session.getUserName()); ent.setModifyByName(session.getUserName());
ent.setModifyTime(date); ent.setModifyTime(date);
...@@ -52,19 +52,19 @@ public class BasePhotovoltaicPlantMapeAdjService { ...@@ -52,19 +52,19 @@ public class BasePhotovoltaicPlantMapeAdjService {
@XText("获取调整数据") @XText("获取调整数据")
@XApiPost @XApiPost
public XSingleResult<GetBasePhotovoltaicPlantMapeAdjOutput> getData(XContext context, GetBasePhotovoltaicPlantMapeAdjInput input){ public XSingleResult<GetBasePhotovoltaicPlantMapeAdjOutput> getData(XContext context, GetBasePhotovoltaicPlantMapeAdjInput input) {
GetBasePhotovoltaicPlantMapeAdjOutput output = new GetBasePhotovoltaicPlantMapeAdjOutput(); GetBasePhotovoltaicPlantMapeAdjOutput output = new GetBasePhotovoltaicPlantMapeAdjOutput();
//获取电站信息 //获取电站信息
BasePhotovoltaicPlantMapper basePhotovoltaicPlantMapper = context.getBean(BasePhotovoltaicPlantMapper.class); BasePhotovoltaicPlantMapper basePhotovoltaicPlantMapper = context.getBean(BasePhotovoltaicPlantMapper.class);
BasePhotovoltaicPlantEnt basePhotovoltaicPlantEnt = basePhotovoltaicPlantMapper.selectOne(new LambdaQueryWrapper<BasePhotovoltaicPlantEnt>() BasePhotovoltaicPlantEnt basePhotovoltaicPlantEnt = basePhotovoltaicPlantMapper.selectOne(new LambdaQueryWrapper<BasePhotovoltaicPlantEnt>()
.eq(BaseModel::getId, input.getPlantId())); .eq(BaseModel::getId, input.getPlantId()));
if(basePhotovoltaicPlantEnt == null) return XSingleResult.error(500,"未查找到电站信息"); if (basePhotovoltaicPlantEnt == null) return XSingleResult.error(500, "未查找到电站信息");
BasePhotovoltaicPlantMapeAdjViewMapper mapper = context.getBean(BasePhotovoltaicPlantMapeAdjViewMapper.class); BasePhotovoltaicPlantMapeAdjViewMapper mapper = context.getBean(BasePhotovoltaicPlantMapeAdjViewMapper.class);
BasePhotovoltaicPlantMapeAdjView record = new BasePhotovoltaicPlantMapeAdjView(); BasePhotovoltaicPlantMapeAdjView record = new BasePhotovoltaicPlantMapeAdjView();
XCopyUtils.copyObject(input, record); XCopyUtils.copyObject(input, record);
BasePhotovoltaicPlantMapeAdjView view = mapper.selectOne(record); BasePhotovoltaicPlantMapeAdjView view = mapper.selectOne(record);
if(view == null) { if (view == null) {
output.setPlantName(basePhotovoltaicPlantEnt.getStationName()); output.setPlantName(basePhotovoltaicPlantEnt.getStationName());
output.setMapePlusVal(BigDecimal.ZERO); output.setMapePlusVal(BigDecimal.ZERO);
return XSingleResult.success(output); return XSingleResult.success(output);
...@@ -76,7 +76,7 @@ public class BasePhotovoltaicPlantMapeAdjService { ...@@ -76,7 +76,7 @@ public class BasePhotovoltaicPlantMapeAdjService {
@XText("重置调整数据") @XText("重置调整数据")
@XApiPost @XApiPost
public XServiceResult resetData(XContext context, GetBasePhotovoltaicPlantMapeAdjInput input){ public XServiceResult resetData(XContext context, GetBasePhotovoltaicPlantMapeAdjInput input) {
BasePhotovoltaicPlantMapeAdjMapper mapper = context.getBean(BasePhotovoltaicPlantMapeAdjMapper.class); BasePhotovoltaicPlantMapeAdjMapper mapper = context.getBean(BasePhotovoltaicPlantMapeAdjMapper.class);
PpsUserSession session = context.getSession(PpsUserSession.class); PpsUserSession session = context.getSession(PpsUserSession.class);
BasePhotovoltaicPlantMapeAdjEnt ent = new BasePhotovoltaicPlantMapeAdjEnt(); BasePhotovoltaicPlantMapeAdjEnt ent = new BasePhotovoltaicPlantMapeAdjEnt();
...@@ -85,8 +85,8 @@ public class BasePhotovoltaicPlantMapeAdjService { ...@@ -85,8 +85,8 @@ public class BasePhotovoltaicPlantMapeAdjService {
ent.setModifyByName(session.getUserName()); ent.setModifyByName(session.getUserName());
ent.setModifyTime(new Date()); ent.setModifyTime(new Date());
UpdateWrapper<BasePhotovoltaicPlantMapeAdjEnt> ur = new UpdateWrapper<>(); UpdateWrapper<BasePhotovoltaicPlantMapeAdjEnt> ur = new UpdateWrapper<>();
ur.lambda().eq(BasePhotovoltaicPlantMapeAdjEnt::getPlantId,input.getPlantId()).eq(BasePhotovoltaicPlantMapeAdjEnt::getMapeType,input.getMapeType()); ur.lambda().eq(BasePhotovoltaicPlantMapeAdjEnt::getPlantId, input.getPlantId()).eq(BasePhotovoltaicPlantMapeAdjEnt::getMapeType, input.getMapeType());
mapper.update(ent,ur); mapper.update(ent, ur);
return XServiceResult.OK; return XServiceResult.OK;
} }
......
...@@ -214,7 +214,8 @@ public class BasePhotovoltaicPlantService { ...@@ -214,7 +214,8 @@ public class BasePhotovoltaicPlantService {
BasePhotovoltaicPlantMapeAdjView view = mapeAdjMapper.selectOne(record); BasePhotovoltaicPlantMapeAdjView view = mapeAdjMapper.selectOne(record);
if (view != null && view.getMapePlusVal() != null) { if (view != null && view.getMapePlusVal() != null) {
mape = relMape.add(view.getMapePlusVal()); mape = relMape.add(view.getMapePlusVal());
if (mape.compareTo(BigDecimal.valueOf(100)) > 0) mape = BigDecimal.valueOf(100); if (mape.compareTo(BusinessConstant.BIG_DECIMAL_100) > 0)
mape = BusinessConstant.BIG_DECIMAL_100;
} else { } else {
mape = relMape; mape = relMape;
} }
......
<?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.base.mapper.BasePhotovoltaicPlantMapeAdjViewMapper"> <mapper namespace="pps.core.base.mapper.BasePhotovoltaicPlantMapeAdjViewMapper">
<resultMap id="BaseResultMap" type="pps.core.base.entity.BasePhotovoltaicPlantMapeAdjView"> <resultMap id="BaseResultMap" type="pps.core.base.entity.BasePhotovoltaicPlantMapeAdjView">
<id column="id" property="id" jdbcType="INTEGER" /> <id column="id" property="id" jdbcType="INTEGER"/>
<result column="plant_id" property="plantId" jdbcType="VARCHAR" /> <result column="plant_id" property="plantId" jdbcType="VARCHAR"/>
<result column="mape_type" property="mapeType" jdbcType="INTEGER" /> <result column="mape_type" property="mapeType" jdbcType="INTEGER"/>
<result column="mape_plus_val" property="mapePlusVal" jdbcType="DECIMAL" /> <result column="mape_plus_val" property="mapePlusVal" jdbcType="DECIMAL"/>
<result column="create_by_id" property="createById" jdbcType="VARCHAR" /> <result column="create_by_id" property="createById" jdbcType="VARCHAR"/>
<result column="create_by_name" property="createByName" jdbcType="VARCHAR" /> <result column="create_by_name" property="createByName" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="modify_by_id" property="modifyById" jdbcType="VARCHAR" /> <result column="modify_by_id" property="modifyById" jdbcType="VARCHAR"/>
<result column="modify_by_name" property="modifyByName" jdbcType="VARCHAR" /> <result column="modify_by_name" property="modifyByName" jdbcType="VARCHAR"/>
<result column="modify_time" property="modifyTime" jdbcType="TIMESTAMP" /> <result column="modify_time" property="modifyTime" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, id
,
plant_id, plant_id,
mape_type, mape_type,
mape_plus_val, mape_plus_val,
...@@ -24,30 +25,32 @@ ...@@ -24,30 +25,32 @@
modify_by_id, modify_by_id,
modify_by_name, modify_by_name,
modify_time modify_time
</sql> </sql>
<select id="selectOne" parameterType="pps.core.base.entity.BasePhotovoltaicPlantMapeAdjView" resultMap="BaseResultMap"> <select id="selectOne" parameterType="pps.core.base.entity.BasePhotovoltaicPlantMapeAdjView"
select resultMap="BaseResultMap">
<include refid="Base_Column_List" /> select
from base_photovoltaic_plant_mape_adj <include refid="Base_Column_List"/>
<where> from base_photovoltaic_plant_mape_adj
<if test="plantId != null and plantId != ''"> <where>
and plant_id = #{plantId} <if test="plantId != null and plantId != ''">
</if> and plant_id = #{plantId}
<if test="mapeType != null"> </if>
and mape_type = #{mapeType} <if test="mapeType != null">
</if> and mape_type = #{mapeType}
<if test="id != null"> </if>
and id = #{id} <if test="id != null">
</if> and id = #{id}
</where> </if>
order by create_time desc </where>
limit 1 order by create_time desc
</select> limit 1
<select id="selectList" parameterType="pps.core.base.entity.BasePhotovoltaicPlantMapeAdjView" resultMap="BaseResultMap"> </select>
select <select id="selectList" parameterType="pps.core.base.entity.BasePhotovoltaicPlantMapeAdjView"
<include refid="Base_Column_List" /> resultMap="BaseResultMap">
from base_photovoltaic_plant_mape_adj select
where <include refid="Base_Column_List"/>
id=#{id} from base_photovoltaic_plant_mape_adj
</select> where
id=#{id}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -182,6 +182,6 @@ public class ExcelService { ...@@ -182,6 +182,6 @@ public class ExcelService {
if (0 == duration) { if (0 == duration) {
return BigDecimal.ZERO; return BigDecimal.ZERO;
} }
return new BigDecimal(duration).divide(BusinessConstant.SIXTY, 1, RoundingMode.HALF_UP); return new BigDecimal(duration).divide(BusinessConstant.BIG_DECIMAL_60, 1, RoundingMode.HALF_UP);
} }
} }
\ No newline at end of file
...@@ -251,7 +251,7 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -251,7 +251,7 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
List<SpaceOptimizeWeight> weightList = this.calculateWeightList(serviceRating, rangeToList, powerList, strategyList); List<SpaceOptimizeWeight> weightList = this.calculateWeightList(serviceRating, rangeToList, powerList, strategyList);
//每日最小开井时长(分钟) //每日最小开井时长(分钟)
int minOpenMinute = wellhead.getMinOpen() int minOpenMinute = wellhead.getMinOpen()
.multiply(BusinessConstant.SIXTY) .multiply(BusinessConstant.BIG_DECIMAL_60)
.intValue(); .intValue();
//分级取时间段 //分级取时间段
List<SpaceOptimizeWeightDuration> weightDurationList = this.weightListProcessing(ladder, weightList, minOpenMinute); List<SpaceOptimizeWeightDuration> weightDurationList = this.weightListProcessing(ladder, weightList, minOpenMinute);
...@@ -363,7 +363,7 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -363,7 +363,7 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
//计算权重时间轴 //计算权重时间轴
//每日最小开井时长(分钟) //每日最小开井时长(分钟)
int minOpenMinute = tundraStrategyWellhead.getMinOpen() int minOpenMinute = tundraStrategyWellhead.getMinOpen()
.multiply(BusinessConstant.SIXTY) .multiply(BusinessConstant.BIG_DECIMAL_60)
.intValue(); .intValue();
serviceRating = serviceRating.add(tundraStrategyWellhead.getServiceRating()); serviceRating = serviceRating.add(tundraStrategyWellhead.getServiceRating());
List<SpaceOptimizeWeight> weightList = this.calculateWeightList(serviceRating, rangeToList, powerList, strategyList); List<SpaceOptimizeWeight> weightList = this.calculateWeightList(serviceRating, rangeToList, powerList, strategyList);
...@@ -379,7 +379,7 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -379,7 +379,7 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
if (CollUtil.isNotEmpty(closeList)) { if (CollUtil.isNotEmpty(closeList)) {
//每日开井时长 //每日开井时长
int dayOpenMinute = tundraStrategyWellhead.getRunDuration() int dayOpenMinute = tundraStrategyWellhead.getRunDuration()
.multiply(BusinessConstant.SIXTY) .multiply(BusinessConstant.BIG_DECIMAL_60)
.intValue(); .intValue();
//计算需要补的时间 //计算需要补的时间
long supplementaryTime = dayOpenMinute - totalOpenTime; long supplementaryTime = dayOpenMinute - totalOpenTime;
...@@ -895,19 +895,19 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -895,19 +895,19 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
int i, Integer startInterval, int minOpenMinute, SpaceInstitutionWellheadView wellhead, List<SpaceOptimizeWeight> weightList) { int i, Integer startInterval, int minOpenMinute, SpaceInstitutionWellheadView wellhead, List<SpaceOptimizeWeight> weightList) {
//每日开井时长 //每日开井时长
int dayOpenMinute = wellhead.getRunDuration() int dayOpenMinute = wellhead.getRunDuration()
.multiply(BusinessConstant.SIXTY) .multiply(BusinessConstant.BIG_DECIMAL_60)
.intValue(); .intValue();
//每日最大开井时长(分钟) //每日最大开井时长(分钟)
int maxOpenMinute = wellhead.getMaxOpen() int maxOpenMinute = wellhead.getMaxOpen()
.multiply(BusinessConstant.SIXTY) .multiply(BusinessConstant.BIG_DECIMAL_60)
.intValue(); .intValue();
//每日最小关井时长(分钟) //每日最小关井时长(分钟)
int minCloseMinute = wellhead.getMinClose() int minCloseMinute = wellhead.getMinClose()
.multiply(BusinessConstant.SIXTY) .multiply(BusinessConstant.BIG_DECIMAL_60)
.intValue(); .intValue();
//每日最大关井时长(分钟) //每日最大关井时长(分钟)
int maxCloseMinute = wellhead.getMaxClose() int maxCloseMinute = wellhead.getMaxClose()
.multiply(BusinessConstant.SIXTY) .multiply(BusinessConstant.BIG_DECIMAL_60)
.intValue(); .intValue();
//总开井时间 //总开井时间
long sumOpenTime = 0; long sumOpenTime = 0;
......
...@@ -17,6 +17,26 @@ import java.util.List; ...@@ -17,6 +17,26 @@ import java.util.List;
*/ */
@Data @Data
public class GetSpaceOptimizePeriodOutput { public class GetSpaceOptimizePeriodOutput {
/**
* 已优化日期列表
*/
@XText("已优化日期列表")
List<SpaceOptimizeDateOutput> dateList;
/**
* 井口信息
*/
@XText("井口信息")
List<GetSpaceOptimizeWellheadOutput> wellheadList;
/**
* 策略配置列表
*/
@XText("策略配置列表")
List<GetBasePriceStrategyDetailOutput> strategyDetailList;
/**
* 功率预测列表
*/
@XText("功率预测列表")
List<DynamicQueryPlantPredictedPowerOutput> powerGenerationList;
@XText("ID") @XText("ID")
private String id; private String id;
@XText("线路ID") @XText("线路ID")
...@@ -38,24 +58,4 @@ public class GetSpaceOptimizePeriodOutput { ...@@ -38,24 +58,4 @@ public class GetSpaceOptimizePeriodOutput {
*/ */
@XText("电网类型key(字典获取)") @XText("电网类型key(字典获取)")
private String gridTypeKey; private String gridTypeKey;
/**
* 已优化日期列表
*/
@XText("已优化日期列表")
List<SpaceOptimizeDateOutput> dateList;
/**
* 井口信息
*/
@XText("井口信息")
List<GetSpaceOptimizeWellheadOutput> wellheadList;
/**
* 策略配置列表
*/
@XText("策略配置列表")
List<GetBasePriceStrategyDetailOutput> strategyDetailList;
/**
* 功率预测列表
*/
@XText("功率预测列表")
List<DynamicQueryPlantPredictedPowerOutput> powerGenerationList;
} }
...@@ -15,6 +15,7 @@ public enum ImportFieldDic { ...@@ -15,6 +15,7 @@ public enum ImportFieldDic {
private String col; private String col;
private String name; private String name;
private Integer sort; private Integer sort;
ImportFieldDic(String col, String name, Integer sort) { ImportFieldDic(String col, String name, Integer sort) {
this.col = col; this.col = col;
this.name = name; this.name = name;
......
...@@ -18,17 +18,15 @@ import java.util.List; ...@@ -18,17 +18,15 @@ import java.util.List;
public class ThirdActivePowerDataListener implements ReadListener<ThirdActivePowerExcelData> { public class ThirdActivePowerDataListener implements ReadListener<ThirdActivePowerExcelData> {
private XContext context; private XContext context;
public ThirdActivePowerDataListener(XContext context) {
this.context = context;
}
/** /**
* 缓存的数据 * 缓存的数据
*/ */
private List<ThirdActivePowerExcelData> cachedDataList = new ArrayList<>(4096); private List<ThirdActivePowerExcelData> cachedDataList = new ArrayList<>(4096);
public ThirdActivePowerDataListener(XContext context) {
this.context = context;
}
@Override @Override
public void invoke(ThirdActivePowerExcelData thirdApiWeatherData, AnalysisContext analysisContext) { public void invoke(ThirdActivePowerExcelData thirdApiWeatherData, AnalysisContext analysisContext) {
cachedDataList.add(thirdApiWeatherData); cachedDataList.add(thirdApiWeatherData);
......
...@@ -37,7 +37,7 @@ public interface ThirdActivePowerDailyUpdateViewMapper { ...@@ -37,7 +37,7 @@ public interface ThirdActivePowerDailyUpdateViewMapper {
* @return int * @return int
*/ */
int deleteByCurrentDayDataList(@Param(value = "list") List<ThirdActivePowerDailyUpdateView> list, int deleteByCurrentDayDataList(@Param(value = "list") List<ThirdActivePowerDailyUpdateView> list,
@Param(value = "currentDayList") List<Date> currentDayList); @Param(value = "currentDayList") List<Date> currentDayList);
/** /**
* 批量新增 * 批量新增
......
...@@ -812,7 +812,7 @@ public class EnergyConsumptionAnalysisService { ...@@ -812,7 +812,7 @@ public class EnergyConsumptionAnalysisService {
BigDecimal absorptionRate; BigDecimal absorptionRate;
if (powerConsumption.compareTo(BigDecimal.ZERO) > 0) { if (powerConsumption.compareTo(BigDecimal.ZERO) > 0) {
absorptionRate = powerGeneration.divide(powerConsumption, 4, RoundingMode.HALF_UP) absorptionRate = powerGeneration.divide(powerConsumption, 4, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100)); .multiply(BusinessConstant.BIG_DECIMAL_100);
} else { } else {
absorptionRate = BigDecimal.ZERO; absorptionRate = BigDecimal.ZERO;
} }
...@@ -832,7 +832,7 @@ public class EnergyConsumptionAnalysisService { ...@@ -832,7 +832,7 @@ public class EnergyConsumptionAnalysisService {
if (lastPeriod.compareTo(BigDecimal.ZERO) > 0) { if (lastPeriod.compareTo(BigDecimal.ZERO) > 0) {
cycleRatio = currentPeriod.subtract(lastPeriod) cycleRatio = currentPeriod.subtract(lastPeriod)
.divide(lastPeriod, 4, RoundingMode.HALF_UP) .divide(lastPeriod, 4, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100)); .multiply(BusinessConstant.BIG_DECIMAL_100);
} else { } else {
cycleRatio = BigDecimal.ZERO; cycleRatio = BigDecimal.ZERO;
} }
......
...@@ -441,30 +441,30 @@ public class HomePageService { ...@@ -441,30 +441,30 @@ public class HomePageService {
); );
//发电量 //发电量
BigDecimal powerGeneration = analysisEnt.getPhotovoltaicPower() BigDecimal powerGeneration = analysisEnt.getPhotovoltaicPower()
.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP); .divide(BusinessConstant.BIG_DECIMAL_10000, 2, RoundingMode.HALF_UP);
//储能日累计放电量 //储能日累计放电量
BigDecimal energyStorageCapacity = analysisEnt.getEnergyStorageDischarge() BigDecimal energyStorageCapacity = analysisEnt.getEnergyStorageDischarge()
.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP); .divide(BusinessConstant.BIG_DECIMAL_10000, 2, RoundingMode.HALF_UP);
//累计减碳量 //累计减碳量
BigDecimal carbonReduction = analysisEnt.getPhotovoltaicPower() BigDecimal carbonReduction = analysisEnt.getPhotovoltaicPower()
.multiply(BigDecimal.valueOf(6.67)) .multiply(BigDecimal.valueOf(6.67))
.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP); .divide(BusinessConstant.BIG_DECIMAL_10000, 2, RoundingMode.HALF_UP);
//经济效益 //经济效益
BigDecimal economicBenefit = analysisEnt.getPhotovoltaicPower() BigDecimal economicBenefit = analysisEnt.getPhotovoltaicPower()
.multiply(BigDecimal.valueOf(0.6)) .multiply(BigDecimal.valueOf(0.6))
.subtract(analysisEnt.getPhotovoltaicPower() .subtract(analysisEnt.getPhotovoltaicPower()
.multiply(BigDecimal.valueOf(0.28))) .multiply(BigDecimal.valueOf(0.28)))
.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP); .divide(BusinessConstant.BIG_DECIMAL_10000, 2, RoundingMode.HALF_UP);
//绿电占比:累计就地消纳量/累计井场用电量*100% //绿电占比:累计就地消纳量/累计井场用电量*100%
BigDecimal greenElectricityRate = analysisEnt.getInPlaceConsumption() BigDecimal greenElectricityRate = analysisEnt.getInPlaceConsumption()
.multiply(BigDecimal.valueOf(100)) .multiply(BusinessConstant.BIG_DECIMAL_100)
.divide(analysisEnt.getDailyElectricityConsumption(), 2, RoundingMode.HALF_UP); .divide(analysisEnt.getDailyElectricityConsumption(), 2, RoundingMode.HALF_UP);
//余电上网:发电量-就地消纳量 //余电上网:发电量-就地消纳量
BigDecimal avoidPeakRate = analysisEnt.getPhotovoltaicPower() BigDecimal avoidPeakRate = analysisEnt.getPhotovoltaicPower()
.subtract(analysisEnt.getInPlaceConsumption()) .subtract(analysisEnt.getInPlaceConsumption())
.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP); .divide(BusinessConstant.BIG_DECIMAL_10000, 2, RoundingMode.HALF_UP);
return XSingleResult.success(GetIncomeAnalysisOutput.builder() return XSingleResult.success(GetIncomeAnalysisOutput.builder()
.absorptionRate(BigDecimal.valueOf(100)) .absorptionRate(BusinessConstant.BIG_DECIMAL_100)
.avoidPeakRate(avoidPeakRate) .avoidPeakRate(avoidPeakRate)
.energyStorageCapacity(energyStorageCapacity) .energyStorageCapacity(energyStorageCapacity)
.powerGeneration(powerGeneration) .powerGeneration(powerGeneration)
...@@ -689,7 +689,7 @@ public class HomePageService { ...@@ -689,7 +689,7 @@ public class HomePageService {
BigDecimal absorptionRate; BigDecimal absorptionRate;
if (powerConsumption.compareTo(BigDecimal.ZERO) > 0) { if (powerConsumption.compareTo(BigDecimal.ZERO) > 0) {
absorptionRate = powerGeneration.divide(powerConsumption, 4, RoundingMode.HALF_UP) absorptionRate = powerGeneration.divide(powerConsumption, 4, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100)); .multiply(BusinessConstant.BIG_DECIMAL_100);
} else { } else {
absorptionRate = BigDecimal.ZERO; absorptionRate = BigDecimal.ZERO;
} }
......
...@@ -11,6 +11,7 @@ import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowe ...@@ -11,6 +11,7 @@ import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowe
import pps.cloud.system.service.SysOrganizationCloudService; import pps.cloud.system.service.SysOrganizationCloudService;
import pps.cloud.system.service.data.sys_organization.GetAllOuListByOuIdInput; import pps.cloud.system.service.data.sys_organization.GetAllOuListByOuIdInput;
import pps.cloud.system.service.data.sys_organization.GetSysOrganizationViewOutput; import pps.cloud.system.service.data.sys_organization.GetSysOrganizationViewOutput;
import pps.core.common.constant.BusinessConstant;
import pps.core.prediction.entity.EnergyConsumptionAnalysisEnt; import pps.core.prediction.entity.EnergyConsumptionAnalysisEnt;
import pps.core.prediction.entity.ThirdPhotovoltaicPowerEnt; import pps.core.prediction.entity.ThirdPhotovoltaicPowerEnt;
import pps.core.prediction.entity.WellheadDailyProductionSituationEnt; import pps.core.prediction.entity.WellheadDailyProductionSituationEnt;
...@@ -133,7 +134,7 @@ public class ThirdPhotovoltaicPowerService { ...@@ -133,7 +134,7 @@ public class ThirdPhotovoltaicPowerService {
BigDecimal absorptionRate; BigDecimal absorptionRate;
if (powerConsumption.compareTo(BigDecimal.ZERO) > 0) { if (powerConsumption.compareTo(BigDecimal.ZERO) > 0) {
absorptionRate = powerGeneration.divide(powerConsumption, 4, RoundingMode.HALF_UP) absorptionRate = powerGeneration.divide(powerConsumption, 4, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100)); .multiply(BusinessConstant.BIG_DECIMAL_100);
} else { } else {
absorptionRate = BigDecimal.ZERO; absorptionRate = BigDecimal.ZERO;
} }
...@@ -153,7 +154,7 @@ public class ThirdPhotovoltaicPowerService { ...@@ -153,7 +154,7 @@ public class ThirdPhotovoltaicPowerService {
if (lastPeriod.compareTo(BigDecimal.ZERO) > 0) { if (lastPeriod.compareTo(BigDecimal.ZERO) > 0) {
cycleRatio = currentPeriod.subtract(lastPeriod) cycleRatio = currentPeriod.subtract(lastPeriod)
.divide(lastPeriod, 4, RoundingMode.HALF_UP) .divide(lastPeriod, 4, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100)); .multiply(BusinessConstant.BIG_DECIMAL_100);
} else { } else {
cycleRatio = BigDecimal.ZERO; cycleRatio = BigDecimal.ZERO;
} }
......
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