| | |
| | | package com.whyc.util; |
| | | |
| | | import com.whyc.config.I18nLocaleResolver; |
| | | import com.whyc.pojo.TestParam; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Locale; |
| | | import java.util.stream.Collectors; |
| | | |
| | | public class MathUtil { |
| | |
| | | double σ = Math.sqrt(s.doubleValue()); |
| | | return BigDecimal.valueOf(σ).setScale(4, RoundingMode.HALF_UP).floatValue(); |
| | | } |
| | | //评判整组的好坏flag:1 电压; 2 内阻;3 连接条 |
| | | public static String getJudge(float minStd, float std, TestParam testParam){ |
| | | String judge="未知"; |
| | | //评判整组的好坏flag:1差,2良,3优 电压; 内阻越大越不好 |
| | | public static int getflag(float maxStd, float std, TestParam testParam){ |
| | | int flag=0; |
| | | float judgeStdLow=0f; |
| | | float judgeStdHigh=0f; |
| | | maxStd=maxStd*100; |
| | | if (testParam!=null){ |
| | | judgeStdLow=std*testParam.getResGoodCoeK3(); |
| | | judgeStdHigh=std*testParam.getResBadCoeK4(); |
| | | if(minStd<=judgeStdLow){ |
| | | judge="差"; |
| | | }else if(minStd<=judgeStdHigh){ |
| | | judge="良"; |
| | | if(maxStd>=judgeStdHigh){ |
| | | flag=1;//"差" |
| | | }else if(maxStd>=judgeStdLow){ |
| | | flag=2;//"良"; |
| | | }else{ |
| | | judge="优"; |
| | | flag=3;//"优"; |
| | | } |
| | | } |
| | | return flag; |
| | | } |
| | | //评判整组的好坏flag:1 电压; 内阻越大越不好 |
| | | public static String getJudge(boolean zhFlag,int flag){ |
| | | String judge=""; |
| | | if(zhFlag) { |
| | | judge="未知"; |
| | | }else{ |
| | | judge="unknown"; |
| | | } |
| | | switch (flag){ |
| | | /*case 1:judge="差";break; |
| | | case 2:judge="良";break; |
| | | case 3:judge="优";break;*/ |
| | | case 1: |
| | | if(zhFlag) { |
| | | judge="差"; |
| | | }else{ |
| | | judge="bad"; |
| | | } |
| | | break; |
| | | case 2: |
| | | if(zhFlag) { |
| | | judge="良"; |
| | | }else{ |
| | | judge="good"; |
| | | } |
| | | break; |
| | | case 3: |
| | | if(zhFlag) { |
| | | judge="优"; |
| | | }else{ |
| | | judge="excellent"; |
| | | } |
| | | break; |
| | | } |
| | | 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; |
| | | } |
| | | if(testRes>=(2*refRes)){ |
| | | preCap= (float) 0.01; |
| | | } |
| | | if((testRes>refRes)&&(testRes<(2*refRes))){ |
| | | 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}; |