From b46f7fa6d77852ae9e28a062da234a2ddf9405fb Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期一, 31 三月 2025 16:09:51 +0800 Subject: [PATCH] 2025-3-22定制修改导出去掉容量和连接条 --- src/main/java/com/whyc/dto/XmlFileOpreate.java | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 107 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/whyc/dto/XmlFileOpreate.java b/src/main/java/com/whyc/dto/XmlFileOpreate.java index 011a2a5..1911faf 100644 --- a/src/main/java/com/whyc/dto/XmlFileOpreate.java +++ b/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; @@ -112,7 +113,9 @@ Iterator nodes = rootnode.elementIterator("node_batt_num"); BattgroupInfo battInfo=new BattgroupInfo(); List<BattgroupData> battDataList=new ArrayList(); - List<Float> list=new ArrayList();//瀛樻斁鎵�鏈夌殑鍐呴樆鏁版嵁 + //List<Float> list=new ArrayList();//瀛樻斁鎵�鏈夌殑鍐呴樆鏁版嵁 + List<Float> avglist=new ArrayList();//瀛樻斁鏈夋晥鐨勫唴闃绘暟鎹敤浜庤绠楀亸宸巼锛堝綋鏍囩О鍐呴樆涓�0鏃讹紝鐢ㄥ钩鍐呴樆锛� + int avgNum=0; if(nodes!=null){ while (nodes.hasNext()){ node= (Element) nodes.next(); @@ -123,20 +126,36 @@ 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); + //鍐呴樆鍋忓樊鐜囪缃粯璁ゅ�间负0 + if(battRes==0){ + battData.setResDevRate(Float.POSITIVE_INFINITY); + }else{ + 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"); battData.setCr(file_node.getTextTrim()); battDataList.add(battData); - list.add(Float.valueOf(battData.getBr())); + //list.add(Float.valueOf(battData.getBr())); + //鑾峰彇鏈夋晥鍐呴樆 + if(Float.parseFloat(battData.getBv())>0&&Float.parseFloat(battData.getBr())>0){ + avgNum++; + avglist.add(Float.parseFloat(battData.getBr())); + } } } battInfo.setBattDataList(battDataList); @@ -144,17 +163,42 @@ fileInfo.getBattInfoList().add(battInfo); //褰撴爣绉板唴闃讳负0鏃讹紝璁$畻鏈�浣庝笁鍒嗕箣涓�鍗曚綋鏁板唴闃绘暟鎹殑骞冲潎鍊� if(fparam.getBattRes()==0){ - if(list!=null&&list.size()>0){ + /*if(list!=null&&list.size()>0){ int battNum= (int) Math.ceil(list.size()/3); float resSum=0f; Collections.sort(list); - System.out.println(list.toString()); for(int i=0;i<battNum;i++){ resSum=resSum+list.get(i); } String avgRes=String.format("%.2f",resSum/battNum); fparam.setBattRes(Float.valueOf(avgRes)); + }*/ + //璁$畻骞冲眬鍐呴樆 + if(avglist!=null&&avglist.size()>0){ + Collections.sort(avglist); + System.err.println(avglist.toString()); + float sunBr=0f; + avgNum= (int) Math.ceil(0.01*avgNum*(100-fparam.getSamplePercent())); + int effNum=0; + for (int i=0;i<avglist.size();i++) { + if(i!=0&&i<=avgNum){ + sunBr+=avglist.get(i); + effNum++; + } + } + String avgRes=String.format("%.2f",sunBr/effNum); + fparam.setBattRes(Float.valueOf(avgRes)); } + } + float effRes=fparam.getBattRes(); //鏈夋晥鐨勬爣绉板唴闃� + for (BattgroupData battData:battInfo.getBattDataList()) { + float resDevRate=(Float.valueOf(battData.getBr())-effRes)/effRes; + battData.setResDevRate(resDevRate); + float preCapPercent=MathUtil.getPreCapTest(Float.valueOf(battData.getBr()),effRes); + //瀹归噺鐧惧垎姣斾慨鏀� + battData.setPreCapPercent(preCapPercent); + //棰勪及瀹归噺 + battData.setEstimatedCap(preCapPercent*battCap); } fileInfo.setFileParam(fparam); fiso.close(); @@ -274,7 +318,9 @@ Iterator iterator1 = node.elementIterator(); BattgroupInfo battInfo=new BattgroupInfo(); List<BattgroupData> battDataList=new ArrayList(); - List<Float> list=new ArrayList();//瀛樻斁鎵�鏈夌殑鍐呴樆鏁版嵁 + //List<Float> list=new ArrayList();//瀛樻斁鎵�鏈夌殑鍐呴樆鏁版嵁 + List<Float> avglist=new ArrayList();//瀛樻斁鏈夋晥鐨勫唴闃绘暟鎹敤浜庤绠楀亸宸巼锛堝綋鏍囩О鍐呴樆涓�0鏃讹紝鐢ㄥ钩鍐呴樆锛� + int avgNum=0; while (iterator1.hasNext()){ file_node= (Element) iterator1.next(); BattgroupData battData=new BattgroupData(); @@ -284,13 +330,26 @@ 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); + //鍐呴樆鍋忓樊鐜� + if(battRes==0){ + battData.setResDevRate(Float.POSITIVE_INFINITY); + }else{ + 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"); @@ -298,13 +357,18 @@ batt_node=file_node.element("er_1"); battData.setEr(Integer.parseInt(batt_node.getTextTrim())); battDataList.add(battData); - list.add(Float.valueOf(battData.getBr())); + //list.add(Float.valueOf(battData.getBr())); + //鑾峰彇鏈夋晥鍐呴樆 + if(Float.parseFloat(battData.getBv())>0&&Float.parseFloat(battData.getBr())>0){ + avgNum++; + avglist.add(Float.parseFloat(battData.getBr())); + } } battInfo.setTestTime(ActionUtil.sdfwithALL.parse(testTime)); battInfo.setBattDataList(battDataList); fileInfo.getBattInfoList().add(battInfo); //褰撴爣绉板唴闃讳负0鏃讹紝璁$畻鏈�浣庝笁鍒嗕箣涓�鍗曚綋鏁板唴闃绘暟鎹殑骞冲潎鍊� - if(fparam.getBattRes()==0){ + /*if(fparam.getBattRes()==0){ if(list!=null&&list.size()>0){ int battNum= (int) Math.ceil(list.size()/3); float resSum=0f; @@ -315,6 +379,34 @@ String avgRes=String.format("%.2f",resSum/battNum); fparam.setBattRes(Float.valueOf(avgRes)); } + }*/ + if(fparam.getBattRes()==0){ + //璁$畻骞冲眬鍐呴樆 + if(avglist!=null&&avglist.size()>0){ + Collections.sort(avglist); + System.err.println(avglist.toString()); + float sunBr=0f; + avgNum= (int) Math.ceil(0.01*avgNum*(100-fparam.getSamplePercent())); + int effNum=0; + for (int i=0;i<avglist.size();i++) { + if(i!=0&&i<=avgNum){ + sunBr+=avglist.get(i); + effNum++; + } + } + String avgRes=String.format("%.2f",sunBr/effNum); + fparam.setBattRes(Float.valueOf(avgRes)); + } + } + float effRes=fparam.getBattRes(); //鏈夋晥鐨勬爣绉板唴闃� + for (BattgroupData battData:battInfo.getBattDataList()) { + float resDevRate=(Float.valueOf(battData.getBr())-effRes)/effRes; + battData.setResDevRate(resDevRate); + float preCapPercent=MathUtil.getPreCapTest(Float.valueOf(battData.getBr()),effRes); + //瀹归噺鐧惧垎姣斾慨鏀� + battData.setPreCapPercent(preCapPercent); + //棰勪及瀹归噺 + battData.setEstimatedCap(preCapPercent*battCap); } } } @@ -331,6 +423,8 @@ } return fileInfo; } + + //瑙f瀽xml鏂囦欢 public static FileInfo readXml(String xmlFilePath) { @@ -349,7 +443,7 @@ switch (version){ case "V2.0": fileInfo=readFBR_6000NT_bj(xmlFilePath);break; case "V2.7": fileInfo=readFBR_6000NT_jc(xmlFilePath);break; - default:break; + default:fileInfo=readFBR_6000NT_bj(xmlFilePath);break; } } fiso.close(); -- Gitblit v1.9.1