Просмотр исходного кода

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

zk 2 лет назад
Родитель
Сommit
b2c5797de4
24 измененных файлов с 302 добавлено и 30 удалено
  1. 10 0
      sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/OrderDetailRes.java
  2. 2 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/AreaTreeFrontResDto.java
  3. 2 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressAddReqVo.java
  4. 14 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java
  5. 38 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/AddressDropListRes.java
  6. 10 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetailRes.java
  7. 15 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderAddressService.java
  8. 36 4
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  9. 14 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderUnitService.java
  10. 2 2
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  11. 16 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  12. 4 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java
  13. 8 4
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java
  14. 2 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  15. 34 9
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  16. 8 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/AcceptCarriageOrderVo.java
  17. 8 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/ConsignOrderVo.java
  18. 12 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java
  19. 3 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsUserController.java
  20. 2 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/SysAreaDao.java
  21. 37 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  22. 3 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java
  23. 11 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/SysAreaService.java
  24. 11 0
      sckw-modules/sckw-system/src/main/resources/mapper/SysAreaDao.xml

+ 10 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/OrderDetailRes.java

@@ -132,6 +132,16 @@ public class OrderDetailRes implements Serializable {
      */
     private String statusLabel;
 
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
     /**
      * 商品信息
      */

+ 2 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/AreaTreeFrontResDto.java

@@ -23,6 +23,8 @@ public class AreaTreeFrontResDto implements Serializable {
 
     private Integer level;
 
+    private Integer pcode;
+
     private List<AreaTreeFrontResDto> child;
 
 }

+ 2 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressAddReqVo.java

@@ -36,6 +36,7 @@ public class AddressAddReqVo implements Serializable {
      * 联系人
      */
     @Pattern(regexp = RegularUtils.NAME, message = "联系人格式不正确")
+    @NotBlank(message = "联系人不能为空")
     private String contacts;
 
     /**
@@ -67,6 +68,7 @@ public class AddressAddReqVo implements Serializable {
      * 联系人电话
      */
     @Pattern(regexp = RegularUtils.PHONE_REG, message = "手机号格式不正确")
+    @NotBlank(message = "手机号不能为空")
     private String phone;
 
     /**

+ 14 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -93,7 +93,7 @@ public class KwoTradeOrderController {
     @GetMapping("/detail")
     @Log(description = "贸易订单详情")
     public HttpResult detail(@RequestParam Long id) {
-        return HttpResult.ok(kwoTradeOrderService.detail(id));
+        return HttpResult.ok("贸易订单详情查询成功",kwoTradeOrderService.detail(id));
     }
 
     /**
@@ -185,4 +185,17 @@ public class KwoTradeOrderController {
         return HttpResult.ok("订单批量删除成功");
     }
 
+    /**
+     * @desc: 获取贸易订单地址下拉列表
+     * @author: yzc
+     * @date: 2023-08-02 17:26
+     * @Param param:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @GetMapping("/getAddressDropList")
+    @Log(description = "获取贸易订单地址下拉列表")
+    public HttpResult getAddressDropList() {
+        return HttpResult.ok("获取贸易订单地址下拉列表成功",kwoTradeOrderService.getAddressDropList());
+    }
+
 }

+ 38 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/AddressDropListRes.java

@@ -0,0 +1,38 @@
+package com.sckw.order.model.vo.res;
+
+import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @desc: 贸易订单地址下拉列表响应
+ * @author: yzc
+ * @date: 2023-08-02 14:49
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class AddressDropListRes implements Serializable {
+
+
+    @Serial
+    private static final long serialVersionUID = -1892537474089018495L;
+
+    /**
+     * 装货地址树
+     */
+    private List<AreaTreeFrontResDto> loadAddressList;
+
+    /**
+     * 卸货地址树
+     */
+    private List<AreaTreeFrontResDto> unloadAddressList;
+
+}

+ 10 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetailRes.java

@@ -133,6 +133,16 @@ public class OrderDetailRes implements Serializable {
      */
     private String statusLabel;
 
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
     /**
      * 商品信息
      */

+ 15 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderAddressService.java

@@ -10,6 +10,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -76,4 +77,18 @@ public class KwoTradeOrderAddressService {
                 .set(KwoTradeOrderAddress::getDelFlag, Global.YES);
         kwoTradeOrderAddressMapper.update(null, wrapper);
     }
+
+    /**
+     * @desc: 根据orderIds查询
+     * @author: yzc
+     * @date: 2023-08-02 18:11
+     * @Param tOrderIds:
+     * @return: java.util.List<com.sckw.order.model.KwoTradeOrderAddress>
+     */
+    public List<KwoTradeOrderAddress> getByOrderIds(Collection<Long> tOrderIds) {
+        LambdaQueryWrapper<KwoTradeOrderAddress> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(KwoTradeOrderAddress::getTOrderId, tOrderIds).eq(KwoTradeOrderAddress::getDelFlag, Global.NO);
+        List<KwoTradeOrderAddress> list = kwoTradeOrderAddressMapper.selectList(wrapper);
+        return CollectionUtils.emptyIfNull(list);
+    }
 }

+ 36 - 4
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -21,10 +21,7 @@ import com.sckw.order.dao.KwoTradeOrderMapper;
 import com.sckw.order.model.*;
 import com.sckw.order.model.dto.OrderCheckDTO;
 import com.sckw.order.model.vo.req.*;
-import com.sckw.order.model.vo.res.AddressInfoDetailRes;
-import com.sckw.order.model.vo.res.GoodsInfoDetailRes;
-import com.sckw.order.model.vo.res.OrderDetailRes;
-import com.sckw.order.model.vo.res.UnitInfoDetailRes;
+import com.sckw.order.model.vo.res.*;
 import com.sckw.payment.api.dubbo.PayCenterDubboService;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.dto.WalletDto;
@@ -33,7 +30,9 @@ import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -43,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @desc: 交易订单(采购订单/销售订单)service
@@ -365,8 +365,10 @@ public class KwoTradeOrderService {
         }
         //订单基本信息
         OrderDetailRes detail = BeanUtils.copyProperties(order, OrderDetailRes.class);
+        UserCacheResDto createUser = remoteSystemService.queryUserCacheById(detail.getCreateBy());
         EntCacheResDto ent = remoteSystemService.queryEntCacheById(detail.getEntId());
         detail.setFirmName(Objects.isNull(ent) ? null : ent.getFirmName())
+                .setCreateByName(Objects.isNull(createUser) ? null : createUser.getName())
                 .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), detail.getTrading()))
                 .setPickupTypeLabel(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), detail.getPickupType()))
                 .setDeliveryTypeLabel(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), detail.getDeliveryType()))
