Browse Source

这一批都执行完再继续其他的

dev_shibei_match
jianjun 4 years ago
parent
commit
a641e679e1
  1. 238
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java

238
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java

@ -5,9 +5,7 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.form.ExtractOriginFormDTO;
import com.epmet.dto.group.form.GroupTotalFormDTO;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
import com.epmet.dto.stats.topic.form.TopicStatusFormDTO;
import com.epmet.service.StatsGroupService; import com.epmet.service.StatsGroupService;
import com.epmet.service.StatsTopicService; import com.epmet.service.StatsTopicService;
import com.epmet.service.evaluationindex.extract.todata.*; import com.epmet.service.evaluationindex.extract.todata.*;
@ -94,6 +92,7 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService {
} }
private void submitJob(ExtractOriginFormDTO param) { private void submitJob(ExtractOriginFormDTO param) {
CountDownLatch countDownLatch = new CountDownLatch(NumConstant.FIVE);
boolean isRange = StringUtils.isBlank(param.getDateId()); boolean isRange = StringUtils.isBlank(param.getDateId());
List<String> daysBetween = null; List<String> daysBetween = null;
if (isRange) { if (isRange) {
@ -101,139 +100,159 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService {
} }
List<String> finalDaysBetween = daysBetween; List<String> finalDaysBetween = daysBetween;
threadPool.submit(() -> { threadPool.submit(() -> {
CustomerIdAndDateIdFormDTO formDTO = new CustomerIdAndDateIdFormDTO(); try {
formDTO.setCustomerId(param.getCustomerId()); CustomerIdAndDateIdFormDTO formDTO = new CustomerIdAndDateIdFormDTO();
if (!isRange) { formDTO.setCustomerId(param.getCustomerId());
try { if (!isRange) {
formDTO.setDateId(param.getDateId()); try {
dimCustomerPartymemberService.statsPartyMember(formDTO); formDTO.setDateId(param.getDateId());
} 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); 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);
} }
} catch (Exception e) {
log.error("抽取【党员数据】发生异常,参数:" + JSON.toJSONString(param), e);
} }
} finally {
countDownLatch.countDown();
} }
}); });
threadPool.submit(() -> { threadPool.submit(() -> {
ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); try {
if (!isRange) { ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class);
try { if (!isRange) {
groupExtractService.extractGroupData(paramNew); try {
} catch (Exception e) {
log.error("抽取【小组数据】发生异常,参数:" + JSON.toJSONString(paramNew), e);
}
} else {
try {
for (int i = 0; i < finalDaysBetween.size(); i++) {
String dateDimId = finalDaysBetween.get(i);
paramNew.setDateId(dateDimId);
groupExtractService.extractGroupData(paramNew); groupExtractService.extractGroupData(paramNew);
} catch (Exception e) {
log.error("抽取【小组数据】发生异常,参数:" + JSON.toJSONString(paramNew), e);
}
} 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(paramNew), e);
} }
} catch (Exception e) {
log.error("抽取【小组数据】发生异常,参数:" + JSON.toJSONString(paramNew), e);
} }
} finally {
countDownLatch.countDown();
} }
}); });
threadPool.submit(() -> { threadPool.submit(() -> {
log.debug("extractAll start param:{}", JSON.toJSONString(param)); try {
ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); log.debug("extractAll start param:{}", JSON.toJSONString(param));
if (!isRange) { ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class);
try { if (!isRange) {
factOriginTopicMainDailyService.topicCleaning(paramNew); try {
} catch (Exception e) {
log.error("抽取【话题数据】发生异常,参数:" + JSON.toJSONString(paramNew), e);
}
} else {
try {
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); factOriginTopicMainDailyService.topicCleaning(paramNew);
} catch (Exception e) {
log.error("抽取【话题数据】发生异常,参数:" + JSON.toJSONString(paramNew), e);
}
} else {
try {
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(paramNew), e);
} }
} catch (Exception e) {
log.error("抽取【话题数据】发生异常,参数:" + JSON.toJSONString(paramNew), e);
} }
log.debug("extractAll end param:{}", JSON.toJSONString(paramNew));
} finally {
countDownLatch.countDown();
} }
log.debug("extractAll end param:{}", JSON.toJSONString(paramNew));
}); });
threadPool.submit(() -> { threadPool.submit(() -> {
ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); try {
if (!isRange) { ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class);
try { if (!isRange) {
issueExtractService.issueExtractMain(paramNew); try {
} catch (Exception e) {
log.error("抽取【议题数据主表】发生异常,参数:" + JSON.toJSONString(paramNew), e);
}
try {
issueExtractService.issueExtractLog(paramNew);
} catch (Exception e) {
log.error("抽取【议题数据附表】发生异常,参数:" + JSON.toJSONString(paramNew), e);
}
} else {
try {
for (int i = 0; i < finalDaysBetween.size(); i++) {
String dateDimId = finalDaysBetween.get(i);
paramNew.setDateId(dateDimId);
issueExtractService.issueExtractMain(paramNew); issueExtractService.issueExtractMain(paramNew);
} catch (Exception e) {
log.error("抽取【议题数据主表】发生异常,参数:" + JSON.toJSONString(paramNew), e);
} }
} catch (Exception e) { try {
log.error("抽取【议题数据主表】发生异常,参数:" + JSON.toJSONString(paramNew), e);
}
try {
for (int i = 0; i < finalDaysBetween.size(); i++) {
String dateDimId = finalDaysBetween.get(i);
paramNew.setDateId(dateDimId);
issueExtractService.issueExtractLog(paramNew); issueExtractService.issueExtractLog(paramNew);
} catch (Exception e) {
log.error("抽取【议题数据附表】发生异常,参数:" + JSON.toJSONString(paramNew), e);
}
} else {
try {
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(paramNew), e);
}
try {
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(paramNew), e);
} }
} catch (Exception e) {
log.error("抽取【议题数据附表】发生异常,参数:" + JSON.toJSONString(paramNew), e);
} }
} finally {
countDownLatch.countDown();
} }
}); });
//小组活动 //小组活动
threadPool.submit(() -> { threadPool.submit(() -> {
ExtractOriginFormDTO extractOriginFormDTO = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); try {
if (!isRange) { ExtractOriginFormDTO extractOriginFormDTO = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class);
//截止到当前dateId if (!isRange) {
try { //截止到当前dateId
factGroupActDailyService.extractGridGroupActDaily(extractOriginFormDTO.getCustomerId(), extractOriginFormDTO.getDateId()); try {
} catch (Exception e) {
log.error("抽取【fact_group_act_daily】发生异常,参数:" + JSON.toJSONString(extractOriginFormDTO), e);
}
try {
factGroupActDailyService.extractAgencyGroupActDaily(extractOriginFormDTO.getCustomerId(), extractOriginFormDTO.getDateId());
} catch (Exception e) {
log.error("抽取【fact_group_act_daily】发生异常,参数:" + JSON.toJSONString(extractOriginFormDTO), e);
}
} else {
//参数指定日期内,比如startDate=20210501,endDate=20210513;依次计算截止到20210501的数据.....截止到20210513的数据
try {
for (int i = 0; i < finalDaysBetween.size(); i++) {
String dateDimId = finalDaysBetween.get(i);
extractOriginFormDTO.setDateId(dateDimId);
factGroupActDailyService.extractGridGroupActDaily(extractOriginFormDTO.getCustomerId(), extractOriginFormDTO.getDateId()); factGroupActDailyService.extractGridGroupActDaily(extractOriginFormDTO.getCustomerId(), extractOriginFormDTO.getDateId());
} catch (Exception e) {
log.error("抽取【fact_group_act_daily】发生异常,参数:" + JSON.toJSONString(extractOriginFormDTO), e);
} }
} catch (Exception e) { try {
log.error("抽取【fact_group_act_daily】发生异常,参数:" + JSON.toJSONString(extractOriginFormDTO), e);
}
try {
for (int i = 0; i < finalDaysBetween.size(); i++) {
String dateDimId = finalDaysBetween.get(i);
extractOriginFormDTO.setDateId(dateDimId);
factGroupActDailyService.extractAgencyGroupActDaily(extractOriginFormDTO.getCustomerId(), extractOriginFormDTO.getDateId()); factGroupActDailyService.extractAgencyGroupActDaily(extractOriginFormDTO.getCustomerId(), extractOriginFormDTO.getDateId());
} catch (Exception e) {
log.error("抽取【fact_group_act_daily】发生异常,参数:" + JSON.toJSONString(extractOriginFormDTO), e);
}
} else {
//参数指定日期内,比如startDate=20210501,endDate=20210513;依次计算截止到20210501的数据.....截止到20210513的数据
try {
for (int i = 0; i < finalDaysBetween.size(); i++) {
String dateDimId = finalDaysBetween.get(i);
extractOriginFormDTO.setDateId(dateDimId);
factGroupActDailyService.extractGridGroupActDaily(extractOriginFormDTO.getCustomerId(), extractOriginFormDTO.getDateId());
}
} catch (Exception e) {
log.error("抽取【fact_group_act_daily】发生异常,参数:" + JSON.toJSONString(extractOriginFormDTO), e);
}
try {
for (int i = 0; i < finalDaysBetween.size(); i++) {
String dateDimId = finalDaysBetween.get(i);
extractOriginFormDTO.setDateId(dateDimId);
factGroupActDailyService.extractAgencyGroupActDaily(extractOriginFormDTO.getCustomerId(), extractOriginFormDTO.getDateId());
}
} catch (Exception e) {
log.error("抽取【fact_group_act_daily】发生异常,参数:" + JSON.toJSONString(extractOriginFormDTO), e);
} }
} catch (Exception e) {
log.error("抽取【fact_group_act_daily】发生异常,参数:" + JSON.toJSONString(extractOriginFormDTO), e);
} }
} finally {
countDownLatch.countDown();
} }
}); });
@ -297,7 +316,18 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService {
} }
});*/ });*/
submitProjectRelationData(param, finalDaysBetween); Future<?> future = submitProjectRelationData(param, finalDaysBetween);
try {
future.get();
} catch (Exception e) {
log.error("submitProjectRelationData exception:{}",e);
}
try {
countDownLatch.await();
log.info("extractAll submitJob execute end,param:{}",JSON.toJSONString(param));
} catch (InterruptedException e) {
log.error("extractAll daily InterruptedException:{}", e);
}
} }
@Override @Override

Loading…
Cancel
Save