Browse Source

指标计算开新方法【可多月一起计算】

dev_shibei_match
zxc 5 years ago
parent
commit
861f90cee3
  1. 23
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcal/IndexStatisticsFormDTO.java
  2. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java
  3. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/IndexCalculateService.java
  4. 37
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateServiceImpl.java

23
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;
}

7
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.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.CalculateStatus; import com.epmet.constant.CalculateStatus;
import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.dto.indexcal.CalculateCommonFormDTO;
import com.epmet.dto.indexcal.IndexStatisticsFormDTO;
import com.epmet.model.CalculateFlagModel; import com.epmet.model.CalculateFlagModel;
import com.epmet.service.evaluationindex.indexcal.CpcIndexCalculateService; import com.epmet.service.evaluationindex.indexcal.CpcIndexCalculateService;
import com.epmet.service.evaluationindex.indexcal.IndexCalculateService; import com.epmet.service.evaluationindex.indexcal.IndexCalculateService;
@ -335,4 +336,10 @@ public class IndexCalculateController {
factIndexCollectService.insertDeptGovrnAbility(formDTO, externalAppRequestParam.getCustomerId()); factIndexCollectService.insertDeptGovrnAbility(formDTO, externalAppRequestParam.getCustomerId());
return new Result(); return new Result();
}*/ }*/
@PostMapping("indexstatistics")
public Result indexStatistics(@RequestBody IndexStatisticsFormDTO formDTO){
indexCalculateService.indexStatistics(formDTO);
return new Result();
}
} }

3
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; package com.epmet.service.evaluationindex.indexcal;
import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.dto.indexcal.CalculateCommonFormDTO;
import com.epmet.dto.indexcal.IndexStatisticsFormDTO;
/** /**
* 指标计算service * 指标计算service
@ -16,4 +17,6 @@ public interface IndexCalculateService {
* @return * @return
*/ */
Boolean indexCalculate(CalculateCommonFormDTO formDTO); Boolean indexCalculate(CalculateCommonFormDTO formDTO);
Boolean indexStatistics(IndexStatisticsFormDTO formDTO);
} }

37
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.commons.tools.utils.Result;
import com.epmet.constant.DataSourceConstant; import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.evaluationindex.screen.ScreenCustomerAgencyDao; 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.CalculateCommonFormDTO;
import com.epmet.dto.indexcal.CustomerSubInfoDTO; import com.epmet.dto.indexcal.CustomerSubInfoDTO;
import com.epmet.dto.indexcal.IndexStatisticsFormDTO;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.redis.IndexCalRedis; import com.epmet.redis.IndexCalRedis;
import com.epmet.service.crm.CustomerRelationService; 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.indexcal.*;
import com.epmet.service.evaluationindex.indexcoll.FactIndexCollectService; import com.epmet.service.evaluationindex.indexcoll.FactIndexCollectService;
import com.epmet.util.DimIdGenerator; import com.epmet.util.DimIdGenerator;
@ -55,6 +58,8 @@ public class IndexCalculateServiceImpl implements IndexCalculateService {
private ScreenCustomerAgencyDao screenCustomerAgencyDao; private ScreenCustomerAgencyDao screenCustomerAgencyDao;
@Autowired @Autowired
private CustomerRelationService customerRelationService; private CustomerRelationService customerRelationService;
@Autowired
private IndexOriginExtractService indexOriginExtractService;
@Override @Override
public Boolean indexCalculate(CalculateCommonFormDTO formDTO) { public Boolean indexCalculate(CalculateCommonFormDTO formDTO) {
@ -203,4 +208,36 @@ public class IndexCalculateServiceImpl implements IndexCalculateService {
private Map<String, CustomerSubInfoDTO> getCustomerInfoMap(List<String> customerIds) { private Map<String, CustomerSubInfoDTO> getCustomerInfoMap(List<String> customerIds) {
return customerRelationService.getCustomerInfoMap(customerIds); return customerRelationService.getCustomerInfoMap(customerIds);
} }
@Override
public Boolean indexStatistics(IndexStatisticsFormDTO formDTO) {
List<String> customerIds = new ArrayList<>();
if (StringUtils.isEmpty(formDTO.getCustomerId())){
Result<List<String>> externalCustomerIds = epmetCommonServiceOpenFeignClient.getExternalCustomerIds();
if (!externalCustomerIds.success()){
log.error("indexCalculate epmetCommonServiceOpenFeignClient.getExternalCustomerIds return fail");
return false;
}
customerIds = externalCustomerIds.getData();
}else customerIds.add(formDTO.getCustomerId());
List<String> 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<String> finalMonthIds = monthIds;
customerIds.forEach(customerId -> {
finalMonthIds.forEach(monthId -> {
CalculateCommonFormDTO extractFormDTO = new CalculateCommonFormDTO();
extractFormDTO.setCustomerId(customerId);
extractFormDTO.setMonthId(monthId);
this.indexCalculate(extractFormDTO);
});
});
return null;
}
} }

Loading…
Cancel
Save