From 5958b1f1385d3d3d180faa80da26f9dbc181b820 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 15 Oct 2020 09:36:49 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=BD=92=E4=B8=80=E6=95=B0=E5=80=BC?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=BA=2060=20-=20100?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/support/normalizing/ScoreConstants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreConstants.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreConstants.java index 1eecc8cf36..28a24f7a14 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreConstants.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreConstants.java @@ -7,7 +7,7 @@ import java.math.BigDecimal; */ public class ScoreConstants { - public static final BigDecimal MIN_SCORE = new BigDecimal(0); + public static final BigDecimal MIN_SCORE = new BigDecimal(60); public static final BigDecimal MAX_SCORE = new BigDecimal(100); } From 2994e3c05fb9b7fb49f9e21d6388813fca096592 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Thu, 15 Oct 2020 10:38:45 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=90=8C=E7=BA=A7=E5=AF=B9=E6=AF=94?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=95=B0=E6=8D=AE=E6=8C=89=E6=9C=88=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/dto/form/PeerComparisonFormDTO.java | 5 +++++ .../service/fact/impl/FactIndexServiceImpl.java | 2 +- .../mapper/screen/ScreenIndexDataMonthlyDao.xml | 13 +------------ 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/PeerComparisonFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/PeerComparisonFormDTO.java index aff83eca85..400e4415c0 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/PeerComparisonFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/PeerComparisonFormDTO.java @@ -19,6 +19,11 @@ public class PeerComparisonFormDTO implements Serializable { */ @NotBlank(message = "客户ID不能为空",groups = {PeerComparisonFormDTO.AddUserInternalGroup.class}) private String customerId; + /** + * 月份Id(格式:202009) + */ + @NotBlank(message = "月份ID不能为空",groups = {MonthAblityListFormDTO.AddUserInternalGroup.class}) + private String monthId; /** * 组织或网格Id */ diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java index d4543b4aa7..678890b7da 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java @@ -456,7 +456,7 @@ public class FactIndexServiceImpl implements FactIndexService { @Override @DataSource(value = DataSourceConstant.EVALUATION_INDEX, datasourceNameFromArg = true) public List peerComparison(PeerComparisonFormDTO formDTO) { - //1.根据组织或网格Id的上级组织Id查询同级组织或网格对应类型的得分排名(查询最近一个月数据) + //1.根据组织或网格Id的上级组织Id查询同级组织或网格对应类型的得分排名(按月查询) List resultList = screenIndexDataMonthlyDao.selectScoreList(formDTO); return resultList; } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml index 3b655a6481..401d3d1a68 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml @@ -148,18 +148,7 @@ created_time desc limit 1 ) - AND MONTH_ID = ( - select - month_id - from - screen_index_data_monthly - where - del_flag = '0' - and customer_id = #{customerId} - order by - month_id desc - limit 1 - ) + AND month_id = #{monthId} ORDER BY (party_dev_ablity * party_dev_weight) DESC From e97e12adf8dc2b44940f94f7d2df0f21af4fc29c Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 15 Oct 2020 13:42:23 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=8F=8D=E6=AD=A3=E5=88=87=E5=87=BD?= =?UTF-8?q?=E6=95=B0=20=E5=8C=BA=E9=97=B4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/GridCorreLationServiceImpl.java | 2 +- .../batch/BatchScoreCalculator.java | 14 ++++++++--- .../stats/test/normalizing/MathUtilTest.java | 23 +++++++++++++++---- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/GridCorreLationServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/GridCorreLationServiceImpl.java index f0c4d272d3..ace8729186 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/GridCorreLationServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/GridCorreLationServiceImpl.java @@ -500,7 +500,7 @@ public class GridCorreLationServiceImpl implements GridCorreLationService { log.info("计算的结果(List)"+JSON.toJSONString(listTemp));*/ HashMap resultMap = batchScoreCalculator.getScoreTotalOfSampleId(indexInputVOS); - log.info("计算的结果{}", resultMap); + log.info("计算的结果{}", JSON.toJSONString(resultMap)); return resultMap; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java index a44f86d436..75e78ea215 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java @@ -65,9 +65,17 @@ public class BatchScoreCalculator { normalizeValue = scoreCalculator.normalize(getFinalSampleValue(vo.getSampleValue(), threshold)); } //反正切函数 [-pi/2,pi/2] - if (idx.getScoreCalculator().getMaxValue().compareTo(idx.getScoreCalculator().getMinValue()) == 0) { - normalizeValue = new BigDecimal(Math.atan(new Double(vo.getSampleValue().toString())) / Math.PI * 100).setScale(6, RoundingMode.HALF_UP); + BigDecimal maxValue = idx.getScoreCalculator().getMaxValue(); + BigDecimal minValue = idx.getScoreCalculator().getMinValue(); + if (maxValue.compareTo(minValue) == 0) { + //*((max-min)/ (Math.PI/2))+min + //Math.atan(new Double(vo.getSampleValue().toString()))* + normalizeValue = new BigDecimal(Math.atan(new Double(vo.getSampleValue().toString()))) + .multiply( + (maxValue.subtract(minValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.UNNECESSARY))).add(minValue).setScale(6, RoundingMode.HALF_UP); + } + BigDecimal score = normalizeValue.multiply(weight).setScale(6, RoundingMode.HALF_UP); CalculateResult result = scoreCountOfSamples.get(sampleId); @@ -81,7 +89,7 @@ public class BatchScoreCalculator { } IndexScoreVo sampleScore = new IndexScoreVo(idx.getIndexId(), idx.getAllParentIndexCode(), String.valueOf(vo.getSampleValue()), normalizeValue, idx.getWeight()); result.getDetails().add(sampleScore); - result.setTotalScore(result.getTotalScore().add(score).setScale(6, RoundingMode.HALF_UP)); + result.setTotalScore(result.getTotalScore().add(score)); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java b/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java index bed5fc95b7..ff0811d4c5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java +++ b/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java @@ -1,17 +1,30 @@ package com.epmet.stats.test.normalizing; +import java.math.BigDecimal; +import java.math.RoundingMode; + public class MathUtilTest { public static void main(String[] args) { + //值 域:(-π/2,π/2) ->(60,100) double tan = Math.atan(4); double tan2 = Math.atan(1); double tan3 = Math.atan(8); - double tan4 = Math.atan(3); + double tan4 = Math.atan(1000); + double min = 60; + double max = 100; + System.out.println(tan * ((max - min) / (Math.PI / 2)) + min); + System.out.println(tan2 * ((max - min) / (Math.PI / 2)) + min); + System.out.println(tan3 * ((max - min) / (Math.PI / 2)) + min); + System.out.println(tan4 * ((max - min) / (Math.PI / 2)) + min); - System.out.println((tan / Math.PI)); - System.out.println((tan2 / Math.PI)); - System.out.println((tan3 / Math.PI)); - System.out.println((tan4 / Math.PI * 200)); + BigDecimal maxValue = new BigDecimal(100); + BigDecimal minValue = new BigDecimal(60); + BigDecimal normalizeValue = new BigDecimal(Math.atan(new Double("4"))) + .multiply( + (maxValue.subtract(minValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP))).add(minValue).setScale(6, RoundingMode.HALF_UP); + System.out.println(normalizeValue); + //new BigDecimal(Math.atan(new Double(vo.getSampleValue().toString())) / Math.PI * 100).setScale(6, RoundingMode.HALF_UP); } } From 67a3f8d56d4381ee6511c659853229250847feba Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Thu, 15 Oct 2020 13:43:36 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=85=A5=E5=8F=82=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../evaluationindex/screen/dto/form/AblityListFormDTO.java | 4 ++-- .../screen/dto/form/MonthAblityListFormDTO.java | 4 ++-- .../screen/dto/form/MonthScoreListFormDTO.java | 4 ++-- .../screen/dto/form/PeerComparisonFormDTO.java | 6 +++--- .../evaluationindex/screen/dto/form/ScoreListFormDTO.java | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AblityListFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AblityListFormDTO.java index ab4a4696c6..01c49abc54 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AblityListFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/AblityListFormDTO.java @@ -21,12 +21,12 @@ public class AblityListFormDTO implements Serializable { /** * 组织或网格Id */ - @NotBlank(message = "组织或网格ID不能为空",groups = {AblityIndexFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "组织或网格ID不能为空",groups = {AblityListFormDTO.AddUserInternalGroup.class}) private String orgId; /** * 组织或网格类型 */ - @NotBlank(message = "组织或网格类型不能为空",groups = {AblityIndexFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "组织或网格类型不能为空",groups = {AblityListFormDTO.AddUserInternalGroup.class}) private String orgType; public interface AddUserInternalGroup {} /** diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/MonthAblityListFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/MonthAblityListFormDTO.java index 8289173d9e..61dcc6ec43 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/MonthAblityListFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/MonthAblityListFormDTO.java @@ -21,12 +21,12 @@ public class MonthAblityListFormDTO implements Serializable { /** * 组织或网格Id */ - @NotBlank(message = "组织或网格ID不能为空",groups = {AblityIndexFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "组织或网格ID不能为空",groups = {MonthAblityListFormDTO.AddUserInternalGroup.class}) private String orgId; /** * 组织或网格类型 */ - @NotBlank(message = "组织或网格类型不能为空",groups = {AblityIndexFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "组织或网格类型不能为空",groups = {MonthAblityListFormDTO.AddUserInternalGroup.class}) private String orgType; public interface AddUserInternalGroup {} /** diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/MonthScoreListFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/MonthScoreListFormDTO.java index 528c3805f0..31dd11e3dd 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/MonthScoreListFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/MonthScoreListFormDTO.java @@ -17,7 +17,7 @@ public class MonthScoreListFormDTO implements Serializable { /** * 组织或网格Id */ - @NotBlank(message = "组织或网格ID不能为空",groups = {AblityIndexFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "组织或网格ID不能为空",groups = {MonthScoreListFormDTO.AddUserInternalGroup.class}) private String orgId; /** * 组织Id @@ -27,7 +27,7 @@ public class MonthScoreListFormDTO implements Serializable { /** * 组织或网格类型 */ - @NotBlank(message = "组织或网格类型不能为空",groups = {AblityIndexFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "组织或网格类型不能为空",groups = {MonthScoreListFormDTO.AddUserInternalGroup.class}) private String orgType; /** * 月份Id(格式:202009) diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/PeerComparisonFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/PeerComparisonFormDTO.java index 400e4415c0..7e10d1c6f4 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/PeerComparisonFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/PeerComparisonFormDTO.java @@ -22,17 +22,17 @@ public class PeerComparisonFormDTO implements Serializable { /** * 月份Id(格式:202009) */ - @NotBlank(message = "月份ID不能为空",groups = {MonthAblityListFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "月份ID不能为空",groups = {PeerComparisonFormDTO.AddUserInternalGroup.class}) private String monthId; /** * 组织或网格Id */ - @NotBlank(message = "组织或网格ID不能为空",groups = {AblityIndexFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "组织或网格ID不能为空",groups = {PeerComparisonFormDTO.AddUserInternalGroup.class}) private String orgId; /** * 组织或网格类型 */ - @NotBlank(message = "组织或网格类型不能为空",groups = {AblityIndexFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "组织或网格类型不能为空",groups = {PeerComparisonFormDTO.AddUserInternalGroup.class}) private String orgType; public interface AddUserInternalGroup {} /** diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/ScoreListFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/ScoreListFormDTO.java index 9b622eb568..c07680d6bb 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/ScoreListFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/form/ScoreListFormDTO.java @@ -17,7 +17,7 @@ public class ScoreListFormDTO implements Serializable { /** * 组织或网格Id */ - @NotBlank(message = "组织或网格ID不能为空",groups = {AblityIndexFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "组织或网格ID不能为空",groups = {ScoreListFormDTO.AddUserInternalGroup.class}) private String orgId; /** * 组织Id @@ -27,7 +27,7 @@ public class ScoreListFormDTO implements Serializable { /** * 组织或网格类型 */ - @NotBlank(message = "组织或网格类型不能为空",groups = {AblityIndexFormDTO.AddUserInternalGroup.class}) + @NotBlank(message = "组织或网格类型不能为空",groups = {ScoreListFormDTO.AddUserInternalGroup.class}) private String orgType; /** * 月份Id(格式:202009)