Sfoglia il codice sorgente

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

zk 2 anni fa
parent
commit
07bd27c776
39 ha cambiato i file con 1521 aggiunte e 41 eliminazioni
  1. 2 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  2. 1 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictTypeEnum.java
  3. 50 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java
  4. 6 0
      sckw-modules-api/pom.xml
  5. 20 2
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java
  6. 16 0
      sckw-modules-api/sckw-transport-api/pom.xml
  7. 26 2
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java
  8. 180 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/vo/KwtLogisticsOrderVO.java
  9. 90 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/vo/LogisticsOrderDTO.java
  10. 62 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/param/LogisticsOrderParam.java
  11. 1 1
      sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SmsService.java
  12. 1 1
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/GoodsListExport.java
  13. 1 1
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/BuildingMaterialsMarketList.java
  14. 5 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/GoodsDetail.java
  15. 5 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/GoodsList.java
  16. 3 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  17. 6 0
      sckw-modules/sckw-report/pom.xml
  18. 31 4
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  19. 50 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/enums/CarWaybillEnum.java
  20. 67 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  21. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEntDeptDao.java
  22. 10 8
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteBaseService.java
  23. 69 5
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  24. 42 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/DriverController.java
  25. 68 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java
  26. 18 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/TransportCommonController.java
  27. 30 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  28. 8 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java
  29. 14 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/CarListDTO.java
  30. 70 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/LogisticsOrderDTO.java
  31. 88 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderCarDTO.java
  32. 41 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SendCarDTO.java
  33. 95 10
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  34. 45 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/DriverService.java
  35. 95 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  36. 28 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  37. 77 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java
  38. 77 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml
  39. 22 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

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

@@ -21,9 +21,11 @@ public enum DictEnum {
     UNIT_TYPE_1("unit_type","1", "方"),
     UNIT_TYPE_2("unit_type","2", "箱"),
     UNIT_TYPE_3("unit_type","3", "件"),
+    UNIT_TYPE_4("unit_type","4", "其他"),
     TRADE_TYPE_0("trade_type", "0", "预付款"),
     TRADE_TYPE_1("trade_type", "1", "货到付款"),
     TRADE_TYPE_2("trade_type", "2", "线下付款"),
+    TRADE_TYPE_3("trade_type", "3", "第三方支付"),
     PICKUP_TYPE_0("pickup_type", "0", "供应配送"),
     PICKUP_TYPE_1("pickup_type", "1", "采方自提"),
     DELIVERY_TYPE_0("delivery_type", "0", "签发交付"),

+ 1 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictTypeEnum.java

@@ -12,6 +12,7 @@ import lombok.Getter;
 @AllArgsConstructor
 public enum DictTypeEnum {
     INTEGRAL_TYPE("integral_type", "积分类型"),
+    UNIT_TYPE("unit_type", "商品单位类型"),
     PRICE_TYPE("price_type", "运价方式"),
     TRADE_TYPE("trade_type", "交易方式"),
     PICKUP_TYPE("pickup_type", "提货方式"),

+ 50 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java

@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
+
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -368,5 +369,54 @@ public class SckwWaybillOrder{
      */
     private Integer delFlag;
 
+    /**
+     * 单据状态
+     */
+    private String status;
+
+    /**
+     * 循环/趟次
+     */
+    private String type;
+
+    /**
+     * 车队id
+     */
+    private String fleetId;
+    /**
+     * 车队姓名
+     */
+    private String fleetName;
+
+    /**
+     * 派车时间-创建时间
+     */
+    private Date sendCarTime;
+    /**
+     * 启送时间
+     */
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 装货区域
+     */
+    private String loadingCity;
+    /**
+     * 装货详细地址
+     */
+    private String loadingAddress;
+
+    /**
+     * 卸货区域
+     */
+    private String unloadingCity;
+    /**
+     * 卸货详细地址
+     */
+    private String unloadingAddress;
 
 }

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

@@ -7,6 +7,12 @@
         <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <dependencies>
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-core</artifactId>
+        </dependency>
+    </dependencies>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-modules-api</artifactId>

+ 20 - 2
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java

@@ -12,6 +12,24 @@ import java.util.Map;
  */
 public interface RemoteSystemService {
 
+    /**
+     * @param keys type#value,type#value
+     * @return Map<String, SysDictResDto>
+     * @desc: 根据类型id查字典,先查redis,没查到查数据库,查出来了存redis
+     * @author: czh
+     * @date: 2023/7/5
+     */
+    Map<String, SysDictResDto> queryDictMapByTypeValues(String keys);
+
+    /**
+     * @param type 类型
+     * @return Map<String, SysDictResDto>
+     * @desc: 根据类型id查字典,先查redis,没查到查数据库,查出来了存redis
+     * @author: czh
+     * @date: 2023/7/5
+     */
+    Map<String, SysDictResDto> queryDictMapByType(String type);
+
     /**
      * @param type 类型
      * @return SysDictResDto
@@ -85,13 +103,13 @@ public interface RemoteSystemService {
     List<EntCacheResDto> queryEntCacheByName(String entName);
 
     /**
-     * @param endIdList 企业id集合
+     * @param entIdList 企业id集合
      * @return Map<Long, EntCacheResDto>
      * @desc: 查企业树
      * @author: czh
      * @date: 2023/7/17
      */
-    Map<Long, EntCacheResDto> queryEntTreeByIds(List<Long> endIdList);
+    Map<Long, EntCacheResDto> queryEntTreeByIds(List<Long> entIdList);
 
     /**
      * @param userId 用户id

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

@@ -17,4 +17,20 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
+    <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-openfeign-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-core</artifactId>
+        </dependency>
+    </dependencies>
 </project>

+ 26 - 2
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java

@@ -1,8 +1,32 @@
 package com.sckw.transport.api.dubbo;
 
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.transport.api.model.dto.vo.KwtLogisticsOrderVO;
+import com.sckw.transport.api.model.param.LogisticsOrderParam;
+
+import java.util.List;
+
 /**
- *
- *
+ * @author lfdc
+ * @version 1.0
+ * @className TransportDubboService
+ * @description 物流订单dubbo
+ * @company sckw
+ * @date 2023-07-17 10:06:27
  */
 public interface TransportDubboService {
+    /**
+     * 查询物流订单数据
+     *
+     * @param logisticsOrderParam
+     * @return
+     */
+    HttpResult getLogisticsOrderData(LogisticsOrderParam logisticsOrderParam);
+
+    /**
+     * 根据id 获取详情
+     * @param ids
+     * @return
+     */
+    List<KwtLogisticsOrderVO> getAcceptCarriageOrderDetail(List<String> ids);
 }

+ 180 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/vo/KwtLogisticsOrderVO.java

@@ -0,0 +1,180 @@
+package com.sckw.transport.api.model.dto.vo;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author lfdc
+ * @description 物流订单
+ * @date 2023-06-26 16:06:12
+ */
+@Data
+public class KwtLogisticsOrderVO implements Serializable {
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 交易订单id(kwo_trade_order)
+     */
+    private Long tOrderId;
+
+    /**
+     * 交易订单编号(kwo_trade_order)
+     */
+    private String tOrderNo;
+
+    /**
+     * 物流订单编号
+     */
+    private String lOrderNo;
+
+    /**
+     * 分包上级物流订单id
+     */
+    private Long pid;
+
+    /**
+     * 结算周期(周结、月结、季结)
+     */
+    private Long settlementCycle;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+
+    /**
+     * 运价
+     */
+    private BigDecimal price;
+
+    /**
+     * 运价方式(元/吨、元/车)
+     */
+    private Long priceType;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String unit;
+
+    /**
+     * 合理损耗
+     */
+    private BigDecimal loss;
+
+    /**
+     * 合理损耗单位(‰/kG)
+     */
+    private String lossUnit;
+
+    /**
+     * 商品价值(扣亏货值)
+     */
+    private BigDecimal goodsPrice;
+
+    /**
+     * 商品价值(扣亏货值)单位
+     */
+    private String goodsPriceUnit;
+
+    /**
+     * 计划开始日期
+     */
+    private Date startTime;
+
+    /**
+     * 计划结束日期
+     */
+    private Date entTime;
+
+    /**
+     * 分包量
+     */
+    private BigDecimal subcontractAmount;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 卸货量
+     */
+    private BigDecimal unloadAmount;
+
+    /**
+     * 装货量
+     */
+    private BigDecimal loadAmount;
+
+    /**
+     * 忽略剩余量
+     */
+    private BigDecimal ignoreAmount;
+
+    /**
+     * 亏吨量(装货量-卸货量)
+     */
+    private BigDecimal deficitAmount;
+
+    /**
+     * 亏吨扣款
+     */
+    private BigDecimal deficitPrice;
+
+    /**
+     * 付款方式(预付款、线下支付、第三方支付)
+     */
+    private Long payment;
+
+    /**
+     * 发票税率(%)
+     */
+    private BigDecimal taxRate;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    private Integer status;
+
+    private Long createBy;
+
+    private Date createTime;
+
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    @TableLogic(value = "0")
+    private Integer delFlag;
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 90 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/vo/LogisticsOrderDTO.java

@@ -0,0 +1,90 @@
+package com.sckw.transport.api.model.dto.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author lfdc
+ * @description 承运订单dto
+ * @date 2023-07-17 11:07:08
+ */
+@Data
+public class LogisticsOrderDTO {
+
+    /**
+     * 物流订单id
+     */
+    private String lOrderId;
+    /**
+     * 物流订单编号
+     */
+    private String lOrderNO;
+
+    /**
+     * 销售订单id
+     */
+    private String tOrderId;
+    /**
+     * 销售订单编号
+     */
+    private String tOrderNO;
+    /**
+     * 付款方式
+     */
+    private String payment;
+    /**
+     * 运输趟次
+     */
+    private Integer count;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+    /**
+     * 合同
+     */
+    private String contract;
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+    /**
+     * 合同名称
+     */
+    private String contractName;
+    /**
+     * 承运单位
+     */
+    private String carrierCompany;
+    /**
+     * 托运单位
+     */
+    private String consignCompany;
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+    /**
+     * 计划量
+     */
+    private String amount;
+    /**
+     * 运价
+     */
+    private BigDecimal price;
+
+    /**
+     * 扣亏损值
+     */
+    private BigDecimal goodsPrice;
+    private BigDecimal loss;
+    private BigDecimal unloadAmount;
+    private BigDecimal loadAmount;
+
+    /**
+     * 销售单价
+     */
+    private BigDecimal salesPrice;
+
+}

+ 62 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/param/LogisticsOrderParam.java

@@ -0,0 +1,62 @@
+package com.sckw.transport.api.model.param;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author lfdc
+ * @description 物流订单请求参数
+ * @date 2023-07-17 11:07:09
+ */
+@Data
+public class LogisticsOrderParam implements Serializable {
+    /**
+     * 客户单位id
+     */
+    @NotNull(message = "客户单位id不能为空")
+    private String companyId;
+    /**
+     * 客户单位名称
+     */
+    @NotNull(message = "客户单位名称不能为空")
+    private String companyName;
+    /**
+     * 开始时间
+     */
+    private String startTime;
+    /**
+     * 结束时间
+     */
+    private String endTime;
+
+    /**
+     * 付款方式(预付款、线下支付、第三方支付)
+     */
+    @NotNull(message = "付款方式不能为空")
+    private String payment;
+
+    /**
+     * 付款方式(预付款、线下支付、第三方支付)
+     */
+    @NotNull(message = "付款方式类型不能为空")
+    private String paymentType;
+
+    /**
+     * 发票税率(%)
+     */
+    @NotNull(message = "发票税率不能为空")
+    private String taxRate;
+
+    /**
+     * 货物名称
+     */
+    private String goodsName;
+
+    @NotNull(message = "当前页不能为空")
+    private Integer page;
+
+    @NotNull(message = "每页条数不能为空")
+    private Integer pageSize;
+}

+ 1 - 1
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SmsService.java

@@ -4,8 +4,8 @@ import com.alibaba.fastjson2.JSON;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.utils.NumberUtils;
 import com.sckw.core.web.context.LoginUserHolder;
-import com.sckw.redis.constant.RedisConstant;
 import com.sckw.message.model.vo.req.SendSmsVerifyCoderReqVO;
+import com.sckw.redis.constant.RedisConstant;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.stream.enums.SmsCodeEnum;
 import com.sckw.stream.model.SckwSms;

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

@@ -27,7 +27,7 @@ public class GoodsListExport implements Serializable {
     private String goodsTypeLabel;
 
     @ExcelProperty(value = "计量单位", index = 3)
-    private String unit;
+    private String unitLabel;
 
     @ExcelProperty(value = "规格尺寸", index = 4)
     private String spec;

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

@@ -51,7 +51,7 @@ public class BuildingMaterialsMarketList {
     /**
      * 单位(吨、方、件、箱、其他)
      */
-    private String unit;
+    private String unitLabel;
 
     /**
      * 交易方式(预付款、货到付款、线下付款)

+ 5 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/GoodsDetail.java

@@ -76,6 +76,11 @@ public class GoodsDetail {
      */
     private String unit;
 
+    /**
+     * 单位lab
+     */
+    private String unitLabel;
+
     /**
      * 尺寸大小
      */

+ 5 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/GoodsList.java

@@ -55,6 +55,11 @@ public class GoodsList {
      */
     private String unit;
 
+    /**
+     * 计量单位lab
+     */
+    private String unitLabel;
+
     /**
      * 尺寸大小
      */

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

@@ -181,6 +181,7 @@ public class KwpGoodsService {
         }
         detail.setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), detail.getGoodsType()))
                 .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), detail.getTrading()))
+                .setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), detail.getUnit()))
                 .setStatusLabel(DictEnum.getLabel(DictTypeEnum.GOODS_STATUS.getType(), String.valueOf(detail.getStatus())));
         //商品图片信息
         List<KwpGoodsImage> goodsImages = kwpGoodsImageService.getByGoodsId(id);
