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

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

czh 2 лет назад
Родитель
Сommit
d4996145f7
42 измененных файлов с 1565 добавлено и 142 удалено
  1. 4 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  2. 3 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java
  3. 16 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/BusSumStatusCount.java
  4. 12 2
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java
  5. 15 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/TobleTop.java
  6. 1 0
      sckw-modules-api/pom.xml
  7. 10 4
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java
  8. 91 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/SysAreaCacheResDto.java
  9. 20 0
      sckw-modules-api/sckw-transport-api/pom.xml
  10. 8 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java
  11. 5 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/KwpGoods.java
  12. 1 1
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/KwpGoodsAddress.java
  13. 1 1
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddressInfo.java
  14. 2 2
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/BuildingMaterialsMarketListParam.java
  15. 1 1
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/BuildingMaterialsMarketList.java
  16. 47 21
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  17. 23 0
      sckw-modules/sckw-report/pom.xml
  18. 66 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  19. 17 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/dao/SckwLogisticsOrderRepository.java
  20. 234 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  21. 10 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/AcceptCarriageOrderParam.java
  22. 51 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/AcceptCarriageOrderQuery.java
  23. 45 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/ConsignOrderQuery.java
  24. 167 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/LogisticsConsignmentParam.java
  25. 127 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/AcceptCarriageOrderVo.java
  26. 39 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/CarDataVo.java
  27. 76 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/CarWaybillVo.java
  28. 139 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/ConsignOrderVo.java
  29. 129 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/ConsignmentVo.java
  30. 18 0
      sckw-modules/sckw-system/pom.xml
  31. 88 88
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsDeptController.java
  32. 4 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/SysAreaDao.java
  33. 23 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  34. 5 8
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java
  35. 13 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/SysAreaService.java
  36. 7 0
      sckw-modules/sckw-system/src/main/resources/mapper/SysAreaDao.xml
  37. 9 0
      sckw-modules/sckw-transport/pom.xml
  38. 4 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrder.java
  39. 5 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java
  40. 17 13
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  41. 10 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java
  42. 2 1
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

+ 4 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java

