Commit 4384f415 authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.添加easy excel配置,增加转换器,增加全局excel导出样式,增加场站下拉选解析器;
2.开发光伏电站模板导出接口,增加模板导出类,并完成接口冒烟测试及接口文档;
3.间开制度管理模块新增设为基础制度开关接口,添加线上接口文档并完成接口冒烟测试;
4.开发井口配置模板导出接口,增加模板导出类,并完成接口冒烟测试及接口文档;
5.开发第三方有功功率历史数据导入接口,增加模板配置类,添加线上接口文档并完成接口冒烟测试;
6.开发给长庆使用的获取第三方认证token接口,验证获取token后是否能正常跳转指定页面,创建长庆用演示用户及角色;
7.开发柴发设备配置模板导出接口,增加模板导出类,并完成接口冒烟测试及接口文档;
8.开发储能设备配置模板导出接口,增加模板导出类,并完成接口冒烟测试及接口文档;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 721e1794
......@@ -196,6 +196,14 @@
<artifactId>fastjson2</artifactId>
<version>2.0.47</version>
</dependency>
<!-- https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>3.1.0-M2</version>
</dependency>
</dependencies>
<build>
<plugins>
......
......@@ -52,7 +52,6 @@ public class ExcelListener<T> extends AnalysisEventListener<T> {
@Override
public void invoke(T object, AnalysisContext context) {
Integer rowNumber = context.readSheetHolder().getApproximateTotalRowNumber();
if (this.limit > 0 && rowNumber > this.limit) {
throw new ExcelAnalysisException("导入数据内容超出总行数[" + this.limit + "]条限制");
}
......@@ -64,7 +63,6 @@ public class ExcelListener<T> extends AnalysisEventListener<T> {
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
//非必要语句,查看导入的数据
System.out.println("导入的数据条数为: " + dataList.size());
}
/************************************** get && set ***********************************************************/
......
package pps.core.common.excel.util;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
import jakarta.validation.ValidatorFactory;
import xstartup.base.exception.XServiceException;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* 验证util
*
* @author ZWT
* @date 2024/05/09
* @date 2024/05/10
*/
public class ValidationUtil {
......@@ -25,47 +29,23 @@ public class ValidationUtil {
validator = validatorFactory.getValidator();
}
/**
* {
* "code": "DATA_VALID_FAILED",
* "msg": "数据校验失败",
* "data": [
* {
* "rowNum": 2,
* "errMsg": [
* "作者超出20长度"
* ]
* },
* {
* "rowNum": 3,
* "errMsg": [
* "出版日期格式(yyyy-MM-dd)有误",
* "作者超出20长度"
* ]
* }
* ]
* }
*
* @param var1 var1
* @param var2 var2
*/
public static <T> void doValidate(List<T> var1, Class<?>... var2) {
// List<ImportExpVO> expVOList = new ArrayList<>();
// int rowNum = 1;
// for (T var0 : var1) {
// rowNum++; // 跳过标题行, 此为excel的行号
// List<String> errMsg = new ArrayList<>();
// Set<ConstraintViolation<T>> validateRstSet = ValidationUtil.getValidator().validate(var0, var2);
// for (ConstraintViolation<T> constraintViolation : validateRstSet) {
// errMsg.add(constraintViolation.getMessage());
// }
// if (errMsg.size() > 0) {
// expVOList.add(ImportExpVO.builder().rowNum(rowNum).errMsg(errMsg).build());
// }
// }
// if (expVOList.size() > 0) {
// // 组装异常数据
// throw new EasyExcelException(EasyExcelExtExceptionTypes.DATA_VALID_FAILED, expVOList);
// }
StringBuilder stringBuilder = new StringBuilder();
int rowNum = 1;
for (T var0 : var1) {
rowNum++; // 跳过标题行, 此为excel的行号
List<String> errMsg = new ArrayList<>();
Set<ConstraintViolation<T>> validateRstSet = validator.validate(var0, var2);
for (ConstraintViolation<T> constraintViolation : validateRstSet) {
errMsg.add(constraintViolation.getMessage());
}
if (errMsg.size() > 0) {
stringBuilder.append(rowNum).append(errMsg);
}
}
if (stringBuilder.length() > 0) {
// 组装异常数据
throw new XServiceException(stringBuilder.toString());
}
}
}
......@@ -5,6 +5,7 @@ import cn.hutool.core.io.FileUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import pps.cloud.system.service.SystemAreaService;
......@@ -17,8 +18,10 @@ import pps.core.base.service.data.base_excel.ExcelPhotovoltaicPlantTemplate;
import pps.core.base.service.data.base_excel.ExcelWellheadTemplate;
import pps.core.base.service.data.excel.ImportExcelInput;
import pps.core.common.excel.config.CascadeWriteHandler;
import pps.core.common.excel.listener.ExcelListener;
import pps.core.common.excel.util.EasyExcelUtil;
import pps.core.common.excel.util.ExcelStyleTool;
import pps.core.common.excel.util.ValidationUtil;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
......@@ -161,7 +164,11 @@ public class ExcelService {
@XApiUpload(anonymous = true)
public XServiceResult importPhotovoltaicPlant(XContext context, ImportExcelInput input) {
XUploadFile file = input.getFile();
this.checkExcel(file);
// this.checkExcel(file);
ExcelListener<ExcelPhotovoltaicPlantTemplate> excelListener = new ExcelListener<>(-1);
EasyExcel.read(file.getInputStream(), ExcelPhotovoltaicPlantTemplate.class, excelListener).sheet().doRead();
List<ExcelPhotovoltaicPlantTemplate> dataList = excelListener.getDataList();
ValidationUtil.doValidate(dataList);
return XServiceResult.OK;
}
......
package pps.core.base.service.data.base_excel;
import com.alibaba.excel.annotation.ExcelProperty;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import pps.core.common.excel.config.ExcelSelected;
import pps.core.base.excel.OilExtractionPlantImpl;
import pps.core.common.excel.config.ExcelSelected;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* excel光伏电站模板
......@@ -22,18 +23,21 @@ public class ExcelPhotovoltaicPlantTemplate implements Serializable {
/**
* 所在省
*/
@NotBlank(message = "缺少省份")
@ExcelProperty(index = 0, value = "所在省")
private String province;
/**
* 所在市
*/
@NotBlank(message = "缺少市")
@ExcelProperty(index = 1, value = "所在市")
private String city;
/**
* 采油厂名称
*/
@NotBlank(message = "缺少采油厂名称")
@ExcelSelected(sourceClass = OilExtractionPlantImpl.class)
@ExcelProperty(index = 2, value = "采油厂名称")
private String ouName;
......@@ -41,6 +45,7 @@ public class ExcelPhotovoltaicPlantTemplate implements Serializable {
/**
* 电站名称
*/
@NotBlank(message = "缺少电站名称")
@ExcelProperty(index = 3, value = "电站名称")
private String stationName;
......@@ -59,36 +64,42 @@ public class ExcelPhotovoltaicPlantTemplate implements Serializable {
/**
* 安装倾角(°)
*/
@Min(value = 0, message = "缺少安装倾角")
@ExcelProperty(index = 6, value = "安装倾角(°)")
private BigDecimal mountingAngle;
private String mountingAngle;
/**
* 装机总量(KWP)
*/
@Min(value = 0, message = "缺少装机总量")
@ExcelProperty(index = 7, value = "装机总量(KWP)")
private BigDecimal totalPower;
private String totalPower;
/**
* 阵列朝向
*/
@Min(value = 0, message = "缺少阵列朝向")
@ExcelProperty(index = 8, value = "阵列朝向")
private BigDecimal arrayOrientation;
private String arrayOrientation;
/**
* 经度(°)
*/
@Min(value = 0, message = "缺少经度")
@ExcelProperty(index = 9, value = "经度(°)")
private BigDecimal longitude;
private String longitude;
/**
* 纬度(°)
*/
@Min(value = 0, message = "缺少纬度")
@ExcelProperty(index = 10, value = "纬度(°)")
private BigDecimal latitude;
private String latitude;
/**
* 高程(m)
*/
@Min(value = 0, message = "缺少高程")
@ExcelProperty(index = 11, value = "高程(m)")
private BigDecimal elevation;
private String elevation;
}
\ No newline at end of file
......@@ -52,11 +52,6 @@
<groupId>xstartup-cloud</groupId>
<artifactId>xstartup-cloud-feature-huawei-cse</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
</dependencies>
<profiles>
......
......@@ -53,11 +53,6 @@
<groupId>xstartup-cloud</groupId>
<artifactId>xstartup-cloud-feature-huawei-cse</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
</dependencies>
<profiles>
......
......@@ -53,11 +53,6 @@
<groupId>xstartup-cloud</groupId>
<artifactId>xstartup-cloud-feature-huawei-cse</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
</dependencies>
<profiles>
......
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