diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java index 649391be59..f35bfe05ff 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginExtractServiceImpl.java +++ b/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.DateUtils; 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.topic.form.TopicStatusFormDTO; import com.epmet.service.StatsGroupService; import com.epmet.service.StatsTopicService; import com.epmet.service.evaluationindex.extract.todata.*; @@ -94,6 +92,7 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { } private void submitJob(ExtractOriginFormDTO param) { + CountDownLatch countDownLatch = new CountDownLatch(NumConstant.FIVE); boolean isRange = StringUtils.isBlank(param.getDateId()); List daysBetween = null; if (isRange) { @@ -101,139 +100,159 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { } List 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); + try { + 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); } - } catch (Exception e) { - log.error("抽取【党员数据】发生异常,参数:" + JSON.toJSONString(param), e); } + } finally { + countDownLatch.countDown(); } }); threadPool.submit(() -> { - ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); - if (!isRange) { - try { - 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); + try { + ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); + if (!isRange) { + try { 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(() -> { - log.debug("extractAll start param:{}", JSON.toJSONString(param)); - ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); - if (!isRange) { - try { - 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)); + try { + log.debug("extractAll start param:{}", JSON.toJSONString(param)); + ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); + if (!isRange) { + try { 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(() -> { - ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); - if (!isRange) { - try { - issueExtractService.issueExtractMain(paramNew); - } 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); + try { + ExtractOriginFormDTO paramNew = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); + if (!isRange) { + try { issueExtractService.issueExtractMain(paramNew); + } catch (Exception e) { + log.error("抽取【议题数据主表】发生异常,参数:" + JSON.toJSONString(paramNew), e); } - } 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); + 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); + } + } 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(() -> { - ExtractOriginFormDTO extractOriginFormDTO = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); - if (!isRange) { - //截止到当前dateId - try { - factGroupActDailyService.extractGridGroupActDaily(extractOriginFormDTO.getCustomerId(), extractOriginFormDTO.getDateId()); - } 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); + try { + ExtractOriginFormDTO extractOriginFormDTO = ConvertUtils.sourceToTarget(param, ExtractOriginFormDTO.class); + if (!isRange) { + //截止到当前dateId + try { factGroupActDailyService.extractGridGroupActDaily(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); - } - try { - for (int i = 0; i < finalDaysBetween.size(); i++) { - String dateDimId = finalDaysBetween.get(i); - extractOriginFormDTO.setDateId(dateDimId); + 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()); + } + } 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