Browse Source

groupAgencyDaily方法优化

dev_shibei_match
zxc 4 years ago
parent
commit
bdc99114b7
  1. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java
  2. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java
  3. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java
  4. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java

@ -135,10 +135,15 @@ public class StatsGroupServiceImpl implements StatsGroupService {
if (customerIds.size() != NumConstant.ZERO) { if (customerIds.size() != NumConstant.ZERO) {
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(formDTO); DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(formDTO);
customerIds.forEach(customerId -> { customerIds.forEach(customerId -> {
Boolean status = true;
try { try {
List<DimAgencyDTO> customerAgencyInfos = dimAgencyService.getAgencyInfoByCustomerId(customerId); List<DimAgencyDTO> customerAgencyInfos = dimAgencyService.getAgencyInfoByCustomerId(customerId);
List<AgencyGroupDailyResultDTO> agencyGroupDaily = this.getAgencyGroupDaily(customerAgencyInfos, dimIdBean, customerId); List<List<DimAgencyDTO>> partition = ListUtils.partition(customerAgencyInfos, NumConstant.ONE_HUNDRED);
factGroupAgencyDailyService.insertGroupAgencyDaily(agencyGroupDaily, customerId); for (List<DimAgencyDTO> p : partition) {
List<AgencyGroupDailyResultDTO> agencyGroupDaily = this.getAgencyGroupDaily(p, dimIdBean, customerId);
factGroupAgencyDailyService.insertGroupAgencyDaily(agencyGroupDaily, customerId,status);
status = false;
}
} catch (Exception e) { } catch (Exception e) {
log.error(String.format(GroupConstant.STATS_FAILED_AGENCY_DAILY, customerId, LocalDate.now(), e)); log.error(String.format(GroupConstant.STATS_FAILED_AGENCY_DAILY, customerId, LocalDate.now(), e));
} }

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java

@ -101,7 +101,7 @@ public interface FactGroupAgencyDailyService extends BaseService<FactGroupAgency
* @param agencyList * @param agencyList
* @author zxc * @author zxc
*/ */
void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList,String customerId); void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList,String customerId,Boolean status);
/** /**
* @param * @param

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java

@ -113,12 +113,15 @@ public class FactGroupAgencyDailyServiceImpl extends BaseServiceImpl<FactGroupAg
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList,String customerId) { public void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList,String customerId,Boolean status) {
if (!CollectionUtils.isEmpty(agencyList)){ if (!CollectionUtils.isEmpty(agencyList)){
// true 为当前客户第一回进入,需要删除历史数据
if (status){
Integer delNum; Integer delNum;
do { do {
delNum = baseDao.deleteInsertAgencyDailyByDateId(agencyList.get(NumConstant.ZERO).getDateId(),customerId); delNum = baseDao.deleteInsertAgencyDailyByDateId(agencyList.get(NumConstant.ZERO).getDateId(),customerId);
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND); }while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
}
List<List<AgencyGroupDailyResultDTO>> partition = ListUtils.partition(agencyList, NumConstant.ONE_HUNDRED); List<List<AgencyGroupDailyResultDTO>> partition = ListUtils.partition(agencyList, NumConstant.ONE_HUNDRED);
partition.forEach(p -> { partition.forEach(p -> {
baseDao.insertGroupAgencyDaily(p); baseDao.insertGroupAgencyDaily(p);

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java

@ -120,8 +120,8 @@ public class FactGroupGridDailyServiceImpl extends BaseServiceImpl<FactGroupGrid
return; return;
} }
String dateId = formDto.get(NumConstant.ZERO).getDateId(); String dateId = formDto.get(NumConstant.ZERO).getDateId();
// true 为当前客户第一回进入 // true 为当前客户第一回进入,需要删除历史数据
if (!status){ if (status){
Integer delNum; Integer delNum;
do { do {
delNum = baseDao.deleteInsertDateId(dateId,customerId); delNum = baseDao.deleteInsertDateId(dateId,customerId);

Loading…
Cancel
Save