|
|
@@ -5,10 +5,7 @@ import com.github.pagehelper.PageHelper;
|
|
|
import com.sckw.core.common.enums.NumberConstant;
|
|
|
import com.sckw.core.exception.BusinessException;
|
|
|
import com.sckw.core.model.constant.Global;
|
|
|
-import com.sckw.core.model.enums.CarWaybillEnum;
|
|
|
-import com.sckw.core.model.enums.LogisticsOrderEnum;
|
|
|
-import com.sckw.core.model.enums.OrderRuleEnum;
|
|
|
-import com.sckw.core.model.enums.RedisOrderGenerateEnum;
|
|
|
+import com.sckw.core.model.enums.*;
|
|
|
import com.sckw.core.model.page.PageResult;
|
|
|
import com.sckw.core.utils.*;
|
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
|
@@ -1549,7 +1546,7 @@ public class KwtWaybillOrderService {
|
|
|
waybillOrder.setUnloadAmount(params.getAmount());
|
|
|
waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
|
|
|
BigDecimal deficitPrice = deficitPrice(waybillOrder.getLoadAmount(), waybillOrder.getDeficitAmount(),
|
|
|
- logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
waybillOrder.setDeficitPrice(deficitPrice);
|
|
|
waybillOrder.setStatus(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
@@ -1636,13 +1633,23 @@ public class KwtWaybillOrderService {
|
|
|
* @author zk
|
|
|
* @date 2023/7/27
|
|
|
**/
|
|
|
- public BigDecimal deficitPrice(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss, BigDecimal goodsPrice) {
|
|
|
+ public BigDecimal deficitPrice(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss,
|
|
|
+ String lossUnit, BigDecimal goodsPrice) {
|
|
|
//亏吨<=0
|
|
|
if (deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {
|
|
|
return new BigDecimal(Global.AMOUNT);
|
|
|
}
|
|
|
//承运订单亏吨扣款=(承运订单亏吨量 -(承运订单装货量 * 承运订单合理损耗))* 扣亏货值
|
|
|
loss = loss == null ? new BigDecimal(Global.AMOUNT) : loss;
|
|
|
+ if (loss.doubleValue() > 0 && StringUtils.isNotBlank(lossUnit)) {
|
|
|
+ if (lossUnit.equals(String.valueOf(TaxRateTypeEnum.PERCENT.getCode()))) {
|
|
|
+ loss = loss.divide(new BigDecimal(TaxRateTypeEnum.PERCENT.getValue()));
|
|
|
+ }
|
|
|
+ if (lossUnit.equals(String.valueOf(TaxRateTypeEnum.MILLIMETER.getCode()))) {
|
|
|
+ loss = loss.divide(new BigDecimal(TaxRateTypeEnum.MILLIMETER.getValue()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
goodsPrice = goodsPrice == null ? new BigDecimal(Global.AMOUNT) : goodsPrice;
|
|
|
BigDecimal deficitPrice = deficitAmount.subtract(loadAmount.multiply(loss).setScale(4, RoundingMode.HALF_UP))
|
|
|
.multiply(goodsPrice).setScale(4, RoundingMode.HALF_UP);
|
|
|
@@ -1814,7 +1821,7 @@ public class KwtWaybillOrderService {
|
|
|
waybillOrder.setUnloadAmount(params.getType() == Global.NUMERICAL_TWO ? params.getAmount() : waybillOrder.getUnloadAmount());
|
|
|
waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
|
|
|
BigDecimal deficitPrice = deficitPrice(waybillOrder.getLoadAmount(), waybillOrder.getDeficitAmount(),
|
|
|
- logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
waybillOrder.setDeficitPrice(deficitPrice);
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
@@ -1964,7 +1971,7 @@ public class KwtWaybillOrderService {
|
|
|
logisticsOrder.setUnloadTime(waybillCount.getUnloadTime());
|
|
|
logisticsOrder.setDeficitAmount(waybillCount.getDeficitAmount());
|
|
|
BigDecimal deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
|
|
|
- logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
logisticsOrder.setDeficitPrice(deficitPrice);
|
|
|
logisticsOrderDao.updateById(logisticsOrder);
|
|
|
|
|
|
@@ -2023,7 +2030,7 @@ public class KwtWaybillOrderService {
|
|
|
waybillOrder.setUnloadAmount(params.getUnloadAmount());
|
|
|
waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
|
|
|
BigDecimal deficitPrice = deficitPrice(waybillOrder.getLoadAmount(), waybillOrder.getDeficitAmount(),
|
|
|
- logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
waybillOrder.setDeficitPrice(deficitPrice);
|
|
|
waybillOrder.setStatus(status);
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
@@ -2066,7 +2073,7 @@ public class KwtWaybillOrderService {
|
|
|
logisticsOrder.setUnloadTime(waybillCount.getUnloadTime());
|
|
|
logisticsOrder.setDeficitAmount(waybillCount.getDeficitAmount());
|
|
|
deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
|
|
|
- logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
logisticsOrder.setDeficitPrice(deficitPrice);
|
|
|
logisticsOrderDao.updateById(logisticsOrder);
|
|
|
|