소스 검색

add meterprocess mq gen mtn mpoint sched query

Adrian Viesca 7 년 전
부모
커밋
4b1dd117e2
1개의 변경된 파일45개의 추가작업 그리고 0개의 파일을 삭제
  1. 45 0
      crss-mq-computation/crss-mq-computation.yml

+ 45 - 0
crss-mq-computation/crss-mq-computation.yml

@@ -102,7 +102,52 @@ sftp:
     workingDirectory: /upload/mq
     privateKey:
 
+crss:
+  meterprocess:
+    mq:
+      genMtnMpointSchedMapQuery: >
+        insert into %s (mtn, sein, reading_datetime, group_schedule_id, validated_id, version, CREATED_DATE)
+        select
+          temp_sched_map.mtn_name,
+          temp_sched_map.sein,
+          temp_sched_map.reading_datetime,
+          temp_sched_map.group_schedule_id,
+          temp_sched_map.validated_id,
+          %d,
+          now()
+        from (
+               SELECT
+                 DISTINCT  on (cm.mtn_name, mpoint.sein, reading_datetime, gs.id)
+                 cm.mtn_name,
+                 mpoint.sein,
+                 gen_date AS reading_datetime,
+                 gs.id    AS group_schedule_id,
+                 rank() OVER (PARTITION BY cm.mtn_name ORDER BY gs.eff_start_date DESC ) as rank
+                ,
 
+                 (
+                     select
+                       DISTINCT first_value(val.id) OVER (PARTITION BY val.sein, val.reading_datetime ORDER BY val.created_date_time DESC )
+                     from txn_meter_validated_%s val
+                     where val.sein = mpoint.sein
+                           and val.reading_datetime = gen_date
+                           and val.meter_type = 'MIRF_MT_WESM'
+                   )
+                   as validated_id
+               FROM cfg_mtn_grp_sched gs
+                 JOIN cfg_mtn_grp mg
+                   ON mg.mtn_grp_id = gs.mtn_grp_id
+                 JOIN cfg_mtn_grp_x_cfg_mtn gxm
+                   ON gxm.mtn_grp_id = mg.mtn_grp_id
+                 JOIN cfg_mtn cm
+                   ON cm.mtn_cfg_id = gxm.mtn_cfg_id
+                 LEFT JOIN cfg_mtn_mpoint mpoint
+                   ON mpoint.mtn_cfg_id = cm.mtn_cfg_id
+                 ,
+                     generate_series('%s', '%s', INTERVAL '%d minutes') gen_date
+               WHERE gs.eff_start_date <= gen_date
+                     AND gs.status = 'ACTIVE'
+             ) temp_sched_map where temp_sched_map.rank = 1 and temp_sched_map.validated_id is not null;
 ---
 spring:
   profiles: dailyMq