@@ -374,6 +375,7 @@ public class KwpGoodsService {
             UserCacheResDto createUser = userMap.get(e.getCreateBy());
             goodsList.setStatusLabel(DictEnum.getLabel(DictTypeEnum.GOODS_STATUS.getType(), String.valueOf(goodsList.getStatus())))
                     .setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), goodsList.getGoodsType()))
+                    .setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), goodsList.getUnit()))
                     .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), goodsList.getTrading()))
                     .setManageName(Objects.nonNull(manager) ? manager.getName() : null)
                     .setPhone(Objects.nonNull(manager) ? manager.getPhone() : null)
@@ -601,6 +603,7 @@ public class KwpGoodsService {
                     .setPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(0).getPrice())
                     .setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), e.getGoodsType()))
                     .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
+                    .setTradingLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), e.getUnit()))
                     .setSupplyEnt(entMap.get(e.getSupplyEntId()));
             result.add(materials);
         });

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

@@ -74,6 +74,12 @@
             <artifactId>sckw-system-api</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-transport-api</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+
 
         <!--junit-->
         <dependency>

+ 31 - 4
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java

@@ -12,10 +12,7 @@ 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 org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -84,4 +81,34 @@ public class KwTransportController {
         return HttpResult.ok("没有可导出的数据");
     }
 
