Эх сурвалжийг харах

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

donglang 2 долоо хоног өмнө
parent
commit
cf45b29d2f

+ 38 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/task/TradeOrderTask.java

@@ -6,6 +6,8 @@ import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.LogisticsOrderV1Enum;
+import com.sckw.core.utils.DateUtils;
+import com.sckw.core.web.response.BaseResult;
 import com.sckw.order.dao.KwoTradeOrderGoodsMapper;
 import com.sckw.order.dao.KwoTradeOrderMapper;
 import com.sckw.order.dao.KwoTradeOrderUnitMapper;
@@ -25,6 +27,7 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -97,7 +100,8 @@ public class TradeOrderTask {
                         walletFreeze.setTTradeOrderId(kwoTradeOrder.getId());
                         walletFreeze.setOrderNo(kwoTradeOrder.getTOrderNo());
                         log.info("结算 {}", JSONObject.toJSONString(walletFreeze));
-                        paymentDubboService.dealMoney(walletFreeze);
+                        BaseResult<Boolean> booleanBaseResult = paymentDubboService.dealMoney(walletFreeze);
+                        log.info("结算结果:{}", JSONObject.toJSONString(booleanBaseResult));
 
                         kwoTradeOrder.setStatus(TradeOrderStatusEnum.SUCCESS.getCode());
                         kwoTradeOrderMapper.updateById(kwoTradeOrder);
@@ -109,6 +113,38 @@ public class TradeOrderTask {
             }
 
         }
-
+        List<KwoTradeOrder> kwoTradeOrders2 = kwoTradeOrderMapper.selectList(new LambdaQueryWrapper<KwoTradeOrder>()
+                .eq(KwoTradeOrder::getStatus, List.of(TradeOrderStatusEnum.AUDIT.getCode(), TradeOrderStatusEnum.ING.getCode()))
+                .lt(KwoTradeOrder::getEndTime, DateUtils.getEndOfDay(new Date()))
+                .eq(KwoTradeOrder::getDelFlag, Global.UN_DELETED)
+        );
+        if (CollUtil.isNotEmpty(kwoTradeOrders2)) {
+            threadPoolExecutor.execute(() -> {
+                Map<Integer, List<KwoTradeOrder>> collect = kwoTradeOrders2.stream().collect(Collectors.groupingBy(KwoTradeOrder::getStatus));
+                for (Map.Entry<Integer, List<KwoTradeOrder>> one : collect.entrySet()) {
+                    List<KwoTradeOrder> value = one.getValue();
+                    if (CollUtil.isEmpty(value)) {
+                        continue;
+                    }
+                    if (Objects.equals(one.getKey(), TradeOrderStatusEnum.AUDIT.getCode())) {
+                        for (KwoTradeOrder kwoTradeOrder : value) {
+                            WalletFreeze walletFreeze = new WalletFreeze();
+                            walletFreeze.setTTradeOrderId(kwoTradeOrder.getId());
+                            walletFreeze.setOrderNo(kwoTradeOrder.getTOrderNo());
+                            BaseResult<Boolean> booleanBaseResult = paymentDubboService.unfreezeMoney(walletFreeze);
+                            log.info("解冻结果:{}", JSONObject.toJSONString(booleanBaseResult));
+                            kwoTradeOrder.setStatus(TradeOrderStatusEnum.SUCCESS.getCode());
+                            kwoTradeOrderMapper.updateById(kwoTradeOrder);
+                        }
+                    }
+                    if (Objects.equals(one.getKey(), TradeOrderStatusEnum.ING.getCode())) {
+                        for (KwoTradeOrder kwoTradeOrder : value) {
+                            kwoTradeOrder.setStatus(TradeOrderStatusEnum.DEAL.getCode());
+                            kwoTradeOrderMapper.updateById(kwoTradeOrder);
+                        }
+                    }
+                }
+            });
+        }
     }
 }

+ 9 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderSubtaskRepository.java

@@ -84,4 +84,13 @@ public class KwtWaybillOrderSubtaskRepository extends ServiceImpl<KwtWaybillOrde
                 .eq(BaseModel::getDelFlag,0)
                 .last("limit 1"));
     }
