Explorar el Código

1、车辆运单扣亏量计算调整;

zk hace 2 años
padre
commit
25a9759119

+ 6 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDriverVo.java

@@ -208,7 +208,7 @@ public class WaybillOrderDriverVo {
     }
 
     public BigDecimal getDeficitLossAmount() {
-        return deficitPrice(loadAmount, deficitAmount, loss, lossUnit);
+        return deficitLossAmount(loadAmount, deficitAmount, loss, lossUnit);
     }
 
     /**
@@ -219,7 +219,7 @@ public class WaybillOrderDriverVo {
      * @author zk
      * @date 2023/7/27
      **/
-    public BigDecimal deficitPrice(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss,String lossUnit) {
+    public BigDecimal deficitLossAmount(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss,String lossUnit) {
         //亏吨<=0
         if (deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {
             return new BigDecimal(Global.AMOUNT);
@@ -234,8 +234,11 @@ public class WaybillOrderDriverVo {
                 loss = loss.divide(new BigDecimal(TaxRateTypeEnum.MILLIMETER.getValue()));
             }
         }
-        //扣亏量
+        //扣亏量=亏吨量-合理损耗值【要求大于0,如果小于0则扣亏货量取0】
         BigDecimal deficitPrice = deficitAmount.subtract(loadAmount.multiply(loss).setScale(4, RoundingMode.HALF_UP));
+        if (deficitPrice.doubleValue() <= 0) {
+            return new BigDecimal(Global.AMOUNT);
+        }
         return deficitPrice;
     }
 }

+ 8 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -115,7 +115,7 @@ public class KwtWaybillOrderService {
     public Map<String, Object> findStatisticsSumByDriver(Map params) {
         Map<String, Object> data = waybillOrderDao.findStatisticsSumByDriver(params);
         Double deficitLossAmount = waybillOrderDao.deficitLossAmountByDriver(params);
-        data.put("deficitLossAmount", deficitLossAmount);
+        data.put("deficitLossAmount", deficitLossAmount <= 0 ? Global.AMOUNT : deficitLossAmount);
         return data;
     }
 
@@ -1768,8 +1768,13 @@ public class KwtWaybillOrderService {
         }
 
         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);
+        BigDecimal deficitLossAmount = deficitAmount.subtract(loadAmount.multiply(loss).setScale(4, RoundingMode.HALF_UP));
+        //扣亏量=亏吨量-合理损耗值【要求大于0,如果小于0则扣亏货量取0】
+        if (deficitLossAmount.doubleValue() <= 0) {
+            return new BigDecimal(Global.AMOUNT);
+        }
+        //罚款值=扣亏量 * 扣亏货值
+        BigDecimal deficitPrice = deficitLossAmount.multiply(goodsPrice).setScale(4, RoundingMode.HALF_UP);
         return deficitPrice;
     }
 

+ 1 - 1
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -311,7 +311,7 @@
 
     <select id="deficitLossAmountByDriver" resultType="java.lang.Double" parameterType="java.util.Map">
         SELECT
-            FORMAT(sum(deficitLossAmount), 2) deficitLossAmount
+            FORMAT(IFNULL(sum(deficitLossAmount), 0.0), 2) deficitLossAmount
         from (
             SELECT
             ( deficitAmount - FORMAT((loadAmount * loss / lossUnit),2) ) deficitLossAmount