Эх сурвалжийг харах

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

xucaiqin 2 жил өмнө
parent
commit
5b06301398
36 өөрчлөгдсөн 616 нэмэгдсэн , 277 устгасан
  1. 4 1
      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. 10 7
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java
  4. 9 0
      sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/RemoteFleetService.java
  5. 75 0
      sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/model/vo/RDriverDetailVo.java
  6. 7 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverMapper.java
  7. 7 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfTruckMapper.java
  8. 19 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java
  9. 22 4
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java
  10. 20 37
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckReportService.java
  11. 25 1
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml
  12. 33 1
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckMapper.xml
  13. 0 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTransportDemandService.java
  14. 0 1
      sckw-modules/sckw-order/src/main/resources/mapper/KwoWantBuyMapper.xml
  15. 48 18
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java
  16. 38 15
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java
  17. 8 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/AcceptCarriageOrderQuery.java
  18. 6 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/ConsignOrderQuery.java
  19. 6 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/AcceptCarriageOrderVo.java
  20. 5 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  21. 11 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java
  22. 0 87
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwoTradeOrderAddress.java
  23. 3 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrder.java
  24. 5 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderGoods.java
  25. 12 17
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddOrderDTO.java
  26. 6 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/StopOrderTakingDTO.java
  27. 13 13
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java
  28. 10 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java
  29. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsOrderParam.java
  30. 14 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarWaybillVO.java
  31. 7 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java
  32. 90 26
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  33. 19 9
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  34. 59 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  35. 20 19
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  36. 2 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

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

