src/main/java/com/whyc/dto/XmlFileOpreate.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/BattgroupData.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/util/MathUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/dto/XmlFileOpreate.java
@@ -2,6 +2,7 @@ import com.whyc.pojo.*; import com.whyc.util.MathUtil; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; @@ -123,14 +124,22 @@ file_node=node.element("br_1"); String br=file_node.getTextTrim(); battData.setBr(br); float esCap=0f; /*float esCap=0f; if(battRes==0){ esCap=1; }else{ esCap=battRes/Float.valueOf(br); } battData.setEstimatedCap(esCap*battCap); battData.setBr(br); battData.setEstimatedCap(esCap*battCap);*/ float preCapPercent=MathUtil.getPreCapTest(Float.valueOf(br),battRes); //容量百分比修改 battData.setPreCapPercent(preCapPercent); //预估容量 battData.setEstimatedCap(preCapPercent*battCap); //内阻偏差率 float resDevRate=(Float.valueOf(br)-battRes)/battRes; battData.setResDevRate(resDevRate); file_node=node.element("bs_1"); battData.setBs(file_node.getTextTrim()); file_node=node.element("cr_1"); @@ -284,13 +293,22 @@ batt_node=file_node.element("br_1"); String br=batt_node.getTextTrim(); battData.setBr(br); float esCap=0f; /* float esCap=0f; if(battRes==0){ esCap=1; }else{ esCap=battRes/Float.valueOf(br); } battData.setEstimatedCap(esCap*battCap); battData.setEstimatedCap(esCap*battCap);*/ float preCapPercent=MathUtil.getPreCapTest(Float.valueOf(br),battRes); //容量百分比修改 battData.setPreCapPercent(preCapPercent); //预估容量 battData.setEstimatedCap(preCapPercent*battCap); //内阻偏差率 float resDevRate=(Float.valueOf(br)-battRes)/battRes; battData.setResDevRate(resDevRate); batt_node=file_node.element("bs_1"); battData.setBs(batt_node.getTextTrim()); batt_node=file_node.element("cr_1"); @@ -331,6 +349,8 @@ } return fileInfo; } //解析xml文件 public static FileInfo readXml(String xmlFilePath) { src/main/java/com/whyc/pojo/BattgroupData.java
@@ -53,7 +53,7 @@ private String cr; @ApiModelProperty(value = "异常标记 0:无异常 1:鼓包 2:漏液 4:开裂 8:内阻超标") private int er; private Integer er; @TableField(exist = false) private Date testTime; @@ -79,7 +79,17 @@ private String resEvaluation; @TableField(exist = false) private String monNumStr; @TableField(exist = false) @ApiModelProperty("预估容量") private float estimatedCap; @TableField(exist = false) @ApiModelProperty("预估容量百分比") private float preCapPercent; @TableField(exist = false) @ApiModelProperty("内阻偏差率") private float resDevRate; } src/main/java/com/whyc/util/MathUtil.java
@@ -84,6 +84,26 @@ return judge; } /* (容量百分比预估计算方式) A、系统读取测试文件内参考值R(此时并没有分他是平均值或参考值,参考值可有在文件打开时手动更改): a、测试值R≤参考值R时,容量预估值=100% b、测试值R≥参考值2R时,容量预估值直接显示1% c、参考值R<测试值R<参考值2R时,容量预估值={100%~1%(比值=(1-(R测-R参)/R参)*100%”)} **/ public static float getPreCapTest(float testRes,float refRes){ float preCap=0f; if(testRes<=refRes){ preCap=1; }else if(testRes>=(2*refRes)){ preCap= (float) 0.01; }else { float radio=(1-(testRes-refRes)/refRes); preCap= (float) (1-0.01*radio); } return preCap; } public static void main(String[] args) { Float[] f = {3.54f,3.55f,3.55f,3.56f,3.57f,3.56f,3.58f,3.58f,3.56f}; Float[] f2 = {3.53f,3.55f,3.56f,3.57f,3.59f,3.58f,3.6f,3.6f,3.61f};