Commit 99b02888 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 1aaf6912
package pps.core.base.entity; package pps.core.base.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
...@@ -15,6 +18,9 @@ import java.math.BigDecimal; ...@@ -15,6 +18,9 @@ import java.math.BigDecimal;
* @date 2023/09/08 * @date 2023/09/08
*/ */
@Data @Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class BaseEnergyStorageDeviceView extends BaseModel implements Serializable { public class BaseEnergyStorageDeviceView extends BaseModel implements Serializable {
@XText("组织机构ID") @XText("组织机构ID")
......
package pps.core.base.mapper; package pps.core.base.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import pps.core.base.entity.BaseEnergyStorageDeviceView; import pps.core.base.entity.BaseEnergyStorageDeviceView;
import java.util.List; import java.util.List;
/**
* 储能设备
*
* @author ZWT
* @date 2024/05/11
*/
@Repository(value = "pps.core.base.mapper.BaseEnergyStorageDeviceViewMapper") @Repository(value = "pps.core.base.mapper.BaseEnergyStorageDeviceViewMapper")
public interface BaseEnergyStorageDeviceViewMapper { public interface BaseEnergyStorageDeviceViewMapper {
BaseEnergyStorageDeviceView selectOne(BaseEnergyStorageDeviceView record); BaseEnergyStorageDeviceView selectOne(BaseEnergyStorageDeviceView record);
List<BaseEnergyStorageDeviceView> selectList(BaseEnergyStorageDeviceView record); List<BaseEnergyStorageDeviceView> selectList(BaseEnergyStorageDeviceView record);
/**
* 批插入列表
*
* @param list 列表
* @return int
*/
int batchInsertList(@Param(value = "list") List<BaseEnergyStorageDeviceView> list);
} }
...@@ -357,8 +357,56 @@ public class ExcelService { ...@@ -357,8 +357,56 @@ public class ExcelService {
@XText("储能设备配置导入") @XText("储能设备配置导入")
@XApiUpload(anonymous = true) @XApiUpload(anonymous = true)
public XServiceResult importEnergyStorageDevice(XContext context, ImportExcelInput input) { public XServiceResult importEnergyStorageDevice(XContext context, ImportExcelInput input) {
// List<ExcelEnergyStorageDeviceTemplate> list = this.getExcelDataAndCheck(input.getFile(), ExcelEnergyStorageDeviceTemplate.class); List<ExcelEnergyStorageDeviceTemplate> list = this.getExcelDataAndCheck(input.getFile(), ExcelEnergyStorageDeviceTemplate.class,
return XServiceResult.OK; "设备名称", ExcelEnergyStorageDeviceTemplate::getDeviceName);
//整理各种字典数据
Map<String, String> ouMap = this.getPlantMap(context);
//封装并校验设备名称(校验设备名称是否重复,重复不导入),并插入数据
Set<String> collect = context.getBean(BaseEnergyStorageDeviceMapper.class)
.selectList(new LambdaQueryWrapper<BaseEnergyStorageDeviceEnt>()
.eq(BaseModel::getIsDeleted, 1)
).stream()
.map(BaseEnergyStorageDeviceEnt::getDeviceName)
.collect(Collectors.toSet());
StringBuilder stringBuilder = new StringBuilder();
List<BaseEnergyStorageDeviceView> insertList = new ArrayList<>(list.size());
int rowNum = 2;
for (ExcelEnergyStorageDeviceTemplate ent : list) {
//检查名称是否重复
if (collect.contains(ent.getDeviceName())) {
if (0 == stringBuilder.length()) {
stringBuilder.append("数据导入成功: ");
}
stringBuilder.append("第").append(rowNum).append("行,[设备名称重复]");
} else {
//数据封装
BaseEnergyStorageDeviceView build = BaseEnergyStorageDeviceView.builder()
.ouName(ent.getOuName())
.ouId(ouMap.get(ent.getOuName()))
.deviceName(ent.getDeviceName())
.makerNumber(ent.getMakerNumber())
.storageModelName(ent.getStorageModelName())
.apparatusCapacity(new BigDecimal(ent.getApparatusCapacity()))
.ratedDischargePower(new BigDecimal(ent.getRatedDischargePower()))
.ratedChargingPower(new BigDecimal(ent.getRatedChargingPower()))
.ratedDischargeDepth(new BigDecimal(ent.getRatedDischargeDepth()))
.ratedDischargeEfficiency(new BigDecimal(ent.getRatedDischargeEfficiency()))
.build();
BaseUtils.createBaseModelDefault(build, context.getSession(PpsUserSession.class));
insertList.add(build);
}
rowNum++;
}
return XTransactionHelper.begin(context, () -> {
if (CollUtil.isNotEmpty(insertList)) {
BaseEnergyStorageDeviceViewMapper viewMapper = context.getBean(BaseEnergyStorageDeviceViewMapper.class);
viewMapper.batchInsertList(insertList);
}
if (stringBuilder.length() > 0) {
return XServiceResult.error(-1, stringBuilder.toString());
}
return XServiceResult.OK;
});
} }
/*------------------------------------ private ------------------------------------*/ /*------------------------------------ private ------------------------------------*/
......
...@@ -58,4 +58,33 @@ ...@@ -58,4 +58,33 @@
where where
id=#{id} id=#{id}
</select> </select>
<insert id="batchInsertList" parameterType="list">
INSERT INTO base_energy_storage_device (id, is_deleted, create_by_id, create_by_name, create_time, modify_by_id,
modify_by_name, modify_time, ou_id, ou_name, device_name, maker_number, storage_model_name,
apparatus_capacity, rated_discharge_power, rated_charging_power, rated_discharge_depth,
rated_discharge_efficiency) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.id},
#{item.isDeleted},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.ouId},
#{item.ouName},
#{item.deviceName},
#{item.makerNumber},
#{item.storageModelName},
#{item.apparatusCapacity},
#{item.ratedDischargePower},
#{item.ratedChargingPower},
#{item.ratedDischargeDepth},
#{item.ratedDischargeEfficiency}
)
</foreach>
</insert>
</mapper> </mapper>
\ No newline at end of file
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