@@ -892,4 +894,34 @@ public class KwoTradeOrderService {
         kwoTradeOrderMapper.update(null, wrapper);
     }
 
+    /**
+     * @desc: 获取贸易订单地址下拉列表
+     * @author: yzc
+     * @date: 2023-08-02 17:28
+     * @return: com.sckw.order.model.vo.res.AddressDropListRes
+     */
+    public AddressDropListRes getAddressDropList() {
+        AddressDropListRes res = new AddressDropListRes();
+        Long entId = LoginUserHolder.getEntId();
+        //一级企业匹配筛选订单id
+        List<KwoTradeOrderUnit> unitInfo = kwoTradeOrderUnitService.getByTopEntId(entId);
+        if (CollectionUtils.isEmpty(unitInfo)) {
+            return res;
+        }
+        Set<Long> tOrderIds = unitInfo.stream().map(KwoTradeOrderUnit::getTOrderId).collect(Collectors.toSet());
+        //订单ids获取地址信息
+        List<KwoTradeOrderAddress> addressList = kwoTradeOrderAddressService.getByOrderIds(tOrderIds);
+        if (CollectionUtils.isEmpty(addressList)) {
+            return res;
+        }
+        //装卸货地址类型分组获取装卸货cityCodes
+        Map<String, List<Integer>> map = addressList.stream().collect(Collectors.
+                groupingBy(KwoTradeOrderAddress::getAddressType, Collectors.mapping(KwoTradeOrderAddress::getCityCode, Collectors.toList())));
+        //装货地址下拉列表树
+        List<AreaTreeFrontResDto> loadTree = remoteSystemService.queryAreaTreeFrontByCodeList(map.get(DictEnum.TORDER_ADDRESS_TYPE_1.getValue()));
+        //卸货地址下拉列表树
+        List<AreaTreeFrontResDto> unloadTree = remoteSystemService.queryAreaTreeFrontByCodeList(map.get(DictEnum.TORDER_ADDRESS_TYPE_2.getValue()));
+        res.setLoadAddressList(loadTree).setUnloadAddressList(unloadTree);
+        return res;
+    }
 }

