Commit 05e9bbcc authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.开发间开优化结果统计功能,创建间开优化效果统计表,生成对应代码;
2.修改15天,10天,3天,1天间开优化功能,修改代码结构;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 601cb24a
package pps.core.common.utils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Collections;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collector;
/**
* 收集器util
*
* @author ZWT
* @date 2024/06/03
*/
public class CollectorsUtil {
static final Set<Collector.Characteristics> CH_NOID = Collections.emptySet();
private CollectorsUtil() {
}
@SuppressWarnings("unchecked")
private static <I, R> Function<I, R> castingIdentity() {
return i -> (R) i;
}
//求和方法
public static <T> Collector<T, ?, BigDecimal> summingBigDecimal(ToBigDecimalFunction<? super T> mapper) {
return new CollectorImpl<>(
() -> new BigDecimal[]{BigDecimal.ZERO},
(a, t) -> {
a[0] = a[0].add(mapper.applyAsBigDecimal(t));
},
(a, b) -> {
a[0] = a[0].add(b[0]);
return a;
},
a -> a[0], CH_NOID);
}
//求最大值
public static <T> Collector<T, ?, BigDecimal> maxBy(ToBigDecimalFunction<? super T> mapper) {
return new CollectorImpl<>(
() -> new BigDecimal[]{new BigDecimal(Long.MIN_VALUE)},
(a, t) -> {
a[0] = a[0].max(mapper.applyAsBigDecimal(t));
},
(a, b) -> {
a[0] = a[0].max(b[0]);
return a;
},
a -> a[0], CH_NOID);
}
//求最小值
public static <T> Collector<T, ?, BigDecimal> minBy(ToBigDecimalFunction<? super T> mapper) {
return new CollectorImpl<>(
() -> new BigDecimal[]{new BigDecimal(Long.MAX_VALUE)},
(a, t) -> {
a[0] = a[0].min(mapper.applyAsBigDecimal(t));
},
(a, b) -> {
a[0] = a[0].min(b[0]);
return a;
},
a -> a[0], CH_NOID);
}
/**
* 求平均值
*
* @param mapper
* @param newScale 保留newScale位小数
* @param roundingMode 舍去规则(0 <= roundingMode <= 7)
* @param <T>
* @return
*/
public static <T> Collector<T, ?, BigDecimal> averagingBigDecimal(ToBigDecimalFunction<? super T> mapper, int newScale, int roundingMode) {
return new CollectorImpl<>(
() -> new BigDecimal[]{BigDecimal.ZERO, BigDecimal.ZERO},
(a, t) -> {
a[0] = a[0].add(mapper.applyAsBigDecimal(t));
a[1] = a[1].add(BigDecimal.ONE);
},
(a, b) -> {
a[0] = a[0].add(b[0]);
return a;
},
a -> a[0].divide(a[1], RoundingMode.HALF_UP).setScale(newScale, roundingMode), CH_NOID);
}
static class CollectorImpl<T, A, R> implements Collector<T, A, R> {
private final Supplier<A> supplier;
private final BiConsumer<A, T> accumulator;
private final BinaryOperator<A> combiner;
private final Function<A, R> finisher;
private final Set<Characteristics> characteristics;
CollectorImpl(Supplier<A> supplier, BiConsumer<A, T> accumulator, BinaryOperator<A> combiner,
Function<A, R> finisher, Set<Characteristics> characteristics) {
this.supplier = supplier;
this.accumulator = accumulator;
this.combiner = combiner;
this.finisher = finisher;
this.characteristics = characteristics;
}
@Override
public BiConsumer<A, T> accumulator() {
return accumulator;
}
@Override
public Supplier<A> supplier() {
return supplier;
}
@Override
public BinaryOperator<A> combiner() {
return combiner;
}
@Override
public Function<A, R> finisher() {
return finisher;
}
@Override
public Set<Characteristics> characteristics() {
return characteristics;
}
}
}
\ No newline at end of file
......@@ -10,8 +10,6 @@ import com.github.pagehelper.PageInfo;
import com.github.pagehelper.page.PageMethod;
import pps.cloud.space.service.ISpaceInstitutionDetailCloudService;
import pps.cloud.system.service.SysOrganizationCloudService;
import pps.cloud.system.service.data.sys_organization.GetOuListByOuIdsInput;
import pps.cloud.system.service.data.sys_organization.GetOuListTreeOutput;
import pps.cloud.system.service.data.sys_organization.GetSysOrganizationViewInput;
import pps.cloud.system.service.data.sys_organization.GetSysOrganizationViewOutput;
import pps.core.base.entity.*;
......@@ -43,7 +41,6 @@ import xstartup.feature.api.annotation.XApiPost;
import xstartup.helper.XTransactionHelper;
import java.util.*;
import java.util.stream.Collectors;
/**
* 输电线路配置模块
......@@ -383,25 +380,6 @@ public class BasePowerLineService {
.orElse(null);
}
/**
* 通过组织机构ID集合获取详情列表
*
* @param context 上下文
* @param ouIds ou id
* @return {@link Map}<{@link String}, {@link String}>
*/
private Map<String, String> getOuMapByOuIds(XContext context, List<String> ouIds) {
GetOuListByOuIdsInput input = new GetOuListByOuIdsInput();
input.setOuIdList(ouIds);
SysOrganizationCloudService organizationCloudService = context.getBean(SysOrganizationCloudService.class);
XListResult<GetOuListTreeOutput> ouListByOuIds = organizationCloudService.getOuListByOuIds(context, input);
ouListByOuIds.throwIfFail();
return ouListByOuIds.getResult().stream()
.collect(Collectors.toMap(
GetOuListTreeOutput::getOuId, GetOuListTreeOutput::getOuName
));
}
/**
* 通过线路ID获取线路信息
*
......
......@@ -275,7 +275,6 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
if (CollUtil.isNotEmpty(batchList)) {
WeatherBureauDataViewMapper dataViewMapper = context.getBean(WeatherBureauDataViewMapper.class);
int size = batchList.size();
context.getLogger().info("------ insertWindTurbineList batchList insert size: {}", size);
if (size > BaseUtils.BATCH_SIZE) {
List<List<WeatherBureauDataView>> subList = BaseUtils.getSubList(batchList);
subList.forEach(dataViewMapper::insertBatch);
......
......@@ -13,7 +13,6 @@ import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
import pps.core.common.session.PpsUserSession;
......@@ -31,8 +30,6 @@ import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.core.base.helper.XThreadHelper;
import xstartup.data.XListResult;
import xstartup.data.XPageResult;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
......@@ -54,23 +51,6 @@ import java.util.stream.Collectors;
@XText("基础间开配置模块")
public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
@XApiGet(anonymous = true)
public XServiceResult test(XContext context) {
XThreadHelper.async(() -> {
context.getLogger().info("------------- optimize space begin -------------");
SpaceOptimizeUltraCloudServiceImpl bean3 = context.getBean(SpaceOptimizeUltraCloudServiceImpl.class);
bean3.optimizeUltraJob(context);
SpaceOptimizeLongCloudServiceImpl bean = context.getBean(SpaceOptimizeLongCloudServiceImpl.class);
bean.optimizeLongJob(context);
SpaceOptimizeMidCloudServiceImpl bean1 = context.getBean(SpaceOptimizeMidCloudServiceImpl.class);
bean1.optimizeMidJob(context);
SpaceOptimizeShortCloudServiceImpl bean2 = context.getBean(SpaceOptimizeShortCloudServiceImpl.class);
bean2.optimizeShortJob(context);
context.getLogger().info("------------- optimize space end -------------");
});
return XServiceResult.OK;
}
/**
* 基础间开配置--新增
*
......@@ -384,33 +364,6 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
@XText("校准历史--重新优化")
public XServiceResult anewOptimizeInstitution(XContext context, UpdateSpaceInstitutionDetailInput input) {
return XServiceResult.error(context, BusinessError.UnOpen);
// String historyId = input.getHistoryId();
// if (CharSequenceUtil.isEmpty(historyId)) {
// return XServiceResult.error(context, BusinessError.LackOfHistoryRecord);
// }
// String institutionId = input.getId();
// SpaceInstitutionDetailMapper mapper = context.getBean(SpaceInstitutionDetailMapper.class);
// SpaceInstitutionDetailEnt detail = this.getInstitutionDetail(mapper, institutionId);
// if (ObjectUtil.isNull(detail)) {
// return XServiceResult.error(context, XError.NotFound);
// }
// //查校准历史详情
// SpaceCalibrationHistoryMapper historyMapper = context.getBean(SpaceCalibrationHistoryMapper.class);
// SpaceCalibrationHistoryEnt historyEnt = historyMapper.selectById(historyId);
// //过了校准日期不能再校准
// Date calibrationDate = historyEnt.getCalibrationDate();
// if (DateUtil.date().compareTo(calibrationDate) > 0) {
// return XServiceResult.error(context, BusinessError.Expired);
// }
// PpsUserSession session = context.getSession(PpsUserSession.class);
// return XTransactionHelper.begin(context, () -> {
// this.updateInstitutionDetail(context, session, mapper, institutionId, input, detail);
// //制度优化
// this.institutionOptimizeInitialize(context, detail);
// //校准周期初始化
// this.calibrationHistoryInitialize(context, detail, session);
// return XServiceResult.OK;
// });
}
/**
......@@ -678,20 +631,6 @@ public class SpaceInstitutionDetailService extends SpaceOptimizeBaseService {
return historyEnt;
}
/**
* 条件查询输电线路井口列表
*
* @param context 上下文
* @param input 输入
* @return {@link List}<{@link DynamicQueryBasePowerLineWellheadViewOutput}>
*/
private List<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input) {
IBasePowerLineCloudService lineService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> result = lineService.getPowerLineWellheadList(context, input);
result.throwIfFail();
return result.getResult();
}
/**
* 保存策略关联信息
*
......
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