Sfoglia il codice sorgente

提交合同查询接口

chenxiaofei 1 mese fa
parent
commit
e093f68722

+ 2 - 2
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/param/OrderFinishParam.java

@@ -16,7 +16,7 @@ public class OrderFinishParam implements Serializable {
     @Serial
     private static final long serialVersionUID = -8497329584784837085L;
     /**
-     * 物流订单id
+     * 贸易id
      */
-    private Long logisticOrderId;
+    private Long tradeOrderId;
 }

+ 4 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dubbo/TransportServiceImpl.java

@@ -1100,11 +1100,12 @@ public class TransportServiceImpl implements TransportRemoteService {
     @Override
     public Boolean logisticOrderFinish(OrderFinishParam req) {
         log.info("流程完结物流订单:{}", JSON.toJSONString(req));
-        if (Objects.isNull( req.getLogisticOrderId())){
-            throw new BusinessException("物流订单id不能为空");
+        if (Objects.isNull( req.getTradeOrderId())){
+            throw new BusinessException("贸易订单id不能为空");
         }
+
         OrderFinishReq orderFinishReq = new OrderFinishReq();
-        orderFinishReq.setLogisticOrderId(Collections.singletonList(req.getLogisticOrderId()));
+        orderFinishReq.setTradeOrderId(req.getTradeOrderId());
         return logisticsConsignmentService.logisticOrderFinish(orderFinishReq);
 
     }

+ 4 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderFinishReq.java

@@ -25,4 +25,8 @@ public class OrderFinishReq implements Serializable {
     @Schema(description = "物流订单id")
     @NotEmpty(message = "物流订单id不能为空")
     private List<Long> logisticOrderId;
+    /**
+     *  贸易订单 id
+     */
+    private Long tradeOrderId;
 }

+ 6 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderRepository.java

@@ -98,4 +98,10 @@ public class KwtLogisticsOrderRepository extends ServiceImpl<KwtLogisticsOrderMa
                 .eq(KwtLogisticsOrder::getDelFlag,0)
                 .eq(KwtLogisticsOrder::getEntId, entId));
     }
+
+    public List<KwtLogisticsOrder> queryByBillMethod(String billingMethod) {
+        return list(Wrappers.<KwtLogisticsOrder>lambdaQuery()
+                .eq(KwtLogisticsOrder::getDelFlag,0)
+                .eq(KwtLogisticsOrder::getBillingMode, billingMethod));
+    }
 }

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

@@ -2887,11 +2887,17 @@ public class KwtLogisticsConsignmentService {
         return logisticsOrderCirculate;
     }
 
-    public Boolean logisticOrderFinish(@Valid OrderFinishReq req) {
+    public Boolean logisticOrderFinish( OrderFinishReq req) {
         log.info("物流订单-完结订单传递参数信息:{}", JSONObject.toJSONString(req));
-        //查询物流订单
-        List<KwtLogisticsOrder> logisticsOrder =
-                logisticsOrderRepository.queryByLogisticsOrderIds(req.getLogisticOrderId());
+        List<KwtLogisticsOrder> logisticsOrder= Lists.newArrayList();
+        //根据运单号查询物流运单
+        if (Objects.nonNull(req.getTradeOrderId())){
+             logisticsOrder = logisticsOrderRepository.queryByTradeOrderId(req.getTradeOrderId());
+        }else {
+            //查询物流订单
+            logisticsOrder =
+                    logisticsOrderRepository.queryByLogisticsOrderIds(req.getLogisticOrderId());
+        }
         if (CollectionUtils.isEmpty(logisticsOrder)){
             throw new BusinessException("未找到该物流订单信息");
         }
@@ -2925,6 +2931,13 @@ public class KwtLogisticsConsignmentService {
                 }
             }
         });
