Browse Source

提交订单余量为负值的处理

chenxiaofei 1 week ago
parent
commit
de3c0b5a9b

+ 4 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java

@@ -2921,7 +2921,8 @@ public class KwtLogisticsConsignmentService {
                 //logTotatalAmount = logTotatalAmount.add(unloadAmountSum);
             }
         }
-        return tradeAmount.subtract(logTotatalAmount).setScale(2, RoundingMode.HALF_UP).toPlainString();
+        BigDecimal subSurplus = tradeAmount.subtract(logTotatalAmount).compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : tradeAmount.subtract(logTotatalAmount);
+        return subSurplus.setScale(2, RoundingMode.HALF_UP).toPlainString();
     }
 
     public LogisticsOrderDetailResp getLogisticsOrderDetail(@Valid LogisticsOrderReq req) {
@@ -3061,7 +3062,7 @@ public class KwtLogisticsConsignmentService {
                     BigDecimal.ZERO;
             performanceInfoVO.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
             performanceInfoVO.setUnloadAmount("-");
-            BigDecimal surplusAmount = tradeAmount.subtract(orderAmount.add(loadAmount));
+            BigDecimal surplusAmount = tradeAmount.subtract(orderAmount.add(loadAmount)).compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : tradeAmount.subtract(orderAmount.add(loadAmount));
             performanceInfoVO.setSurplusAmount(surplusAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
 
         } else if (org.apache.commons.lang3.StringUtils.equals(logisticsOrder.getBillingMode(),
@@ -3070,7 +3071,7 @@ public class KwtLogisticsConsignmentService {
                     BigDecimal.ZERO;
             performanceInfoVO.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
             performanceInfoVO.setUnloadAmount(unloadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
-            BigDecimal surplusAmount = tradeAmount.subtract(orderAmount.add(unloadAmount));
+            BigDecimal surplusAmount = tradeAmount.subtract(orderAmount.add(unloadAmount)).compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : tradeAmount.subtract(orderAmount.add(unloadAmount));
             performanceInfoVO.setSurplusAmount(surplusAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
 
         }

+ 5 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -4348,7 +4348,11 @@ public class KwtWaybillOrderV1Service {
             //查询司机是否存在已绑定的车辆
             if (Objects.equals(status, CarWaybillV1Enum.COMPLETED.getCode())){
                 log.info("运单审核完成,解绑司机与车辆关系,运单id:{},企业id:{},司机id:{}", billOrder.getId(), billOrder.getEntId(), billOrder.getDriverId());
-                remoteFleetService.unbindTruck(billOrder.getEntId(), billOrder.getDriverId());
+                try {
+                    remoteFleetService.unbindTruck(billOrder.getEntId(), billOrder.getDriverId());
+                } catch (Exception e) {
+                    log.error("解绑司机与车辆关系失败,运单id:{},企业id:{},司机id:{},异常信息:{}", billOrder.getId(), billOrder.getEntId(), billOrder.getDriverId(), e.getMessage());
+                }
             }
 
             return Boolean.TRUE;

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/WaybillOrderService.java

@@ -857,7 +857,8 @@ public class WaybillOrderService {
                 //logTotatalAmount = logTotatalAmount.add(unloadAmountSum);
             }
         }
-        return tradeAmount.subtract(logTotatalAmount).setScale(2, RoundingMode.HALF_UP).toPlainString();
+        BigDecimal subSurplus = tradeAmount.subtract(logTotatalAmount).compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : tradeAmount.subtract(logTotatalAmount);
+        return subSurplus.setScale(2, RoundingMode.HALF_UP).toPlainString();
     }
 
     /**