|
|
@ -2,9 +2,12 @@ package com.epmet.service.evaluationindex.extract.todata.impl; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.epmet.commons.tools.constant.NumConstant; |
|
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
|
import com.epmet.commons.tools.utils.DateUtils; |
|
|
|
import com.epmet.dto.extract.form.ExtractOriginFormDTO; |
|
|
|
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; |
|
|
|
import com.epmet.service.evaluationindex.extract.todata.*; |
|
|
|
import com.epmet.service.stats.DimCustomerPartymemberService; |
|
|
|
import com.epmet.service.stats.DimCustomerService; |
|
|
|
import com.epmet.util.DimIdGenerator; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
@ -41,12 +44,14 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { |
|
|
|
private DimCustomerService dimCustomerService; |
|
|
|
@Autowired |
|
|
|
private GroupExtractService groupExtractService; |
|
|
|
@Autowired |
|
|
|
private DimCustomerPartymemberService dimCustomerPartymemberService; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void extractAll(ExtractOriginFormDTO extractOriginFormDTO) { |
|
|
|
String customerId = extractOriginFormDTO.getCustomerId(); |
|
|
|
if (StringUtils.isBlank(extractOriginFormDTO.getStartDate())||StringUtils.isBlank(extractOriginFormDTO.getEndDate())) { |
|
|
|
if (StringUtils.isBlank(extractOriginFormDTO.getDateId()) && (StringUtils.isBlank(extractOriginFormDTO.getStartDate()) && StringUtils.isBlank(extractOriginFormDTO.getEndDate()))) { |
|
|
|
//如果没有设置开始日期、结束日期,默认查询昨天
|
|
|
|
extractOriginFormDTO.setDateId(DimIdGenerator.getDateDimId(DateUtils.addDateDays(new Date(), -1))); |
|
|
|
} |
|
|
@ -77,116 +82,142 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { |
|
|
|
} |
|
|
|
|
|
|
|
private void submitJob(ExtractOriginFormDTO param) { |
|
|
|
boolean isRange = StringUtils.isBlank(param.getDateId()) ? true : false; |
|
|
|
List<String> daysBetween = null; |
|
|
|
if (isRange) { |
|
|
|
daysBetween = DateUtils.getDaysBetween(param.getStartDate(), param.getEndDate()); |
|
|
|
} |
|
|
|
List<String> finalDaysBetween = daysBetween; |
|
|
|
threadPool.submit(() -> { |
|
|
|
CustomerIdAndDateIdFormDTO formDTO = new CustomerIdAndDateIdFormDTO(); |
|
|
|
formDTO.setCustomerId(param.getCustomerId()); |
|
|
|
if (!isRange) { |
|
|
|
try { |
|
|
|
formDTO.setDateId(param.getDateId()); |
|
|
|
dimCustomerPartymemberService.statsPartyMember(formDTO); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【党员数据】发生异常,参数:" + JSON.toJSONString(formDTO), e); |
|
|
|
} |
|
|
|
} else { |
|
|
|
try { |
|
|
|
for (int i = 0; i < finalDaysBetween.size(); i++) { |
|
|
|
String dateDimId = finalDaysBetween.get(i); |
|
|
|
formDTO.setDateId(dateDimId); |
|
|
|
dimCustomerPartymemberService.statsPartyMember(formDTO); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【党员数据】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
threadPool.submit(() -> { |
|
|
|
if(StringUtils.isNotBlank(param.getDateId())){ |
|
|
|
ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); |
|
|
|
if (!isRange) { |
|
|
|
try { |
|
|
|
groupExtractService.extractGroupData(param); |
|
|
|
groupExtractService.extractGroupData(paramNew); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【小组数据】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【小组数据】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
}else if(StringUtils.isNotBlank(param.getStartDate()) && StringUtils.isNotBlank(param.getEndDate())){ |
|
|
|
try{ |
|
|
|
List<String> daysBetween = DateUtils.getDaysBetween(param.getStartDate(), param.getEndDate()); |
|
|
|
for (int i = 0; i < daysBetween.size(); i++) { |
|
|
|
String dateDimId = daysBetween.get(i); |
|
|
|
param.setDateId(dateDimId); |
|
|
|
groupExtractService.extractGroupData(param); |
|
|
|
} else { |
|
|
|
try { |
|
|
|
for (int i = 0; i < finalDaysBetween.size(); i++) { |
|
|
|
String dateDimId = finalDaysBetween.get(i); |
|
|
|
paramNew.setDateId(dateDimId); |
|
|
|
groupExtractService.extractGroupData(paramNew); |
|
|
|
} |
|
|
|
}catch(Exception e){ |
|
|
|
log.error("抽取【小组数据】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【小组数据】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
threadPool.submit(() -> { |
|
|
|
log.info("extractAll start param:{}", JSON.toJSONString(param)); |
|
|
|
if(StringUtils.isNotBlank(param.getDateId())){ |
|
|
|
log.debug("extractAll start param:{}", JSON.toJSONString(param)); |
|
|
|
ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); |
|
|
|
if (!isRange) { |
|
|
|
try { |
|
|
|
factOriginTopicMainDailyService.topicCleaning(param); |
|
|
|
factOriginTopicMainDailyService.topicCleaning(paramNew); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【话题数据】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【话题数据】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
}else if(StringUtils.isNotBlank(param.getStartDate()) && StringUtils.isNotBlank(param.getEndDate())){ |
|
|
|
} else { |
|
|
|
try { |
|
|
|
List<String> daysBetween = DateUtils.getDaysBetween(param.getStartDate(), param.getEndDate()); |
|
|
|
for (int i = 0; i < daysBetween.size(); i++) { |
|
|
|
String dateDimId = daysBetween.get(i); |
|
|
|
param.setDateId(dateDimId); |
|
|
|
log.info("extractAll cal param:{}", JSON.toJSONString(param)); |
|
|
|
factOriginTopicMainDailyService.topicCleaning(param); |
|
|
|
for (int i = 0; i < finalDaysBetween.size(); i++) { |
|
|
|
String dateDimId = finalDaysBetween.get(i); |
|
|
|
paramNew.setDateId(dateDimId); |
|
|
|
log.info("extractAll cal param:{}", JSON.toJSONString(paramNew)); |
|
|
|
factOriginTopicMainDailyService.topicCleaning(paramNew); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【话题数据】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【话题数据】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
} |
|
|
|
log.info("extractAll end param:{}", JSON.toJSONString(param)); |
|
|
|
log.info("extractAll end param:{}", JSON.toJSONString(paramNew)); |
|
|
|
}); |
|
|
|
threadPool.submit(() -> { |
|
|
|
if(StringUtils.isNotBlank(param.getDateId())){ |
|
|
|
ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); |
|
|
|
if (!isRange) { |
|
|
|
try { |
|
|
|
issueExtractService.issueExtractMain(param); |
|
|
|
issueExtractService.issueExtractMain(paramNew); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【议题数据主表】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【议题数据主表】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
try { |
|
|
|
issueExtractService.issueExtractLog(param); |
|
|
|
issueExtractService.issueExtractLog(paramNew); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【议题数据附表】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【议题数据附表】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
}else if(StringUtils.isNotBlank(param.getStartDate()) && StringUtils.isNotBlank(param.getEndDate())){ |
|
|
|
} else { |
|
|
|
try { |
|
|
|
List<String> daysBetween = DateUtils.getDaysBetween(param.getStartDate(), param.getEndDate()); |
|
|
|
for (int i = 0; i < daysBetween.size(); i++) { |
|
|
|
String dateDimId = daysBetween.get(i); |
|
|
|
param.setDateId(dateDimId); |
|
|
|
issueExtractService.issueExtractMain(param); |
|
|
|
for (int i = 0; i < finalDaysBetween.size(); i++) { |
|
|
|
String dateDimId = finalDaysBetween.get(i); |
|
|
|
paramNew.setDateId(dateDimId); |
|
|
|
issueExtractService.issueExtractMain(paramNew); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【议题数据主表】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【议题数据主表】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
try { |
|
|
|
List<String> daysBetween = DateUtils.getDaysBetween(param.getStartDate(), param.getEndDate()); |
|
|
|
for (int i = 0; i < daysBetween.size(); i++) { |
|
|
|
String dateDimId = daysBetween.get(i); |
|
|
|
param.setDateId(dateDimId); |
|
|
|
issueExtractService.issueExtractLog(param); |
|
|
|
for (int i = 0; i < finalDaysBetween.size(); i++) { |
|
|
|
String dateDimId = finalDaysBetween.get(i); |
|
|
|
paramNew.setDateId(dateDimId); |
|
|
|
issueExtractService.issueExtractLog(paramNew); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【议题数据附表】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【议题数据附表】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
threadPool.submit(() -> { |
|
|
|
if(StringUtils.isNotBlank(param.getDateId())){ |
|
|
|
ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); |
|
|
|
if (!isRange) { |
|
|
|
try { |
|
|
|
projectExtractService.saveOriginProjectDaily(param); |
|
|
|
projectExtractService.saveOriginProjectDaily(paramNew); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
try { |
|
|
|
projectExtractService.extractProjectPeriodData(param); |
|
|
|
projectExtractService.extractProjectPeriodData(paramNew); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
}else if(StringUtils.isNotBlank(param.getStartDate()) && StringUtils.isNotBlank(param.getEndDate())){ |
|
|
|
} else { |
|
|
|
try { |
|
|
|
List<String> daysBetween = DateUtils.getDaysBetween(param.getStartDate(), param.getEndDate()); |
|
|
|
for (int i = 0; i < daysBetween.size(); i++) { |
|
|
|
String dateDimId = daysBetween.get(i); |
|
|
|
param.setDateId(dateDimId); |
|
|
|
projectExtractService.saveOriginProjectDaily(param); |
|
|
|
for (int i = 0; i < finalDaysBetween.size(); i++) { |
|
|
|
String dateDimId = finalDaysBetween.get(i); |
|
|
|
paramNew.setDateId(dateDimId); |
|
|
|
projectExtractService.saveOriginProjectDaily(paramNew); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
try { |
|
|
|
List<String> daysBetween = DateUtils.getDaysBetween(param.getStartDate(), param.getEndDate()); |
|
|
|
for (int i = 0; i < daysBetween.size(); i++) { |
|
|
|
String dateDimId = daysBetween.get(i); |
|
|
|
param.setDateId(dateDimId); |
|
|
|
projectExtractService.extractProjectPeriodData(param); |
|
|
|
for (int i = 0; i < finalDaysBetween.size(); i++) { |
|
|
|
String dateDimId = finalDaysBetween.get(i); |
|
|
|
paramNew.setDateId(dateDimId); |
|
|
|
projectExtractService.extractProjectPeriodData(paramNew); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(param), e); |
|
|
|
log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(paramNew), e); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|