浏览代码

[140817] Impl for mq data versioning.

Chris Lim 9 年之前
父节点
当前提交
041e30979a
共有 2 个文件被更改,包括 82 次插入16 次删除
  1. 36 8
      crss-metering/crss-metering-dev.yml
  2. 46 8
      crss-metering/crss-metering.yml

+ 36 - 8
crss-metering/crss-metering-dev.yml

@@ -67,14 +67,42 @@ mq:
         INSERT INTO TXN_MQ_MANIFEST_FILE (file_id, header_id, transaction_id, filename, filetype,
         filesize, checksum, upload_datetime) VALUES (NEXTVAL('MQ_MANIFEST_FILE_SEQ'), ?, ?, ?, ?, ?, ?, ?)
   meter:
-    daily: >
-      INSERT INTO TXN_METER_DATA_DAILY VALUES(
-      NEXTVAL('MQ_DATA_DAILY_SEQ'), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
-      ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-    monthly: >
-      INSERT INTO TXN_METER_DATA_MONTHLY VALUES(
-      NEXTVAL('MQ_DATA_MONTHLY_SEQ'), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
-      ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+    daily:
+      insert: >
+        INSERT INTO TXN_METER_DATA_DAILY VALUES (
+          NEXTVAL('MQ_DATA_DAILY_SEQ'), :fileID, :sein, :interval, :readingDateTime,
+          :kwd, :kwdChannelStatus, :kwdIntervalStatus,
+          :kwhd, :kwhdChannelStatus, :kwhdIntervalStatus,
+          :kvarhd, :kvarhdChannelStatus, :kvarhdIntervalStatus,
+          :kwr, :kwrChannelStatus, :kwrIntervalStatus,
+          :kwhr, :kwhrChannelStatus, :kwhrIntervalStatus,
+          :kvarhr, :kvarhrChannelStatus, :kvarhrIntervalStatus,
+          :van, :vanChannelStatus, :vanIntervalStatus,
+          :vbn, :vbnChannelStatus, :vbnIntervalStatus,
+          :vcn, :vcnChannelStatus, :vcnIntervalStatus,
+          :ian, :ianChannelStatus, :ianIntervalStatus,
+          :ibn, :ibnChannelStatus, :ibnIntervalStatus,
+          :icn, :icnChannelStatus, :icnIntervalStatus,
+          :pf, :pfChannelStatus, :pfIntervalStatus,
+          :estimationFlag, :version, :mspShortName, :uploadType)
+    monthly:
+      insert: >
+        INSERT INTO TXN_METER_DATA_MONTHLY VALUES (
+          NEXTVAL('MQ_DATA_MONTHLY_SEQ'), :fileID, :sein, :interval, :readingDateTime,
+          :kwd, :kwdChannelStatus, :kwdIntervalStatus,
+          :kwhd, :kwhdChannelStatus, :kwhdIntervalStatus,
+          :kvarhd, :kvarhdChannelStatus, :kvarhdIntervalStatus,
+          :kwr, :kwrChannelStatus, :kwrIntervalStatus,
+          :kwhr, :kwhrChannelStatus, :kwhrIntervalStatus,
+          :kvarhr, :kvarhrChannelStatus, :kvarhrIntervalStatus,
+          :van, :vanChannelStatus, :vanIntervalStatus,
+          :vbn, :vbnChannelStatus, :vbnIntervalStatus,
+          :vcn, :vcnChannelStatus, :vcnIntervalStatus,
+          :ian, :ianChannelStatus, :ianIntervalStatus,
+          :ibn, :ibnChannelStatus, :ibnIntervalStatus,
+          :icn, :icnChannelStatus, :icnIntervalStatus,
+          :pf, :pfChannelStatus, :pfIntervalStatus,
+          :estimationFlag, :version, :mspShortName, :uploadType)
 bcq:
   manifest: >
     INSERT INTO TXN_BCQ_UPLOAD_FILE (

+ 46 - 8
crss-metering/crss-metering.yml

@@ -102,14 +102,52 @@ mq:
       UPDATE TXN_MQ_MANIFEST_FILE SET PROCESS_FLAG = 'Y', STATUS = :status, ERROR_DETAILS = :errorDetail WHERE FILE_ID = :fileID
 
   meter:
-    daily: >
-      INSERT INTO TXN_METER_DATA_DAILY VALUES(
-      MQ_DATA_DAILY_SEQ.NEXTVAL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
-      ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-    monthly: >
-      INSERT INTO TXN_METER_DATA_MONTHLY VALUES(
-      MQ_DATA_MONTHLY_SEQ.NEXTVAL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
-      ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+    daily:
+      queryVersion: >
+        SELECT SEIN, READING_DATETIME, MAX(VERSION) AS VERSION
+        FROM TXN_METER_DATA_DAILY
+        WHERE SEIN = :sein AND READING_DATETIME = :readingDateTime
+        GROUP BY SEIN, READING_DATETIME
+      insert: >
+        INSERT INTO TXN_METER_DATA_DAILY VALUES (
+          MQ_DATA_DAILY_SEQ.NEXTVAL, :fileID, :sein, :interval, :readingDateTime,
+          :kwd, :kwdChannelStatus, :kwdIntervalStatus,
+          :kwhd, :kwhdChannelStatus, :kwhdIntervalStatus,
+          :kvarhd, :kvarhdChannelStatus, :kvarhdIntervalStatus,
+          :kwr, :kwrChannelStatus, :kwrIntervalStatus,
+          :kwhr, :kwhrChannelStatus, :kwhrIntervalStatus,
+          :kvarhr, :kvarhrChannelStatus, :kvarhrIntervalStatus,
+          :van, :vanChannelStatus, :vanIntervalStatus,
+          :vbn, :vbnChannelStatus, :vbnIntervalStatus,
+          :vcn, :vcnChannelStatus, :vcnIntervalStatus,
+          :ian, :ianChannelStatus, :ianIntervalStatus,
+          :ibn, :ibnChannelStatus, :ibnIntervalStatus,
+          :icn, :icnChannelStatus, :icnIntervalStatus,
+          :pf, :pfChannelStatus, :pfIntervalStatus,
+          :estimationFlag, :version, :mspShortName, :uploadType)
+    monthly:
+      queryVersion: >
+        SELECT SEIN, READING_DATETIME, MAX(VERSION) AS VERSION
+        FROM TXN_METER_DATA_MONTHLY
+        WHERE SEIN = :sein AND READING_DATETIME = :readingDateTime
+        GROUP BY SEIN, READING_DATETIME
+      insert: >
+        INSERT INTO TXN_METER_DATA_MONTHLY VALUES (
+          MQ_DATA_MONTHLY_SEQ.NEXTVAL, :fileID, :sein, :interval, :readingDateTime,
+          :kwd, :kwdChannelStatus, :kwdIntervalStatus,
+          :kwhd, :kwhdChannelStatus, :kwhdIntervalStatus,
+          :kvarhd, :kvarhdChannelStatus, :kvarhdIntervalStatus,
+          :kwr, :kwrChannelStatus, :kwrIntervalStatus,
+          :kwhr, :kwhrChannelStatus, :kwhrIntervalStatus,
+          :kvarhr, :kvarhrChannelStatus, :kvarhrIntervalStatus,
+          :van, :vanChannelStatus, :vanIntervalStatus,
+          :vbn, :vbnChannelStatus, :vbnIntervalStatus,
+          :vcn, :vcnChannelStatus, :vcnIntervalStatus,
+          :ian, :ianChannelStatus, :ianIntervalStatus,
+          :ibn, :ibnChannelStatus, :ibnIntervalStatus,
+          :icn, :icnChannelStatus, :icnIntervalStatus,
+          :pf, :pfChannelStatus, :pfIntervalStatus,
+          :estimationFlag, :version, :mspShortName, :uploadType)
 bcq:
   manifest: >
     INSERT INTO TXN_BCQ_UPLOAD_FILE (