|
|
|
|
|
|
|
|
* @author 王强 |
|
|
* @author 王强 |
|
|
* @date 2025-05-12 |
|
|
* @date 2025-05-12 |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
@SuppressWarnings("all") |
|
|
@RequiredArgsConstructor |
|
|
@RequiredArgsConstructor |
|
|
@Service |
|
|
@Service |
|
|
@Slf4j |
|
|
@Slf4j |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
//获取基准价格 |
|
|
//获取基准价格 |
|
|
BigDecimal initPrice = zsOperationGoods.getInitPrice(); |
|
|
BigDecimal initPrice = zsOperationGoods.getInitPrice(); |
|
|
|
|
|
//比较绝对值 |
|
|
//获取基准价格和最新价格的差值比例 |
|
|
//获取基准价格和最新价格的差值比例 |
|
|
BigDecimal percentageChange= getChangeThreshold(initPrice,newPrice); |
|
|
BigDecimal percentageChange= getChangeThreshold(initPrice,newPrice); |
|
|
//我们设置的预警阈值 |
|
|
//我们设置的预警阈值 |
|
|
BigDecimal priceChange = new BigDecimal(zsOperationWarnconfig.getPriceChangeThreshold()); |
|
|
BigDecimal priceChange = new BigDecimal(zsOperationWarnconfig.getPriceChangeThreshold()); |
|
|
|
|
|
//绝对值 |
|
|
|
|
|
BigDecimal percentageChangeAbs= percentageChange.abs(); |
|
|
|
|
|
//绝对值 |
|
|
|
|
|
BigDecimal priceChangeAbs = priceChange.abs(); |
|
|
// 比较差值比例是否大于等于我们设置的预警阈值 |
|
|
// 比较差值比例是否大于等于我们设置的预警阈值 |
|
|
if ((priceChange.doubleValue()>=0&&percentageChange.compareTo(priceChange) >= 0)|| |
|
|
|
|
|
(priceChange.doubleValue()<0&&percentageChange.compareTo(priceChange) <= 0) |
|
|
|
|
|
) { |
|
|
|
|
|
|
|
|
if (percentageChangeAbs.compareTo(priceChangeAbs) <= 0) { |
|
|
|
|
|
//正常比较 |
|
|
|
|
|
//获取基准价格和最新价格的差值比例 |
|
|
|
|
|
//BigDecimal percentageChange= getChangeThreshold(initPrice,newPrice); |
|
|
|
|
|
//我们设置的预警阈值 |
|
|
|
|
|
//BigDecimal priceChange = new BigDecimal(zsOperationWarnconfig.getPriceChangeThreshold()); |
|
|
|
|
|
// 比较差值比例是否大于等于我们设置的预警阈值 |
|
|
|
|
|
// if ((priceChange.doubleValue()>=0&&percentageChange.compareTo(priceChange) >= 0)|| |
|
|
|
|
|
// (priceChange.doubleValue()<0&&percentageChange.compareTo(priceChange) <= 0) |
|
|
|
|
|
// ) { |
|
|
//5.生成 预警结果数据 |
|
|
//5.生成 预警结果数据 |
|
|
String warnTypes = zsOperationWarnconfig.getWarnTypes(); |
|
|
String warnTypes = zsOperationWarnconfig.getWarnTypes(); |
|
|
ZsOperationWarnresult zsOperationWarnresult = new ZsOperationWarnresult(); |
|
|
ZsOperationWarnresult zsOperationWarnresult = new ZsOperationWarnresult(); |