| | |
| | | import org.springframework.stereotype.Service; |
| | | import com.zt.common.db.query.QueryFilter; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.ArrayList; |
| | | import java.util.Formatter; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.Stream; |
| | | |
| | | |
| | | /** |
| | |
| | | public List<ResultDto> getResult(ConditionDto dto) { |
| | | List<ResultDto> result = new ArrayList<>(); |
| | | List<TestScheme> list = baseDao.getList(); |
| | | if (dto.getTjlx().equals("条件1")) { |
| | | if (dto.getTjlx().equals("按风险名义值查询")) { |
| | | result = this.getCondition1(dto, list); |
| | | } else if (dto.getTjlx().equals("条件2")) { |
| | | } else if (dto.getTjlx().equals("不限定生产方风险查询")) { |
| | | result = this.getCondition2(dto, list); |
| | | } else if (dto.getTjlx().equals("条件3")) { |
| | | } else if (dto.getTjlx().equals("不限定规定值查询")) { |
| | | result = this.getCondition3(dto, list); |
| | | } |
| | | return result; |
| | |
| | | for (int i = 1; i <= 10; i++) { |
| | | Integer finalI = i; |
| | | TestScheme data1 = list.stream().filter(k -> k.getPa().equals(dto.getUserRisk()) && k.getPc() == (2 * finalI + 2)).findFirst().get();// |
| | | TestScheme data2 = list.stream().filter(k -> k.getPa().equals(1 - dto.getUserRisk()) && k.getPc() == (2 * finalI + 2)).findFirst().get();// |
| | | TestScheme data2 = list.stream().filter(k -> k.getPa().equals(BigDecimal.ONE.subtract(dto.getUserRisk())) && k.getPc() == (2 * finalI + 2)).findFirst().get();// |
| | | if (data1 != null && data2 != null) { |
| | | Double value = data2.getValue() / data1.getValue(); |
| | | double strate = dto.getMinAccepValue() / dto.getSpecifiedValue(); |
| | |
| | | double TST1 = 0; //T/θ1 |
| | | double TST0 = 0; //T/θ0 |
| | | Integer finalC = C; |
| | | TestScheme data3 = list.stream().filter(k -> k.getPa().equals(1 - dto.getUserRisk()) && k.getPc() == (2 * finalC + 2)).findFirst().get();// |
| | | Stream<TestScheme> testSchemeStream = list.stream().filter(k -> k.getPa().equals(dto.getUserRisk()) && k.getPc() == (2 * finalC + 2)); |
| | | TestScheme data3 = testSchemeStream.findFirst().get(); |
| | | if (data3 != null) { |
| | | TST1 = data3.getValue() / 2; //T/θ1 |
| | | //TST1 = Convert.ToDouble(TST1.ToString("G2")); //取两位有效数字 |
| | | if (TST1 < 10) TST1 = TST1 + 0.1; |
| | | if (TST1 < 10) { |
| | | TST1 = TST1 + 0.1; |
| | | } |
| | | T = TST1 * dto.getMinAccepValue(); //总试验时间 |
| | | TST0 = T / dto.getSpecifiedValue(); //T/θ0 TST1 * minAccepValue / specifiedValue |
| | | } |
| | |
| | | |
| | | private List<ResultDto> getCondition3(ConditionDto dto, List<TestScheme> list) { |
| | | List<ResultDto> result = new ArrayList<>(); |
| | | for (int i = 0; i <= dto.getShowFailureTime(); i++) { |
| | | for (int i = 0; i < dto.getShowFailureTime(); i++) { |
| | | Integer finalI = i; |
| | | List<TestScheme> data = list.stream().filter(k -> k.getPa().equals(dto.getUserRisk()) && k.getPc() == (2 * finalI + 2)).collect(Collectors.toList());// |
| | | List<TestScheme> data2 = list.stream().filter(k -> k.getPa().equals(1 - dto.getProductionRisk()) && k.getPc() == (2 * finalI + 2)).collect(Collectors.toList());// |
| | | List<TestScheme> data2 = list.stream().filter(k -> k.getPa().equals(BigDecimal.ONE.subtract(dto.getProductionRisk())) && k.getPc() == (2 * finalI + 2)).collect(Collectors.toList());// |
| | | double T = 0; |
| | | double TST1 = 0; // T/θ1 |
| | | double TST0 = 0;// T/θ0 |
| | |
| | | userRisk = userRisk + Math.pow(TST1, r) * Math.pow(e, -TST1) / getjc(r); |
| | | } |
| | | ResultDto resultDto = new ResultDto(); |
| | | resultDto.setAcceptNumber(i); |
| | | resultDto.setAcceptNumber(i + 1); |
| | | resultDto.setTotalTestTime(String.valueOf(Math.round(T))); |
| | | resultDto.setNumber(String.valueOf(Math.round(ST0))); |
| | | resultDto.setProductionRiskReal(new Formatter().format("%.2f", productionRisk * 100).toString()); |