Browse Source

提一版

dev
sunyuchao 3 years ago
parent
commit
e5b1df2c4b
  1. 3
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/GridLivelyFormDTO.java
  2. 7
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java
  3. 8
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java
  4. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  5. 10
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/HistoryScoreComputeFormDTO.java
  6. 4
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/result/HistoryScoreComputeResultDTO.java
  7. 6
      epmet-module/data-statistical/data-statistical-server/pom.xml
  8. 40
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/ScreenPyHistoryScoreServiceImpl.java

3
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/GridLivelyFormDTO.java

@ -33,4 +33,7 @@ public class GridLivelyFormDTO implements Serializable {
@NotBlank(message = "结束查询时间不能为空", groups = {Grid.class})
private String endTime;
//数据区分 type=historyScore表示以平阴中间库网格数据为准来计算
private String type = "";
}

7
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java

@ -7,6 +7,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO;
import com.epmet.dataaggre.dto.govorg.result.GridLivelyResultDTO;
import com.epmet.dataaggre.feign.impl.DataAggregatorOpenFeignClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@ -33,4 +34,10 @@ public interface DataAggregatorOpenFeignClient {
*/
@PostMapping("data/aggregator/icuser/listByPolicyRules")
Result<PageData<ResiByPolicyInfoResultDTO>> listByPolicyRules(@RequestBody ResisByPolicyRulesFormDTO input);
/**
* 网格活跃度统计
*/
@PostMapping(value = "data/aggregator/org/gridlively")
Result<List<GridLivelyResultDTO>> grdiLively(@RequestBody GridLivelyFormDTO form);
}

8
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java

