diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/IndexStatisticsFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/IndexStatisticsFormDTO.java new file mode 100644 index 0000000000..dd63b1fea7 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/IndexStatisticsFormDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.indexcal; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/3/3 下午4:32 + */ +@Data +public class IndexStatisticsFormDTO implements Serializable { + + private static final long serialVersionUID = 1127307237675056558L; + + private String customerId; + + private String monthId; + + private String startMonth; + + private String endMonth; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java index 26380abda1..58bd3ab491 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java @@ -10,6 +10,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.CalculateStatus; import com.epmet.dto.indexcal.CalculateCommonFormDTO; +import com.epmet.dto.indexcal.IndexStatisticsFormDTO; import com.epmet.model.CalculateFlagModel; import com.epmet.service.evaluationindex.indexcal.CpcIndexCalculateService; import com.epmet.service.evaluationindex.indexcal.IndexCalculateService; @@ -335,4 +336,10 @@ public class IndexCalculateController { factIndexCollectService.insertDeptGovrnAbility(formDTO, externalAppRequestParam.getCustomerId()); return new Result(); }*/ + + @PostMapping("indexstatistics") + public Result indexStatistics(@RequestBody IndexStatisticsFormDTO formDTO){ + indexCalculateService.indexStatistics(formDTO); + return new Result(); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/IndexCalculateService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/IndexCalculateService.java index 7866473d6f..4e7c074a57 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/IndexCalculateService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/IndexCalculateService.java @@ -1,6 +1,7 @@ package com.epmet.service.evaluationindex.indexcal; import com.epmet.dto.indexcal.CalculateCommonFormDTO; +import com.epmet.dto.indexcal.IndexStatisticsFormDTO; /** * 指标计算service @@ -16,4 +17,6 @@ public interface IndexCalculateService { * @return */ Boolean indexCalculate(CalculateCommonFormDTO formDTO); + + Boolean indexStatistics(IndexStatisticsFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateServiceImpl.java index db48bb1214..72e3369716 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateServiceImpl.java @@ -7,11 +7,14 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.evaluationindex.screen.ScreenCustomerAgencyDao; +import com.epmet.dto.extract.form.ExtractIndexFormDTO; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.dto.indexcal.CustomerSubInfoDTO; +import com.epmet.dto.indexcal.IndexStatisticsFormDTO; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.redis.IndexCalRedis; import com.epmet.service.crm.CustomerRelationService; +import com.epmet.service.evaluationindex.extract.dataToIndex.IndexOriginExtractService; import com.epmet.service.evaluationindex.indexcal.*; import com.epmet.service.evaluationindex.indexcoll.FactIndexCollectService; import com.epmet.util.DimIdGenerator; @@ -55,6 +58,8 @@ public class IndexCalculateServiceImpl implements IndexCalculateService { private ScreenCustomerAgencyDao screenCustomerAgencyDao; @Autowired private CustomerRelationService customerRelationService; + @Autowired + private IndexOriginExtractService indexOriginExtractService; @Override public Boolean indexCalculate(CalculateCommonFormDTO formDTO) { @@ -203,4 +208,36 @@ public class IndexCalculateServiceImpl implements IndexCalculateService { private Map getCustomerInfoMap(List customerIds) { return customerRelationService.getCustomerInfoMap(customerIds); } + + @Override + public Boolean indexStatistics(IndexStatisticsFormDTO formDTO) { + List customerIds = new ArrayList<>(); + if (StringUtils.isEmpty(formDTO.getCustomerId())){ + Result> externalCustomerIds = epmetCommonServiceOpenFeignClient.getExternalCustomerIds(); + if (!externalCustomerIds.success()){ + log.error("indexCalculate epmetCommonServiceOpenFeignClient.getExternalCustomerIds return fail"); + return false; + } + customerIds = externalCustomerIds.getData(); + }else customerIds.add(formDTO.getCustomerId()); + List monthIds = new ArrayList<>(); + if (StringUtils.isNotEmpty(formDTO.getStartMonth()) && StringUtils.isNotEmpty(formDTO.getEndMonth())){ + monthIds = DateUtils.getMonthBetween(formDTO.getStartMonth(),formDTO.getEndMonth()); + }else { + if (StringUtils.isEmpty(formDTO.getMonthId())){ + // 默认上月 + monthIds.add(DimIdGenerator.getMonthDimId(DateUtils.addDateMonths(new Date(), -1))); + }else monthIds.add(formDTO.getMonthId()); + } + List finalMonthIds = monthIds; + customerIds.forEach(customerId -> { + finalMonthIds.forEach(monthId -> { + CalculateCommonFormDTO extractFormDTO = new CalculateCommonFormDTO(); + extractFormDTO.setCustomerId(customerId); + extractFormDTO.setMonthId(monthId); + this.indexCalculate(extractFormDTO); + }); + }); + return null; + } }