@@ -13,6 +13,10 @@ import lombok.Getter;
 public enum DictEnum {
     PRICE_TYPE_0("price_type", "0", "元/吨"),
     PRICE_TYPE_1("price_type", "1", "元/车"),
+    UNIT_TYPE_0("unit_type","0", "吨"),
+    UNIT_TYPE_1("unit_type","1", "方"),
+    UNIT_TYPE_2("unit_type","2", "箱"),
+    UNIT_TYPE_3("unit_type","3", "件"),
     TRADE_TYPE_0("trade_type", "0", "预付款"),
     TRADE_TYPE_1("trade_type", "1", "货到付款"),
     TRADE_TYPE_2("trade_type", "2", "线下付款"),

+ 3 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java

@@ -89,6 +89,9 @@ public class Global {
     /**redis企业信息前缀*/
     public static final String REDIS_ENTERPRISE_PREFIX = "enterpriseInfo:";
 
+    /**redis区域信息前缀*/
+    public static final String REDIS_AREA_PREFIX = "areaInfo:";
+
     /**redis用户菜单信息前缀*/
     public static final String REDIS_SYS_MENU_PREFIX = "sysMenu:";
 

+ 16 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/BusSumStatusCount.java

@@ -0,0 +1,16 @@
+package com.sckw.mongo.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lfdc
+ * @description 分组统计
+ * @date 2023-07-10 21:07:55
+ */
+@Data
+public class BusSumStatusCount {
+    private List<TobleTop> tobleTops;
+
+}

+ 12 - 2
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java

@@ -162,7 +162,7 @@ public class SckwLogisticsOrder {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private String status = "0";
 
     /**
      * 企业id
@@ -378,10 +378,20 @@ public class SckwLogisticsOrder {
      * 是否删除(0未删除,1删除)
      */
     @TableLogic("0")
-    private Integer delFlag = 0;
+    private String delFlag = "0";
 
     /**
      * 关联的承运订单号
      */
     private String wOrderNo;
+
+    /**
+     * 分配的承运量
+     */
+    private Long carryingCapacity;
+
+    /**
+     * 计费方式
+     */
+    private String billingMode;
 }

+ 15 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/TobleTop.java

@@ -0,0 +1,15 @@
+package com.sckw.mongo.model;
+
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 首页统计参数
+ * @date 2023-07-11 08:07:41
+ */
+@Data
+public class TobleTop {
+    private String name;
+    private String value;
+    private int total;
+}

+ 1 - 0
sckw-modules-api/pom.xml

@@ -16,6 +16,7 @@
         <module>sckw-file-api</module>
         <module>sckw-message-api</module>
         <module>sckw-modules-bom</module>
+        <module>sckw-transport-api</module>
     </modules>
 
     <properties>

+ 10 - 4
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java

@@ -1,9 +1,6 @@
 package com.sckw.system.api;
 
-import com.sckw.system.api.model.dto.res.EntCacheResDto;
-import com.sckw.system.api.model.dto.res.SysDictGroupResDto;
-import com.sckw.system.api.model.dto.res.SysDictResDto;
-import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import com.sckw.system.api.model.dto.res.*;
 
 import java.util.List;
 import java.util.Map;
@@ -113,4 +110,13 @@ public interface RemoteSystemService {
      * @return: Map
      */
     Map<Long, List<UserCacheResDto>> queryUserCacheMapByIds(List<Long> userIds);
+
+    /**
+     * @desc: 从缓存查区域信息
+     * @author: yzc
+     * @date: 2023-07-11 11:45
+     * @Param code:
+     * @return: com.sckw.system.api.model.dto.res.SysAreaCacheResDto
+     */
+    SysAreaCacheResDto queryAreaCacheById(Integer code);
 }

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

@@ -0,0 +1,91 @@
+package com.sckw.system.api.model.dto.res;
+
+import com.sckw.system.api.model.dto.BaseModelResDto;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @desc: 地区信息响应dto
+ * @author: yzc
+ * @date: 2023-07-11 11:40
+ */
+@Data
+public class SysAreaCacheResDto extends BaseModelResDto implements Serializable {
+
+    /**
+     * 地区ID
+     */
+    private Integer code;
+
+    /**
+     * 全国省_地区ID
+     */
+    private Integer pcode;
+
+    /**
+     * 地区对应省份id
+     */
+    private Integer provinceCode;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 简称
+     */
+    private String shortName;
+
+    /**
+     * 上级地区
+     */
+    private String mergerName;
+
+    /**
+     * 省
+     */
+    private String province;
+
+    /**
+     * 市
+     */
+    private String city;
+
+    /**
+     * 1.热门
+     */
+    private Integer hot;
+
+    /**
+     * 级别
+     */
+    private Integer level;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    /**
+     * 拼音简称
+     */
+    private String letter;
+
+    /**
+     * 拼音
+     */
+    private String pinyin;
+
+    /**
+     * 第一个字母
+     */
+    private String firstchar;
+
+}

+ 20 - 0
sckw-modules-api/sckw-transport-api/pom.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.sckw</groupId>
+        <artifactId>sckw-modules-api</artifactId>
+        <version>1.0.0</version>
+    </parent>
+
+    <artifactId>sckw-transport-api</artifactId>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+</project>

+ 8 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java

@@ -0,0 +1,8 @@
+package com.sckw.transport.api.dubbo;
+
+/**
+ *
+ *
+ */
+public interface TransportDubboService {
+}

+ 5 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/KwpGoods.java

@@ -48,6 +48,11 @@ public class KwpGoods extends BaseModel {
      */
     private String goodsType;
 
+    /**
+     * 省份code
+     */
+    private Integer provinceCode;
+
     /**
      * 库存数量
      */

+ 1 - 1
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/KwpGoodsAddress.java

@@ -47,7 +47,7 @@ public class KwpGoodsAddress extends BaseModel {
     /**
      * 所在地区
      */
-    private Long cityCode;
+    private Integer cityCode;
 
     /**
      * 所属区域名称

+ 1 - 1
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddressInfo.java

@@ -44,7 +44,7 @@ public class AddressInfo {
      * 所在地区
      */
     @NotNull(message = "所在地区code不能为空")
-    private Long cityCode;
+    private Integer cityCode;
 
     /**
      * 所属区域名称

+ 2 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/BuildingMaterialsMarketListParam.java

@@ -28,9 +28,9 @@ public class BuildingMaterialsMarketListParam extends PageRequest {
     private List<String> goodsTypes;
 
     /**
-     * 地区集合(全国为空)
+     * 省份code集合(全国为空)
      */
-    private List<Long> areaCodes;
+    private List<Integer> provinceCodes;
 
     /**
      * 交易方式(预付款、货到付款、线下付款)

+ 1 - 1
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/BuildingMaterialsMarketList.java

@@ -61,7 +61,7 @@ public class BuildingMaterialsMarketList {
     /**
      * 所属区域
      */
-    private String cityName;
+    private String addressName;
 
     /**
      * 详细地址

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

@@ -25,6 +25,7 @@ import com.sckw.product.model.vo.req.*;
 import com.sckw.product.model.vo.res.*;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import com.sckw.system.api.model.dto.res.SysAreaCacheResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -68,6 +69,11 @@ public class KwpGoodsService {
         Long entId = LoginUserHolder.getEntId();
         //添加商品信息
         KwpGoods goods = BeanUtils.copyProperties(addGoodsParam, KwpGoods.class);
+        if (Objects.nonNull(addGoodsParam.getAddressInfo())) {
+            Integer cityCode = addGoodsParam.getAddressInfo().getCityCode();
+            SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
+            goods.setProvinceCode(area.getProvinceCode());
+        }
         goods.setEntId(entId).setStatus(GoodsStatusEnum.SAVED.getCode());
         kwpGoodsMapper.insert(goods);
         addGoodsOtherInfo(goods.getId(), addGoodsParam);
@@ -88,7 +94,10 @@ public class KwpGoodsService {
         Long entId = LoginUserHolder.getEntId();
         //添加商品信息
         KwpGoods goods = BeanUtils.copyProperties(addGoodsParam, KwpGoods.class);
-        goods.setEntId(entId).setAddedTime(new Date()).setStatus(GoodsStatusEnum.PUT_ON_SHELVES.getCode());
+        Integer cityCode = addGoodsParam.getAddressInfo().getCityCode();
+        SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
+        goods.setProvinceCode(area.getProvinceCode()).setEntId(entId)
+                .setAddedTime(new Date()).setStatus(GoodsStatusEnum.PUT_ON_SHELVES.getCode());
         kwpGoodsMapper.insert(goods);
         addGoodsOtherInfo(goods.getId(), addGoodsParam);
     }
@@ -104,8 +113,10 @@ public class KwpGoodsService {
     private void addGoodsOtherInfo(Long goodsId, AddGoodsParam addGoodsParam) {
         //添加商品地址信息
         KwpGoodsAddress address = BeanUtils.copyProperties(addGoodsParam.getAddressInfo(), KwpGoodsAddress.class);
-        address.setGoodsId(goodsId);
-        kwpGoodsAddressService.insert(address);
+        if (Objects.nonNull(address)) {
+            address.setGoodsId(goodsId);
+            kwpGoodsAddressService.insert(address);
+        }
         //添加商品属性信息
         List<GoodsAttributes> attributes = addGoodsParam.getAttributes();
         if (CollectionUtils.isNotEmpty(attributes)) {
@@ -206,6 +217,11 @@ public class KwpGoodsService {
         if (Objects.equals(param.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())) {
             goods.setAddedTime(new Date());
         }
+        if (Objects.nonNull(param.getAddressInfo())) {
+            Integer cityCode = param.getAddressInfo().getCityCode();
+            SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
+            goods.setProvinceCode(area.getProvinceCode());
+        }
         kwpGoodsMapper.updateById(goods);
         updateGoodsOtherInfo(param);
     }
@@ -221,9 +237,11 @@ public class KwpGoodsService {
         Long goodsId = param.getId();
         //更新商品地址信息
         kwpGoodsAddressService.delByGoodsIds(Collections.singletonList(goodsId));
-        KwpGoodsAddress address = BeanUtils.copyProperties(param.getAddressInfo(), KwpGoodsAddress.class);
-        address.setGoodsId(goodsId);
-        kwpGoodsAddressService.insert(address);
+        if (Objects.nonNull(param.getAddressInfo())) {
+            KwpGoodsAddress address = BeanUtils.copyProperties(param.getAddressInfo(), KwpGoodsAddress.class);
+            address.setGoodsId(goodsId);
+            kwpGoodsAddressService.insert(address);
+        }
 
         //更新商品属性信息
         kwpGoodsAttributeService.delByGoodsIds(Collections.singletonList(goodsId));
@@ -358,7 +376,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).getCityName() + addressMap.get(id).getDetailAddress())
+                    .setAddress(Objects.isNull(addressMap.get(id)) ? null : addressMap.get(id).getName() + addressMap.get(id).getDetailAddress())
                     .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())
@@ -376,25 +394,24 @@ public class KwpGoodsService {
      * @return: java.util.List<com.sckw.product.model.KwpGoods>
      */
     private IPage<KwpGoods> getGoodsLists(SelectGoodsListParam params, Boolean isPage) {
-        List<Long> entIds = new ArrayList<>();
-        if (StringUtils.isNotBlank(params.getKeywords())) {
-            List<EntCacheResDto> entList = remoteSystemService.queryEntCacheByName(params.getKeywords());
-            if (CollectionUtils.isNotEmpty(entList)) {
-                entIds = entList.stream().map(EntCacheResDto::getId).toList();
-            }
-        }
         LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
         if (CollectionUtils.isNotEmpty(params.getIds())) {
             wrapper.in(KwpGoods::getId, params.getIds());
         } else {
-            List<Long> finalEntIds = entIds;
             wrapper.ge(Objects.nonNull(params.getStartCreateTime()), KwpGoods::getCreateTime, params.getStartCreateTime())
                     .le(Objects.nonNull(params.getEndCreateTime()), KwpGoods::getCreateTime, params.getEndCreateTime())
                     .in(CollectionUtils.isNotEmpty(params.getTradings()), KwpGoods::getTrading, params.getTradings())
                     .in(CollectionUtils.isNotEmpty(params.getGoodsTypes()), KwpGoods::getGoodsType, params.getGoodsTypes())
-                    .in(CollectionUtils.isNotEmpty(params.getStatus()), KwpGoods::getStatus, params.getStatus())
-                    .and(e -> e.in(CollectionUtils.isNotEmpty(finalEntIds), KwpGoods::getSupplyEntId, finalEntIds)
-                            .or().like(StringUtils.isNotBlank(params.getKeywords()), KwpGoods::getName, params.getKeywords()));
+                    .in(CollectionUtils.isNotEmpty(params.getStatus()), KwpGoods::getStatus, params.getStatus());
+            if (StringUtils.isNotBlank(params.getKeywords())) {
+                List<EntCacheResDto> entList = remoteSystemService.queryEntCacheByName(params.getKeywords());
+                List<Long> entIds = entList.stream().map(EntCacheResDto::getId).toList();
+                if (CollectionUtils.isEmpty(entIds)) {
+                    wrapper.like(KwpGoods::getName, params.getKeywords());
+                }else {
+                    wrapper.and(e -> e.in(KwpGoods::getSupplyEntId, entIds).or().like(KwpGoods::getName, params.getKeywords()));
+                }
+            }
         }
         wrapper.eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO).orderByDesc(KwpGoods::getCreateTime);
         IPage<KwpGoods> goodsIpage = new Page<>();
@@ -538,10 +555,19 @@ public class KwpGoodsService {
     public PageResult buildingMaterialsMarketList(BuildingMaterialsMarketListParam params) {
         Page<KwpGoods> page = new Page<>(params.getPage(), params.getPageSize());
         LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
-        wrapper.like(StringUtils.isNotBlank(params.getKeywords()), KwpGoods::getName, params.getKeywords())
-                .in(CollectionUtils.isNotEmpty(params.getGoodsTypes()), KwpGoods::getGoodsType, params.getGoodsTypes())
+        wrapper.in(CollectionUtils.isNotEmpty(params.getGoodsTypes()), KwpGoods::getGoodsType, params.getGoodsTypes())
                 .in(CollectionUtils.isNotEmpty(params.getTradings()), KwpGoods::getTrading, params.getTradings())
+                .in(CollectionUtils.isNotEmpty(params.getProvinceCodes()), KwpGoods::getProvinceCode, params.getProvinceCodes())
                 .eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).eq(KwpGoods::getDelFlag, Global.NO);
+        if (StringUtils.isNotBlank(params.getKeywords())) {
+            List<EntCacheResDto> entList = remoteSystemService.queryEntCacheByName(params.getKeywords());
+            List<Long> entIds = entList.stream().map(EntCacheResDto::getId).toList();
+            if (CollectionUtils.isNotEmpty(entIds)) {
+                wrapper.and(e -> e.in(KwpGoods::getSupplyEntId, entIds).or().like(KwpGoods::getName, params.getKeywords()));
+            }else {
+                wrapper.like(KwpGoods::getName, params.getKeywords());
+            }
+        }
         Page<KwpGoods> kwpGoodsPage = kwpGoodsMapper.selectPage(page, wrapper);
         List<KwpGoods> list = kwpGoodsPage.getRecords();
         if (CollectionUtils.isEmpty(list)) {
@@ -568,7 +594,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.setCityName(Objects.isNull(address) ? null : address.getCityName())
+            materials.setAddressName(Objects.isNull(address) ? null : address.getName())
                     .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()))

+ 23 - 0
sckw-modules/sckw-report/pom.xml

@@ -64,6 +64,11 @@
             <artifactId>sckw-common-mongo</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-excel</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-system-api</artifactId>
@@ -83,5 +88,23 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <mainClass>com.sckw.report.ReportApplication</mainClass>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>

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

@@ -1,16 +1,30 @@
 package com.sckw.report.controller;
 
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.excel.config.easyexcel.RequestHolder;
+import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.report.service.KwTransportService;
+import com.sckw.report.service.param.ConsignOrderQuery;
+import com.sckw.report.service.vo.ConsignOrderVo;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * @author zk
  * @desc 运输服务
  * @date 2023/7/10 0010
  */
+@Slf4j
 @AllArgsConstructor
 @RestController
 @RequestMapping("/kwTransport")
@@ -18,4 +32,56 @@ public class KwTransportController {
 
     @Autowired
     KwTransportService transportService;
+
+    /**
+     * 托运订单首页条件查询
+     *
+     * @param query 查询参数
+     * @return
+     */
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    public HttpResult acceptCarriageOrderList(@Validated @RequestBody ConsignOrderQuery query) {
+        HttpResult httpResult = new HttpResult();
+        try {
+            httpResult = transportService.list(query);
+        } catch (Exception e) {
+            log.error("托运订单查询失败:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+        return httpResult;
+    }
+
+    /**
+     * 托运订单top统计
+     *
+     * @param query
+     * @return
+     */
+    @RequestMapping(value = "/statistics", method = RequestMethod.GET)
+    public HttpResult statistics(@Validated @RequestBody ConsignOrderQuery query) {
+        try {
+            return transportService.statistics(query);
+        } catch (Exception e) {
+            log.error("托运订单top统计失败:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+    /**
+     * 托运订单导出
+     *
+     * @param query 查询参数
+     * @return
+     */
+    @RequestMapping(value = "/export", method = RequestMethod.GET)
+    public HttpResult export(ConsignOrderQuery query) {
+        HttpServletResponse response = RequestHolder.getResponse();
+        List<ConsignOrderVo> list = transportService.export(query);
+        if (!org.springframework.util.CollectionUtils.isEmpty(list)) {
+            ExcelUtil.download(response, ConsignOrderVo.class, list);
+            return null;
+        }
+        return HttpResult.error("没有可导出的数据");
+    }
+
 }

+ 17 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/dao/SckwLogisticsOrderRepository.java

@@ -1,7 +1,11 @@
 package com.sckw.report.dao;
 
 import com.sckw.mongo.model.SckwLogisticsOrder;
+import lombok.Data;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.mongodb.repository.Query;
 
 /**
  * @author zk
@@ -9,4 +13,17 @@ import org.springframework.data.mongodb.repository.MongoRepository;
  * @date 2023/7/8 0008
  */
 public interface SckwLogisticsOrderRepository extends MongoRepository<SckwLogisticsOrder, Long> {
+
+    @Query(value = "{'keywords':?#{{$regex:[0]}}}",fields = "{}",sort = "{}")
+    public Page<SckwLogisticsOrder> findFileListByFileNameLike(String fileName, Pageable pageable);
+//以上内容表示 根据fileHead进行模糊查询
+//原本需求是:根据传入的文件名参数对collections的字段fileHead进行匹配
+//其中关键词是:$regex
+//为什么会这么写呢:是因为也是通过查询资料知道可以这样实现模糊查询,
+//也即是参考链接中的@Query的使用,其中用到了EL表达式
+
+    //一个and
+    @Query (value="{'$and': [{'id':?0},{ 'timeStamp':{'$gte':?1}},{'iseffect':{'$lte':'2'}}]}")
+    public Page<SckwLogisticsOrder> findSckwLogisticsOrderById(String id, Data timeStamp, Pageable pageable);
+
 }

+ 234 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -1,12 +1,246 @@
 package com.sckw.report.service;
 
+import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.page.PageResult;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.excel.utils.DateUtil;
+import com.sckw.mongo.model.SckwLogisticsOrder;
+import com.sckw.mongo.model.TobleTop;
+import com.sckw.report.dao.SckwLogisticsOrderRepository;
+import com.sckw.report.service.param.ConsignOrderQuery;
+import com.sckw.report.service.vo.ConsignOrderVo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.aggregation.Aggregation;
+import org.springframework.data.mongodb.core.aggregation.AggregationResults;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+
 /**
  * @author zk
  * @desc 运输服务
  * @date 2023/7/10 0010
  */
+@Slf4j
 @Service
 public class KwTransportService {
+
+    @Autowired
+    public SckwLogisticsOrderRepository sckwLogisticsOrderRepository;
+
+    @Autowired
+    private MongoTemplate mongoTemplate;
+
+    public HttpResult list(ConsignOrderQuery query) throws ParseException {
+        //模糊匹配
+        //根据条件查询所有并排序,且分页
+        //设置模糊查询匹配规则  忽略大小写
+        // 创建条件对象
+        Criteria criteria = new Criteria();
+        // 1. 全等于
+        if (StringUtils.isNotBlank(query.getLoadAddress())) {
+            criteria.and("loadDetailAddress").is(query.getLoadAddress());
+        }
+        if (StringUtils.isNotBlank(query.getUnloadAddress())) {
+            criteria.and("unloadDetailAddress").is(query.getUnloadAddress());
+        }
+        if (StringUtils.isNotBlank(query.getStatus())) {
+            criteria.and("status").is(query.getStatus());
+        }
+        criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
+        // 4. 日期范围
+        if (StringUtils.isNotEmpty(query.getStartDateTime()) && StringUtils.isNotEmpty(query.getEndDateTime())) {
+            criteria.andOperator(Criteria.where("createTime").gte(query.getStartDateTime()), Criteria.where("createTime")
+                    .lte(query.getEndDateTime()));
+        }
+        //多条件模糊查询
+        Criteria c1 = new Criteria();
+        Criteria c2 = new Criteria();
+        Criteria c3 = new Criteria();
+        Criteria c4 = new Criteria();
+        Criteria c5 = new Criteria();
+        Pattern pattern = Pattern.compile("^.*" + query.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
+        c1 = Criteria.where("firmName").regex(pattern);
+        c2 = Criteria.where("carrierFirmName").regex(pattern);
+        c3 = Criteria.where("checkFirmName").regex(pattern);
+        c4 = Criteria.where("tOrderNo").regex(pattern);
+        c5 = Criteria.where("lOrderNo").regex(pattern);
+        criteria.orOperator(c1, c2, c3, c4, c5);
+        Query query1 = new Query(criteria);
+        // 12. 总记录数
+        long total = mongoTemplate.count(query1, SckwLogisticsOrder.class);
+        // 10. 分页
+        query1.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
+                // 11. 排序
+                Sort.by(Sort.Order.desc("createTime"))));
+        // 执行查询
+        List<SckwLogisticsOrder> list = mongoTemplate.find(query1, SckwLogisticsOrder.class);
+        List<ConsignOrderVo> returnList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            packageReturnList(list, returnList);
+        }
+        PageResult build = PageResult.build(query.getPage(), query.getPageSize(), total, returnList);
+        return HttpResult.ok(build);
+    }
+
+    public HttpResult statistics(ConsignOrderQuery param) {
+        //模糊匹配
+        //根据条件查询所有并排序,且分页
+        //设置模糊查询匹配规则  忽略大小写
+        // 创建条件对象
+        Criteria criteria = new Criteria();
+        // 1. 全等于
+        if (StringUtils.isNotBlank(param.getLoadAddress())) {
+            criteria.and("loadDetailAddress").is(param.getLoadAddress());
+        }
+        if (StringUtils.isNotBlank(param.getUnloadAddress())) {
+            criteria.and("unloadDetailAddress").is(param.getUnloadAddress());
+        }
+        if (StringUtils.isNotBlank(param.getStatus())) {
+            criteria.and("status").is(param.getStatus());
+        }
+        criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
+        // 4. 日期范围
+        if (StringUtils.isNotEmpty(param.getStartDateTime()) && StringUtils.isNotEmpty(param.getEndDateTime())) {
+            criteria.andOperator(Criteria.where("createTime").gte(param.getStartDateTime()), Criteria.where("createTime")
+                    .lte(param.getEndDateTime()));
+        }
+        //多条件模糊查询
+        Criteria c1 = new Criteria();
+        Criteria c2 = new Criteria();
+        Criteria c3 = new Criteria();
+        Criteria c4 = new Criteria();
+        Criteria c5 = new Criteria();
+        Pattern pattern = Pattern.compile("^.*" + param.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
+        c1 = Criteria.where("firmName").regex(pattern);
+        c2 = Criteria.where("carrierFirmName").regex(pattern);
+        c3 = Criteria.where("checkFirmName").regex(pattern);
+        c4 = Criteria.where("tOrderNo").regex(pattern);
+        c5 = Criteria.where("lOrderNo").regex(pattern);
+        criteria.orOperator(c1, c2, c3, c4, c5);
+//        if (StringUtils.isNotBlank(param.getKeywords() )) {
+//            criteria.and("firmName").regex(Pattern.compile("^.*" + param.getKeywords()  + ".*$", Pattern.CASE_INSENSITIVE));
+//            criteria.and("carrierFirmName").regex(Pattern.compile("^.*" + param.getKeywords()  + ".*$", Pattern.CASE_INSENSITIVE));
+//            criteria.and("checkFirmName").regex(Pattern.compile("^.*" + param.getKeywords()  + ".*$", Pattern.CASE_INSENSITIVE));
+//            criteria.and("tOrderNo").regex(Pattern.compile("^.*" + param.getKeywords()  + ".*$", Pattern.CASE_INSENSITIVE));
+//            criteria.and("tOrderNo").regex(Pattern.compile("^.*" + param.getKeywords()  + ".*$", Pattern.CASE_INSENSITIVE));
+//            criteria.and("lOrderNo").regex(Pattern.compile("^.*" + param.getKeywords()  + ".*$", Pattern.CASE_INSENSITIVE));
+//
+//        }
+        Aggregation aggregation = Aggregation.newAggregation(
+                Aggregation.match(criteria),
+                Aggregation.group("status").count().as("total"),
+                Aggregation.project("total").and("value").previousOperation()
+        );
+        AggregationResults<TobleTop> outputTypeCount = mongoTemplate.aggregate(aggregation, SckwLogisticsOrder.class, TobleTop.class);
+        List<TobleTop> results = (List<TobleTop>) outputTypeCount.getRawResults().get("results");
+        // 查询结果
+        return HttpResult.ok(results);
+    }
+
+    public List<ConsignOrderVo> export(ConsignOrderQuery query) {
+        //模糊匹配
+        //根据条件查询所有并排序,且分页
+        //设置模糊查询匹配规则  忽略大小写
+        // 创建条件对象
+        Criteria criteria = new Criteria();
+        // 1. 全等于
+        if (StringUtils.isNotBlank(query.getLoadAddress())) {
+            criteria.and("loadDetailAddress").is(query.getLoadAddress());
+        }
+        if (StringUtils.isNotBlank(query.getUnloadAddress())) {
+            criteria.and("unloadDetailAddress").is(query.getUnloadAddress());
+        }
+        if (StringUtils.isNotBlank(query.getStatus())) {
+            criteria.and("status").is(query.getStatus());
+        }
+        criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
+        // 4. 日期范围
+        if (StringUtils.isNotEmpty(query.getStartDateTime()) && StringUtils.isNotEmpty(query.getEndDateTime())) {
+            criteria.andOperator(Criteria.where("createTime").gte(query.getStartDateTime()), Criteria.where("createTime")
+                    .lte(query.getEndDateTime()));
+        }
+        //多条件模糊查询
+        Criteria c1 = new Criteria();
+        Criteria c2 = new Criteria();
+        Criteria c3 = new Criteria();
+        Criteria c4 = new Criteria();
+        Criteria c5 = new Criteria();
+        Pattern pattern = Pattern.compile("^.*" + query.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
+        c1 = Criteria.where("firmName").regex(pattern);
+        c2 = Criteria.where("carrierFirmName").regex(pattern);
+        c3 = Criteria.where("checkFirmName").regex(pattern);
+        c4 = Criteria.where("tOrderNo").regex(pattern);
+        c5 = Criteria.where("lOrderNo").regex(pattern);
+        criteria.orOperator(c1, c2, c3, c4, c5);
+        Query query1 = new Query(criteria);
+        // 12. 总记录数
+        long total = mongoTemplate.count(query1, SckwLogisticsOrder.class);
+        // 10. 分页
+        query1.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
+                // 11. 排序
+                Sort.by(Sort.Order.desc("createTime"))));
+        // 执行查询
+        List<SckwLogisticsOrder> list = mongoTemplate.find(query1, SckwLogisticsOrder.class);
+//        PageResult build = PageResult.build(query.getPage(), query.getPageSize(), total, list);
+        List<ConsignOrderVo> returnList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            packageReturnList(list, returnList);
+        }
+        return returnList;
+    }
+
+    private void packageReturnList(List<SckwLogisticsOrder> list, List<ConsignOrderVo> returnList) {
+        for (SckwLogisticsOrder logisticsOrder : list) {
+            ConsignOrderVo vo = new ConsignOrderVo();
+            vo.setAccountsCycle(logisticsOrder.getSettlementCycle() == null ?
+                    null : String.valueOf(logisticsOrder.getSettlementCycle()));
+            vo.setAppointor(logisticsOrder.getCreateByName());
+            vo.setBillingMode(logisticsOrder.getBillingMode());
+            vo.setCarrierCompany(logisticsOrder.getCarrierFirmName());
+            vo.setCarrierOrder(logisticsOrder.getWOrderNo());
+            vo.setCarrierPhone(logisticsOrder.getCarrierPhone());
+            vo.setCarryingCapacity(logisticsOrder.getCarryingCapacity() == null ?
+                    null : String.valueOf(logisticsOrder.getCarryingCapacity()));
+            vo.setConsignCompany(logisticsOrder.getCheckFirmName());
+            vo.setConsignContacts(logisticsOrder.getCheckContacts());
+            vo.setConsignPhone(logisticsOrder.getCheckPhone());
+            vo.setContract(logisticsOrder.getContractName());
+            vo.setDeficitAmount(logisticsOrder.getDeficitAmount() == null ?
+                    null : String.valueOf(logisticsOrder.getDeficitAmount()));
+            vo.setGoodsName(logisticsOrder.getGoodsName());
+            vo.setLoadAddress(logisticsOrder.getLoadDetailAddress());
+            vo.setUnloadAddress(logisticsOrder.getUnloadDetailAddress());
+            vo.setLOrderId(String.valueOf(logisticsOrder.getLOrderId()));
+            vo.setLOrderNo(logisticsOrder.getLOrderNo());
+            vo.setLoss(logisticsOrder.getLoss() == null ?
+                    null : String.valueOf(logisticsOrder.getLoss()));
+            vo.setPrice(logisticsOrder.getPrice() == null ?
+                    null : String.valueOf(logisticsOrder.getPrice()));
+            vo.setReceiveGoodsContacts(logisticsOrder.getUnloadContacts());
+            vo.setReceiveGoodsPhone(logisticsOrder.getUnloadPhone());
+            vo.setRemark(logisticsOrder.getRemark());
+            vo.setShipmentsContacts(logisticsOrder.getLoadContacts());
+            vo.setShipmentsPhone(logisticsOrder.getLoadPhone());
+            vo.setShipmentsDateTime(logisticsOrder.getLoadTime() == null ?
+                    null : DateUtil.getDateTime(logisticsOrder.getLoadTime()));
+            vo.setShipmentsPhone(logisticsOrder.getLoadPhone());
+            vo.setSigning(logisticsOrder.getContractSigningWay());
+            vo.setStatus(logisticsOrder.getStatus());
+            vo.setUnloadAddress(logisticsOrder.getUnloadDetailAddress());
+            vo.setWOrderNo(logisticsOrder.getWOrderNo());
+            returnList.add(vo);
+        }
+    }
 }

+ 10 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/AcceptCarriageOrderParam.java

@@ -0,0 +1,10 @@
+package com.sckw.report.service.param;
+
+/**
+ * @author lfdc
+ * @description 承运订单查询param
+ * @date 2023-06-26 17:06:24
+ */
+public class AcceptCarriageOrderParam {
+
+}

+ 51 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/AcceptCarriageOrderQuery.java

@@ -0,0 +1,51 @@
+package com.sckw.report.service.param;
+
+import com.sckw.core.model.page.PageRequest;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author lfdc
+ * @description 承运订单条件查询
+ * @date 2023-06-26 17:06:25
+ */
+@Data
+public class AcceptCarriageOrderQuery extends PageRequest implements Serializable {
+    private List<String> ids;
+    /**
+     * 订单id
+     */
+    private String orderId;
+    /**
+     * 单位名称
+     */
+    private String companyName;
+    /**
+     * 货物名称
+     */
+    private String goodsName;
+
+    /**
+     *装载地点
+     */
+    private String stowageAddress;
+
+    /**
+     * 卸载地点
+     */
+    private String unloadAddress;
+    /**
+     * 开始时间
+     */
+    private String startDate;
+    /**
+     * 结束时间
+     */
+    private String endDate;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+}

+ 45 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/ConsignOrderQuery.java

@@ -0,0 +1,45 @@
+package com.sckw.report.service.param;
+
+import com.sckw.core.model.page.PageRequest;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * @author lfdc
+ * @description 托运订单查询query
+ * @date 2023-06-30 09:06:43
+ */
+@Data
+@Accessors(chain = true)
+public class ConsignOrderQuery extends PageRequest implements Serializable {
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+    /**
+     * 结束时间
+     */
+    private String endDateTime;
+    /**
+     * 关键字搜索
+     */
+    private String keywords;
+    /**
+     * 装货地址
+     */
+    private String loadAddress;
+    /**
+     * 开始时间
+     */
+    private String startDateTime;
+    /**
+     * 单据状态
+     */
+    private String status;
+    /**
+     * 卸货地址
+     */
+    private String unloadAddress;
+}

+ 167 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/LogisticsConsignmentParam.java

@@ -0,0 +1,167 @@
+package com.sckw.report.service.param;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @author lfdc
+ * @description 物流托运bo
+ * @date 2023-07-06 14:07:50
+ */
+
+@Data
+@Accessors(chain = true)
+public class LogisticsConsignmentParam {
+    /**
+     * 分配承运量
+     */
+    private Long carryingCapacity;
+    /**
+     * 分配承运量使用的单位
+     */
+    private String carryingCapacityUnit;
+
+    /**
+     * 托运单位
+     */
+    @NotNull(message = "托运单位名称不能为空")
+    private String checkCompany;
+    /**
+     * 托运单位id
+     */
+    @NotNull(message = "托运单位id不能为空")
+    private String checkCompanyId;
+
+    /**
+     * 联系电话
+     */
+    private String checkContactPhone;
+    /**
+     * 联系人
+     */
+    private String checkContacts;
+
+    /**
+     * 合理损耗
+     */
+    private Long loss;
+    /**
+     * 合理损耗单位
+     */
+    private String lossUnit;
+
+    /**
+     * 商品价值(扣亏货值)
+     */
+    private Long goodsPrice;
+    /**
+     * 商品价值(扣亏货值)单位
+     */
+    private String goodsPriceUnit;
+    /**
+     * 承运单位
+     */
+    @NotBlank(message = "承运单位不能为空")
+    private String consignCompany;
+
+    /**
+     * 承运单位ID
+     */
+    @NotBlank(message = "承运单位ID不能为空")
+    private String consignCompanyId;
+
+    /**
+     * 联系电话
+     */
+    private String consignContactPhone;
+    /**
+     * 联系人
+     */
+    private String consignContacts;
+
+    /**
+     * 结算周期(周结、月结、季结)
+     */
+    private Long settlementCycle;
+    /**
+     * 合同
+     */
+    private String contract;
+    /**
+     * 合同id
+     */
+    private String contractId;
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 合同名称
+     */
+    private String contractName;
+
+    /**
+     * 合同签约方式
+     */
+    @NotNull(message = "合同签约方式不能为空")
+    private String payment;
+    /**
+     * 货物名称
+     */
+    private String goodsName;
+
+    /**
+     * 货物id
+     */
+    @NotNull(message = "货物id不能为空")
+    private String goodsId;
+
+    /**
+     * skuId
+     */
+    private String skuId;
+    /**
+     * 是否全量
+     */
+    @NotNull(message = "是否全量不能为空")
+    private Boolean isFullDose;
+    /**
+     * 订单id
+     */
+    @JsonProperty("lOrderId")
+    private String lOrderId;
+    /**
+     * 订单编号
+     */
+    @JsonProperty("lOrderNo")
+    private String lOrderNo;
+    /**
+     * 运价
+     */
+    @NotNull(message = "运价不能为空")
+    private Long price;
+    /**
+     * 运价方式
+     */
+    private String priceType;
+    /**
+     * 计划收货时间
+     */
+    private String receiveGoodsDateTime;
+    /**
+     * 计划发货时间
+     */
+    private String shipmentsDateTime;
+    /**
+     * 税率
+     */
+    private Long taxRate;
+    /**
+     * 备注
+     */
+    private String remark;
+}

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

@@ -0,0 +1,127 @@
+package com.sckw.report.service.vo;
+
+import com.sckw.core.model.page.PageRequest;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lfdc
+ * @description 承运订单VO
+ * @date 2023-06-27 10:06:30
+ */
+@Data
+public class AcceptCarriageOrderVo extends PageRequest {
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 承运订单号
+     */
+    private String orderId;
+    /**
+     * 托运单位
+     */
+    private String companyName;
+    /**
+     * 货物名称
+     */
+    private String goodsName;
+    /**
+     * 分配承运量
+     */
+    private String carryingCapacity;
+    /**
+     * 装货地点
+     */
+    private String stowageAddress;
+    /**
+     * 卸货地点
+     */
+    private String unloadAddress;
+    /**
+     * 运价
+     */
+    private String freightRate;
+    /**
+     * 结算周期
+     */
+    private String accountsCycle;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+    /**
+     * 合理损耗
+     */
+    private String wastage;
+    /**
+     * 扣亏货值/元/吨
+     */
+    private String defectiveValue;
+    /**
+     * 承运联系人
+     */
+    private String acceptCarriagePerson;
+    /**
+     * 承运联系电话
+     */
+    private String acceptCarriageTel;
+    /**
+     * 托运单位
+     */
+    private String consignCompany;
+    /**
+     * 托运联系人
+     */
+    private String consignPerson;
+    /**
+     * 托运联系电话
+     */
+    private String consignTel;
+    /**
+     * 发货联系人
+     */
+    private String shipmentsPerson;
+    /**
+     * 发货电话
+     */
+    private String shipmentsTel;
+    /**
+     * 收货联系人
+     */
+    private String receiveGoodsPerson;
+    /**
+     * 收货电话
+     */
+    private String receiveGoodsTel;
+    /**
+     * 计划发货时间
+     */
+    private String shipmentsDate;
+    /**
+     * 计划收货时间
+     */
+    private String receiveGoodsDate;
+    /**
+     * 合同
+     */
+    private String contract;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 发起人
+     */
+    private String appointor;
+    /**
+     * 计划时间
+     */
+    private String plannedDate;
+
+    private List<CarWaybillVo> carWaybillList;
+    private List<ConsignmentVo> consignmentList;
+
+}

+ 39 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/CarDataVo.java

@@ -0,0 +1,39 @@
+package com.sckw.report.service.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @author lfdc
+ * @description 车辆信息
+ * @date 2023-07-10 12:07:40
+ */
+@Data
+@Accessors(chain = true)
+public class CarDataVo {
+    /**
+     * 司机姓名
+     */
+    private String driverName;
+    /**
+     * 司机电话
+     */
+    private String driverPhone;
+    private String id;
+    /**
+     * 身份证号
+     */
+    private String idCard;
+    /**
+     * 核载质量/吨
+     */
+    private String loadAmount;
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+    /**
+     * 运单号
+     */
+    private String wOrderNo;
+}

+ 76 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/CarWaybillVo.java

@@ -0,0 +1,76 @@
+package com.sckw.report.service.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @author lfdc
+ * @description 车辆运单
+ * @date 2023-06-27 11:06:08
+ */
+@Data
+@Accessors(chain = true)
+public class CarWaybillVo {
+
+    /**
+     * 运单编号
+     */
+    private String waybillNumber;
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 运单类型
+     */
+    private String waybillType;
+    /**
+     * 司机
+     */
+    private String driverName;
+    /**
+     * 承运车队
+     */
+    private String consignMotorcade;
+    /**
+     * 派车量/吨
+     */
+    private String sendCarWeigh;
+    /**
+     * 派车时间
+     */
+    private String sendCarDate;
+    /**
+     * 实装量/吨
+     */
+    private String stowageWeigh;
+    /**
+     * 装货时间
+     */
+    private String stowageDate;
+    /**
+     * 实卸量/吨
+     */
+    private String unloadWeigh;
+    /**
+     * 卸货时间
+     */
+    private String unloadDate;
+    /**
+     * 亏吨量/吨
+     */
+    private String defectiveWeigh;
+    /**
+     * 扣亏量/吨
+     */
+    private String deduct;
+    /**
+     * 派车人
+     */
+    private String appointor;
+
+}

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

@@ -0,0 +1,139 @@
+package com.sckw.report.service.vo;
+
+import com.sckw.core.model.page.PageResult;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author lfdc
+ * @description 托运订单查询数据返回vo
+ * @date 2023-07-07 09:07:06
+ */
+@Data
+public class ConsignOrderVo extends PageResult implements Serializable {
+    /**
+     * 结算周期
+     */
+    private String accountsCycle;
+    /**
+     * 发起人
+     */
+    private String appointor;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+    /**
+     * 承运单位
+     */
+    private String carrierCompany;
+    /**
+     * 承运联系人
+     */
+    private String carrierContacts;
+    /**
+     * 承运订单
+     */
+    private String carrierOrder;
+    /**
+     * 承运联系电话
+     */
+    private String carrierPhone;
+    /**
+     * 分配承运量
+     */
+    private String carryingCapacity;
+    /**
+     * 托运单位
+     */
+    private String consignCompany;
+    /**
+     * 托运联系人
+     */
+    private String consignContacts;
+    /**
+     * 托运联系电话
+     */
+    private String consignPhone;
+    /**
+     * 合同
+     */
+    private String contract;
+    /**
+     * 扣亏货值/元/吨
+     */
+    private String deficitAmount;
+    /**
+     * 货物名称
+     */
+    private String goodsName;
+    /**
+     * 装货地点
+     */
+    private String loadAddress;
+    /**
+     * 数据库id
+     */
+    private String lOrderId;
+    /**
+     * 托运订单号
+     */
+    private String lOrderNo;
+    /**
+     * 合理损耗
+     */
+    private String loss;
+    /**
+     * 计划时间
+     */
+    private String plannedDateTime;
+    /**
+     * 运价
+     */
+    private String price;
+    /**
+     * 收货联系人
+     */
+    private String receiveGoodsContacts;
+    /**
+     * 计划收货时间
+     */
+    private String receiveGoodsDateTime;
+    /**
+     * 收货电话
+     */
+    private String receiveGoodsPhone;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 发货联系人
+     */
+    private String shipmentsContacts;
+    /**
+     * 计划发货时间
+     */
+    private String shipmentsDateTime;
+    /**
+     * 发货电话
+     */
+    private String shipmentsPhone;
+    /**
+     * 签约方式
+     */
+    private String signing;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 卸货地点
+     */
+    private String unloadAddress;
+    /**
+     * 关联承运订单号
+     */
+    private String wOrderNo;
+}

+ 129 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/ConsignmentVo.java

@@ -0,0 +1,129 @@
+package com.sckw.report.service.vo;
+
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 分包托运vo
+ * @date 2023-06-27 11:06:08
+ */
+@Data
+public class ConsignmentVo {
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 托运订单号
+     */
+    private String consignmentNumber;
+    /**
+     * 承运单位
+     */
+    private String acceptCarriageCompany;
+
+    /**
+     * 货物名称
+     */
+    private String goodsName;
+    /**
+     * 签约方式
+     */
+    private String signing;
+    /**
+     * 分配承运量
+     */
+    private String carryingCapacity;
+    /**
+     * 装货地点
+     */
+    private String stowageAddress;
+    /**
+     * 卸货地点
+     */
+    private String unloadAddress;
+    /**
+     * 运价
+     */
+    private String freightRate;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+    /**
+     * 合理损耗
+     */
+    private String wastage;
+    /**
+     * 扣亏货值/元/吨
+     */
+    private String defectiveValue;
+    /**
+     * 结算周期
+     */
+    private String accountsCycle;
+    /**
+     * 承运联系人
+     */
+    private String acceptCarriagePerson;
+    /**
+     * 承运联系电话
+     */
+    private String acceptCarriageTel;
+    /**
+     * 托运单位
+     */
+    private String consignCompany;
+    /**
+     * 托运联系人
+     */
+    private String consignPerson;
+    /**
+     * 托运联系电话
+     */
+    private String consignTel;
+    /**
+     * 发货联系人
+     */
+    private String shipmentsPerson;
+    /**
+     * 发货电话
+     */
+    private String shipmentsTel;
+    /**
+     * 收货联系人
+     */
+    private String receiveGoodsPerson;
+    /**
+     * 收货电话
+     */
+    private String receiveGoodsTel;
+    /**
+     * 计划发货时间
+     */
+    private String shipmentsDate;
+    /**
+     * 计划收货时间
+     */
+    private String receiveGoodsDate;
+    /**
+     * 承运订单号
+     */
+    private String consignOrderId;
+    /**
+     * 合同
+     */
+    private String contract;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 发起人
+     */
+    private String planner;
+    /**
+     * 计划时间
+     */
+    private String plannedDate;
+}

+ 18 - 0
sckw-modules/sckw-system/pom.xml

@@ -64,4 +64,22 @@
         </dependency>
 
     </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <mainClass>com.sckw.system.SystemApplication</mainClass>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>

+ 88 - 88
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsDeptController.java

@@ -1,88 +1,88 @@
-package com.sckw.system.controller;
-
-import com.sckw.core.exception.SystemException;
-import com.sckw.core.web.constant.HttpStatus;
-import com.sckw.core.web.response.HttpResult;
-import com.sckw.system.model.KwsDept;
-import com.sckw.system.service.KwsDeptService;
-import jakarta.validation.Valid;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * 组织机构
- * @author zk
- * @date 2023-05-31
- */
-@RestController
-@RequestMapping("/kwsDept")
-public class KwsDeptController {
-
-    @Autowired
-    private KwsDeptService kwsDeptService;
-
-    /**
-     * @param id 主键ID
-     * @return
-     * @description 根据主键查询
-     * @author zk
-     * @date 2023/5/30
-     **/
-    @GetMapping("/detail")
-    public HttpResult selectByKey(Long id) throws SystemException {
-        KwsDept sysDict = kwsDeptService.selectByKey(id);
-        return HttpResult.ok(sysDict);
-    }
-
-    /**
-     * @param params
-     * @return
-     * @description 分页查询
-     * @author zk
-     * @date 2023/5/30
-     **/
-    @PostMapping("/findDeptTree")
-    public HttpResult findPage(@RequestBody KwsDept params) throws SystemException {
-        return HttpResult.ok(kwsDeptService.findTree(params));
-    }
-
-    /**
-     * @param params {name 机构名称、company 是否公司}
-     * @return
-     * @description 新增
-     * @author zk
-     * @date 2023/5/30
-     **/
-    @PostMapping("/add")
-    public HttpResult add(@Valid @RequestBody KwsDept params) throws SystemException {
-        kwsDeptService.add(params);
-        return HttpResult.ok(HttpStatus.MSG_003);
-    }
-
-    /**
-     * @param params {id 主键ID、name 机构名称、company 是否公司}
-     * @return
-     * @description 更新
-     * @author zk
-     * @date 2023/5/30
-     **/
-    @PostMapping("/update")
-    public HttpResult update(@RequestBody KwsDept params) throws SystemException {
-        kwsDeptService.update(params);
-        return HttpResult.ok(HttpStatus.MSG_005);
-    }
-
-    /**
-     * @param ids {ids:主键ID(多个以逗号隔开)}
-     * @return
-     * @description 删除
-     * @author zk
-     * @date 2023/5/30
-     **/
-    @PostMapping("/dels")
-    public HttpResult del(@RequestParam String ids) throws SystemException {
-        kwsDeptService.deleteByKey(ids);
-        return HttpResult.ok(HttpStatus.MSG_008);
-    }
-
-}
+//package com.sckw.system.controller;
+//
+//import com.sckw.core.exception.SystemException;
+//import com.sckw.core.web.constant.HttpStatus;
+//import com.sckw.core.web.response.HttpResult;
+//import com.sckw.system.model.KwsDept;
+//import com.sckw.system.service.KwsDeptService;
+//import jakarta.validation.Valid;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.*;
+//
+///**
+// * 组织机构
+// * @author zk
+// * @date 2023-05-31
+// */
+//@RestController
+//@RequestMapping("/kwsDept")
+//public class KwsDeptController {
+//
+//    @Autowired
+//    private KwsDeptService kwsDeptService;
+//
+//    /**
+//     * @param id 主键ID
+//     * @return
+//     * @description 根据主键查询
+//     * @author zk
+//     * @date 2023/5/30
+//     **/
+//    @GetMapping("/detail")
+//    public HttpResult selectByKey(Long id) throws SystemException {
+//        KwsDept sysDict = kwsDeptService.selectByKey(id);
+//        return HttpResult.ok(sysDict);
+//    }
+//
+//    /**
+//     * @param params
+//     * @return
+//     * @description 分页查询
+//     * @author zk
+//     * @date 2023/5/30
+//     **/
+//    @PostMapping("/findDeptTree")
+//    public HttpResult findPage(@RequestBody KwsDept params) throws SystemException {
+//        return HttpResult.ok(kwsDeptService.findTree(params));
+//    }
+//
+//    /**
+//     * @param params {name 机构名称、company 是否公司}
+//     * @return
+//     * @description 新增
+//     * @author zk
+//     * @date 2023/5/30
+//     **/
+//    @PostMapping("/add")
+//    public HttpResult add(@Valid @RequestBody KwsDept params) throws SystemException {
+//        kwsDeptService.add(params);
+//        return HttpResult.ok(HttpStatus.MSG_003);
+//    }
+//
+//    /**
+//     * @param params {id 主键ID、name 机构名称、company 是否公司}
+//     * @return
+//     * @description 更新
+//     * @author zk
+//     * @date 2023/5/30
+//     **/
+//    @PostMapping("/update")
+//    public HttpResult update(@RequestBody KwsDept params) throws SystemException {
+//        kwsDeptService.update(params);
+//        return HttpResult.ok(HttpStatus.MSG_005);
+//    }
+//
+//    /**
+//     * @param ids {ids:主键ID(多个以逗号隔开)}
+//     * @return
+//     * @description 删除
+//     * @author zk
+//     * @date 2023/5/30
+//     **/
+//    @PostMapping("/dels")
+//    public HttpResult del(@RequestParam String ids) throws SystemException {
+//        kwsDeptService.deleteByKey(ids);
+//        return HttpResult.ok(HttpStatus.MSG_008);
+//    }
+//
+//}

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

@@ -1,6 +1,8 @@
 package com.sckw.system.dao;
 
+import com.sckw.system.model.SysArea;
 import org.apache.ibatis.annotations.Mapper;
+
 import java.util.List;
 import java.util.Map;
 
@@ -13,4 +15,6 @@ import java.util.Map;
 public interface SysAreaDao {
 
     List<Map<String, Object>> findList(Map<String, Object> params);
+
+    SysArea selectById(Integer code);
 }

+ 23 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -13,8 +13,10 @@ import com.sckw.system.api.model.pojo.DeptInfoPojo;
 import com.sckw.system.dao.SysDictDao;
 import com.sckw.system.model.KwsEnterprise;
 import com.sckw.system.model.KwsUser;
+import com.sckw.system.model.SysArea;
 import com.sckw.system.model.SysDict;
 import com.sckw.system.service.KwsUserService;
+import com.sckw.system.service.SysAreaService;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -40,6 +42,9 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
     @Autowired
     private RemoteBaseService remoteBaseService;
 
+    @Autowired
+    private SysAreaService sysAreaService;
+
     /**
      * @param type 类型
      * @return SysDictResDto
@@ -298,6 +303,24 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         return userCacheResDtos.stream().collect(Collectors.groupingBy(UserCacheResDto::getId));
     }
 
+    @Override
+    public SysAreaCacheResDto queryAreaCacheById(Integer code) {
+        String key = Global.REDIS_AREA_PREFIX + code;
+        String areaCache = RedissonUtils.getString(key);
+        //从redis查,查不到从数据库查,并写入redis
+        if (StringUtils.isBlank(areaCache)) {
+            SysArea sysArea = sysAreaService.selectById(code);
+            if (Objects.isNull(sysArea)) {
+                return new SysAreaCacheResDto();
+            }
+
+            SysAreaCacheResDto sysAreaCacheResDto = BeanUtils.copyProperties(sysArea, SysAreaCacheResDto.class);
+            RedissonUtils.putString(key, JSON.toJSONString(sysAreaCacheResDto), Global.COMMON_EXPIRE);
+            return sysAreaCacheResDto;
+        }
+        return JSONObject.parseObject(areaCache, SysAreaCacheResDto.class);
+    }
+
     /**
      * @param id 父id,需要遍历的list
      * @return SysDictGroupResDto

+ 5 - 8
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java

@@ -1,9 +1,5 @@
 package com.sckw.system.service;
 
-import java.util.Date;
-
-import java.util.*;
-
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
@@ -16,7 +12,6 @@ import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
-import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.model.EntCertificateInfo;
@@ -32,6 +27,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.*;
+
 /**
  * 企业service接口
  *
@@ -62,8 +59,8 @@ public class KwsEnterpriseService {
     @Autowired
     private KwsUserService kwsUserService;
 
-    @Autowired
-    private KwsDeptService kwsDeptService;
+//    @Autowired
+//    private KwsDeptService kwsDeptService;
 
     @Autowired
     private CommonService commonService;
@@ -113,7 +110,7 @@ public class KwsEnterpriseService {
         }
 
         /*2、删除机构*/
-        kwsDeptService.deleteDept(kwsDeptDao.selectByEntIdList(list));
+//        kwsDeptService.deleteDept(kwsDeptDao.selectByEntIdList(list));
 
         /*2、删除角色*/
         kwsRoleService.deleteByDeptIds(list);

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

@@ -1,8 +1,10 @@
 package com.sckw.system.service;
 
 import com.sckw.system.dao.SysAreaDao;
+import com.sckw.system.model.SysArea;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
 import java.util.List;
 import java.util.Map;
 
@@ -25,4 +27,15 @@ public class SysAreaService {
     public List<Map<String, Object>> findList(Map<String, Object> params) {
         return sysAreaDao.findList(params);
     }
+
+    /**
+     * @desc: 根据id获取
+     * @author: yzc
+     * @date: 2023-07-11 11:38
+     * @Param code:
+     * @return: com.sckw.system.model.SysArea
+     */
+    public SysArea selectById(Integer code) {
+        return sysAreaDao.selectById(code);
+    }
 }

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

@@ -50,4 +50,11 @@
       and pcode = #{pcode, jdbcType=VARCHAR}
     </if>
   </select>
+
+  <select id="selectById" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from sys_area
+    where code = #{code,jdbcType=INTEGER}
+  </select>
 </mapper>

+ 9 - 0
sckw-modules/sckw-transport/pom.xml

@@ -74,6 +74,12 @@
             <artifactId>sckw-common-stream</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-transport-api</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+
         <!-- validation -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -94,6 +100,9 @@
                         </goals>
                     </execution>
                 </executions>
+                <configuration>
+                    <mainClass>com.sckw.transport.TransPortApplication</mainClass>
+                </configuration>
             </plugin>
         </plugins>
     </build>

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

@@ -50,6 +50,10 @@ public class KwtLogisticsOrder implements Serializable {
      * 结算周期(周结、月结、季结)
      */
     private Long settlementCycle;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
 
     /**
      * 运价

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java

@@ -164,4 +164,9 @@ public class LogisticsConsignmentParam {
      * 备注
      */
     private String remark;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+
 }

+ 17 - 13
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -4,7 +4,7 @@ import cn.hutool.core.util.ArrayUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.NumberConstant;
-import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -107,7 +107,7 @@ public class LogisticsConsignmentService {
         insertLogisticsOrderUnit(bo, waybillNo, orderId);
         insertLogisticsOrderAddress(bo, waybillNo, orderId);
         insertLogisticsOrderTrack(bo, waybillNo, orderId);
-        sendMongoDB(waybillNo, orderId, bo);
+        sendMongoDB(waybillNo, orderId, bo,tradeOrder);
 
     }
 
@@ -118,17 +118,17 @@ public class LogisticsConsignmentService {
      * @param orderId
      * @param bo
      */
-    private void sendMongoDB(String waybillNo, Long orderId, LogisticsConsignmentParam bo) {
+    private void sendMongoDB(String waybillNo, Long orderId, LogisticsConsignmentParam bo, KwoTradeOrder tradeOrder) {
         SckwLogisticsOrder logisticsOrder = new SckwLogisticsOrder();
-        logisticsOrder.setLOrderId(new IdWorker(NumberConstant.ONE).nextId());
+        logisticsOrder.setLOrderId(orderId);
         logisticsOrder.setLOrderNo(waybillNo);
         logisticsOrder.setLOrderPid(null);
-        logisticsOrder.setTOrderId(orderId);
+        logisticsOrder.setTOrderId(tradeOrder.getId());
         logisticsOrder.setTOrderNo("D" + waybillNo);
         logisticsOrder.setSettlementCycle(bo.getSettlementCycle());
         logisticsOrder.setPrice(new BigDecimal(bo.getPrice()));
-        logisticsOrder.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE_0.getType(), bo.getPriceType()) == null ?
-                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE_0.getType(), bo.getPriceType()).getValue()));
+        logisticsOrder.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()) == null ?
+                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()).getValue()));
 
         if (!bo.getIsFullDose()) {
             if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
@@ -136,9 +136,11 @@ public class LogisticsConsignmentService {
             }
             logisticsOrder.setAmount(new BigDecimal(bo.getCarryingCapacity()));
             logisticsOrder.setUnit(bo.getCarryingCapacityUnit());
+            logisticsOrder.setCarryingCapacity(bo.getCarryingCapacity());
         } else {
             logisticsOrder.setAmount(new BigDecimal(NumberConstant.ZERO));
             logisticsOrder.setSubcontractAmount(new BigDecimal(NumberConstant.ZERO));
+            logisticsOrder.setCarryingCapacity(0L);
         }
         logisticsOrder.setLoss(bo.getLoss() == null ? null : new BigDecimal(bo.getLoss()));
         logisticsOrder.setLossUnit(bo.getLossUnit());
@@ -197,6 +199,7 @@ public class LogisticsConsignmentService {
         logisticsOrder.setUpdateTime(new Date());
         logisticsOrder.setGoodsPriceUnit(bo.getGoodsPriceUnit());
         logisticsOrder.setContractName(new Date() + bo.getContractName());
+        logisticsOrder.setBillingMode(bo.getBillingMode());
         //rabbitMq业务汇总数据发送/消费对象
         SckwBusSum busSum = new SckwBusSum();
         //业务汇总类型
@@ -303,18 +306,19 @@ public class LogisticsConsignmentService {
         order.setSettlementCycle(bo.getSettlementCycle());
         order.setPrice(new BigDecimal(bo.getPrice()));
 //        order.setPriceType(Long.parseLong(bo.getPriceType()));
-        order.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE_0.getType(), bo.getPriceType()) == null ?
-                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE_0.getType(), bo.getPriceType()).getValue()));
+        order.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()) == null ?
+                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()).getValue()));
 //        order.setPriceType(Long.parseLong(new ConvertDictTypeUtils().getDictType(LogisticsTypeEnum.PRICE_TYPE_0, bo.getPriceType())));
         order.setAmount(tradeOrder.getAmount());
