update 电池算法应用Service

This commit is contained in:
Lemon
2025-04-21 10:07:42 +08:00
parent 9d2e018d99
commit 6e8ccb131d
5 changed files with 124 additions and 7 deletions

View File

@@ -143,6 +143,12 @@ public class ChargeAlgorithmRecord extends BaseEntity {
@Excel(name = "故障体系指标")
private String failureMetrics;
/**
* 性能体系指标
*/
@Excel(name = "性能体系指标")
private String performanceMetrics;
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
@@ -167,6 +173,7 @@ public class ChargeAlgorithmRecord extends BaseEntity {
.append("maxAllowableElectricityAlarm", getMaxAllowableElectricityAlarm())
.append("securitySystemLevel", getSecuritySystemLevel())
.append("failureMetrics", getFailureMetrics())
.append("performanceMetrics", getPerformanceMetrics())
.append("createTime", getCreateTime())
.toString();
}

View File

@@ -108,6 +108,12 @@ public class ChargeAlgorithmRecordServiceImpl implements ChargeAlgorithmRecordSe
String securitySystemLevel = record.getSecuritySystemLevel();
ChargeAlgorithmRecordVO.SecuritySystem securitySystem = JSON.parseObject(securitySystemLevel, ChargeAlgorithmRecordVO.SecuritySystem.class);
String failureMetricsStr = record.getFailureMetrics();
ChargeAlgorithmRecordVO.FailureMetrics failureMetrics = JSON.parseObject(failureMetricsStr, ChargeAlgorithmRecordVO.FailureMetrics.class);
String performanceMetricsStr = record.getPerformanceMetrics();
ChargeAlgorithmRecordVO.PerformanceMetrics performanceMetrics = JSON.parseObject(performanceMetricsStr, ChargeAlgorithmRecordVO.PerformanceMetrics.class);
ChargeAlgorithmRecordVO vo = ChargeAlgorithmRecordVO.builder()
.orderCode(record.getOrderCode())
.score(record.getScore())
@@ -128,7 +134,8 @@ public class ChargeAlgorithmRecordServiceImpl implements ChargeAlgorithmRecordSe
.maxAllowableVoltageAlarm(record.getMaxAllowableVoltageAlarm())
.maxAllowableElectricityAlarm(record.getMaxAllowableElectricityAlarm())
.securitySystemLevel(securitySystem)
.failureMetrics(record.getFailureMetrics())
.failureMetrics(failureMetrics)
.performanceMetrics(performanceMetrics)
.build();

View File

@@ -1,5 +1,6 @@
package com.jsowell.pile.vo.uniapp.customer;
import com.alibaba.fastjson2.annotation.JSONField;
import com.jsowell.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
@@ -7,6 +8,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.List;
/**
* 电池充电订单报告VO
@@ -138,7 +140,9 @@ public class ChargeAlgorithmRecordVO {
* 故障体系指标
*/
@Excel(name = "故障体系指标")
private String failureMetrics;
private FailureMetrics failureMetrics;
private PerformanceMetrics performanceMetrics;
@Data
public static class SecuritySystem{
@@ -155,4 +159,95 @@ public class ChargeAlgorithmRecordVO {
}
}
@Data
public static class FailureMetrics{
// @JSONField(name = "volt_rise_alarm")
private VoltRiseAlarm voltRiseAlarm;
private VoltRiseAlarm voltDecayAlarm;
private VoltRiseAlarm tempDiffAlarm;
private VoltRiseAlarm tempRiseAlarm;
private VoltRiseAlarm socAlarm;
@Data
public static class VoltRiseAlarm{
private List<String> threshold;
private String result;
private String value;
}
@Data
public static class voltDecayAlarm{
private List<String> threshold;
private String result;
private String value;
}
@Data
public static class tempDiffAlarm{
private List<String> threshold;
private String result;
private String value;
}
@Data
public static class tempRiseAlarm{
private List<String> threshold;
private String result;
private String value;
}
@Data
public static class socAlarm{
private List<String> threshold;
private String result;
private String value;
}
}
public static class PerformanceMetrics{
private ChargingLoss chargingLoss;
private BMSAccuracy bmsAccuracy;
private DCInternalResistance dcInternalResistance;
public static class ChargingLoss{
private List<String> threshold;
private String result;
private String value;
}
public static class BMSAccuracy{
private List<String> threshold;
private String result;
private String value;
}
public static class DCInternalResistance{
private List<String> threshold;
private String result;
private String value;
}
}
}

View File

