PipeBurstDataBizService.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 javax.annotation.PostConstruct;
  12. import java.util.List;
  13. /**
  14. * 爆管数据service
  15. *
  16. * @author 欧阳劲驰
  17. * @since 1.0.0
  18. */
  19. @Component
  20. public class PipeBurstDataBizService {
  21. /**
  22. * log
  23. */
  24. private final String mStrClassName;
  25. private final String mBizType;
  26. private final PipeBurstDataPressCurService dataPressCurService;
  27. private final InfluxDbUtil influxDbUtil;
  28. public PipeBurstDataBizService(PipeBurstDataPressCurService dataPressCurService, InfluxDbUtil influxDbUtil) {
  29. mStrClassName = "PipeBurstDataPressCurServiceImpl";
  30. mBizType = LogFlagBusiType.BUSI_PIPE_BURST.toStrValue();
  31. this.dataPressCurService = dataPressCurService;
  32. this.influxDbUtil = influxDbUtil;
  33. }
  34. /**
  35. * 初始化
  36. */
  37. @PostConstruct
  38. public void init() {
  39. migratePressCur();
  40. }
  41. /**
  42. * 迁移压力计
  43. * <p>每小时的05分</p>
  44. */
  45. @Scheduled(cron = "0 5 * * * *")
  46. public void migratePressCur() {
  47. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
  48. , "开始执行压力计数据迁移任务");
  49. long begin = System.currentTimeMillis();
  50. //读取数据
  51. List<PipeBurstDataPressCur> dates = influxDbUtil.query(InfluxdbMetadata.SQL.READ_PRESS_CUR_SQL, PipeBurstDataPressCur.class);
  52. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
  53. , String.format(
  54. "读取InfluxDb成功,数据量:%s"
  55. , dates.size()
  56. )
  57. );
  58. //批量合并
  59. Boolean upserted = dataPressCurService.upsertAll(dates);
  60. long end = System.currentTimeMillis();
  61. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
  62. , String.format(
  63. "结束执行压力计数据迁移任务,迁移状态:%s,用时(毫秒):%d"
  64. , upserted
  65. , (end - begin)
  66. )
  67. );
  68. }
  69. }