Browse Source

单井巡查部分参数获取调整,单井测量参数中泵参数部分参数自动计算

chenwen 1 năm trước cách đây
mục cha
commit
2a57dbd1dd

+ 1 - 0
src/main/java/com/hb/proj/analysis/controller/ProduceParamController.java

@@ -128,6 +128,7 @@ public class ProduceParamController {
 	@RequestMapping("/savePump")
 	public RespVO<Object>  savePump(@Validated WellPumpPO pump,AccessToken token){
 		pump.setModifyBy(token!=null?token.getUsName():"unknow");
+		ProduceParamCalculator.calcPumpExtra(pump);
 		if(StringUtils.isBlank(pump.getPumpId())) {
 			pump.setCreateBy(token!=null?token.getUsName():"unknow");
 			service.addPumpParam(pump);

+ 14 - 0
src/main/java/com/hb/proj/analysis/service/ProduceParamCalculator.java

@@ -5,6 +5,20 @@ import com.hb.proj.model.WellMeasurePO;
 import com.hb.proj.model.WellPumpPO;
 
 public class ProduceParamCalculator {
+	
+	public static void calcPumpExtra(WellPumpPO pump) {
+		/**
+		 * 泵理论排量=截面积*柱塞冲程*spm*24*60*泵系数*0.000001
+		 * 理论排量按每分钟1冲次,泵系数为1计算。
+		 * 新泵时为1,长期使用小于1,用于修正泵理论排量
+		 * spm 冲次频率(每分钟) 目前固定为1
+		 */
+		if(isNotNull(pump.getBasicDiam(),pump.getStroke(),pump.getPumpCoeff())){
+			pump.setSpm(1);
+			double tempYield=pump.getPi()*Math.pow(pump.getBasicDiam()/2,2)*pump.getStroke()*pump.getPumpCoeff()*pump.getSpm()*24*60*0.000001;
+			pump.setTheoryVolume(tempYield);
+		}
+	}
 
 	public static WellAnalysisParamPO  calc(WellMeasurePO measure,WellPumpPO pump,Double rtFreq) {
 		

+ 9 - 4
src/main/java/com/hb/proj/data/controller/SinglePatrolController.java

@@ -165,6 +165,9 @@ public class SinglePatrolController {
 		//查询各表(指定字段)最新数据,单井采集单独处理
 		Map<String,Object>  rtn=new HashMap<>();
 		rtn.put("data", new HashMap<String,Object>());
+		
+		Map<String,Object> rtnData=new HashMap<>();
+		Object alarmData=null;
 		Map<String,Object> tmpMapData=null;
 		
 		String sourceTab=null;
@@ -175,7 +178,9 @@ public class SinglePatrolController {
 			if("tzl_gather_data".equals(sourceTab)) { //单参数采集数据单独处理
 				RespVO<Map<String,Object>> resp=loadData(wellId);
 				if(resp.getCode()==0) {
-					rtn.putAll(resp.getData());
+					tmpMapData=resp.getData();
+					rtnData.putAll((Map<String,Object>)tmpMapData.get("data"));
+					alarmData=tmpMapData.get("alarm");
 				}
 			}
 			else if("tzl_gather_data_multi".equals(sourceTab)) { //多值数据单独处理
@@ -184,20 +189,20 @@ public class SinglePatrolController {
 				selFields=param.getParamCode().trim().toLowerCase();
 				if(!selFields.contains("data_val1") && !selFields.contains("data_val2")) {
 					tmpMapData=paramDataService.loadLastDataFromMulti(wellId,param.getExtraFilterCode(),param.getParamCode());
-					bindPartData((Map<String,Object>)rtn.get("data"),tmpMapData);
+					bindPartData(rtnData,tmpMapData);
 				}
 				
 				
 			}
 			else {
 				tmpMapData=paramDataService.loadLastData(wellId, param.getSourceTable(), param.getTimeField(),param.getParamCode());
-				bindPartData((Map<String,Object>)rtn.get("data"),tmpMapData);
+				bindPartData(rtnData,tmpMapData);
 				
 			}
 			
 		}
 		
-		return RespVOBuilder.ok(rtn);
+		return RespVOBuilder.ok(MapUtils.build("data",rtnData,"alarm",alarmData));
 	}
 	
 	//数据map合并到主map中,并统一key为下划线格式

+ 1 - 1
src/main/java/com/hb/proj/data/service/ParamDataService.java

@@ -107,7 +107,7 @@ public class ParamDataService {
 		}
 		String sql="""
 				select %s from %s
-				where well_id=? and %s between date_add(now(),interval -30 day) and now()
+				where well_id=? and %s between date_add(now(),interval -365 day) and now()
 				order by %s desc
 				limit 1
 				""";