+        order.setBillingMode(bo.getBillingMode());
         order.setUnit(tradeOrder.getUnit());
         order.setLoss(new BigDecimal(bo.getLoss()));
         order.setLossUnit(bo.getLossUnit());
-        order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE_0.getType(), bo.getLossUnit()) == null ?
-                null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE_0.getType(), bo.getLossUnit()).getValue());
+        order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictEnum.UNIT_TYPE_0.getType(), bo.getLossUnit()) == null ?
+                null : remoteSystemService.queryDictByTypeAndValue(DictEnum.UNIT_TYPE_0.getType(), bo.getLossUnit()).getValue());
         order.setGoodsPrice(new BigDecimal(bo.getGoodsPrice()));
-        order.setGoodsPriceUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE_0.getType(), bo.getGoodsPriceUnit()) == null ?
-                null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE_0.getType(), bo.getGoodsPriceUnit()).getValue());
+        order.setGoodsPriceUnit(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getGoodsPriceUnit()) == null ?
+                null : remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getGoodsPriceUnit()).getValue());
         order.setGoodsPriceUnit(bo.getGoodsPriceUnit());
         order.setStartTime(DateUtil.LocalDateTimeToDate(tradeOrder.getStartTime()));
         order.setEntTime(DateUtil.LocalDateTimeToDate(tradeOrder.getEndTime()));

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java

