|
@@ -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;
|
|
|
}
|
|
|
}
|