diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/ParymemberResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/ParymemberResultDTO.java
index 18bc33df48..710ce303aa 100644
--- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/ParymemberResultDTO.java
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/ParymemberResultDTO.java
@@ -29,6 +29,7 @@ public class ParymemberResultDTO implements Serializable {
/**
* 当前所选组织的坐标区域
*/
+ @JsonIgnore
private String areaMarks = "";
/**
diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/UserResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/UserResultDTO.java
index 179aa5bec2..cea3d4b7ad 100644
--- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/UserResultDTO.java
+++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/UserResultDTO.java
@@ -29,6 +29,7 @@ public class UserResultDTO implements Serializable {
/**
* 当前所选组织的坐标区域
*/
+ @JsonIgnore
private String areaMarks = "";
/**
diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java
index 612239fc8d..0e1d557215 100644
--- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java
+++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java
@@ -41,7 +41,13 @@ public class AgencyServiceImpl implements AgencyService {
@Override
public TreeResultDTO tree(ExternalAppRequestParam externalAppRequestParam) {
// 1. 查询客户根组织ID
- String customerId = externalAppRequestParam.getCustomerId();
+// String customerId = externalAppRequestParam.getCustomerId();
+
+
+ // 验签关闭,customerId无法获取,暂时写死
+ String customerId = "b09527201c4409e19d1dbc5e3c3429a1";
+
+
TreeResultDTO rootAgency = screenCustomerAgencyDao.selectRootAgencyId(customerId);
if (null == rootAgency){
return new TreeResultDTO();
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
index 988e0b17cd..1e45902a79 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
@@ -29,6 +29,7 @@
WHERE
del_flag = 0
AND parent_agency_id = #{agencyId}
+ AND all_parent_ids LIKE concat('%', #{agencyId}, '%')
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
index 63cadbbd5e..0b2e8698e2 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
@@ -32,5 +32,6 @@
WHERE
del_flag = '0'
AND event_id = #{projectId}
+ AND all_parent_ids LIKE concat('%', #{agencyId}, '%')
\ No newline at end of file
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/CalculateCommonFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/CalculateCommonFormDTO.java
new file mode 100644
index 0000000000..1d56dd17b1
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/CalculateCommonFormDTO.java
@@ -0,0 +1,29 @@
+package com.epmet.dto.indexcal;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 指标计算通用入参DTO
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/26 10:49
+ */
+@Data
+public class CalculateCommonFormDTO implements Serializable {
+ /**
+ * 月份id: yyyyMM
+ */
+ private String monthId;
+
+ /**
+ * 客户id
+ */
+ private String customerId;
+
+ public CalculateCommonFormDTO(String customerId, String monthId) {
+ this.monthId=monthId;
+ this.customerId=customerId;
+ }
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/ExtremeValueCommonDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/ExtremeValueCommonDTO.java
new file mode 100644
index 0000000000..63dbb58262
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/ExtremeValueCommonDTO.java
@@ -0,0 +1,26 @@
+package com.epmet.dto.indexcal;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 最值通用DTO
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/26 10:39
+ */
+@Data
+public class ExtremeValueCommonDTO implements Serializable {
+
+ /**
+ * 最小值
+ */
+ private BigDecimal minValue;
+
+ /**
+ * 最小值
+ */
+ private BigDecimal maxValue;
+}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerGridFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerGridFormDTO.java
index 38094a105a..75eb13a0fa 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerGridFormDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerGridFormDTO.java
@@ -48,4 +48,9 @@ public class CustomerGridFormDTO implements Serializable {
* 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
*/
private String dataEndTime;
+
+ /**
+ * 所有上级ID,用英文逗号分开(8.26新增)
+ */
+ private String allParentIds;
}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/DifficultyDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/DifficultyDataFormDTO.java
index 7d136c4b27..e446e073a3 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/DifficultyDataFormDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/DifficultyDataFormDTO.java
@@ -94,9 +94,13 @@ public class DifficultyDataFormDTO implements Serializable {
*/
private Integer eventHandledCount;
-
/**
* 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
*/
private String dataEndTime;
+
+ /**
+ * 所有上级ID,用英文逗号分开(8.26新增)
+ */
+ private String allParentIds;
}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/EventDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/EventDataFormDTO.java
index 21e8ee718e..6c2cbe43a5 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/EventDataFormDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/EventDataFormDTO.java
@@ -121,4 +121,9 @@ public class EventDataFormDTO implements Serializable {
* 数据更新至: yyyy|yyyMM|yyyyMMdd 8.21增加字段
*/
private String dataEndTime;
+
+ /**
+ * 所有上级ID,用英文逗号分开(8.26新增)
+ */
+ private String allParentIds;
}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/OrgRankDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/OrgRankDataFormDTO.java
index 8b0a753839..5e962e47bb 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/OrgRankDataFormDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/OrgRankDataFormDTO.java
@@ -79,4 +79,9 @@ public class OrgRankDataFormDTO implements Serializable {
* 满意率,最大值100,保留小数点后四位
*/
private BigDecimal satisfactionRatio;
+
+ /**
+ * 所有上级ID,用英文逗号分开(8.26新增)
+ */
+ private String allParentIds;
}
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyUserRankDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyUserRankDataFormDTO.java
index 29b35aa147..5d9f5da32b 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyUserRankDataFormDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyUserRankDataFormDTO.java
@@ -73,4 +73,9 @@ public class PartyUserRankDataFormDTO implements Serializable {
* 名
*/
private String name;
+
+ /**
+ * 所有上级ID,用英文逗号分开(8.26新增)
+ */
+ private String allParentIds;
}
diff --git a/epmet-module/data-statistical/data-statistical-server/pom.xml b/epmet-module/data-statistical/data-statistical-server/pom.xml
index aca19d6a19..61af3816fc 100644
--- a/epmet-module/data-statistical/data-statistical-server/pom.xml
+++ b/epmet-module/data-statistical/data-statistical-server/pom.xml
@@ -93,6 +93,11 @@
easyexcel
2.2.6
+
+ io.github.wnjustdoit
+ pinyin4j
+ 2.6.0
+
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/IndexGroupEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/IndexGroupEntity.java
index 24df1ef18a..dcd8c63648 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/IndexGroupEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/IndexGroupEntity.java
@@ -45,6 +45,11 @@ public class IndexGroupEntity extends BaseEpmetEntity {
*/
private String indexId;
+ /**
+ * 指标code
+ */
+ private String indexCode;
+
/**
* 是否启用:启用:enable 禁用:disabled
*/
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/IndexGroupTemplateEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/IndexGroupTemplateEntity.java
index 3348ebdeda..6a6408f7a1 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/IndexGroupTemplateEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/IndexGroupTemplateEntity.java
@@ -40,6 +40,11 @@ public class IndexGroupTemplateEntity extends BaseEpmetEntity {
*/
private String indexId;
+ /**
+ * 指标code
+ */
+ private String indexCode;
+
/**
* 是否启用:启用:enable 禁用:disabled
*/
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenCustomerGridEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenCustomerGridEntity.java
index 99b6c99553..62dddc6960 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenCustomerGridEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenCustomerGridEntity.java
@@ -78,4 +78,8 @@ public class ScreenCustomerGridEntity extends BaseEpmetEntity {
*/
private String dataEndTime;
+ /**
+ * 所有上级ID,用英文逗号分开(8.26新增)
+ */
+ private String allParentIds;
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenDifficultyDataEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenDifficultyDataEntity.java
index 845bbb7db0..9a4d3af36b 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenDifficultyDataEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenDifficultyDataEntity.java
@@ -127,4 +127,8 @@ public class ScreenDifficultyDataEntity extends BaseEpmetEntity {
*/
private String dataEndTime;
+ /**
+ * 所有上级ID,用英文逗号分开(8.26新增)
+ */
+ private String allParentIds;
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenEventDataEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenEventDataEntity.java
index e666f852b0..0242ab8ce2 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenEventDataEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenEventDataEntity.java
@@ -144,4 +144,8 @@ public class ScreenEventDataEntity extends BaseEpmetEntity {
*/
private String dataEndTime;
+ /**
+ * 所有上级ID,用英文逗号分开(8.26新增)
+ */
+ private String allParentIds;
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenOrgRankDataEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenOrgRankDataEntity.java
index a732eda4b9..abbdbb7d20 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenOrgRankDataEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenOrgRankDataEntity.java
@@ -109,4 +109,8 @@ public class ScreenOrgRankDataEntity extends BaseEpmetEntity {
*/
private BigDecimal satisfactionRatio;
+ /**
+ * 所有上级ID,用英文逗号分开(8.26新增)
+ */
+ private String allParentIds;
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenPartyUserRankDataEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenPartyUserRankDataEntity.java
index 702e184439..c542da7085 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenPartyUserRankDataEntity.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenPartyUserRankDataEntity.java
@@ -98,4 +98,8 @@ public class ScreenPartyUserRankDataEntity extends BaseEpmetEntity {
*/
private String dataEndTime;
+ /**
+ * 所有上级ID,用英文逗号分开(8.26新增)
+ */
+ private String allParentIds;
}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/eum/IndexCodeEnum.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/eum/IndexCodeEnum.java
new file mode 100644
index 0000000000..29766018d8
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/eum/IndexCodeEnum.java
@@ -0,0 +1,56 @@
+package com.epmet.eum;
+
+/**
+ * 需要计算指标code枚举类
+ *
+ * @author jianjun liu
+ * @date 2020-08-26 11:14
+ **/
+public enum IndexCodeEnum {
+ DANG_YUAN_XIANG_GUAN("dangyuanxiangguan", "党员相关", 1),
+ WANG_GE_XIANG_GUAN("wangggexiangguan", "网格相关", 1),
+ SHE_QU_XIANG_GUAN("shequxiangguan", "社区相关", 1),
+ JIE_DAO_XIANG_GUAN("jiedaoxiangguan", "街道相关", 1),
+ QU_ZHI_BU_MEN("quzhibumen", "区直部门", 1),
+ QUAN_QU_XIANG_GUAN("quanquxiangguan", "全区相关", 1),
+
+ DANG_JIAN_NENG_LI("dangjiannengli", "党建能力", 2),
+ ZHI_LI_NENG_LI("zhilinengli", "治理能力", 2),
+ FU_WU_NENG_LI("fuwunengli", "服务能力", 2),
+
+ CAN_YU_YI_SHI("canyuyishi", "参与议事", 4),
+ DANG_WU_HUO_DONG("dangwuhuodong", "党务活动", 4),
+ LIAN_XI_QUN_ZHONG("lianxiqunzhong", "联系群众", 4),
+
+ ;
+
+ private String code;
+ private String name;
+ private Integer level;
+
+
+ IndexCodeEnum(String code, String name, Integer level) {
+ this.code = code;
+ this.name = name;
+ this.level = level;
+ }
+
+ public static IndexCodeEnum getEnum(String code) {
+ IndexCodeEnum[] values = IndexCodeEnum.values();
+ for (IndexCodeEnum value : values) {
+ if (code != null && value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/IndexExcelDataListener.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/IndexExcelDataListener.java
index 76f0897890..931b9afd55 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/IndexExcelDataListener.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/IndexExcelDataListener.java
@@ -10,6 +10,7 @@ import com.epmet.entity.screen.IndexGroupTemplateEntity;
import com.epmet.service.screen.IndexDictService;
import com.epmet.service.screen.IndexGroupDetailTemplateService;
import com.epmet.service.screen.IndexGroupTemplateService;
+import com.epmet.util.Pinyin4jUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -118,6 +119,7 @@ public class IndexExcelDataListener extends AnalysisEventListener {
group1.setIndexId(indexDictEntity.getId());
group1.setParentIndexGroupId("0");
group1.setId(level1GroupId);
+ group1.setIndexCode(Pinyin4jUtil.getFirstSpellPinYin(indexDictEntity.getIndexName(),true));
indexGroupMap.put(index.getLevel1Index(), group1);
}
@@ -132,6 +134,7 @@ public class IndexExcelDataListener extends AnalysisEventListener {
group2.setIndexId(indexDictEntity.getId());
group2.setParentIndexGroupId(level1GroupId);
group2.setId(level2GroupId);
+ group2.setIndexCode(Pinyin4jUtil.getFirstSpellPinYin(indexDictEntity.getIndexName(),true));
indexGroupMap.put(level4Index, group2);
//构建 分组明细
templateEntity = indexGroupDetailMap.get(level4Index);
@@ -156,6 +159,7 @@ public class IndexExcelDataListener extends AnalysisEventListener {
group1.setIndexId(indexDictEntity.getId());
group1.setParentIndexGroupId("0");
group1.setId(level1GroupId);
+ group1.setIndexCode(Pinyin4jUtil.getFirstSpellPinYin(indexDictEntity.getIndexName(),true));
indexGroupMap.put(index.getLevel1Index(), group1);
}
@@ -170,6 +174,7 @@ public class IndexExcelDataListener extends AnalysisEventListener {
group2.setIndexId(indexDictEntity.getId());
group2.setParentIndexGroupId(level1GroupId);
group2.setId(level2GroupId);
+ group2.setIndexCode(Pinyin4jUtil.getFirstSpellPinYin(indexDictEntity.getIndexName(),true));
indexGroupMap.put(level2Index, group2);
//构建 分组明细
templateEntity = indexGroupDetailMap.get(level2Index);
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/indexcal/GridCorreLationService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/indexcal/GridCorreLationService.java
new file mode 100644
index 0000000000..89001f5d4f
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/indexcal/GridCorreLationService.java
@@ -0,0 +1,21 @@
+package com.epmet.service.indexcal;
+
+import com.epmet.dto.indexcal.CalculateCommonFormDTO;
+
+/**
+ * 网格相关指标计算
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/26 10:34
+ */
+public interface GridCorreLationService {
+
+ /**
+ * @return java.lang.Boolean
+ * @param formDTO
+ * @author yinzuomei
+ * @description 网格相关,分值计算
+ * @Date 2020/8/26 10:51
+ **/
+ Boolean calculateGridCorreLation(CalculateCommonFormDTO formDTO);
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/indexcal/impl/GridCorreLationServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/indexcal/impl/GridCorreLationServiceImpl.java
new file mode 100644
index 0000000000..70a6a9222b
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/indexcal/impl/GridCorreLationServiceImpl.java
@@ -0,0 +1,27 @@
+package com.epmet.service.indexcal.impl;
+
+import com.epmet.dto.indexcal.CalculateCommonFormDTO;
+import com.epmet.service.indexcal.GridCorreLationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 网格相关service
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2020/8/26 10:35
+ */
+@Service
+public class GridCorreLationServiceImpl implements GridCorreLationService {
+
+ /**
+ * @param formDTO
+ * @return java.lang.Boolean
+ * @author yinzuomei
+ * @description 网格相关,分值计算
+ * @Date 2020/8/26 10:51
+ **/
+ @Override
+ public Boolean calculateGridCorreLation(CalculateCommonFormDTO formDTO) {
+ return null;
+ }
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/IndexCalculateServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/IndexCalculateServiceImpl.java
index 4558c87927..54a368044b 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/IndexCalculateServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/screen/impl/IndexCalculateServiceImpl.java
@@ -3,9 +3,11 @@ package com.epmet.service.screen.impl;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.indexcoll.FactIndexPartyAblityCpcMonthlyDao;
+import com.epmet.dto.indexcal.CalculateCommonFormDTO;
import com.epmet.dto.screen.form.IndexCalculateForm;
import com.epmet.entity.indexcoll.FactIndexPartyAblityCpcMonthlyEntity;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
+import com.epmet.service.indexcal.GridCorreLationService;
import com.epmet.service.screen.IndexCalculateService;
import com.epmet.util.DimIdGenerator;
import lombok.extern.slf4j.Slf4j;
@@ -27,6 +29,8 @@ public class IndexCalculateServiceImpl implements IndexCalculateService {
private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient;
@Autowired
private FactIndexPartyAblityCpcMonthlyDao factIndexPartyAblityCpcMonthlyDao;
+ @Autowired
+ private GridCorreLationService gridCorreLationService;
@Override
public Boolean indexCalculate(IndexCalculateForm formDTO) {
@@ -44,6 +48,7 @@ public class IndexCalculateServiceImpl implements IndexCalculateService {
formDTO.setCustomerIds(externalCustomerIdsResult.getData());
}
formDTO.getCustomerIds().forEach(customerId -> {
+ CalculateCommonFormDTO calculateCommonFormDTO=new CalculateCommonFormDTO(customerId, formDTO.getMonthId());
//计算党员
try {
List list = factIndexPartyAblityCpcMonthlyDao.getCountByMonthId(customerId, formDTO.getMonthId());
@@ -53,7 +58,7 @@ public class IndexCalculateServiceImpl implements IndexCalculateService {
//计算网格
//TODO
-
+ gridCorreLationService.calculateGridCorreLation(calculateCommonFormDTO);
//计算社区
//TODO
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
index 0acb52daae..df84c2196c 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
@@ -79,7 +79,7 @@ public abstract class ScoreCalculator {
if (correlation == Correlation.POSITIVE) {
// 正相关
BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
- BigDecimal score = minScore.add(x, MathContext.DECIMAL32);
+ BigDecimal score = minScore.add(x);
return score;
} else if (correlation == Correlation.NEGATIVE) {
// 负相关
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
new file mode 100644
index 0000000000..1eecc8cf36
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreConstants.java
@@ -0,0 +1,13 @@
+package com.epmet.support.normalizing;
+
+import java.math.BigDecimal;
+
+/**
+ * 分值常量
+ */
+public class ScoreConstants {
+
+ public static final BigDecimal MIN_SCORE = new BigDecimal(0);
+ public static final BigDecimal MAX_SCORE = new BigDecimal(100);
+
+}
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
new file mode 100644
index 0000000000..85b8cf501d
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java
@@ -0,0 +1,35 @@
+package com.epmet.support.normalizing.batch;
+
+import com.epmet.support.normalizing.ScoreCalculator;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class BatchScoreCalculator {
+
+ /**
+ * 每个指标都是一条数据,每一条数据中包含该指标的一组样本
+ */
+ private List indexVOS;
+
+ /**
+ * 执行计算
+ * @return 每一条都是一个指标的,所有样本对应的,得分值
+ */
+ public List exec(List indexVOS) {
+ this.indexVOS = indexVOS;
+
+ return indexVOS.stream().map(i -> {
+ String indexId = i.getIndexId();
+ List indexValues = i.getIndexValues();
+ BigDecimal weight = i.getWeight();
+ ScoreCalculator scoreCalculator = i.getScoreCalculator();
+
+ List scores4OneIndex = scoreCalculator.normalize(indexValues, weight);
+
+ return new IndexOutputVO(indexId, scores4OneIndex);
+ }).collect(Collectors.toList());
+ }
+
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/IndexInputVO.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/IndexInputVO.java
new file mode 100644
index 0000000000..984388d07d
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/IndexInputVO.java
@@ -0,0 +1,39 @@
+package com.epmet.support.normalizing.batch;
+
+import com.epmet.support.normalizing.ScoreCalculator;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class IndexInputVO {
+
+ /**
+ * 指标标记,由使用者传入,用以标记该条指标的独有特性,一般用id或者code
+ * 非必填
+ */
+ private String indexId;
+
+ /**
+ * 指标的样本值
+ */
+ private List indexValues;
+
+ /**
+ * 权重
+ */
+ private BigDecimal weight;
+
+ private ScoreCalculator scoreCalculator;
+
+ public IndexInputVO(List indexValues, BigDecimal weight, ScoreCalculator scoreCalculator) {
+ this.indexValues = indexValues;
+ this.weight = weight;
+ this.scoreCalculator = scoreCalculator;
+ }
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/IndexOutputVO.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/IndexOutputVO.java
new file mode 100644
index 0000000000..ab85a8cabf
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/IndexOutputVO.java
@@ -0,0 +1,23 @@
+package com.epmet.support.normalizing.batch;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+public class IndexOutputVO {
+
+ /**
+ * 指标标记,由使用者传入,用以标记该条指标的独有特性,一般用id或者code
+ * 非必填
+ */
+ private String indexId;
+
+ /**
+ * 指标的样本值
+ */
+ private List indexScores;
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/Pinyin4jUtil.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/Pinyin4jUtil.java
new file mode 100644
index 0000000000..5ea9d4b828
--- /dev/null
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/Pinyin4jUtil.java
@@ -0,0 +1,170 @@
+package com.epmet.util;
+
+import net.sourceforge.pinyin4j.PinyinHelper;
+import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
+import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
+import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
+import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
+import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+
+/**
+ * @author liujianjun
+ */
+public class Pinyin4jUtil {
+ private static Map duoyinMap;
+ static {
+ duoyinMap = new HashMap<>();
+ duoyinMap.put('区',new String[]{"qu"});
+ duoyinMap.put('系',new String[]{"xi"});
+ }
+
+ /**
+ * getFirstSpellPinYin:(多音字的时候获取第一个).
+ *
+ * @param src 传入的拼音字符串,以逗号隔开
+ * @param isFullSpell 是否全拼,true:全拼,false:第一个汉字全拼(其它汉字取首字母)
+ * @return 第一个拼音
+ */
+ public static String getFirstSpellPinYin(String src, boolean isFullSpell) {
+ String targetStr = Pinyin4jUtil.makeStringByStringSet(Pinyin4jUtil.getPinyin(src, isFullSpell));
+ System.out.println(targetStr);
+ String[] split = targetStr.split(",");
+ if (split.length > 1) {
+ targetStr = split[0];
+ }
+ return targetStr;
+ }
+
+ /**
+ * makeStringByStringSet:(拼音字符串集合转换字符串(逗号分隔)).
+ *
+ * @param stringSet 拼音集合
+ * @return 带逗号字符串
+ */
+ public static String makeStringByStringSet(Set stringSet) {
+ StringBuilder str = new StringBuilder();
+ int i = 0;
+ if (stringSet.size() > 0) {
+ for (String s : stringSet) {
+ if (i == stringSet.size() - 1) {
+ str.append(s);
+ } else {
+ str.append(s + ",");
+ }
+ i++;
+ }
+ }
+ return str.toString().toLowerCase();
+ }
+
+ /**
+ * getPinyin:(获取汉字拼音).
+ *
+ * @param src 汉字
+ * @param isFullSpell 是否全拼,如果为true:全拼,false:首字全拼
+ * @return
+ */
+ public static Set getPinyin(String src, boolean isFullSpell) {
+ if (src != null && !src.trim().equalsIgnoreCase("")) {
+ char[] srcChar;
+ srcChar = src.toCharArray();
+ // 汉语拼音格式输出类
+ HanyuPinyinOutputFormat hanYuPinOutputFormat = new HanyuPinyinOutputFormat();
+
+ // 输出设置,大小写,音标方式等
+ hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
+ hanYuPinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
+ hanYuPinOutputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
+
+ String[][] temp = new String[src.length()][];
+ for (int i = 0; i < srcChar.length; i++) {
+ char c = srcChar[i];
+ if (String.valueOf(c).matches("[\\u4E00-\\u9FA5]+")) {//中文
+ try {
+ String[] py = duoyinMap.get(c);
+ if (py != null){
+ temp[i] = py;
+ }else{
+ temp[i] = PinyinHelper.toHanyuPinyinStringArray(srcChar[i], hanYuPinOutputFormat);
+ }
+
+ if (!isFullSpell) {
+ if (i == 0) {
+ temp[i] = temp[i];
+ } else {
+ String[] tTemps = new String[temp[i].length];
+ for (int j = 0; j < temp[i].length; j++) {
+ char t = temp[i][j].charAt(0);
+ tTemps[j] = Character.toString(t);
+ }
+ temp[i] = tTemps;
+ }
+ }
+ } catch (BadHanyuPinyinOutputFormatCombination e) {
+ e.printStackTrace();
+ }
+ } else if (((int) c >= 65 && (int) c <= 90)
+ || ((int) c >= 97 && (int) c <= 122)) {//英文
+ temp[i] = new String[]{String.valueOf(srcChar[i])};
+ } else {
+ temp[i] = new String[]{""};
+ }
+ }
+ String[] pingyinArray = exchange(temp);
+ Set pinyinSet = new HashSet();
+ for (int i = 0; i < pingyinArray.length; i++) {
+ pinyinSet.add(pingyinArray[i]);
+ }
+ return pinyinSet;
+ }
+ return null;
+ }
+
+ /**
+ * 递归
+ *
+ * @param strJaggedArray
+ * @return
+ */
+ public static String[] exchange(String[][] strJaggedArray) {
+ String[][] temp = doExchange(strJaggedArray);
+ return temp[0];
+ }
+
+ /**
+ * 递归
+ *
+ * @param strJaggedArray
+ * @return
+ */
+ private static String[][] doExchange(String[][] strJaggedArray) {
+ int len = strJaggedArray.length;
+ if (len >= 2) {
+ int len1 = strJaggedArray[0].length;
+ int len2 = strJaggedArray[1].length;
+ int newlen = len1 * len2;
+ String[] temp = new String[newlen];
+ int Index = 0;
+ for (int i = 0; i < len1; i++) {
+ for (int j = 0; j < len2; j++) {
+ temp[Index] = strJaggedArray[0][i] + strJaggedArray[1][j];
+ Index++;
+ }
+ }
+ String[][] newArray = new String[len - 1][];
+ for (int i = 2; i < len; i++) {
+ newArray[i - 1] = strJaggedArray[i];
+ }
+ newArray[0] = temp;
+ return doExchange(newArray);
+ } else {
+ return strJaggedArray;
+ }
+ }
+}
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml
index 709e17ab36..ce995b962e 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml
@@ -174,3 +174,7 @@ thread:
queueCapacity: @thread.pool.queue-capacity@
keepAlive: @thread.pool.keep-alive@
+dingTalk:
+ robot:
+ webHook: @dingTalk.robot.webHook@
+ secret: @dingTalk.robot.secret@
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/IndexGroupTemplateDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/IndexGroupTemplateDao.xml
index 6adfa4474b..29ff0c7e17 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/IndexGroupTemplateDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/IndexGroupTemplateDao.xml
@@ -7,7 +7,7 @@
\ No newline at end of file
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
index 5381e9ddd2..9a37bd23c0 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
@@ -29,7 +29,8 @@
CREATED_TIME,
UPDATED_BY,
UPDATED_TIME,
- DATA_END_TIME
+ DATA_END_TIME,
+ ALL_PARENT_IDS
) values
(
@@ -47,7 +48,8 @@
now(),
'APP_USER',
now(),
- #{item.dataEndTime}
+ #{item.dataEndTime},
+ #{item.allParentIds}
)
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml
index e26c43115c..fb9a087e42 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml
@@ -35,7 +35,8 @@
UPDATED_BY,
UPDATED_TIME,
LATEST_OPERATE_DESC,
- DATA_END_TIME
+ DATA_END_TIME,
+ ALL_PARENT_IDS
) values
(
@@ -63,7 +64,8 @@
'APP_USER',
now(),
#{item.latestOperateDesc},
- #{item.dataEndTime}
+ #{item.dataEndTime},
+ #{item.allParentIds}
)
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
index be95b118df..9c950e18e1 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
@@ -38,7 +38,8 @@
EVENT_STATUS_CODE,
EVENT_STATUS_DESC,
LATEST_OPERATE_DESC,
- DATA_END_TIME
+ DATA_END_TIME,
+ ALL_PARENT_IDS
) values
(
@@ -69,7 +70,8 @@
#{item.eventStatusCode},
#{item.eventStatusDesc},
#{item.latestOperateDesc},
- #{item.dataEndTime}
+ #{item.dataEndTime},
+ #{item.allParentIds}
)
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml
index 4ebe5e2c28..345deacd5d 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml
@@ -35,7 +35,8 @@
CREATED_BY,
CREATED_TIME,
UPDATED_BY,
- UPDATED_TIME
+ UPDATED_TIME,
+ ALL_PARENT_IDS
) values
(
@@ -59,7 +60,8 @@
'APP_USER',
now(),
'APP_USER',
- now()
+ now(),
+ #{item.allParentIds}
)
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml
index 070e952878..cf93e38a5f 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml
@@ -29,7 +29,8 @@
CREATED_TIME,
UPDATED_BY,
UPDATED_TIME,
- DATA_END_TIME
+ DATA_END_TIME,
+ ALL_PARENT_IDS
) values
(
@@ -51,7 +52,8 @@
now(),
'APP_USER',
now(),
- #{item.dataEndTime}
+ #{item.dataEndTime},
+ #{item.allParentIds}
)
diff --git a/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/DemoScoreCal.java b/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/DemoScoreCal.java
index 14ebc4685c..178468b0a0 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/DemoScoreCal.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/DemoScoreCal.java
@@ -1,26 +1,29 @@
package com.epmet.stats.test.normalizing;
-import com.epmet.support.normalizing.Correlation;
-import com.epmet.support.normalizing.DoubleScoreCalculator;
-import com.epmet.support.normalizing.IntegerScoreCalculator;
-import com.epmet.support.normalizing.ScoreCalculator;
+import com.epmet.support.normalizing.*;
+import com.epmet.support.normalizing.batch.BatchScoreCalculator;
+import com.epmet.support.normalizing.batch.IndexInputVO;
+import com.epmet.support.normalizing.batch.IndexOutputVO;
+import org.junit.Test;
import java.math.BigDecimal;
import java.util.Arrays;
+import java.util.List;
public class DemoScoreCal {
public static void main(String[] args) {
//demoInteger();
- demoIntegerPartical();
+ //demoIntegerPartical();
//demoDouble();
}
/**
* 整数类型,完整源数据列表的归一算法
*/
- public static void demoInteger() {
- Integer[] iArray = {4,8,1,3,2};
+ @Test
+ public void demoInteger() {
+ Integer[] iArray = {4, 8, 1, 3, 2};
BigDecimal minScore = new BigDecimal(5);
BigDecimal maxScore = new BigDecimal(10);
@@ -32,12 +35,13 @@ public class DemoScoreCal {
/**
* 整数类型,基于边界值的部分列表的的归一算法
*/
- public static void demoIntegerPartical() {
- Integer[] iArray = {4,1,2};
+ @Test
+ public void demoIntegerPartical() {
+ Integer[] iArray = {4, 1, 8};
BigDecimal minScore = new BigDecimal(5);
BigDecimal maxScore = new BigDecimal(10);
- ScoreCalculator sc = new IntegerScoreCalculator(1, 8 ,minScore, maxScore, Correlation.NEGATIVE);
+ ScoreCalculator sc = new IntegerScoreCalculator(1, 8, minScore, maxScore, Correlation.NEGATIVE);
BigDecimal[] scores = sc.normalize(iArray);// 此处也可以直接使用list参数的重载方法,计算阶段没有任何区别,区别在于new IntegerScoreCalculator()阶段
Arrays.stream(scores).forEach(s -> System.out.println(s));
}
@@ -46,7 +50,7 @@ public class DemoScoreCal {
* double类型归一算法
*/
public static void demoDouble() {
- Double[] iArray = {1.9,8.9,1.0,3.0,2.0};
+ Double[] iArray = {1.9, 8.9, 1.0, 3.0, 2.0};
BigDecimal minScore = new BigDecimal(5);
BigDecimal maxScore = new BigDecimal(10);
@@ -61,6 +65,31 @@ public class DemoScoreCal {
System.out.println(normalize2);
}
+ /**
+ * 批量计算demo
+ */
+ @Test
+ public void testBatchCalculate() throws InterruptedException {
+ //{4,8,1,3,2}
+
+ // 每个指标需要单独的分支计算器,因为每个指标的最大最小值是不同的
+ ScoreCalculator sc1 = new IntegerScoreCalculator(1, 8, ScoreConstants.MIN_SCORE, ScoreConstants.MAX_SCORE, Correlation.NEGATIVE);
+ ScoreCalculator sc2 = new IntegerScoreCalculator(1, 8, ScoreConstants.MIN_SCORE, ScoreConstants.MAX_SCORE, Correlation.NEGATIVE);
+
+ // 每个指标的信息,包括样本列表,权重,指标标记
+ IndexInputVO index1VO = new IndexInputVO<>("aaa", Arrays.asList(4, 1, 8), new BigDecimal(1), sc1);
+ IndexInputVO index2VO = new IndexInputVO<>("bbb", Arrays.asList(1, 8, 3), new BigDecimal(1), sc2);
+
+ List indexInputVOS = Arrays.asList(index1VO, index2VO);
+
+ BatchScoreCalculator batchScoreCalculator = new BatchScoreCalculator();
+ List result = batchScoreCalculator.exec(indexInputVOS);
+
+ System.err.println("--------------------------------");
+ result.stream().forEach(r -> System.out.println(r));
+ Thread.sleep(10);
+ System.err.println("--------------------------------");
+ }
}