|
@@ -125,6 +125,10 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
|
|
|
return amsContractTruckPriceMapper.getOriginAndNowOilPrice();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 批量修改油价
|
|
|
+ * @return
|
|
|
+ */
|
|
|
@Override
|
|
|
public int batchUpdateTransportPriceByOilPrice() {
|
|
|
//获取所有油价信息
|
|
@@ -145,7 +149,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
|
|
|
//获取原运价和吨公里数
|
|
|
List<Map<String, Object>> priceValueAndPriceTonKilometer = amsContractTruckPriceMapper.getPriceValueAndPriceTonKilometer();
|
|
|
|
|
|
- if(updateOilPrice>0.05||updateOilPrice<-0.05){
|
|
|
+ if(updateOilPrice>0.05||updateOilPrice<-0.05) {
|
|
|
//逐条修改吨公里数
|
|
|
for (Map<String, Object> stringObjectMap : priceValueAndPriceTonKilometer) {
|
|
|
//主键Id
|
|
@@ -154,18 +158,22 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
|
|
|
BigDecimal priceValue = (BigDecimal) stringObjectMap.get("priceValue");
|
|
|
//吨公里数
|
|
|
BigDecimal priceTonKilometer = (BigDecimal) stringObjectMap.get("priceTonKilometer");
|
|
|
- //参考距离
|
|
|
- BigDecimal distance = priceValue.divide(priceTonKilometer,2,BigDecimal.ROUND_HALF_UP);
|
|
|
- //现运价
|
|
|
- Double nowPriceValue = priceValue.doubleValue()*0.65+priceValue.doubleValue()*0.35*(1+updateOilPrice);
|
|
|
- BigDecimal nowPriceValue1 = new BigDecimal(nowPriceValue);
|
|
|
- //新吨公里数
|
|
|
- BigDecimal newPriceTonKilometer = nowPriceValue1.divide(distance,4,BigDecimal.ROUND_HALF_UP);
|
|
|
- //通过主键修改一条吨公里数
|
|
|
- amsContractTruckPriceMapper.updatePriceTonKilometer(priceId,newPriceTonKilometer);
|
|
|
+ //参考距离,四舍五入,保留两位小数
|
|
|
+ BigDecimal distance;
|
|
|
+ if (priceTonKilometer.doubleValue() != 0) {
|
|
|
+ distance = priceValue.divide(priceTonKilometer, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //现运价
|
|
|
+ Double nowPriceValue = priceValue.doubleValue() * 0.65 + priceValue.doubleValue() * 0.35 * (1 + updateOilPrice);
|
|
|
+ BigDecimal nowPriceValue1 = new BigDecimal(nowPriceValue);
|
|
|
+ //新吨公里数
|
|
|
+ BigDecimal newPriceTonKilometer = nowPriceValue1.divide(distance, 4, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //通过主键修改一条吨公里数
|
|
|
+ amsContractTruckPriceMapper.updatePriceTonKilometer(priceId, newPriceTonKilometer);
|
|
|
+ }
|
|
|
+ return amsContractTruckPriceMapper.batchUpdateTransportPriceByOilPrice(updateOilPrice);
|
|
|
}
|
|
|
- return amsContractTruckPriceMapper.batchUpdateTransportPriceByOilPrice(updateOilPrice);
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
|
+
|
|
|
}
|