+    /**
+     * 托运订单-承运订单(订单详情)
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/getOrderDetail", method = RequestMethod.GET)
+    public HttpResult getOrderDetail(@RequestParam("id") Long id) {
+        try {
+            return transportService.getOrderDetail(id);
+        } catch (Exception e) {
+            log.error("托运订单-承运订单(订单详情)查询失败:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+    /**
+     * 根据当前登录 id获取派给当前id的车辆运单
+     *
+     * @return
+     */
+    @RequestMapping(value = "/getWaybillDriverDetail", method = RequestMethod.GET)
+    public HttpResult getWaybillDriverDetail(@RequestParam("id") Long id, @RequestParam("type") String type) {
+        try {
+            return transportService.getWaybillDriverDetail(id,type);
+        } catch (Exception e) {
+            log.error("派车给当前司机单据查询 error:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
 }

+ 50 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/enums/CarWaybillEnum.java

@@ -0,0 +1,50 @@
+package com.sckw.report.enums;
+
+public enum CarWaybillEnum {
+    PENDING_ORDER(1, "pendingOrder", "1", "待接单"),
+    PENDING_VEHICLE(2, "pendingVehicle", "2", "待出车"),
+    EXIT_COMPLETED(3, "exitCompleted", "3", "已出车"),
+    WAIT_LOADING(4, "waitLoading", "4", "到达装货点"),
+    COMPLETION_LOADING(5, "completionLoading", "5", "已装货"),
+    WAIT_UNLOADING(6, "waitUnloading", "6", "到达卸货点"),
+    COMPLETION_UNLOADING(7, "completionUnloading", "7", "已卸货"),
+    APPROVAL_COMPLETED(8, "approvalCompleted", "8", "已核单"),
+    REJECT_ORDER(9, "rejectOrder", "9", "拒接单");
+
+    private final Integer code;
+    private final String value;
+    private final String status;
+    private final String destination;
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public String getDestination() {
+        return destination;
+    }
+
+    CarWaybillEnum(Integer code, String value, String status, String destination) {
+        this.code = code;
+        this.value = value;
+        this.status = status;
+        this.destination = destination;
+    }
+
+    public static String getLogisticsOrderValue(Integer code) {
+        for (CarWaybillEnum waybillEnum : CarWaybillEnum.values()) {
+            if (waybillEnum.getCode().equals(code)) {
+                return waybillEnum.getValue();
+            }
+        }
+        return null;
+    }
+}

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

@@ -4,14 +4,20 @@ 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.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.DateUtil;
 import com.sckw.mongo.model.SckwLogisticsOrder;
+import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.mongo.model.TobleTop;
 import com.sckw.report.dao.SckwLogisticsOrderRepository;
+import com.sckw.report.enums.CarWaybillEnum;
 import com.sckw.report.service.param.ConsignOrderQuery;
 import com.sckw.report.service.vo.ConsignOrderVo;
+import com.sckw.transport.api.dubbo.TransportDubboService;
+import com.sckw.transport.api.model.dto.vo.KwtLogisticsOrderVO;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
@@ -42,6 +48,8 @@ public class KwTransportService {
     @Autowired
     private MongoTemplate mongoTemplate;
 
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    TransportDubboService transportDubboService;
     public HttpResult list(ConsignOrderQuery query) throws ParseException {
         //模糊匹配
         //根据条件查询所有并排序,且分页
@@ -249,4 +257,63 @@ public class KwTransportService {
             returnList.add(vo);
         }
     }
+
+    public HttpResult getOrderDetail(Long id) {
+        Query query = new Query();
+        Criteria criteria = new Criteria();
+        criteria.andOperator(Criteria.where("_id").is(id).and("delFlag").is(NumberConstant.ZERO));
+        query.addCriteria(criteria);
+        SckwLogisticsOrder sckwLogisticsOrder = mongoTemplate.findOne(query, SckwLogisticsOrder.class);
+        return HttpResult.ok(sckwLogisticsOrder);
+    }
+
+    /**
+     * 司机端 运单详情页面
+     * @param id
+     * @param type
+     * @return
+     */
+    public HttpResult getWaybillDriverDetail(Long id, String type) {
+        HttpResult result = new HttpResult();
+        /**
+         * 当前司机端页面 页面【计划】=1;【出车】=2;【执行】=3;【完结】=4
+         * 计划:对应运单状态的[待接单]
+         * 出车:对应运单状态的[待出车]
+         * 执行:对应[已出车][到达装货地点]、[已装货]、[到达卸货地点]
+         * 完结: 对应[已卸货]、[已核单]
+         * */
+        List<Long> status = new ArrayList<>();
+        if (String.valueOf(NumberConstant.ONE).equals(type)) {
+            status.add(CarWaybillEnum.PENDING_ORDER.getCode().longValue());
+        } else if (String.valueOf(NumberConstant.TWO).equals(type)) {
+            status.add(CarWaybillEnum.PENDING_VEHICLE.getCode().longValue());
+        } else if (String.valueOf(NumberConstant.THREE).equals(type)) {
+            status.add(CarWaybillEnum.EXIT_COMPLETED.getCode().longValue());
+            status.add(CarWaybillEnum.WAIT_LOADING.getCode().longValue());
+            status.add(CarWaybillEnum.COMPLETION_LOADING.getCode().longValue());
+            status.add(CarWaybillEnum.WAIT_UNLOADING.getCode().longValue());
+        } else if (String.valueOf(NumberConstant.FOUR).equals(type)) {
+            status.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode().longValue());
+            status.add(CarWaybillEnum.APPROVAL_COMPLETED.getCode().longValue());
+        } else {
+            result.setMsg("类型错误");
+            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
+            return result;
+        }
+        // 创建条件对象
+        Criteria criteria = new Criteria();
+        Query query = new Query(criteria);
+        //in查询
+        if (CollectionUtils.isNotEmpty(status)) {
+            query.addCriteria(Criteria.where("_id").in(status));
+        }
+        // 执行查询
+        List<SckwWaybillOrder> all1 = mongoTemplate.findAll(SckwWaybillOrder.class);
+        return HttpResult.ok(all1);
+    }
+
+    public List<KwtLogisticsOrderVO> transportDubboService(List<String> ids) {
+        List<KwtLogisticsOrderVO> acceptCarriageOrderDetail = transportDubboService.getAcceptCarriageOrderDetail(ids);
+        return acceptCarriageOrderDetail;
+    }
 }

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEntDeptDao.java

@@ -41,7 +41,7 @@ public interface KwsEntDeptDao {
      * @author: czh
      * @date: 2023/7/17
      */
-    List<KwsEntDept> selectByEntId(Long entId);
+    KwsEntDept selectByEntId(Long entId);
 
     /**
      * @param entPid 企业pid

+ 10 - 8
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteBaseService.java

@@ -124,14 +124,16 @@ public class RemoteBaseService {
      */
     public void fillRelate(EntCacheResDto entCacheResDto) {
         Long id = entCacheResDto.getId();
-//        List<KwsEntDept> kwsEntDepts = kwsEntDeptDao.selectByEntID(id);
-//        if (CollectionUtils.isNotEmpty(kwsEntDepts)) {
-//            entCacheResDto.setEntDeptIds(String.join(Global.COMMA, kwsEntDepts.stream().map(KwsEntDept::getEntPid).map(String::valueOf).toList()));
-//            return;
-//        }
-//
-//        kwsEntDepts = kwsEntDeptDao.selectByEntPid(id);
-
+        KwsEntDept kwsEntDept = kwsEntDeptDao.selectByEntId(id);
+        //不为空则是主体单位
+        if (Objects.nonNull(kwsEntDept)) {
+            entCacheResDto.setParentId(kwsEntDept.getEntPid());
+            return;
+        }
 
+        List<KwsEntDept> kwsEntDepts = kwsEntDeptDao.selectByEntPid(id);
+        if (CollectionUtils.isNotEmpty(kwsEntDepts)) {
+            entCacheResDto.setEntDeptIds(String.join(Global.COMMA, kwsEntDepts.stream().map(KwsEntDept::getEntPid).map(String::valueOf).toList()));
+        }
     }
 }

+ 69 - 5
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -45,6 +45,44 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
     @Autowired
     private SysAreaService sysAreaService;
 
+    /**
+     * @param keys type#value,type#value
+     * @return Map<String, SysDictResDto>
+     * @desc: 根据类型id查字典,先查redis,没查到查数据库,查出来了存redis
+     * @author: czh
+     * @date: 2023/7/5
+     */
+    @Override
+    public Map<String, SysDictResDto> queryDictMapByTypeValues(String keys) {
+        Map<String, SysDictResDto> map = new HashMap<>();
+        String[] typeValueArr = keys.split(Global.COMMA);
+        for (int i = 0; i < typeValueArr.length; i++) {
+            String typeValue = typeValueArr[i];
+            String[] split = typeValue.split(Global.POUND);
+            SysDictResDto sysDictResDto = queryDictByTypeAndValue(split[0], split[1]);
+            map.put(typeValue, sysDictResDto);
+        }
+
+        return map;
+    }
+
+    /**
+     * @param type 类型
+     * @return Map<String, SysDictResDto>
+     * @desc: 根据类型id查字典,先查redis,没查到查数据库,查出来了存redis
+     * @author: czh
+     * @date: 2023/7/5
+     */
+    @Override
+    public Map<String, SysDictResDto> queryDictMapByType(String type) {
+        List<SysDictResDto> sysDictResDtos = queryDictByType(type);
+        if (CollectionUtils.isEmpty(sysDictResDtos)) {
+            return new HashMap<>();
+        }
+
+        return sysDictResDtos.stream().collect(Collectors.toMap(SysDictResDto::getValue, v->v));
+    }
+
     /**
      * @param type 类型
      * @return SysDictResDto
@@ -127,7 +165,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
     }
 
     /**
-     * @param  type 字典类型,value key
+     * @param type 字典类型,value key
      * @return SysDictGroupResDto
      * @desc: 根据字典类型和key查字典组
      * @author: czh
@@ -180,6 +218,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
             BeanUtils.copyProperties(kwsEnterpriseResDto, entCacheResDto);
             entCacheResDto.setDeptInfo(remoteBaseService.queryDeftInfoByEntId(entId));
             entCacheResDto.setCertificateInfo(remoteBaseService.queryCertificateByEntId(entId));
+            remoteBaseService.fillRelate(entCacheResDto);
             RedissonUtils.putString(key, JSON.toJSONString(entCacheResDto), Global.COMMON_EXPIRE);
             return entCacheResDto;
         }
@@ -211,12 +250,37 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         return list;
     }
 
+    /**
+     * @param entIdList 企业id集合
+     * @return Map<Long, EntCacheResDto>
+     * @desc: 查企业树
+     * @author: czh
+     * @date: 2023/7/17
+     */
     @Override
-    public Map<Long, EntCacheResDto> queryEntTreeByIds(List<Long> endIdList) {
-        for (Long entId : endIdList) {
-            queryEntCacheById(entId);
+    public Map<Long, EntCacheResDto> queryEntTreeByIds(List<Long> entIdList) {
+        Map<Long, EntCacheResDto> result = new HashMap<>();
+        for (Long entId : entIdList) {
+            EntCacheResDto entCacheResDto = queryEntCacheById(entId);
+
+            //有主体单位
+            String entDeptIds = entCacheResDto.getEntDeptIds();
+            if (StringUtils.isNotBlank(entDeptIds)) {
+                List<Long> entDeptIdList = Arrays.stream(entDeptIds.split(Global.COMMA)).map(Long::parseLong).toList();
+                List<EntCacheResDto> child = queryEntCacheByIds(entDeptIdList);
+                entCacheResDto.setChild(child);
+                result.put(entId, entCacheResDto);
+            }
+
+            //有父企业
+            Long parentId = entCacheResDto.getParentId();
+            if (Objects.nonNull(parentId)) {
+                EntCacheResDto parent = queryEntCacheById(parentId);
+                parent.setChild(Collections.singletonList(entCacheResDto));
+                result.put(entId, parent);
+            }
         }
-        return null;
+        return result;
     }
 
     @Override

+ 42 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/DriverController.java

@@ -0,0 +1,42 @@
+package com.sckw.transport.controller;
+
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.transport.service.DriverService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author lfdc
+ * @description 司机端操作controller
+ * @date 2023-07-14 11:07:10
+ */
+@Slf4j
+@RestController
+@RequestMapping("/kwtDriverController")
+public class DriverController {
+
+    @Autowired
+    private DriverService driverService;
+
+    /**
+     * 司机app top统计
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/statistics", method = RequestMethod.POST)
+    public HttpResult statistics(@RequestParam("id") Long id) {
+        try {
+            return driverService.statistics(id);
+        } catch (Exception e) {
+            log.error("司机app top统计 error:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+}

+ 68 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java

@@ -10,10 +10,7 @@ import lombok.RequiredArgsConstructor;
 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 org.springframework.web.bind.annotation.*;
 
 /**
  * @author lfdc
@@ -46,6 +43,40 @@ public class LogisticsConsignmentController {
         }
     }
 
+    /**
+     * 采购订单-托运订单详情-销售订单id
+     * @param id
+     * @return
+     */
+    @Validated
+    @RequestMapping(value = "/purchaseLogisticsOrder", method = RequestMethod.GET)
+    public HttpResult purchaseLogisticsOrder(@RequestParam("id") String id,@RequestParam("page") int page,@RequestParam("pageSize") int pageSize) {
+        log.info("采购订单-托运订单详情 传递参数信息:{}", id);
+        try {
+            return logisticsConsignmentService.purchaseLogisticsOrder(id,page,pageSize);
+        } catch (Exception e) {
+            log.error("采购订单-托运订单详情 error :{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+    /**
+     * 采购订单-车辆详情-销售订单id
+     * @param id
+     * @return
+     */
+    @Validated
+    @RequestMapping(value = "/purchaseLogisticsCar", method = RequestMethod.GET)
+    public HttpResult purchaseLogisticsCar(@RequestParam("id") String id,@RequestParam("page") int page,@RequestParam("pageSize") int pageSize) {
+        log.info("采购订单-托运订单详情 传递参数信息:{}", id);
+        try {
+            return logisticsConsignmentService.purchaseLogisticsCar(id,page,pageSize);
+        } catch (Exception e) {
+            log.error("采购订单-托运订单详情 error :{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
     /**
      * 销售订单-物流托运
      * @param logisticsConsignmentParam
@@ -61,4 +92,37 @@ public class LogisticsConsignmentController {
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
+
+    /**
+     * 销售订单-托运订单详情-销售订单id
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/sellLogisticsOrder", method = RequestMethod.GET)
+    public HttpResult sellLogisticsOrder(@RequestParam("id") String id,@RequestParam("page") int page,@RequestParam("pageSize") int pageSize) {
+        log.info("销售订单-托运订单详情 传递参数信息:{}", id);
+        try {
+            return logisticsConsignmentService.sellLogisticsOrder(id,page,pageSize);
+        } catch (Exception e) {
+            log.error("销售订单-托运订单详情 error :{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+    /**
+     * 销售订单-车辆详情-销售订单id
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/sellLogisticsCar", method = RequestMethod.GET)
+    public HttpResult sellLogisticsCar(@RequestParam("id") String id,@RequestParam("page") int page,@RequestParam("pageSize") int pageSize) {
+        log.info("销售订单-托运订单详情 传递参数信息:{}", id);
+        try {
+            return logisticsConsignmentService.sellLogisticsCar(id,page,pageSize);
+        } catch (Exception e) {
+            log.error("销售订单-托运订单详情 error :{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
 }

+ 18 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/TransportCommonController.java

@@ -3,6 +3,7 @@ package com.sckw.transport.controller;
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.transport.api.model.param.LogisticsOrderParam;
 import com.sckw.transport.model.dto.DocumentParamDTO;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.service.TransportCommonService;
@@ -59,4 +60,21 @@ public class TransportCommonController {
         }
     }
 
+    /**
+     * 对账管理-运费收款对账界面查询接口
+     * @param logisticsOrderParam
+     * @return
+     */
+    @RequestMapping(value = "/getAcceptCarriageOrder", method = RequestMethod.POST)
+    public HttpResult getAcceptCarriageOrder(@RequestBody @Validated LogisticsOrderParam logisticsOrderParam) {
+        try {
+            return transportCommonService.getAcceptCarriageOrder(logisticsOrderParam);
+        } catch (Exception e) {
+            log.error("派车给当前司机单据查询 error:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+
+    }
+
+
 }

+ 30 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java

@@ -1,8 +1,13 @@
 package com.sckw.transport.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.transport.api.model.dto.vo.LogisticsOrderDTO;
+import com.sckw.transport.api.model.param.LogisticsOrderParam;
 import com.sckw.transport.model.KwtLogisticsOrder;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 @Mapper
 public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
@@ -23,4 +28,29 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
     int updateByPrimaryKey(KwtLogisticsOrder record);
 
     void removeById(KwtLogisticsOrder logisticsOrder);
+
+    /**
+     * 查询物流订单数据
+     *
+     * @param logisticsOrderParam 查询参数
+     * @param dictId              字典id
+     * @return
+     */
+    List<LogisticsOrderDTO> selectLogisticOrderData(@Param("logisticsOrderParam") LogisticsOrderParam logisticsOrderParam, @Param("dictId") Long dictId);
+
+
+    /**
+     * 销售订单-采购订单-托运详情
+     *
+     * @param id
+     * @return
+     */
+    List<com.sckw.transport.model.dto.LogisticsOrderDTO> selectOrderList(@Param("id") String id,@Param("page") int page,@Param("pageSize") int pageSize);
+
+    /**
+     *
+     * @param id
+     * @return
+     */
+    Long selectOrderCount(@Param("id") String id);
 }

+ 8 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java

@@ -2,7 +2,11 @@ package com.sckw.transport.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.transport.model.KwtWaybillOrder;
+import com.sckw.transport.model.dto.OrderCarDTO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 @Mapper
 public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
@@ -17,4 +21,8 @@ public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
     int updateByPrimaryKeySelective(KwtWaybillOrder record);
 
     int updateByPrimaryKey(KwtWaybillOrder record);
+
+    List<OrderCarDTO> selectWaybillOrderCarList(@Param("id") String id, @Param("page") int page, @Param("pageSize") int pageSize);
+
+    Long selectWaybillOrderCarCount(@Param("id") String id);
 }

+ 14 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/CarListDTO.java

@@ -68,4 +68,18 @@ public class CarListDTO {
     @JsonProperty("driverCard")
     @NotNull(message = "司机身份证不能为空")
     private String driverCard;
+
+    /**
+     * 车队id
+     */
+    @JsonProperty("fleetId")
+    @NotNull(message = "车队id不能为空")
+    private String fleetId;
+
+    /**
+     * 车队名称
+     */
+    @JsonProperty("fleetName")
+    @NotNull(message = "车队名称不能为空")
+    private String fleetName;
 }

+ 70 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/LogisticsOrderDTO.java

@@ -0,0 +1,70 @@
+package com.sckw.transport.model.dto;
+
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 销售订单/采购订单-托运详情
+ * @date 2023-07-17 16:07:10
+ */
+@Data
+public class LogisticsOrderDTO {
+
+    /**
+     * 物流订单id
+     */
+    private String lOrderId;
+    /**
+     * 物流订单no
+      */
+    private String lOrderNo;
+
+    /**
+     * 贸易订单id
+     */
+    private String tOrderId;
+    /**
+     * 贸易订单no
+     */
+    private String tOrderNo;
+    /**
+     * 单据状态
+     */
+    private String status;
+    /**
+     * 承运单位
+     */
+    private String companyName;
+    /**
+     * 计划量
+     */
+    private String amount;
+    /**
+     * 运价
+     */
+    private String price;
+    /**
+     * 合理损耗
+     */
+    private String loss;
+    /**
+     * 扣亏货值
+     */
+    private String goodsPrice;
+    /**
+     * 联系人
+     */
+    private String contacts;
+    /**
+     * 联系电话
+     */
+    private String phone;
+    /**
+     * 指派时间
+     */
+    private String createTime;
+    /**
+     * 指派人
+     */
+    private String createBy;
+}

+ 88 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderCarDTO.java

@@ -0,0 +1,88 @@
+package com.sckw.transport.model.dto;
+
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 销售订单-采购订单-车辆信息
+ * @date 2023-07-17 16:07:42
+ */
+@Data
+public class OrderCarDTO {
+
+    /**
+     * 物流订单id
+     */
+    private String lOrderId;
+    /**
+     * 物流订单no
+     */
+    private String lOrderNo;
+
+    /**
+     * 贸易订单id
+     */
+    private String tOrderId;
+    /**
+     * 贸易订单no
+     */
+    private String tOrderNo;
+    /**
+     * 车辆运单编号
+     */
+    private String wOrderNo;
+    /**
+     * 车辆运单id
+     */
+    private String wOrderId;
+    /**
+     * 司机id
+     */
+    private String driverId;
+
+    /**
+     * 司机姓名
+     */
+    private String driverName;
+
+    /**
+     * 司机电话
+     */
+    private String driverPhone;
+
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+
+    /**
+     * 装载量
+     */
+    private String loadAmount;
+
+    /**
+     * 趟次
+     */
+    private Integer count;
+
+    /**
+     * 车辆类型
+     */
+    private String catType;
+
+    /**
+     * 司机身份证
+     */
+    private String driverCard;
+
+    /**
+     * 车队id
+     */
+    private String fleetId;
+
+    /**
+     * 车队名称
+     */
+    private String fleetName;
+
+}

+ 41 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SendCarDTO.java

@@ -44,6 +44,47 @@ public class SendCarDTO {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date unloadDateTime;
 
+    /**
+     * 装货区域
+     */
+    @JsonProperty("loadCity")
+    @NotNull(message = "装货区域不能为空")
+    private String loadCity;
+
+    /**
+     * 装货详细
+     */
+    @JsonProperty("loadAddress")
+    @NotNull(message = "装货详细地址不能为空")
+    private String loadAddress;
+
+    /**
+     * 卸货详细地址
+     */
+    @JsonProperty("unloadAddress")
+    @NotNull(message = "卸货详细地址不能为空")
+    private String  unloadAddress;
+
+    /**
+     * 卸货区域
+     */
+    @JsonProperty("unloadCity")
+    @NotNull(message = "卸货区域不能为空")
+    private String unloadCity;
+
+    /**
+     * 货物名称
+     */
+    @JsonProperty("goodsName")
+    @NotNull(message = "货物名称不能为空")
+    private String goodsName;
+    /**
+     * 货物id
+     */
+    @JsonProperty("goodsId")
+    @NotNull(message = "货物id不能为空")
+    private String goodsId;
+
     /**
      * 运单号
      */

+ 95 - 10
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.service;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -8,11 +9,16 @@ import com.github.pagehelper.PageInfo;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
+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.response.HttpResult;
+import com.sckw.mongo.enums.BusinessTypeEnum;
+import com.sckw.mongo.model.SckwWaybillOrder;
+import com.sckw.stream.model.SckwBusSum;
+import com.sckw.system.api.RemoteSystemService;
 import com.sckw.transport.common.enums.CarWaybillEnum;
 import com.sckw.transport.common.enums.LogisticsOrderEnum;
 import com.sckw.transport.dao.*;
@@ -20,17 +26,20 @@ import com.sckw.transport.model.KwtLogisticsOrder;
 import com.sckw.transport.model.KwtLogisticsOrderTrack;
 import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.KwtWaybillOrderTrack;
+import com.sckw.transport.model.dto.CarListDTO;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.model.dto.OrderTakingDTO;
-import com.sckw.transport.model.dto.CarListDTO;
 import com.sckw.transport.model.dto.SendCarDTO;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
 import com.sckw.transport.model.param.LogisticsConsignmentParam;
 import com.sckw.transport.model.vo.AcceptCarriageOrderVO;
 import com.sckw.transport.model.vo.CarWaybillVO;
 import com.sckw.transport.model.vo.ConsignmentVO;
+import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
@@ -49,6 +58,12 @@ import java.util.List;
 @Service
 public class AcceptCarriageOrderService {
 
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    RemoteSystemService remoteSystemService;
+
+    @Resource
+    private StreamBridge streamBridge;
+
     @Autowired
     private KwtLogisticsOrderMapper logisticsOrderMapper;
 
@@ -156,6 +171,7 @@ public class AcceptCarriageOrderService {
             result.setMsg("单据不存在!");
             return result;
         }
+        List<SckwWaybillOrder> list = new ArrayList<>();
         if (String.valueOf(NumberConstant.ZERO).equals(sendCarDTO.getType())) {
             for (CarListDTO car : sendCarDTO.getCarList()) {
                 if (ObjectUtils.isEmpty(car.getCount())) {
@@ -165,11 +181,12 @@ public class AcceptCarriageOrderService {
                     Long wOrderId = new IdWorker(NumberConstant.ONE).nextId();
                     String wOrderNo = com.sckw.transport.utils.StringUtils.getWaybillNoUtil() + i;
                     KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
-                    waybillOrder.setType(String.valueOf(NumberConstant.ZERO));
+                    String type = String.valueOf(NumberConstant.ZERO);
+                    waybillOrder.setType(type);
                     waybillOrder.setEntrustAmount(new BigDecimal(car.getLoadAmount()));
-                    insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO);
+                    insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO, list, type);
                     //insertWaybillOrderTicket(id,wOrderNo,logisticsOrder,sendCarDTO);
-                    insertWaybillOrderTrack(wOrderId);
+//                    insertWaybillOrderTrack(wOrderId);
                 }
             }
         } else if (String.valueOf(NumberConstant.ONE).equals(sendCarDTO.getType())) {
@@ -181,10 +198,11 @@ public class AcceptCarriageOrderService {
                     Long wOrderId = new IdWorker(NumberConstant.ONE).nextId();
                     String wOrderNo = com.sckw.transport.utils.StringUtils.getWaybillNoUtil() + i;
                     KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
-                    waybillOrder.setType(String.valueOf(NumberConstant.ONE));
+                    String type = String.valueOf(NumberConstant.ONE);
+                    waybillOrder.setType(type);
                     waybillOrder.setEntrustAmount(new BigDecimal(sendCarDTO.getWaitingVolume()));
-                    insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO);
-                    insertWaybillOrderTrack(wOrderId);
+                    insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO, list, type);
+//                    insertWaybillOrderTrack(wOrderId);
                 }
             }
         } else {
@@ -192,6 +210,20 @@ public class AcceptCarriageOrderService {
             result.setMsg("派车类型错误!");
             return result;
         }
+        if (CollectionUtils.isNotEmpty(list)) {
+            for (SckwWaybillOrder sckwWaybillOrder : list) {
+                //rabbitMq业务汇总数据发送/消费对象
+                SckwBusSum busSum = new SckwBusSum();
+                //业务汇总类型
+                busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
+//            busSum.setBusSumType("waybillOrderCar");
+                //操作对象(1新增/2修改)
+                busSum.setMethod(1);
+                //业务汇总数据对象
+                busSum.setObject(sckwWaybillOrder);
+                streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
+            }
+        }
         return result;
     }
 
@@ -232,8 +264,10 @@ public class AcceptCarriageOrderService {
      * @param carListDTO
      * @param sendCarDTO
      */
-    private void insertWaybillOrder(KwtWaybillOrder waybillOrder, Long wOrderId, String wOrderNo, KwtLogisticsOrder logisticsOrder, CarListDTO carListDTO, SendCarDTO sendCarDTO) {
-        waybillOrder.setId(wOrderId);
+    private void insertWaybillOrder(KwtWaybillOrder waybillOrder, Long id, String wOrderNo,
+                                    KwtLogisticsOrder logisticsOrder, CarListDTO carListDTO, SendCarDTO sendCarDTO,
+                                    List<SckwWaybillOrder> list, String type) {
+        waybillOrder.setId(id);
         waybillOrder.setEntId(logisticsOrder.getEntId());
         waybillOrder.setLOrderId(Long.parseLong(sendCarDTO.getLOrderId()));
         waybillOrder.setWOrderNo(wOrderNo);
@@ -244,9 +278,60 @@ public class AcceptCarriageOrderService {
         waybillOrder.setRemark(sendCarDTO.getRemark());
         waybillOrder.setStatus(NumberConstant.ZERO);
         waybillOrder.setCreateBy(LoginUserHolder.getUserId());
-        waybillOrder.setCreateTime(new Date());
+        Date createTime = new Date();
+        waybillOrder.setCreateTime(createTime);
         waybillOrder.setUpdateTime(new Date());
         waybillOrder.setUpdateBy(LoginUserHolder.getUserId());
         waybillOrderMapper.insert(waybillOrder);
+
+        //状态表保存
+        KwtWaybillOrderTrack track = new KwtWaybillOrderTrack();
+        track.setId(new IdWorker(NumberConstant.ONE).nextId());
+        track.setWOrderId(id);
+        track.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
+        track.setCreateTime(new Date());
+        track.setUpdateTime(new Date());
+        track.setCreateBy(LoginUserHolder.getUserId());
+        track.setUpdateBy(LoginUserHolder.getUserId());
+        waybillOrderTrackMapper.insert(track);
+
+        //放入mongodb实体
+        SckwWaybillOrder waybillCarDTO = new SckwWaybillOrder();
+        waybillCarDTO.setStatus(CarWaybillEnum.PENDING_ORDER.getCode().toString());
+        waybillCarDTO.setType(type);
+        waybillCarDTO.setWOrderId(id);
+        waybillCarDTO.setWOrderNo(wOrderNo);
+        waybillCarDTO.setLOrderId(StringUtils.isBlank(sendCarDTO.getLOrderId()) ? null : Long.parseLong(sendCarDTO.getLOrderId()));
+        waybillCarDTO.setLOrderNo(sendCarDTO.getLOrderNo());
+        waybillCarDTO.setTOrderId(logisticsOrder.getTOrderId());
+        waybillCarDTO.setTOrderNo(logisticsOrder.getTOrderNo());
+        waybillCarDTO.setEntId(logisticsOrder.getEntId());
+        waybillCarDTO.setFirmName(remoteSystemService.queryEntCacheById(logisticsOrder.getEntId()).getFirmName());
+        waybillCarDTO.setTruckNo(carListDTO.getTruckNo());
+//        waybillCarDTO.setTruckType();
+//        waybillCarDTO.setTruckEnergyType();
+//        waybillCarDTO.setTruckColor()
+//        waybillCarDTO.setTruckTrailerNo();
+//        waybillCarDTO.setTruckFleetName();
+        waybillCarDTO.setDriverId(StringUtils.isBlank(carListDTO.getDriverId()) ? null : Long.parseLong(carListDTO.getDriverId()));
+//        waybillCarDTO.setDriverPhone();
+//        waybillCarDTO.setDriverIdcard();
+        waybillCarDTO.setDriverName(carListDTO.getDriverName());
+        waybillCarDTO.setSendCarTime(createTime);
+        waybillCarDTO.setStartTime(sendCarDTO.getLoadDateTime());
+        waybillCarDTO.setEndTime(sendCarDTO.getUnloadDateTime());
+        waybillCarDTO.setFleetId(carListDTO.getFleetId());
+        waybillCarDTO.setFleetName(carListDTO.getFleetName());
+        waybillCarDTO.setGoodsName(sendCarDTO.getGoodsName());
+        waybillCarDTO.setGoodsId(StringUtils.isBlank(sendCarDTO.getGoodsId()) ? null : Integer.valueOf(sendCarDTO.getGoodsId()));
+        waybillCarDTO.setEntrustAmount(waybillOrder.getEntrustAmount());
+        waybillCarDTO.setLoadingCity(sendCarDTO.getLoadCity());
+        waybillCarDTO.setLoadTime(sendCarDTO.getLoadDateTime());
+        waybillCarDTO.setLoadingAddress(sendCarDTO.getLoadAddress());
+        waybillCarDTO.setUnloadingCity(sendCarDTO.getUnloadCity());
+        waybillCarDTO.setUnloadTime(sendCarDTO.getUnloadDateTime());
+        waybillCarDTO.setUnloadingAddress(sendCarDTO.getUnloadAddress());
+        waybillCarDTO.setDelFlag(Integer.valueOf(NumberConstant.ZERO));
+        list.add(waybillCarDTO);
     }
 }

+ 45 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/DriverService.java

@@ -0,0 +1,45 @@
+package com.sckw.transport.service;
+
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.transport.dao.KwtWaybillOrderMapper;
+import com.sckw.transport.dao.KwtWaybillOrderTicketMapper;
+import com.sckw.transport.dao.KwtWaybillOrderTrackMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author lfdc
+ * @description 司机端service
+ * @date 2023-07-14 13:07:57
+ */
+@Slf4j
+@Service
+public class DriverService {
+
+    @Autowired
+    private KwtWaybillOrderMapper waybillOrderMapper;
+
+    @Autowired
+    private KwtWaybillOrderTrackMapper waybillOrderTrackMapper;
+
+    @Autowired
+    private KwtWaybillOrderTicketMapper waybillOrderTicketMapper;
+
+
+    /**
+     *
+     * @param id
+     * @return
+     */
+    public HttpResult statistics(Long id) {
+        /**
+         * 当前司机端页面 页面【计划】=1;【出车】=2;【执行】=3;【完结】=4
+         * 计划:对应运单状态的[待接单]
+         * 出车:对应运单状态的[待出车]
+         * 执行:对应[已出车][到达装货地点]、[已装货]、[到达卸货地点]
+         * 完结: 对应[已卸货]、[已核单]
+         * */
+        return null;
+    }
+}

+ 95 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -5,6 +5,7 @@ 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.DictEnum;
+import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -18,6 +19,8 @@ import com.sckw.system.api.RemoteSystemService;
 import com.sckw.transport.common.enums.LogisticsOrderEnum;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
+import com.sckw.transport.model.dto.LogisticsOrderDTO;
+import com.sckw.transport.model.dto.OrderCarDTO;
 import com.sckw.transport.model.param.LogisticsConsignmentParam;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
@@ -30,6 +33,7 @@ import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author lfdc
@@ -73,6 +77,9 @@ public class LogisticsConsignmentService {
     @Autowired
     public KwtLogisticsOrderUnitMapper kwtLogisticsOrderUnitMapper;
 
+    @Autowired
+    public KwtWaybillOrderMapper waybillOrderMapper;
+
 
     @Transactional(rollbackFor = Exception.class)
     public HttpResult purchaseLogisticsConsignment(LogisticsConsignmentParam bo) {
@@ -218,6 +225,7 @@ public class LogisticsConsignmentService {
 
     /**
      * 物流订单-企业信息
+     *
      * @param bo
      * @param orderId
      */
@@ -255,10 +263,11 @@ public class LogisticsConsignmentService {
 
     /**
      * 物流订单-状态
+     *
      * @param bo
      * @param orderId
      */
-    private void insertLogisticsOrderTrack(LogisticsConsignmentParam bo,Long orderId) {
+    private void insertLogisticsOrderTrack(LogisticsConsignmentParam bo, Long orderId) {
         KwtLogisticsOrderTrack entity = new KwtLogisticsOrderTrack();
         entity.setId(new IdWorker(NumberConstant.ONE).nextId());
         entity.setLOrderId(orderId);
@@ -356,6 +365,7 @@ public class LogisticsConsignmentService {
 
     /**
      * 物流订单-装卸货地址
+     *
      * @param bo
      * @param orderId
      */
@@ -410,4 +420,88 @@ public class LogisticsConsignmentService {
         unloadOrderAddress.setUpdateTime(new Date());
         kwtLogisticsOrderAddressMapper.insert(unloadOrderAddress);
     }
+
+    /**
+     * 采购订单-获取托运订单数据
+     *
+     * @param id
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    public HttpResult purchaseLogisticsOrder(String id, Integer page, Integer pageSize) {
+        Long count = getLogisticsOrderCount(id);
+        List<LogisticsOrderDTO> list = getLogisticsOrderData(id, page, pageSize);
+        PageResult build = PageResult.build(page, pageSize, count, list);
+        return HttpResult.ok(build);
+    }
+
+    private Long getLogisticsOrderCount(String id) {
+        return kwtLogisticsOrderMapper.selectOrderCount(id);
+    }
+
+    /**
+     * 销售订单-获取托运订单数据
+     *
+     * @param id
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    public HttpResult sellLogisticsOrder(String id, Integer page, Integer pageSize) {
+        Long count = getLogisticsOrderCount(id);
+        List<LogisticsOrderDTO> list = getLogisticsOrderData(id, page, pageSize);
+        PageResult build = PageResult.build(page, pageSize, count, list);
+        return HttpResult.ok(build);
+    }
+
+    /**
+     * @param id
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    private List<LogisticsOrderDTO> getLogisticsOrderData(String id, Integer page, Integer pageSize) {
+        List<LogisticsOrderDTO> list = kwtLogisticsOrderMapper.selectOrderList(id, page, pageSize);
+        return list;
+    }
+
+    /**
+     * 采购订单获取车辆信息
+     *
+     * @param id
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    public HttpResult purchaseLogisticsCar(String id, Integer page, Integer pageSize) {
+        Long count = getLogisticsCarDataCount(id);
+        List<OrderCarDTO> list = getLogisticsCarData(id, page, pageSize);
+        PageResult build = PageResult.build(page, pageSize, count, list);
+        return HttpResult.ok(build);
+    }
+
+    /**
+     * 销售订单获取车辆信息
+     *
+     * @param id
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    public HttpResult sellLogisticsCar(String id, Integer page, Integer pageSize) {
+        Long count = getLogisticsCarDataCount(id);
+        List<OrderCarDTO> list = getLogisticsCarData(id, page, pageSize);
+        PageResult build = PageResult.build(page, pageSize, count, list);
+        return HttpResult.ok(build);
+    }
+
+    private Long getLogisticsCarDataCount(String id) {
+        return waybillOrderMapper.selectWaybillOrderCarCount(id);
+    }
+
+    private List<OrderCarDTO> getLogisticsCarData(String id, Integer page, Integer pageSize) {
+        List<OrderCarDTO> list = waybillOrderMapper.selectWaybillOrderCarList(id, page, pageSize);
+        return list;
+    }
 }

+ 28 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -3,12 +3,20 @@ package com.sckw.transport.service;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.page.PageHelperUtil;
+import com.sckw.core.model.page.PageResult;
 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.response.HttpResult;
 import com.sckw.excel.utils.DateUtil;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
+import com.sckw.transport.api.model.dto.vo.LogisticsOrderDTO;
+import com.sckw.transport.api.model.param.LogisticsOrderParam;
 import com.sckw.transport.common.enums.LogisticsOrderEnum;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
@@ -16,6 +24,7 @@ import com.sckw.transport.model.dto.DocumentParamDTO;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.model.vo.OrderDetailVO;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -23,6 +32,7 @@ import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author lfdc
@@ -33,6 +43,9 @@ import java.util.Date;
 @Service
 public class TransportCommonService {
 
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    RemoteSystemService remoteSystemService;
+
     @Autowired
     public KwoTradeOrderMapper tradeOrderMapper;
 
@@ -251,4 +264,19 @@ public class TransportCommonService {
         }
         return result;
     }
+
+    public HttpResult getAcceptCarriageOrder(LogisticsOrderParam logisticsOrderParam) {
+        SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(logisticsOrderParam.getPaymentType(), logisticsOrderParam.getPayment());
+        Long dictId = sysDictResDto.getId();
+        if (StringUtils.isNotBlank(logisticsOrderParam.getStartTime())) {
+            logisticsOrderParam.setStartTime(logisticsOrderParam.getEndTime() + " 00:00:00");
+        }
+        if (StringUtils.isNotBlank(logisticsOrderParam.getEndTime())) {
+            logisticsOrderParam.setEndTime(logisticsOrderParam.getEndTime() + " 23:59:59");
+        }
+        List<LogisticsOrderDTO> list = logisticsOrderMapper.selectLogisticOrderData(logisticsOrderParam, dictId);
+        PageHelper.startPage(logisticsOrderParam.getPage(),logisticsOrderParam.getPageSize());
+        PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(list));
+        return HttpResult.ok(pageResult);
+    }
 }

+ 77 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java

@@ -1,16 +1,92 @@
 package com.sckw.transport.service.dubbo;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sckw.core.model.page.PageHelperUtil;
+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.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.transport.api.dubbo.TransportDubboService;
+import com.sckw.transport.api.model.dto.vo.KwtLogisticsOrderVO;
+import com.sckw.transport.api.model.dto.vo.LogisticsOrderDTO;
+import com.sckw.transport.api.model.param.LogisticsOrderParam;
+import com.sckw.transport.dao.KwtLogisticsOrderGoodsMapper;
+import com.sckw.transport.dao.KwtLogisticsOrderMapper;
+import com.sckw.transport.dao.KwtLogisticsOrderUnitMapper;
+import com.sckw.transport.model.KwtLogisticsOrder;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.dubbo.config.annotation.DubboService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @author lfdc
  * @description 运输服务dubbo接口
  * @date 2023-07-11 14:07:28
  */
 @Service
-@DubboService(group = "design", version = "2.0.0")
+@DubboService(group = "design", version = "2.0.0", timeout = 50000)
 public class TransportDubboServiceImpl implements TransportDubboService {
 
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    RemoteSystemService remoteSystemService;
+
+    @Autowired
+    private KwtLogisticsOrderMapper logisticsOrderMapper;
+
+    @Autowired
+    private KwtLogisticsOrderUnitMapper logisticsOrderUnitMapper;
+
+    @Autowired
+    private KwtLogisticsOrderGoodsMapper logisticsOrderGoodsMapper;
+
+
+    /**
+     * 获取承运订单数据
+     *
+     * @param logisticsOrderParam
+     * @return
+     */
+    @Override
+    public HttpResult getLogisticsOrderData(LogisticsOrderParam logisticsOrderParam) {
+        SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(logisticsOrderParam.getPaymentType(), logisticsOrderParam.getPayment());
+        Long dictId = sysDictResDto.getId();
+        if (StringUtils.isNotBlank(logisticsOrderParam.getStartTime())) {
+            logisticsOrderParam.setStartTime(logisticsOrderParam.getEndTime() + " 00:00:00");
+        }
+        if (StringUtils.isNotBlank(logisticsOrderParam.getEndTime())) {
+            logisticsOrderParam.setEndTime(logisticsOrderParam.getEndTime() + " 23:59:59");
+        }
+        List<LogisticsOrderDTO> list = logisticsOrderMapper.selectLogisticOrderData(logisticsOrderParam, dictId);
+        PageHelper.startPage(logisticsOrderParam.getPage(), logisticsOrderParam.getPageSize());
+        PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(list));
+        return HttpResult.ok(pageResult);
+    }
+
+    /**
+     * 对账管理-ids查询
+     *
+     * @param ids
+     * @return
+     */
+    public List<KwtLogisticsOrderVO> getAcceptCarriageOrderDetail(List<String> ids) {
+        List<KwtLogisticsOrderVO> list = new ArrayList<>();
+        List<KwtLogisticsOrder> kwtLogisticsOrders = logisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>().in(KwtLogisticsOrder::getId, ids));
+        if (CollectionUtils.isNotEmpty(kwtLogisticsOrders)) {
+            for (KwtLogisticsOrder kwtLogisticsOrder : kwtLogisticsOrders) {
+                KwtLogisticsOrderVO vo = new KwtLogisticsOrderVO();
+                BeanUtils.copyProperties(kwtLogisticsOrder, vo);
+                list.add(vo);
+            }
+        }
+        return list;
+    }
 }

+ 77 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -81,4 +81,81 @@
             del_flag = #{delFlag,jdbcType=INTEGER}
         where id = #{id,jdbcType=BIGINT}
     </update>
+    <select id="selectOrderList" resultType="com.sckw.transport.model.dto.LogisticsOrderDTO">
+        SELECT a.id          as lorderId,
+               a.l_order_no  as lorderNo,
+               b.`status`    as `status`,
+               a.t_order_id  as tOrderId,
+               a.t_order_no  as tOrderNo,
+               a.payment     as payment,
+               a.amount,
+               a.price,
+               a.loss,
+               a.goods_price as goodsPrice,
+               c.firm_name   as comanyName,
+               c.contacts,
+               c.phone,
+               a.create_by   as createBy,
+               a.create_time as createTime
+        FROM kwt_logistics_order a
+                 LEFT JOIN kwt_logistics_order_track b ON a.id = b.l_order_id
+                 LEFT JOIN kwt_logistics_order_unit c ON a.id = c.l_order_id AND c.unit_type = '2'
+        WHERE a.del_flag = '0'
+          AND b.del_flag = '0'
+          AND a.t_order_id = #{id,jdbcType=VARCHAR} limit #{page}
+            , #{pageSize}
+    </select>
+    <select id="selectOrderCount" resultType="java.lang.Long">
+        SELECT count(a.id)
+        FROM kwt_logistics_order a
+                 LEFT JOIN kwt_logistics_order_track b ON a.id = b.l_order_id
+                 LEFT JOIN kwt_logistics_order_unit c ON a.id = c.l_order_id AND c.unit_type = '2'
+        WHERE a.del_flag = '0'
+          AND b.del_flag = '0'
+          AND a.t_order_id = #{id,jdbcType=VARCHAR}
+    </select>
+    <select id="selectLogisticOrderData" resultType="com.sckw.transport.api.model.dto.vo.LogisticsOrderDTO">
+        SELECT
+        a.id as lOrderId,
+        a.l_order_no as lOrderNO,
+        a.t_order_id as tOrderId,
+        a.t_order_no as tOrderNO,
+        a.payment as payment,
+        a.billing_mode as billingMode,
+        c.contract_id as contractId,
+        b.goods_name as goodsName,
+        a.amount ,
+        a.price,
+        a.goods_price as goodsPrice,
+        a.loss ,
+        a.load_amount as loadAmount,
+        a.unload_amount as unloadAmount
+        FROM
+        kwt_logistics_order a
+        LEFT JOIN kwt_logistics_order_goods b ON a.id = b.l_order_id
+        LEFT JOIN kwt_logistics_order_goods d ON a.id = d.l_order_id
+        LEFT JOIN kwt_logistics_order_contract c ON a.id=c.l_order_id
+        <where>
+            a.del_flag = 0
+            <if test="dictId != null and dictId != ''">
+                AND a.payment = #{dictId}
+            </if>
+            <if test="logisticsOrderParam.companyId !=null and logisticsOrderParam.companyId != ''">
+                AND d.ent_id = #{logisticsOrderParam.companyId}
+            </if>
+            <if test="logisticsOrderParam.taxRate != null and logisticsOrderParam.taxRate != ''">
+                AND a.tax_rate = #{logisticsOrderParam.taxRate}
+            </if>
+            <if test="logisticsOrderParam.goodsName != null and logisticsOrderParam.goodsName != ''">
+                AND b.goods_name LIKE concat('%',#{logisticsOrderParam.goodsName},'%')
+            </if>
+            <if test="logisticsOrderParam.startTime != null and logisticsOrderParam.startTime !=''">
+                AND a.start_time &gt;= #{logisticsOrderParam.startTime}
+            </if>
+            <if test="logisticsOrderParam.endTime != null and logisticsOrderParam.endTime !=''">
+                AND a.ent_time &lt;= #{logisticsOrderParam.endTime}
+            </if>
+        </where>
+        limit #{logisticsOrderParam.page,jdbcType=INTEGER},#{logisticsOrderParam.pageSize,jdbcType=INTEGER}
+    </select>
 </mapper>

+ 22 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -28,4 +28,26 @@
     load_amount, deficit_amount, remark, `status`, create_by, create_time, update_by,
     update_time, del_flag,start_time,end_time
     </sql>
+    <select id="selectWaybillOrderCarList" resultType="com.sckw.transport.model.dto.OrderCarDTO">
+        SELECT a.id         as wOrderId,
+               a.w_order_no as wOrderNo,
+               a.l_order_id as lOrderId,
+               b.l_order_no as lOrderNo,
+               b.t_order_id as tOrderId,
+               b.t_order_no as tOrderNo
+        FROM kwt_waybill_order a
+                 LEFT JOIN kwt_logistics_order b ON a.l_order_id = b.id
+        WHERE a.del_flag = '0'
+          and b.del_flag = '0'
+          and b.t_order_id = #{id,jdbcType=VARCHAR}
+        limit #{page},#{pageSize}
+    </select>
+    <select id="selectWaybillOrderCarCount" resultType="java.lang.Long">
+        SELECT count(a.id)
+        FROM kwt_waybill_order a
+                 LEFT JOIN kwt_logistics_order b ON a.l_order_id = b.id
+        WHERE a.del_flag = '0'
+          and b.del_flag = '0'
+          and b.t_order_id = #{id,jdbcType=VARCHAR}
+    </select>
 </mapper>