+
+    public List<KwtWaybillOrderSubtask> findByList(Integer status, Set<Long> billOrderIds, Set<Long> logOrderIds) {
+        return list(Wrappers.<KwtWaybillOrderSubtask>lambdaQuery()
+                .eq(BaseModel::getDelFlag,0)
+                .eq(Objects.nonNull( status),KwtWaybillOrderSubtask::getStatus, status)
+                .in(CollectionUtils.isNotEmpty(logOrderIds),KwtWaybillOrderSubtask::getLOrderId, logOrderIds)
+                .in(CollectionUtils.isNotEmpty(billOrderIds),KwtWaybillOrderSubtask::getWOrderId, billOrderIds)
+        );
+    }
 }

+ 22 - 21
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -2984,7 +2984,7 @@ public class KwtWaybillOrderV1Service {
 
         //查询运单信息
         //运单id集合
-        Set<Long> billOrderIds = getBillOrderIds(req,null);
+        Set<Long> billOrderIds = getBillOrderIds(req);
         boolean b = Stream.of(req.getWaybillNo(), req.getTruckNo(), req.getDriverName(), req.getPhone(),
                         req.getLoadStartTime(),req.getLoadEndTime(),req.getUnloadStartTime(),req.getUnloadEndTime())
                         .anyMatch(StringUtils::isNotBlank);
@@ -3279,7 +3279,7 @@ public class KwtWaybillOrderV1Service {
     }
 
     @NotNull
-    private Set<Long> getBillOrderIds(WaybillOrderReq req,Set<Long> logOrderIds) {
+    private Set<Long> getBillOrderIds(WaybillOrderReq req) {
         Set<Long> billOrderIds = Sets.newHashSet();
         KwtWaybillOrder order = getKwtWaybillOrder(req);
         boolean b = Stream.of(req.getWaybillNo(), req.getTruckNo(), req.getDriverName(), req.getPhone()).anyMatch(StringUtils::isNotBlank);
@@ -3314,16 +3314,16 @@ public class KwtWaybillOrderV1Service {
                         .collect(Collectors.toSet()));
             }
         }
-        if (CollectionUtils.isNotEmpty(logOrderIds)){
-            //查询子运单
-            List<KwtWaybillOrderSubtask> waybillOrderSubtasks = kwtWaybillOrderSubtaskRepository.queryByLogIds(new ArrayList<>(logOrderIds));
-            Set<Long> billOrderIdList = Optional.ofNullable(waybillOrderSubtasks).orElse(List.of()).stream()
-                    .map(KwtWaybillOrderSubtask::getWOrderId)
-                    .collect(Collectors.toSet());
-            if (CollectionUtils.isNotEmpty(billOrderIdList)){
-                billOrderIds.addAll(billOrderIdList);
-            }
-        }
+//        if (CollectionUtils.isNotEmpty(logOrderIds)){
+//            //查询子运单
+//            List<KwtWaybillOrderSubtask> waybillOrderSubtasks = kwtWaybillOrderSubtaskRepository.queryByLogIds(new ArrayList<>(logOrderIds));
+//            Set<Long> billOrderIdList = Optional.ofNullable(waybillOrderSubtasks).orElse(List.of()).stream()
+//                    .map(KwtWaybillOrderSubtask::getWOrderId)
+//                    .collect(Collectors.toSet());
+//            if (CollectionUtils.isNotEmpty(billOrderIdList)){
+//                billOrderIds.addAll(billOrderIdList);
+//            }
+//        }
         return billOrderIds;
     }
 