@@ -77,7 +77,10 @@ public enum DictEnum {
     SIGNING_WAY_2("signing_way", "2", "线下签约"),
     TRANSPORT_DEMAND_STATUS_0("transport_demand_status", "0","已保存"),
     TRANSPORT_DEMAND_STATUS_1("transport_demand_status", "1","已上架"),
-    TRANSPORT_DEMAND_STATUS_2("transport_demand_status", "2","已下架");
+    TRANSPORT_DEMAND_STATUS_2("transport_demand_status", "2","已下架"),
+    PREPAID_LIMIT_NO("prepaid_limit", "0","否"),
+    PREPAID_LIMIT_YES("prepaid_limit", "1","是"),
+    ;
 
     private final String type;
     private final String value;

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

@@ -41,6 +41,7 @@ public enum DictTypeEnum {
     SIGNING_WAY("signing_way", "签约方式"),
     WEIGHT_CAR("weight_car", "以车的限重"),
     TRANSPORT_DEMAND_STATUS("transport_demand_status", "运需状态"),
+    PREPAID_LIMIT("prepaid_limit", "预付限额"),
     ;
 
     private final String type;

+ 10 - 7
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java

@@ -10,6 +10,7 @@ import org.springframework.data.mongodb.core.mapping.Document;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.Date;
 
 /**
@@ -432,7 +433,7 @@ public class SckwLogisticsOrder {
     /**
      * 分配的承运量
      */
-    private Long carryingCapacity;
+    private BigDecimal carryingCapacity;
 
     /**
      * 计费方式
@@ -446,13 +447,15 @@ public class SckwLogisticsOrder {
     /**
      * 计划开始时间
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date startTime;
+//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate startTime;
     /**
      * 计划结束时间
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date endTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endTime;
 }

+ 9 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/RemoteFleetService.java

@@ -1,5 +1,6 @@
 package com.sckw.fleet.api;
 
+import com.sckw.fleet.api.model.vo.RDriverDetailVo;
 import com.sckw.fleet.api.model.vo.RDriverVo;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 
@@ -29,6 +30,14 @@ public interface RemoteFleetService {
      **/
     RDriverVo findDriver(Long driverId);
 
+    /**
+     * @param phone 司机档手机号
+     * @desc 查询司机信息
+     * @author zk
+     * @date 2023/8/10
+     **/
+    RDriverDetailVo findDriver(String phone);
+
     /**
      * @param params 司机档案信息
      * @desc 更新司机信息

+ 75 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/model/vo/RDriverDetailVo.java

@@ -0,0 +1,75 @@
+package com.sckw.fleet.api.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author zk
+ * @desc 司机
+ * @date 2023/7/17 0017
+ */
+@Data
+public class RDriverDetailVo implements Serializable {
+
+    /**
+     * 司机档案主键id
+     */
+    private Long id;
+
+    /**
+     * 司机档案归属企业主键id
+     */
+    private Long entId;
+
+    /**
+     * 司机姓名
+     */
+    private String name;
+
+    /**
+     * 司机手机号
+     */
+    private String phone;
+
+    /**
+     * 盐
+     */
+    private String salt;
+
+    /**
+     * 密码
+     */
+    private String password;
+
+    /**
+     * 身份证号
+     */
+    private String idcard;
+
+    /**
+     * 总运单完成量
+     */
+    private Integer totalComplete;
+
+    /**
+     * 总运单接单量
+     */
+    private Integer totalTake;
+
+    /**
+     * 总运量(净重)
+     */
+    private BigDecimal totalWeight;
+
+    /**
+     * 司机业务状态
+     */
+    private Integer businessStatus;
+
+    /**
+     * 司机状态
+     */
+    private Integer status;
+}

+ 7 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverMapper.java

@@ -41,6 +41,13 @@ public interface KwfDriverMapper extends BaseMapper<KwfDriver> {
      */
     List<Map<String, Object>> findList(Map<String, Object> params);
 
+    /**
+     * 查询
+     * @param params
+     * @return
+     */
+    List<KwfDriver> findDriver(Map<String, Object> params);
+
     /**
      * 查询企业下司机信息
      * @param params

+ 7 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfTruckMapper.java

@@ -38,4 +38,11 @@ public interface KwfTruckMapper extends BaseMapper<KwfTruck> {
      * @return
      */
     List<Map<String, Object>> findList(Map<String, Object> params);
+
+    /**
+     * 查询
+     * @param params
+     * @return
+     */
+    List<KwfTruck> findTruck(Map<String, Object> params);
 }

+ 19 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -3,6 +3,7 @@ package com.sckw.fleet.dubbo;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.fleet.api.RemoteFleetService;
+import com.sckw.fleet.api.model.vo.RDriverDetailVo;
 import com.sckw.fleet.api.model.vo.RDriverVo;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.fleet.dao.KwfDriverMapper;
@@ -76,6 +77,24 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
         return driverVo;
     }
 
+    /**
+     * @param phone 司机档手机号
+     * @desc 查询司机信息
+     * @author zk
+     * @date 2023/8/10
+     **/
+    @Override
+    public RDriverDetailVo findDriver(String phone) {
+        List<KwfDriver> drivers = driverDao.findDriver(new HashMap(){{put("phone", phone);}});
+        if (CollectionUtils.isEmpty(drivers)) {
+            return null;
+        }
+        KwfDriver driver = drivers.get(0);
+        RDriverDetailVo driverDetail = new RDriverDetailVo();
+        BeanUtils.copyPropertiesValue(driver, driverDetail);
+        return driverDetail;
+    }
+
     /**
      * @param params 司机档案信息
      * @desc 更新司机信息

+ 22 - 4
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java

@@ -319,7 +319,7 @@ public class KwfDriverService {
     public HttpResult driverEdit(KwfDriver params) {
         if (StringUtils.isBlank(params.getId())) {
             /**唯一性交易**/
-            List<Map<String, Object>> drivers = driverDao.findList(new HashMap(){{ put("phone", params.getPhone()); }});
+            List<KwfDriver> drivers = driverDao.findDriver(new HashMap(){{ put("phone", params.getPhone()); }});
             if (!CollectionUtils.isEmpty(drivers)) {
                 return HttpResult.error("电话号码已存在!");
             }
@@ -336,9 +336,9 @@ public class KwfDriverService {
             return count > 0 ? HttpResult.ok() : HttpResult.error("司机信息新增失败!");
         } else {
             /**唯一性交易**/
-            List<Map<String, Object>> drivers = driverDao.findList(new HashMap(){{ put("phone", params.getPhone()); }});
+            List<KwfDriver> drivers = driverDao.findDriver(new HashMap(){{ put("phone", params.getPhone()); }});
             //校验list中对象key值是否存在与value不一致的情况
-            boolean bool = CollectionUtils.listByKeyValueV1(drivers, "id", String.valueOf(params.getId()));
+            boolean bool = listByKeyValue(drivers, params.getId());
             if (bool) {
                 return HttpResult.error("司机信息电话号码已存在!");
             }
@@ -599,7 +599,7 @@ public class KwfDriverService {
         }
 
         /**唯一性交易**/
-        List<Map<String, Object>> drivers = driverDao.findList(new HashMap(){{ put("phone", params.getPhone()); }});
+        List<KwfDriver> drivers = driverDao.findDriver(new HashMap(){{ put("phone", params.getPhone()); }});
         if (!CollectionUtils.isEmpty(drivers)) {
             return HttpResult.error("电话号码已存在!");
         }
@@ -660,4 +660,22 @@ public class KwfDriverService {
         driver.setStatus(Global.NUMERICAL_ONE);
         driverDao.updateById(driver);
     }
+
+    /**
+     * 校验list中对象key值是否存在与value不一致的情况
+     * @param list 数据集
+     * @param value 匹配值
+     * @return
+     */
+    public static boolean listByKeyValue(List<KwfDriver> list, Long value) {
+        if (CollectionUtils.isEmpty(list)) {
+            return false;
+        }
+        for (KwfDriver driver:list) {
+            if (value != null && !driver.getId().equals(value)) {
+                return true;
+            }
+        }
+        return false;
+    }
 }

+ 20 - 37
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckReportService.java

@@ -213,9 +213,7 @@ public class KwfTruckReportService {
 
             /**车辆信息**/
             //校验车辆档案是否存在
-            List<Map<String, Object>> trucks = truckDao.findList(new HashMap() {{
-                put("truckNo", reportDto.getTruckNo());
-            }});
+            List<KwfTruck> trucks = truckDao.findTruck(new HashMap() {{ put("truckNo", reportDto.getTruckNo());}});
             if (CollectionUtils.isEmpty(trucks)) {
                 //新增车辆档案
                 KwfTruckDto truckDto = new KwfTruckDto();
@@ -228,14 +226,13 @@ public class KwfTruckReportService {
                 truckReport.setTruckId(truck.getId());
             } else {
                 //校验车辆是否已上报
-                Map<String, Object> truck = trucks.get(0);
-                Object truckId = truck.get("id");
+                KwfTruck truck = trucks.get(0);
                 List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
-                    put("truckId", truckId);
+                    put("truckId", truck.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
                 if (CollectionUtils.isEmpty(reports)) {
-                    truckReport.setTruckId(Long.parseLong(String.valueOf(truckId)));
+                    truckReport.setTruckId(truck.getId());
                 } else {
                     continue;
                 }
@@ -243,8 +240,7 @@ public class KwfTruckReportService {
 
             /**档案信息**/
             //校验司机档案是否存在
-            List<Map<String, Object>> drivers = driverDao.findList(new HashMap() {{
-                put("phone", reportDto.getPhone());
+            List<KwfDriver> drivers = driverDao.findDriver(new HashMap() {{put("phone", reportDto.getPhone());
             }});
             if (CollectionUtils.isEmpty(drivers)) {
                 //新增司机档案
@@ -260,14 +256,13 @@ public class KwfTruckReportService {
                 truckReport.setDriverId(driver.getId());
             } else {
                 //校验司机是否已上报
-                Map<String, Object> driver = drivers.get(0);
-                Object driverId = driver.get("id");
+                KwfDriver driver = drivers.get(0);
                 List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
-                    put("driverId", driverId);
+                    put("driverId", driver.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
                 if (CollectionUtils.isEmpty(reports)) {
-                    truckReport.setDriverId(Long.parseLong(String.valueOf(driverId)));
+                    truckReport.setDriverId(driver.getId());
                 } else {
                     continue;
                 }
@@ -389,15 +384,12 @@ public class KwfTruckReportService {
 
             /**车辆信息**/
             //校验车辆档案是否存在
-            List<Map<String, Object>> trucks = truckDao.findList(new HashMap() {{
-                put("truckNo", reportDto.getTruckNo());
-            }});
+            List<KwfTruck> trucks = truckDao.findTruck(new HashMap() {{put("truckNo", reportDto.getTruckNo());}});
             if (!CollectionUtils.isEmpty(trucks)) {
                 //校验车辆是否已上报
-                Map<String, Object> truck = trucks.get(0);
-                Object truckId = truck.get("id");
+                KwfTruck truck = trucks.get(0);
                 List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
-                    put("truckId", truckId);
+                    put("truckId", truck.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
                 if (!CollectionUtils.isEmpty(reports)) {
@@ -408,15 +400,12 @@ public class KwfTruckReportService {
 
             /**档案信息**/
             //校验司机档案是否存在
-            List<Map<String, Object>> drivers = driverDao.findList(new HashMap() {{
-                put("phone", reportDto.getPhone());
-            }});
+            List<KwfDriver> drivers = driverDao.findDriver(new HashMap() {{ put("phone", reportDto.getPhone()); }});
             if (!CollectionUtils.isEmpty(drivers)) {
                 //校验司机是否已上报
-                Map<String, Object> driver = trucks.get(0);
-                Object driverId = driver.get("id");
+                KwfDriver driver = drivers.get(0);
                 List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
-                    put("driverId", driverId);
+                    put("driverId", driver.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
                 if (!CollectionUtils.isEmpty(reports)) {
@@ -448,15 +437,12 @@ public class KwfTruckReportService {
     public boolean checkReport(KwfTruckReportDto reportDto) {
         /**车辆信息**/
         //校验车辆档案是否存在
-        List<Map<String, Object>> trucks = truckDao.findList(new HashMap() {{
-            put("truckNo", reportDto.getTruckNo());
-        }});
+        List<KwfTruck> trucks = truckDao.findList(new HashMap() {{ put("truckNo", reportDto.getTruckNo());}});
         if (!CollectionUtils.isEmpty(trucks)) {
             //校验车辆是否已上报
-            Map<String, Object> truck = trucks.get(0);
-            Object truckId = truck.get("id");
+            KwfTruck truck = trucks.get(0);
             List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
-                put("truckId", truckId);
+                put("truckId", truck.getId());
                 put("entId", LoginUserHolder.getEntId());
             }});
             if (!CollectionUtils.isEmpty(reports)) {
@@ -466,15 +452,12 @@ public class KwfTruckReportService {
 
         /**档案信息**/
         //校验司机档案是否存在
-        List<Map<String, Object>> drivers = driverDao.findList(new HashMap() {{
-            put("phone", reportDto.getPhone());
-        }});
+        List<KwfDriver> drivers = driverDao.findList(new HashMap() {{ put("phone", reportDto.getPhone()); }});
         if (!CollectionUtils.isEmpty(drivers)) {
             //校验司机是否已上报
-            Map<String, Object> driver = trucks.get(0);
-            Object driverId = driver.get("id");
+            KwfDriver driver = drivers.get(0);
             List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
-                put("driverId", driverId);
+                put("driverId", driver.getId());
                 put("entId", LoginUserHolder.getEntId());
             }});
             if (!CollectionUtils.isEmpty(reports)) {

+ 25 - 1
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml

@@ -128,7 +128,7 @@
             and dr.name like concat('%',#{name},'%')
         </if>
         <if test="wholeName != null and wholeName != ''">
-            and fl.name =  #{wholeName, jdbcType=VARCHAR}
+            and dr.name =  #{wholeName, jdbcType=VARCHAR}
         </if>
         <if test="idcard != null and idcard != ''">
             and dr.idcard = #{idcard, jdbcType=VARCHAR}
@@ -162,6 +162,30 @@
         ORDER BY dr.create_time desc
     </select>
 
+    <select id="findDriver" resultType="com.sckw.fleet.model.KwfDriver" parameterType="java.util.Map" >
+        SELECT
+            id, ent_id entId, name, phone, salt, password, idcard, total_complete totalComplete,
+            total_take totalTake, total_weight totalWeight, business_status businessStatus, remark, status
+        from kwf_driver dr
+        where dr.del_flag = 0
+        <if test="entId != null and entId != ''">
+            and ent_id = #{entId, jdbcType=VARCHAR}
+        </if>
+        <if test="name != null and name != ''">
+            and name =  #{name, jdbcType=VARCHAR}
+        </if>
+        <if test="idcard != null and idcard != ''">
+            and idcard = #{idcard, jdbcType=VARCHAR}
+        </if>
+        <if test="phone != null and phone != ''">
+            and phone = #{phone, jdbcType=VARCHAR}
+        </if>
+        <if test="status != null and status != ''">
+            and status = #{status, jdbcType=VARCHAR}
+        </if>
+        ORDER BY create_time desc
+    </select>
+
     <select id="findEntDriver" resultType="com.sckw.fleet.model.KwfDriver" parameterType="com.sckw.fleet.model.KwfDriver" >
         SELECT
             dr.id, name, phone, salt, password, idcard, total_complete totalComplete,

+ 33 - 1
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckMapper.xml

@@ -127,7 +127,10 @@
             and tre.ent_id = #{entId, jdbcType=VARCHAR}
         </if>
         <if test="truckNo != null and truckNo != ''">
-            and tr.truck_no = #{truckNo, jdbcType=VARCHAR}
+            and tr.truck_no like concat('%',#{truckNo},'%')
+        </if>
+        <if test="wholeTruckNo != null and wholeTruckNo != ''">
+            and tr.truck_no = #{wholeTruckNo, jdbcType=VARCHAR}
         </if>
         <if test="type != null and type != ''">
             and tr.type = #{type, jdbcType=VARCHAR}
@@ -163,6 +166,35 @@
         ORDER BY tr.create_time desc
     </select>
 
+    <select id="findTruck" resultType="com.sckw.fleet.model.KwfTruck" parameterType="java.util.Map" >
+        SELECT
+        id, ent_id entId, truck_no truckNo, type, energy_type energyType, use_type useType,
+        spec, actual_weight actualWeight, gross_weight grossWeight, tare_weight tareWeight,
+        color, eev, trailer_no trailerNo, total_complete totalComplete, total_take totalTake,
+        total_weight totalWeight, business_status businessStatus, remark, status
+        from kwf_truck tr
+        where del_flag = 0
+        <if test="entId != null and entId != ''">
+            and ent_id = #{entId, jdbcType=VARCHAR}
+        </if>
+        <if test="truckNo != null and truckNo != ''">
+            and truck_no = #{truckNo, jdbcType=VARCHAR}
+        </if>
+        <if test="type != null and type != ''">
+            and type = #{type, jdbcType=VARCHAR}
+        </if>
+        <if test="energyType != null and energyType != ''">
+            and energy_type = #{energyType, jdbcType=VARCHAR}
+        </if>
+        <if test="useType != null and useType != ''">
+            and use_type = #{useType, jdbcType=VARCHAR}
+        </if>
+        <if test="status != null and status != ''">
+            and status = #{status, jdbcType=VARCHAR}
+        </if>
+        ORDER BY create_time desc
+    </select>
+
     <select id="findEntTruck" resultType="com.sckw.fleet.model.KwfTruck" parameterType="com.sckw.fleet.model.KwfTruck" >
         SELECT
             tr.id, tre.ent_id entId, truck_no truckNo, type, energy_type energyType, use_type useType,

+ 0 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTransportDemandService.java

@@ -416,7 +416,6 @@ public class KwoTransportDemandService {
                 wrapper.like(KwoTransportDemand::getName, param.getKeywords());
             }
         }
-        wrapper.orderByDesc(KwoTransportDemand::getCreateTime);
         Page<KwoTransportDemand> kwpGoodsPage = kwoTransportDemandMapper.selectPage(page, wrapper);
         List<KwoTransportDemand> list = kwpGoodsPage.getRecords();
         if (CollectionUtils.isEmpty(list)) {

+ 0 - 1
sckw-modules/sckw-order/src/main/resources/mapper/KwoWantBuyMapper.xml

@@ -113,6 +113,5 @@
             <include refid="where" />
         </where>
         group by kb.id
-        order by kb.create_time desc
     </select>
 </mapper>

+ 48 - 18
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java

@@ -26,7 +26,6 @@ import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -97,17 +96,36 @@ public class KwAcceptCarriageService {
             criteria.and("unloadDetailAddress").is(query.getUnloadAddress());
         }
         if (StringUtils.isNotBlank(query.getStatus())) {
-            criteria.and("status").is(query.getStatus());
+            if (String.valueOf(NumberConstant.EIGHT).equals(query.getStatus())){
+                List<String> status=new ArrayList<>();
+                status.add(LogisticsOrderEnum.REJECT_ORDER.getStatus());
+                status.add(LogisticsOrderEnum.CANCEL_ORDER.getStatus());
+                criteria.and("status").in(status);
+            }else {
+                criteria.and("status").is(query.getStatus());
+            }
         }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         // 4. 日期范围
-        if (StringUtils.isNotEmpty(query.getStartDateTime()) && StringUtils.isNotEmpty(query.getEndDateTime())) {
-            criteria.andOperator(Criteria.where("createTime").gte(query.getStartDateTime()), Criteria.where("createTime")
+//        if (StringUtils.isNotEmpty(query.getStartDateTime()) && StringUtils.isNotEmpty(query.getEndDateTime())) {
+//            criteria.andOperator(Criteria.where("createTime").gte(query.getStartDateTime()), Criteria.where("createTime")
+//                    .lte(query.getEndDateTime()));
+//        } else if (StringUtils.isNotEmpty(query.getStartDateTime())) {
+//            criteria.and("createTime").gte(query.getStartDateTime());
+//        } else if (StringUtils.isNotEmpty(query.getEndDateTime())) {
+//            criteria.and("createTime").lte(query.getStartDateTime());
+//        }
+        if (StringUtils.isNotEmpty(query.getStartDateTime())) {
+            criteria.andOperator(Criteria.where("startTime").gte(query.getStartDateTime()), Criteria.where("startTime")
+                    .lte(query.getStartDateTime()));
+        }
+        if (StringUtils.isNotEmpty(query.getEndDateTime())) {
+            criteria.andOperator(Criteria.where("endTime").gte(query.getEndDateTime()), Criteria.where("endTime")
                     .lte(query.getEndDateTime()));
-        } else if (StringUtils.isNotEmpty(query.getStartDateTime())) {
-            criteria.and("createTime").gte(query.getStartDateTime());
-        } else if (StringUtils.isNotEmpty(query.getEndDateTime())) {
-            criteria.and("createTime").lte(query.getStartDateTime());
+        }
+        if (StringUtils.isNotEmpty(query.getCreateTime())) {
+            criteria.andOperator(Criteria.where("createTime").gte(query.getCreateTime()), Criteria.where("createTime")
+                    .lte(query.getCreateTime()));
         }
         //多条件模糊查询
         Criteria c1 = new Criteria();
@@ -136,7 +154,7 @@ public class KwAcceptCarriageService {
         // 10. 分页
         query1.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
                 // 11. 排序list = {ArrayList@27436}  size = 3returnList = {ArrayList@27393}  size = 3
-                Sort.by(Sort.Order.desc("createTime"))));
+                Sort.by(Sort.Direction.DESC,"lOrderId","createTime")));
         // 执行查询
         List<SckwLogisticsOrder> list = mongoTemplate.find(query1, SckwLogisticsOrder.class);
         List<AcceptCarriageOrderVo> returnList = new ArrayList<>();
@@ -192,13 +210,25 @@ public class KwAcceptCarriageService {
         }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         // 4. 日期范围
-        if (StringUtils.isNotEmpty(param.getStartDateTime()) && StringUtils.isNotEmpty(param.getEndDateTime())) {
-            criteria.andOperator(Criteria.where("createTime").gte(param.getStartDateTime()), Criteria.where("createTime")
+//        if (StringUtils.isNotEmpty(param.getStartDateTime()) && StringUtils.isNotEmpty(param.getEndDateTime())) {
+//            criteria.andOperator(Criteria.where("createTime").gte(param.getStartDateTime()), Criteria.where("createTime")
+//                    .lte(param.getEndDateTime()));
+//        } else if (StringUtils.isNotEmpty(param.getStartDateTime())) {
+//            criteria.and("createTime").gte(param.getStartDateTime());
+//        } else if (StringUtils.isNotEmpty(param.getEndDateTime())) {
+//            criteria.and("createTime").lte(param.getStartDateTime());
+//        }
+        if (StringUtils.isNotEmpty(param.getStartDateTime())) {
+            criteria.andOperator(Criteria.where("startTime").gte(param.getStartDateTime()), Criteria.where("startTime")
+                    .lte(param.getStartDateTime()));
+        }
+        if (StringUtils.isNotEmpty(param.getEndDateTime())) {
+            criteria.andOperator(Criteria.where("endTime").gte(param.getEndDateTime()), Criteria.where("endTime")
                     .lte(param.getEndDateTime()));
-        } else if (StringUtils.isNotEmpty(param.getStartDateTime())) {
-            criteria.and("createTime").gte(param.getStartDateTime());
-        } else if (StringUtils.isNotEmpty(param.getEndDateTime())) {
-            criteria.and("createTime").lte(param.getStartDateTime());
+        }
+        if (StringUtils.isNotEmpty(param.getCreateTime())) {
+            criteria.andOperator(Criteria.where("createTime").gte(param.getCreateTime()), Criteria.where("createTime")
+                    .lte(param.getCreateTime()));
         }
         List<String> stringList = StringUtils.splitStrToList(param.getIds(), StringConstant.COMMA, String.class);
         if (CollectionUtils.isNotEmpty(stringList)) {
@@ -255,7 +285,7 @@ public class KwAcceptCarriageService {
             vo.setCarrierOrder(logisticsOrder.getWOrderNo());
             vo.setCarrierPhone(logisticsOrder.getCarrierPhone());
             vo.setCarryingCapacity(logisticsOrder.getCarryingCapacity() == null ?
-                    null : BigDecimal.valueOf(logisticsOrder.getCarryingCapacity()));
+                    null : logisticsOrder.getCarryingCapacity());
             vo.setConsignCompanyId(String.valueOf(logisticsOrder.getCheckEntId()));
             vo.setConsignCompany(logisticsOrder.getCheckFirmName());
             vo.setConsignContacts(logisticsOrder.getCheckContacts());
@@ -280,9 +310,9 @@ public class KwAcceptCarriageService {
             vo.setShipmentsContacts(logisticsOrder.getLoadContacts());
             vo.setShipmentsPhone(logisticsOrder.getLoadPhone());
             vo.setShipmentsDateTime(logisticsOrder.getStartTime() == null ?
-                    null : DateUtil.getDateTime(logisticsOrder.getStartTime()));
+                    null : logisticsOrder.getStartTime());
             vo.setReceiveGoodsDateTime(logisticsOrder.getEndTime() == null ?
-                    null : DateUtil.getDateTime(logisticsOrder.getEndTime()));
+                    null : logisticsOrder.getEndTime());
             vo.setShipmentsPhone(logisticsOrder.getLoadPhone());
             vo.setSigning(logisticsOrder.getContractSigningWay());
             vo.setStatus(logisticsOrder.getStatus());

+ 38 - 15
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java

@@ -26,7 +26,6 @@ import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
 import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -102,13 +101,25 @@ public class KwConsignService {
         }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         // 4. 日期范围
-        if (StringUtils.isNotEmpty(query.getStartDateTime()) && StringUtils.isNotEmpty(query.getEndDateTime())) {
-            criteria.andOperator(Criteria.where("createTime").gte(query.getStartDateTime()), Criteria.where("createTime")
+//        if (StringUtils.isNotEmpty(query.getStartDateTime()) && StringUtils.isNotEmpty(query.getEndDateTime())) {
+//            criteria.andOperator(Criteria.where("createTime").gte(query.getStartDateTime()), Criteria.where("createTime")
+//                    .lte(query.getEndDateTime()));
+//        } else if (StringUtils.isNotEmpty(query.getStartDateTime())) {
+//            criteria.and("createTime").gte(query.getStartDateTime());
+//        } else if (StringUtils.isNotEmpty(query.getEndDateTime())) {
+//            criteria.and("createTime").lte(query.getStartDateTime());
+//        }
+        if (StringUtils.isNotEmpty(query.getStartDateTime())) {
+            criteria.andOperator(Criteria.where("startTime").gte(query.getStartDateTime()), Criteria.where("startTime")
+                    .lte(query.getStartDateTime()));
+        }
+        if (StringUtils.isNotEmpty(query.getEndDateTime())) {
+            criteria.andOperator(Criteria.where("endTime").gte(query.getEndDateTime()), Criteria.where("endTime")
                     .lte(query.getEndDateTime()));
-        } else if (StringUtils.isNotEmpty(query.getStartDateTime())) {
-            criteria.and("createTime").gte(query.getStartDateTime());
-        } else if (StringUtils.isNotEmpty(query.getEndDateTime())) {
-            criteria.and("createTime").lte(query.getStartDateTime());
+        }
+        if (StringUtils.isNotEmpty(query.getCreateTime())) {
+            criteria.andOperator(Criteria.where("createTime").gte(query.getCreateTime()), Criteria.where("createTime")
+                    .lte(query.getCreateTime()));
         }
         //多条件模糊查询
         Criteria c1 = new Criteria();
@@ -137,7 +148,7 @@ public class KwConsignService {
         // 10. 分页
         query1.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
                 // 11. 排序list = {ArrayList@27436}  size = 3returnList = {ArrayList@27393}  size = 3
-                Sort.by(Sort.Order.desc("createTime"))));
+                Sort.by(Sort.Direction.DESC,"lOrderId","createTime")));
         // 执行查询
         List<SckwLogisticsOrder> list = mongoTemplate.find(query1, SckwLogisticsOrder.class);
         List<ConsignOrderVo> returnList = new ArrayList<>();
@@ -165,7 +176,7 @@ public class KwConsignService {
             vo.setCarrierOrder(logisticsOrder.getWOrderNo());
             vo.setCarrierPhone(logisticsOrder.getCarrierPhone());
             vo.setCarryingCapacity(logisticsOrder.getCarryingCapacity() == null ?
-                    null : BigDecimal.valueOf(logisticsOrder.getCarryingCapacity()));
+                    null : logisticsOrder.getCarryingCapacity());
             vo.setConsignCompany(logisticsOrder.getCheckFirmName());
             vo.setConsignContacts(logisticsOrder.getCheckContacts());
             vo.setConsignPhone(logisticsOrder.getCheckPhone());
@@ -366,13 +377,25 @@ public class KwConsignService {
         }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         // 4. 日期范围
-        if (StringUtils.isNotEmpty(param.getStartDateTime()) && StringUtils.isNotEmpty(param.getEndDateTime())) {
-            criteria.andOperator(Criteria.where("createTime").gte(param.getStartDateTime()), Criteria.where("createTime")
+//        if (StringUtils.isNotEmpty(param.getStartDateTime()) && StringUtils.isNotEmpty(param.getEndDateTime())) {
+//            criteria.andOperator(Criteria.where("createTime").gte(param.getStartDateTime()), Criteria.where("createTime")
+//                    .lte(param.getEndDateTime()));
+//        } else if (StringUtils.isNotEmpty(param.getStartDateTime())) {
+//            criteria.and("createTime").gte(param.getStartDateTime());
+//        } else if (StringUtils.isNotEmpty(param.getEndDateTime())) {
+//            criteria.and("createTime").lte(param.getStartDateTime());
+//        }
+        if (StringUtils.isNotEmpty(param.getStartDateTime())) {
+            criteria.andOperator(Criteria.where("startTime").gte(param.getStartDateTime()), Criteria.where("startTime")
+                    .lte(param.getStartDateTime()));
+        }
+        if (StringUtils.isNotEmpty(param.getEndDateTime())) {
+            criteria.andOperator(Criteria.where("endTime").gte(param.getEndDateTime()), Criteria.where("endTime")
                     .lte(param.getEndDateTime()));
-        } else if (StringUtils.isNotEmpty(param.getStartDateTime())) {
-            criteria.and("createTime").gte(param.getStartDateTime());
-        } else if (StringUtils.isNotEmpty(param.getEndDateTime())) {
-            criteria.and("createTime").lte(param.getStartDateTime());
+        }
+        if (StringUtils.isNotEmpty(param.getCreateTime())) {
+            criteria.andOperator(Criteria.where("createTime").gte(param.getCreateTime()), Criteria.where("createTime")
+                    .lte(param.getCreateTime()));
         }
         List<String> stringList = StringUtils.splitStrToList(param.getIds(), StringConstant.COMMA, String.class);
         if (CollectionUtils.isNotEmpty(stringList)) {

+ 8 - 2
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/AcceptCarriageOrderQuery.java

@@ -22,7 +22,7 @@ public class AcceptCarriageOrderQuery extends PageRequest implements Serializabl
      */
     private String billingMode;
     /**
-     * 结束时间
+     * 计划结束时间
      */
     private String endDateTime;
     /**
@@ -42,9 +42,15 @@ public class AcceptCarriageOrderQuery extends PageRequest implements Serializabl
      */
     private Integer loadAddressLevel;
     /**
-     * 开始时间
+     * 计划开始时间
      */
     private String startDateTime;
+
+    /**
+     * 创建时间
+     */
+    private String createTime;
+
     /**
      * 单据状态
      */

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

@@ -26,6 +26,12 @@ public class ConsignOrderQuery extends PageRequest implements Serializable {
      * 结束时间
      */
     private String endDateTime;
+
+    /**
+     * 创建时间
+     */
+    private String createTime;
+
     /**
      * 关键字搜索
      */

+ 6 - 2
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/AcceptCarriageOrderVo.java

@@ -1,9 +1,11 @@
 package com.sckw.report.service.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.sckw.core.model.page.PageRequest;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 
 /**
  * @author lfdc
@@ -113,7 +115,8 @@ public class AcceptCarriageOrderVo extends PageRequest {
     /**
      * 计划收货时间
      */
-    private String receiveGoodsDateTime;
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private LocalDate receiveGoodsDateTime;
     /**
      * 收货电话
      */
@@ -129,7 +132,8 @@ public class AcceptCarriageOrderVo extends PageRequest {
     /**
      * 计划发货时间
      */
-    private String shipmentsDateTime;
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private LocalDate shipmentsDateTime;
     /**
      * 发货电话
      */

+ 5 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -192,6 +192,7 @@ public class AcceptCarriageOrderController {
      */
     @RequestMapping(value = "/stopDocumentDetail", method = RequestMethod.POST)
     public HttpResult stopDocumentDetail(@Validated @RequestBody DriverParam driverParam) {
+        log.info("承运订单-设置停止接单-查询 请求参数:{}", JSONObject.toJSONString(driverParam));
         try {
             return acceptCarriageOrderService.stopDocumentDetail(driverParam);
         } catch (Exception e) {
@@ -201,17 +202,18 @@ public class AcceptCarriageOrderController {
     }
 
     /**
-     * 承运订单-设置停止接单-提交
+     * 承运订单/托运订单-设置停止接单-提交
      *
      * @param stopOrderTakingDTO
      * @return
      */
     @RequestMapping(value = "/stopDocumentCommit", method = RequestMethod.POST)
     public HttpResult stopDocumentCommit(@Validated @RequestBody StopOrderTakingDTO stopOrderTakingDTO) {
+        log.info("承运订单/托运订单-设置停止接单-提交 请求参数:{}", JSONObject.toJSONString(stopOrderTakingDTO));
         try {
             return acceptCarriageOrderService.stopDocumentCommit(stopOrderTakingDTO);
         } catch (Exception e) {
-            log.error("承运订单-设置停止接单-提交 error:{}", e.getMessage(), e);
+            log.error("承运订单/托运订单-设置停止接单-提交 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
@@ -224,7 +226,7 @@ public class AcceptCarriageOrderController {
      */
     @RequestMapping(value = "/cancelDelivery", method = RequestMethod.GET)
     public HttpResult cancelDelivery(@NotBlank(message = "车辆运单id不能为空") @RequestParam("ids") String ids) {
-        log.info("承运订单-取消派车(撤回派车)/单趟撤回请求参数:{}",ids);
+        log.info("承运订单-取消派车(撤回派车)/单趟撤回请求参数:{}", ids);
         List<String> lists = StringUtils.splitStrToList(ids, ",", String.class);
         try {
             return acceptCarriageOrderService.cancelDelivery(lists);

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

@@ -269,6 +269,17 @@ public class KwtWaybillOrderController {
         return waybillOrderService.editTicket(params);
     }
 
+    /**
+     * @param wOrderId
+     * @desc 修改单证查询运单
+     * @author zk
+     * @date 2023/8/2
+     **/
+    @GetMapping("/ticketWaybillOrder")
+    public HttpResult ticketWaybillOrder(@RequestParam("wOrderId") Long wOrderId){
+        return waybillOrderService.ticketWaybillOrder(wOrderId);
+    }
+
     /**
      * @param params {}
      * @desc 单证审核

+ 0 - 87
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwoTradeOrderAddress.java

@@ -1,87 +0,0 @@
-package com.sckw.transport.model;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.sckw.core.model.base.BaseModel;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-
-/**
- * @desc: 交易订单装卸货地址信息
- * @author: yzc
- * @date: 2023-06-25 9:31
- */
-@Getter
-@Setter
-@ToString
-@Accessors(chain = true)
-@TableName("kwo_trade_order_address")
-public class KwoTradeOrderAddress extends BaseModel {
-
-    /**
-     * 交易订单id
-     */
-    private Long tOrderId;
-
-    /**
-     * 订单编号
-     */
-    private String tOrderNo;
-
-    /**
-     * 地址类型(1装货地址、2卸货地址)
-     */
-    private Integer addressType;
-
-    /**
-     * 地址名称
-     */
-    private String name;
-
-    /**
-     * 地址类型
-     */
-    private Long type;
-
-    /**
-     * 联系人姓名
-     */
-    private String contacts;
-
-    /**
-     * 联系电话
-     */
-    private String phone;
-
-    /**
-     * 所在地区
-     */
-    private Integer cityCode;
-
-    /**
-     * 所属区域名称
-     */
-    private String cityName;
-
-    /**
-     * 详细地址
-     */
-    private String detailAddress;
-
-    /**
-     * 纬度
-     */
-    private String lat;
-
-    /**
-     * 经度
-     */
-    private String lng;
-
-    /**
-     * 电子围栏
-     */
-    private String fence;
-
-}

+ 3 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrder.java

@@ -11,6 +11,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.Date;
 import java.util.List;
 
@@ -126,12 +127,12 @@ public class KwtLogisticsOrder implements Serializable {
     /**
      * 计划开始日期
      */
-    private Date startTime;
+    private LocalDate startTime;
 
     /**
      * 计划结束日期
      */
-    private Date endTime;
+    private LocalDate endTime;
 
     /**
      * 分包量

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

@@ -41,6 +41,11 @@ public class KwtLogisticsOrderGoods implements Serializable {
      */
     private String goodsName;
 
+    /**
+     * 货物分类
+     */
+    private String goodsType;
+
     /**
      * sku
      */

+ 12 - 17
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddOrderDTO.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import org.hibernate.validator.constraints.Length;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 
 /**
  * @author lfdc
@@ -67,6 +68,12 @@ public class AddOrderDTO {
     @NotNull(message = "货物名称不能为空")
     private String goodsName;
 
+    /**
+     * 货物类型
+     */
+    @NotBlank(message = "货物类型不能为空")
+    private String goodsType;
+
     /**
      * 计费方式
      */
@@ -126,7 +133,7 @@ public class AddOrderDTO {
     /**
      * 合理损耗
      */
-    @Digits(integer = 7, fraction = 2, message = "合理损耗格式错误")
+    @Digits(integer = 5, fraction = 2, message = "合理损耗格式错误")
     @DecimalMin(value = "0.00", message = "合理损耗最小值为{value}")
     private BigDecimal loss;
 
@@ -151,16 +158,16 @@ public class AddOrderDTO {
     /**
      * 计划卸货时间
      */
-    @NotBlank(message = "计划卸货时间不能为空")
+    @NotNull(message = "计划卸货时间不能为空")
     @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
-    private String endTime;
+    private LocalDate endTime;
 
     /**
      * 计划发货时间
      */
-    @NotBlank(message = "计划发货时间不能为空")
+    @NotNull(message = "计划发货时间不能为空")
     @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
-    private String startTime;
+    private LocalDate startTime;
 
     /**
      * 结算周期(周结、月结、季结)
@@ -201,18 +208,6 @@ public class AddOrderDTO {
     @Length(max = 200, message = "单据编号长度错误最大长度:{max}")
     private String remark;
 
-    /**
-     * 联系人
-     */
-    @NotBlank(message = "联系人不能为空")
-    private String contacts;
-
-    /**
-     * 联系电话
-     */
-    @NotBlank(message = "联系电话不能为空")
-    private String phone;
-
     /**
      * 装货城市编码
      */

+ 6 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/StopOrderTakingDTO.java

@@ -23,4 +23,10 @@ public class StopOrderTakingDTO {
     @JsonProperty("lOrderId")
     private String lOrderId;
 
+    /**
+     * 1托运 2承运
+     */
+    @JsonProperty("type")
+    private String type;
+
 }

+ 13 - 13
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java

@@ -10,7 +10,7 @@ import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
-import java.util.Date;
+import java.time.LocalDate;
 
 
 /**
@@ -24,11 +24,11 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
     /**
      *总量
      */
-    private Long amount;
+    private BigDecimal amount;
     /**
      * 分配承运量
      */
-    private Long carryingCapacity;
+    private BigDecimal carryingCapacity;
     /**
      * 分配承运量使用的单位
      */
@@ -175,20 +175,20 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
     private String priceType;
 
     /**
-     * 计划卸货时间
+     * 计划卸货日期
      */
-    @NotNull(message = "计划卸货时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date receiveGoodsDateTime;
+    @NotNull(message = "计划卸货日期不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate receiveGoodsDateTime;
 
     /**
-     * 计划发货时间
+     * 计划发货日期
      */
-    @NotNull(message = "计划发货时间不能为空")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date shipmentsDateTime;
+    @NotNull(message = "计划发货日期不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate shipmentsDateTime;
 
     /**
      * 税率

+ 10 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java

@@ -3,12 +3,16 @@ package com.sckw.transport.model.param;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.DecimalMin;
+import jakarta.validation.constraints.Digits;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.experimental.Accessors;
 import org.hibernate.validator.constraints.Length;
 
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
 /**
  * @author lfdc
  * @description 物流托运bo
@@ -21,11 +25,13 @@ public class LogisticsConsignmentParam {
     /**
      *总量
      */
-    private Long amount;
+    private BigDecimal amount;
     /**
      * 分配承运量
      */
-    private Long carryingCapacity;
+    @Digits(integer = 10,fraction = 2,message = "分配承运量格式不正确")
+    @DecimalMin(value = "0.00",message = "分配承运量不能小于{value}")
+    private BigDecimal carryingCapacity;
     /**
      * 分配承运量使用的单位(吨、方、箱、件))
      */
@@ -186,14 +192,14 @@ public class LogisticsConsignmentParam {
     @NotNull(message = "计划卸货时间不能为空")
     @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
 //    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private String receiveGoodsDateTime;
+    private LocalDate receiveGoodsDateTime;
     /**
      * 计划发货时间
      */
     @NotNull(message = "计划发货时间不能为空")
     @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
 //    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private String shipmentsDateTime;
+    private LocalDate shipmentsDateTime;
     /**
      * 税率
      */

+ 2 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsOrderParam.java

@@ -21,7 +21,7 @@ public class LogisticsOrderParam implements Serializable {
     /**
      * 客户单位名称
      */
-    @NotBlank(message = "客户单位名称不能为空")
+//    @NotBlank(message = "客户单位名称不能为空")
     private String companyName;
     /**
      * 开始时间
@@ -41,7 +41,7 @@ public class LogisticsOrderParam implements Serializable {
     /**
      * 付款方式(预付款、线下支付、第三方支付)
      */
-    @NotNull(message = "付款方式类型不能为空")
+//    @NotNull(message = "付款方式类型不能为空")
     private String paymentType;
 
     /**

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

@@ -16,6 +16,20 @@ import java.util.Date;
 @Data
 @Accessors(chain = true)
 public class CarWaybillVO {
+
+    /**
+     * 物流订单id
+     */
+    private String lOrderId;
+
+    /**
+     *物流订单编号
+     */
+    private String lOrderNo;
+
+    /**
+     * 车辆运单id
+     */
     private String wOrderId;
 
     /**

+ 7 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java

@@ -1,7 +1,10 @@
 package com.sckw.transport.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
+import java.time.LocalDate;
+
 /**
  * @author lfdc
  * @description 订单详情vo
@@ -81,11 +84,13 @@ public class OrderDetailVO {
     /**
      * 计划结束时间
      */
-    private String scheduleEndTime;
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private LocalDate scheduleEndTime;
     /**
      * 计划开始时间
      */
-    private String scheduleStartTime;
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private LocalDate scheduleStartTime;
     /**
      * 结算周期
      */

+ 90 - 26
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -14,11 +14,13 @@ import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
-import com.sckw.core.utils.*;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.IdWorker;
+import com.sckw.core.utils.RegularUtils;
+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.excel.utils.ValidUtil;
 import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.fleet.api.model.vo.RTruckVo;
@@ -49,7 +51,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
-import java.text.ParseException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -147,16 +148,16 @@ public class AcceptCarriageOrderService {
         }
         KwtLogisticsOrder order = new KwtLogisticsOrder();
         if (!bo.getIsFullDose()) {
-            Long amount = bo.getAmount();
-            Long carryingCapacity = bo.getCarryingCapacity();
-            if (carryingCapacity > amount) {
+            BigDecimal amount = bo.getAmount();
+            BigDecimal carryingCapacity = bo.getCarryingCapacity();
+            if (carryingCapacity.compareTo(amount) < 0) {
                 log.error("运订单分包托运-可分配量分配错误:{}", bo.getLOrderId());
                 throw new RuntimeException("可分配量分配错误");
             }
             if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
                 throw new RuntimeException("不是全量分配时,分配量不能为空!");
             }
-            order.setAmount(new BigDecimal(bo.getCarryingCapacity()));
+            order.setAmount(bo.getCarryingCapacity());
             order.setUnit(bo.getCarryingCapacityUnit());
         } else {
             order.setAmount(new BigDecimal(NumberConstant.ZERO));
@@ -216,7 +217,7 @@ public class AcceptCarriageOrderService {
         insertSubcontractLogisticsOrderAddress(bo, orderId, logisticsOrder);
         insertLogisticsOrderTrack(bo, orderId, orderStatus);
         //修改上级分配量以及可分配量委托量等
-        logisticsOrder.setSubcontractAmount(logisticsOrder.getSubcontractAmount().add(new BigDecimal(bo.getCarryingCapacity())));
+        logisticsOrder.setSubcontractAmount(logisticsOrder.getSubcontractAmount().add(bo.getCarryingCapacity()));
         logisticsOrderMapper.updateById(logisticsOrder);
         //修改父级mongodb数据
         //更新mongodb
@@ -228,7 +229,8 @@ public class AcceptCarriageOrderService {
         lOrder.setUpdateTime(order.getUpdateTime());
         lOrder.setUpdateBy(order.getUpdateBy());
         lOrder.setUpdateByName(LoginUserHolder.getUserName());
-        lOrder.setSubcontractAmount(logisticsOrder.getSubcontractAmount().add(new BigDecimal(bo.getCarryingCapacity())));        //rabbitMq业务汇总数据发送/消费对象
+        lOrder.setSubcontractAmount(logisticsOrder.getSubcontractAmount().add(bo.getCarryingCapacity()));
+        //rabbitMq业务汇总数据发送/消费对象
         SckwBusSum busSum = new SckwBusSum();
         //业务汇总类型
         busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
@@ -266,13 +268,13 @@ public class AcceptCarriageOrderService {
             if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
                 throw new RuntimeException("不是全量分配时,分配量不能为空!");
             }
-            logisticsOrder.setAmount(new BigDecimal(bo.getCarryingCapacity()));
+            logisticsOrder.setAmount(bo.getCarryingCapacity());
             logisticsOrder.setUnit(bo.getCarryingCapacityUnit());
             logisticsOrder.setCarryingCapacity(bo.getCarryingCapacity());
         } else {
-            logisticsOrder.setAmount(new BigDecimal(NumberConstant.ZERO));
-            logisticsOrder.setSubcontractAmount(new BigDecimal(NumberConstant.ZERO));
-            logisticsOrder.setCarryingCapacity(0L);
+            logisticsOrder.setAmount(new BigDecimal("0.00"));
+            logisticsOrder.setSubcontractAmount(new BigDecimal("0.00"));
+            logisticsOrder.setCarryingCapacity(new BigDecimal("0.00"));
         }
         logisticsOrder.setLoss(bo.getLoss() == null ? null : bo.getLoss());
         logisticsOrder.setLossUnit(bo.getLossUnit());
@@ -522,7 +524,7 @@ public class AcceptCarriageOrderService {
         order.setPrice(new BigDecimal(bo.getPrice()));
         order.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()) == null ?
                 null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()).getValue()));
-        order.setAmount(new BigDecimal(bo.getCarryingCapacity()));
+        order.setAmount(bo.getCarryingCapacity());
         order.setBillingMode(bo.getBillingMode());
         order.setLoss(bo.getLoss());
 //        order.setLossUnit(bo.getLossUnit());
@@ -886,6 +888,23 @@ public class AcceptCarriageOrderService {
         List<String> stringList = StringUtils.splitStrToList(stopOrderTakingDTO.getIds(), ",", String.class);
         List<Long> wOrderIds = logisticsOrderCirculateMapper.selectEntityBylOrderIdAndOrderIds(stopOrderTakingDTO.getLOrderId(), stringList);
         List<JSONObject> list = new ArrayList<>(stringList.size());
+        String type = stopOrderTakingDTO.getType();
+        if (String.valueOf(NumberConstant.TWO).equals(type)){
+            acceptStopDocumentCommit(stopOrderTakingDTO,list,wOrderIds);
+        }else if (String.valueOf(NumberConstant.ONE).equals(type)){
+            consignStopDocumentCommit(stopOrderTakingDTO,list,wOrderIds);
+        }else {
+           return HttpResult.error("单据类型错误!");
+        }
+        return HttpResult.ok(list);
+    }
+
+    /**
+     * 托运订单-设置停止接单
+     * @param stopOrderTakingDTO
+     */
+    private void consignStopDocumentCommit(StopOrderTakingDTO stopOrderTakingDTO,List<JSONObject> list,List<Long> wOrderIds) {
+
         if (CollectionUtils.isNotEmpty(wOrderIds)) {
             wOrderIds.forEach(wOrderId -> {
                 JSONObject jsonObject = new JSONObject();
@@ -897,10 +916,55 @@ public class AcceptCarriageOrderService {
                 } else {
                     logisticsOrderCirculateMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderCirculate>()
                             .set(KwtLogisticsOrderCirculate::getStatus, NumberConstant.ONE)
-                            .eq(KwtLogisticsOrderCirculate::getWOrderId, wOrderId));
+                            .set(KwtLogisticsOrderCirculate::getUpdateBy,LoginUserHolder.getUserId())
+                            .set(KwtLogisticsOrderCirculate::getUpdateTime,new Date())
+                            .eq(KwtLogisticsOrderCirculate::getWOrderId, wOrderId)
+                    );
 //                    /**更新MongoDB*/
                     SckwWaybillOrder order = new SckwWaybillOrder();
                     order.setStatus(NumberConstant.ONE);
+                    order.setUpdateTime(new Date());
+                    order.setUpdateByName(LoginUserHolder.getUserName());
+                    order.setUpdateBy(LoginUserHolder.getUserId());
+                    SckwBusSum busSum = new SckwBusSum();
+                    busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
+                    busSum.setMethod(NumberConstant.TWO);
+                    busSum.setObject(order);
+                    streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
+                    jsonObject.put("status", HttpStatus.SUCCESS_CODE);
+                    jsonObject.put("message", "停止接单成功");
+                }
+                list.add(jsonObject);
+            });
+        }
+    }
+
+    /**
+     * 承运订单设置停止接单
+     * @param stopOrderTakingDTO
+     */
+    private void acceptStopDocumentCommit(StopOrderTakingDTO stopOrderTakingDTO,List<JSONObject> list,List<Long> wOrderIds) {
+        if (CollectionUtils.isNotEmpty(wOrderIds)) {
+            wOrderIds.forEach(wOrderId -> {
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("wOrderId", wOrderId);
+                KwtWaybillOrder waybillOrder = waybillOrderMapper.selectOne(new LambdaUpdateWrapper<KwtWaybillOrder>().eq(KwtWaybillOrder::getId, wOrderId));
+                if (waybillOrder == null) {
+                    jsonObject.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
+                    jsonObject.put("message", "单据不存在或者单据异常");
+                } else {
+                    logisticsOrderCirculateMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderCirculate>()
+                            .set(KwtLogisticsOrderCirculate::getStatus, NumberConstant.ONE)
+                            .set(KwtLogisticsOrderCirculate::getUpdateBy,LoginUserHolder.getUserId())
+                            .set(KwtLogisticsOrderCirculate::getUpdateTime,new Date())
+                            .eq(KwtLogisticsOrderCirculate::getWOrderId, wOrderId)
+                    );
+//                    /**更新MongoDB*/
+                    SckwWaybillOrder order = new SckwWaybillOrder();
+                    order.setStatus(NumberConstant.ONE);
+                    order.setUpdateTime(new Date());
+                    order.setUpdateByName(LoginUserHolder.getUserName());
+                    order.setUpdateBy(LoginUserHolder.getUserId());
                     SckwBusSum busSum = new SckwBusSum();
                     busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
                     busSum.setMethod(NumberConstant.TWO);
@@ -912,7 +976,6 @@ public class AcceptCarriageOrderService {
                 list.add(jsonObject);
             });
         }
-        return HttpResult.ok(list);
     }
 
     /**
@@ -976,7 +1039,7 @@ public class AcceptCarriageOrderService {
                 orderTrack.setUpdateBy(LoginUserHolder.getUserId());
                 orderTrack.setUpdateTime(new Date());
                 waybillOrderTrackMapper.insert(orderTrack);
-            }else {
+            } else {
                 waybillOrderTrack.setUpdateTime(new Date());
                 waybillOrderTrack.setUpdateBy(LoginUserHolder.getUserId());
                 waybillOrderTrackMapper.updateById(waybillOrderTrack);
@@ -1245,8 +1308,8 @@ public class AcceptCarriageOrderService {
         orderDetailVO.setUnloadAddressDetail(unloadOrderAddress.getDetailAddress());
         orderDetailVO.setSettlementCycle(logisticsOrder.getSettlementCycle() == null ? null : String.valueOf(logisticsOrder.getSettlementCycle()));
         orderDetailVO.setBillingMode(logisticsOrder.getBillingMode());
-        orderDetailVO.setScheduleStartTime(logisticsOrder.getStartTime() == null ? null : DateUtil.getDateTime(logisticsOrder.getStartTime()));
-        orderDetailVO.setScheduleEndTime(logisticsOrder.getEndTime() == null ? null : DateUtil.getDateTime(logisticsOrder.getEndTime()));
+        orderDetailVO.setScheduleStartTime(logisticsOrder.getStartTime() == null ? null : logisticsOrder.getStartTime());
+        orderDetailVO.setScheduleEndTime(logisticsOrder.getEndTime() == null ? null : logisticsOrder.getEndTime());
         orderDetailVO.setPerformanceAmount(logisticsOrder.getLoadAmount() == null ? null : String.valueOf(logisticsOrder.getLoadAmount()));
         return HttpResult.ok(orderDetailVO);
     }
@@ -1269,7 +1332,7 @@ public class AcceptCarriageOrderService {
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
-    public HttpResult addOrder(AddOrderDTO orderDTO) throws ParseException {
+    public HttpResult addOrder(AddOrderDTO orderDTO) {
         HttpResult httpResult = ValidUtil.serviceValid(orderDTO);
         if (!String.valueOf(HttpStatus.SUCCESS_CODE).equals(String.valueOf(httpResult.getCode()))) {
             return HttpResult.error(httpResult.getMsg());
@@ -1336,6 +1399,7 @@ public class AcceptCarriageOrderService {
         goods.setLOrderNo(lOrderNo);
 //        goods.setGoodsId();
         goods.setGoodsName(orderDTO.getGoodsName());
+        goods.setGoodsType(orderDTO.getGoodsType());
         goods.setStatus(NumberConstant.ZERO);
         goods.setCreateBy(LoginUserHolder.getUserId());
         goods.setCreateTime(new Date());
@@ -1448,7 +1512,7 @@ public class AcceptCarriageOrderService {
         order.setUpdateByName(LoginUserHolder.getUserName());
         order.setUpdateTime(new Date());
         order.setWOrderNo(lOrderNo);
-        order.setCarryingCapacity(orderDTO.getAmount().longValue());
+        order.setCarryingCapacity(orderDTO.getAmount());
         order.setBillingMode(orderDTO.getBillingMode());
         SckwBusSum busSum = new SckwBusSum();
         busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
@@ -1596,7 +1660,7 @@ public class AcceptCarriageOrderService {
      * @param orderStatus 订单状态
      * @param lOrderNo    主体订单编号
      */
-    private void saveLogisticsOrder(AddOrderDTO orderDTO, Long lOrderId, Integer orderStatus, String lOrderNo) throws ParseException {
+    private void saveLogisticsOrder(AddOrderDTO orderDTO, Long lOrderId, Integer orderStatus, String lOrderNo) {
         KwtLogisticsOrder order = new KwtLogisticsOrder();
         order.setId(lOrderId);
         order.setEntId(LoginUserHolder.getEntId());
@@ -1614,10 +1678,10 @@ public class AcceptCarriageOrderService {
         order.setLossUnit(orderDTO.getLossUnit());
         order.setGoodsPrice(orderDTO.getGoodsPrice() == null ? null : orderDTO.getGoodsPrice());
         order.setGoodsPriceUnit(orderDTO.getGoodsPriceUnit());
-        order.setStartTime(org.apache.commons.lang3.StringUtils.isBlank(orderDTO.getStartTime()) ?
-                null : DateUtil.stringPatchingStartToDateTime(orderDTO.getStartTime()));
-        order.setEndTime(org.apache.commons.lang3.StringUtils.isBlank(orderDTO.getEndTime()) ?
-                null : DateUtil.stringPatchingEndToDateTime(orderDTO.getEndTime()));
+        order.setStartTime(org.apache.commons.lang3.ObjectUtils.isEmpty(orderDTO.getStartTime()) ?
+                null : orderDTO.getStartTime());
+        order.setEndTime(org.apache.commons.lang3.ObjectUtils.isEmpty(orderDTO.getEndTime()) ?
+                null : orderDTO.getEndTime());
         BigDecimal decimal = new BigDecimal(NumberConstant.ZERO);
         order.setSubcontractAmount(decimal);
         order.setEntrustAmount(decimal);

+ 19 - 9
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -291,6 +291,7 @@ public class ConsignOrderService {
             return HttpResult.ok();
         }
         List<CarWaybillVO> returnList = new ArrayList<>();
+        list= list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
         for (String id : list) {
             KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
                             .eq(StringUtils.isNotBlank(id), KwtLogisticsOrder::getId, Long.parseLong(id))
@@ -327,8 +328,10 @@ public class ConsignOrderService {
                     BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
                     //扣亏量/吨
                     BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
+                    carWaybillVo.setLOrderId(String.valueOf(kwtWaybillOrder.getLOrderId()));
+                    carWaybillVo.setLOrderNo(order.getLOrderNo());
                     carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
-                    carWaybillVo.setWOrderNo(order.getLOrderNo());
+                    carWaybillVo.setWOrderNo(kwtWaybillOrder.getWOrderNo());
                     carWaybillVo.setTruckNo(kwtWaybillOrder.getTruckNo());
                     carWaybillVo.setStatus(String.valueOf(kwtWaybillOrder.getStatus()));
                     carWaybillVo.setStatusLabel(CarWaybillEnum.getName(kwtWaybillOrder.getStatus()));
@@ -382,14 +385,20 @@ public class ConsignOrderService {
      * @return
      */
     private HttpResult getCarWaybillOrderByConsign(OrderDTO orderDto) {
-        List<String> list = StringUtils.splitStrToList(orderDto.getIds(), String.class);
+        List<Long> list = StringUtils.splitStrToList(orderDto.getIds(), Long.class);
         if (CollectionUtils.isEmpty(list)) {
             return HttpResult.ok();
         }
         List<CarWaybillVO> returnList = new ArrayList<>();
-        for (String id : list) {
+        list = list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
+//        kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
+//                .eq(KwtLogisticsOrder::getDelFlag,NumberConstant.ZERO)
+//                .in(KwtLogisticsOrder::getId,list)
+//                .orderByDesc(KwtLogisticsOrder::getId)
+//        );
+        for (Long id : list) {
             KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                            .eq(StringUtils.isNotBlank(id), KwtLogisticsOrder::getId, Long.parseLong(id))
+                            .eq(StringUtils.isNotBlank(id), KwtLogisticsOrder::getId, id)
                     /**      .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())*/
                     /**.eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/);
             if (ObjectUtils.isEmpty(order)) {
@@ -776,6 +785,7 @@ public class ConsignOrderService {
         goods.setLOrderNo(lOrderNo);
 //        goods.setGoodsId(Long.parseLong(addOrderDTO.getGoodsId()));
         goods.setGoodsName(addOrderDTO.getGoodsName());
+        goods.setGoodsType(addOrderDTO.getGoodsType());
         goods.setStatus(NumberConstant.ZERO);
         goods.setCreateBy(LoginUserHolder.getUserId());
         goods.setCreateTime(new Date());
@@ -810,10 +820,10 @@ public class ConsignOrderService {
         order.setLossUnit(addOrderDTO.getLossUnit());
         order.setGoodsPrice(addOrderDTO.getGoodsPrice() == null ? null : addOrderDTO.getGoodsPrice());
         order.setGoodsPriceUnit(addOrderDTO.getGoodsPriceUnit());
-        order.setStartTime(org.apache.commons.lang3.StringUtils.isBlank(addOrderDTO.getStartTime()) ?
-                null : DateUtil.stringPatchingStartToDateTime(addOrderDTO.getStartTime()));
-        order.setEndTime(org.apache.commons.lang3.StringUtils.isBlank(addOrderDTO.getEndTime()) ?
-                null : DateUtil.stringPatchingEndToDateTime(addOrderDTO.getEndTime()));
+        order.setStartTime(org.apache.commons.lang3.ObjectUtils.isEmpty(addOrderDTO.getStartTime()) ?
+                null : addOrderDTO.getStartTime());
+        order.setEndTime(org.apache.commons.lang3.ObjectUtils.isEmpty(addOrderDTO.getEndTime()) ?
+                null : addOrderDTO.getEndTime());
         BigDecimal decimal = new BigDecimal(NumberConstant.ZERO);
         order.setSubcontractAmount(decimal);
         order.setEntrustAmount(decimal);
@@ -1043,7 +1053,7 @@ public class ConsignOrderService {
         order.setUpdateByName(LoginUserHolder.getUserName());
         order.setUpdateTime(new Date());
         order.setWOrderNo(lOrderNo);
-        order.setCarryingCapacity(addOrderDTO.getAmount().longValue());
+        order.setCarryingCapacity(addOrderDTO.getAmount());
         order.setBillingMode(addOrderDTO.getBillingMode());
         SckwBusSum busSum = new SckwBusSum();
         busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());

+ 59 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -20,6 +20,7 @@ import com.sckw.order.api.model.CompleteLogisticsOrderParam;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
@@ -1651,6 +1652,64 @@ public class KwtWaybillOrderService {
         return HttpResult.ok("修改单证成功!");
     }
 
+    /**
+     * @param wOrderId
+     * @desc 修改单证查询运单
+     * @author zk
+     * @date 2023/8/10
+     **/
+    public HttpResult ticketWaybillOrder(Long wOrderId){
+        //车辆运单信息
+        KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(wOrderId);
+        if (waybillOrder == null) {
+            return HttpResult.error("车辆运单信息不存在!");
+        }
+        //装货榜单
+        KwtWaybillOrderTicket loadTicket = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, Global.NUMERICAL_ONE);
+        //卸货榜单
+        KwtWaybillOrderTicket unloadTicket = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, Global.NUMERICAL_TWO);
+        //装货地址
+        KwtWaybillOrderAddress loadAddress = this.getAddress(waybillOrder.getId(), Global.NUMERICAL_ONE);
+        //卸货地址
+        KwtWaybillOrderAddress unloadAddress = this.getAddress(waybillOrder.getId(), Global.NUMERICAL_TWO);
+        //商品信息
+        KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(waybillOrder.getLOrderId());
+        //用户数据集
+        List<Long> createBys = new ArrayList(){{add(loadTicket.getUpdateBy()); add(unloadTicket.getUpdateBy());}};
+        createBys = createBys.stream().distinct().collect(Collectors.toList());
+        Map<Long, UserCacheResDto> users = remoteSystemService.queryUserCacheMapByIds(createBys);
+        UserCacheResDto loadUser = users == null ? null : users.get(loadTicket.getUpdateBy());
+        UserCacheResDto unloadUser = users == null ? null : users.get(unloadTicket.getUpdateBy());
+
+        Map result = new HashMap();
+        result.put("wOrderId", wOrderId);
+        result.put("wOrderNo", waybillOrder.getWOrderNo());
+        result.put("status", waybillOrder.getStatus());
+        result.put("truckNo", waybillOrder.getTruckNo());
+        result.put("driverName", waybillOrder.getDriverName());
+        result.put("driverPhone", waybillOrder.getDriverPhone());
+        result.put("driverIdcard", waybillOrder.getDriverIdcard());
+        result.put("goodsName", goods != null ? goods.getGoodsName() : null);
+        result.put("loadStatus", loadTicket != null ? 0 : 1);
+        result.put("loadAmount", loadTicket != null ? loadTicket.getAmount() : null);
+        result.put("loadUrls", loadTicket != null ? loadTicket.getUrls() : null);
+        result.put("loadOperateTime", loadTicket != null ? loadTicket.getOperateTime() : null);
+        result.put("loadCreateTime", loadTicket != null ? loadTicket.getCreateTime() : null);
+        result.put("loadCreateByName", loadUser != null ? loadUser.getName() : null);
+        result.put("loadCityName", loadAddress != null ? loadAddress.getCityName() : null);
+        result.put("loadDetailAddress", loadAddress != null ? loadAddress.getDetailAddress() : null);
+        result.put("unloadStatus", loadTicket != null ? 0 : 1);
+        result.put("unloadAmount", unloadTicket != null ? unloadTicket.getAmount() : null);
+        result.put("unloadUrls", unloadTicket != null ? unloadTicket.getUrls() : null);
+        result.put("unloadOperateTime", unloadTicket != null ? unloadTicket.getOperateTime() : null);
+        result.put("unloadCreateTime", unloadTicket != null ? unloadTicket.getCreateTime() : null);
+        result.put("unloadCreateByName", unloadUser != null ? unloadUser.getName() : null);
+        result.put("unloadCityName", unloadAddress != null ? unloadAddress.getCityName() : null);
+        result.put("unloadDetailAddress", unloadAddress != null ? unloadAddress.getDetailAddress() : null);
+
+        return HttpResult.ok(result);
+    }
+
     /**
      * @param params {}
      * @desc 单证审核

+ 20 - 19
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -19,7 +19,6 @@ 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.excel.utils.ValidUtil;
 import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.fleet.api.model.vo.RTruckVo;
@@ -158,19 +157,19 @@ public class LogisticsConsignmentService {
         }
         KwtLogisticsOrder order = new KwtLogisticsOrder();
         if (!bo.getIsFullDose()) {
-            Long amount = bo.getAmount();
-            Long carryingCapacity = bo.getCarryingCapacity();
-            if (carryingCapacity > amount) {
+            BigDecimal amount = bo.getAmount();
+            BigDecimal carryingCapacity = bo.getCarryingCapacity();
+            if (carryingCapacity.compareTo(amount) < 0) {
                 log.error("可分配量分配错误:{}", bo.getTOrderId());
                 throw new RuntimeException("可分配量分配错误");
             }
             if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
                 throw new RuntimeException("不是全量分配时,分配量不能为空!");
             }
-            order.setAmount(new BigDecimal(bo.getCarryingCapacity()));
+            order.setAmount(bo.getCarryingCapacity());
         } else {
-            order.setAmount(new BigDecimal(NumberConstant.ZERO));
-            order.setSubcontractAmount(new BigDecimal(NumberConstant.ZERO));
+            order.setAmount(new BigDecimal("0.00"));
+            order.setSubcontractAmount(new BigDecimal("0.00"));
         }
         String lOrderNo = com.sckw.transport.utils.StringUtils.getLOrderNo();
         Long orderId = new IdWorker(NumberConstant.ONE).nextId();
@@ -186,13 +185,13 @@ public class LogisticsConsignmentService {
         /**将生成的分配量->贸易订单*/
         CreateOrCancelLogisticsOrderParam param = new CreateOrCancelLogisticsOrderParam();
         param.setTOrderId(Long.valueOf(bo.getTOrderId()));
-        param.setEntrustAmount(BigDecimal.valueOf(bo.getCarryingCapacity()));
+        param.setEntrustAmount(bo.getCarryingCapacity());
         param.setUpdateBy(LoginUserHolder.getUserId());
         param.setUpdateByName(LoginUserHolder.getUserName());
         HttpResult httpResult = tradeOrderInfoService.createOrCancelLogisticsOrder(param);
-        if (httpResult.getCode() != HttpStatus.SUCCESS_CODE){
-            log.info("{}生成物流托运失败!,返回信息:{}",bo.getTOrderNo(),JSONObject.toJSONString(httpResult));
-            throw new BusinessException("{}生成物流托运失败!",bo.getTOrderNo());
+        if (httpResult.getCode() != HttpStatus.SUCCESS_CODE) {
+            log.info("{}生成物流托运失败!,返回信息:{}", bo.getTOrderNo(), JSONObject.toJSONString(httpResult));
+            throw new BusinessException("{}生成物流托运失败!", bo.getTOrderNo());
         }
     }
 
@@ -222,13 +221,13 @@ public class LogisticsConsignmentService {
             if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
                 throw new RuntimeException("不是全量分配时,分配量不能为空!");
             }
-            logisticsOrder.setAmount(new BigDecimal(bo.getCarryingCapacity()));
+            logisticsOrder.setAmount(bo.getCarryingCapacity());
             logisticsOrder.setUnit(bo.getCarryingCapacityUnit());
             logisticsOrder.setCarryingCapacity(bo.getCarryingCapacity());
         } else {
-            logisticsOrder.setAmount(new BigDecimal(NumberConstant.ZERO));
-            logisticsOrder.setSubcontractAmount(new BigDecimal(NumberConstant.ZERO));
-            logisticsOrder.setCarryingCapacity(0L);
+            logisticsOrder.setAmount(new BigDecimal("0.00"));
+            logisticsOrder.setSubcontractAmount(new BigDecimal("0.00"));
+            logisticsOrder.setCarryingCapacity(new BigDecimal("0.00"));
         }
         logisticsOrder.setLoss(bo.getLoss() == null ? null : new BigDecimal(bo.getLoss()));
         logisticsOrder.setLossUnit(bo.getLossUnit());
@@ -295,6 +294,8 @@ public class LogisticsConsignmentService {
         logisticsOrder.setGoodsPriceUnit(bo.getGoodsPriceUnit());
         logisticsOrder.setContractName(bo.getContractName());
         logisticsOrder.setBillingMode(bo.getBillingMode());
+        logisticsOrder.setStartTime(bo.getShipmentsDateTime());
+        logisticsOrder.setEndTime(bo.getReceiveGoodsDateTime());
         //rabbitMq业务汇总数据发送/消费对象
         SckwBusSum busSum = new SckwBusSum();
         //业务汇总类型
@@ -420,8 +421,8 @@ public class LogisticsConsignmentService {
         order.setGoodsPriceUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getGoodsPriceUnit()) == null ?
                 null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getGoodsPriceUnit()).getValue());
         order.setGoodsPriceUnit(bo.getGoodsPriceUnit());
-        order.setStartTime(DateUtil.stringPatchingStartToDateTime(bo.getShipmentsDateTime()));
-        order.setEndTime(DateUtil.stringPatchingStartToDateTime(bo.getReceiveGoodsDateTime()));
+        order.setStartTime(bo.getShipmentsDateTime());
+        order.setEndTime(bo.getReceiveGoodsDateTime());
         order.setRemark(bo.getRemark());
         order.setPayment(Long.parseLong(bo.getPayment()));
         order.setTaxRate(new BigDecimal(bo.getTaxRate()));
@@ -1086,8 +1087,8 @@ public class LogisticsConsignmentService {
         tradeOrder.setUpdateBy(LoginUserHolder.getUserId());
         tradeOrder.setUpdateByName(LoginUserHolder.getUserName());
         HttpResult httpResult = tradeOrderInfoService.completeLogisticsOrder(tradeOrder);
-        if (httpResult.getCode() != HttpStatus.SUCCESS_CODE){
-            log.info("贸易订单手动完结订单异常,传递信息:{},返回信息:{}",JSONObject.toJSONString(tradeOrder),JSONObject.toJSONString(httpResult));
+        if (httpResult.getCode() != HttpStatus.SUCCESS_CODE) {
+            log.info("贸易订单手动完结订单异常,传递信息:{},返回信息:{}", JSONObject.toJSONString(tradeOrder), JSONObject.toJSONString(httpResult));
             throw new BusinessException("单据完结出现错误!");
         }
         //todo 直接订单完结-不递归操作

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

@@ -14,7 +14,6 @@ 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.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
@@ -191,8 +190,8 @@ public class TransportCommonService {
         orderDetailVO.setUnloadAddressDetail(unloadOrderAddress.getDetailAddress());
         orderDetailVO.setSettlementCycle(logisticsOrder.getSettlementCycle() == null ? null : String.valueOf(logisticsOrder.getSettlementCycle()));
         orderDetailVO.setBillingMode(logisticsOrder.getBillingMode());
-        orderDetailVO.setScheduleStartTime(logisticsOrder.getStartTime() == null ? null : DateUtil.getDateTime(logisticsOrder.getStartTime()));
-        orderDetailVO.setScheduleEndTime(logisticsOrder.getEndTime() == null ? null : DateUtil.getDateTime(logisticsOrder.getEndTime()));
+        orderDetailVO.setScheduleStartTime(logisticsOrder.getStartTime() == null ? null : logisticsOrder.getStartTime());
+        orderDetailVO.setScheduleEndTime(logisticsOrder.getEndTime() == null ? null : logisticsOrder.getEndTime());
         orderDetailVO.setPerformanceAmount(logisticsOrder.getLoadAmount() == null ? null : String.valueOf(logisticsOrder.getLoadAmount()));
         return orderDetailVO;
     }