浏览代码

采集数据在入库当前实时数据表前进行标定,便于服务重启后使用标定值来判断异常油耗

chenwen 3 年之前
父节点
当前提交
4b6324434a

+ 4 - 4
src/main/java/com/hb/proj/oil/service/OilService.java

@@ -42,11 +42,11 @@ public class OilService {
 			return;
 		}
 		//当前库
-		String sql="update t_oil_current set liquid_str=?,liquidrt_str=?,oil_volume=?,data_time=? where dtu_num=?";
-		int num=dao.getJdbcTemplate().update(sql, oil.getLiquidStr(),oil.getLiquidrtStr(),oil.getOilVolume(),oil.getDataTime(),oil.getDtuNum());
+		String sql="update t_oil_current set liquid_str=?,liquidrt_str=?,oil_volume=?,gather_oil_volume=?,data_time=? where dtu_num=?";
+		int num=dao.getJdbcTemplate().update(sql, oil.getLiquidStr(),oil.getLiquidrtStr(),oil.getOilVolume(),oil.getGatherOilVolume(),oil.getDataTime(),oil.getDtuNum());
 		if(num==0){
-			sql="insert into t_oil_current(dtu_num,liquid_str,liquidrt_str,oil_volume,data_time,car_id) values(?,?,?,?,?,?)";
-			dao.getJdbcTemplate().update(sql,oil.getDtuNum(),oil.getLiquidStr(),oil.getLiquidrtStr(),oil.getOilVolume(),oil.getDataTime(),oil.getCarId());
+			sql="insert into t_oil_current(dtu_num,liquid_str,liquidrt_str,oil_volume,gather_oil_volume,data_time,car_id) values(?,?,?,?,?,?,?)";
+			dao.getJdbcTemplate().update(sql,oil.getDtuNum(),oil.getLiquidStr(),oil.getLiquidrtStr(),oil.getOilVolume(),oil.getGatherOilVolume(),oil.getDataTime(),oil.getCarId());
 		}
 		
 	}

+ 5 - 2
src/main/java/com/hb/proj/oil/service/ScheduledTaskOilQuery.java

@@ -88,9 +88,11 @@ public class ScheduledTaskOilQuery {
 		while(iterator.hasNext()){
 			temp=iterator.next();
 			tempBO=getOilBOFromHDDTO(temp);
+			
+			VolumeCalibrater.fillCarId(tempBO); //2022.6.15 先标定后存储
+			
 			service.saveCurrentData(tempBO);
 			
-			VolumeCalibrater.fillCarId(tempBO);
 			
 			if(!OilChecker.validateData(tempBO)){ //油量变化量检测及有效性检测
 				iterator.remove();
@@ -107,7 +109,8 @@ public class ScheduledTaskOilQuery {
 	private OilBO  getOilBOFromHDDTO(OilCurrentDTO oil){
 		OilBO oilPO=new OilBO();
 		oilPO.setDtuNum(oil.getVin()+"_01");
-		oilPO.setOilVolume(oil.getCurOil());
+		//oilPO.setOilVolume(oil.getCurOil());
+		oilPO.setGatherOilVolume(oil.getCurOil());
 		oilPO.setDataTime(oil.getReportTime());
 		//VolumeCalibrater.fillCarId(oilPO); //填入carID
 		return oilPO;

+ 11 - 1
src/main/java/com/hb/proj/server/OilBO.java

@@ -10,7 +10,7 @@ public class OilBO {
 	
 	private Date  dataTime; //数据采集时间
 	
-	private Double oilVolume ;  //油量容积毫升
+	private Double oilVolume ;  //油量容积毫升(作为标定后的值2022.6.15)
 	
 	private String carId;
 	
@@ -21,6 +21,8 @@ public class OilBO {
 	private String liquidStr; //稳定液位高度 字符数据
 	
 	private String liquidrtStr; //实时液位高度 字符数据
+	
+	private Double gatherOilVolume; //3318原始采集容积
 
 	public String getDtuNum() {
 		return dtuNum;
@@ -96,4 +98,12 @@ public class OilBO {
 		this.liquidrtStr = liquidrtStr;
 	}
 
+	public Double getGatherOilVolume() {
+		return gatherOilVolume;
+	}
+
+	public void setGatherOilVolume(Double gatherOilVolume) {
+		this.gatherOilVolume = gatherOilVolume;
+	}
+
 }

+ 4 - 1
src/main/java/com/hb/proj/server/OilParseTask.java

@@ -75,11 +75,14 @@ public class OilParseTask implements Runnable {
     			return;
     		}
     		
+    		VolumeCalibrater.fillVolume(oilData); //2022.6.15 先标定后存储
+    		
     		oilService.saveCurrentData(oilData);  //存于当前数据表
+    		
     		if(oilData.getLiquidHeight()==null){  //未采集到有效的稳定液位值,不进行后面的处理及入库
     			return;
     		}
-    		VolumeCalibrater.fillVolume(oilData);
+    		
     		if(OilChecker.validateData(oilData)){
     			oilService.saveOilData(oilData);
     		}	

+ 2 - 2
src/main/java/com/hb/proj/server/VolumeCalibrater.java

@@ -57,8 +57,8 @@ public class VolumeCalibrater {
 		if(meter!=null){
 			oilData.setCarId(meter.getCarId());
 			oilData.setMountId(meter.getMountId());
-			if(meter.getVolumeRatio()!=null&&meter.getVolumeRatio().doubleValue()>0&&oilData.getOilVolume()!=null){
-				oilData.setOilVolume(oilData.getOilVolume().doubleValue()*meter.getVolumeRatio().doubleValue());
+			if(meter.getVolumeRatio()!=null&&meter.getVolumeRatio().doubleValue()>0&&oilData.getGatherOilVolume()!=null){
+				oilData.setOilVolume(oilData.getGatherOilVolume().doubleValue()*meter.getVolumeRatio().doubleValue());
 			}
 		}