فهرست منبع

1、车辆运单接口

zk 2 سال پیش
والد
کامیت
c8f4499f4e
24فایلهای تغییر یافته به همراه527 افزوده شده و 624 حذف شده
  1. 2 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/PasswordUtils.java
  2. 50 69
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java
  3. 2 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTruckDto.java
  4. 53 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java
  5. 0 16
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  6. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java
  7. 10 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderAddressMapper.java
  8. 9 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderGoodsMapper.java
  9. 8 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderUnitMapper.java
  10. 1 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderAddressMapper.java
  11. 23 38
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java
  12. 5 43
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderAddress.java
  13. 0 85
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/CarListDTO.java
  14. 0 114
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SendCarDTO.java
  15. 55 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SendCarDto1.java
  16. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarWaybillVO.java
  17. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillDetailVO.java
  18. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderVO.java
  19. 1 235
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  20. 3 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/DriverService.java
  21. 270 12
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  22. 11 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderAddressMapper.xml
  23. 9 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderGoodsMapper.xml
  24. 11 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderUnitMapper.xml

+ 2 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/PasswordUtils.java

@@ -122,8 +122,8 @@ public class PasswordUtils {
 
     public static void main(String[] args) {
 
-        String password = PasswordUtils.entryptPassword(PasswordUtils.md5("17358629958"));
-        String md5 = PasswordUtils.md5("123456");
+        String password = PasswordUtils.entryptPassword(PasswordUtils.md5("13868885042"));
+        String md5 = PasswordUtils.md5("13868885042");
         System.out.println(password);
         System.out.println(md5);
         System.out.println(validatePassword(md5, password));

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

@@ -68,10 +68,11 @@ public class SckwWaybillOrder{
      */
     private String firmName;
 
+
     /**
      * 车辆id
      */
-    private String truckId;
+    private Long truckId;
 
     /**
      * 车牌号
@@ -81,32 +82,28 @@ public class SckwWaybillOrder{
     /**
      * 车辆类型(牵引车、自卸、高栏、平板、厢式、集装箱车、罐车、封闭式、专项作业车、其他)
      */
-    private Integer truckType;
+    private String truckType;
 
     /**
      * 车能源类型(柴油、汽油、电动、氢能、天然气、液化石油气、甲醇、油电混动、油气混动、其他)
      */
-    private Integer truckEnergyType;
+    private String truckEnergyType;
 
     /**
      * 车使用性质(营运车、租赁车辆、货运车、危化品运输车、非营运车、其他)
      */
-    private Integer truckUseType;
+    private String truckUseType;
 
     /**
      * 车辆颜色
      */
-    private Integer truckColor;
+    private String truckColor;
 
     /**
      * 车挂车号
      */
     private String truckTrailerNo;
 
-    /**
-     * 车队班组
-     */
-    private String truckFleetName;
 
     /**
      * 司机主键ID
@@ -139,6 +136,21 @@ public class SckwWaybillOrder{
      */
     private Date unloadTime;
 
+    /**
+     * 循环/趟次
+     */
+    private Integer type;
+
+    /**
+     * 启送时间
+     */
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+
     /**
      * 已委托量
      */
@@ -189,10 +201,31 @@ public class SckwWaybillOrder{
      */
     private BigDecimal deficitAmount;
 
+    /**
+     * 合理损耗
+     */
+    private BigDecimal loss;
+
+    /**
+     * 合理损耗-单位
+     */
+    private String lossUnit;
+
+    /**
+     * 扣亏损值(合理损耗-(实装-实卸))
+     */
+    private BigDecimal goodsPrice;
+
+    /**
+     * 扣亏损值(合理损耗-(实装-实卸))-单位
+     */
+    private String goodsPriceUnit;
+
+
     /**
      * 商品主键
      */
-    private Integer goodsId;
+    private Long goodsId;
 
     /**
      * 商品编号
@@ -219,6 +252,7 @@ public class SckwWaybillOrder{
      */
     private String goodsSpec;
 
+
     /**
      * 托运企业主键ID
      */
@@ -259,6 +293,7 @@ public class SckwWaybillOrder{
      */
     private String carrierPhone;
 
+
     /**
      * 装货地址类型
      */
@@ -339,6 +374,11 @@ public class SckwWaybillOrder{
      */
     private String unloadLng;
 
+
+    /**
+     * 单据状态
+     */
+    private Integer status;
     /**
      * 创建人主键id
      */
@@ -374,63 +414,4 @@ 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;
-    /**
-     * 合理损耗
-     */
-    private BigDecimal loss;
-    /**
-     * 扣亏损值(合理损耗-(实装-实卸))
-     */
-    private BigDecimal goodsPrice;
-
-
 }

+ 2 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTruckDto.java

@@ -22,7 +22,7 @@ public class KwfTruckDto {
      * 车牌号
      */
     @NotBlank(message = "车牌号不能为空!")
-    @Size(max=7, message = "车牌号长度不能大于7个字符!")
+    @Size(max=8, message = "车牌号长度不能大于8个字符!")
     private String truckNo;
 
     /**
@@ -53,6 +53,7 @@ public class KwfTruckDto {
      * 标准荷载(净重)
      */
     //@Pattern(regexp = "^1[3456789]\\d{9}$", message = "标准荷载格式不正确!")
+    @NotNull(message = "标准荷载不能为空!")
     private Double actualWeight;
 
     /**

+ 53 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java

@@ -79,18 +79,41 @@ public class KwfDriverService {
         }
 
         /**全部数据-处理**/
+        List<KwfTableTopCount> countList = new ArrayList();
         KwfTableTopCount allCount = new KwfTableTopCount();
         allCount.setValue(String.valueOf(Global.NUMERICAL_ZERO));
         allCount.setTotal(tatol);
-        counts.add(allCount);
+        allCount.setName("全部");
+        countList.add(allCount);
+
+        /**数据处理**/
+        Map<String, Integer> statusMap = new HashMap(){{put("正常", 1); put("临时", 2); put("异常", 3);}};
+        for(Map.Entry<String, Integer> entry:statusMap.entrySet()){
+            System.out.println(entry.getKey()+"--->"+entry.getValue());
+            KwfTableTopCount count = new KwfTableTopCount();
+            for (KwfTableTopCount topCount:counts) {
+                if (Integer.parseInt(topCount.getValue()) == entry.getValue()) {
+                    BeanUtils.copyProperties(topCount, count);
+                }
+            }
+            count.setName(entry.getKey());
+            count.setValue(String.valueOf(entry.getValue()));
+            countList.add(count);
+        }
 
         /**数据组装**/
         Map tableCount = new HashMap();
-        tableCount.put("tableTop", counts);
+        tableCount.put("tableTop", countList);
         tableCount.put("tableBottom", tatol);
         return tableCount;
     }
 
+    class KwfTableTopStatus {
+        Map<String, Object> statusMap = new HashMap(){{put("1","正常"); put("2","临时"); put("3","异常");}};
+
+
+    }
+
     /**
      * @param params 分页参数
      * @desc 分页查询
@@ -280,7 +303,7 @@ public class KwfDriverService {
                     throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.DELETE_FAIL);
                 }
             } else {
-                HttpResult.error("选择删除的数据已不存在!");
+                return HttpResult.error("选择删除的数据已不存在!");
             }
         }
         return HttpResult.ok("删除成功!");
@@ -331,6 +354,15 @@ public class KwfDriverService {
      * @date 2023/7/7
      **/
     public HttpResult driverCardEdit(KwfDriverCardDto params) {
+        /**数据校验**/
+        if (StringUtils.isBlank(params.getDriverId())) {
+            return HttpResult.error(HttpStatus.PARAMETERS_PATTERN_ERROR_CODE,"司机信息ID不能为空!");
+        }
+        KwfDriver driver = driverDao.selectById(params.getDriverId());
+        if (driver == null) {
+            return HttpResult.error("司机信息不存在!");
+        }
+
         /**数据copy**/
         KwfDriverCard driverCard = new KwfDriverCard();
         BeanUtils.copyProperties(params, driverCard);
@@ -367,6 +399,15 @@ public class KwfDriverService {
      * @date 2023/7/7
      **/
     public HttpResult driverLicenseEdit(KwfDriverLicenseDto params) {
+        /**数据校验**/
+        if (StringUtils.isBlank(params.getDriverId())) {
+            return HttpResult.error(HttpStatus.PARAMETERS_PATTERN_ERROR_CODE,"司机信息ID不能为空!");
+        }
+        KwfDriver driver = driverDao.selectById(params.getDriverId());
+        if (driver == null) {
+            return HttpResult.error("司机信息不存在!");
+        }
+
         /**数据copy**/
         KwfDriverLicense driverLicense = new KwfDriverLicense();
         BeanUtils.copyProperties(params, driverLicense);
@@ -404,6 +445,15 @@ public class KwfDriverService {
      * @date 2023/7/7
      **/
     public HttpResult driverQualificationEdit(KwfDriverQualificationDto params) {
+        /**数据校验**/
+        if (StringUtils.isBlank(params.getDriverId())) {
+            return HttpResult.error(HttpStatus.PARAMETERS_PATTERN_ERROR_CODE,"司机信息ID不能为空!");
+        }
+        KwfDriver driver = driverDao.selectById(params.getDriverId());
+        if (driver == null) {
+            return HttpResult.error("司机信息不存在!");
+        }
+
         /**数据copy**/
         KwfDriverQualification driverQual = new KwfDriverQualification();
         BeanUtils.copyProperties(params, driverQual);

+ 0 - 16
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -6,7 +6,6 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.DocumentParamDTO;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.model.dto.OrderTakingDTO;
-import com.sckw.transport.model.dto.SendCarDTO;
 import com.sckw.transport.model.param.LogisticsConsignmentParam;
 import com.sckw.transport.model.param.LogisticsOrderParam;
 import com.sckw.transport.service.AcceptCarriageOrderService;
@@ -112,21 +111,6 @@ public class AcceptCarriageOrderController {
         }
     }
 
-    /**
-     * 承运订单-提交派车
-     * @param sendCarDTO 请求参数
-     * @return
-     */
-    @RequestMapping(value = "/commitSendCar", method = RequestMethod.POST)
-    public HttpResult commitSendCar(@Validated @RequestBody SendCarDTO sendCarDTO) {
-        try {
-            return acceptCarriageOrderService.commitSendCar(sendCarDTO);
-        } catch (Exception e) {
-            log.error("派车 error:{}", e.getMessage(), e);
-            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
-        }
-    }
-
     /**
      * 承运订单-获取运单详情
      * @param wOrderId 运单id

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java

@@ -99,7 +99,7 @@ public class KwtWaybillOrderController {
      * @date 2023/5/30
      **/
     @PostMapping("/sendCar")
-    public HttpResult commitSendCar(@RequestBody @Valid ValiList<SendCarDto1> params){
+    public HttpResult sendCar(@RequestBody @Valid ValiList<SendCarDto1> params){
         if (CollectionUtils.isEmpty(params)) {
             return HttpResult.error("请选择委派车辆信息!");
         }

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderAddressMapper.java

@@ -3,6 +3,7 @@ package com.sckw.transport.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.transport.model.KwtLogisticsOrderAddress;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 @Mapper
 public interface KwtLogisticsOrderAddressMapper extends BaseMapper<KwtLogisticsOrderAddress> {
@@ -17,4 +18,13 @@ public interface KwtLogisticsOrderAddressMapper extends BaseMapper<KwtLogisticsO
 //    int updateByPrimaryKeySelective(KwtLogisticsOrderAddress record);
 //
 //    int updateByPrimaryKey(KwtLogisticsOrderAddress record);
+
+    /**
+     * @param lOrderId 物流订单id
+     * @param addressType 地址类型(1装货地址、2卸货地址)
+     * @desc 查询物流运单装卸货地址信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    KwtLogisticsOrderAddress findByAddress(@Param("lOrderId") Long lOrderId, @Param("addressType") Integer addressType);
 }

+ 9 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderGoodsMapper.java

@@ -3,6 +3,7 @@ package com.sckw.transport.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.transport.model.KwtLogisticsOrderGoods;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 @Mapper
 public interface KwtLogisticsOrderGoodsMapper extends BaseMapper<KwtLogisticsOrderGoods> {
@@ -17,4 +18,12 @@ public interface KwtLogisticsOrderGoodsMapper extends BaseMapper<KwtLogisticsOrd
 //    int updateByPrimaryKeySelective(KwtLogisticsOrderGoods record);
 //
 //    int updateByPrimaryKey(KwtLogisticsOrderGoods record);
+
+    /**
+     * @param lOrderId 物流订单id
+     * @desc 查询物流运单商品信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    KwtLogisticsOrderGoods findByGoods(@Param("lOrderId") Long lOrderId);
 }

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

@@ -30,4 +30,12 @@ public interface KwtLogisticsOrderUnitMapper extends BaseMapper<KwtLogisticsOrde
      */
     List<KwtLogisticsOrderUnit> selectCompanyBylOrderId(@Param("ids") List<Long> ids, @Param("unitType") Integer unitType);
 
+    /**
+     * @param lOrderId 物流订单id
+     * @param unitType 1托运 2承运企业
+     * @desc 查询物流运单托运/承运企业信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    KwtLogisticsOrderUnit findByUnit(@Param("lOrderId") Long lOrderId, @Param("unitType") Integer unitType);
 }

+ 1 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderAddressMapper.java

@@ -1,6 +1,7 @@
 package com.sckw.transport.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.transport.model.KwtLogisticsOrderAddress;
 import com.sckw.transport.model.KwtWaybillOrderAddress;
 import org.apache.ibatis.annotations.Mapper;
 

+ 23 - 38
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java

@@ -1,14 +1,11 @@
 package com.sckw.transport.model;
 
-import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.sckw.core.model.base.BaseModel;
 import lombok.Data;
-
-import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
-
 /**
  * @author lfdc
  * @description 车辆运单
@@ -16,11 +13,7 @@ import java.util.Date;
  */
 @Data
 @TableName("kwt_waybill_order")
-public class KwtWaybillOrder implements Serializable {
-    /**
-     * 主键
-     */
-    private Long id;
+public class KwtWaybillOrder extends BaseModel {
 
     /**
      * 企业id
@@ -36,10 +29,16 @@ public class KwtWaybillOrder implements Serializable {
      * 编号
      */
     private String wOrderNo;
+
     /**
      * 单据类型(1:趟次;2:循环)
      */
-    private String type;
+    private Integer type;
+
+    /**
+     * 车辆信息ID
+     */
+    private Long truckId;
 
     /**
      * 车牌号
@@ -52,51 +51,39 @@ public class KwtWaybillOrder implements Serializable {
     private Long driverId;
 
     /**
-     * 已委托量
+     * 司机姓名
      */
-    private BigDecimal entrustAmount;
+    private String driverName;
 
     /**
-     * 卸货重量
+     * 司机手机号码
      */
-    private BigDecimal unloadAmount;
+    private String driverPhone;
 
     /**
-     * 装货重量
+     * 司机身份证号
      */
-    private BigDecimal loadAmount;
+    private String driverIdcard;
 
     /**
-     * 亏吨重量
-     */
-    private BigDecimal deficitAmount;
-
-    /**
-     * 备注
+     * 已委托量
      */
-    private String remark;
+    private BigDecimal entrustAmount;
 
     /**
-     * 用户状态(0正常、1已锁)
+     * 卸货重量
      */
-    private Integer status;
-
-    private Long createBy;
-
-    private Date createTime;
-
-    private Long updateBy;
+    private BigDecimal unloadAmount;
 
     /**
-     * 更新时间
+     * 装货重量
      */
-    private Date updateTime;
+    private BigDecimal loadAmount;
 
     /**
-     * 是否删除(0未删除,1删除)
+     * 亏吨重量
      */
-    @TableLogic("0")
-    private Integer delFlag;
+    private BigDecimal deficitAmount;
 
     /**
      * 计划开始时间
@@ -107,6 +94,4 @@ public class KwtWaybillOrder implements Serializable {
      * 计划结束时间
      */
     private Date endTime;
-
-    private static final long serialVersionUID = 1L;
 }

+ 5 - 43
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderAddress.java

@@ -1,25 +1,21 @@
 package com.sckw.transport.model;
 
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.sckw.core.model.base.BaseModel;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
 
-
 /**
  * @author lfdc
- * @description 车辆运单
+ * @description 车辆运单装卸货地址信息
  * @date 2023-06-26 16:06:12
  */
 @Data
 @TableName("kwt_waybill_order_address")
-public class KwtWaybillOrderAddress implements Serializable {
-
-    /**
-     * 主键
-     */
-    private Long id;
+public class KwtWaybillOrderAddress extends BaseModel {
 
     /**
      * 物流订单id
@@ -72,7 +68,7 @@ public class KwtWaybillOrderAddress implements Serializable {
     private String lat;
 
     /**
-     * 
+     * 
      */
     private String lng;
 
@@ -86,38 +82,4 @@ public class KwtWaybillOrderAddress implements Serializable {
      */
     private Integer entryType;
 
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 用户状态(0正常、1已锁)
-     */
-    private Integer status;
-
-    /**
-     * 创建人
-     */
-    private Long createBy;
-
-    /**
-     * 创建时间
-     */
-    private Date createTime;
-
-    /**
-     * 更新人
-     */
-    private Long updateBy;
-
-    /**
-     * 更新时间
-     */
-    private Date updateTime;
-
-    /**
-     * 是否删除(0未删除,1删除)
-     */
-    private Integer delFlag;
 }

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

@@ -1,85 +0,0 @@
-package com.sckw.transport.model.dto;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * @author lfdc
- * @description 派车dto
- * @date 2023-07-13 14:07:03
- */
-@Data
-@Accessors(chain = true)
-public class CarListDTO {
-
-    /**
-     * 司机id
-     */
-    @JsonProperty("driverId")
-    @NotNull(message = "司机姓名不能为空")
-    private String driverId;
-
-    /**
-     * 司机姓名
-     */
-    @JsonProperty("driverName")
-    @NotNull(message = "司机姓名不能为空")
-    private String driverName;
-
-    /**
-     * 司机电话
-     */
-    @JsonProperty("driverPhone")
-    @NotNull(message = "司机电话不能为空")
-    private String driverPhone;
-
-    /**
-     * 装载量
-     */
-    @JsonProperty("loadAmount")
-    @NotNull(message = "装载量不能为空")
-    private String loadAmount;
-
-    /**
-     * 趟次
-     */
-    @JsonProperty("count")
-    private Integer count;
-
-    /**
-     * 车牌号
-     */
-    @JsonProperty("truckNo")
-    @NotNull(message = "车牌号不能为空")
-    private String truckNo;
-
-    /**
-     * 车辆类型
-     */
-    @JsonProperty("catType")
-    @NotNull(message = "车辆类型不能为空")
-    private String catType;
-
-    /**
-     * 司机身份证
-     */
-    @JsonProperty("driverCard")
-    @NotNull(message = "司机身份证不能为空")
-    private String driverCard;
-
-    /**
-     * 车队id
-     */
-    @JsonProperty("fleetId")
-    @NotNull(message = "车队id不能为空")
-    private String fleetId;
-
-    /**
-     * 车队名称
-     */
-    @JsonProperty("fleetName")
-    @NotNull(message = "车队名称不能为空")
-    private String fleetName;
-}

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

@@ -1,114 +0,0 @@
-package com.sckw.transport.model.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * @author lfdc
- * @description 派单dto
- * @date 2023-07-13 15:07:01
- */
-@Data
-public class SendCarDTO {
-    /**
-     * 物流订单id
-     */
-    @JsonProperty("lOrderId")
-    @NotNull(message = "订单id不能为空")
-    private String lOrderId;
-
-    /**
-     * 物流订单No
-     */
-    @JsonProperty("lOrderNo")
-    @NotNull(message = "订单no不能为空")
-    private String lOrderNo;
-
-    /**
-     * 装货时间
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date loadDateTime;
-
-    /**
-     * 卸货时间
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @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;
-
-    /**
-     * 运单号
-     */
-    @JsonProperty("waybillNumber")
-    @NotNull(message = "运单号不能为空")
-    private String waybillNumber;
-
-    /**
-     * 派车类型(1:趟次:2:循环)
-     */
-    @JsonProperty("type")
-    @NotNull(message = "派车类型不能为空")
-    private String type;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    @NotNull(message = "运力信息不能为空")
-    List<CarListDTO> carList;
-
-    /**
-     * 待运量(循环时,必传递)
-     */
-    private String waitingVolume;
-}

+ 55 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SendCarDto1.java

@@ -36,6 +36,35 @@ public class SendCarDto1 {
     @NotNull(message = "司机信息ID不能为空")
     private Long driverId;
 
+    /**
+     * 司机名称
+     */
+    @JsonProperty("driverName")
+    @NotBlank(message = "司机名称不能为空")
+    private String driverName;
+
+    /**
+     * 司机手机号码
+     */
+    @JsonProperty("driverPhone")
+    @NotBlank(message = "司机手机号码不能为空")
+    private String driverPhone;
+
+    /**
+     * 司机身份证号
+     */
+    @JsonProperty("driverIdcard")
+    @NotBlank(message = "司机身份证号不能为空")
+    private String driverIdcard;
+
+
+    /**
+     * 车牌号
+     */
+    @JsonProperty("truckId")
+    @NotBlank(message = "车辆信息ID不能为空")
+    private Long truckId;
+
     /**
      * 车牌号
      */
@@ -43,6 +72,32 @@ public class SendCarDto1 {
     @NotBlank(message = "车牌号不能为空")
     private String truckNo;
 
+    /**
+     * 车辆类型(牵引车、自卸、高栏、平板、厢式、集装箱车、罐车、封闭式、专项作业车、其他)
+     */
+    private String truckType;
+
+    /**
+     * 车能源类型(柴油、汽油、电动、氢能、天然气、液化石油气、甲醇、油电混动、油气混动、其他)
+     */
+    private String truckEnergyType;
+
+    /**
+     * 车使用性质(营运车、租赁车辆、货运车、危化品运输车、非营运车、其他)
+     */
+    private String truckUseType;
+
+    /**
+     * 车辆颜色
+     */
+    private String truckColor;
+
+    /**
+     * 车挂车号
+     */
+    private String truckTrailerNo;
+
+
     /**
      * 上游给运单委派量
      */

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarWaybillVO.java

@@ -28,7 +28,7 @@ public class CarWaybillVO {
     /**
      * 运单类型
      */
-    private String waybillType;
+    private Integer waybillType;
     /**
      * 司机
      */

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillDetailVO.java

@@ -35,7 +35,7 @@ public class WaybillDetailVO {
     /**
      * 运单类型
      */
-    private String waybillType;
+    private Integer waybillType;
     /**
      * 亏吨量
      */

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderVO.java

@@ -231,7 +231,7 @@ public class WaybillOrderVO {
     /**
      * 循环/趟次
      */
-    private String type;
+    private Integer type;
 
     /**
      * 车队id

+ 1 - 235
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -28,13 +28,10 @@ import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
-import com.sckw.transport.common.enums.CarWaybillEnum;
 import com.sckw.transport.common.enums.LogisticsOrderEnum;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
-import com.sckw.transport.model.dto.CarListDTO;
 import com.sckw.transport.model.dto.OrderTakingDTO;
-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;
@@ -50,7 +47,6 @@ import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
-
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
@@ -553,236 +549,6 @@ public class AcceptCarriageOrderService {
         return result;
     }
 
-    /**
-     * 派车
-     *
-     * @param sendCarDTO
-     * @return
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public HttpResult commitSendCar(SendCarDTO sendCarDTO) {
-        log.info("承运订单提交派车信息详情:{}", JSONObject.toJSONString(sendCarDTO));
-        HttpResult result = new HttpResult();
-        KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                .eq(StringUtils.isNotBlank(sendCarDTO.getLOrderId()), KwtLogisticsOrder::getId, sendCarDTO.getLOrderId()));
-        if (logisticsOrder == null) {
-            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
-            result.setMsg("单据不存在!");
-            return result;
-        }
-        List<SckwWaybillOrder> list = new ArrayList<>();
-        if (String.valueOf(NumberConstant.ONE).equals(sendCarDTO.getType())) {
-            for (CarListDTO car : sendCarDTO.getCarList()) {
-                if (ObjectUtils.isEmpty(car.getCount())) {
-                    throw new RuntimeException("趟次派车时,趟次次数不能为空");
-                }
-                for (int i = 0; i < car.getCount(); i++) {
-                    Long wOrderId = new IdWorker(NumberConstant.ONE).nextId();
-                    String wOrderNo = com.sckw.transport.utils.StringUtils.getWaybillNoUtil() + i;
-                    KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
-                    String type = String.valueOf(NumberConstant.ZERO);
-                    waybillOrder.setType(type);
-                    waybillOrder.setEntrustAmount(new BigDecimal(car.getLoadAmount()));
-                    insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO, list, type);
-                    //insertWaybillOrderTicket(id,wOrderNo,logisticsOrder,sendCarDTO);
-//                    insertWaybillOrderTrack(wOrderId);
-                }
-            }
-        } else if (String.valueOf(NumberConstant.TWO).equals(sendCarDTO.getType())) {
-            for (CarListDTO car : sendCarDTO.getCarList()) {
-                if (ObjectUtils.isEmpty(sendCarDTO.getWaitingVolume())) {
-                    throw new RuntimeException("循环派车时,剩余可运量不能为空");
-                }
-                for (int i = 0; i < car.getCount(); i++) {
-                    KwtLogisticsOrderCirculate circulate = new KwtLogisticsOrderCirculate();
-                    circulate.setId(new IdWorker(NumberConstant.ONE).nextId());
-                    circulate.setEntId(logisticsOrder.getEntId());
-                    circulate.setLOrderId(Long.parseLong(sendCarDTO.getLOrderId()));
-                    circulate.setTruckNo(car.getTruckNo());
-                    circulate.setDriverId(Long.parseLong(car.getDriverId()));
-                    circulate.setActualAmount(new BigDecimal(car.getLoadAmount()));
-                    circulate.setEntrustAmount(new BigDecimal(sendCarDTO.getWaitingVolume()));
-                    circulate.setEntrustDate(new Date());
-                    circulate.setCreateBy(LoginUserHolder.getUserId());
-                    circulate.setCreateTime(new Date());
-                    circulate.setUpdateBy(LoginUserHolder.getUserId());
-                    circulate.setUpdateTime(new Date());
-                    circulate.setType(String.valueOf(NumberConstant.ONE));
-                    logisticsOrderCirculateMapper.insert(circulate);
-                    sendMongoDbData(list, logisticsOrder, car, sendCarDTO, String.valueOf(NumberConstant.ONE));
-                }
-            }
-        } else {
-            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
-            result.setMsg("派车类型错误!");
-            return result;
-        }
-        if (CollectionUtils.isNotEmpty(list)) {
-            for (SckwWaybillOrder sckwWaybillOrder : list) {
-                //rabbitMq业务汇总数据发送/消费对象
-                SckwBusSum busSum = new SckwBusSum();
-                //业务汇总类型
-                busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
-                //操作对象(1新增/2修改)
-                busSum.setMethod(1);
-                //业务汇总数据对象
-                busSum.setObject(sckwWaybillOrder);
-                streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
-            }
-        }
-        return result;
-    }
-
-    private void sendMongoDbData(List<SckwWaybillOrder> list, KwtLogisticsOrder logisticsOrder
-            , CarListDTO carListDTO, SendCarDTO sendCarDTO, String type) {
-        //放入mongodb实体
-        SckwWaybillOrder waybillCarDTO = new SckwWaybillOrder();
-        waybillCarDTO.set_id(new IdWorker(NumberConstant.ONE).nextId());
-        waybillCarDTO.setStatus(CarWaybillEnum.PENDING_ORDER.getCode().toString());
-        waybillCarDTO.setType(type);
-        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());
-        //todo 司机dubbo查询
-//        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.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.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);
-    }
-
-    /**
-     * 保存车辆运单状态信息
-     *
-     * @param wOrderId
-     */
-    private void insertWaybillOrderTrack(Long wOrderId) {
-        KwtWaybillOrderTrack track = new KwtWaybillOrderTrack();
-        track.setId(new IdWorker(NumberConstant.ONE).nextId());
-        track.setWOrderId(wOrderId);
-        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);
-    }
-
-    /**
-     * 保存车辆装卸单信息
-     *
-     * @param id
-     * @param wOrderNo
-     * @param logisticsOrder
-     * @param carListDTO
-     */
-    private void insertWaybillOrderTicket(Long id, String wOrderNo, KwtLogisticsOrder logisticsOrder, CarListDTO carListDTO) {
-
-    }
-
-    /**
-     * 派车主体保存
-     *
-     * @param wOrderNo
-     * @param logisticsOrder
-     * @param carListDTO
-     * @param sendCarDTO
-     */
-    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);
-        waybillOrder.setStartTime(sendCarDTO.getLoadDateTime());
-        waybillOrder.setEndTime(sendCarDTO.getUnloadDateTime());
-        waybillOrder.setDriverId(Long.parseLong(carListDTO.getDriverId()));
-        waybillOrder.setTruckNo(carListDTO.getTruckNo());
-        waybillOrder.setRemark(sendCarDTO.getRemark());
-        waybillOrder.setStatus(NumberConstant.ZERO);
-        waybillOrder.setCreateBy(LoginUserHolder.getUserId());
-        Date createTime = new Date();
-        waybillOrder.setCreateTime(createTime);
-        waybillOrder.setUpdateTime(new Date());
-        waybillOrder.setUpdateBy(LoginUserHolder.getUserId());
-        waybillOrder.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
-        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());
-        //todo 司机dubbo查询
-//        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);
-    }
-
     /**
      * 承运订单-获取运单详情
      * @param wOrderId
@@ -792,7 +558,7 @@ public class AcceptCarriageOrderService {
         SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(Long.parseLong(wOrderId), SckwWaybillOrder.class);
         WaybillDetailVO vo = new WaybillDetailVO();
         if (!ObjectUtils.isEmpty(sckwWaybillOrder)) {
-            vo.setFleetName(sckwWaybillOrder.getFleetName());
+            //vo.setFleetName(sckwWaybillOrder.getFleetName());
             vo.setTruckNo(sckwWaybillOrder.getTruckNo());
             vo.setDriverName(sckwWaybillOrder.getDriverName());
             vo.setSendCarWeigh(sckwWaybillOrder.getEntrustAmount());

+ 3 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/DriverService.java

@@ -343,7 +343,7 @@ public class DriverService {
         //更新mongodb
         SckwWaybillOrder updateParam = BeanUtils.copyProperties(sckwWaybillOrder, SckwWaybillOrder.class);
         updateParam.setDriverId(Long.valueOf(dto.getDriverId())).setDriverPhone(dto.getDriverPhone()).setDriverName(dto.getDriverName())
-                .setDriverIdcard(dto.getDriverIdCard()).setTruckId(dto.getTruckId()).setTruckNo(dto.getTruckNo()).setUpdateTime(new Date()).setUpdateBy(LoginUserHolder.getUserId())
+                .setDriverIdcard(dto.getDriverIdCard()).setTruckId(Long.parseLong(dto.getTruckId())).setTruckNo(dto.getTruckNo()).setUpdateTime(new Date()).setUpdateBy(LoginUserHolder.getUserId())
                 .setUpdateByName(LoginUserHolder.getUserName()).setUpdateTime(new Date());
         SckwBusSum busSum = new SckwBusSum();
         busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
@@ -385,7 +385,8 @@ public class DriverService {
         SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(dto.getWOrderId(), SckwWaybillOrder.class);
         //更新mongodb
         SckwWaybillOrder updateParam = BeanUtils.copyProperties(sckwWaybillOrder, SckwWaybillOrder.class);
-        updateParam.setTruckId(dto.getTruckId()).setTruckNo(dto.getTruckNo()).setTruckType(Integer.valueOf(dto.getCarType())).setUpdateTime(new Date()).setUpdateBy(LoginUserHolder.getUserId())
+        updateParam.setTruckId(Long.parseLong(dto.getTruckId())).setTruckNo(dto.getTruckNo())
+                .setTruckType(dto.getCarType()).setUpdateTime(new Date()).setUpdateBy(LoginUserHolder.getUserId())
                 .setUpdateByName(LoginUserHolder.getUserName()).setUpdateTime(new Date());
         SckwBusSum busSum = new SckwBusSum();
         busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());

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

@@ -1,15 +1,27 @@
 package com.sckw.transport.service;
 
+import com.alibaba.fastjson.JSON;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.transport.dao.KwtLogisticsOrderMapper;
-import com.sckw.transport.model.KwtLogisticsOrder;
+import com.sckw.fleet.api.RemoteFleetService;
+import com.sckw.mongo.enums.BusinessTypeEnum;
+import com.sckw.mongo.model.SckwWaybillOrder;
+import com.sckw.stream.model.SckwBusSum;
+import com.sckw.transport.common.enums.CarWaybillEnum;
+import com.sckw.transport.dao.*;
+import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.SendCarDto1;
+import jakarta.annotation.Resource;
+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 java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -20,8 +32,22 @@ import java.util.List;
 @Service
 public class KwtWaybillOrderService {
 
+    @Autowired
+    KwtWaybillOrderMapper waybillOrderDao;
     @Autowired
     KwtLogisticsOrderMapper logisticsOrderDao;
+    @Autowired
+    KwtLogisticsOrderAddressMapper logisticsOrderAddressDao;
+    @Autowired
+    KwtWaybillOrderAddressMapper waybillOrderAddressDao;
+    @Autowired
+    KwtWaybillOrderTrackMapper waybillOrderTrackDao;
+    @Autowired
+    KwtLogisticsOrderUnitMapper logisticsOrderUnitDao;
+    @Autowired
+    KwtLogisticsOrderGoodsMapper logisticsOrderGoodsDao;
+    @Resource
+    private StreamBridge streamBridge;
 
     /**
      * @param params
@@ -39,32 +65,264 @@ public class KwtWaybillOrderService {
         }
 
         //下游司机委派量累加
-        BigDecimal ranksAmount = new BigDecimal(0);
+        BigDecimal ranksAmount = new BigDecimal(Global.AMOUNT);
         for (SendCarDto1 sendCarDto:params) {
-            if (sendCarDto.getEntrustAmount() == null || sendCarDto.getEntrustAmount() <= 0) {
-                return HttpResult.error(sendCarDto.getTruckNo() + "核定载量必须大于0,请确认!" );
-            }
             if (sendCarDto.getType() == Global.NUMERICAL_ONE) {
-                ranksAmount.add(new BigDecimal(sendCarDto.getEntrustAmount()));
-
+                //趟次派车趟次数量必填
                 if (sendCarDto.getCount() == null || sendCarDto.getCount() <= 0) {
                     return HttpResult.error(sendCarDto.getTruckNo() + "趟次必须等于或大于0!" );
                 }
+                //核定载量 * 趟次
+                Double entrustAmount = sendCarDto.getEntrustAmount() * sendCarDto.getCount();
+                ranksAmount = ranksAmount.add(new BigDecimal(entrustAmount));
             }
         }
 
         //当前下游司机委派量 + 历史下游司机委派量 + 分包量
-        ranksAmount.add(logisticsOrder.getEntrustAmount()).add(logisticsOrder.getSubcontractAmount());
-        if (ranksAmount.compareTo(logisticsOrder.getAmount()) > 0) {
-            return HttpResult.error("派车量已大于剩余可运量!" );
+        BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
+        BigDecimal subcontractAmount = logisticsOrder.getSubcontractAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getSubcontractAmount();
+        BigDecimal actualAmount = ranksAmount.add(entrustAmount).add(subcontractAmount);
+        if (actualAmount.compareTo(logisticsOrder.getAmount()) > 0) {
+            return HttpResult.error("累计派车量已大于剩余可运量!" );
         }
 
         /**数据处理**/
+        setWaybillOrder(params, logisticsOrder);
+
+        //变更承运单状态(累计派车量等于剩余可运量)/已委托量entrust_amount
+
+        /**发送消息**/
+        return HttpResult.ok();
+    }
 
+    /**
+     * @param params 派车请求参数
+     * @param logisticsOrder 物流订单
+     * @desc 派车存储
+     * @author zk
+     * @date 2023/7/19
+     **/
+    public HttpResult setWaybillOrder(List<SendCarDto1> params, KwtLogisticsOrder logisticsOrder) {
+        /**获取基础信息**/
+        //装货地址
+        KwtWaybillOrderAddress loadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_ONE);
+        //卸货地址
+        KwtWaybillOrderAddress unloadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_TWO);
+        //托运企业
+        KwtLogisticsOrderUnit checkEnt = logisticsOrderUnitDao.findByUnit(logisticsOrder.getId(), Global.NUMERICAL_ONE);
+        //承运企业
+        KwtLogisticsOrderUnit carrierEnt = logisticsOrderUnitDao.findByUnit(logisticsOrder.getId(), Global.NUMERICAL_TWO);
+        //商品信息
+        KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(logisticsOrder.getId());
+
+        /**MySql车辆运单数据处理/存储**/
+        List<SckwWaybillOrder> sckwWaybillOrders = new ArrayList();
+        for (SendCarDto1 sendCarDto:params) {
+            /**KwtWaybillOrder数据组装**/
+            KwtWaybillOrder waybillOrder = this.setKwtWaybillOrder(sendCarDto);
+
+            /**车辆运单信息**/
+            waybillOrderDao.insert(waybillOrder);
 
+            /**车辆运单地址信息**/
+            loadAddress.setWOrderId(waybillOrder.getId());
+            waybillOrderAddressDao.insert(loadAddress);
+            unloadAddress.setWOrderId(waybillOrder.getId());
+            waybillOrderAddressDao.insert(unloadAddress);
 
+            /**车辆运单状态记录**/
+            this.setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus());
+
+            /**SckwWaybillOrder数据组装**/
+            SckwWaybillOrder mongoOrder = setSckwWaybillOrder(sendCarDto, waybillOrder, logisticsOrder, loadAddress,
+                    unloadAddress, checkEnt, carrierEnt, goods);
+            sckwWaybillOrders.add(mongoOrder);
+        }
+
+        /**Mongodb数据存储**/
+        for (SckwWaybillOrder waybillOrder:sckwWaybillOrders) {
+            //rabbitMq业务汇总数据发送/消费对象
+            SckwBusSum busSum = new SckwBusSum();
+            //业务汇总类型
+            busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
+            //操作对象(1新增/2修改)
+            busSum.setMethod(1);
+            //业务汇总数据对象
+            busSum.setObject(waybillOrder);
+            streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
+        }
 
         return HttpResult.ok();
     }
 
+    /**
+     * @param lOrderId 物流订单ID
+     * @param addressType 地址类型(1装货地址、2卸货地址)
+     * @desc 获取物流订单地址信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    public KwtWaybillOrderAddress getAddress(Long lOrderId, int addressType) {
+        /**查询数据**/
+        KwtLogisticsOrderAddress orderAddress = logisticsOrderAddressDao.findByAddress(lOrderId, addressType);
+
+        /**组装数据**/
+        KwtWaybillOrderAddress address = new KwtWaybillOrderAddress();
+        BeanUtils.copyProperties(orderAddress, address);
+        return address;
+    }
+
+    /**
+     * @param wOrderId 车辆订单ID
+     * @param status 车辆运单状态
+     * @desc 新增运单状态记录
+     * @author zk
+     * @date 2023/7/20
+     **/
+    public boolean setWaybillOrderTrack(Long wOrderId, int status) {
+        KwtWaybillOrderTrack orderTrack = new KwtWaybillOrderTrack();
+        orderTrack.setWOrderId(wOrderId);
+        orderTrack.setStatus(status);
+        int count = waybillOrderTrackDao.insert(orderTrack);
+        return count > 0 ? true : false;
+    }
+
+    /**
+     * @param sendCarDto 派车请求参数
+     * @desc 车辆运单对象赋值
+     * @author zk
+     * @date 2023/7/20
+     **/
+    public KwtWaybillOrder setKwtWaybillOrder(SendCarDto1 sendCarDto) {
+        KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
+        waybillOrder.setEntId(LoginUserHolder.getEntId());
+        waybillOrder.setLOrderId(sendCarDto.getLOrderId());
+        waybillOrder.setWOrderNo("xxxxx");
+        waybillOrder.setType(sendCarDto.getType());
+        waybillOrder.setStartTime(sendCarDto.getLoadDateTime());
+        waybillOrder.setEndTime(sendCarDto.getUnloadDateTime());
+        waybillOrder.setTruckId(sendCarDto.getTruckId());
+        waybillOrder.setTruckNo(sendCarDto.getTruckNo());
+        waybillOrder.setDriverId(sendCarDto.getDriverId());
+        waybillOrder.setDriverName(sendCarDto.getDriverName());
+        waybillOrder.setDriverPhone(sendCarDto.getDriverPhone());
+        waybillOrder.setDriverIdcard(sendCarDto.getDriverIdcard());
+        waybillOrder.setEntrustAmount(new BigDecimal(sendCarDto.getEntrustAmount()));
+        waybillOrder.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
+        return waybillOrder;
+    }
+
+    /**
+     * @param sendCarDto 派车请求参数
+     * @param logisticsOrder 承运订单
+     * @param loadAddress 装货地址
+     * @param unloadAddress 卸货地址
+     * @param checkEnt 托运企业
+     * @param carrierEnt 承运企业
+     * @param goods 商品信息
+     * @desc mongodb车辆运单对象赋值
+     * @author zk
+     * @date 2023/7/20
+     **/
+    public SckwWaybillOrder setSckwWaybillOrder(SendCarDto1 sendCarDto, KwtWaybillOrder waybillOrder,
+                                            KwtLogisticsOrder logisticsOrder, KwtWaybillOrderAddress loadAddress,
+                                            KwtWaybillOrderAddress unloadAddress, KwtLogisticsOrderUnit checkEnt,
+                                            KwtLogisticsOrderUnit carrierEnt, KwtLogisticsOrderGoods goods) {
+        //基础信息
+        SckwWaybillOrder order = new SckwWaybillOrder();
+        order.set_id(waybillOrder.getId());
+        order.setWOrderId(waybillOrder.getId());
+        order.setWOrderNo(waybillOrder.getWOrderNo());
+        order.setLOrderId(logisticsOrder.getId());
+        order.setLOrderNo(logisticsOrder.getLOrderNo());
+        order.setTOrderId(logisticsOrder.getTOrderId());
+        order.setTOrderNo(logisticsOrder.getTOrderNo());
+        order.setEntId(LoginUserHolder.getEntId());
+        order.setFirmName(LoginUserHolder.getEntName());
+
+        //车辆信息
+        order.setTruckId(sendCarDto.getTruckId());
+        order.setTruckNo(sendCarDto.getTruckNo());
+        order.setTruckType(sendCarDto.getTruckType());
+        order.setTruckEnergyType(sendCarDto.getTruckEnergyType());
+        order.setTruckUseType(sendCarDto.getTruckUseType());
+        order.setTruckColor(sendCarDto.getTruckColor());
+        order.setTruckTrailerNo(sendCarDto.getTruckTrailerNo());
+
+        //司机信息
+        order.setDriverId(sendCarDto.getDriverId());
+        order.setDriverName(sendCarDto.getDriverName());
+        order.setDriverPhone(sendCarDto.getDriverPhone());
+        order.setDriverIdcard(sendCarDto.getDriverIdcard());
+
+        //运输信息
+        order.setLoadTime(sendCarDto.getLoadDateTime());
+        order.setUnloadTime(sendCarDto.getUnloadDateTime());
+        order.setType(sendCarDto.getType());
+        order.setStartTime(sendCarDto.getLoadDateTime());
+        order.setEndTime(sendCarDto.getUnloadDateTime());
+        order.setEntrustAmount(new BigDecimal(sendCarDto.getEntrustAmount()));
+        order.setLoadAmount(new BigDecimal(Global.AMOUNT));
+        order.setLoadTareAmount(new BigDecimal(Global.AMOUNT));
+        order.setLoadGrossAmount(new BigDecimal(Global.AMOUNT));
+        order.setLoadUrls(Global.EMPTY_STRING);
+        order.setUnloadAmount(new BigDecimal(Global.AMOUNT));
+        order.setUnloadTareAmount(new BigDecimal(Global.AMOUNT));
+        order.setUnloadGrossAmount(new BigDecimal(Global.AMOUNT));
+        order.setUnloadUrls(Global.EMPTY_STRING);
+        order.setDeficitAmount(new BigDecimal(Global.AMOUNT));
+        order.setLoss(logisticsOrder.getLoss());
+        order.setLossUnit(logisticsOrder.getLossUnit());
+        order.setGoodsPrice(logisticsOrder.getGoodsPrice());
+        order.setGoodsPriceUnit(logisticsOrder.getGoodsPriceUnit());
+
+        //商品信息
+        order.setGoodsId(goods.getGoodsId());
+        order.setGoodsCode(null);
+        order.setGoodsName(goods.getGoodsName());
+        order.setGoodsType(null);
+        order.setGoodsType(null);
+        order.setGoodsIndustry(null);
+        order.setGoodsSpec(null);
+
+        //托运/承运企业信息
+        order.setCheckEntId(checkEnt.getEntId());
+        order.setCheckFirmName(checkEnt.getFirmName());
+        order.setCheckContacts(checkEnt.getContacts());
+        order.setCheckPhone(checkEnt.getPhone());
+        order.setCarrierEntId(carrierEnt.getEntId());
+        order.setCarrierFirmName(carrierEnt.getFirmName());
+        order.setCarrierContacts(carrierEnt.getContacts());
+        order.setCarrierPhone(carrierEnt.getPhone());
+
+        //装卸货地址相关信息
+        order.setLoadType(loadAddress.getType());
+        order.setLoadContacts(loadAddress.getContacts());
+        order.setLoadPhone(loadAddress.getPhone());
+        order.setLoadCityCode(loadAddress.getCityCode());
+        order.setLoadCityName(loadAddress.getCityName());
+        order.setLoadDetailAddress(loadAddress.getDetailAddress());
+        order.setLoadLat(loadAddress.getLat());
+        order.setLoadLng(loadAddress.getLng());
+        order.setUnloadType(unloadAddress.getType());
+        order.setUnloadContacts(unloadAddress.getContacts());
+        order.setUnloadPhone(unloadAddress.getPhone());
+        order.setUnloadCityCode(unloadAddress.getCityCode());
+        order.setUnloadCityName(unloadAddress.getCityName());
+        order.setUnloadDetailAddress(unloadAddress.getDetailAddress());
+        order.setUnloadLat(unloadAddress.getLat());
+        order.setUnloadLng(unloadAddress.getLng());
+
+        //操作人信息
+        order.setStatus(waybillOrder.getStatus());
+        order.setCreateBy(LoginUserHolder.getUserId());
+        order.setCreateByName(LoginUserHolder.getUserName());
+        order.setCreateTime(waybillOrder.getCreateTime());
+        order.setUpdateBy(LoginUserHolder.getUserId());
+        order.setUpdateByName(LoginUserHolder.getUserName());
+        order.setUpdateTime(waybillOrder.getUpdateTime());
+        order.setDelFlag(waybillOrder.getDelFlag());
+        return order;
+    }
+
 }

+ 11 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderAddressMapper.xml

@@ -29,4 +29,15 @@
     detail_address, lat, lng, fence, entry_type, remark, `status`, create_by, create_time,
     update_by, update_time, del_flag
     </sql>
+
+    <select id="findByAddress" resultType="com.sckw.transport.model.KwtLogisticsOrderAddress" >
+        select
+        id, l_order_id lOrderId, address_type addressType, `name`, `type`, contacts, phone, city_code cityCode, city_name cityName,
+        detail_address detailAddress, lat, lng, fence, entry_type entryType, remark, `status`, create_by createBy, create_time createTime,
+        update_by updateBy, update_time updateTime
+        from kwt_logistics_order_address
+        where del_flag = 0
+        and l_order_id = #{lOrderId, jdbcType=BIGINT}
+        and address_type = #{addressType jdbcType=INTEGER}
+    </select>
 </mapper>

+ 9 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderGoodsMapper.xml

@@ -175,4 +175,13 @@
             del_flag = #{delFlag,jdbcType=INTEGER}
         where id = #{id,jdbcType=BIGINT}
     </update>
+
+    <select id="findByGoods" resultType="com.sckw.transport.model.KwtLogisticsOrderGoods" >
+        SELECT
+        id, l_order_id lOrderId, l_order_no lOrderNo, goods_id goodsId, goods_name goodsName, sku_id skuId,
+        remark, `status`, create_by createBy, create_time createTime, update_by updateBy, update_time updateTime
+        from kwt_logistics_order_goods
+        where del_flag = 0
+        and l_order_id = #{lOrderId, jdbcType=BIGINT}
+    </select>
 </mapper>

+ 11 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderUnitMapper.xml

@@ -21,4 +21,15 @@
         id, l_order_id, unit_type, ent_id, firm_name, contacts, phone, remark, `status`,
     create_by, create_time, update_by, update_time, del_flag
     </sql>
+
+    <select id="findByUnit" resultType="com.sckw.transport.model.KwtLogisticsOrderUnit" >
+        select
+        id, l_order_id lOrderId, unit_type unitType, ent_id entId, firm_name firmName, contacts, phone
+        remark, status, create_by createBy, create_time createTime, update_by updateBy, update_time updateTime
+        from kwt_logistics_order_unit
+        where del_flag = 0
+        and l_order_id = #{lOrderId, jdbcType=BIGINT}
+        and unit_type = #{unitType jdbcType=INTEGER}
+    </select>
+
 </mapper>