Ticket 700: Add possibility in compositing rules to select whether or not quality... jenkins-Beast-366
authorMats Vernersson <mats.vernersson@smhi.se>
Fri, 26 May 2017 13:35:29 +0000 (15:35 +0200)
committerMats Vernersson <mats.vernersson@smhi.se>
Fri, 26 May 2017 13:35:29 +0000 (15:35 +0200)
etc/create_db.sql
etc/upgrade_db.sql
itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-createcomposite.xls
itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-removeCompositeWithScheduledJob.xls
itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-removeCompositeWithScheduledJobRemoved.xls
itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-updatecomposite.xls
itest/eu/baltrad/beast/router/BltRouterCompositeDBITest.xls
src/eu/baltrad/beast/rules/composite/CompositingRuleManager.java
test/eu/baltrad/beast/rules/composite/CompositingRuleManagerTest.java

index 42a05fe..cc18016 100644 (file)
@@ -76,7 +76,8 @@ create table beast_composite_rules (
   ctfilter boolean NOT NULL,
   qitotal_field text,
   quantity text,
-  qc_mode integer NOT NULL  
+  qc_mode integer NOT NULL,
+  reprocess_quality boolean NOT NULL
 );
 
 create table beast_composite_sources (
index b5a701b..6164481 100644 (file)
@@ -326,6 +326,17 @@ BEGIN
 END;
 $$ LANGUAGE plpgsql;
 
+CREATE OR REPLACE FUNCTION update_beast_composite_rules_with_reprocess_quality() RETURNS VOID AS $$
+BEGIN
+  PERFORM true FROM information_schema.columns WHERE table_name = 'beast_composite_rules' AND column_name = 'reprocess_quality';
+  IF NOT FOUND THEN
+    ALTER TABLE beast_composite_rules ADD COLUMN reprocess_quality boolean;
+    UPDATE beast_composite_rules SET reprocess_quality='false';
+    ALTER TABLE beast_composite_rules ALTER COLUMN reprocess_quality SET NOT NULL;
+  END IF;
+END;
+$$ LANGUAGE plpgsql;
+
 select create_beast_gmap_rules();
 select create_beast_host_filter();
 select create_beast_acrr_rules();
@@ -345,6 +356,7 @@ select update_beast_volume_rules_with_nominal_timeout();
 select update_beast_volume_rules_with_qc_mode();
 select update_beast_composite_rules_with_qc_mode();
 select update_beast_site2d_rules_with_qc_mode();
+select update_beast_composite_rules_with_reprocess_quality();
 
 drop function create_beast_gmap_rules();
 drop function create_beast_host_filter();
@@ -365,4 +377,4 @@ drop function update_beast_volume_rules_with_nominal_timeout();
 drop function update_beast_volume_rules_with_qc_mode();
 drop function update_beast_composite_rules_with_qc_mode();
 drop function update_beast_site2d_rules_with_qc_mode();
-
+drop function update_beast_composite_rules_with_reprocess_quality();
index 36e2ec7..02c6795 100644 (file)
Binary files a/itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-createcomposite.xls and b/itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-createcomposite.xls differ
index 54fa8c4..cccc04a 100644 (file)
Binary files a/itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-removeCompositeWithScheduledJob.xls and b/itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-removeCompositeWithScheduledJob.xls differ
index 217c87e..905106e 100644 (file)
Binary files a/itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-removeCompositeWithScheduledJobRemoved.xls and b/itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-removeCompositeWithScheduledJobRemoved.xls differ
index f2e44d9..a982aed 100644 (file)
Binary files a/itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-updatecomposite.xls and b/itest/eu/baltrad/beast/router/BltRouterCompositeDBITest-updatecomposite.xls differ
index bedf68d..26ab37b 100644 (file)
Binary files a/itest/eu/baltrad/beast/router/BltRouterCompositeDBITest.xls and b/itest/eu/baltrad/beast/router/BltRouterCompositeDBITest.xls differ
index de9ee70..3aa713e 100644 (file)
@@ -140,10 +140,11 @@ public class CompositingRuleManager implements IRuleManager {
     String quantity = crule.getQuantity();
     boolean nominal_timeout = crule.isNominalTimeout();
     int qualityControlMode = crule.getQualityControlMode();
+    boolean reprocess_quality = crule.isReprocessQuality();
     
     template.update(
-        "insert into beast_composite_rules (rule_id, area, interval, timeout, byscan, selection_method, method, prodpar, applygra, ZR_A, ZR_b, ignore_malfunc, ctfilter, qitotal_field, quantity, nominal_timeout, qc_mode)"+
-        " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", new Object[]{ruleId, area, interval, timeout, byscan, selection_method, method, prodpar, applygra, ZR_A, ZR_b, ignoreMalfunc, ctfilter, qitotalField, quantity, nominal_timeout, qualityControlMode});
+        "insert into beast_composite_rules (rule_id, area, interval, timeout, byscan, selection_method, method, prodpar, applygra, ZR_A, ZR_b, ignore_malfunc, ctfilter, qitotal_field, quantity, nominal_timeout, qc_mode, reprocess_quality)"+
+        " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", new Object[]{ruleId, area, interval, timeout, byscan, selection_method, method, prodpar, applygra, ZR_A, ZR_b, ignoreMalfunc, ctfilter, qitotalField, quantity, nominal_timeout, qualityControlMode, reprocess_quality});
     storeSources(ruleId, crule.getSources());
     storeDetectors(ruleId, crule.getDetectors());
     storeFilter(ruleId, crule.getFilter());
@@ -157,8 +158,8 @@ public class CompositingRuleManager implements IRuleManager {
   public void update(int ruleId, IRule rule) {
     CompositingRule crule = (CompositingRule)rule;
     template.update(
-        "update beast_composite_rules set area=?, interval=?, timeout=?, byscan=?, selection_method=?, method=?, prodpar=?, applygra=?, ZR_A=?, ZR_b=?, ignore_malfunc=?, ctfilter=?, qitotal_field=?, quantity=?, nominal_timeout=?, qc_mode=? where rule_id=?",
-        new Object[]{crule.getArea(), crule.getInterval(), crule.getTimeout(), crule.isScanBased(), crule.getSelectionMethod(), crule.getMethod(), crule.getProdpar(), crule.isApplyGRA(), crule.getZR_A(), crule.getZR_b(), crule.isIgnoreMalfunc(), crule.isCtFilter(), crule.getQitotalField(), crule.getQuantity(), crule.isNominalTimeout(), crule.getQualityControlMode(), ruleId});
+        "update beast_composite_rules set area=?, interval=?, timeout=?, byscan=?, selection_method=?, method=?, prodpar=?, applygra=?, ZR_A=?, ZR_b=?, ignore_malfunc=?, ctfilter=?, qitotal_field=?, quantity=?, nominal_timeout=?, qc_mode=?, reprocess_quality=? where rule_id=?",
+        new Object[]{crule.getArea(), crule.getInterval(), crule.getTimeout(), crule.isScanBased(), crule.getSelectionMethod(), crule.getMethod(), crule.getProdpar(), crule.isApplyGRA(), crule.getZR_A(), crule.getZR_b(), crule.isIgnoreMalfunc(), crule.isCtFilter(), crule.getQitotalField(), crule.getQuantity(), crule.isNominalTimeout(), crule.getQualityControlMode(), crule.isReprocessQuality(), ruleId});
     storeSources(ruleId, crule.getSources());
     storeDetectors(ruleId, crule.getDetectors());
     storeFilter(ruleId, crule.getFilter());
@@ -278,6 +279,7 @@ public class CompositingRuleManager implements IRuleManager {
         result.setQuantity(rs.getString("quantity"));
         result.setNominalTimeout(rs.getBoolean("nominal_timeout"));
         result.setQualityControlMode(rs.getInt("qc_mode"));
+        result.setReprocessQuality(rs.getBoolean("reprocess_quality"));
         result.setSources(getSources(rule_id));
         result.setDetectors(getDetectors(rule_id));
         return result;
index a6e32fe..98a05fa 100644 (file)
@@ -159,10 +159,11 @@ public class CompositingRuleManagerTest extends EasyMockSupport {
     rule.setQuantity("VRAD");
     rule.setNominalTimeout(true);
     rule.setQualityControlMode(CompositingRule.QualityControlMode_ANALYZE);
+    rule.setReprocessQuality(false);
     
     expect(jdbc.update(
-        "insert into beast_composite_rules (rule_id, area, interval, timeout, byscan, selection_method, method, prodpar, applygra, ZR_A, ZR_b, ignore_malfunc, ctfilter, qitotal_field, quantity, nominal_timeout, qc_mode)"+
-        " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", new Object[]{13, "seang", 12, 20, true, CompositingRule.SelectionMethod_HEIGHT_ABOVE_SEALEVEL, CompositingRule.PPI, "0.5", true, 10.0, 5.0, true, true, "se.baltrad.something", "VRAD", true, CompositingRule.QualityControlMode_ANALYZE}))
+        "insert into beast_composite_rules (rule_id, area, interval, timeout, byscan, selection_method, method, prodpar, applygra, ZR_A, ZR_b, ignore_malfunc, ctfilter, qitotal_field, quantity, nominal_timeout, qc_mode, reprocess_quality)"+
+        " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", new Object[]{13, "seang", 12, 20, true, CompositingRule.SelectionMethod_HEIGHT_ABOVE_SEALEVEL, CompositingRule.PPI, "0.5", true, 10.0, 5.0, true, true, "se.baltrad.something", "VRAD", true, CompositingRule.QualityControlMode_ANALYZE, false}))
           .andReturn(0);
     
     methods.storeSources(13, sources);
@@ -213,9 +214,10 @@ public class CompositingRuleManagerTest extends EasyMockSupport {
     rule.setQuantity("NOOP");
     rule.setNominalTimeout(true);
     rule.setQualityControlMode(CompositingRule.QualityControlMode_ANALYZE);
+    rule.setReprocessQuality(true);
     
-    expect(jdbc.update("update beast_composite_rules set area=?, interval=?, timeout=?, byscan=?, selection_method=?, method=?, prodpar=?, applygra=?, ZR_A=?, ZR_b=?, ignore_malfunc=?, ctfilter=?, qitotal_field=?, quantity=?, nominal_timeout=?, qc_mode=? where rule_id=?",
-        new Object[]{"seang", 12, 20, true, CompositingRule.SelectionMethod_HEIGHT_ABOVE_SEALEVEL, CompositingRule.PPI, "0.5", true, 10.0, 5.0, true, true, "se.baltrad.something", "NOOP", true, CompositingRule.QualityControlMode_ANALYZE, 13}))
+    expect(jdbc.update("update beast_composite_rules set area=?, interval=?, timeout=?, byscan=?, selection_method=?, method=?, prodpar=?, applygra=?, ZR_A=?, ZR_b=?, ignore_malfunc=?, ctfilter=?, qitotal_field=?, quantity=?, nominal_timeout=?, qc_mode=?, reprocess_quality=? where rule_id=?",
+        new Object[]{"seang", 12, 20, true, CompositingRule.SelectionMethod_HEIGHT_ABOVE_SEALEVEL, CompositingRule.PPI, "0.5", true, 10.0, 5.0, true, true, "se.baltrad.something", "NOOP", true, CompositingRule.QualityControlMode_ANALYZE, true, 13}))
         .andReturn(0);
     
     methods.storeSources(13, sources);
@@ -397,6 +399,7 @@ public class CompositingRuleManagerTest extends EasyMockSupport {
     expect(rs.getString("quantity")).andReturn("VRAD");
     expect(rs.getBoolean("nominal_timeout")).andReturn(true);
     expect(rs.getInt("qc_mode")).andReturn(1);
+    expect(rs.getBoolean("reprocess_quality")).andReturn(true);
 
     expect(method.getSources(10)).andReturn(sources);
     expect(method.getDetectors(10)).andReturn(detectors);
@@ -438,6 +441,7 @@ public class CompositingRuleManagerTest extends EasyMockSupport {
     assertEquals("VRAD", result.getQuantity());
     assertEquals(true, result.isNominalTimeout());
     assertEquals(CompositingRule.QualityControlMode_ANALYZE, result.getQualityControlMode());
+    assertEquals(true, result.isReprocessQuality());
   }  
   
   @Test