@@ -26,11 +26,14 @@
<result property="maxAllowableElectricityAlarm" column="max_allowable_electricity_alarm" />
<result property="securitySystemLevel" column="security_system_level" />
<result property="failureMetrics" column="failure_metrics" />
<result property="performanceMetrics" column="performance_metrics" />
<result property="createTime" column="create_time" />
</resultMap>
<sql id="selectChargeAlgorithmRecordVo">
select id, order_code, score, capacity_metrics, energy_indicator, consistency, temp_consistency, volt_consistency, capacity_consistency, sot, thermal_runaway, cooling, seal, current_soc, soc_alarm, temp_diff_alarm, temp_rise_alarm, max_allowable_voltage_alarm, max_allowable_electricity_alarm, security_system_level, failure_metrics, create_time from charge_algorithm_record
select id, order_code, score, capacity_metrics, energy_indicator, consistency, temp_consistency, volt_consistency,
capacity_consistency, sot, thermal_runaway, cooling, seal, current_soc, soc_alarm, temp_diff_alarm, temp_rise_alarm,
max_allowable_voltage_alarm, max_allowable_electricity_alarm, security_system_level, failure_metrics, performance_metrics, create_time from charge_algorithm_record
</sql>
<select id="selectChargeAlgorithmRecordList" parameterType="com.jsowell.pile.domain.ChargeAlgorithmRecord" resultMap="ChargeAlgorithmRecordResult">
@@ -56,6 +59,7 @@
<if test="maxAllowableElectricityAlarm != null and maxAllowableElectricityAlarm != ''"> and max_allowable_electricity_alarm = #{maxAllowableElectricityAlarm}</if>
<if test="securitySystemLevel != null and securitySystemLevel != ''"> and security_system_level = #{securitySystemLevel}</if>
<if test="failureMetrics != null and failureMetrics != ''"> and failure_metrics = #{failureMetrics}</if>
<if test="performanceMetrics != null and performanceMetrics != ''"> and performance_metrics = #{performanceMetrics}</if>
</where>
</select>
@@ -87,6 +91,7 @@
<if test="maxAllowableElectricityAlarm != null">max_allowable_electricity_alarm,</if>
<if test="securitySystemLevel != null">security_system_level,</if>
<if test="failureMetrics != null">failure_metrics,</if>
<if test="performanceMetrics != null">performance_metrics,</if>
<if test="createTime != null">create_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -110,6 +115,7 @@
<if test="maxAllowableElectricityAlarm != null">#{maxAllowableElectricityAlarm},</if>
<if test="securitySystemLevel != null">#{securitySystemLevel},</if>
<if test="failureMetrics != null">#{failureMetrics},</if>
<if test="performanceMetrics != null">#{performanceMetrics},</if>
<if test="createTime != null">#{createTime},</if>
</trim>
</insert>
@@ -137,6 +143,7 @@
<if test="maxAllowableElectricityAlarm != null">max_allowable_electricity_alarm = #{maxAllowableElectricityAlarm},</if>
<if test="securitySystemLevel != null">security_system_level = #{securitySystemLevel},</if>
<if test="failureMetrics != null">failure_metrics = #{failureMetrics},</if>
<if test="performanceMetrics != null">performance_metrics = #{performanceMetrics},</if>
<if test="createTime != null">create_time = #{createTime},</if>
</trim>
where id = #{id}

View File

@@ -28,6 +28,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -240,20 +241,20 @@ public class ChargeAlgorithmService {
detailInfo.setCurrentSoc(new BigDecimal(realTimeData_0x23.getSoc()).intValue());
detailInfo.setReportTime(realTimeData_0x23.getDateTime().replaceAll("[^0-9]", ""));
detailInfo.setMaxAllowElectricity(new BigDecimal(parameterConfigData.getBmsMaxCurrent()).toBigInteger().toString());
detailInfo.setSingleMaxAllowVoltage(parameterConfigData.getBmsMaxVoltage());
detailInfo.setSingleMaxAllowVoltage(new BigDecimal(parameterConfigData.getBmsMaxVoltage()).setScale(1, RoundingMode.HALF_DOWN).toString());
detailInfo.setDcv(new BigDecimal(realTimeData_0x23.getPileVoltageOutput()).toBigInteger().toString());
detailInfo.setDca(new BigDecimal(realTimeData_0x23.getPileCurrentOutput()).toBigInteger().toString());
detailInfo.setBmsDemandVoltage(new BigDecimal(realTimeData_0x23.getBmsVoltageDemand()).toBigInteger().toString());
detailInfo.setBmsDemandElectricity(new BigDecimal(realTimeData_0x23.getBmsCurrentDemand()).toBigInteger().toString());
detailInfo.setChargePower(realTimeData_0x23.getOutputPower());
detailInfo.setSingleMaxVoltage(parameterConfigData.getPileMaxOutputVoltage());
detailInfo.setSingleMinVoltage(parameterConfigData.getPileMinOutputVoltage());
detailInfo.setSingleMaxVoltage(new BigDecimal(parameterConfigData.getPileMaxOutputVoltage()).setScale(1, RoundingMode.HALF_DOWN).toString());
detailInfo.setSingleMinVoltage(new BigDecimal(parameterConfigData.getPileMinOutputVoltage()).setScale(1, RoundingMode.HALF_DOWN).toString());
detailInfo.setMeasuringChargeVoltage(new BigDecimal(realTimeData_0x23.getBmsChargingVoltage()).toBigInteger().toString());
detailInfo.setMeasuringChargeElectricity(new BigDecimal(realTimeData_0x23.getBmsChargingCurrent()).toBigInteger().toString());
detailInfo.setMaxSingleVoltageGroupNum(new BigDecimal(realTimeData_0x23.getBmsMaxVoltageAndGroup()).intValue());
detailInfo.setMaxAllowTotalVoltage(parameterConfigData.getBmsMaxChargingVoltage());
detailInfo.setMaxAllowTotalVoltage(new BigDecimal(parameterConfigData.getBmsMaxChargingVoltage()).toBigInteger().toString());
detailInfo.setBeforeChargeTotalVoltage(new BigDecimal(parameterConfigData.getBmsRealTimeVoltage()).toBigInteger().toString());
detailInfo.setVentTemp("0");