@ -7,8 +7,11 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO;
import com.epmet.dataaggre.dto.govorg.result.GridLivelyResultDTO;
import com.epmet.dataaggre.feign.DataAggregatorOpenFeignClient;
import java.util.List;
public class DataAggregatorOpenFeignClientFallback implements DataAggregatorOpenFeignClient {
/**
* 定时任务导出网格活跃统计表
@ -24,4 +27,9 @@ public class DataAggregatorOpenFeignClientFallback implements DataAggregatorOpen
public Result<PageData<ResiByPolicyInfoResultDTO>> listByPolicyRules(ResisByPolicyRulesFormDTO input) {
return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "listByPolicyRules", input);
}
@Override
public Result<List<GridLivelyResultDTO>> grdiLively(GridLivelyFormDTO form) {
return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "grdiLively",form);
}
}

7
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java

@ -707,7 +707,12 @@ public class GovOrgServiceImpl implements GovOrgService {
@Override
public List<GridLivelyResultDTO> grdiLively(GridLivelyFormDTO formDTO) {
//1.查询当前组织的直属下级组织列表及组织下的网格总数
LinkedList<GridLivelyResultDTO> subList = customerAgencyDao.subAgencyListAndGridSumNum(formDTO.getAgencyId());
LinkedList<GridLivelyResultDTO> subList = new LinkedList<>();
if(StringUtils.isNotBlank(formDTO.getType())&&"".equals(formDTO.getType())){
//TODO
}else {
subList = customerAgencyDao.subAgencyListAndGridSumNum(formDTO.getAgencyId());
}
//2.查询直属下级组织下网格在查询时间段内存在例行工作次数的网格,一天一条
List<GridDateIdResultDTO> workList = epmetUserService.getGridDateRoutineWorkList(formDTO);
//3.查询直属下级组织下网格在查询时间段内存在上报事件(直接立项)数的网格,一天一条

10
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/form/HistoryScoreComputeFormDTO.java

@ -27,13 +27,15 @@ public class HistoryScoreComputeFormDTO implements Serializable {
@NotBlank(message = "计算类型不能为空", groups = Compute.class)
private String type;
/**
* 起始时间
* 起始时间yyyyMMdd
*/
private Date startTime;
@NotBlank(message = "起始时间不能为空", groups = {Compute.class})
private String startTime;
/**
* 截止时间
* 终止时间yyyyMMdd
*/
private Date endTime;
@NotBlank(message = "终止时间不能为空", groups = {Compute.class})
private String endTime;
private String customerId;
private String userId;

4
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/result/HistoryScoreComputeResultDTO.java

@ -1,10 +1,8 @@
package com.epmet.dto.indexcollect.result;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class HistoryScoreComputeResultDTO implements Serializable {
@ -19,6 +17,6 @@ public class HistoryScoreComputeResultDTO implements Serializable {
/**
* 分数
*/
private BigDecimal score;
private String score;
}

6
epmet-module/data-statistical/data-statistical-server/pom.xml

@ -148,6 +148,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>data-aggregator-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

40
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/ScreenPyHistoryScoreServiceImpl.java

@ -2,13 +2,19 @@ package com.epmet.service.evaluationindex.indexcoll.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.evaluationindex.indexcoll.ScreenPyHistoryScoreDao;
import com.epmet.dao.evaluationindex.indexcoll.ScreenPyHistoryScoreDetailDao;
import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO;
import com.epmet.dataaggre.dto.govorg.result.GridLivelyResultDTO;
import com.epmet.dataaggre.feign.DataAggregatorOpenFeignClient;
import com.epmet.dto.indexcollect.ScreenPyHistoryScoreDetailDTO;
import com.epmet.dto.indexcollect.form.HistoryScoreComputeFormDTO;
import com.epmet.dto.indexcollect.form.HistoryScoreFormDTO;
@ -28,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
@ -47,6 +54,8 @@ public class ScreenPyHistoryScoreServiceImpl implements ScreenPyHistoryScoreServ
private ScreenPyHistoryScoreDetailServiceImpl screenPyHistoryScoreDetailServiceImpl;
@Autowired
private ScreenPyHistoryScoreDetailDao screenPyHistoryScoreDetailDao;
@Autowired
private DataAggregatorOpenFeignClient dataAggregatorOpenFeignClient;
@Override
@ -130,14 +139,35 @@ public class ScreenPyHistoryScoreServiceImpl implements ScreenPyHistoryScoreServ
@Override
public HistoryScoreComputeResultDTO computeScore(HistoryScoreComputeFormDTO formDTO) {
HistoryScoreComputeResultDTO resultDTO = new HistoryScoreComputeResultDTO();
resultDTO.setAgencyId(formDTO.getAgencyId());
//计算百分比使用,保留小数点后两位
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(NumConstant.TWO);
if ("grid".equals(formDTO.getType())) {
//网格活跃度每周得分=(活跃网格数/本街镇网格数)x100+(正常网格数/本街镇网格数)x80
//本街镇网格数基于本街镇基础网格总数进行计算,不包含专属网格
/**
* 网格活跃度每周得分=活跃网格数/本街镇网格数x100+(正常网格数/本街镇网格数)x80
* 1周内每个末级网格有五天及五天以上上传事件或开展例行工作的为活跃网格有2天及2天以上5天以下上传事件或开展例行工作的为正常运行网格只有1天上传事件或开展例行工作的为僵尸网格
* 本街镇网格数基于本街镇基础网格总数进行计算不包含专属网格
*/
//1.获取街道下时间区间内的网格活跃度数据
GridLivelyFormDTO form = ConvertUtils.sourceToTarget(formDTO, GridLivelyFormDTO.class);
form.setType("historyScore");
Result<List<GridLivelyResultDTO>> result = dataAggregatorOpenFeignClient.grdiLively(form);
if (!result.success() || result.getData() == null) {
throw new RenException("统计街道下网格活跃度数据失败");
}
GridLivelyResultDTO gridLively = result.getData().get(NumConstant.ZERO);
String score = (gridLively.getGridSumNum() <= 0) ? "0" : numberFormat.format(((float) gridLively.getGridLivelyNum() / (float) gridLively.getGridSumNum()) * 100 + (gridLively.getGridOrdinaryNum() / gridLively.getGridSumNum()) * 80);
resultDTO.setScore(score);
} else if ("event".equals(formDTO.getType())) {
//事件赋分每周得分=(活跃网格数/末级网格数)x100+(正常运行网格数/末级网格数)x80
//1周内每个末级网格有五天及五天以上上传事件或开展例行工作的为活跃网格;有2天及2天以上,5天以下上传事件或开展例行工作的为正常运行网格;只有1天上传事件或开展例行工作的为僵尸网格
/**
* 事件赋分= 街道下末级网格上报事件数量乘以对应的每项事件分值的累加和除以街道下有效未离职状态的网格员总数
* 加上街道下末级网格例行工作数量乘以对应的每项事件分值的累加和除以街道下有效未离职状态的网格员总数
*/
//TODO
}
return resultDTO;
}
}

Loading…
Cancel
Save