Browse Source

Merge remote-tracking branch 'origin/dev_screen_data' into dev_screen_data

master
yinzuomei 5 years ago
parent
commit
ecf475b6a0
  1. 1
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/ParymemberResultDTO.java
  2. 1
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/screen/dto/result/UserResultDTO.java
  3. 8
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/screen/impl/AgencyServiceImpl.java
  4. 1
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
  5. 2
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml
  6. 1
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
  7. 2
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml
  8. 4
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml
  9. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/CustomerGridFormDTO.java
  10. 6
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/DifficultyDataFormDTO.java
  11. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/EventDataFormDTO.java
  12. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/OrgRankDataFormDTO.java
  13. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screencoll/form/PartyUserRankDataFormDTO.java
  14. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenCustomerGridEntity.java
  15. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenDifficultyDataEntity.java
  16. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenEventDataEntity.java
  17. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenOrgRankDataEntity.java
  18. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/screen/ScreenPartyUserRankDataEntity.java
  19. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
  20. 13
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreConstants.java
  21. 35
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java
  22. 39
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/IndexInputVO.java
  23. 23
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/IndexOutputVO.java
  24. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml
  25. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml
  26. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml
  27. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml
  28. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml
  29. 51
      epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/DemoScoreCal.java

1
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 = ""; private String areaMarks = "";
/** /**

1
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 = ""; private String areaMarks = "";
/** /**

8
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 @Override
public TreeResultDTO tree(ExternalAppRequestParam externalAppRequestParam) { public TreeResultDTO tree(ExternalAppRequestParam externalAppRequestParam) {
// 1. 查询客户根组织ID // 1. 查询客户根组织ID
String customerId = externalAppRequestParam.getCustomerId(); // String customerId = externalAppRequestParam.getCustomerId();
// 验签关闭,customerId无法获取,暂时写死
String customerId = "b09527201c4409e19d1dbc5e3c3429a1";
TreeResultDTO rootAgency = screenCustomerAgencyDao.selectRootAgencyId(customerId); TreeResultDTO rootAgency = screenCustomerAgencyDao.selectRootAgencyId(customerId);
if (null == rootAgency){ if (null == rootAgency){
return new TreeResultDTO(); return new TreeResultDTO();

1
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml

@ -29,6 +29,7 @@
WHERE WHERE
del_flag = 0 del_flag = 0
AND parent_agency_id = #{agencyId} AND parent_agency_id = #{agencyId}
AND all_parent_ids LIKE concat('%', #{agencyId}, '%')
</select> </select>
<!-- 查询子级用户分布【网格级别】 --> <!-- 查询子级用户分布【网格级别】 -->

2
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml

@ -22,7 +22,7 @@
AND eve.DEL_FLAG = '0' AND eve.DEL_FLAG = '0'
WHERE WHERE
diff.DEL_FLAG = '0' diff.DEL_FLAG = '0'
AND diff.PARENT_ID = #{agencyId} AND diff.ALL_PARENT_IDS LIKE CONCAT('%',#{agencyId},'%')
ORDER BY ORDER BY
CASE #{type} WHEN 'timelongest' THEN diff.EVENT_COST_TIME CASE #{type} WHEN 'timelongest' THEN diff.EVENT_COST_TIME
WHEN 'mosthandled' THEN diff.EVENT_HANDLED_COUNT WHEN 'mosthandled' THEN diff.EVENT_HANDLED_COUNT

1
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml

@ -32,5 +32,6 @@
WHERE WHERE
del_flag = '0' del_flag = '0'
AND event_id = #{projectId} AND event_id = #{projectId}
AND all_parent_ids LIKE concat('%', #{agencyId}, '%')
</select> </select>
</mapper> </mapper>

2
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml

@ -17,7 +17,7 @@
screen_org_rank_data screen_org_rank_data
WHERE WHERE
DEL_FLAG = '0' DEL_FLAG = '0'
AND PARENT_ID = #{agencyId} AND all_parent_ids LIKE CONCAT('%',#{agencyId},'%')
AND MONTH_ID = #{monthId} AND MONTH_ID = #{monthId}
ORDER BY ORDER BY
(PARTY_TOTAL + GROUP_TOTAL + ISSUE_TOTAL + PROJECT_TOTAL + CLOSE_PROJECT_RATIO + SATISFACTION_RATIO) DESC, (PARTY_TOTAL + GROUP_TOTAL + ISSUE_TOTAL + PROJECT_TOTAL + CLOSE_PROJECT_RATIO + SATISFACTION_RATIO) DESC,

4
epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml

@ -12,7 +12,7 @@
screen_party_user_rank_data screen_party_user_rank_data
WHERE WHERE
del_flag = '0' del_flag = '0'
AND org_id = #{agencyId} AND all_parent_ids LIKE CONCAT('%',#{agencyId},'%')
ORDER BY ORDER BY
point_total DESC, point_total DESC,
user_name user_name
@ -30,7 +30,7 @@
screen_party_user_rank_data screen_party_user_rank_data
WHERE WHERE
DEL_FLAG = '0' DEL_FLAG = '0'
AND ORG_ID = #{agencyId} AND all_parent_ids LIKE CONCAT('%',#{agencyId},'%')
AND PARTY_FLAG = '1' AND PARTY_FLAG = '1'
ORDER BY ORDER BY
POINT_TOTAL DESC POINT_TOTAL DESC

5
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新增) * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
*/ */
private String dataEndTime; private String dataEndTime;
/**
* 所有上级ID用英文逗号分开(8.26新增)
*/
private String allParentIds;
} }

