Commit d6ca9685 authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.系统管理模块,查询线路及组织机构树接口修改,增加查询逻辑,通过线路名称模糊查询树列表,完成接口冒烟测试并同步线上接口文档;
2.系统管理模块,查询光伏电站及组织机构树接口修改,增加查询逻辑,通过电站名称模糊查询树列表,完成接口冒烟测试并同步线上接口文档;
3.基础信息配置模块,新增市电峰谷导入模板下载接口,完成接口冒烟测试并同步线上接口文档;
4.基础信息配置模块,市电峰谷模板下载接口修改,增加多选月份导出配置数据逻辑,修改线上接口文档并完成接口冒烟测试;
5.基础信息配置模块,新增市电峰谷数据导入接口,增加导入数据校验逻辑,完成接口冒烟测试并添加线上接口文档;
6.基础间开配置模块,新增编辑制度模板导出接口,添加线上接口文档并完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 9daec2a4
......@@ -20,6 +20,7 @@ public enum BusinessError implements XError {
CannotBeDeleted(2108, "基础制度无法删除"),
Expired(2109, "已过期,无法重新校准"),
UnOpen(2110, "功能暂未开放"),
UndiscoveredData(2111, "未发现数据"),
;
private int code;
......
......@@ -11,7 +11,10 @@ import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy
import pps.core.common.constant.BusinessConstant;
import pps.core.common.excel.util.EasyExcelUtil;
import pps.core.common.excel.util.ExcelStyleTool;
import pps.core.space.enums.BusinessError;
import pps.core.space.service.data.base_excel.ExcelSpaceDurationOutput;
import pps.core.space.service.data.base_excel.ExcelSpaceOptimizeTemplate;
import pps.core.space.service.data.base_excel.ExcelSpaceWellheadOutput;
import pps.core.space.service.data.base_excel.ImportExcelInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
......@@ -21,9 +24,12 @@ import xstartup.base.tool.XStorageTool;
import xstartup.data.XFileResult;
import xstartup.data.XFileType;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiUpload;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
......@@ -69,12 +75,12 @@ public class ExcelService {
* @return {@link XServiceResult }
*/
@XText("编辑制度导入")
@XApiUpload(anonymous = true)
public XServiceResult importPriceStrategy(XContext context, ImportExcelInput input) {
@XApiUpload
public XSingleResult<ExcelSpaceWellheadOutput> importPriceStrategy(XContext context, ImportExcelInput input) {
List<ExcelSpaceOptimizeTemplate> list = EasyExcelUtil.getExcelDataAndCheck(input.getFile(), ExcelSpaceOptimizeTemplate.class,
null, null);
if (CollUtil.isEmpty(list)) {
return XServiceResult.OK;
return XSingleResult.error(context, BusinessError.UndiscoveredData);
}
//设置行号并转换开始/结束时间
List<Integer> errorRowList = new ArrayList<>(list.size());
......@@ -123,6 +129,60 @@ public class ExcelService {
throw new XServiceException(stringBuilder.toString());
}
}
return XServiceResult.OK;
//计算随动时间
List<ExcelSpaceDurationOutput> durationList = new ArrayList<>(list.size());
long runDuration = 0;
long maxOpen = 0;
long minOpen = -1;
long maxClose = 0;
long minClose = -1;
for (int i = 0; i < list.size(); i++) {
ExcelSpaceOptimizeTemplate template = list.get(i);
if (maxOpen < template.getDuration()) {
maxOpen = template.getDuration();
}
if (minOpen > template.getDuration() || minOpen == -1) {
minOpen = template.getDuration();
}
if (i + 1 < list.size()) {
long between = DateUtil.between(template.getEnd(), list.get(i + 1).getStart(), DateUnit.MINUTE);
if (maxClose < between) {
maxClose = between;
}
if (minClose > between || minClose == -1) {
minClose = between;
}
}
runDuration += template.getDuration();
durationList.add(
ExcelSpaceDurationOutput.builder()
.openWellTime(template.getStartTime())
.closeWellTime(template.getEndTime())
.build()
);
}
return XSingleResult.success(ExcelSpaceWellheadOutput.builder()
.durationList(durationList)
.runDuration(this.conversionHour(runDuration))
.maxOpen(this.conversionHour(maxOpen))
.minOpen(this.conversionHour(minOpen))
.maxClose(this.conversionHour(maxClose))
.minClose(this.conversionHour(minClose))
.build());
}
/*---------------------------- private ----------------------------*/
/**
* 转换小时
*
* @param duration 期间
* @return {@link BigDecimal }
*/
private BigDecimal conversionHour(long duration) {
if (0 == duration) {
return BigDecimal.ZERO;
}
return new BigDecimal(duration).divide(BusinessConstant.SIXTY, 1, RoundingMode.HALF_UP);
}
}
package pps.core.space.service.data.base_excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
/**
* Excel导入响应
*
* @author ZWT
* @date 2024/05/14
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ExcelSpaceDurationOutput {
@XText("开井时间")
private String openWellTime;
@XText("关井时间")
private String closeWellTime;
}
package pps.core.space.service.data.base_excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.List;
/**
* Excel导入响应
*
* @author ZWT
* @date 2024/05/14 14:44
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ExcelSpaceWellheadOutput {
@XText("运行时长(小时/天)")
private BigDecimal runDuration;
@XText("单次最高开井时长(h)")
private BigDecimal maxOpen;
@XText("单次最低开井时长(h)")
private BigDecimal minOpen;
@XText("单次最高关井时长(h)")
private BigDecimal maxClose;
@XText("单次最低关井时长(h)")
private BigDecimal minClose;
/**
* 间开制度小间开时段配置
*/
@XText("间开制度小间开时段配置")
private List<ExcelSpaceDurationOutput> durationList;
}
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