瀏覽代碼

1.预警阈值比较改为区分正负值

wq_dev
wangqiang 1 月之前
父節點
當前提交
a5e679fba1

+ 18
- 4
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ZsOperationWarnresultServiceImpl.java 查看文件

@@ -223,7 +223,9 @@ public class ZsOperationWarnresultServiceImpl implements IZsOperationWarnresultS
//我们设置的预警阈值
BigDecimal priceChange = new BigDecimal(zsOperationWarnconfig.getPriceChangeThreshold());
// 比较差值比例是否大于等于我们设置的预警阈值
if (percentageChange.compareTo(priceChange) >= 0) {
if ((priceChange.doubleValue()>=0&&percentageChange.compareTo(priceChange) >= 0)||
(priceChange.doubleValue()<0&&percentageChange.compareTo(priceChange) <= 0)
) {
//5.生成 预警结果数据
String warnTypes = zsOperationWarnconfig.getWarnTypes();
ZsOperationWarnresult zsOperationWarnresult = new ZsOperationWarnresult();
@@ -330,12 +332,11 @@ public class ZsOperationWarnresultServiceImpl implements IZsOperationWarnresultS
}

/**
* 判断价格变化是否超过阈值
* 返回变化的差值比例
* @param curPrice 当前价格(基准价)
* @param newPrice 新价格
* @return 变化幅度超过阈值返回true,否则false
*/
public BigDecimal getChangeThreshold(BigDecimal curPrice,BigDecimal newPrice) {
/* public BigDecimal getChangeThreshold(BigDecimal curPrice,BigDecimal newPrice) {
// 参数校验
if (curPrice == null || newPrice == null ) {
throw new IllegalArgumentException("参数不能为空");
@@ -346,6 +347,19 @@ public class ZsOperationWarnresultServiceImpl implements IZsOperationWarnresultS
BigDecimal percentageChange = diff.divide(curPrice, 4, RoundingMode.HALF_UP)
.multiply(new BigDecimal("100"));
return percentageChange;
}*/

public static BigDecimal getChangeThreshold(BigDecimal curPrice, BigDecimal newPrice) {
if (curPrice == null || newPrice == null ) {
throw new IllegalArgumentException("价格参数不能为空");
}

// 计算差值
BigDecimal difference = newPrice.subtract(curPrice);
// 计算百分比 (差值/原价)*100
return difference.divide(curPrice,10, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100));
//.setScale(2, RoundingMode.HALF_UP);
}
public boolean isBetween9And18() {
LocalTime currentTime = LocalTime.now();

Loading…
取消
儲存