@@ -0,0 +1,10 @@
+package com.sckw.transport.service.dubbo;
+
+/**
+ * @author lfdc
+ * @description 运输服务dubbo接口
+ * @date 2023-07-11 14:07:28
+ */
+public class TransportDubboServiceImpl implements TransportDubboService{
+
+}

+ 2 - 1
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -9,6 +9,7 @@
         <result column="l_order_no" jdbcType="VARCHAR" property="lOrderNo" />
         <result column="pid" jdbcType="BIGINT" property="pid" />
         <result column="settlement_cycle" jdbcType="BIGINT" property="settlementCycle" />
+        <result column="billing_mode" jdbcType="BIGINT" property="billingMode" />
         <result column="price" jdbcType="DECIMAL" property="price" />
         <result column="price_type" jdbcType="BIGINT" property="priceType" />
         <result column="amount" jdbcType="DECIMAL" property="amount" />
@@ -37,7 +38,7 @@
         <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
     </resultMap>
     <sql id="Base_Column_List">
-        id, ent_id, t_order_id, t_order_no, l_order_no, pid, settlement_cycle, price, price_type,
+        id, ent_id, t_order_id, t_order_no, l_order_no, pid, settlement_cycle, price, price_type,billing_mode,
     amount, unit, loss, loss_unit, goods_price, goods_price_unit, start_time, ent_time,
     subcontract_amount, entrust_amount, unload_amount, load_amount, ignore_amount, deficit_amount,
     deficit_price, payment, tax_rate, remark, `status`, create_by, create_time, update_by,