Quellcode durchsuchen

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

donglang vor 2 Wochen
Ursprung
Commit
a9fe4380ca

+ 12 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtLogisticsOrderController.java

@@ -9,9 +9,7 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.transport.model.LogisticsOrderPara;
 import com.sckw.transport.model.OrderPara;
-import com.sckw.transport.model.dto.LogisticsConsignmentDto;
-import com.sckw.transport.model.dto.LogisticsOrderFinishDto;
-import com.sckw.transport.model.dto.LogisticsOrderSubcontractDto;
+import com.sckw.transport.model.dto.*;
 import com.sckw.transport.model.param.AddLogisticsOrderParam;
 import com.sckw.transport.model.param.LogisticsOrderResp;
 import com.sckw.transport.model.param.QueryLogisticsOrderReq;
@@ -220,4 +218,15 @@ public class KwtLogisticsOrderController {
         tradeOrderPara.setUserId(orderPara.getUserId());
         return HttpResult.ok(logisticsConsignmentService.queryList(tradeOrderPara));
     }
+
+
+    /**
+     * 运单号下拉列表(支持输入匹配)
+     */
+    @PostMapping("/waybillOrderSelect")
+    @Operation(summary = "物流订单号下拉列表", description = "支持根据运单号输入匹配,返回运单号、车牌号、司机信息等")
+    public BaseResult<List<LogisticOrderSelectOptionVo>> getLogisticOrderSelectList(@RequestBody LogisticOrderSelectReq req) {
+
+        return BaseResult.success(logisticsConsignmentService.getLogisticOrderSelectList(req));
+    }
 }

+ 28 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/LogisticOrderSelectReq.java

@@ -0,0 +1,28 @@
+package com.sckw.transport.model.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 运单号下拉查询请求
+ * 该类用于封装物流订单下拉查询所需的请求参数
+ * @author system
+ */
+@Data
+@Schema(description = "物流订单下拉查询请求")
+public class LogisticOrderSelectReq implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 运单号
+     * 用于存储用户输入的运单号关键字,支持模糊匹配
+     */
+    @Schema(description = "物流订单号(模糊匹配)")
+    private String logisticOrderNo;
+
+}

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

@@ -21,7 +21,7 @@ public class WaybillOrderSelectReq implements Serializable {
      * 运单号
      */
     @Schema(description = "运单号(模糊匹配)")
-    private String wOrderNo;
+    private String keyword;
 
     /**
      * 企业ID

+ 34 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/LogisticOrderSelectOptionVo.java

@@ -0,0 +1,34 @@
+package com.sckw.transport.model.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 运单号下拉选项VO
+ * @author system
+ */
+@Data
+@Schema(description = "运单号下拉选项")
+public class LogisticOrderSelectOptionVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+    * 物流ID
+    */
+    @Schema(description = "物流ID")
+    private Long id;
+    /**
+     * 物流订单号
+     */
+    @Schema(description = "物流订单号")
+    private String logisticOrderNo;
+    /**
+     * 物流状态
+     */
+    @Schema(description = "物流状态")
+    private Integer status;
+}

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

@@ -129,4 +129,10 @@ public class KwtLogisticsOrderRepository extends ServiceImpl<KwtLogisticsOrderMa
                 .eq(KwtLogisticsOrder::getEntId, entId)
                 .orderByDesc(KwtLogisticsOrder::getId));
     }
+
+    public List<KwtLogisticsOrder> selectWaybillOrderOptions(Set<Long> logOrderIds, String logisticOrderNo) {
+        return list(Wrappers.<KwtLogisticsOrder>lambdaQuery().eq(KwtLogisticsOrder::getDelFlag, 0)
+                .in( KwtLogisticsOrder::getId, logOrderIds)
+                .like(StringUtils.isNotBlank(logisticOrderNo), KwtLogisticsOrder::getLOrderNo, logisticOrderNo));
+    }
 }

+ 4 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderRepository.java

@@ -31,11 +31,11 @@ public class KwtWaybillOrderRepository extends ServiceImpl<KwtWaybillOrderMapper
 
     /**
      * 查询运单号下拉列表(支持模糊查询)
-     * @param entId 企业ID
+     * @param wayOrderIds 运单id集合
      * @param wOrderNo 运单号(模糊匹配)
      * @return 运单号列表
      */