@@ -4251,7 +4251,7 @@ public class KwtWaybillOrderV1Service {
         boolean b1 = !org.apache.commons.lang3.StringUtils.isAllBlank(req.getLogisticsOrderNo(), req.getGoodsName(),
                 req.getCarrierId(), req.getConsignorId());
         if(org.apache.commons.collections4.CollectionUtils.isEmpty(logOrderIds) && b1){
-            Map<Integer, List<KwtWaybillOrder>> stausAndBillOrdersMap = Maps.newHashMap();
+            Map<Integer, List<KwtWaybillOrderSubtask>> stausAndBillOrdersMap = Maps.newHashMap();
             List<StatisticsWaybillResp.OrderBillStatusStatistics> statusStatistics = carWaybillV1Enums.stream()
                     .map(c -> getOrderBillStatusStatistics(c, stausAndBillOrdersMap))
                     .collect(Collectors.toList());
@@ -4260,12 +4260,12 @@ public class KwtWaybillOrderV1Service {
         }
         //查询运单信息
         //运单id集合
-        Set<Long> billOrderIds = getBillOrderIds(req,logOrderIds);
+        Set<Long> billOrderIds = getBillOrderIds(req);
         boolean b = Stream.of(req.getWaybillNo(), req.getTruckNo(), req.getDriverName(), req.getPhone(),
                         req.getLoadStartTime(),req.getLoadEndTime(),req.getUnloadStartTime(),req.getUnloadEndTime())
-                .anyMatch(StringUtils::isNotBlank) || Objects.nonNull(LoginUserHolder.getEntId());
+                .anyMatch(StringUtils::isNotBlank);
         if (org.apache.commons.collections4.CollectionUtils.isEmpty(billOrderIds) && b){
-            Map<Integer, List<KwtWaybillOrder>> stausAndBillOrdersMap = Maps.newHashMap();
+            Map<Integer, List<KwtWaybillOrderSubtask>> stausAndBillOrdersMap = Maps.newHashMap();
             List<StatisticsWaybillResp.OrderBillStatusStatistics> statusStatistics = carWaybillV1Enums.stream()
                     .map(c -> getOrderBillStatusStatistics(c, stausAndBillOrdersMap))
                     .collect(Collectors.toList());
@@ -4273,17 +4273,18 @@ public class KwtWaybillOrderV1Service {
             return statisticsWaybillResp;
         }
 
-        List<KwtWaybillOrder> orders = kwtWaybillOrderRepository.findList(status,billOrderIds,logOrderIds);
-
+       // List<KwtWaybillOrder> orders = kwtWaybillOrderRepository.findList(status,billOrderIds,logOrderIds);
+        //查询子运单
+        List<KwtWaybillOrderSubtask> orders = kwtWaybillOrderSubtaskRepository.findByList(status,billOrderIds,logOrderIds);
         if (CollectionUtils.isEmpty(orders)) {
-            Map<Integer, List<KwtWaybillOrder>> stausAndBillOrdersMap = Maps.newHashMap();
+            Map<Integer, List<KwtWaybillOrderSubtask>> stausAndBillOrdersMap = Maps.newHashMap();
             List<StatisticsWaybillResp.OrderBillStatusStatistics> statusStatistics = carWaybillV1Enums.stream()
                     .map(c -> getOrderBillStatusStatistics(c, stausAndBillOrdersMap))
                     .collect(Collectors.toList());
             statisticsWaybillResp.setOrderStatusStatistics(statusStatistics);
             return statisticsWaybillResp;
         }
-        Map<Integer,List<KwtWaybillOrder>> stausAndBillOrdersMap = orders.stream().collect(Collectors.groupingBy(KwtWaybillOrder::getStatus));
+        Map<Integer,List<KwtWaybillOrderSubtask>> stausAndBillOrdersMap = orders.stream().collect(Collectors.groupingBy(KwtWaybillOrderSubtask::getStatus));
         List<StatisticsWaybillResp.OrderBillStatusStatistics> statusStatis = carWaybillV1Enums.stream()
                 .map(c -> getOrderBillStatusStatistics(c, stausAndBillOrdersMap))
                 .collect(Collectors.toList());
@@ -4292,7 +4293,7 @@ public class KwtWaybillOrderV1Service {
        return statisticsWaybillResp;
     }
 
-    private static StatisticsWaybillResp.OrderBillStatusStatistics getOrderBillStatusStatistics(CarWaybillV1Enum c, Map<Integer, List<KwtWaybillOrder>> finalStausAndBillOrdersMap) {
+    private static StatisticsWaybillResp.OrderBillStatusStatistics getOrderBillStatusStatistics(CarWaybillV1Enum c, Map<Integer, List<KwtWaybillOrderSubtask>> finalStausAndBillOrdersMap) {
         StatisticsWaybillResp.OrderBillStatusStatistics orderBillStatusStatistics = new StatisticsWaybillResp.OrderBillStatusStatistics();
         orderBillStatusStatistics.setOrderStatus(String.valueOf(c.getCode()));
         orderBillStatusStatistics.setOrderStatusDesc(c.getDestination());