Commit e37d3999 authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.修复登录页面登录接口验证码输入后不需要验证直接能登录的问题;
2.长庆演示,首页展示大屏功能修改,修改线路详情接口,增加查询日平均用电量逻辑,同时重构查询日产液量和日发电量逻辑,更新接口文档并完成接口冒烟测试,同时生成用例;
3.长庆极短期间开优化随动算法功能开发,设置自定义参数,初步完成极短时间,间开时间段优化测试功能;
4.间开制度管理模块,间开制度关联井口信息表表结构修改,增加"单次最高开井时长(h)","单次最低开井时长(h)","单次最高关井时长(h)","单次最低关井时长(h)"字段,同时修改数据表对应代码实体及表单参数,修改部分相关模块功能查询修改逻辑;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 3734e275
......@@ -86,4 +86,8 @@ public class PlantPredictedPowerDataEnt implements Serializable {
@XText("创建时间")
@TableField
private Date createTime;
@XText("结束时间")
@TableField(exist = false)
private Date endTime;
}
package pps.core.base.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
......@@ -70,6 +69,11 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
//取未读邮件
Store store = null;
Folder folder = null;
List<PlantPredictedPowerDataEnt> deleteList = new ArrayList<>(2048);
List<PlantPredictedPowerDataEnt> batchList = new ArrayList<>(2048);
List<String> timeList = Arrays.asList("15:00", "30:00", "45:00");
DateTime create = DateTime.of(DateUtil.now(), "yyyy-MM-dd HH");
DateTime end = DateUtil.offsetDay(create, 7);
try {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
......@@ -90,17 +94,11 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
//按照cityCode分组
Map<String, List<BasePhotovoltaicPlantView>> plantMap = plantList.stream()
.collect(Collectors.groupingBy(BasePhotovoltaicPlantView::getCityCode));
PlantPredictedPowerDataMapper mapper = context.getBean(PlantPredictedPowerDataMapper.class);
PlantPredictedPowerDataViewMapper dataViewMapper = context.getBean(PlantPredictedPowerDataViewMapper.class);
List<String> timeList = Arrays.asList("15:00", "30:00", "45:00");
ReceivedIMAPMail re;
for (Message message : messageList) {
re = new ReceivedIMAPMail((MimeMessage) message);
String subject = re.getSubject();
logger.info("------ weatherDataProcess subject : {}", subject);
String info = DateTime.now().offset(DateField.MINUTE, -5).toString("yyyyMMddHHmm") + "天气预测数据";
logger.info("------ weatherDataProcess info : {}", info);
if (!CharSequenceUtil.equals(subject, info)) {
if (!CharSequenceUtil.endWith(subject, "天气预测数据")) {
continue;
}
//读取附件
......@@ -124,13 +122,19 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
}
List<DailyData> dailyDataList = cityDataMap.get(cityCode);
List<BasePhotovoltaicPlantView> plantViewList = plantMap.get(cityCode);
//删除数据
for (BasePhotovoltaicPlantView plantView : plantViewList) {
deleteList.add(PlantPredictedPowerDataEnt.builder()
.plantId(plantView.getId())
.createTime(create)
.endTime(end)
.build());
}
//遍历预测数据列表
for (DailyData dailyData : dailyDataList) {
for (BasePhotovoltaicPlantView plant : plantViewList) {
List<PlantPredictedPowerDataEnt> batchList = new ArrayList<>(2048);
List<PlantPredictedPowerDataEnt> deleteList = new ArrayList<>(2048);
List<PlantPredictedPowerDataEnt> allList = new ArrayList<>(2048);
List<PlantPredictedPowerDataEnt> objList = new ArrayList<>(2048);
List<PlantPredictedPowerDataEnt> allList = new ArrayList<>(128);
List<PlantPredictedPowerDataEnt> objList = new ArrayList<>(128);
DateTime dateTime = DateTime.of(dailyData.getDateTime());
int hours = 0;
String plantId = plant.getId();
......@@ -154,13 +158,6 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
this.int2Str(dateTime.dayOfMonth())
);
// 5.执行SQL
deleteList.add(PlantPredictedPowerDataEnt.builder()
.plantId(plantId)
.yearTime(dao.getYearTime())
.monthTime(dao.getMonthTime())
.dayTime(dao.getDayTime())
.hourTime(dao.getHourTime())
.build());
allList.add(dao);
PlantPredictedPowerDataEnt isExit = objList.stream().filter(item ->
CharSequenceUtil.equals(item.getYearTime(), dao.getYearTime()) &&
......@@ -178,7 +175,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
for (int i = 0; i < objList.size() - 1; i++) {
for (int y = 1; y < 3; y++) {
PlantPredictedPowerDataEnt dataEnt = objList.get(i);
date = DateUtil.parseDate(dataEnt.getDataDate());
date = DateTime.of(dataEnt.getDataDate(), "yyyy-MM-dd HH:mm");
String hourString;
Integer hourTime = Integer.valueOf(dataEnt.getHourTime());
if (hourTime.equals(23)) {
......@@ -205,13 +202,6 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
this.int2Str(date.dayOfMonth())
);
// 5.执行SQL
deleteList.add(PlantPredictedPowerDataEnt.builder()
.plantId(plantId)
.yearTime(dao.getYearTime())
.monthTime(dao.getMonthTime())
.dayTime(dao.getDayTime())
.hourTime(dao.getHourTime())
.build());
allList.add(dao);
}
}
......@@ -254,21 +244,41 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
}
}
}
}
}
}
logger.info("------ weatherDataProcess del temp file path: {}", tempFilePath);
FileUtil.del(tempFilePath);
message.setFlag(Flags.Flag.DELETED, true);
}
}
} catch (MessagingException e) {
logger.error("------ weatherDataProcess MessagingException", e);
throw new XServiceException(e);
} catch (IOException e) {
logger.error("------ weatherDataProcess IOException", e);
throw new XServiceException(e);
} catch (ParseException e) {
logger.error("------ weatherDataProcess ParseException", e);
throw new XServiceException(e);
} finally {
logger.info("------ weatherDataProcess finally close");
NioUtil.close(folder);
NioUtil.close(store);
}
PlantPredictedPowerDataMapper mapper = context.getBean(PlantPredictedPowerDataMapper.class);
PlantPredictedPowerDataViewMapper dataViewMapper = context.getBean(PlantPredictedPowerDataViewMapper.class);
int size;
if (CollUtil.isNotEmpty(deleteList)) {
size = deleteList.size();
logger.info("------ weatherDataProcess batchDelete delete plantId: {} size: {}", plantId, size);
logger.info("------ weatherDataProcess batchDelete delete plantId: {}", size);
if (size > BaseUtils.BATCH_SIZE) {
List<List<PlantPredictedPowerDataEnt>> subList = BaseUtils.getSubList(deleteList);
for (List<PlantPredictedPowerDataEnt> list : subList) {
LambdaQueryWrapper<PlantPredictedPowerDataEnt> wrapper = new LambdaQueryWrapper<PlantPredictedPowerDataEnt>()
.eq(PlantPredictedPowerDataEnt::getPlantId, plantId);
LambdaQueryWrapper<PlantPredictedPowerDataEnt> wrapper = new LambdaQueryWrapper<>();
for (PlantPredictedPowerDataEnt dataEnt : list) {
wrapper.or(w -> w.eq(PlantPredictedPowerDataEnt::getPlantId, plantId)
.eq(PlantPredictedPowerDataEnt::getYearTime, dataEnt.getYearTime())
.eq(PlantPredictedPowerDataEnt::getMonthTime, dataEnt.getMonthTime())
.eq(PlantPredictedPowerDataEnt::getDayTime, dataEnt.getDayTime())
.eq(PlantPredictedPowerDataEnt::getHourTime, dataEnt.getHourTime())
wrapper.or(w -> w.eq(PlantPredictedPowerDataEnt::getPlantId, dataEnt.getPlantId())
.between(PlantPredictedPowerDataEnt::getDataDate, dataEnt.getCreateTime(), dataEnt.getEndTime())
);
}
mapper.delete(wrapper);
......@@ -276,11 +286,8 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
} else {
LambdaQueryWrapper<PlantPredictedPowerDataEnt> wrapper = new LambdaQueryWrapper<>();
for (PlantPredictedPowerDataEnt dataEnt : deleteList) {
wrapper.or(w -> w.eq(PlantPredictedPowerDataEnt::getPlantId, plantId)
.eq(PlantPredictedPowerDataEnt::getYearTime, dataEnt.getYearTime())
.eq(PlantPredictedPowerDataEnt::getMonthTime, dataEnt.getMonthTime())
.eq(PlantPredictedPowerDataEnt::getDayTime, dataEnt.getDayTime())
.eq(PlantPredictedPowerDataEnt::getHourTime, dataEnt.getHourTime())
wrapper.or(w -> w.eq(PlantPredictedPowerDataEnt::getPlantId, dataEnt.getPlantId())
.between(PlantPredictedPowerDataEnt::getDataDate, dataEnt.getCreateTime(), dataEnt.getEndTime())
);
}
mapper.delete(wrapper);
......@@ -288,7 +295,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
}
if (CollUtil.isNotEmpty(batchList)) {
size = batchList.size();
logger.info("------ weatherDataProcess batchList insert plantId: {} size: {}", plantId, size);
logger.info("------ weatherDataProcess batchList insert size: {}", size);
if (size > BaseUtils.BATCH_SIZE) {
List<List<PlantPredictedPowerDataEnt>> subList = BaseUtils.getSubList(batchList);
subList.forEach(dataViewMapper::insertBatch);
......@@ -296,28 +303,6 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
dataViewMapper.insertBatch(batchList);
}
}
}
}
}
logger.info("------ weatherDataProcess del temp file path: {}", tempFilePath);
FileUtil.del(tempFilePath);
message.setFlag(Flags.Flag.DELETED, true);
}
}
} catch (MessagingException e) {
logger.error("------ weatherDataProcess MessagingException", e);
throw new XServiceException(e);
} catch (IOException e) {
logger.error("------ weatherDataProcess IOException", e);
throw new XServiceException(e);
} catch (ParseException e) {
logger.error("------ weatherDataProcess ParseException", e);
throw new XServiceException(e);
} finally {
logger.info("------ weatherDataProcess finally close");
NioUtil.close(folder);
NioUtil.close(store);
}
return XServiceResult.OK;
}
......
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