diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java index 5ae8728..a203bd8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java @@ -1,7 +1,6 @@ package com.casic.missiles.controller.resource; import com.casic.missiles.controller.GeneralApprovalController; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ExportDTO; import com.casic.missiles.dto.ReturnDTO; @@ -49,7 +48,7 @@ @ApiOperation("导出word/pdf/打印") @PostMapping("/exportFile") - public void exportFile(@RequestBody @Valid ExportDTO exportDTO, HttpServletResponse response){ + public void exportFile(@RequestBody @Valid ExportDTO exportDTO, HttpServletResponse response) throws Exception { authorizeOrderService.exportFile(exportDTO,response); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java index 5ae8728..a203bd8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java @@ -1,7 +1,6 @@ package com.casic.missiles.controller.resource; import com.casic.missiles.controller.GeneralApprovalController; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ExportDTO; import com.casic.missiles.dto.ReturnDTO; @@ -49,7 +48,7 @@ @ApiOperation("导出word/pdf/打印") @PostMapping("/exportFile") - public void exportFile(@RequestBody @Valid ExportDTO exportDTO, HttpServletResponse response){ + public void exportFile(@RequestBody @Valid ExportDTO exportDTO, HttpServletResponse response) throws Exception { authorizeOrderService.exportFile(exportDTO,response); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java index fc22343..d943c71 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java @@ -845,62 +845,71 @@ List checkDataLowPowerList = request.getCheckDataLowPowerList(); int temConclusionJudge = 0; for (BizEquipmentStandardCheckDataLowPower checkData : checkDataLowPowerList) { - //校准因子 Ku=Kc*Pbu/Pcu - BigDecimal kc = new BigDecimal(checkData.getKc()); - BigDecimal pbuOne = new BigDecimal(checkData.getPbuValueOne()); - checkData.setPbuValueOne(String.valueOf(pbuOne)); - BigDecimal pbuTwo = new BigDecimal(checkData.getPbuValueTwo()); - checkData.setPbuValueTwo(String.valueOf(pbuTwo)); - BigDecimal pbuThree = new BigDecimal(checkData.getPbuValueThree()); - checkData.setPbuValueThree(String.valueOf(pbuThree)); - BigDecimal pbuFour = new BigDecimal(checkData.getPbuValueFour()); - checkData.setPbuValueFour(String.valueOf(pbuFour)); - BigDecimal pbuFive = new BigDecimal(checkData.getPbuValueFive()); - checkData.setPbuValueFive(String.valueOf(pbuFive)); - BigDecimal pbuSix = new BigDecimal(checkData.getPbuValueSix()); - checkData.setPbuValueSix(String.valueOf(pbuSix)); - BigDecimal pbuSeven = new BigDecimal(checkData.getPbuValueSeven()); - checkData.setPbuValueSeven(String.valueOf(pbuSeven)); - BigDecimal pbuEight = new BigDecimal(checkData.getPbuValueEight()); - checkData.setPbuValueEight(String.valueOf(pbuEight)); - BigDecimal pbuNine = new BigDecimal(checkData.getPbuValueNine()); - checkData.setPbuValueNine(String.valueOf(pbuNine)); - BigDecimal pbuTen = new BigDecimal(checkData.getPbuValueTen()); - checkData.setPbuValueTen(String.valueOf(pbuTen)); - - BigDecimal pbcOne = new BigDecimal(checkData.getPcuValueOne()); - BigDecimal pbcTwo = new BigDecimal(checkData.getPcuValueTwo()); - BigDecimal pbcThree = new BigDecimal(checkData.getPcuValueThree()); - BigDecimal pbcFour = new BigDecimal(checkData.getPcuValueFour()); - BigDecimal pbcFive = new BigDecimal(checkData.getPcuValueFive()); - BigDecimal pbcSix = new BigDecimal(checkData.getPcuValueSix()); - BigDecimal pbcSeven = new BigDecimal(checkData.getPcuValueSeven()); - BigDecimal pbcEight = new BigDecimal(checkData.getPcuValueEight()); - BigDecimal pbcNine = new BigDecimal(checkData.getPcuValueNine()); - BigDecimal pbcTen = new BigDecimal(checkData.getPcuValueTen()); - - BigDecimal kuOne = kc.multiply(pbuOne).divide(pbcOne, 4, RoundingMode.HALF_UP); - BigDecimal kuTwo = kc.multiply(pbuTwo).divide(pbcTwo, 4, RoundingMode.HALF_UP); - BigDecimal kuThree = kc.multiply(pbuThree).divide(pbcThree, 4, RoundingMode.HALF_UP); - BigDecimal kuFour = kc.multiply(pbuFour).divide(pbcFour, 4, RoundingMode.HALF_UP); - BigDecimal kuFive = kc.multiply(pbuFive).divide(pbcFive, 4, RoundingMode.HALF_UP); - BigDecimal kuSix = kc.multiply(pbuSix).divide(pbcSix, 4, RoundingMode.HALF_UP); - BigDecimal kuSeven = kc.multiply(pbuSeven).divide(pbcSeven, 4, RoundingMode.HALF_UP); - BigDecimal kuEight = kc.multiply(pbuEight).divide(pbcEight, 4, RoundingMode.HALF_UP); - BigDecimal kuNine = kc.multiply(pbuNine).divide(pbcNine, 4, RoundingMode.HALF_UP); - BigDecimal kuTen = kc.multiply(pbuTen).divide(pbcTen, 4, RoundingMode.HALF_UP); - checkData.setKuValueOne(String.valueOf(kuOne)); - checkData.setKuValueTwo(String.valueOf(kuTwo)); - checkData.setKuValueThree(String.valueOf(kuThree)); - checkData.setKuValueFour(String.valueOf(kuFour)); - checkData.setKuValueFive(String.valueOf(kuFive)); - checkData.setKuValueSix(String.valueOf(kuSix)); - checkData.setKuValueSeven(String.valueOf(kuSeven)); - checkData.setKuValueEight(String.valueOf(kuEight)); - checkData.setKuValueNine(String.valueOf(kuNine)); - checkData.setKuValueTen(String.valueOf(kuTen)); - if ("重复性".equals(checkData.getCheckType())) { + BigDecimal kc = new BigDecimal(checkData.getKc()); + BigDecimal pbuOne = new BigDecimal(checkData.getPbuValueOne()); + checkData.setPbuValueOne(String.valueOf(pbuOne.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuTwo = new BigDecimal(checkData.getPbuValueTwo()); + checkData.setPbuValueTwo(String.valueOf(pbuTwo.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuThree = new BigDecimal(checkData.getPbuValueThree()); + checkData.setPbuValueThree(String.valueOf(pbuThree.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuFour = new BigDecimal(checkData.getPbuValueFour()); + checkData.setPbuValueFour(String.valueOf(pbuFour.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuFive = new BigDecimal(checkData.getPbuValueFive()); + checkData.setPbuValueFive(String.valueOf(pbuFive.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuSix = new BigDecimal(checkData.getPbuValueSix()); + checkData.setPbuValueSix(String.valueOf(pbuSix.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuSeven = new BigDecimal(checkData.getPbuValueSeven()); + checkData.setPbuValueSeven(String.valueOf(pbuSeven.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuEight = new BigDecimal(checkData.getPbuValueEight()); + checkData.setPbuValueEight(String.valueOf(pbuEight.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuNine = new BigDecimal(checkData.getPbuValueNine()); + checkData.setPbuValueNine(String.valueOf(pbuNine.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuTen = new BigDecimal(checkData.getPbuValueTen()); + checkData.setPbuValueTen(String.valueOf(pbuTen.setScale(3, RoundingMode.HALF_UP))); + + BigDecimal pcuOne = new BigDecimal(checkData.getPcuValueOne()); + BigDecimal pcuTwo = new BigDecimal(checkData.getPcuValueTwo()); + BigDecimal pcuThree = new BigDecimal(checkData.getPcuValueThree()); + BigDecimal pcuFour = new BigDecimal(checkData.getPcuValueFour()); + BigDecimal pcuFive = new BigDecimal(checkData.getPcuValueFive()); + BigDecimal pcuSix = new BigDecimal(checkData.getPcuValueSix()); + BigDecimal pcuSeven = new BigDecimal(checkData.getPcuValueSeven()); + BigDecimal pcuEight = new BigDecimal(checkData.getPcuValueEight()); + BigDecimal pcuNine = new BigDecimal(checkData.getPcuValueNine()); + BigDecimal pcuTen = new BigDecimal(checkData.getPcuValueTen()); + checkData.setPcuValueOne(String.valueOf(pcuOne.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueTwo(String.valueOf(pcuTwo.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueThree(String.valueOf(pcuThree.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueFour(String.valueOf(pcuFour.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueFive(String.valueOf(pcuFive.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueSix(String.valueOf(pcuSix.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueSeven(String.valueOf(pcuSeven.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueEight(String.valueOf(pcuEight.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueNine(String.valueOf(pcuNine.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueTen(String.valueOf(pcuTen.setScale(4, RoundingMode.HALF_UP))); + + //校准因子 Ku=Kc*Pbu/Pcu + BigDecimal kuOne = kc.multiply(pbuOne).divide(pcuOne, 4, RoundingMode.HALF_UP); + BigDecimal kuTwo = kc.multiply(pbuTwo).divide(pcuTwo, 4, RoundingMode.HALF_UP); + BigDecimal kuThree = kc.multiply(pbuThree).divide(pcuThree, 4, RoundingMode.HALF_UP); + BigDecimal kuFour = kc.multiply(pbuFour).divide(pcuFour, 4, RoundingMode.HALF_UP); + BigDecimal kuFive = kc.multiply(pbuFive).divide(pcuFive, 4, RoundingMode.HALF_UP); + BigDecimal kuSix = kc.multiply(pbuSix).divide(pcuSix, 4, RoundingMode.HALF_UP); + BigDecimal kuSeven = kc.multiply(pbuSeven).divide(pcuSeven, 4, RoundingMode.HALF_UP); + BigDecimal kuEight = kc.multiply(pbuEight).divide(pcuEight, 4, RoundingMode.HALF_UP); + BigDecimal kuNine = kc.multiply(pbuNine).divide(pcuNine, 4, RoundingMode.HALF_UP); + BigDecimal kuTen = kc.multiply(pbuTen).divide(pcuTen, 4, RoundingMode.HALF_UP); + checkData.setKuValueOne(String.valueOf(kuOne)); + checkData.setKuValueTwo(String.valueOf(kuTwo)); + checkData.setKuValueThree(String.valueOf(kuThree)); + checkData.setKuValueFour(String.valueOf(kuFour)); + checkData.setKuValueFive(String.valueOf(kuFive)); + checkData.setKuValueSix(String.valueOf(kuSix)); + checkData.setKuValueSeven(String.valueOf(kuSeven)); + checkData.setKuValueEight(String.valueOf(kuEight)); + checkData.setKuValueNine(String.valueOf(kuNine)); + checkData.setKuValueTen(String.valueOf(kuTen)); //平均值 BigDecimal average = averageForTen(checkData.getKuValueOne(), checkData.getKuValueTwo(), checkData.getKuValueThree(), checkData.getKuValueFour(), checkData.getKuValueFive(), checkData.getKuValueSix(), checkData.getKuValueSeven(), checkData.getKuValueEight(), checkData.getKuValueNine(), diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java index 5ae8728..a203bd8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java @@ -1,7 +1,6 @@ package com.casic.missiles.controller.resource; import com.casic.missiles.controller.GeneralApprovalController; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ExportDTO; import com.casic.missiles.dto.ReturnDTO; @@ -49,7 +48,7 @@ @ApiOperation("导出word/pdf/打印") @PostMapping("/exportFile") - public void exportFile(@RequestBody @Valid ExportDTO exportDTO, HttpServletResponse response){ + public void exportFile(@RequestBody @Valid ExportDTO exportDTO, HttpServletResponse response) throws Exception { authorizeOrderService.exportFile(exportDTO,response); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java index fc22343..d943c71 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java @@ -845,62 +845,71 @@ List checkDataLowPowerList = request.getCheckDataLowPowerList(); int temConclusionJudge = 0; for (BizEquipmentStandardCheckDataLowPower checkData : checkDataLowPowerList) { - //校准因子 Ku=Kc*Pbu/Pcu - BigDecimal kc = new BigDecimal(checkData.getKc()); - BigDecimal pbuOne = new BigDecimal(checkData.getPbuValueOne()); - checkData.setPbuValueOne(String.valueOf(pbuOne)); - BigDecimal pbuTwo = new BigDecimal(checkData.getPbuValueTwo()); - checkData.setPbuValueTwo(String.valueOf(pbuTwo)); - BigDecimal pbuThree = new BigDecimal(checkData.getPbuValueThree()); - checkData.setPbuValueThree(String.valueOf(pbuThree)); - BigDecimal pbuFour = new BigDecimal(checkData.getPbuValueFour()); - checkData.setPbuValueFour(String.valueOf(pbuFour)); - BigDecimal pbuFive = new BigDecimal(checkData.getPbuValueFive()); - checkData.setPbuValueFive(String.valueOf(pbuFive)); - BigDecimal pbuSix = new BigDecimal(checkData.getPbuValueSix()); - checkData.setPbuValueSix(String.valueOf(pbuSix)); - BigDecimal pbuSeven = new BigDecimal(checkData.getPbuValueSeven()); - checkData.setPbuValueSeven(String.valueOf(pbuSeven)); - BigDecimal pbuEight = new BigDecimal(checkData.getPbuValueEight()); - checkData.setPbuValueEight(String.valueOf(pbuEight)); - BigDecimal pbuNine = new BigDecimal(checkData.getPbuValueNine()); - checkData.setPbuValueNine(String.valueOf(pbuNine)); - BigDecimal pbuTen = new BigDecimal(checkData.getPbuValueTen()); - checkData.setPbuValueTen(String.valueOf(pbuTen)); - - BigDecimal pbcOne = new BigDecimal(checkData.getPcuValueOne()); - BigDecimal pbcTwo = new BigDecimal(checkData.getPcuValueTwo()); - BigDecimal pbcThree = new BigDecimal(checkData.getPcuValueThree()); - BigDecimal pbcFour = new BigDecimal(checkData.getPcuValueFour()); - BigDecimal pbcFive = new BigDecimal(checkData.getPcuValueFive()); - BigDecimal pbcSix = new BigDecimal(checkData.getPcuValueSix()); - BigDecimal pbcSeven = new BigDecimal(checkData.getPcuValueSeven()); - BigDecimal pbcEight = new BigDecimal(checkData.getPcuValueEight()); - BigDecimal pbcNine = new BigDecimal(checkData.getPcuValueNine()); - BigDecimal pbcTen = new BigDecimal(checkData.getPcuValueTen()); - - BigDecimal kuOne = kc.multiply(pbuOne).divide(pbcOne, 4, RoundingMode.HALF_UP); - BigDecimal kuTwo = kc.multiply(pbuTwo).divide(pbcTwo, 4, RoundingMode.HALF_UP); - BigDecimal kuThree = kc.multiply(pbuThree).divide(pbcThree, 4, RoundingMode.HALF_UP); - BigDecimal kuFour = kc.multiply(pbuFour).divide(pbcFour, 4, RoundingMode.HALF_UP); - BigDecimal kuFive = kc.multiply(pbuFive).divide(pbcFive, 4, RoundingMode.HALF_UP); - BigDecimal kuSix = kc.multiply(pbuSix).divide(pbcSix, 4, RoundingMode.HALF_UP); - BigDecimal kuSeven = kc.multiply(pbuSeven).divide(pbcSeven, 4, RoundingMode.HALF_UP); - BigDecimal kuEight = kc.multiply(pbuEight).divide(pbcEight, 4, RoundingMode.HALF_UP); - BigDecimal kuNine = kc.multiply(pbuNine).divide(pbcNine, 4, RoundingMode.HALF_UP); - BigDecimal kuTen = kc.multiply(pbuTen).divide(pbcTen, 4, RoundingMode.HALF_UP); - checkData.setKuValueOne(String.valueOf(kuOne)); - checkData.setKuValueTwo(String.valueOf(kuTwo)); - checkData.setKuValueThree(String.valueOf(kuThree)); - checkData.setKuValueFour(String.valueOf(kuFour)); - checkData.setKuValueFive(String.valueOf(kuFive)); - checkData.setKuValueSix(String.valueOf(kuSix)); - checkData.setKuValueSeven(String.valueOf(kuSeven)); - checkData.setKuValueEight(String.valueOf(kuEight)); - checkData.setKuValueNine(String.valueOf(kuNine)); - checkData.setKuValueTen(String.valueOf(kuTen)); - if ("重复性".equals(checkData.getCheckType())) { + BigDecimal kc = new BigDecimal(checkData.getKc()); + BigDecimal pbuOne = new BigDecimal(checkData.getPbuValueOne()); + checkData.setPbuValueOne(String.valueOf(pbuOne.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuTwo = new BigDecimal(checkData.getPbuValueTwo()); + checkData.setPbuValueTwo(String.valueOf(pbuTwo.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuThree = new BigDecimal(checkData.getPbuValueThree()); + checkData.setPbuValueThree(String.valueOf(pbuThree.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuFour = new BigDecimal(checkData.getPbuValueFour()); + checkData.setPbuValueFour(String.valueOf(pbuFour.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuFive = new BigDecimal(checkData.getPbuValueFive()); + checkData.setPbuValueFive(String.valueOf(pbuFive.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuSix = new BigDecimal(checkData.getPbuValueSix()); + checkData.setPbuValueSix(String.valueOf(pbuSix.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuSeven = new BigDecimal(checkData.getPbuValueSeven()); + checkData.setPbuValueSeven(String.valueOf(pbuSeven.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuEight = new BigDecimal(checkData.getPbuValueEight()); + checkData.setPbuValueEight(String.valueOf(pbuEight.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuNine = new BigDecimal(checkData.getPbuValueNine()); + checkData.setPbuValueNine(String.valueOf(pbuNine.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuTen = new BigDecimal(checkData.getPbuValueTen()); + checkData.setPbuValueTen(String.valueOf(pbuTen.setScale(3, RoundingMode.HALF_UP))); + + BigDecimal pcuOne = new BigDecimal(checkData.getPcuValueOne()); + BigDecimal pcuTwo = new BigDecimal(checkData.getPcuValueTwo()); + BigDecimal pcuThree = new BigDecimal(checkData.getPcuValueThree()); + BigDecimal pcuFour = new BigDecimal(checkData.getPcuValueFour()); + BigDecimal pcuFive = new BigDecimal(checkData.getPcuValueFive()); + BigDecimal pcuSix = new BigDecimal(checkData.getPcuValueSix()); + BigDecimal pcuSeven = new BigDecimal(checkData.getPcuValueSeven()); + BigDecimal pcuEight = new BigDecimal(checkData.getPcuValueEight()); + BigDecimal pcuNine = new BigDecimal(checkData.getPcuValueNine()); + BigDecimal pcuTen = new BigDecimal(checkData.getPcuValueTen()); + checkData.setPcuValueOne(String.valueOf(pcuOne.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueTwo(String.valueOf(pcuTwo.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueThree(String.valueOf(pcuThree.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueFour(String.valueOf(pcuFour.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueFive(String.valueOf(pcuFive.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueSix(String.valueOf(pcuSix.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueSeven(String.valueOf(pcuSeven.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueEight(String.valueOf(pcuEight.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueNine(String.valueOf(pcuNine.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueTen(String.valueOf(pcuTen.setScale(4, RoundingMode.HALF_UP))); + + //校准因子 Ku=Kc*Pbu/Pcu + BigDecimal kuOne = kc.multiply(pbuOne).divide(pcuOne, 4, RoundingMode.HALF_UP); + BigDecimal kuTwo = kc.multiply(pbuTwo).divide(pcuTwo, 4, RoundingMode.HALF_UP); + BigDecimal kuThree = kc.multiply(pbuThree).divide(pcuThree, 4, RoundingMode.HALF_UP); + BigDecimal kuFour = kc.multiply(pbuFour).divide(pcuFour, 4, RoundingMode.HALF_UP); + BigDecimal kuFive = kc.multiply(pbuFive).divide(pcuFive, 4, RoundingMode.HALF_UP); + BigDecimal kuSix = kc.multiply(pbuSix).divide(pcuSix, 4, RoundingMode.HALF_UP); + BigDecimal kuSeven = kc.multiply(pbuSeven).divide(pcuSeven, 4, RoundingMode.HALF_UP); + BigDecimal kuEight = kc.multiply(pbuEight).divide(pcuEight, 4, RoundingMode.HALF_UP); + BigDecimal kuNine = kc.multiply(pbuNine).divide(pcuNine, 4, RoundingMode.HALF_UP); + BigDecimal kuTen = kc.multiply(pbuTen).divide(pcuTen, 4, RoundingMode.HALF_UP); + checkData.setKuValueOne(String.valueOf(kuOne)); + checkData.setKuValueTwo(String.valueOf(kuTwo)); + checkData.setKuValueThree(String.valueOf(kuThree)); + checkData.setKuValueFour(String.valueOf(kuFour)); + checkData.setKuValueFive(String.valueOf(kuFive)); + checkData.setKuValueSix(String.valueOf(kuSix)); + checkData.setKuValueSeven(String.valueOf(kuSeven)); + checkData.setKuValueEight(String.valueOf(kuEight)); + checkData.setKuValueNine(String.valueOf(kuNine)); + checkData.setKuValueTen(String.valueOf(kuTen)); //平均值 BigDecimal average = averageForTen(checkData.getKuValueOne(), checkData.getKuValueTwo(), checkData.getKuValueThree(), checkData.getKuValueFour(), checkData.getKuValueFive(), checkData.getKuValueSix(), checkData.getKuValueSeven(), checkData.getKuValueEight(), checkData.getKuValueNine(), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java index 5607b2a..fbcd08b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java @@ -2005,9 +2005,8 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyReproducibility(), technicalIndex); } else if ("5".equals(measureData.getDataType())) { //晶振日老化率 - //日老化率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); + //结论,日老化率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2081,9 +2080,7 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyReproducibility(), technicalIndex); } else if ("5".equals(measureData.getDataType())) { //晶振日老化率 - //日老化率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); //结论,日老化率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2196,9 +2193,7 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyStability(), technicalIndex); } else if ("6".equals(measureData.getDataType())) { //日频率漂移率 - //日漂移率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日漂移率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); //结论,日漂移率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2289,9 +2284,7 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyReproducibility(), technicalIndex); } else if ("6".equals(measureData.getDataType())) { //日老化率 - //日老化率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); //结论,日老化率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2319,6 +2312,48 @@ return measureDataList; } + private static void dailyAgingRateOrdinateHandle(BizBusinessDeviceMeasureDataCesiumAtom measureData, List measureDataList) { + //日老化率K//日漂移率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 + //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 + BigDecimal correlationCoefficientOne = new BigDecimal(measureData.getCorrelationCoefficientOne()); + if (correlationCoefficientOne.compareTo(BigDecimal.valueOf(0.6)) < 0) { + measureData.setDailyAgingRateTwo("/"); + measureData.setCorrelationCoefficientTwo("/"); + } else { + measureData.setDailyAgingRateTwo(measureData.getDailyAgingRateOne()); + measureData.setCorrelationCoefficientTwo(measureData.getCorrelationCoefficientOne()); + //日老化率拟合直线/日漂移率拟合直线 + //dailyAgingRateOrdinate:日老化率拟合直线纵坐标: y = a + bt,serialNumber:横坐标 + //t平均值 = ti和/n + int size = measureDataList.size(); + int tSum = measureDataList.stream().mapToInt(BizBusinessDeviceMeasureDataCesiumAtom::getSerialNumber).sum(); + BigDecimal tAverage = new BigDecimal(tSum).divide(new BigDecimal(size), 4, RoundingMode.HALF_UP); + //y平均值 = yi和/n + Double ySum = measureDataList.stream().map(BizBusinessDeviceMeasureDataCesiumAtom::getDailyAgingRateTwo).mapToDouble(i -> Double.parseDouble(i)).sum(); + BigDecimal yAverage = new BigDecimal(ySum).divide(new BigDecimal(size), 4, RoundingMode.HALF_UP); + //Sty = (ti - tAverage)*(yi - yAverage) 的和 + BigDecimal Sty = BigDecimal.ZERO; + for (BizBusinessDeviceMeasureDataCesiumAtom data : measureDataList) { + BigDecimal Styi = (new BigDecimal(data.getSerialNumber()).subtract(tAverage)).multiply(new BigDecimal(data.getDailyAgingRateTwo()).subtract(yAverage)); + Sty = Sty.add(Styi); + } + //Stt = (ti - tAverage)*(ti - tAverage) 的和 + BigDecimal Stt = BigDecimal.ZERO; + for (BizBusinessDeviceMeasureDataCesiumAtom data : measureDataList) { + BigDecimal Stti = (new BigDecimal(data.getSerialNumber()).subtract(tAverage)).multiply(new BigDecimal(data.getSerialNumber()).subtract(tAverage)); + Stt = Stt.add(Stti); + } + //b = Sty/Stt + BigDecimal b = BigDecimal.ZERO; + if (BigDecimal.ZERO.compareTo(Stt) != 0) { + b = Sty.divide(Stt, 4, RoundingMode.HALF_UP); + } + //a = yi - b*tAverage + BigDecimal a = new BigDecimal(measureData.getDailyAgingRateTwo()).subtract(b.multiply(tAverage)).setScale(4, RoundingMode.HALF_UP); + measureData.setDailyAgingRateOrdinate(String.valueOf(a)); + } + } + /******************************************************信号发生器检定装置**********************************************************/ public static List signalGeneratorCalculate(MeasureInfoCalculateHandleRequest request) { List measureDataList = request.getMeasureDataSignalGeneratorList(); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java index 5ae8728..a203bd8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java @@ -1,7 +1,6 @@ package com.casic.missiles.controller.resource; import com.casic.missiles.controller.GeneralApprovalController; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ExportDTO; import com.casic.missiles.dto.ReturnDTO; @@ -49,7 +48,7 @@ @ApiOperation("导出word/pdf/打印") @PostMapping("/exportFile") - public void exportFile(@RequestBody @Valid ExportDTO exportDTO, HttpServletResponse response){ + public void exportFile(@RequestBody @Valid ExportDTO exportDTO, HttpServletResponse response) throws Exception { authorizeOrderService.exportFile(exportDTO,response); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java index fc22343..d943c71 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java @@ -845,62 +845,71 @@ List checkDataLowPowerList = request.getCheckDataLowPowerList(); int temConclusionJudge = 0; for (BizEquipmentStandardCheckDataLowPower checkData : checkDataLowPowerList) { - //校准因子 Ku=Kc*Pbu/Pcu - BigDecimal kc = new BigDecimal(checkData.getKc()); - BigDecimal pbuOne = new BigDecimal(checkData.getPbuValueOne()); - checkData.setPbuValueOne(String.valueOf(pbuOne)); - BigDecimal pbuTwo = new BigDecimal(checkData.getPbuValueTwo()); - checkData.setPbuValueTwo(String.valueOf(pbuTwo)); - BigDecimal pbuThree = new BigDecimal(checkData.getPbuValueThree()); - checkData.setPbuValueThree(String.valueOf(pbuThree)); - BigDecimal pbuFour = new BigDecimal(checkData.getPbuValueFour()); - checkData.setPbuValueFour(String.valueOf(pbuFour)); - BigDecimal pbuFive = new BigDecimal(checkData.getPbuValueFive()); - checkData.setPbuValueFive(String.valueOf(pbuFive)); - BigDecimal pbuSix = new BigDecimal(checkData.getPbuValueSix()); - checkData.setPbuValueSix(String.valueOf(pbuSix)); - BigDecimal pbuSeven = new BigDecimal(checkData.getPbuValueSeven()); - checkData.setPbuValueSeven(String.valueOf(pbuSeven)); - BigDecimal pbuEight = new BigDecimal(checkData.getPbuValueEight()); - checkData.setPbuValueEight(String.valueOf(pbuEight)); - BigDecimal pbuNine = new BigDecimal(checkData.getPbuValueNine()); - checkData.setPbuValueNine(String.valueOf(pbuNine)); - BigDecimal pbuTen = new BigDecimal(checkData.getPbuValueTen()); - checkData.setPbuValueTen(String.valueOf(pbuTen)); - - BigDecimal pbcOne = new BigDecimal(checkData.getPcuValueOne()); - BigDecimal pbcTwo = new BigDecimal(checkData.getPcuValueTwo()); - BigDecimal pbcThree = new BigDecimal(checkData.getPcuValueThree()); - BigDecimal pbcFour = new BigDecimal(checkData.getPcuValueFour()); - BigDecimal pbcFive = new BigDecimal(checkData.getPcuValueFive()); - BigDecimal pbcSix = new BigDecimal(checkData.getPcuValueSix()); - BigDecimal pbcSeven = new BigDecimal(checkData.getPcuValueSeven()); - BigDecimal pbcEight = new BigDecimal(checkData.getPcuValueEight()); - BigDecimal pbcNine = new BigDecimal(checkData.getPcuValueNine()); - BigDecimal pbcTen = new BigDecimal(checkData.getPcuValueTen()); - - BigDecimal kuOne = kc.multiply(pbuOne).divide(pbcOne, 4, RoundingMode.HALF_UP); - BigDecimal kuTwo = kc.multiply(pbuTwo).divide(pbcTwo, 4, RoundingMode.HALF_UP); - BigDecimal kuThree = kc.multiply(pbuThree).divide(pbcThree, 4, RoundingMode.HALF_UP); - BigDecimal kuFour = kc.multiply(pbuFour).divide(pbcFour, 4, RoundingMode.HALF_UP); - BigDecimal kuFive = kc.multiply(pbuFive).divide(pbcFive, 4, RoundingMode.HALF_UP); - BigDecimal kuSix = kc.multiply(pbuSix).divide(pbcSix, 4, RoundingMode.HALF_UP); - BigDecimal kuSeven = kc.multiply(pbuSeven).divide(pbcSeven, 4, RoundingMode.HALF_UP); - BigDecimal kuEight = kc.multiply(pbuEight).divide(pbcEight, 4, RoundingMode.HALF_UP); - BigDecimal kuNine = kc.multiply(pbuNine).divide(pbcNine, 4, RoundingMode.HALF_UP); - BigDecimal kuTen = kc.multiply(pbuTen).divide(pbcTen, 4, RoundingMode.HALF_UP); - checkData.setKuValueOne(String.valueOf(kuOne)); - checkData.setKuValueTwo(String.valueOf(kuTwo)); - checkData.setKuValueThree(String.valueOf(kuThree)); - checkData.setKuValueFour(String.valueOf(kuFour)); - checkData.setKuValueFive(String.valueOf(kuFive)); - checkData.setKuValueSix(String.valueOf(kuSix)); - checkData.setKuValueSeven(String.valueOf(kuSeven)); - checkData.setKuValueEight(String.valueOf(kuEight)); - checkData.setKuValueNine(String.valueOf(kuNine)); - checkData.setKuValueTen(String.valueOf(kuTen)); - if ("重复性".equals(checkData.getCheckType())) { + BigDecimal kc = new BigDecimal(checkData.getKc()); + BigDecimal pbuOne = new BigDecimal(checkData.getPbuValueOne()); + checkData.setPbuValueOne(String.valueOf(pbuOne.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuTwo = new BigDecimal(checkData.getPbuValueTwo()); + checkData.setPbuValueTwo(String.valueOf(pbuTwo.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuThree = new BigDecimal(checkData.getPbuValueThree()); + checkData.setPbuValueThree(String.valueOf(pbuThree.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuFour = new BigDecimal(checkData.getPbuValueFour()); + checkData.setPbuValueFour(String.valueOf(pbuFour.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuFive = new BigDecimal(checkData.getPbuValueFive()); + checkData.setPbuValueFive(String.valueOf(pbuFive.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuSix = new BigDecimal(checkData.getPbuValueSix()); + checkData.setPbuValueSix(String.valueOf(pbuSix.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuSeven = new BigDecimal(checkData.getPbuValueSeven()); + checkData.setPbuValueSeven(String.valueOf(pbuSeven.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuEight = new BigDecimal(checkData.getPbuValueEight()); + checkData.setPbuValueEight(String.valueOf(pbuEight.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuNine = new BigDecimal(checkData.getPbuValueNine()); + checkData.setPbuValueNine(String.valueOf(pbuNine.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuTen = new BigDecimal(checkData.getPbuValueTen()); + checkData.setPbuValueTen(String.valueOf(pbuTen.setScale(3, RoundingMode.HALF_UP))); + + BigDecimal pcuOne = new BigDecimal(checkData.getPcuValueOne()); + BigDecimal pcuTwo = new BigDecimal(checkData.getPcuValueTwo()); + BigDecimal pcuThree = new BigDecimal(checkData.getPcuValueThree()); + BigDecimal pcuFour = new BigDecimal(checkData.getPcuValueFour()); + BigDecimal pcuFive = new BigDecimal(checkData.getPcuValueFive()); + BigDecimal pcuSix = new BigDecimal(checkData.getPcuValueSix()); + BigDecimal pcuSeven = new BigDecimal(checkData.getPcuValueSeven()); + BigDecimal pcuEight = new BigDecimal(checkData.getPcuValueEight()); + BigDecimal pcuNine = new BigDecimal(checkData.getPcuValueNine()); + BigDecimal pcuTen = new BigDecimal(checkData.getPcuValueTen()); + checkData.setPcuValueOne(String.valueOf(pcuOne.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueTwo(String.valueOf(pcuTwo.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueThree(String.valueOf(pcuThree.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueFour(String.valueOf(pcuFour.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueFive(String.valueOf(pcuFive.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueSix(String.valueOf(pcuSix.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueSeven(String.valueOf(pcuSeven.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueEight(String.valueOf(pcuEight.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueNine(String.valueOf(pcuNine.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueTen(String.valueOf(pcuTen.setScale(4, RoundingMode.HALF_UP))); + + //校准因子 Ku=Kc*Pbu/Pcu + BigDecimal kuOne = kc.multiply(pbuOne).divide(pcuOne, 4, RoundingMode.HALF_UP); + BigDecimal kuTwo = kc.multiply(pbuTwo).divide(pcuTwo, 4, RoundingMode.HALF_UP); + BigDecimal kuThree = kc.multiply(pbuThree).divide(pcuThree, 4, RoundingMode.HALF_UP); + BigDecimal kuFour = kc.multiply(pbuFour).divide(pcuFour, 4, RoundingMode.HALF_UP); + BigDecimal kuFive = kc.multiply(pbuFive).divide(pcuFive, 4, RoundingMode.HALF_UP); + BigDecimal kuSix = kc.multiply(pbuSix).divide(pcuSix, 4, RoundingMode.HALF_UP); + BigDecimal kuSeven = kc.multiply(pbuSeven).divide(pcuSeven, 4, RoundingMode.HALF_UP); + BigDecimal kuEight = kc.multiply(pbuEight).divide(pcuEight, 4, RoundingMode.HALF_UP); + BigDecimal kuNine = kc.multiply(pbuNine).divide(pcuNine, 4, RoundingMode.HALF_UP); + BigDecimal kuTen = kc.multiply(pbuTen).divide(pcuTen, 4, RoundingMode.HALF_UP); + checkData.setKuValueOne(String.valueOf(kuOne)); + checkData.setKuValueTwo(String.valueOf(kuTwo)); + checkData.setKuValueThree(String.valueOf(kuThree)); + checkData.setKuValueFour(String.valueOf(kuFour)); + checkData.setKuValueFive(String.valueOf(kuFive)); + checkData.setKuValueSix(String.valueOf(kuSix)); + checkData.setKuValueSeven(String.valueOf(kuSeven)); + checkData.setKuValueEight(String.valueOf(kuEight)); + checkData.setKuValueNine(String.valueOf(kuNine)); + checkData.setKuValueTen(String.valueOf(kuTen)); //平均值 BigDecimal average = averageForTen(checkData.getKuValueOne(), checkData.getKuValueTwo(), checkData.getKuValueThree(), checkData.getKuValueFour(), checkData.getKuValueFive(), checkData.getKuValueSix(), checkData.getKuValueSeven(), checkData.getKuValueEight(), checkData.getKuValueNine(), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java index 5607b2a..fbcd08b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java @@ -2005,9 +2005,8 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyReproducibility(), technicalIndex); } else if ("5".equals(measureData.getDataType())) { //晶振日老化率 - //日老化率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); + //结论,日老化率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2081,9 +2080,7 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyReproducibility(), technicalIndex); } else if ("5".equals(measureData.getDataType())) { //晶振日老化率 - //日老化率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); //结论,日老化率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2196,9 +2193,7 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyStability(), technicalIndex); } else if ("6".equals(measureData.getDataType())) { //日频率漂移率 - //日漂移率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日漂移率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); //结论,日漂移率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2289,9 +2284,7 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyReproducibility(), technicalIndex); } else if ("6".equals(measureData.getDataType())) { //日老化率 - //日老化率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); //结论,日老化率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2319,6 +2312,48 @@ return measureDataList; } + private static void dailyAgingRateOrdinateHandle(BizBusinessDeviceMeasureDataCesiumAtom measureData, List measureDataList) { + //日老化率K//日漂移率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 + //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 + BigDecimal correlationCoefficientOne = new BigDecimal(measureData.getCorrelationCoefficientOne()); + if (correlationCoefficientOne.compareTo(BigDecimal.valueOf(0.6)) < 0) { + measureData.setDailyAgingRateTwo("/"); + measureData.setCorrelationCoefficientTwo("/"); + } else { + measureData.setDailyAgingRateTwo(measureData.getDailyAgingRateOne()); + measureData.setCorrelationCoefficientTwo(measureData.getCorrelationCoefficientOne()); + //日老化率拟合直线/日漂移率拟合直线 + //dailyAgingRateOrdinate:日老化率拟合直线纵坐标: y = a + bt,serialNumber:横坐标 + //t平均值 = ti和/n + int size = measureDataList.size(); + int tSum = measureDataList.stream().mapToInt(BizBusinessDeviceMeasureDataCesiumAtom::getSerialNumber).sum(); + BigDecimal tAverage = new BigDecimal(tSum).divide(new BigDecimal(size), 4, RoundingMode.HALF_UP); + //y平均值 = yi和/n + Double ySum = measureDataList.stream().map(BizBusinessDeviceMeasureDataCesiumAtom::getDailyAgingRateTwo).mapToDouble(i -> Double.parseDouble(i)).sum(); + BigDecimal yAverage = new BigDecimal(ySum).divide(new BigDecimal(size), 4, RoundingMode.HALF_UP); + //Sty = (ti - tAverage)*(yi - yAverage) 的和 + BigDecimal Sty = BigDecimal.ZERO; + for (BizBusinessDeviceMeasureDataCesiumAtom data : measureDataList) { + BigDecimal Styi = (new BigDecimal(data.getSerialNumber()).subtract(tAverage)).multiply(new BigDecimal(data.getDailyAgingRateTwo()).subtract(yAverage)); + Sty = Sty.add(Styi); + } + //Stt = (ti - tAverage)*(ti - tAverage) 的和 + BigDecimal Stt = BigDecimal.ZERO; + for (BizBusinessDeviceMeasureDataCesiumAtom data : measureDataList) { + BigDecimal Stti = (new BigDecimal(data.getSerialNumber()).subtract(tAverage)).multiply(new BigDecimal(data.getSerialNumber()).subtract(tAverage)); + Stt = Stt.add(Stti); + } + //b = Sty/Stt + BigDecimal b = BigDecimal.ZERO; + if (BigDecimal.ZERO.compareTo(Stt) != 0) { + b = Sty.divide(Stt, 4, RoundingMode.HALF_UP); + } + //a = yi - b*tAverage + BigDecimal a = new BigDecimal(measureData.getDailyAgingRateTwo()).subtract(b.multiply(tAverage)).setScale(4, RoundingMode.HALF_UP); + measureData.setDailyAgingRateOrdinate(String.valueOf(a)); + } + } + /******************************************************信号发生器检定装置**********************************************************/ public static List signalGeneratorCalculate(MeasureInfoCalculateHandleRequest request) { List measureDataList = request.getMeasureDataSignalGeneratorList(); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessDeviceMeasureDataCesiumAtomMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessDeviceMeasureDataCesiumAtomMapper.xml index 728d66c..aa935d6 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessDeviceMeasureDataCesiumAtomMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessDeviceMeasureDataCesiumAtomMapper.xml @@ -44,6 +44,7 @@ + @@ -79,7 +80,7 @@ technical_index_unit, other_technical_index_symbol, other_technical_index, other_technical_index_unit, amplitude_technical_index_lower, amplitude_technical_index_upper, amplitude_technical_index_unit, pulse_width_technical_index_lower, pulse_width_technical_index_upper, pulse_width_technical_index_unit, conclusion, t_one, t_one_unit, t_two, t_two_unit, t_three, t_three_unit, signal_type, tested_signal_frequency, - tested_signal_frequency_unit, sample_time, sample_time_unit, sample_group_number, daily_aging_rate_one, daily_aging_rate_two, + tested_signal_frequency_unit, sample_time, sample_time_unit, sample_group_number, daily_aging_rate_one, daily_aging_rate_two, daily_aging_rate_ordinate, correlation_coefficient_one, correlation_coefficient_two, thoroughfare, nominal_value, nominal_value_unit, input_sensitivity, input_sensitivity_unit, max_input_level, max_input_level_unit, effective_resolution, effective_resolution_unit, test_value_one, test_value_two, test_value_three, test_value_error, amplitude, pulse_width, rise_time, on_time, on_time_unit, urel, exceed_mark, diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java index 5ae8728..a203bd8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/resource/ResourceStaffAuthorizeOrderController.java @@ -1,7 +1,6 @@ package com.casic.missiles.controller.resource; import com.casic.missiles.controller.GeneralApprovalController; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ExportDTO; import com.casic.missiles.dto.ReturnDTO; @@ -49,7 +48,7 @@ @ApiOperation("导出word/pdf/打印") @PostMapping("/exportFile") - public void exportFile(@RequestBody @Valid ExportDTO exportDTO, HttpServletResponse response){ + public void exportFile(@RequestBody @Valid ExportDTO exportDTO, HttpServletResponse response) throws Exception { authorizeOrderService.exportFile(exportDTO,response); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java index fc22343..d943c71 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/CheckInfoFormulaCalculateUtil.java @@ -845,62 +845,71 @@ List checkDataLowPowerList = request.getCheckDataLowPowerList(); int temConclusionJudge = 0; for (BizEquipmentStandardCheckDataLowPower checkData : checkDataLowPowerList) { - //校准因子 Ku=Kc*Pbu/Pcu - BigDecimal kc = new BigDecimal(checkData.getKc()); - BigDecimal pbuOne = new BigDecimal(checkData.getPbuValueOne()); - checkData.setPbuValueOne(String.valueOf(pbuOne)); - BigDecimal pbuTwo = new BigDecimal(checkData.getPbuValueTwo()); - checkData.setPbuValueTwo(String.valueOf(pbuTwo)); - BigDecimal pbuThree = new BigDecimal(checkData.getPbuValueThree()); - checkData.setPbuValueThree(String.valueOf(pbuThree)); - BigDecimal pbuFour = new BigDecimal(checkData.getPbuValueFour()); - checkData.setPbuValueFour(String.valueOf(pbuFour)); - BigDecimal pbuFive = new BigDecimal(checkData.getPbuValueFive()); - checkData.setPbuValueFive(String.valueOf(pbuFive)); - BigDecimal pbuSix = new BigDecimal(checkData.getPbuValueSix()); - checkData.setPbuValueSix(String.valueOf(pbuSix)); - BigDecimal pbuSeven = new BigDecimal(checkData.getPbuValueSeven()); - checkData.setPbuValueSeven(String.valueOf(pbuSeven)); - BigDecimal pbuEight = new BigDecimal(checkData.getPbuValueEight()); - checkData.setPbuValueEight(String.valueOf(pbuEight)); - BigDecimal pbuNine = new BigDecimal(checkData.getPbuValueNine()); - checkData.setPbuValueNine(String.valueOf(pbuNine)); - BigDecimal pbuTen = new BigDecimal(checkData.getPbuValueTen()); - checkData.setPbuValueTen(String.valueOf(pbuTen)); - - BigDecimal pbcOne = new BigDecimal(checkData.getPcuValueOne()); - BigDecimal pbcTwo = new BigDecimal(checkData.getPcuValueTwo()); - BigDecimal pbcThree = new BigDecimal(checkData.getPcuValueThree()); - BigDecimal pbcFour = new BigDecimal(checkData.getPcuValueFour()); - BigDecimal pbcFive = new BigDecimal(checkData.getPcuValueFive()); - BigDecimal pbcSix = new BigDecimal(checkData.getPcuValueSix()); - BigDecimal pbcSeven = new BigDecimal(checkData.getPcuValueSeven()); - BigDecimal pbcEight = new BigDecimal(checkData.getPcuValueEight()); - BigDecimal pbcNine = new BigDecimal(checkData.getPcuValueNine()); - BigDecimal pbcTen = new BigDecimal(checkData.getPcuValueTen()); - - BigDecimal kuOne = kc.multiply(pbuOne).divide(pbcOne, 4, RoundingMode.HALF_UP); - BigDecimal kuTwo = kc.multiply(pbuTwo).divide(pbcTwo, 4, RoundingMode.HALF_UP); - BigDecimal kuThree = kc.multiply(pbuThree).divide(pbcThree, 4, RoundingMode.HALF_UP); - BigDecimal kuFour = kc.multiply(pbuFour).divide(pbcFour, 4, RoundingMode.HALF_UP); - BigDecimal kuFive = kc.multiply(pbuFive).divide(pbcFive, 4, RoundingMode.HALF_UP); - BigDecimal kuSix = kc.multiply(pbuSix).divide(pbcSix, 4, RoundingMode.HALF_UP); - BigDecimal kuSeven = kc.multiply(pbuSeven).divide(pbcSeven, 4, RoundingMode.HALF_UP); - BigDecimal kuEight = kc.multiply(pbuEight).divide(pbcEight, 4, RoundingMode.HALF_UP); - BigDecimal kuNine = kc.multiply(pbuNine).divide(pbcNine, 4, RoundingMode.HALF_UP); - BigDecimal kuTen = kc.multiply(pbuTen).divide(pbcTen, 4, RoundingMode.HALF_UP); - checkData.setKuValueOne(String.valueOf(kuOne)); - checkData.setKuValueTwo(String.valueOf(kuTwo)); - checkData.setKuValueThree(String.valueOf(kuThree)); - checkData.setKuValueFour(String.valueOf(kuFour)); - checkData.setKuValueFive(String.valueOf(kuFive)); - checkData.setKuValueSix(String.valueOf(kuSix)); - checkData.setKuValueSeven(String.valueOf(kuSeven)); - checkData.setKuValueEight(String.valueOf(kuEight)); - checkData.setKuValueNine(String.valueOf(kuNine)); - checkData.setKuValueTen(String.valueOf(kuTen)); - if ("重复性".equals(checkData.getCheckType())) { + BigDecimal kc = new BigDecimal(checkData.getKc()); + BigDecimal pbuOne = new BigDecimal(checkData.getPbuValueOne()); + checkData.setPbuValueOne(String.valueOf(pbuOne.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuTwo = new BigDecimal(checkData.getPbuValueTwo()); + checkData.setPbuValueTwo(String.valueOf(pbuTwo.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuThree = new BigDecimal(checkData.getPbuValueThree()); + checkData.setPbuValueThree(String.valueOf(pbuThree.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuFour = new BigDecimal(checkData.getPbuValueFour()); + checkData.setPbuValueFour(String.valueOf(pbuFour.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuFive = new BigDecimal(checkData.getPbuValueFive()); + checkData.setPbuValueFive(String.valueOf(pbuFive.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuSix = new BigDecimal(checkData.getPbuValueSix()); + checkData.setPbuValueSix(String.valueOf(pbuSix.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuSeven = new BigDecimal(checkData.getPbuValueSeven()); + checkData.setPbuValueSeven(String.valueOf(pbuSeven.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuEight = new BigDecimal(checkData.getPbuValueEight()); + checkData.setPbuValueEight(String.valueOf(pbuEight.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuNine = new BigDecimal(checkData.getPbuValueNine()); + checkData.setPbuValueNine(String.valueOf(pbuNine.setScale(3, RoundingMode.HALF_UP))); + BigDecimal pbuTen = new BigDecimal(checkData.getPbuValueTen()); + checkData.setPbuValueTen(String.valueOf(pbuTen.setScale(3, RoundingMode.HALF_UP))); + + BigDecimal pcuOne = new BigDecimal(checkData.getPcuValueOne()); + BigDecimal pcuTwo = new BigDecimal(checkData.getPcuValueTwo()); + BigDecimal pcuThree = new BigDecimal(checkData.getPcuValueThree()); + BigDecimal pcuFour = new BigDecimal(checkData.getPcuValueFour()); + BigDecimal pcuFive = new BigDecimal(checkData.getPcuValueFive()); + BigDecimal pcuSix = new BigDecimal(checkData.getPcuValueSix()); + BigDecimal pcuSeven = new BigDecimal(checkData.getPcuValueSeven()); + BigDecimal pcuEight = new BigDecimal(checkData.getPcuValueEight()); + BigDecimal pcuNine = new BigDecimal(checkData.getPcuValueNine()); + BigDecimal pcuTen = new BigDecimal(checkData.getPcuValueTen()); + checkData.setPcuValueOne(String.valueOf(pcuOne.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueTwo(String.valueOf(pcuTwo.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueThree(String.valueOf(pcuThree.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueFour(String.valueOf(pcuFour.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueFive(String.valueOf(pcuFive.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueSix(String.valueOf(pcuSix.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueSeven(String.valueOf(pcuSeven.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueEight(String.valueOf(pcuEight.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueNine(String.valueOf(pcuNine.setScale(4, RoundingMode.HALF_UP))); + checkData.setPcuValueTen(String.valueOf(pcuTen.setScale(4, RoundingMode.HALF_UP))); + + //校准因子 Ku=Kc*Pbu/Pcu + BigDecimal kuOne = kc.multiply(pbuOne).divide(pcuOne, 4, RoundingMode.HALF_UP); + BigDecimal kuTwo = kc.multiply(pbuTwo).divide(pcuTwo, 4, RoundingMode.HALF_UP); + BigDecimal kuThree = kc.multiply(pbuThree).divide(pcuThree, 4, RoundingMode.HALF_UP); + BigDecimal kuFour = kc.multiply(pbuFour).divide(pcuFour, 4, RoundingMode.HALF_UP); + BigDecimal kuFive = kc.multiply(pbuFive).divide(pcuFive, 4, RoundingMode.HALF_UP); + BigDecimal kuSix = kc.multiply(pbuSix).divide(pcuSix, 4, RoundingMode.HALF_UP); + BigDecimal kuSeven = kc.multiply(pbuSeven).divide(pcuSeven, 4, RoundingMode.HALF_UP); + BigDecimal kuEight = kc.multiply(pbuEight).divide(pcuEight, 4, RoundingMode.HALF_UP); + BigDecimal kuNine = kc.multiply(pbuNine).divide(pcuNine, 4, RoundingMode.HALF_UP); + BigDecimal kuTen = kc.multiply(pbuTen).divide(pcuTen, 4, RoundingMode.HALF_UP); + checkData.setKuValueOne(String.valueOf(kuOne)); + checkData.setKuValueTwo(String.valueOf(kuTwo)); + checkData.setKuValueThree(String.valueOf(kuThree)); + checkData.setKuValueFour(String.valueOf(kuFour)); + checkData.setKuValueFive(String.valueOf(kuFive)); + checkData.setKuValueSix(String.valueOf(kuSix)); + checkData.setKuValueSeven(String.valueOf(kuSeven)); + checkData.setKuValueEight(String.valueOf(kuEight)); + checkData.setKuValueNine(String.valueOf(kuNine)); + checkData.setKuValueTen(String.valueOf(kuTen)); //平均值 BigDecimal average = averageForTen(checkData.getKuValueOne(), checkData.getKuValueTwo(), checkData.getKuValueThree(), checkData.getKuValueFour(), checkData.getKuValueFive(), checkData.getKuValueSix(), checkData.getKuValueSeven(), checkData.getKuValueEight(), checkData.getKuValueNine(), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java index 5607b2a..fbcd08b 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MeasureInfoFormulaCalculateUtil.java @@ -2005,9 +2005,8 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyReproducibility(), technicalIndex); } else if ("5".equals(measureData.getDataType())) { //晶振日老化率 - //日老化率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); + //结论,日老化率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2081,9 +2080,7 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyReproducibility(), technicalIndex); } else if ("5".equals(measureData.getDataType())) { //晶振日老化率 - //日老化率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); //结论,日老化率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2196,9 +2193,7 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyStability(), technicalIndex); } else if ("6".equals(measureData.getDataType())) { //日频率漂移率 - //日漂移率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日漂移率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); //结论,日漂移率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2289,9 +2284,7 @@ exceedMark = judgeSymbol(symbol, measureData.getFrequencyReproducibility(), technicalIndex); } else if ("6".equals(measureData.getDataType())) { //日老化率 - //日老化率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 - //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 - dailyAgingRateHandle(measureData); + dailyAgingRateOrdinateHandle(measureData, measureDataList); //结论,日老化率K(计算值)是否在技术指标范围内,如”是“则符合指标,如"否"则不符合指标 String symbol = measureData.getTechnicalIndexSymbol(); BigDecimal technicalIndex = new BigDecimal(measureData.getTechnicalIndex()); @@ -2319,6 +2312,48 @@ return measureDataList; } + private static void dailyAgingRateOrdinateHandle(BizBusinessDeviceMeasureDataCesiumAtom measureData, List measureDataList) { + //日老化率K//日漂移率K(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与日老化率K(计算值)相同 + //相关系数r(给出值) = ①如果相关系数r小于0.6,此项补充【/】 ①如果相关系数r大于等于0.6,此项数据与相关系数r(给出值)相同 + BigDecimal correlationCoefficientOne = new BigDecimal(measureData.getCorrelationCoefficientOne()); + if (correlationCoefficientOne.compareTo(BigDecimal.valueOf(0.6)) < 0) { + measureData.setDailyAgingRateTwo("/"); + measureData.setCorrelationCoefficientTwo("/"); + } else { + measureData.setDailyAgingRateTwo(measureData.getDailyAgingRateOne()); + measureData.setCorrelationCoefficientTwo(measureData.getCorrelationCoefficientOne()); + //日老化率拟合直线/日漂移率拟合直线 + //dailyAgingRateOrdinate:日老化率拟合直线纵坐标: y = a + bt,serialNumber:横坐标 + //t平均值 = ti和/n + int size = measureDataList.size(); + int tSum = measureDataList.stream().mapToInt(BizBusinessDeviceMeasureDataCesiumAtom::getSerialNumber).sum(); + BigDecimal tAverage = new BigDecimal(tSum).divide(new BigDecimal(size), 4, RoundingMode.HALF_UP); + //y平均值 = yi和/n + Double ySum = measureDataList.stream().map(BizBusinessDeviceMeasureDataCesiumAtom::getDailyAgingRateTwo).mapToDouble(i -> Double.parseDouble(i)).sum(); + BigDecimal yAverage = new BigDecimal(ySum).divide(new BigDecimal(size), 4, RoundingMode.HALF_UP); + //Sty = (ti - tAverage)*(yi - yAverage) 的和 + BigDecimal Sty = BigDecimal.ZERO; + for (BizBusinessDeviceMeasureDataCesiumAtom data : measureDataList) { + BigDecimal Styi = (new BigDecimal(data.getSerialNumber()).subtract(tAverage)).multiply(new BigDecimal(data.getDailyAgingRateTwo()).subtract(yAverage)); + Sty = Sty.add(Styi); + } + //Stt = (ti - tAverage)*(ti - tAverage) 的和 + BigDecimal Stt = BigDecimal.ZERO; + for (BizBusinessDeviceMeasureDataCesiumAtom data : measureDataList) { + BigDecimal Stti = (new BigDecimal(data.getSerialNumber()).subtract(tAverage)).multiply(new BigDecimal(data.getSerialNumber()).subtract(tAverage)); + Stt = Stt.add(Stti); + } + //b = Sty/Stt + BigDecimal b = BigDecimal.ZERO; + if (BigDecimal.ZERO.compareTo(Stt) != 0) { + b = Sty.divide(Stt, 4, RoundingMode.HALF_UP); + } + //a = yi - b*tAverage + BigDecimal a = new BigDecimal(measureData.getDailyAgingRateTwo()).subtract(b.multiply(tAverage)).setScale(4, RoundingMode.HALF_UP); + measureData.setDailyAgingRateOrdinate(String.valueOf(a)); + } + } + /******************************************************信号发生器检定装置**********************************************************/ public static List signalGeneratorCalculate(MeasureInfoCalculateHandleRequest request) { List measureDataList = request.getMeasureDataSignalGeneratorList(); diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessDeviceMeasureDataCesiumAtomMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessDeviceMeasureDataCesiumAtomMapper.xml index 728d66c..aa935d6 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessDeviceMeasureDataCesiumAtomMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessDeviceMeasureDataCesiumAtomMapper.xml @@ -44,6 +44,7 @@ + @@ -79,7 +80,7 @@ technical_index_unit, other_technical_index_symbol, other_technical_index, other_technical_index_unit, amplitude_technical_index_lower, amplitude_technical_index_upper, amplitude_technical_index_unit, pulse_width_technical_index_lower, pulse_width_technical_index_upper, pulse_width_technical_index_unit, conclusion, t_one, t_one_unit, t_two, t_two_unit, t_three, t_three_unit, signal_type, tested_signal_frequency, - tested_signal_frequency_unit, sample_time, sample_time_unit, sample_group_number, daily_aging_rate_one, daily_aging_rate_two, + tested_signal_frequency_unit, sample_time, sample_time_unit, sample_group_number, daily_aging_rate_one, daily_aging_rate_two, daily_aging_rate_ordinate, correlation_coefficient_one, correlation_coefficient_two, thoroughfare, nominal_value, nominal_value_unit, input_sensitivity, input_sensitivity_unit, max_input_level, max_input_level_unit, effective_resolution, effective_resolution_unit, test_value_one, test_value_two, test_value_three, test_value_error, amplitude, pulse_width, rise_time, on_time, on_time_unit, urel, exceed_mark, diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java index e319e7a..861e9ab 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessDeviceMeasureDataCesiumAtom.java @@ -303,6 +303,10 @@ @TableField("daily_aging_rate_two") private String dailyAgingRateTwo; + @ApiModelProperty(value = "日老化率拟合直线纵坐标", dataType = "String") + @TableField("daily_aging_rate_ordinate") + private String dailyAgingRateOrdinate; + /** * 相关系数r(计算值) */