+        Map<Long, List<KwtLogisticsOrder>> tradeOrderIdAndLogisticsOrdersMap = logisticsOrders.stream()
+                .filter(x -> Objects.equals(x.getStatus(), LogisticsOrderV1Enum.HAVE_RECONCILED.getCode()))
+                .collect(Collectors.groupingBy(KwtLogisticsOrder::getTOrderId));
+        tradeOrderIdAndLogisticsOrdersMap.forEach((tradeOrderId,orders)->{
+            //todo  cxf  通知贸易订单完成
+        });
+
         return logisticsOrderRepository.updateBatchById(logisticsOrders);
     }
 

+ 31 - 8
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -3108,6 +3108,14 @@ public class KwtWaybillOrderV1Service {
             logOrderIds.add(Long.parseLong(req.getLogisticsOrderId()));
         }
 
+        if (StringUtils.isNotBlank(req.getBillingMethod() )){
+            List<KwtLogisticsOrder> kwtLogisticsOrder = logisticsOrderRepository.queryByBillMethod(req.getBillingMethod());
+            if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(kwtLogisticsOrder)){
+                logOrderIds.addAll(kwtLogisticsOrder.stream()
+                        .map(KwtLogisticsOrder::getId)
+                        .collect(Collectors.toSet()));
+            }
+        }
         if (StringUtils.isNotBlank(req.getLogisticsOrderNo()) && StringUtils.isBlank(req.getLogisticsOrderId())){
             KwtLogisticsOrder kwtLogisticsOrder = logisticsOrderRepository.queryByLogisticsOrderNo(req.getLogisticsOrderNo());
             if (Objects.nonNull(kwtLogisticsOrder)){
@@ -3409,7 +3417,7 @@ public class KwtWaybillOrderV1Service {
         waybillOrderDetailResp.setBillInfo(billInfo);
         if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(billOrders)){
             List<Long> billOrderIdList = billOrders.stream()
-                    .filter(b -> Objects.equals(b.getStatus(), CarWaybillV1Enum.COMPLETION_LOADING.getCode()))
+                    .filter(b -> Objects.equals(b.getStatus(), CarWaybillV1Enum.COMPLETION_LOADING.getCode()) && !Objects.equals(b.getId(),billOrder.getId()))
                     .map(KwtWaybillOrder::getId)
                     .collect(Collectors.toList());
             waybillOrderDetailResp.setBillOrderIdList(billOrderIdList);
@@ -3445,13 +3453,13 @@ public class KwtWaybillOrderV1Service {
             updateSubtask.setRemark(req.getRemark());
             updateSubtask.setUnloadAmount(org.apache.commons.lang3.StringUtils.isBlank(req.getUnloadAmount()) ? null  :  new BigDecimal(req.getUnloadAmount()));
             if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getAddressUrl())){
-                subtask.setUnloadUrl(req.getAddressUrl());
+                updateSubtask.setUnloadUrl(req.getAddressUrl());
             }
             if(org.apache.commons.lang3.StringUtils.isNotBlank(req.getUploadUser())){
-                subtask.setUnloadOperator(Long.valueOf(req.getUploadUser()));
+                updateSubtask.setUnloadOperator(Long.valueOf(req.getUploadUser()));
             }
             if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getUploadTime())){
-                subtask.setUnloadUploadTime(DateUtils.parse(req.getUploadTime(), DateUtils.DATE_TIME_PATTERN));
+                updateSubtask.setUnloadUploadTime(DateUtils.parse(req.getUploadTime(), DateUtils.DATE_TIME_PATTERN));
             }
             boolean b = kwtWaybillOrderRepository.updateById(updateOrder) && kwtWaybillOrderSubtaskRepository.updateById(updateSubtask);
             //修改物流订单数据
