瀏覽代碼

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

donglang 1 月之前
父節點
當前提交
f1157bea90

+ 10 - 0
sckw-gateway/src/main/resources/bootstrap-test.yml

@@ -17,4 +17,14 @@ spring:
         namespace: @nacos.namespace@
         # 共享配置
         group: sckw-ng-service-platform
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true
 

+ 19 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractLogisticsRepository.java

@@ -11,6 +11,7 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 import java.util.Set;
@@ -78,4 +79,22 @@ public class KwcContractLogisticsRepository extends ServiceImpl<KwcContractLogis
                 .like(org.apache.commons.lang3.StringUtils.isNotBlank(contractNo),KwcContractLogistics::getContractNo, contractNo)
                 .like(org.apache.commons.lang3.StringUtils.isNotBlank(contractName),KwcContractLogistics::getName, contractName));
     }
+
+    /**
+     * 查询时间范围内的指定派车方式的物流合同
+     * @param contractIdList
+     * @param startTime
+     * @param endTime
+     * @param dispatchingType
+     * @return
+     */
+    public KwcContractLogistics queryBy(Set<Long> contractIdList, Date startTime, Date endTime, Integer dispatchingType) {
+        return getOne(Wrappers.<KwcContractLogistics>lambdaQuery()
+                .eq(KwcContractLogistics::getDelFlag, 0)
+                .in(KwcContractLogistics::getId, contractIdList)
+                .eq(KwcContractLogistics::getDispatching, dispatchingType)
+                .and(queryWrapper -> queryWrapper.between(KwcContractLogistics::getStartTime, startTime, endTime)
+                        .or().between(KwcContractLogistics::getEndTime, startTime, endTime)
+                        .or(queryWrapper1->queryWrapper1.le(KwcContractLogistics::getStartTime, startTime).ge(KwcContractLogistics::getEndTime, endTime))));
+    }
 }

+ 15 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractLogisticsService.java

@@ -1258,6 +1258,9 @@ public class KwcContractLogisticsService {
             saveContractLogistics.setEndTime(DateUtils.getEndOfDay(baseInfo.getEndTime()));
         }
 
+        //校验物流企业是否存在同时段的自动派车合同
+        checkAutoDispatchingContractExist(baseInfo);
+
         saveContractLogistics.setStatus(ContractStatusEnum.SUBMIT.getCode());
         saveContractLogistics.setCreateBy(LoginUserHolder.getUserId());
         saveContractLogistics.setCreateTime(date);
@@ -1286,6 +1289,18 @@ public class KwcContractLogisticsService {
 
         return Boolean.TRUE;
     }
+
+    public void checkAutoDispatchingContractExist(LogisticListReq.TradeBaseInfo baseInfo) {
+        List<KwcContractLogisticsUnit> units = kwcContractLogisticsUnitRepository.queryByEntIdAndEntType(baseInfo.getPurchaseEntId(), EntTypeEnum.LOGISTICS4.getCode());
+        if (CollectionUtils.isNotEmpty(units)) {
+            Set<Long> contractIdList = units.stream().map(KwcContractLogisticsUnit::getContractId).collect(Collectors.toSet());
+            KwcContractLogistics kwcContractLogistics = kwcContractLogisticsRepository.queryBy(contractIdList,baseInfo.getStartTime(),baseInfo.getEndTime(),Integer.parseInt(DictEnum.DISPATCHING_TYPE_2.getValue()));
+            if (Objects.nonNull(kwcContractLogistics)){
+                throw new BusinessException("当前物流企业在合同时间段内已存在自动派车合同");
+            }
+        }
+    }
+
     private String changeFile(String contractFile) {
         if (StringUtils.isNotBlank(contractFile)) {
             JSONArray jsonArray = JSONArray.parseArray(contractFile);

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/MapVehicleQueryReq.java

@@ -24,7 +24,7 @@ public class MapVehicleQueryReq  implements Serializable {
     private Long consignEntId;
 
     @Schema(description = "物流订单号")
-    private String lOrderNo;
+    private String logisticOrderNo;
 
     @Schema(description = "车辆定位状态(1-在线,0-离线,null-全部)")
     private Integer locationStatus;

+ 15 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/kwfTruckTraceService.java

@@ -793,7 +793,7 @@ public class kwfTruckTraceService {
         
         // 前置条件:根据承运单位和托运单位筛选出符合条件的运单ID
         Set<Long> wayOrderIds = getWayOrderIds(req);
-        if (CollectionUtils.isEmpty(wayOrderIds) && (StringUtils.isNotBlank(req.getLOrderNo()) || Objects.nonNull(req.getCarrierEntId()) || Objects.nonNull(req.getConsignEntId()))){
+        if (CollectionUtils.isEmpty(wayOrderIds) && (StringUtils.isNotBlank(req.getLogisticOrderNo()) || Objects.nonNull(req.getCarrierEntId()) || Objects.nonNull(req.getConsignEntId()))){
             return PageDataResult.empty(req.getPageNum(), req.getPageSize());
         }
 
@@ -965,13 +965,22 @@ public class kwfTruckTraceService {
                 return Set.of();
             }
         }
-        if (StringUtils.isNotBlank(req.getLOrderNo())) {
+        if (StringUtils.isNotBlank(req.getLogisticOrderNo())) {
             // 获取物流订单ID
-            KwtLogisticsOrder logOrder = kwtLogisticsOrderRepository.queryByLogisticOrderNo(req.getLOrderNo());
+            KwtLogisticsOrder logOrder = kwtLogisticsOrderRepository.queryByLogisticOrderNo(req.getLogisticOrderNo());
             if (Objects.isNull(logOrder)) {
                 return Set.of();
             }
-            wayOrderIds.add(logOrder.getId());
+            //根据物流订单id查询子运单
+            List<KwtWaybillOrderSubtask> subtasks = kwtWaybillOrderSubtaskRepository.queryByLogId(logOrder.getId());
+            // 使用更明确的初始化方式
+            if (CollectionUtils.isNotEmpty(subtasks)) {
+                // 直接收集WOrderId,避免无效的addAll操作
+                wayOrderIds.addAll(subtasks.stream()
+                        .map(KwtWaybillOrderSubtask::getWOrderId)
+                        .filter(Objects::nonNull)
+                        .collect(Collectors.toSet()));
+            }
         }
         return wayOrderIds;
     }
@@ -1126,7 +1135,7 @@ public class kwfTruckTraceService {
         vo.setDriverPhone(order.getDriverPhone());
         vo.setWOrderNo(order.getWOrderNo());
         vo.setStatus(order.getStatus());
-        vo.setStatusDesc(CarWaybillEnum.getName(order.getStatus()));
+        vo.setStatusDesc(CarWaybillV1Enum.geDesc(order.getStatus()));
         
         // 子运单信息
         KwtWaybillOrderSubtask subtask = subtaskMap.get(order.getId());
@@ -1214,7 +1223,7 @@ public class kwfTruckTraceService {
         Set<Long> allEnt = Sets.newHashSet();
         //根据企业类型查询企业
 
-        allEnt.add(253145323650682880L);
+        allEnt.add(LoginUserHolder.getEntId());
         EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(LoginUserHolder.getUserId());
         if (Objects.nonNull(entCacheResDto)) {
             EntCacheResDto entCacheResDto1 = remoteSystemService.queryEntTreeById(entCacheResDto.getId());