+ 14 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderUnitService.java

@@ -112,4 +112,18 @@ public class KwoTradeOrderUnitService {
                 .set(KwoTradeOrderUnit::getDelFlag, Global.YES);
         kwoTradeOrderUnitMapper.update(null, wrapper);
     }
+
+    /**
+     * @desc: 根据一级企业匹配
+     * @author: yzc
+     * @date: 2023-08-02 18:06
+     * @Param entId:
+     * @return: java.util.List<com.sckw.order.model.KwoTradeOrderUnit>
+     */
+    public List<KwoTradeOrderUnit> getByTopEntId(Long entId) {
+        LambdaQueryWrapper<KwoTradeOrderUnit> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwoTradeOrderUnit::getTopEntId, entId).eq(KwoTradeOrderUnit::getDelFlag, Global.NO);
+        List<KwoTradeOrderUnit> list = kwoTradeOrderUnitMapper.selectList(wrapper);
+        return CollectionUtils.emptyIfNull(list);
+    }
 }

+ 2 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -456,7 +456,7 @@ public class KwpGoodsService {
                     .setManageName(Objects.nonNull(manager) ? manager.getName() : null)
                     .setPhone(Objects.nonNull(manager) ? manager.getPhone() : null)
                     .setSupplyEnt(Objects.nonNull(entMap.get(e.getSupplyEntId())) ? entMap.get(e.getSupplyEntId()) : null)
-                    .setAddress(Objects.isNull(addressMap.get(id)) ? null : addressMap.get(id).getName() + addressMap.get(id).getDetailAddress())
+                    .setAddress(Objects.isNull(addressMap.get(id)) ? null : addressMap.get(id).getName())
                     .setCreateByName(Objects.nonNull(createUser) ? createUser.getName() : null);
             List<KwpGoodsPriceRange> priceRanges = priceRangeMap.get(id);
             goodsList.setHighestPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(priceRanges.size() - 1).getPrice())
@@ -716,7 +716,7 @@ public class KwpGoodsService {
             BuildingMaterialsMarketList materials = BeanUtils.copyProperties(e, BuildingMaterialsMarketList.class);
             KwpGoodsAddress address = addressMap.get(e.getId());
             List<KwpGoodsPriceRange> priceRanges = priceRangeMap.get(e.getId());
-            materials.setAddressName(Objects.isNull(address) ? null : address.getName())
+            materials.setAddressName(Objects.isNull(address) ? null : address.getCityName())
                     .setDetailAddress(Objects.isNull(address) ? null : address.getDetailAddress())
                     .setPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(0).getPrice())
                     .setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), e.getGoodsType()))

+ 16 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java