6
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; private Integer eventHandledCount;
/** /**
* 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增) * 数据更新至: yyyy|yyyyMM|yyyyMMdd(08-21新增)
*/ */
private String dataEndTime; private String dataEndTime;
/**
* 所有上级ID用英文逗号分开(8.26新增)
*/
private String allParentIds;
} }

5
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增加字段 * 数据更新至: yyyy|yyyMM|yyyyMMdd 8.21增加字段
*/ */
private String dataEndTime; private String dataEndTime;
/**
* 所有上级ID用英文逗号分开(8.26新增)
*/
private String allParentIds;
} }

5
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保留小数点后四位 * 满意率最大值100保留小数点后四位
*/ */
private BigDecimal satisfactionRatio; private BigDecimal satisfactionRatio;
/**
* 所有上级ID用英文逗号分开(8.26新增)
*/
private String allParentIds;
} }

5
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; private String name;
/**
* 所有上级ID用英文逗号分开(8.26新增)
*/
private String allParentIds;
} }

4
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; private String dataEndTime;
/**
* 所有上级ID用英文逗号分开(8.26新增)
*/
private String allParentIds;
} }

4
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; private String dataEndTime;
/**
* 所有上级ID用英文逗号分开(8.26新增)
*/
private String allParentIds;
} }

4
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; private String dataEndTime;
/**
* 所有上级ID用英文逗号分开(8.26新增)
*/
private String allParentIds;
} }

4
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; private BigDecimal satisfactionRatio;
/**
* 所有上级ID用英文逗号分开(8.26新增)
*/
private String allParentIds;
} }

4
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; private String dataEndTime;
/**
* 所有上级ID用英文逗号分开(8.26新增)
*/
private String allParentIds;
} }

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java

@ -79,7 +79,7 @@ public abstract class ScoreCalculator<T> {
if (correlation == Correlation.POSITIVE) { if (correlation == Correlation.POSITIVE) {
// 正相关 // 正相关
BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue)); BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
BigDecimal score = minScore.add(x, MathContext.DECIMAL32); BigDecimal score = minScore.add(x);
return score; return score;
} else if (correlation == Correlation.NEGATIVE) { } else if (correlation == Correlation.NEGATIVE) {
// 负相关 // 负相关

13
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);
}

35
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<IndexInputVO> indexVOS;
/**
* 执行计算
* @return 每一条都是一个指标的所有样本对应的得分值
*/
public List<IndexOutputVO> exec(List<IndexInputVO> 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());
}
}

