瀏覽代碼

Merge remote-tracking branch 'origin/dev_20251130' into dev_20251130

# Conflicts:
#	sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/WaybillOrderService.java
donglang 5 天之前
父節點
當前提交
183f747f41

+ 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());
 
         }

+ 11 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -4338,17 +4338,21 @@ public class KwtWaybillOrderV1Service {
                  //remark = "审核驳回,运单【"+ billOrder.getWOrderNo() + "】已驳回";
                 remark = "因【"+ req.getRemark() + "】审核未通过";
             }else {
-                 remark = "审核通过,运单【"+ billOrder.getWOrderNo() + "】已完成";
+                 remark = "审核通过,卸货量【"+ req.getUnloadAmount() + "】,运单【"+ billOrder.getWOrderNo() + "】已完成";
             }
 
-            saveNode(billOrder, subtask, status,remark);
+            saveNode(billOrder, subtask, status,remark,req.getAddressUrl());
             if (!b ){
                 throw new BusinessException("审核运单失败");
             }
             //查询司机是否存在已绑定的车辆
             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;
@@ -4375,8 +4379,8 @@ public class KwtWaybillOrderV1Service {
             Long currentRoleId = LoginUserHolder.getCurrentRoleId();
             KwsRoleDto kwsRoleDto = remoteSystemService.queryByRoleIdAndEntId(currentRoleId);
             String roleName =  Objects.nonNull(kwsRoleDto) ? kwsRoleDto.getName() : "";
-            String remark = "供应方,【"+roleName+"】【"+LoginUserHolder.getUserName()+"】已审核单证";
-            saveNode(billOrder, subtask, status,remark);
+            String remark = "【"+roleName+"】【"+LoginUserHolder.getUserName()+"】已完善单证,卸货量【"+ req.getUnloadAmount() + "】,运单【"+ billOrder.getWOrderNo() + "】已完成";
+            saveNode(billOrder, subtask, status,remark,req.getAddressUrl());
             if (!b ){
                throw new BusinessException("完善单证失败");
             }
@@ -4825,7 +4829,7 @@ public class KwtWaybillOrderV1Service {
         tradeOrderInfoService.orderSettle(tradeOrderSettlePara);
     }
 
-    private void saveNode(KwtWaybillOrder billOrder, KwtWaybillOrderSubtask subtask, Integer status,String remark) {
+    private void saveNode(KwtWaybillOrder billOrder, KwtWaybillOrderSubtask subtask, Integer status,String remark,String imageUrl) {
         KwtWaybillOrderNode kwtWaybillOrderNode = new KwtWaybillOrderNode();
         kwtWaybillOrderNode.setTruckId(billOrder.getTruckId());
         kwtWaybillOrderNode.setTruckNo(billOrder.getTruckNo());
@@ -4838,6 +4842,7 @@ public class KwtWaybillOrderV1Service {
         kwtWaybillOrderNode.setRemark(remark);
         kwtWaybillOrderNode.setCreateBy(LoginUserHolder.getUserId());
         kwtWaybillOrderNode.setTruckId(billOrder.getTruckId());
+        kwtWaybillOrderNode.setWeighUrl(imageUrl);
         kwtWaybillOrderNodeRepository.save(kwtWaybillOrderNode);
     }
 

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

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