PipeBurstDataBizService.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.shkpr.service.alambizplugin.bizservice;
  2. import com.global.base.log.LogLevelFlag;
  3. import com.global.base.log.LogPrintMgr;
  4. import com.shkpr.service.alambizplugin.commtools.InfluxDbUtil;
  5. import com.shkpr.service.alambizplugin.constants.InfluxdbMetadata;
  6. import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
  7. import com.shkpr.service.alambizplugin.dbdao.services.intef.PipeBurstDataPressCurService;
  8. import com.shkpr.service.alambizplugin.dto.PipeBurstDataPressCur;
  9. import org.springframework.scheduling.annotation.Scheduled;
  10. import org.springframework.stereotype.Component;
  11. import java.util.List;
  12. /**
  13. * 爆管数据service
  14. *
  15. * @author 欧阳劲驰
  16. * @since 1.0.0
  17. */
  18. @Component
  19. public class PipeBurstDataBizService {
  20. /**
  21. * log
  22. */
  23. private final String mStrClassName;
  24. private final String mBizType;
  25. private final PipeBurstDataPressCurService dataPressCurService;
  26. private final InfluxDbUtil influxDbUtil;
  27. public PipeBurstDataBizService(PipeBurstDataPressCurService dataPressCurService, InfluxDbUtil influxDbUtil) {
  28. mStrClassName = "PipeBurstDataPressCurServiceImpl";
  29. mBizType = LogFlagBusiType.BUSI_PIPE_BURST.toStrValue();
  30. this.dataPressCurService = dataPressCurService;
  31. this.influxDbUtil = influxDbUtil;
  32. migratePressCur();
  33. }
  34. /**
  35. * 迁移压力计
  36. * <p>每小时的05分</p>
  37. */
  38. @Scheduled(cron = "0 5 * * * *")
  39. public void migratePressCur() {
  40. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
  41. , "开始执行压力计数据迁移任务");
  42. long begin = System.currentTimeMillis();
  43. //读取数据
  44. List<PipeBurstDataPressCur> dates = influxDbUtil.query(InfluxdbMetadata.SQL.READ_PRESS_CUR_SQL, PipeBurstDataPressCur.class);
  45. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
  46. , String.format(
  47. "读取InfluxDb成功,数据量:%s"
  48. , dates.size()
  49. )
  50. );
  51. //批量合并
  52. Boolean upserted = dataPressCurService.upsertAll(dates);
  53. long end = System.currentTimeMillis();
  54. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
  55. , String.format(
  56. "结束执行压力计数据迁移任务,迁移状态:%s,用时(毫秒):%d"
  57. , upserted
  58. , (end - begin)
  59. )
  60. );
  61. }
  62. }