Browse Source

井参数管理增加多值中的位移参数配置,标定计算;设备参数配置增加位移配置

chenwen 2 years ago
parent
commit
67652a96c9

+ 42 - 11
src/main/java/com/hb/proj/base/controller/WellParamController.java

@@ -1,5 +1,6 @@
 package com.hb.proj.base.controller;
 
+import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -151,7 +152,7 @@ public class WellParamController {
 	public RespVO<Object> update(@Validated WellParamPO param,AccessToken token){
 		if(service.existWellParam(param.getWellId(), param.getParamCode(),param.getParamId())) {
 			 return RespVOBuilder.error("该参数在井内已存在,勿重复添加");
-		 }
+		}
 		String error=preHandleWellParam(param);
 		if(error!=null) {
 			 return RespVOBuilder.error(error);
@@ -181,19 +182,42 @@ public class WellParamController {
 		dparam.setCalibrateB(wparam.getCalibrateB());
 		dparam.setCalibrateC(wparam.getCalibrateC());
 		dparam.setGatherUnit(wparam.getGatherUnit());
+		
+		dparam.setCalibrateA2(wparam.getCalibrateA2());
+		dparam.setCalibrateB2(wparam.getCalibrateB2());
+		dparam.setCalibrateC2(wparam.getCalibrateC2());
+		dparam.setGatherUnit2(wparam.getGatherUnit2());
 		return dparam;
 	}
 	
+	
+	private String preHandleWellParam(WellParamPO wparam) {
+		boolean isMulti=wparam.getParamCode().startsWith("diagram_");
+		if(isMulti) {
+			if(StringUtils.isBlank(wparam.getDisplayUnit2()) || StringUtils.isBlank(wparam.getInsertUnit2()) || StringUtils.isBlank(wparam.getGatherUnit2())) {
+				return "位移参数相关单位未设置";
+			}
+			String error=preHandleWellParam(wparam,true);
+			if(error!=null) {
+				 return error;
+			}
+		}
+		return preHandleWellParam(wparam,false);
+		
+	}
+	
 	/**
 	 * 对井参数中的几个单位做预处理:校验,比例确定
 	 * @param wparam
 	 * @return
 	 */
-	private String preHandleWellParam(WellParamPO wparam) {
-		Set<String>  unitSet=new HashSet<String>();
-		unitSet.add(wparam.getDisplayUnit());
-		unitSet.add(wparam.getInsertUnit());
-		unitSet.add(wparam.getGatherUnit());
+	private String preHandleWellParam(WellParamPO wparam,boolean isSecd) {
+		String[] unitsAry= {wparam.getDisplayUnit(),wparam.getInsertUnit(),wparam.getGatherUnit()};
+		if(isSecd) {
+			unitsAry=new String[] {wparam.getDisplayUnit2(),wparam.getInsertUnit2(),wparam.getGatherUnit2()};
+		}
+		Set<String>  unitSet=new HashSet<String>(Arrays.asList(unitsAry));
+	
 		
 		List<UnitPO> units=unitService.loadBySymbol(unitSet);
 		if(units==null||units.size()<unitSet.size()) {
@@ -208,12 +232,19 @@ public class WellParamController {
 		if(unitSet.size()>1) {
 			return "显示单位、入库单位、采集单位不是同类单位";
 		}
-		Double dis=unitMapping.get(wparam.getDisplayUnit());
-		Double ins=unitMapping.get(wparam.getInsertUnit());
-		Double gat=unitMapping.get(wparam.getGatherUnit());
+		Double dis=unitMapping.get(unitsAry[0]);
+		Double ins=unitMapping.get(unitsAry[1]);
+		Double gat=unitMapping.get(unitsAry[2]);
+		
+		if(isSecd) {
+			wparam.setDisInsScale2(ins/dis);
+			wparam.setGatInsScale2(ins/gat);
+		}
+		else {
+			wparam.setDisInsScale(ins/dis);
+			wparam.setGatInsScale(ins/gat);
+		}
 		
-		wparam.setDisInsScale(ins/dis);
-		wparam.setGatInsScale(ins/gat);
 		return null;
 	}
 }

+ 8 - 0
src/main/java/com/hb/proj/model/DeviceParamPO.java

@@ -21,5 +21,13 @@ public class DeviceParamPO {
 	
 	private Double calibrateC;
 	
+	private String gatherUnit2;
+	
+	private Double calibrateA2;
+	
+	private Double calibrateB2;
+	
+	private Double calibrateC2;
+	
 	private Date modifyTime;
 }

+ 18 - 0
src/main/java/com/hb/proj/model/WellParamPO.java

@@ -46,6 +46,24 @@ public class WellParamPO {
 	private Double calibrateC;
 	
 	private Integer displayNum;
+	
+	private Double calibrateA2;  //带2表示多值数据中的第二参数(固定为位移)
+	
+	private Double calibrateB2;
+	
+	private Double calibrateC2;
+	
+	private String displayUnit2;
+	
+	private String insertUnit2;
+	
+	private String gatherUnit2;
+	
+	private Double disInsScale2;
+	
+	private Double gatInsScale2;
+	
+	private String displayFormat2;
 
 	
 }