-    public List<KwtWaybillOrder> selectWaybillOrderOptions(Long entId, String wOrderNo) {
+    public List<KwtWaybillOrder> selectWaybillOrderOptions(Set<Long> wayOrderIds, String wOrderNo) {
         LambdaQueryWrapper<KwtWaybillOrder> wrapper = Wrappers.<KwtWaybillOrder>lambdaQuery()
                 .select(KwtWaybillOrder::getId,
                         KwtWaybillOrder::getWOrderNo,
@@ -44,10 +44,9 @@ public class KwtWaybillOrderRepository extends ServiceImpl<KwtWaybillOrderMapper
                         KwtWaybillOrder::getDriverPhone,
                         KwtWaybillOrder::getStatus)
                 .eq(KwtWaybillOrder::getDelFlag, 0)
-                .eq(entId != null, KwtWaybillOrder::getEntId, entId)
+                .in(CollectionUtils.isNotEmpty(wayOrderIds), KwtWaybillOrder::getId, wayOrderIds)
                 .like(StringUtils.isNotBlank(wOrderNo), KwtWaybillOrder::getWOrderNo, wOrderNo)
-                .orderByDesc(KwtWaybillOrder::getCreateTime)
-                .last("LIMIT 100");
+                .orderByDesc(KwtWaybillOrder::getCreateTime);
 
         return list(wrapper);
 

+ 12 - 12
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtAcceptCarriageOrderService.java

@@ -3452,11 +3452,11 @@ public class KwtAcceptCarriageOrderService {
         if (Objects.isNull(ent)) {
             throw new BusinessException("企业:" + orderDTO.getConsignCompany() + "的一级企业信息不存在!");
         }
-        consignUnit.setContactsId(orderDTO.getConsignContactsId());
+        consignUnit.setContactsId(ent.getContactsId());
         consignUnit.setTopEntId(ent.getId());
-        consignUnit.setFirmName(orderDTO.getConsignCompany());
-        consignUnit.setContacts(orderDTO.getConsignContacts());
-        consignUnit.setPhone(orderDTO.getConsignContactPhone());
+        consignUnit.setFirmName(ent.getFirmName());
+        consignUnit.setContacts(ent.getContacts());
+        consignUnit.setPhone(ent.getPhone());
 //        consignUnit.setRemark(orderDTO.getRemark());
         consignUnit.setStatus(NumberConstant.ZERO);
         consignUnit.setCreateBy(orderDTO.getUserId());
@@ -3474,11 +3474,11 @@ public class KwtAcceptCarriageOrderService {
         if (Objects.isNull(ent1)) {
             throw new BusinessException("企业:" + x.getAcceptCompany() + "的一级企业信息不存在!");
         }
-        unit.setContactsId(x.getAcceptContactsId());
+        unit.setContactsId(ent1.getContactsId());
         unit.setTopEntId(ent1.getId());
-        unit.setFirmName(x.getAcceptCompany());
-        unit.setContacts(x.getAcceptContacts());
-        unit.setPhone(x.getAcceptContactPhone());
+        unit.setFirmName(ent1.getFirmName());
+        unit.setContacts(ent1.getContacts());
+        unit.setPhone(ent1.getPhone());
 //        unit.setRemark(orderDTO.getRemark());
         unit.setStatus(NumberConstant.ZERO);
         unit.setCreateBy(orderDTO.getUserId());
@@ -3496,11 +3496,11 @@ public class KwtAcceptCarriageOrderService {
         if (Objects.isNull(ent2)) {
             throw new BusinessException("企业:" + orderDTO.getNonConsignCompany() + "的一级企业信息不存在!");
         }
-        notifyUnit.setContactsId(orderDTO.getNonConsignContactsId());
+        notifyUnit.setContactsId(ent2.getContactsId());
         notifyUnit.setTopEntId(ent2.getId());
-        notifyUnit.setFirmName(orderDTO.getNonConsignCompany());
-        notifyUnit.setContacts(orderDTO.getNonConsignContacts());
-        notifyUnit.setPhone(orderDTO.getNonConsignContactPhone());
+        notifyUnit.setFirmName(ent2.getFirmName());
+        notifyUnit.setContacts(ent2.getContacts());
+        notifyUnit.setPhone(ent2.getPhone());
 //        unit.setRemark(orderDTO.getRemark());
         notifyUnit.setStatus(NumberConstant.ZERO);
         notifyUnit.setCreateBy(orderDTO.getUserId());

+ 30 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java

@@ -3308,4 +3308,34 @@ public class KwtLogisticsConsignmentService {
         }
         return new ArrayList<>();
     }
+
+    public List<LogisticOrderSelectOptionVo> getLogisticOrderSelectList(LogisticOrderSelectReq req) {
+        Long entId = LoginUserHolder.getEntId();
+        //根据企业查询物流订单
+        List<KwtLogisticsOrderUnit> kwtLogisticsOrderUnits = logisticsOrderUnitRepository.queryByEntId(entId);
+        if (CollUtil.isEmpty(kwtLogisticsOrderUnits)) {
+            log.info("该企业未查询到物流订单数据,企业id:{}", entId);
+            return List.of();
+        }
+        //获取物流订单号
+        Set<Long> logOrderIds = kwtLogisticsOrderUnits.stream()
+                .map(KwtLogisticsOrderUnit::getLOrderId)
+                .collect(Collectors.toSet());
+        if (CollUtil.isEmpty(logOrderIds)) {
+            log.info("该企业下物流订单数据,企业id:{}", entId);
+            return List.of();
+        }
+        List<KwtLogisticsOrder> logisticOrders = logisticsOrderRepository.selectWaybillOrderOptions(logOrderIds, req.getLogisticOrderNo());
+
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(logisticOrders)) {
+            return List.of();
+        }
+        return logisticOrders.stream().map(d -> {
+            LogisticOrderSelectOptionVo logisticOrderSelectOptionVo = new LogisticOrderSelectOptionVo();
+            logisticOrderSelectOptionVo.setId(d.getId());
+            logisticOrderSelectOptionVo.setLogisticOrderNo(d.getLOrderNo());
+            logisticOrderSelectOptionVo.setStatus(d.getStatus());
+            return logisticOrderSelectOptionVo;
+        }).collect(Collectors.toList());
+    }
 }

+ 37 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -1,10 +1,13 @@
 package com.sckw.transport.service;
 
+import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.base.BaseModel;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.constant.NumberConstant;
 import com.sckw.core.model.enums.*;
@@ -31,6 +34,7 @@ import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.transport.dao.*;
+import com.sckw.transport.repository.KwtLogisticsOrderUnitRepository;
 import com.sckw.transport.repository.KwtWaybillOrderRepository;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
@@ -39,6 +43,7 @@ import com.sckw.transport.model.dto.WaybillOrderSelectReq;
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,6 +66,7 @@ import java.util.stream.Collectors;
  */
 @Slf4j
 @Service
+@RequiredArgsConstructor
 @SuppressWarnings("all")
 public class KwtWaybillOrderService {
 
@@ -98,6 +104,7 @@ public class KwtWaybillOrderService {
     KwtLogisticsOrderGoodsService kwtLogisticsOrderGoodsService;
     @Autowired
     KwtCommonService commonService;
+    private final KwtLogisticsOrderUnitRepository logisticsOrderUnitRepository;
     @Resource
     private StreamBridge streamBridge;
     @DubboReference(version = "1.0.0", group = "design", check = false)
@@ -118,7 +125,36 @@ public class KwtWaybillOrderService {
      */
     public List<WaybillOrderSelectOptionVo> getWaybillOrderSelectList(WaybillOrderSelectReq req) {
         Long entId = req.getEntId() != null ? req.getEntId() : LoginUserHolder.getEntId();
-        List<KwtWaybillOrder> waybillOrders = waybillOrderRepository.selectWaybillOrderOptions(entId, req.getWOrderNo());
+
+        //根据企业查询物流订单
+        List<KwtLogisticsOrderUnit> kwtLogisticsOrderUnits = logisticsOrderUnitRepository.queryByEntId(entId);
+        if (CollUtil.isEmpty(kwtLogisticsOrderUnits)) {
+            log.info("该企业未查询到物流订单数据,企业id:{}", entId);
+            return List.of();
+        }
+        //获取物流订单号
+        Set<Long> logOrderIds = kwtLogisticsOrderUnits.stream()
+                .map(KwtLogisticsOrderUnit::getLOrderId)
+                .collect(Collectors.toSet());
+        if (CollUtil.isEmpty(logOrderIds)) {
+            log.info("该企业下物流订单数据,企业id:{}", entId);
+            return List.of();
+        }
+        //查询子运单
+        List<KwtWaybillOrderSubtask> kwtWaybillOrderSubtasks = waybillOrderSubtaskDao.selectList(Wrappers.<KwtWaybillOrderSubtask>lambdaQuery()
+                .in(KwtWaybillOrderSubtask::getLOrderId, logOrderIds)
+                .eq(BaseModel::getDelFlag, 0));
+        if(org.apache.commons.collections4.CollectionUtils.isEmpty(kwtWaybillOrderSubtasks)){
+            log.info("该企业下子运单的订单数据不存在,企业id:{}", entId);
+            return List.of();
+        }
+        //获取子运单ID
+        Set<Long> wayOrderIds = kwtWaybillOrderSubtasks
+                .stream()
+                .map(KwtWaybillOrderSubtask::getWOrderId)
+                .collect(Collectors.toSet());
+        //查询
+        List<KwtWaybillOrder> waybillOrders = waybillOrderRepository.selectWaybillOrderOptions(wayOrderIds, req.getKeyword());
         if (org.apache.commons.collections4.CollectionUtils.isEmpty(waybillOrders)) {
             return List.of();
         }

+ 14 - 13
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -3191,7 +3191,8 @@ public class KwtWaybillOrderV1Service {
     private Set<Long> getLogOrderIds(WaybillOrderReq req) {
         Set<Long> logOrderIds = Sets.newHashSet();
         Set<Long> entIds = Sets.newHashSet();
-        entIds.add(LoginUserHolder.getEntId());
+        Long entId = LoginUserHolder.getEntId();
+        entIds.add(entId);
         if (StringUtils.isNotBlank(req.getConsignorId())){
             entIds.add(Long.parseLong(req.getConsignorId()));
         }
@@ -3203,7 +3204,7 @@ public class KwtWaybillOrderV1Service {
             List<KwtLogisticsOrderUnit> unitList = kwtLogisticsOrderUnitRepository.queryByEntIds(entIds);
             if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
                 Set<Long> logOrderIdList = unitList.stream()
-                        .filter(x -> Objects.equals(x.getEntId(), LoginUserHolder.getEntId()))
+                        .filter(x -> Objects.equals(x.getEntId(), entId))
                         .map(KwtLogisticsOrderUnit::getLOrderId)
                         .collect(Collectors.toSet());
                 Set<Long> logisticsOrderIds = unitList.stream()
@@ -3248,25 +3249,25 @@ public class KwtWaybillOrderV1Service {
                 logOrderIds = Sets.newHashSet();
             }
         }
-        List<KwtLogisticsOrderGoods> logisticsOrderGoods =null ;
+
         if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getGoodsName())){
             List<KwpGoods> goods = goodsInfoService.findGoodsByGoodsName(req.getGoodsName());
             if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(goods)){
                 Set<Long> goodsIds = goods.stream()
                         .map(KwpGoods::getId)
                         .collect(Collectors.toSet());
-               logisticsOrderGoods = kwtLogisticsOrderGoodsRepository.queryByGoodsIds(goodsIds);
+                List<KwtLogisticsOrderGoods> logisticsOrderGoods = kwtLogisticsOrderGoodsRepository.queryByGoodsIds(goodsIds);
+                if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(logisticsOrderGoods)){
+                    Set<Long> logOrderIdList = logisticsOrderGoods.stream()
+                            .map(KwtLogisticsOrderGoods::getLOrderId)
+                            .collect(Collectors.toSet());
+                    logOrderIds.addAll(logOrderIdList);
+                    logOrderIds = logOrderIds.stream().filter(logOrderIdList::contains).collect(Collectors.toSet());
+                }else {
+                    logOrderIds = Sets.newHashSet();
+                }
             }
         }
-        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(logisticsOrderGoods)){
-            Set<Long> logOrderIdList = logisticsOrderGoods.stream()
-                    .map(KwtLogisticsOrderGoods::getLOrderId)
-                    .collect(Collectors.toSet());
-            logOrderIds.addAll(logOrderIdList);
-            logOrderIds = logOrderIds.stream().filter(logOrderIdList::contains).collect(Collectors.toSet());
-        }else {
-            logOrderIds = Sets.newHashSet();
-        }
 
         if (StringUtils.isNotBlank(req.getLogisticsOrderId())  && CollectionUtils.isNotEmpty(logOrderIds)){
             logOrderIds =logOrderIds.stream()