39
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<T> {
/**
* 指标标记由使用者传入用以标记该条指标的独有特性一般用id或者code
* 非必填
*/
private String indexId;
/**
* 指标的样本值
*/
private List<T> indexValues;
/**
* 权重
*/
private BigDecimal weight;
private ScoreCalculator<T> scoreCalculator;
public IndexInputVO(List<T> indexValues, BigDecimal weight, ScoreCalculator<T> scoreCalculator) {
this.indexValues = indexValues;
this.weight = weight;
this.scoreCalculator = scoreCalculator;
}
}

23
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<T> {
/**
* 指标标记由使用者传入用以标记该条指标的独有特性一般用id或者code
* 非必填
*/
private String indexId;
/**
* 指标的样本值
*/
private List<BigDecimal> indexScores;
}

6
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenCustomerGridDao.xml

@ -29,7 +29,8 @@
CREATED_TIME, CREATED_TIME,
UPDATED_BY, UPDATED_BY,
UPDATED_TIME, UPDATED_TIME,
DATA_END_TIME DATA_END_TIME,
ALL_PARENT_IDS
) values ) values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
@ -47,7 +48,8 @@
now(), now(),
'APP_USER', 'APP_USER',
now(), now(),
#{item.dataEndTime} #{item.dataEndTime},
#{item.allParentIds}
) )
</foreach> </foreach>
</insert> </insert>

6
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenDifficultyDataDao.xml

@ -35,7 +35,8 @@
UPDATED_BY, UPDATED_BY,
UPDATED_TIME, UPDATED_TIME,
LATEST_OPERATE_DESC, LATEST_OPERATE_DESC,
DATA_END_TIME DATA_END_TIME,
ALL_PARENT_IDS
) values ) values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
@ -63,7 +64,8 @@
'APP_USER', 'APP_USER',
now(), now(),
#{item.latestOperateDesc}, #{item.latestOperateDesc},
#{item.dataEndTime} #{item.dataEndTime},
#{item.allParentIds}
) )
</foreach> </foreach>
</insert> </insert>

6
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenEventDataDao.xml

@ -38,7 +38,8 @@
EVENT_STATUS_CODE, EVENT_STATUS_CODE,
EVENT_STATUS_DESC, EVENT_STATUS_DESC,
LATEST_OPERATE_DESC, LATEST_OPERATE_DESC,
DATA_END_TIME DATA_END_TIME,
ALL_PARENT_IDS
) values ) values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
@ -69,7 +70,8 @@
#{item.eventStatusCode}, #{item.eventStatusCode},
#{item.eventStatusDesc}, #{item.eventStatusDesc},
#{item.latestOperateDesc}, #{item.latestOperateDesc},
#{item.dataEndTime} #{item.dataEndTime},
#{item.allParentIds}
) )
</foreach> </foreach>
</insert> </insert>

6
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenOrgRankDataDao.xml

@ -35,7 +35,8 @@
CREATED_BY, CREATED_BY,
CREATED_TIME, CREATED_TIME,
UPDATED_BY, UPDATED_BY,
UPDATED_TIME UPDATED_TIME,
ALL_PARENT_IDS
) values ) values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
@ -59,7 +60,8 @@
'APP_USER', 'APP_USER',
now(), now(),
'APP_USER', 'APP_USER',
now() now(),
#{item.allParentIds}
) )
</foreach> </foreach>
</insert> </insert>

6
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml

@ -29,7 +29,8 @@
CREATED_TIME, CREATED_TIME,
UPDATED_BY, UPDATED_BY,
UPDATED_TIME, UPDATED_TIME,
DATA_END_TIME DATA_END_TIME,
ALL_PARENT_IDS
) values ) values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
@ -51,7 +52,8 @@
now(), now(),
'APP_USER', 'APP_USER',
now(), now(),
#{item.dataEndTime} #{item.dataEndTime},
#{item.allParentIds}
) )
</foreach> </foreach>
</insert> </insert>