@@ -3459,6 +3467,11 @@ public class KwtWaybillOrderV1Service {
             //获取更新 订单状态
             KwtLogisticsOrder kwtLogisticsOrder = getKwtLogisticsOrder(kwtLogistics, subtask);
             boolean b1 = kwtLogisticsOrderRepository.updateById(kwtLogisticsOrder);
+            //如果物流订单状态是已完成需要通知贸易订单完成
+            if (Objects.equals(kwtLogisticsOrder.getStatus(),LogisticsOrderV1Enum.HAVE_RECONCILED.getCode())){
+                //todo cxf通知贸易订单完成
+            }
+
             // 存储记录
             String remark = null;
             if (Objects.equals(status, CarWaybillV1Enum.COMPLETION_UNLOADING.getCode())){
@@ -3483,13 +3496,13 @@ public class KwtWaybillOrderV1Service {
             updateSubtask.setRemark(req.getRemark());
             updateSubtask.setUnloadAmount(org.apache.commons.lang3.StringUtils.isNotBlank(req.getUnloadAmount()) ? new BigDecimal(req.getUnloadAmount()) : null);
             if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getAddressUrl())){
-                subtask.setUnloadUrl(req.getAddressUrl());
+                updateSubtask.setUnloadUrl(req.getAddressUrl());
             }
             if(org.apache.commons.lang3.StringUtils.isNotBlank(req.getUploadUser())){
-                subtask.setUnloadOperator(Long.valueOf(req.getUploadUser()));
+                updateSubtask.setUnloadOperator(Long.valueOf(req.getUploadUser()));
             }
             if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getUploadTime())){
-                subtask.setUnloadUploadTime(DateUtils.parse(req.getUploadTime(), DateUtils.DATE_TIME_PATTERN));
+                updateSubtask.setUnloadUploadTime(DateUtils.parse(req.getUploadTime(), DateUtils.DATE_TIME_PATTERN));
             }
             boolean b = kwtWaybillOrderRepository.updateById(updateOrder) && kwtWaybillOrderSubtaskRepository.updateById(updateSubtask);
 //            kwtWaybillOrderTicket.setWOrderId(waybillId);
@@ -3527,10 +3540,16 @@ public class KwtWaybillOrderV1Service {
     }
 
     @NotNull
-    private static KwtLogisticsOrder getKwtLogisticsOrder(KwtLogisticsOrder kwtLogistics, KwtWaybillOrderSubtask subtask) {
+    private  KwtLogisticsOrder getKwtLogisticsOrder(KwtLogisticsOrder kwtLogistics, KwtWaybillOrderSubtask subtask) {
         if (Objects.isNull(kwtLogistics)){
             throw new BusinessException("物流订单信息不存在");
         }
+        //调物流订单完结订单
+        List<KwtWaybillOrderSubtask> waybillOrderSubtasks = kwtWaybillOrderSubtaskRepository.queryByLogId(subtask.getLOrderId());
+        boolean b2 = waybillOrderSubtasks.stream()
+                .allMatch(x -> Arrays.asList(CarWaybillV1Enum.WAIT_UNLOADING.getCode(), CarWaybillV1Enum.APPROVAL_TREAT.getCode()).contains(x.getStatus()));
+        // KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderRepository.queryByLogisticsOrderId(subtask.getLOrderId());
+
         BigDecimal entrustAmount  = Objects.isNull(kwtLogistics.getEntrustAmount())  ? BigDecimal.ZERO: kwtLogistics.getEntrustAmount();
         BigDecimal subEntrustAmount = Objects.isNull(subtask.getEntrustAmount()) ? BigDecimal.ZERO: subtask.getEntrustAmount();
         BigDecimal loadAmount  = Objects.isNull(kwtLogistics.getLoadAmount())  ? BigDecimal.ZERO: kwtLogistics.getLoadAmount();
@@ -3544,6 +3563,10 @@ public class KwtWaybillOrderV1Service {
         kwtLogisticsOrder.setEntrustAmount(entrustAmount.add(subEntrustAmount));
         kwtLogisticsOrder.setLoadAmount(loadAmount.add(subLoadAmount));
         kwtLogisticsOrder.setUnloadAmount(unloadAmount.add(subUnloadAmount));
+        if (b2){
+            //调物流订单完结订单
+            kwtLogisticsOrder.setStatus(LogisticsOrderV1Enum.HAVE_RECONCILED.getCode());
+        }
         return kwtLogisticsOrder;
     }