@@ -14,6 +14,7 @@ import com.sckw.report.service.vo.AcceptCarriageOrderExcelVo;
 import com.sckw.report.service.vo.ConsignOrderExcelVo;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -237,4 +238,19 @@ public class KwTransportController {
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
+
+    /**
+     * 运单管理-运单列表 运单地址查询接口
+     * @param tag
+     * @return
+     */
+    @RequestMapping(value = "/wayBillAddresses", method = RequestMethod.GET)
+    public HttpResult wayBillAddresses( @RequestParam("tag") @NotNull(message = "类型不能为空") int tag) {
+        try {
+            return transportService.getWayBillAddresses(tag);
+        } catch (Exception e) {
+            log.error("运单管理-运单地址查询接口 {}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
 }

+ 4 - 2
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java

@@ -261,8 +261,10 @@ public class KwAcceptCarriageService {
             vo.setDeficitAmount(logisticsOrder.getDeficitAmount() == null ?
                     null : String.valueOf(logisticsOrder.getDeficitAmount()));
             vo.setGoodsName(logisticsOrder.getGoodsName());
-            vo.setLoadAddress(logisticsOrder.getLoadDetailAddress());
-            vo.setUnloadAddress(logisticsOrder.getUnloadDetailAddress());
+            vo.setLoadCityName(logisticsOrder.getLoadDetailAddress());
+            vo.setLoadAddress(logisticsOrder.getLoadCityName() + logisticsOrder.getLoadDetailAddress());
+            vo.setUnloadAddress(logisticsOrder.getUnloadCityName() + logisticsOrder.getUnloadDetailAddress());
+            vo.setUnloadCityName(logisticsOrder.getUnloadDetailAddress());
             vo.setLOrderId(String.valueOf(logisticsOrder.getLOrderId()));
             vo.setLOrderNo(logisticsOrder.getLOrderNo());
             vo.setLoss(logisticsOrder.getLoss() == null ?

+ 8 - 4
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java

@@ -172,8 +172,12 @@ public class KwConsignService {
             vo.setDeficitAmount(logisticsOrder.getDeficitAmount() == null ?
                     null : String.valueOf(logisticsOrder.getDeficitAmount()));
             vo.setGoodsName(logisticsOrder.getGoodsName());
-            vo.setLoadAddress(logisticsOrder.getLoadDetailAddress());
-            vo.setUnloadAddress(logisticsOrder.getUnloadDetailAddress());
+//            vo.setLoadAddress(logisticsOrder.getLoadDetailAddress());
+//            vo.setUnloadAddress(logisticsOrder.getUnloadDetailAddress());
+            vo.setLoadCityName(logisticsOrder.getLoadDetailAddress());
+            vo.setLoadAddress(logisticsOrder.getLoadCityName() + logisticsOrder.getLoadDetailAddress());
+            vo.setUnloadAddress(logisticsOrder.getUnloadCityName() + logisticsOrder.getUnloadDetailAddress());
+            vo.setUnloadCityName(logisticsOrder.getUnloadDetailAddress());
             vo.setLOrderId(String.valueOf(logisticsOrder.getLOrderId()));
             vo.setLOrderNo(logisticsOrder.getLOrderNo());
             vo.setLoss(logisticsOrder.getLoss() == null ?
@@ -403,7 +407,7 @@ public class KwConsignService {
         packageReturnStatistics(mappedResults, arrayList);
         // 查询结果
         Map<String, Object> map = new HashMap<>(NumberConstant.SIXTEEN);
-        map.put("tableTop",arrayList);
+        map.put("tableTop", arrayList);
         return HttpResult.ok(map);
     }
 
@@ -439,7 +443,7 @@ public class KwConsignService {
                 arrayList.add(top);
             }
         }
-        if (CollectionUtils.isNotEmpty(arrayList)){
+        if (CollectionUtils.isNotEmpty(arrayList)) {
             /**补全统计【全部字段】*/
             Integer sum = Math.toIntExact(arrayList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTotal())).collect(Collectors.summarizingInt(item -> item.getTotal())).getSum());
             TableTops top = new TableTops();

+ 2 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -92,6 +92,8 @@ public class KwOrderService {
                     .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
                     .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
                     .setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
+                    .setLoadDetailAddressInfo(e.getLoadCityName() + e.getUnloadDetailAddress())
+                    .setUnloadDetailAddressInfo(e.getUnloadCityName() + e.getUnloadDetailAddress())
                     .setConsignmentStatus(Objects.isNull(e.getEntrustAmount()) || e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
                     .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
             result.add(order);

+ 34 - 9
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -1,6 +1,7 @@
 package com.sckw.report.service;
 
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
@@ -292,6 +293,7 @@ public class KwTransportService {
         expiredStatuses.add(CarWaybillEnum.REJECT_ORDER.getCode().longValue());
         expiredStatuses.add(CarWaybillEnum.REFUSE_TRAFFIC.getCode().longValue());
         expiredStatuses.add(CarWaybillEnum.REVOKED.getCode().longValue());
+        expiredStatuses.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode().longValue());
         for (CarWaybillEnum status : CarWaybillEnum.values()) {
             boolean expiredFlag = expiredStatuses.contains(status.getCode().longValue());
             TableTops top = new TableTops();
@@ -379,8 +381,8 @@ public class KwTransportService {
             vo.setEndTime(waybillOrder.getEndTime() == null ?
                     null : DateUtil.getDateTime(waybillOrder.getEndTime()));
             vo.setEntrustAmount(String.valueOf(waybillOrder.getEntrustAmount()));
-            vo.setLoadingAddress(waybillOrder.getLoadDetailAddress());
-            vo.setUnloadingAddress(waybillOrder.getUnloadDetailAddress());
+            vo.setLoadingAddress(waybillOrder.getLoadCityName().concat(waybillOrder.getLoadDetailAddress()));
+            vo.setUnloadingAddress(waybillOrder.getUnloadCityName().concat(waybillOrder.getUnloadDetailAddress()));
             vo.setLoadAmount(waybillOrder.getLoadAmount() == null ?
                     null : String.valueOf(waybillOrder.getLoadAmount()));
             vo.setUnloadAmount(waybillOrder.getUnloadAmount() == null ?
@@ -447,8 +449,8 @@ public class KwTransportService {
      * 托运合同-根据合同id获取托运订单列表
      *
      * @param contractId 合同id
-     * @param page  当前页
-     * @param pageSize  每页条数
+     * @param page       当前页
+     * @param pageSize   每页条数
      * @return
      */
     public HttpResult getLogisticsOrderByContractId(String contractId, int page, int pageSize) {
@@ -458,11 +460,11 @@ public class KwTransportService {
         // 创建条件对象
         Criteria criteria = new Criteria();
         // 1. 全等于
-       if (StringUtils.isBlank(contractId)){
-           return HttpResult.error("合同id为空");
-       }else {
-           criteria.and("contractId").is(contractId);
-       }
+        if (StringUtils.isBlank(contractId)) {
+            return HttpResult.error("合同id为空");
+        } else {
+            criteria.and("contractId").is(contractId);
+        }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         Query query1 = new Query(criteria);
         // 12. 总记录数
@@ -492,4 +494,27 @@ public class KwTransportService {
         PageResult build = PageResult.build(page, pageSize, total, list);
         return HttpResult.ok(build);
     }
+
+    /**
+     * 运单管理-运单列表 运单地址查询接口
+     * @param type
+     * @return
+     */
+    public HttpResult getWayBillAddresses(int type) {
+        Criteria criteria = new Criteria();
+        criteria.and("entId").is(LoginUserHolder.getEntId());
+        criteria.and("delFlag").is(NumberConstant.ZERO);
+        Query query = new Query(criteria);
+        String field;
+        if(type == NumberConstant.ONE) {
+            field = "loadCityCode";
+        } else {
+            field = "unloadCityCode";
+        }
+        List<Integer> list  = mongoTemplate.findDistinct(query, field ,SckwWaybillOrder.class, Integer.class);
+        if (CollectionUtils.isNotEmpty(list)) {
+            // RPC 请求数据 获取多级结构信息
+        }
+        return HttpResult.ok(list);
+    }
 }

+ 8 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/AcceptCarriageOrderVo.java

@@ -70,6 +70,10 @@ public class AcceptCarriageOrderVo extends PageRequest {
      * 装货地点
      */
     private String loadAddress;
+    /**
+     * 装货区域名称
+     */
+    private String loadCityName;
     /**
      * 数据库id
      */
@@ -130,6 +134,10 @@ public class AcceptCarriageOrderVo extends PageRequest {
      * 卸货地点
      */
     private String unloadAddress;
+    /**
+     * 卸货区域名称
+     */
+    private String unloadCityName;
     /**
      * 关联承运订单号
      */

+ 8 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/ConsignOrderVo.java

@@ -131,6 +131,14 @@ public class ConsignOrderVo implements Serializable {
      * 卸货地点
      */
     private String unloadAddress;
+    /**
+     * 卸货区域名称
+     */
+    private String unloadCityName;
+    /**
+     * 装货区域名称
+     */
+    private String loadCityName;
     /**
      * 关联承运订单号
      */

+ 12 - 2
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java

@@ -135,11 +135,21 @@ public class OrderListRes {
     /**
      * 装货地点
      */
-    private String loadCityName;
+    private String loadName;
+
+    /**
+     * 装货详细地址=loadCityName+loadDetailAddress
+     */
+    private String loadDetailAddressInfo;
     /**
      * 卸货地点
      */
-    private String unloadCityName;
+    private String unloadName;
+
+    /**
+     * 卸货详细地址=unloadCityName+unloadDetailAddress
+     */
+    private String unloadDetailAddressInfo;
     /**
      * 计划开始时间
      */

+ 3 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsUserController.java

@@ -19,6 +19,7 @@ import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 
@@ -163,8 +164,8 @@ public class KwsUserController {
     }
 
     @PostMapping("testEdit")
-    public HttpResult testEdit(@RequestParam String type, @RequestParam String value) {
-        return HttpResult.ok(kwsUserService.test(type, value));
+    public HttpResult testEdit(@RequestParam String type) {
+        return HttpResult.ok(kwsUserService.test(Arrays.stream(type.split(",")).map(Integer::parseInt).toList()));
     }
 
     @PostMapping("testApprove")

+ 2 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/SysAreaDao.java

@@ -17,4 +17,6 @@ public interface SysAreaDao {
     List<Map<String, Object>> findList(Map<String, Object> params);
 
     SysArea selectById(Integer code);
+
+    List<SysArea> selectByIds(List<Integer> list);
 }

+ 37 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -1,5 +1,7 @@
 package com.sckw.system.dubbo;
 
+import com.google.common.collect.Lists;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -17,6 +19,7 @@ import com.sckw.system.model.vo.res.FindAreaTreeResVo;
 import com.sckw.system.service.KwsUserService;
 import com.sckw.system.service.SysAreaService;
 import org.apache.dubbo.config.annotation.DubboService;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -80,7 +83,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
             return Collections.emptyMap();
         }
 
-        return sysDictResDtos.stream().collect(Collectors.toMap(SysDictResDto::getValue, v->v));
+        return sysDictResDtos.stream().collect(Collectors.toMap(SysDictResDto::getValue, v -> v));
     }
 
     /**
@@ -464,9 +467,41 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
 
     @Override
     public List<AreaTreeFrontResDto> queryAreaTreeFrontByCodeList(List<Integer> list) {
-        return null;
+        List<SysArea> sysAreas = sysAreaService.selectByIds(list);
+        if (CollectionUtils.isEmpty(sysAreas)) {
+            return Collections.emptyList();
+        }
+
+        int maxLevel = sysAreas.stream().map(SysArea::getLevel).max(Integer::compareTo).get();
+        List<AreaTreeFrontResDto> areaTreeFrontResDtoList = BeanUtils.copyToList(sysAreas, AreaTreeFrontResDto.class);
+        List<AreaTreeFrontResDto> upLevel = new ArrayList<>();
+        for (int i = maxLevel; i > 1; i--) {
+            int finalI = i;
+            List<AreaTreeFrontResDto> currentLevelArea = areaTreeFrontResDtoList.stream().filter(item -> item.getLevel().equals(finalI)).toList();
+            for (AreaTreeFrontResDto areaTreeFrontResDto : currentLevelArea) {
+                if (!upLevel.stream().map(AreaTreeFrontResDto::getCode).toList().contains(areaTreeFrontResDto.getCode())) {
+                    upLevel.add(areaTreeFrontResDto);
+                }
+            }
+
+            upLevel.removeIf(x -> x.getLevel() > finalI);
+            Map<Integer, List<AreaTreeFrontResDto>> collect = upLevel.stream().collect(Collectors.groupingBy(AreaTreeFrontResDto::getPcode));
+            for (Integer pcode : collect.keySet()) {
+                SysArea sysArea = sysAreaService.selectById(pcode);
+                AreaTreeFrontResDto areaTreeFrontResDto = new AreaTreeFrontResDto();
+                areaTreeFrontResDto.setCode(sysArea.getCode());
+                areaTreeFrontResDto.setPcode(sysArea.getPcode());
+                areaTreeFrontResDto.setName(sysArea.getName());
+                areaTreeFrontResDto.setLevel(sysArea.getLevel());
+                areaTreeFrontResDto.setChild(collect.get(pcode));
+                upLevel.add(areaTreeFrontResDto);
+            }
+        }
+
+        return upLevel.stream().filter(x -> x.getLevel() == 1).toList();
     }
 
+
     @Override
     public UserCacheResDto queryManagerInfoByEntId(Long entId) {
         KwsEnterpriseResDto kwsEnterpriseResDto = remoteBaseService.queryEnterpriseById(entId);

+ 3 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java

@@ -10,6 +10,7 @@ import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.system.api.model.dto.req.RegisterReqDto;
 import com.sckw.system.api.model.dto.req.UpdatePasswordReqDto;
+import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
 import com.sckw.system.api.model.dto.res.RegisterResDto;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.system.dao.*;
@@ -593,8 +594,8 @@ public class KwsUserService {
         updatePwd(reqVo.getNewPassword(), kwsUser);
     }
 
-    public List<SysDictResDto> test(String type, String value) {
-        return remoteSystemService.queryDictBottom(type, value);
+    public List<AreaTreeFrontResDto> test(List<Integer> list) {
+        return remoteSystemService.queryAreaTreeFrontByCodeList(list);
     }
 
 }

+ 11 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/SysAreaService.java

@@ -44,6 +44,17 @@ public class SysAreaService {
         return sysAreaDao.selectById(code);
     }
 
+    /**
+     * @desc: 根据id获取
+     * @author: yzc
+     * @date: 2023-07-11 11:38
+     * @Param code:
+     * @return: com.sckw.system.model.SysArea
+     */
+    public List<SysArea> selectByIds(List<Integer> list) {
+        return sysAreaDao.selectByIds(list);
+    }
+
 
     /**
      * @param reqVo pcode

+ 11 - 0
sckw-modules/sckw-system/src/main/resources/mapper/SysAreaDao.xml

@@ -57,4 +57,15 @@
     from sys_area
     where code = #{code,jdbcType=INTEGER}
   </select>
+
+    <select id="selectByIds" resultType="com.sckw.system.model.SysArea">
+      select
+      <include refid="Base_Column_List" />
+      from sys_area
+      where del_flag = 0
+        and code in
+      <foreach collection="list" separator="," open="(" close=")" item="item">
+        #{item}
+      </foreach>
+    </select>
 </mapper>