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 | 104 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 89 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/whyc/dto/XmlFileOpreate.java b/src/main/java/com/whyc/dto/XmlFileOpreate.java index 8bbed61..1911faf 100644 --- a/src/main/java/com/whyc/dto/XmlFileOpreate.java +++ b/src/main/java/com/whyc/dto/XmlFileOpreate.java @@ -113,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(); @@ -131,21 +133,29 @@ esCap=battRes/Float.valueOf(br); } battData.setEstimatedCap(esCap*battCap);*/ - float preCapPercent=MathUtil.getPreCapTest(Float.valueOf(br),battRes); + /* 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); - + //鍐呴樆鍋忓樊鐜囪缃粯璁ゅ�间负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); @@ -153,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(); @@ -283,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(); @@ -300,14 +337,18 @@ esCap=battRes/Float.valueOf(br); } battData.setEstimatedCap(esCap*battCap);*/ - float preCapPercent=MathUtil.getPreCapTest(Float.valueOf(br),battRes); + /*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); + 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()); @@ -316,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; @@ -333,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); } } } -- Gitblit v1.9.1