51
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; package com.epmet.stats.test.normalizing;
import com.epmet.support.normalizing.Correlation; import com.epmet.support.normalizing.*;
import com.epmet.support.normalizing.DoubleScoreCalculator; import com.epmet.support.normalizing.batch.BatchScoreCalculator;
import com.epmet.support.normalizing.IntegerScoreCalculator; import com.epmet.support.normalizing.batch.IndexInputVO;
import com.epmet.support.normalizing.ScoreCalculator; import com.epmet.support.normalizing.batch.IndexOutputVO;
import org.junit.Test;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
public class DemoScoreCal { public class DemoScoreCal {
public static void main(String[] args) { public static void main(String[] args) {
//demoInteger(); //demoInteger();
demoIntegerPartical(); //demoIntegerPartical();
//demoDouble(); //demoDouble();
} }
/** /**
* 整数类型,完整源数据列表的归一算法 * 整数类型,完整源数据列表的归一算法
*/ */
public static void demoInteger() { @Test
Integer[] iArray = {4,8,1,3,2}; public void demoInteger() {
Integer[] iArray = {4, 8, 1, 3, 2};
BigDecimal minScore = new BigDecimal(5); BigDecimal minScore = new BigDecimal(5);
BigDecimal maxScore = new BigDecimal(10); BigDecimal maxScore = new BigDecimal(10);
@ -32,12 +35,13 @@ public class DemoScoreCal {
/** /**
* 整数类型,基于边界值的部分列表的的归一算法 * 整数类型,基于边界值的部分列表的的归一算法
*/ */
public static void demoIntegerPartical() { @Test
Integer[] iArray = {4,1,2}; public void demoIntegerPartical() {
Integer[] iArray = {4, 1, 8};
BigDecimal minScore = new BigDecimal(5); BigDecimal minScore = new BigDecimal(5);
BigDecimal maxScore = new BigDecimal(10); 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()阶段 BigDecimal[] scores = sc.normalize(iArray);// 此处也可以直接使用list参数的重载方法,计算阶段没有任何区别,区别在于new IntegerScoreCalculator()阶段
Arrays.stream(scores).forEach(s -> System.out.println(s)); Arrays.stream(scores).forEach(s -> System.out.println(s));
} }
@ -46,7 +50,7 @@ public class DemoScoreCal {
* double类型归一算法 * double类型归一算法
*/ */
public static void demoDouble() { 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 minScore = new BigDecimal(5);
BigDecimal maxScore = new BigDecimal(10); BigDecimal maxScore = new BigDecimal(10);
@ -61,6 +65,31 @@ public class DemoScoreCal {
System.out.println(normalize2); System.out.println(normalize2);
} }
/**
* 批量计算demo
*/
@Test
public void testBatchCalculate() throws InterruptedException {
//{4,8,1,3,2}
// 每个指标需要单独的分支计算器,因为每个指标的最大最小值是不同的
ScoreCalculator<Integer> sc1 = new IntegerScoreCalculator(1, 8, ScoreConstants.MIN_SCORE, ScoreConstants.MAX_SCORE, Correlation.NEGATIVE);
ScoreCalculator<Integer> sc2 = new IntegerScoreCalculator(1, 8, ScoreConstants.MIN_SCORE, ScoreConstants.MAX_SCORE, Correlation.NEGATIVE);
// 每个指标的信息,包括样本列表,权重,指标标记
IndexInputVO<Integer> index1VO = new IndexInputVO<>("aaa", Arrays.asList(4, 1, 8), new BigDecimal(1), sc1);
IndexInputVO<Integer> index2VO = new IndexInputVO<>("bbb", Arrays.asList(1, 8, 3), new BigDecimal(1), sc2);
List<IndexInputVO> indexInputVOS = Arrays.asList(index1VO, index2VO);
BatchScoreCalculator batchScoreCalculator = new BatchScoreCalculator();
List<IndexOutputVO> result = batchScoreCalculator.exec(indexInputVOS);
System.err.println("--------------------------------");
result.stream().forEach(r -> System.out.println(r));
Thread.sleep(10);
System.err.println("--------------------------------");
}
} }

Loading…
Cancel
Save