mirror of
https://codeup.aliyun.com/64f7d6b8ce01efaafef1e678/coal/coal.git
synced 2026-01-25 15:55:18 +08:00
完善
This commit is contained in:
@@ -32,6 +32,13 @@ public class HibernateConfig {
|
||||
|
||||
return new CamelCaseToUnderscoresNamingStrategy() {
|
||||
|
||||
@Override
|
||||
public Identifier toPhysicalColumnName(Identifier logicalName, JdbcEnvironment jdbcEnvironment) {
|
||||
return super.toPhysicalColumnName(new Identifier(logicalName.getText().replace("Entity", ""),
|
||||
logicalName.isQuoted()),
|
||||
jdbcEnvironment);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Identifier toPhysicalTableName(Identifier logicalName, JdbcEnvironment jdbcEnvironment) {
|
||||
|
||||
|
||||
@@ -1,212 +1,279 @@
|
||||
package cn.lihongjie.coal.entity;
|
||||
|
||||
import cn.lihongjie.coal.entity.base.OrgCommonEntity;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.hibernate.annotations.Comment;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Entity
|
||||
@Data
|
||||
@Comment("洗煤报告表")
|
||||
public class CoalWashingDailyAnalysisEntity extends OrgCommonEntity {
|
||||
|
||||
|
||||
|
||||
|
||||
@Comment("日期")
|
||||
private LocalDate date;
|
||||
|
||||
@ElementCollection
|
||||
@Comment("用户手动录入的记录")
|
||||
@CollectionTable(name = "CoalWashingDailyAnalysisItem", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||
private List<CoalWashingDailyAnalysisItemVo> inputItems;
|
||||
|
||||
@Comment("成分0 比例")
|
||||
private Double c0p0;
|
||||
|
||||
@ElementCollection
|
||||
@Comment("连续平均值")
|
||||
@CollectionTable(name = "CoalWashingDailyAnalysisItem", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||
private List<CoalWashingDailyAnalysisItemVo> rollingAvgItems;
|
||||
|
||||
|
||||
@Comment("成分0 灰")
|
||||
private Double c0p1;
|
||||
|
||||
|
||||
|
||||
@Comment("成分0 硫")
|
||||
private Double c0p2;
|
||||
|
||||
|
||||
|
||||
@Comment("成分1 比例")
|
||||
private Double c1p0;
|
||||
|
||||
|
||||
|
||||
@Comment("成分1 灰")
|
||||
private Double c1p1;
|
||||
|
||||
|
||||
|
||||
@Comment("成分1 硫")
|
||||
private Double c1p2;
|
||||
|
||||
|
||||
|
||||
|
||||
@Comment("成分2 比例")
|
||||
private Double c2p0;
|
||||
|
||||
|
||||
|
||||
@Comment("成分2 灰")
|
||||
private Double c2p1;
|
||||
|
||||
|
||||
|
||||
@Comment("成分2 硫")
|
||||
private Double c2p2;
|
||||
|
||||
|
||||
|
||||
@Comment("成分3 比例")
|
||||
private Double c3p0;
|
||||
|
||||
|
||||
|
||||
@Comment("成分3 灰")
|
||||
private Double c3p1;
|
||||
|
||||
|
||||
|
||||
@Comment("成分3 硫")
|
||||
private Double c3p2;
|
||||
|
||||
|
||||
|
||||
|
||||
@Comment("成分4 比例")
|
||||
private Double c4p0;
|
||||
|
||||
|
||||
|
||||
@Comment("成分4 灰")
|
||||
private Double c4p1;
|
||||
|
||||
|
||||
|
||||
@Comment("成分4 硫")
|
||||
private Double c4p2;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Comment("成分5 比例")
|
||||
private Double c5p0;
|
||||
|
||||
|
||||
|
||||
@Comment("成分5 灰")
|
||||
private Double c5p1;
|
||||
|
||||
|
||||
|
||||
@Comment("成分5 硫")
|
||||
private Double c5p2;
|
||||
|
||||
|
||||
|
||||
@Comment("成分6 比例")
|
||||
private Double c6p0;
|
||||
|
||||
|
||||
|
||||
@Comment("成分6 灰")
|
||||
private Double c6p1;
|
||||
|
||||
|
||||
|
||||
@Comment("成分6 硫")
|
||||
private Double c6p2;
|
||||
|
||||
|
||||
|
||||
|
||||
@Comment("成分7 比例")
|
||||
private Double c7p0;
|
||||
|
||||
|
||||
|
||||
@Comment("成分7 灰")
|
||||
private Double c7p1;
|
||||
|
||||
|
||||
|
||||
@Comment("成分7 硫")
|
||||
private Double c7p2;
|
||||
|
||||
|
||||
|
||||
@Comment("成分8 比例")
|
||||
private Double c8p0;
|
||||
|
||||
|
||||
|
||||
@Comment("成分8 灰")
|
||||
private Double c8p1;
|
||||
|
||||
|
||||
|
||||
@Comment("成分8 硫")
|
||||
private Double c8p2;
|
||||
|
||||
|
||||
|
||||
|
||||
@Comment("成分9 比例")
|
||||
private Double c9p0;
|
||||
|
||||
|
||||
|
||||
@Comment("成分9 灰")
|
||||
private Double c9p1;
|
||||
|
||||
|
||||
|
||||
@Comment("成分9 硫")
|
||||
private Double c9p2;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Comment("大堆 灰")
|
||||
@Comment("目标大堆 灰")
|
||||
private Double ddp1;
|
||||
|
||||
|
||||
|
||||
@Comment("大堆 硫")
|
||||
@Comment("目标大堆 硫")
|
||||
private Double ddp2;
|
||||
|
||||
|
||||
|
||||
|
||||
@Comment("大堆 挥发")
|
||||
@Comment("目标大堆 挥发")
|
||||
private Double ddp3;
|
||||
|
||||
|
||||
|
||||
@Comment("大堆 粘结")
|
||||
@Comment("目标大堆 粘结")
|
||||
private Double ddp4;
|
||||
|
||||
|
||||
|
||||
|
||||
@Comment("大堆 备用")
|
||||
@Comment("目标大堆 备用")
|
||||
private Double ddp5;
|
||||
|
||||
@Comment("产量初始值")
|
||||
private Double initTotalNumber = 0.0;
|
||||
|
||||
|
||||
public void rollingAvg() {
|
||||
|
||||
rollingAvgItems = new ArrayList<>();
|
||||
|
||||
if (CollectionUtils.isEmpty(inputItems)) {
|
||||
return;
|
||||
}
|
||||
inputItems.sort(Comparator.comparing(x -> x.getTime()));
|
||||
inputItems.forEach(x -> x.calculate());
|
||||
|
||||
for (int i = 0; i < inputItems.size(); i++) {
|
||||
|
||||
List<CoalWashingDailyAnalysisItemVo> current = inputItems.subList(0, i + 1);
|
||||
rollingAvgItems.add(rollingAvg(current));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private CoalWashingDailyAnalysisItemVo rollingAvg(List<CoalWashingDailyAnalysisItemVo> current) {
|
||||
|
||||
|
||||
CoalWashingDailyAnalysisItemVo vo = new CoalWashingDailyAnalysisItemVo();
|
||||
int size = current.size();
|
||||
vo.setTime(current.get(size - 1).getTime());
|
||||
vo.setTotalNumber(current.get(size - 1).getTotalNumber());
|
||||
|
||||
vo.setC0p0(current.get(size - 1).getC0p0());
|
||||
|
||||
vo.setC1p0(current.get(size - 1).getC1p0());
|
||||
|
||||
vo.setC2p0(current.get(size - 1).getC2p0());
|
||||
|
||||
vo.setC3p0(current.get(size - 1).getC3p0());
|
||||
|
||||
vo.setC4p0(current.get(size - 1).getC4p0());
|
||||
|
||||
vo.setC5p0(current.get(size - 1).getC5p0());
|
||||
|
||||
vo.setC6p0(current.get(size - 1).getC6p0());
|
||||
|
||||
vo.setC7p0(current.get(size - 1).getC7p0());
|
||||
|
||||
vo.setC8p0(current.get(size - 1).getC8p0());
|
||||
|
||||
vo.setC9p0(current.get(size - 1).getC9p0());
|
||||
|
||||
|
||||
for (int i = 0; i < size; i++) {
|
||||
var c = current.get(i);
|
||||
var p = i == 0 ? c.withTotalNumber(initTotalNumber) : current.get(i - 1);
|
||||
double diff = c.getTotalNumber() - p.getTotalNumber();
|
||||
if (vo.getC0p0() != null && vo.getC0p0() > 0) {
|
||||
vo.setC0p1(ObjectUtils.defaultIfNull(vo.getC0p1(), 0.0) + diff * c.getC0p1());
|
||||
vo.setC0p2(ObjectUtils.defaultIfNull(vo.getC0p2(), 0.0) + diff * c.getC0p1());
|
||||
if (i == size - 1) {
|
||||
vo.setC0p1(vo.getC0p1() / c.getTotalNumber());
|
||||
vo.setC0p2(vo.getC0p2() / c.getTotalNumber());
|
||||
|
||||
}
|
||||
}
|
||||
if (vo.getC1p0() != null && vo.getC1p0() > 0) {
|
||||
vo.setC1p1(ObjectUtils.defaultIfNull(vo.getC1p1(), 0.0) + diff * c.getC1p1());
|
||||
vo.setC1p2(ObjectUtils.defaultIfNull(vo.getC1p2(), 0.0) + diff * c.getC1p1());
|
||||
if (i == size - 1) {
|
||||
vo.setC1p1(vo.getC1p1() / c.getTotalNumber());
|
||||
vo.setC1p2(vo.getC1p2() / c.getTotalNumber());
|
||||
|
||||
}
|
||||
}
|
||||
if (vo.getC2p0() != null && vo.getC2p0() > 0) {
|
||||
vo.setC2p1(ObjectUtils.defaultIfNull(vo.getC2p1(), 0.0) + diff * c.getC2p1());
|
||||
vo.setC2p2(ObjectUtils.defaultIfNull(vo.getC2p2(), 0.0) + diff * c.getC2p1());
|
||||
if (i == size - 1) {
|
||||
vo.setC2p1(vo.getC2p1() / c.getTotalNumber());
|
||||
vo.setC2p2(vo.getC2p2() / c.getTotalNumber());
|
||||
|
||||
}
|
||||
}
|
||||
if (vo.getC3p0() != null && vo.getC3p0() > 0) {
|
||||
vo.setC3p1(ObjectUtils.defaultIfNull(vo.getC3p1(), 0.0) + diff * c.getC3p1());
|
||||
vo.setC3p2(ObjectUtils.defaultIfNull(vo.getC3p2(), 0.0) + diff * c.getC3p1());
|
||||
if (i == size - 1) {
|
||||
vo.setC3p1(vo.getC3p1() / c.getTotalNumber());
|
||||
vo.setC3p2(vo.getC3p2() / c.getTotalNumber());
|
||||
|
||||
}
|
||||
}
|
||||
if (vo.getC4p0() != null && vo.getC4p0() > 0) {
|
||||
vo.setC4p1(ObjectUtils.defaultIfNull(vo.getC4p1(), 0.0) + diff * c.getC4p1());
|
||||
vo.setC4p2(ObjectUtils.defaultIfNull(vo.getC4p2(), 0.0) + diff * c.getC4p1());
|
||||
if (i == size - 1) {
|
||||
vo.setC4p1(vo.getC4p1() / c.getTotalNumber());
|
||||
vo.setC4p2(vo.getC4p2() / c.getTotalNumber());
|
||||
|
||||
}
|
||||
}
|
||||
if (vo.getC5p0() != null && vo.getC5p0() > 0) {
|
||||
vo.setC5p1(ObjectUtils.defaultIfNull(vo.getC5p1(), 0.0) + diff * c.getC5p1());
|
||||
vo.setC5p2(ObjectUtils.defaultIfNull(vo.getC5p2(), 0.0) + diff * c.getC5p1());
|
||||
if (i == size - 1) {
|
||||
vo.setC5p1(vo.getC5p1() / c.getTotalNumber());
|
||||
vo.setC5p2(vo.getC5p2() / c.getTotalNumber());
|
||||
|
||||
}
|
||||
}
|
||||
if (vo.getC6p0() != null && vo.getC6p0() > 0) {
|
||||
vo.setC6p1(ObjectUtils.defaultIfNull(vo.getC6p1(), 0.0) + diff * c.getC6p1());
|
||||
vo.setC6p2(ObjectUtils.defaultIfNull(vo.getC6p2(), 0.0) + diff * c.getC6p1());
|
||||
if (i == size - 1) {
|
||||
vo.setC6p1(vo.getC6p1() / c.getTotalNumber());
|
||||
vo.setC6p2(vo.getC6p2() / c.getTotalNumber());
|
||||
|
||||
}
|
||||
}
|
||||
if (vo.getC7p0() != null && vo.getC7p0() > 0) {
|
||||
vo.setC7p1(ObjectUtils.defaultIfNull(vo.getC7p1(), 0.0) + diff * c.getC7p1());
|
||||
vo.setC7p2(ObjectUtils.defaultIfNull(vo.getC7p2(), 0.0) + diff * c.getC7p1());
|
||||
if (i == size - 1) {
|
||||
vo.setC7p1(vo.getC7p1() / c.getTotalNumber());
|
||||
vo.setC7p2(vo.getC7p2() / c.getTotalNumber());
|
||||
|
||||
}
|
||||
}
|
||||
if (vo.getC8p0() != null && vo.getC8p0() > 0) {
|
||||
vo.setC8p1(ObjectUtils.defaultIfNull(vo.getC8p1(), 0.0) + diff * c.getC8p1());
|
||||
vo.setC8p2(ObjectUtils.defaultIfNull(vo.getC8p2(), 0.0) + diff * c.getC8p1());
|
||||
if (i == size - 1) {
|
||||
vo.setC8p1(vo.getC8p1() / c.getTotalNumber());
|
||||
vo.setC8p2(vo.getC8p2() / c.getTotalNumber());
|
||||
|
||||
}
|
||||
}
|
||||
if (vo.getC9p0() != null && vo.getC9p0() > 0) {
|
||||
vo.setC9p1(ObjectUtils.defaultIfNull(vo.getC9p1(), 0.0) + diff * c.getC9p1());
|
||||
vo.setC9p2(ObjectUtils.defaultIfNull(vo.getC9p2(), 0.0) + diff * c.getC9p1());
|
||||
if (i == size - 1) {
|
||||
vo.setC9p1(vo.getC9p1() / c.getTotalNumber());
|
||||
vo.setC9p2(vo.getC9p2() / c.getTotalNumber());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
vo.setDdp1(ObjectUtils.defaultIfNull(vo.getDdp1(), 0.0) + diff * c.getDdp1());
|
||||
if (i == size - 1) {
|
||||
vo.setDdp1(vo.getDdp1() / c.getTotalNumber());
|
||||
}
|
||||
vo.setDdp2(ObjectUtils.defaultIfNull(vo.getDdp2(), 0.0) + diff * c.getDdp2());
|
||||
if (i == size - 1) {
|
||||
vo.setDdp2(vo.getDdp2() / c.getTotalNumber());
|
||||
}
|
||||
vo.setDdp3(ObjectUtils.defaultIfNull(vo.getDdp3(), 0.0) + diff * c.getDdp3());
|
||||
if (i == size - 1) {
|
||||
vo.setDdp3(vo.getDdp3() / c.getTotalNumber());
|
||||
}
|
||||
vo.setDdp4(ObjectUtils.defaultIfNull(vo.getDdp4(), 0.0) + diff * c.getDdp4());
|
||||
if (i == size - 1) {
|
||||
vo.setDdp4(vo.getDdp4() / c.getTotalNumber());
|
||||
}
|
||||
vo.setDdp5(ObjectUtils.defaultIfNull(vo.getDdp5(), 0.0) + diff * c.getDdp5());
|
||||
if (i == size - 1) {
|
||||
vo.setDdp5(vo.getDdp5() / c.getTotalNumber());
|
||||
}
|
||||
|
||||
vo.setSysDdp1(ObjectUtils.defaultIfNull(vo.getSysDdp1(), 0.0) + diff * c.getSysDdp1());
|
||||
if (i == size - 1) {
|
||||
vo.setSysDdp1(vo.getSysDdp1() / c.getTotalNumber());
|
||||
}
|
||||
vo.setSysDdp2(ObjectUtils.defaultIfNull(vo.getSysDdp2(), 0.0) + diff * c.getSysDdp2());
|
||||
if (i == size - 1) {
|
||||
vo.setSysDdp2(vo.getSysDdp2() / c.getTotalNumber());
|
||||
}
|
||||
vo.setSysDdp3(ObjectUtils.defaultIfNull(vo.getSysDdp3(), 0.0) + diff * c.getSysDdp3());
|
||||
if (i == size - 1) {
|
||||
vo.setSysDdp3(vo.getSysDdp3() / c.getTotalNumber());
|
||||
}
|
||||
vo.setSysDdp4(ObjectUtils.defaultIfNull(vo.getSysDdp4(), 0.0) + diff * c.getSysDdp4());
|
||||
if (i == size - 1) {
|
||||
vo.setSysDdp4(vo.getSysDdp4() / c.getTotalNumber());
|
||||
}
|
||||
vo.setSysDdp5(ObjectUtils.defaultIfNull(vo.getSysDdp5(), 0.0) + diff * c.getSysDdp5());
|
||||
if (i == size - 1) {
|
||||
vo.setSysDdp5(vo.getSysDdp5() / c.getTotalNumber());
|
||||
}
|
||||
|
||||
|
||||
vo.setAvgDdp1(ObjectUtils.defaultIfNull(vo.getAvgDdp1(), 0.0) + diff * c.getAvgDdp1());
|
||||
if (i == size - 1) {
|
||||
vo.setAvgDdp1(vo.getAvgDdp1() / c.getTotalNumber());
|
||||
}
|
||||
vo.setAvgDdp2(ObjectUtils.defaultIfNull(vo.getAvgDdp2(), 0.0) + diff * c.getAvgDdp2());
|
||||
if (i == size - 1) {
|
||||
vo.setAvgDdp2(vo.getAvgDdp2() / c.getTotalNumber());
|
||||
}
|
||||
vo.setAvgDdp3(ObjectUtils.defaultIfNull(vo.getAvgDdp3(), 0.0) + diff * c.getAvgDdp3());
|
||||
if (i == size - 1) {
|
||||
vo.setAvgDdp3(vo.getAvgDdp3() / c.getTotalNumber());
|
||||
}
|
||||
vo.setAvgDdp4(ObjectUtils.defaultIfNull(vo.getAvgDdp4(), 0.0) + diff * c.getAvgDdp4());
|
||||
if (i == size - 1) {
|
||||
vo.setAvgDdp4(vo.getAvgDdp4() / c.getTotalNumber());
|
||||
}
|
||||
vo.setAvgDdp5(ObjectUtils.defaultIfNull(vo.getAvgDdp5(), 0.0) + diff * c.getAvgDdp5());
|
||||
if (i == size - 1) {
|
||||
vo.setAvgDdp5(vo.getAvgDdp5() / c.getTotalNumber());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
return vo;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,251 @@
|
||||
package cn.lihongjie.coal.entity;
|
||||
|
||||
import cn.lihongjie.coal.exception.BizException;
|
||||
import io.vavr.collection.Stream;
|
||||
import jakarta.persistence.Embeddable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.With;
|
||||
import org.hibernate.annotations.Comment;
|
||||
|
||||
import java.time.LocalTime;
|
||||
import java.util.Objects;
|
||||
|
||||
@Data
|
||||
@Embeddable
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class CoalWashingDailyAnalysisItemVo {
|
||||
|
||||
|
||||
@Comment("时间")
|
||||
private LocalTime time;
|
||||
|
||||
@Comment("产量")
|
||||
@With
|
||||
private Double totalNumber;
|
||||
|
||||
|
||||
@Comment("成分0 比例")
|
||||
private Double c0p0;
|
||||
|
||||
|
||||
@Comment("成分0 灰")
|
||||
private Double c0p1;
|
||||
|
||||
|
||||
@Comment("成分0 硫")
|
||||
private Double c0p2;
|
||||
|
||||
|
||||
@Comment("成分1 比例")
|
||||
private Double c1p0;
|
||||
|
||||
|
||||
@Comment("成分1 灰")
|
||||
private Double c1p1;
|
||||
|
||||
|
||||
@Comment("成分1 硫")
|
||||
private Double c1p2;
|
||||
|
||||
|
||||
@Comment("成分2 比例")
|
||||
private Double c2p0;
|
||||
|
||||
|
||||
@Comment("成分2 灰")
|
||||
private Double c2p1;
|
||||
|
||||
|
||||
@Comment("成分2 硫")
|
||||
private Double c2p2;
|
||||
|
||||
|
||||
@Comment("成分3 比例")
|
||||
private Double c3p0;
|
||||
|
||||
|
||||
@Comment("成分3 灰")
|
||||
private Double c3p1;
|
||||
|
||||
|
||||
@Comment("成分3 硫")
|
||||
private Double c3p2;
|
||||
|
||||
|
||||
@Comment("成分4 比例")
|
||||
private Double c4p0;
|
||||
|
||||
|
||||
@Comment("成分4 灰")
|
||||
private Double c4p1;
|
||||
|
||||
|
||||
@Comment("成分4 硫")
|
||||
private Double c4p2;
|
||||
|
||||
|
||||
@Comment("成分5 比例")
|
||||
private Double c5p0;
|
||||
|
||||
|
||||
@Comment("成分5 灰")
|
||||
private Double c5p1;
|
||||
|
||||
|
||||
@Comment("成分5 硫")
|
||||
private Double c5p2;
|
||||
|
||||
|
||||
@Comment("成分6 比例")
|
||||
private Double c6p0;
|
||||
|
||||
|
||||
@Comment("成分6 灰")
|
||||
private Double c6p1;
|
||||
|
||||
|
||||
@Comment("成分6 硫")
|
||||
private Double c6p2;
|
||||
|
||||
|
||||
@Comment("成分7 比例")
|
||||
private Double c7p0;
|
||||
|
||||
|
||||
@Comment("成分7 灰")
|
||||
private Double c7p1;
|
||||
|
||||
|
||||
@Comment("成分7 硫")
|
||||
private Double c7p2;
|
||||
|
||||
|
||||
@Comment("成分8 比例")
|
||||
private Double c8p0;
|
||||
|
||||
|
||||
@Comment("成分8 灰")
|
||||
private Double c8p1;
|
||||
|
||||
|
||||
@Comment("成分8 硫")
|
||||
private Double c8p2;
|
||||
|
||||
|
||||
@Comment("成分9 比例")
|
||||
private Double c9p0;
|
||||
|
||||
|
||||
@Comment("成分9 灰")
|
||||
private Double c9p1;
|
||||
|
||||
|
||||
@Comment("成分9 硫")
|
||||
private Double c9p2;
|
||||
|
||||
|
||||
@Comment("用户输入 大堆 灰")
|
||||
private Double ddp1;
|
||||
|
||||
|
||||
@Comment("用户输入 大堆 硫")
|
||||
private Double ddp2;
|
||||
|
||||
|
||||
@Comment("用户输入 大堆 挥发")
|
||||
private Double ddp3;
|
||||
|
||||
|
||||
@Comment("用户输入 大堆 粘结")
|
||||
private Double ddp4;
|
||||
|
||||
|
||||
@Comment("用户输入 大堆 备用")
|
||||
private Double ddp5;
|
||||
|
||||
|
||||
@Comment("系统计算 大堆 灰")
|
||||
private Double sysDdp1;
|
||||
|
||||
|
||||
@Comment("系统计算 大堆 硫")
|
||||
private Double sysDdp2;
|
||||
|
||||
|
||||
@Comment("系统计算 大堆 挥发")
|
||||
private Double sysDdp3;
|
||||
|
||||
|
||||
@Comment("系统计算 大堆 粘结")
|
||||
private Double sysDdp4;
|
||||
|
||||
|
||||
@Comment("系统计算 大堆 备用")
|
||||
private Double sysDdp5;
|
||||
|
||||
|
||||
@Comment("用户输入与系统计算的平均值 大堆 灰")
|
||||
private Double avgDdp1;
|
||||
|
||||
|
||||
@Comment("用户输入与系统计算的平均值 大堆 硫")
|
||||
private Double avgDdp2;
|
||||
|
||||
|
||||
@Comment("用户输入与系统计算的平均值 大堆 挥发")
|
||||
private Double avgDdp3;
|
||||
|
||||
|
||||
@Comment("用户输入与系统计算的平均值 大堆 粘结")
|
||||
private Double avgDdp4;
|
||||
|
||||
|
||||
@Comment("用户输入与系统计算的平均值 大堆 备用")
|
||||
private Double avgDdp5;
|
||||
|
||||
|
||||
public void calculate() {
|
||||
|
||||
|
||||
if (Stream.of(c0p0, c1p0, c2p0, c3p0, c4p0, c5p0, c6p0, c7p0, c8p0, c9p0).filter(Objects::nonNull).sum().doubleValue() != 100)
|
||||
throw new BizException("比例相加应该等于100!");
|
||||
|
||||
|
||||
sysDdp1 = 0.0;
|
||||
sysDdp2 = 0.0;
|
||||
if (c0p0 != null) sysDdp1 += c0p1 * c0p0 / 100.00;
|
||||
if (c0p0 != null) sysDdp2 += c0p2 * c0p0 / 100.00;
|
||||
if (c1p0 != null) sysDdp1 += c1p1 * c1p0 / 100.00;
|
||||
if (c1p0 != null) sysDdp2 += c1p2 * c1p0 / 100.00;
|
||||
if (c2p0 != null) sysDdp1 += c2p1 * c2p0 / 100.00;
|
||||
if (c2p0 != null) sysDdp2 += c2p2 * c2p0 / 100.00;
|
||||
if (c3p0 != null) sysDdp1 += c3p1 * c3p0 / 100.00;
|
||||
if (c3p0 != null) sysDdp2 += c3p2 * c3p0 / 100.00;
|
||||
if (c4p0 != null) sysDdp1 += c4p1 * c4p0 / 100.00;
|
||||
if (c4p0 != null) sysDdp2 += c4p2 * c4p0 / 100.00;
|
||||
if (c5p0 != null) sysDdp1 += c5p1 * c5p0 / 100.00;
|
||||
if (c5p0 != null) sysDdp2 += c5p2 * c5p0 / 100.00;
|
||||
if (c6p0 != null) sysDdp1 += c6p1 * c6p0 / 100.00;
|
||||
if (c6p0 != null) sysDdp2 += c6p2 * c6p0 / 100.00;
|
||||
if (c7p0 != null) sysDdp1 += c7p1 * c7p0 / 100.00;
|
||||
if (c7p0 != null) sysDdp2 += c7p2 * c7p0 / 100.00;
|
||||
if (c8p0 != null) sysDdp1 += c8p1 * c8p0 / 100.00;
|
||||
if (c8p0 != null) sysDdp2 += c8p2 * c8p0 / 100.00;
|
||||
if (c9p0 != null) sysDdp1 += c9p1 * c9p0 / 100.00;
|
||||
if (c9p0 != null) sysDdp2 += c9p2 * c9p0 / 100.00;
|
||||
|
||||
|
||||
if (ddp1 != null && sysDdp1 != null) avgDdp1 = (ddp1 + sysDdp1) / 2.0;
|
||||
if (ddp2 != null && sysDdp2 != null) avgDdp2 = (ddp2 + sysDdp2) / 2.0;
|
||||
if (ddp3 != null && sysDdp3 != null) avgDdp3 = (ddp3 + sysDdp3) / 2.0;
|
||||
if (ddp4 != null && sysDdp4 != null) avgDdp4 = (ddp4 + sysDdp4) / 2.0;
|
||||
if (ddp5 != null && sysDdp5 != null) avgDdp5 = (ddp5 + sysDdp5) / 2.0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
35
src/main/java/cn/lihongjie/coal/mapper/RoundMapper.java
Normal file
35
src/main/java/cn/lihongjie/coal/mapper/RoundMapper.java
Normal file
@@ -0,0 +1,35 @@
|
||||
package cn.lihongjie.coal.mapper;
|
||||
|
||||
import cn.lihongjie.coal.entity.CoalWashingDailyAnalysisEntity;
|
||||
import cn.lihongjie.coal.entity.CoalWashingDailyAnalysisItemVo;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingConstants;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
|
||||
@Mapper(
|
||||
componentModel = MappingConstants.ComponentModel.SPRING,
|
||||
uses = {CommonMapper.class}
|
||||
|
||||
)
|
||||
public interface RoundMapper {
|
||||
|
||||
|
||||
CoalWashingDailyAnalysisEntity round(CoalWashingDailyAnalysisEntity entity);
|
||||
|
||||
CoalWashingDailyAnalysisItemVo round(CoalWashingDailyAnalysisItemVo entity);
|
||||
|
||||
|
||||
default Double formatDouble(Double d) {
|
||||
|
||||
if (d == null) {
|
||||
return d;
|
||||
}
|
||||
|
||||
|
||||
return new BigDecimal(d).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package cn.lihongjie.coal.entity;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.time.LocalTime;
|
||||
import java.util.Arrays;
|
||||
|
||||
class CoalWashingDailyAnalysisEntityTest {
|
||||
|
||||
|
||||
@Test
|
||||
void test1() {
|
||||
|
||||
CoalWashingDailyAnalysisEntity analysis = new CoalWashingDailyAnalysisEntity();
|
||||
|
||||
CoalWashingDailyAnalysisItemVo vo1 = new CoalWashingDailyAnalysisItemVo();
|
||||
vo1.setC0p0(100.0);
|
||||
vo1.setC0p1(10.0);
|
||||
vo1.setC0p2(12.0);
|
||||
vo1.setTime(LocalTime.of(1, 0));
|
||||
vo1.setTotalNumber(10.0);
|
||||
|
||||
|
||||
CoalWashingDailyAnalysisItemVo vo2 = new CoalWashingDailyAnalysisItemVo();
|
||||
vo2.setC0p0(100.0);
|
||||
vo2.setC0p1(10.0);
|
||||
vo2.setC0p2(12.0);
|
||||
vo2.setTime(LocalTime.of(2, 0));
|
||||
vo2.setTotalNumber(12.0);
|
||||
|
||||
analysis.setInputItems(Arrays.asList(vo1, vo2));
|
||||
|
||||
analysis.rollingAvg();
|
||||
|
||||
System.out.println(analysis);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user