|
@@ -6,8 +6,6 @@ import com.xlht.xlhtproject.domain.TXlhtMedicineParam;
|
|
|
import com.xlht.xlhtproject.mapper.TShuju1Mapper;
|
|
|
import com.xlht.xlhtproject.mapper.TXlhtConfMapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
@@ -78,8 +76,6 @@ public class CalculateUtils {
|
|
|
BigDecimal tydlOne = param.getTydlOne();
|
|
|
BigDecimal tydlTwo = param.getTydlTwo();
|
|
|
|
|
|
- BigDecimal medicineAmountOne = param.getMedicineAmountOne();//手动需要
|
|
|
-
|
|
|
// Integer type = param.getType();//0自动 1一号池 2二号池 3人工投放
|
|
|
|
|
|
BigDecimal yymdOne = param.getYymdOne();
|
|
@@ -116,17 +112,46 @@ public class CalculateUtils {
|
|
|
if(Objects.isNull(typeTwo)) {
|
|
|
typeTwo = 0;
|
|
|
}
|
|
|
+ //获取配置的信息
|
|
|
+ //2024年10月14日15:09:28 由于几个参数设置了最大值和最小值的范围,这里再额外校验一下
|
|
|
+ TXlhtConf tXlhtConf = this.xxlhtConfMapper.selectTXlhtConfById(LONG_1);
|
|
|
if(1 == whichCZ) {
|
|
|
if(typeOne == 1){//人工
|
|
|
- return param.getMedicineAmountOne();
|
|
|
+ BigDecimal medicineAmountOne = param.getMedicineAmountOne();
|
|
|
+ if(!Objects.isNull(tXlhtConf) && !Objects.isNull(medicineAmountOne)){
|
|
|
+ BigDecimal minAddAmount = tXlhtConf.getMinAddAmount();
|
|
|
+ if(!Objects.isNull(minAddAmount) && medicineAmountOne.compareTo(minAddAmount) < 0){
|
|
|
+ log.info("&&&&&&1池通过手动配置得到的碳源投加量为{},比配置的最小值还低,配置的最小值为{}", medicineAmountOne, minAddAmount);
|
|
|
+ medicineAmountOne = minAddAmount;
|
|
|
+ }
|
|
|
+ BigDecimal maxAddAmount = tXlhtConf.getMaxAddAmount();
|
|
|
+ if(!Objects.isNull(maxAddAmount) && medicineAmountOne.compareTo(maxAddAmount) > 0){
|
|
|
+ log.info("&&&&&&1池通过手动配置得到的碳源投加量为{},比配置的最大值还高,配置的最大值为{}", medicineAmountOne, maxAddAmount);
|
|
|
+ medicineAmountOne = maxAddAmount;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return medicineAmountOne;
|
|
|
}else {//自动
|
|
|
- return getResultByDiff(hycXsyTypeOne, hycXsyOne, htfksdOne, qycAdTypeOne, qycAdOne, qycYxyTypeOne, qycYxyOne, xzxsOne, jzxsOne, jsLlTypeOne, jsLlOne, slfpxsOne, kzxsOne, jsCodTypeOne, jsCodOne, zhxsOne, tydlOne, "one", yymdOne, sxpsOne);
|
|
|
+ return getResultByDiff(hycXsyTypeOne, hycXsyOne, htfksdOne, qycAdTypeOne, qycAdOne, qycYxyTypeOne, qycYxyOne, xzxsOne, jzxsOne, jsLlTypeOne, jsLlOne, slfpxsOne, kzxsOne, jsCodTypeOne, jsCodOne, zhxsOne, tydlOne, "one", yymdOne, sxpsOne, tXlhtConf);
|
|
|
}
|
|
|
}else if(2 == whichCZ) {
|
|
|
if(typeTwo == 1){//人工
|
|
|
- return param.getMedicineAmountTwo();
|
|
|
+ BigDecimal medicineAmountTwo = param.getMedicineAmountTwo();
|
|
|
+ if(!Objects.isNull(tXlhtConf) && !Objects.isNull(medicineAmountTwo)){
|
|
|
+ BigDecimal minAddAmount = tXlhtConf.getMinAddAmount();
|
|
|
+ if(!Objects.isNull(minAddAmount) && medicineAmountTwo.compareTo(minAddAmount) < 0){
|
|
|
+ log.info("&&&&&&2池通过手动配置得到的碳源投加量为{},比配置的最小值还低,配置的最小值为{}", medicineAmountTwo, minAddAmount);
|
|
|
+ medicineAmountTwo = minAddAmount;
|
|
|
+ }
|
|
|
+ BigDecimal maxAddAmount = tXlhtConf.getMaxAddAmount();
|
|
|
+ if(!Objects.isNull(maxAddAmount) && medicineAmountTwo.compareTo(maxAddAmount) > 0){
|
|
|
+ log.info("&&&&&&2池通过手动配置得到的碳源投加量为{},比配置的最大值还高,配置的最大值为{}", medicineAmountTwo, maxAddAmount);
|
|
|
+ medicineAmountTwo = maxAddAmount;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return medicineAmountTwo;
|
|
|
}else {//自动
|
|
|
- return getResultByDiff(hycXsyTypeTwo, hycXsyTwo, htfksdTwo, qycAdTypeTwo, qycAdTwo, qycYxyTypeTwo, qycYxyTwo, xzxsTwo, jzxsTwo, jsLlTypeTwo, jsLlTwo, slfpxsTwo, kzxsTwo, jsCodTypeTwo, jsCodTwo, zhxsTwo, tydlTwo, "two", yymdTwo, sxpsTwo);
|
|
|
+ return getResultByDiff(hycXsyTypeTwo, hycXsyTwo, htfksdTwo, qycAdTypeTwo, qycAdTwo, qycYxyTypeTwo, qycYxyTwo, xzxsTwo, jzxsTwo, jsLlTypeTwo, jsLlTwo, slfpxsTwo, kzxsTwo, jsCodTypeTwo, jsCodTwo, zhxsTwo, tydlTwo, "two", yymdTwo, sxpsTwo, tXlhtConf);
|
|
|
}
|
|
|
}else {
|
|
|
log.error("不支持的类型××××××");
|
|
@@ -136,7 +161,7 @@ public class CalculateUtils {
|
|
|
|
|
|
private BigDecimal getResultByDiff(Integer hycXsyType, BigDecimal hycXsyVal, BigDecimal htfksd, Integer qycAdType, BigDecimal qycAdVal, Integer qycYxyType,
|
|
|
BigDecimal qycYxyVal, BigDecimal xzxs, BigDecimal jzxs, Integer jsLlType, BigDecimal jsLlVal, BigDecimal slfpxs, BigDecimal kzxs, Integer jsCodType,
|
|
|
- BigDecimal jsCodVal, BigDecimal zhxs, BigDecimal tydl, String whichCZ, BigDecimal yymd, BigDecimal sxps) {
|
|
|
+ BigDecimal jsCodVal, BigDecimal zhxs, BigDecimal tydl, String whichCZ, BigDecimal yymd, BigDecimal sxps, TXlhtConf tXlhtConf) {
|
|
|
//2024年09月14日10:26:11 不同池子,根据不同类型,获取最新的数据,计算碳源投加量
|
|
|
//获取最新的实时数据
|
|
|
SmartAdd smartAdd = this.shuju1Mapper.getNewestData();
|
|
@@ -224,8 +249,7 @@ public class CalculateUtils {
|
|
|
sxps = BigDecimal.ZERO;
|
|
|
}
|
|
|
|
|
|
- //2024年10月14日15:09:28 由于几个参数设置了最大值和最小值的范围,这里再额外校验一下
|
|
|
- TXlhtConf tXlhtConf = this.xxlhtConfMapper.selectTXlhtConfById(LONG_1);
|
|
|
+
|
|
|
|
|
|
if(!Objects.isNull(tXlhtConf)){
|
|
|
BigDecimal minJsll = tXlhtConf.getMinJsll();
|