Răsfoiți Sursa

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

czh 2 ani în urmă
părinte
comite
db9a55bcd3
97 a modificat fișierele cu 2917 adăugiri și 708 ștergeri
  1. 8 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/StringConstant.java
  2. 1 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/exception/GlobalSystemExceptionHandler.java
  3. 1 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/base/BaseModel.java
  4. 51 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/OrderGenerateUtils.java
  5. 33 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java
  6. 39 13
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java
  7. 9 1
      sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/utils/RedissonUtils.java
  8. 1 1
      sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwBusSum.java
  9. 1 1
      sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwMessage.java
  10. 3 5
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfDriverController.java
  11. 175 2
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java
  12. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverCardMapper.java
  13. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverLicenseMapper.java
  14. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverQualificationMapper.java
  15. 1 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfTransportLicenseMapper.java
  16. 1 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfTruckLicenseMapper.java
  17. 26 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfTruckMapper.java
  18. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfDriverCard.java
  19. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfDriverLicense.java
  20. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfDriverQualification.java
  21. 3 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTransportLicense.java
  22. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruckEnt.java
  23. 3 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruckLicense.java
  24. 3 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverCardDto.java
  25. 3 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverLicenseDto.java
  26. 3 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverQualificationDto.java
  27. 73 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTransportLicenseDto.java
  28. 121 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTruckDto.java
  29. 74 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTruckLicenseDto.java
  30. 189 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfTruckVo.java
  31. 18 18
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java
  32. 364 17
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java
  33. 1 1
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverCardMapper.xml
  34. 5 2
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverEntMapper.xml
  35. 1 1
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverLicenseMapper.xml
  36. 12 0
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml
  37. 1 1
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverQualificationMapper.xml
  38. 6 0
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfFleetMapper.xml
  39. 10 0
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTransportLicenseMapper.xml
  40. 6 3
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckEntMapper.xml
  41. 9 0
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckLicenseMapper.xml
  42. 158 0
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckMapper.xml
  43. 117 17
      sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java
  44. 5 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrderUnit.java
  45. 53 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AcceptanceOrderParam.java
  46. 2 2
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AddressInfo.java
  47. 31 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/CompleteOrderParam.java
  48. 30 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/ContractInfo.java
  49. 84 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/GoodsInfo.java
  50. 23 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListExportParam.java
  51. 25 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListSelectParam.java
  52. 72 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListStatisticParam.java
  53. 21 28
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/PurchaseOrderParam.java
  54. 25 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/RejectOrderParam.java
  55. 1 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UnitInfo.java
  56. 72 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UpdateOrderParam.java
  57. 7 7
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/ValetOrderParam.java
  58. 39 10
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetailRes.java
  59. 145 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderListRes.java
  60. 63 8
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  61. 1 1
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddGoodsParam.java
  62. 1 6
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/UpdateGoodsParam.java
  63. 8 12
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  64. 3 3
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  65. 9 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/common/enums/LogisticsOrderEnum.java
  66. 15 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  67. 24 49
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java
  68. 45 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/TransportCommonController.java
  69. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwoTradeOrder.java
  70. 4 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrder.java
  71. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderAddress.java
  72. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderCirculate.java
  73. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderContract.java
  74. 6 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderGoods.java
  75. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderTrack.java
  76. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderUnit.java
  77. 3 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java
  78. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderTicket.java
  79. 4 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderTrack.java
  80. 27 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/DocumentParamDTO.java
  81. 22 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderDTO.java
  82. 0 19
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderDto.java
  83. 38 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderTakingDTO.java
  84. 12 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java
  85. 3 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/AcceptCarriageOrderVO.java
  86. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarDataVO.java
  87. 2 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarWaybillVO.java
  88. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/ConsignOrderVO.java
  89. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/ConsignmentVO.java
  90. 133 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java
  91. 80 21
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  92. 82 42
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  93. 5 5
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  94. 125 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  95. 2 1
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderGoodsMapper.xml
  96. 0 207
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml
  97. 15 137
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderTrackMapper.xml

+ 8 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/StringConstant.java

@@ -1,5 +1,7 @@
 package com.sckw.core.common.enums;
 
+import java.time.format.DateTimeFormatter;
+
 /**
  * @description:    定义字符串常量
  * @author: LengFaQiang
@@ -17,12 +19,16 @@ public final class StringConstant {
     public static final String HTTPS_STRING = "https";
     public static final String B = "B";
     public static final String KB = "KB";
+
     public static final String MB = "MB";
     public static final String G = "G";
     public static final String GB = "GB";
-
+    public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
+    public static final String DEF_DATE_FORMAT = "yyyy-MM-dd";
+    public static final DateTimeFormatter YYYY_MM_DD_HH_MM_SS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+    public static final DateTimeFormatter YYYY_MM_DD = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+    public static final DateTimeFormatter HH_MM_SS = DateTimeFormatter.ofPattern("HH:mm:ss");
     public static final String DATE_YYYYMMDD = "yyyyMMdd";
-
     public static final String ENCODING_UTF_EIGHT = "UTF-8";
     public static final String ENCODING_UTF_SIXTEEN = "UTF-16";
     public static final String ENCODING_GBK = "GBK";

+ 1 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/exception/GlobalSystemExceptionHandler.java

@@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 
 import java.util.List;
-import java.util.Objects;
 import java.util.Set;
 
 @Slf4j
@@ -77,7 +76,7 @@ public class GlobalSystemExceptionHandler {
             }
         }
         String errMsg = sb.toString();
-        log.info("参数校验异常m:{}", errMsg);
+        log.info("参数校验异常:{}", errMsg);
         return HttpResult.error(HttpStatus.PARAMETERS_PATTERN_ERROR_CODE, errMsg);
     }
 

+ 1 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/base/BaseModel.java

@@ -1,6 +1,5 @@
 package com.sckw.core.model.base;
 
-import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -32,7 +31,7 @@ public class BaseModel implements Serializable {
 	/**
 	 * 状态:0正常/1锁定
 	 */
-	private Integer status = 0;
+	private Integer status;
 
 	/**
 	 * 创建人

+ 51 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/OrderGenerateUtils.java

@@ -0,0 +1,51 @@
+package com.sckw.core.utils;
+
+import com.sckw.redis.utils.RedissonUtils;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @desc: TODO
+ * @author: yzc
+ * @date: 2023-07-12 19:10
+ */
+@Component
+public class OrderGenerateUtils {
+
+
+    /**
+     * 格式化的时间字符串
+     */
+    private static final SimpleDateFormat SDF = new SimpleDateFormat("yyyyMMddHHmmss");
+
+    /**
+     * redisson生成订单号 name
+     */
+    private static final String ORDER_NO_GENERATOR = "order_no_generator";
+
+
+    /**
+     * @desc: 生成订单号
+     * @author: yzc
+     * @date: 2023-07-12 20:20
+     * @Param prefix:
+     * @return: java.lang.String
+     */
+    public static String generateOrderNo(String prefix) {
+        String date = getNowDateStr();
+        long orderId = RedissonUtils.getAtomicLong(ORDER_NO_GENERATOR + date,60L);
+        return String.format("%s-%s%04d", prefix, date, orderId);
+    }
+
+    /**
+     * 获取当前时间年月日字符串
+     *
+     * @return
+     */
+    private static String getNowDateStr() {
+        return SDF.format(new Date());
+    }
+
+}

+ 33 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java

@@ -164,6 +164,39 @@ public class ExcelUtil {
 
     }
 
+    //    private static void buildResponse(HttpServletResponse response, String fileName,HttpServletRequest request) throws UnsupportedEncodingException {
+//        response.reset();
+//        response.setContentType("application/octet-stream");
+//        response.setCharacterEncoding("utf-8");
+//        //解决不同浏览器压缩包名字含有中文时乱码的问题
+//        String agent = request.getHeader("USER-AGENT");
+//        try {
+//            if (agent.contains("MSIE") || agent.contains("Trident")) {
+//                fileName = java.net.URLEncoder.encode(fileName, "UTF-8");
+//            } else {
+//                fileName = new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        fileName = URLEncoder.encode(fileName + "-" + DateUtil.dateToStr(LocalDate.now()), "UTF-8").replaceAll("\\+", "%20");
+//        response.setContentType("application/vnd.ms-excel");
+//        response.setCharacterEncoding("UTF-8");
+////        response.setHeader("Content-Disposition",String.format("attachment; filename=\"%s\"", fileName));
+//        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+//    }
+
+//    private static void buildResponse(HttpServletResponse response, String fileName, HttpServletRequest request) throws IOException {
+//        response.setContentType("application/vnd.ms-excel");
+//        response.setCharacterEncoding("utf-8");
+//        // 这里URLEncoder.encode可以防止中文乱码,所有通过后端的文件下载都可以如此处理
+//        fileName = URLEncoder.encode(fileName, "UTF-8");
+//        //建议加上该段,否则可能会出现前端无法获取Content-disposition
+//        response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
+//        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+////        EasyExcel.write(response.getOutputStream(), DownloadData.class).sheet("模板").doWrite(data());
+//    }
+
     /**
      * 解析表头类中的下拉注解
      *

+ 39 - 13
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java

@@ -60,17 +60,17 @@ public class SckwTradeOrder{
     /**
      * 订单交易方式(预付款、货到付款)
      */
-    private Long trading;
+    private String trading;
 
     /**
      * 订单提货方式(采方自提、供应配送)
      */
-    private Long pickupType;
+    private String pickupType;
 
     /**
      * 订单交付类型(签发交付、签收交付)
      */
-    private Long deliveryType;
+    private String deliveryType;
 
     /**
      * 订单开始日期
@@ -95,7 +95,7 @@ public class SckwTradeOrder{
     /**
      * 订单创建来源类型(采购下单/销售代客下单)
      */
-    private Integer source;
+    private String source;
 
     /**
      * 状态
@@ -135,12 +135,8 @@ public class SckwTradeOrder{
     /**
      * 商品类型
      */
-    private Long goodsType;
+    private String goodsType;
 
-    /**
-     * 商品行业
-     */
-    private Long goodsIndustry;
 
     /**
      * 商品尺寸大小
@@ -160,7 +156,7 @@ public class SckwTradeOrder{
     /**
      * 合同主键
      */
-    private Integer contractId;
+    private Long contractId;
 
     /**
      * 合同编号
@@ -217,10 +213,25 @@ public class SckwTradeOrder{
      */
     private String supplyPhone;
 
+    /**
+     * 装货地址名称
+     */
+    private String loadName;
+
     /**
      * 装货地址类型
      */
-    private Long loadType;
+    private String loadType;
+
+    /**
+     * 装货联系人姓名
+     */
+    private String loadContacts;
+
+    /**
+     * 装货联系电话
+     */
+    private String loadPhone;
 
     /**
      * 装货所在地区
@@ -248,9 +259,24 @@ public class SckwTradeOrder{
     private String loadLng;
 
     /**
-     * 卸货地址类型
+     * 装货地址名称
+     */
+    private String unloadName;
+
+    /**
+     * 装货地址类型
+     */
+    private String unloadType;
+
+    /**
+     * 装货联系人姓名
+     */
+    private String unloadContacts;
+
+    /**
+     * 装货联系电话
      */
-    private Long unloadType;
+    private String unloadPhone;
 
     /**
      * 卸货所在地区

+ 9 - 1
sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/utils/RedissonUtils.java

@@ -7,7 +7,9 @@ import org.redisson.client.codec.StringCodec;
 import org.redisson.config.Config;
 
 import java.time.Duration;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 @Slf4j
@@ -267,6 +269,12 @@ public class RedissonUtils {
         }
     }
 
+    public static Long getAtomicLong(String name,Long expired) {
+        RAtomicLong atomicLong = redissonUtils.redissonClient.getAtomicLong(name);
+        atomicLong.expire(expired <= 0 ? Duration.ofSeconds(DEFAULT_EXPIRED) : Duration.ofSeconds(expired));
+        return atomicLong.incrementAndGet();
+    }
+
     public static void main(String[] args) {
         List<String> set = new ArrayList<>();
         set.add("asdsad");

+ 1 - 1
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwBusSum.java

@@ -22,7 +22,7 @@ public class SckwBusSum {
     /**
      * 操作对象(1新增/2修改)
      */
-    private int method;
+    private Integer method;
 
     /**
      * 业务汇总数据对象

+ 1 - 1
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwMessage.java

@@ -60,7 +60,7 @@ public class SckwMessage {
     /**
      * 移动端推送
      */
-    private boolean appPush;
+    private Boolean appPush;
 
     /**
      * 推送设备id

+ 3 - 5
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfDriverController.java

@@ -7,7 +7,6 @@ import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
-import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.easyexcel.RequestHolder;
 import com.sckw.excel.utils.ExcelUtil;
@@ -24,7 +23,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
-
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -70,8 +68,8 @@ public class KwfDriverController {
     }
 
     /**
-     * @param params {page:页数、pageSize:每页条数、。。。}
-     * @desc 分页查询
+     * @param params
+     * @desc 统计
      * @author zk
      * @date 2023/7/6
      **/
@@ -115,7 +113,7 @@ public class KwfDriverController {
      **/
     @PostMapping("/export")
     public HttpResult export(@RequestBody HashMap params) {
-        /**查询分页数据**/
+        /**分页数据**/
         List<KwfDriverVo> drivers = driverService.findPage(params);
 
         if (!CollectionUtils.isEmpty(drivers)) {

+ 175 - 2
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java

@@ -1,7 +1,28 @@
 package com.sckw.fleet.controller;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.page.PageHelperUtil;
+import com.sckw.core.model.page.PageResult;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.excel.easyexcel.RequestHolder;
+import com.sckw.excel.utils.ExcelUtil;
+import com.sckw.fleet.model.*;
+import com.sckw.fleet.model.dto.*;
+import com.sckw.fleet.model.vo.KwfDriverVo;
+import com.sckw.fleet.service.KwfTruckService;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author zk
@@ -11,4 +32,156 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/kwfTruck")
 public class KwfTruckController {
+
+    @Autowired
+    KwfTruckService truckService;
+
+    /**
+     * @param id 主键ID
+     * @desc 根据主键查询
+     * @author zk
+     * @date 2023/7/6
+     **/
+    @GetMapping("/detail")
+    public HttpResult selectByKey(Long id) throws SystemException {
+        //车辆信息
+        KwfTruck truck = truckService.selectByKey(id);
+
+        //车辆行驶证信息
+        KwfTruckLicense truckLicense = truckService.findTruckLicenseByKey(id);
+
+        //车辆道路运输许可证
+        KwfTransportLicense transportLicense = truckService.findTransportLicenseByKey(id);
+
+        //数据组装
+        JSONObject truckJson = JSONObject.parseObject(JSON.toJSONString(truck));
+        truckJson.put("truckLicense", truckLicense);
+        truckJson.put("transportLicense", transportLicense);
+        return HttpResult.ok(truckJson);
+    }
+
+    /**
+     * @param params
+     * @desc 统计
+     * @author zk
+     * @date 2023/7/6
+     **/
+    @PostMapping("/statistics")
+    public HttpResult statistics(@RequestBody HashMap params) throws SystemException {
+        Map countMaps = truckService.statistics(params);
+        return HttpResult.ok(countMaps);
+    }
+
+    /**
+     * @param params {page:页数、pageSize:每页条数、。。。}
+     * @desc 分页查询
+     * @author zk
+     * @date 2023/7/6
+     **/
+    @PostMapping("/select")
+    public HttpResult findPage(@RequestBody HashMap params) throws SystemException {
+        // 设置分页参数
+        PageHelper.startPage(PageResult.getPage(params), PageResult.getPageSize(params));
+        List<KwfDriverVo> list = truckService.findPage(params);
+        PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(list));
+        return HttpResult.ok(pageResult);
+    }
+
+    /**
+     * @param params {。。。}
+     * @desc 查询
+     * @author zk
+     * @date 2023/7/6
+     **/
+    @PostMapping("/findList")
+    public HttpResult findList(@RequestBody HashMap params) throws SystemException {
+        return HttpResult.ok(truckService.findList(params));
+    }
+
+    /**
+     * @param params 查询参数
+     * @description 导出
+     * @author zk
+     * @date 2023/07/11
+     **/
+    @PostMapping("/export")
+    public HttpResult export(@RequestBody HashMap params) {
+        /**查询数据**/
+        List<KwfDriverVo> drivers = truckService.findPage(params);
+
+        if (!CollectionUtils.isEmpty(drivers)) {
+            HttpServletResponse response = RequestHolder.getResponse();
+            ExcelUtil.download(response, KwfDriverVo.class, drivers);
+            return null;
+        }
+        return HttpResult.error("无数据!");
+    }
+
+    /**
+     * @param file 导入文件
+     * @description 导入
+     * @author zk
+     * @date 2023/07/11
+     **/
+    @PostMapping("/import")
+    public HttpResult importExcel(@RequestParam("file") MultipartFile file) {
+        return truckService.importExcel(file);
+    }
+
+    /**
+     * @param params 新增参数
+     * @return HttpResult
+     * @desc 新增用户
+     * @author czh
+     * @date 2023/6/14
+     */
+    @PostMapping("/add")
+    public HttpResult add(@Valid @RequestBody KwfTruckDto params) throws SystemException{
+        return truckService.add(params);
+    }
+
+    /**
+     * @param params {}
+     * @description 更新
+     * @author zk
+     * @date 2023/5/30
+     **/
+    @PostMapping("/update")
+    public HttpResult update(@Valid @RequestBody KwfTruckDto params) throws SystemException {
+        return truckService.update(params);
+    }
+
+    /**
+     * @param {ids:主键ID(多个以逗号隔开)}
+     * @description 删除
+     * @author zk
+     * @date 2023/7/7
+     **/
+    @DeleteMapping("/dels")
+    public HttpResult del(@RequestParam String ids) throws SystemException {
+        return truckService.del(ids);
+    }
+
+    /**
+     * @param params {}
+     * @description 车辆行驶证信息编辑
+     * @author zk
+     * @date 2023/7/7
+     **/
+    @PostMapping("/truckLicenseEdit")
+    public HttpResult truckLicenseEdit(@Valid @RequestBody KwfTruckLicenseDto params) throws SystemException {
+        return truckService.truckLicenseEdit(params);
+    }
+
+    /**
+     * @param params {}
+     * @description 车辆道路运输许可证编辑
+     * @author zk
+     * @date 2023/7/7
+     **/
+    @PostMapping("/transportLicenseEdit")
+    public HttpResult transportLicenseEdit(@Valid @RequestBody KwfTransportLicenseDto params) throws SystemException {
+        return truckService.transportLicenseEdit(params);
+    }
+
 }

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverCardMapper.java

@@ -17,6 +17,6 @@ public interface KwfDriverCardMapper extends BaseMapper<KwfDriverCard> {
      * @param driverId 司机id
      * @return
      */
-    KwfDriverCard findByDriverId(String driverId);
+    KwfDriverCard findByDriverId(Long driverId);
 
 }

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverLicenseMapper.java

@@ -17,5 +17,5 @@ public interface KwfDriverLicenseMapper extends BaseMapper<KwfDriverLicense> {
      * @param driverId 司机id
      * @return
      */
-    KwfDriverLicense findByDriverId(String driverId);
+    KwfDriverLicense findByDriverId(Long driverId);
 }

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverQualificationMapper.java

@@ -17,6 +17,6 @@ public interface KwfDriverQualificationMapper extends BaseMapper<KwfDriverQualif
      * @param driverId 司机id
      * @return
      */
-    KwfDriverQualification findByDriverId(String driverId);
+    KwfDriverQualification findByDriverId(Long driverId);
 
 }

+ 1 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfTransportLicenseMapper.java

@@ -12,4 +12,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KwfTransportLicenseMapper extends BaseMapper<KwfTransportLicense> {
 
+    KwfTransportLicense findByTruckId(Long truckId);
 }

+ 1 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfTruckLicenseMapper.java

@@ -12,4 +12,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KwfTruckLicenseMapper extends BaseMapper<KwfTruckLicense> {
 
+    KwfTruckLicense findByTruckId(Long truckId);
 }

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

@@ -2,8 +2,14 @@ package com.sckw.fleet.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.fleet.model.KwfTruck;
+import com.sckw.fleet.model.vo.KwfDriverVo;
+import com.sckw.fleet.model.vo.KwfTableTopCount;
+import com.sckw.fleet.model.vo.KwfTruckVo;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * @desc 车辆信息 Mapper 接口
  * @author zk
@@ -12,4 +18,24 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KwfTruckMapper extends BaseMapper<KwfTruck> {
 
+    /**
+     * 统计
+     * @param params
+     * @return
+     */
+    List<KwfTableTopCount> statistics(Map<String, Object> params);
+
+    /**
+     * 分页查询
+     * @param params
+     * @return
+     */
+    List<KwfTruckVo> findPage(Map<String, Object> params);
+
+    /**
+     * 查询
+     * @param params
+     * @return
+     */
+    List<Map<String, Object>> findList(Map<String, Object> params);
 }

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfDriverCard.java

@@ -39,7 +39,7 @@ public class KwfDriverCard extends BaseModel {
     /**
      * 证书正面URL地址
      */
-    private String certificateMian;
+    private String certificateMain;
 
     /**
      * 证书反面URL地址

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfDriverLicense.java

@@ -44,7 +44,7 @@ public class KwfDriverLicense extends BaseModel {
     /**
      * 证书正面URL地址
      */
-    private String certificateMian;
+    private String certificateMain;
 
     /**
      * 证书反面URL地址

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfDriverQualification.java

@@ -44,7 +44,7 @@ public class KwfDriverQualification extends BaseModel {
     /**
      * 证书正面URL地址
      */
-    private String certificateMian;
+    private String certificateMain;
 
     /**
      * 证书反面URL地址

+ 3 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTransportLicense.java

@@ -17,9 +17,9 @@ import java.util.Date;
 public class KwfTransportLicense extends BaseModel {
 
     /**
-     * 车牌号
+     * 车辆主键ID
      */
-    private String truckNo;
+    private Long truckId;
 
     /**
      * 道路运输证号
@@ -54,7 +54,7 @@ public class KwfTransportLicense extends BaseModel {
     /**
      * 证书正面URL地址
      */
-    private String certificateMian;
+    private String certificateMain;
 
     /**
      * 证书反面URL地址

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruckEnt.java

@@ -23,6 +23,6 @@ public class KwfTruckEnt extends BaseModel {
     /**
      * 车牌号
      */
-    private String truckNo;
+    private Long truckId;
 
 }

+ 3 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruckLicense.java

@@ -17,9 +17,9 @@ import java.util.Date;
 public class KwfTruckLicense extends BaseModel {
 
     /**
-     * 车牌号
+     * 车辆主键ID
      */
-    private String truckNo;
+    private Long truckId;
 
     /**
      * 车辆识别码
@@ -54,7 +54,7 @@ public class KwfTruckLicense extends BaseModel {
     /**
      * 证书正面URL地址
      */
-    private String certificateMian;
+    private String certificateMain;
 
     /**
      * 证书反面URL地址

+ 3 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverCardDto.java

@@ -17,12 +17,12 @@ public class KwfDriverCardDto {
     /**
      * 主键
      */
-    private String id;
+    private Long id;
 
     /**
      * 司机主键
      */
-    private String driverId;
+    private Long driverId;
 
     /**
      * 身份证号
@@ -46,7 +46,7 @@ public class KwfDriverCardDto {
      * 证书正面URL地址
      */
     @Size(max=100, message = "证书正面URL地址长度不能大于100个字符!")
-    private String certificateMian;
+    private String certificateMain;
 
     /**
      * 证书反面URL地址

+ 3 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverLicenseDto.java

@@ -16,12 +16,12 @@ public class KwfDriverLicenseDto {
     /**
      * 主键
      */
-    private String id;
+    private Long id;
 
     /**
      * 司机主键
      */
-    private String driverId;
+    private Long driverId;
 
     /**
      * 驾驶证号
@@ -50,7 +50,7 @@ public class KwfDriverLicenseDto {
      * 证书正面URL地址
      */
     @Size(max=100, message = "证书正面URL地址长度不能大于100个字符!")
-    private String certificateMian;
+    private String certificateMain;
 
     /**
      * 证书反面URL地址

+ 3 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverQualificationDto.java

@@ -16,12 +16,12 @@ public class KwfDriverQualificationDto {
     /**
      * 主键
      */
-    private String id;
+    private Long id;
 
     /**
      * 司机主键
      */
-    private String driverId;
+    private Long driverId;
 
     /**
      * 从业资格证号
@@ -50,7 +50,7 @@ public class KwfDriverQualificationDto {
      * 证书正面URL地址
      */
     @Size(max=100, message = "证书正面URL地址长度不能大于100个字符!")
-    private String certificateMian;
+    private String certificateMain;
 
     /**
      * 证书反面URL地址

+ 73 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTransportLicenseDto.java

@@ -0,0 +1,73 @@
+package com.sckw.fleet.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc 车辆道路运输许可证
+ * @date 2023/7/12 0012
+ */
+@Data
+public class KwfTransportLicenseDto {
+
+    /**
+     * 车辆道路运输许可证信息主键ID
+     */
+    private Long id;
+
+    /**
+     * 车辆信息主键ID
+     */
+    private Long truckId;
+
+    /**
+     * 道路运输证号
+     */
+    @Size(max=20, message = "道路运输证号不能大于20个字符!")
+    private String roadTranNo;
+
+    /**
+     * 企业名称
+     */
+    @Size(max=20, message = "企业名称长度不能大于20个字符!")
+    private String firmName;
+
+    /**
+     * 经营许可证号
+     */
+    @Size(max=20, message = "经营许可证号长度不能大于20个字符!")
+    private String businessLicenseNo;
+
+    /**
+     * 发证日期
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date grantTime;
+
+    /**
+     * 有效期至
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date expireTime;
+
+    /**
+     * 发证机关单位
+     */
+    @Size(max=20, message = "发证机关单位长度不能大于20个字符!")
+    private String grantUnit;
+
+    /**
+     * 证书正面URL地址
+     */
+    @Size(max=100, message = "证书正面URL地址长度不能大于100个字符!")
+    private String certificateMain;
+
+    /**
+     * 证书反面URL地址
+     */
+    @Size(max=100, message = "证书反面URL地址长度不能大于100个字符!")
+    private String certificateRevolt;
+}

+ 121 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTruckDto.java

@@ -0,0 +1,121 @@
+package com.sckw.fleet.model.dto;
+
+import jakarta.validation.constraints.*;
+import lombok.Data;
+
+import java.util.regex.Matcher;
+
+/**
+ * @author zk
+ * @desc 车辆信息
+ * @date 2023/7/12 0012
+ */
+@Data
+public class KwfTruckDto {
+
+    /**
+     * 车辆信息主键ID
+     */
+    private Long id;
+
+    /**
+     * 车牌号
+     */
+    @NotBlank(message = "车牌号不能为空!")
+    @Size(max=7, message = "车牌号长度不能大于7个字符!")
+    private String truckNo;
+
+    /**
+     * 车辆类型(牵引车、自卸、高栏、平板、厢式、集装箱车、罐车、封闭式、专项作业车、其他)
+     */
+    @Positive(message = "车辆类型格式不正确!")
+    private String type;
+
+    /**
+     * 能源类型(柴油、汽油、电动、氢能、天然气、液化石油气、甲醇、油电混动、油气混动、其他)
+     */
+    @Positive(message = "能源类型格式不正确!")
+    private String energyType;
+
+    /**
+     * 使用性质(营运车、租赁车辆、货运车、危化品运输车、非营运车、其他)
+     */
+    @Positive(message = "使用性质格式不正确!")
+    private String useType;
+
+    /**
+     * 外廓尺寸
+     */
+    @Size(max=10, message = "外廓尺寸长度不能大于10个字符!")
+    private String spec;
+
+    /**
+     * 标准荷载(净重)
+     */
+    @Pattern(regexp = "^1[3456789]\\d{9}$", message = "标准荷载格式不正确!")
+    private Double actualWeight;
+
+    /**
+     * 车辆总质量(毛重)
+     */
+    @Digits(integer=1, fraction=0)
+    private Double grossWeight;
+
+    /**
+     * 皮重
+     */
+    private Double tareWeight;
+
+    /**
+     * 车辆颜色
+     */
+    @Positive(message = "车辆颜色格式不正确!")
+    private String color;
+
+    /**
+     * 环保等级(国标)
+     */
+    @Positive(message = "环保等级格式不正确!")
+    private String eev;
+
+    /**
+     * 挂车号
+     */
+    @Size(max=7, message = "挂车号长度不能大于7个字符!")
+    private String trailerNo;
+
+    /**
+     * 车队id
+     */
+    private Long fleetId;
+
+    /**
+     * 备注
+     */
+    @Size(max=200, message = "remark长度不能大于200个字符!")
+    private String remark;
+
+    /**
+     * 车辆行驶证信息
+     */
+    private KwfTruckLicenseDto truckLicense;
+
+    /**
+     * 车辆道路运输许可证
+     */
+    private KwfTransportLicenseDto transportLicense;
+
+    public static boolean matchs(String regular, String str){
+        java.util.regex.Pattern p = java.util.regex.Pattern.compile(regular);
+        Matcher m = p.matcher(str);
+        boolean isMatch = m.matches();
+        return isMatch;
+    }
+
+    public static void main(String[] args) {
+        String regular = "^[0-9]+(.[0-9]{2})?$";
+        String str = "1.2";
+        boolean bool = matchs(regular, str);
+        System.out.println(bool);
+    }
+}

+ 74 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTruckLicenseDto.java

@@ -0,0 +1,74 @@
+package com.sckw.fleet.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc 车辆行驶证信息
+ * @date 2023/7/12 0012
+ */
+@Data
+public class KwfTruckLicenseDto {
+
+    /**
+     * 车辆行驶证信息主键ID
+     */
+    private Long id;
+
+    /**
+     * 车牌号
+     */
+    private Long truckId;
+
+    /**
+     * 车辆识别码
+     */
+    @Size(max=20, message = "车辆识别码长度不能大于20个字符!")
+    private String vin;
+
+    /**
+     * 车辆行驶证号
+     */
+    @Size(max=20, message = "车辆行驶证号长度不能大于20个字符!")
+    private String drivingNo;
+
+    /**
+     * 车辆所有人
+     */
+    @Size(max=10, message = "车辆所有人长度不能大于10个字符!")
+    private String owner;
+
+    /**
+     * 注册日期
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date regTime;
+
+    /**
+     * 发证日期
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date grantTime;
+
+    /**
+     * 发证机关单位
+     */
+    @Size(max=20, message = "发证机关单位长度不能大于20个字符!")
+    private String grantUnit;
+
+    /**
+     * 证书正面URL地址
+     */
+    @Size(max=100, message = "证书正面URL地址长度不能大于100个字符!")
+    private String certificateMain;
+
+    /**
+     * 证书反面URL地址
+     */
+    @Size(max=100, message = "证书反面URL地址长度不能大于100个字符!")
+    private String certificateRevolt;
+
+}

+ 189 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfTruckVo.java

@@ -0,0 +1,189 @@
+package com.sckw.fleet.model.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc 车辆信息
+ * @date 2023/7/11 0011
+ */
+@Data
+@ExcelContext(fileName = "车辆信息", sheetName = "车辆信息")
+public class KwfTruckVo {
+
+    /**
+     * 车辆信息主键id
+     */
+    @ExcelIgnore
+    private String id;
+
+    /**
+     * 状态
+     */
+    @ExcelIgnore
+    private int status;
+    /**
+     * 状态名称
+     */
+    @ExcelProperty(value = "状态")
+    private int statusName;
+
+    /**
+     * 车牌号
+     */
+    @ExcelProperty(value = "车牌号")
+    private String truckNo;
+
+    /**
+     * 车牌颜色
+     */
+    @ExcelProperty(value = "车牌颜色")
+    private String color;
+
+    /**
+     * 车辆类型
+     */
+    @ExcelProperty(value = "车辆类型")
+    private String truckTypeName;
+
+    /**
+     * 能源类型
+     */
+    @ExcelProperty(value = "能源类型")
+    private String energyTypeName;
+
+    /**
+     * 核定载质量/吨
+     */
+    @ExcelProperty(value = "核定载质量/吨")
+    private String actualWeight;
+
+    /**
+     * 总质量/吨
+     */
+    @ExcelProperty(value = "总质量/吨")
+    private String grossWeight;
+
+    /**
+     * 外廓尺寸
+     */
+    @ExcelProperty(value = "外廓尺寸")
+    private String spec;
+
+    /**
+     * 使用性质
+     */
+    @ExcelProperty(value = "使用性质")
+    private String useTypeName;
+
+    /**
+     * 车辆所有人
+     */
+    @ExcelProperty(value = "车辆所有人")
+    private String owner;
+
+    /**
+     * 车辆识别代码
+     */
+    @ExcelProperty(value = "车辆识别代码")
+    private String vin;
+
+    /**
+     * 注册日期
+     */
+    @ExcelProperty(value = "注册日期")
+    private Date regTime;
+
+    /**
+     * 发证日期
+     */
+    @ExcelProperty(value = "发证日期")
+    private Date grantTime;
+
+    /**
+     * 发证机关
+     */
+    @ExcelProperty(value = "发证机关")
+    private String grantUnit;
+
+    /**
+     * 车辆行驶证号
+     */
+    @ExcelProperty(value = "车辆行驶证号")
+    private String drivingNo;
+
+    /**
+     * 道路运输证号
+     */
+    @ExcelProperty(value = "道路运输证号")
+    private String roadTranNo;
+
+    /**
+     * 业户名称
+     */
+    @ExcelProperty(value = "业户名称")
+    private String tranFirmName;
+
+    /**
+     * 道路运输经营许可证号
+     */
+    @ExcelProperty(value = "道路运输经营许可证号")
+    private String businessLicenseNo;
+
+    /**
+     * 挂车号
+     */
+    @ExcelProperty(value = "挂车号")
+    private String trailerNo;
+
+    /**
+     * 归档单位企业ID
+     */
+    @ExcelIgnore
+    private String entId;
+
+    /**
+     * 归档单位
+     */
+    @ExcelProperty(value = "归档单位")
+    private String firmName;
+
+    /**
+     * 车队班组
+     */
+    @ExcelProperty(value = "车队班组")
+    private String fleetName;
+
+    /**
+     * 创建人
+     */
+    @ExcelIgnore
+    private String createBy;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String createByName;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date crateTime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+    public String getStatusName() {
+        return status == 1 ? "已认证" : status == 2 ? "临时" : "异常";
+    }
+}

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

@@ -114,9 +114,9 @@ public class KwfDriverService {
         /**获取查询数据**/
         List<Long> createBys = new ArrayList<>();
         List<Long> entIds = new ArrayList<>();
-        for (KwfDriverVo driverVo:drivers) {
-            createBys.add(Long.parseLong(driverVo.getCreateBy()));
-            entIds.add(Long.parseLong(driverVo.getEntId()));
+        for (KwfDriverVo driver:drivers) {
+            createBys.add(Long.parseLong(driver.getCreateBy()));
+            entIds.add(Long.parseLong(driver.getEntId()));
         }
         //用户数据集
         createBys = createBys.stream().distinct().collect(Collectors.toList());
@@ -126,17 +126,17 @@ public class KwfDriverService {
         Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
 
         /**数据组装**/
-        for (KwfDriverVo driverVo:drivers) {
-            UserCacheResDto user = users == null ? null : users.get(Long.parseLong(driverVo.getCreateBy()));
-            EntCacheResDto ent = ents == null ? null : ents.get(Long.parseLong(driverVo.getEntId()));
-            driverVo.setCreateByName(user != null ? user.getName() : null);
-            driverVo.setFirmName(ent != null ? ent.getFirmName() : null);
+        for (KwfDriverVo driver:drivers) {
+            UserCacheResDto user = users == null ? null : users.get(Long.parseLong(driver.getCreateBy()));
+            EntCacheResDto ent = ents == null ? null : ents.get(Long.parseLong(driver.getEntId()));
+            driver.setCreateByName(user != null ? user.getName() : null);
+            driver.setFirmName(ent != null ? ent.getFirmName() : null);
         }
         return drivers;
     }
 
     /**
-     * @param params 分页参数
+     * @param params 查询参数
      * @desc 查询
      * @author zk
      * @date 2023/7/6
@@ -180,21 +180,21 @@ public class KwfDriverService {
         /**身份证信息**/
         KwfDriverCardDto driverCardDto = params.getDriverCard();
         if (driverCardDto != null) {
-            driverCardDto.setDriverId(String.valueOf(driver.getId()));
+            driverCardDto.setDriverId(driver.getId());
             driverCardEdit(driverCardDto);
         }
 
         /**司机驾驶证信息**/
         KwfDriverLicenseDto driverLicenseDto = params.getDriverLicense();
         if (driverLicenseDto != null) {
-            driverLicenseDto.setDriverId(String.valueOf(driver.getId()));
+            driverLicenseDto.setDriverId(driver.getId());
             driverLicenseEdit(driverLicenseDto);
         }
 
         /**司机从业资格证**/
         KwfDriverQualificationDto driverQualificationDto = params.getDriverQualification();
         if (driverQualificationDto != null) {
-            driverQualificationDto.setDriverId(String.valueOf(driver.getId()));
+            driverQualificationDto.setDriverId(driver.getId());
             driverQualificationEdit(driverQualificationDto);
         }
 
@@ -234,21 +234,21 @@ public class KwfDriverService {
         /**身份证信息**/
         KwfDriverCardDto driverCardDto = params.getDriverCard();
         if (driverCardDto != null) {
-            driverCardDto.setDriverId(String.valueOf(driver.getId()));
+            driverCardDto.setDriverId(driver.getId());
             driverCardEdit(driverCardDto);
         }
 
         /**司机驾驶证信息**/
         KwfDriverLicenseDto driverLicenseDto = params.getDriverLicense();
         if (driverLicenseDto != null) {
-            driverLicenseDto.setDriverId(String.valueOf(driver.getId()));
+            driverLicenseDto.setDriverId(driver.getId());
             driverLicenseEdit(driverLicenseDto);
         }
 
         /**司机从业资格证**/
         KwfDriverQualificationDto driverQualificationDto = params.getDriverQualification();
         if (driverQualificationDto != null) {
-            driverQualificationDto.setDriverId(String.valueOf(driver.getId()));
+            driverQualificationDto.setDriverId(driver.getId());
             driverQualificationEdit(driverQualificationDto);
         }
         return HttpResult.ok("司机信息修改成功!");
@@ -354,7 +354,7 @@ public class KwfDriverService {
      * @date 2023/7/7
      **/
     public KwfDriverCard findCarByKey(Long key) {
-        return KwfDriverCardDao.findByDriverId(String.valueOf(key));
+        return KwfDriverCardDao.findByDriverId(key);
     }
 
     /**
@@ -391,7 +391,7 @@ public class KwfDriverService {
      * @date 2023/7/7
      **/
     public KwfDriverLicense findLicenseByKey(Long key) {
-        return KwfDriverLicenseDao.findByDriverId(String.valueOf(key));
+        return KwfDriverLicenseDao.findByDriverId(key);
     }
 
     /**
@@ -427,7 +427,7 @@ public class KwfDriverService {
      * @date 2023/7/7
      **/
     public KwfDriverQualification findQualificationByKey(Long key) {
-        return KwfDriverQualificationDao.findByDriverId(String.valueOf(key));
+        return KwfDriverQualificationDao.findByDriverId(key);
     }
 
     /**

+ 364 - 17
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java

@@ -1,12 +1,33 @@
 package com.sckw.fleet.service;
 
+import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.utils.CollectionUtils;
+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.fleet.dao.KwfTransportLicenseMapper;
+import com.sckw.fleet.dao.KwfTruckEntMapper;
+import com.sckw.fleet.dao.KwfTruckLicenseMapper;
 import com.sckw.fleet.dao.KwfTruckMapper;
-import com.sckw.fleet.model.KwfTruck;
+import com.sckw.fleet.model.*;
+import com.sckw.fleet.model.dto.*;
+import com.sckw.fleet.model.vo.KwfTableTopCount;
+import com.sckw.fleet.model.vo.KwfTruckVo;
+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 org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author zk
@@ -18,9 +39,17 @@ public class KwfTruckService {
 
     @Autowired
     KwfTruckMapper truckDao;
+    @Autowired
+    KwfTruckEntMapper truckEntDao;
+    @Autowired
+    KwfTruckLicenseMapper truckLicenseDao;
+    @Autowired
+    KwfTransportLicenseMapper transportLicenseDao;
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
 
     /**
-     * @param key 主键id
+     * @param key 逐渐id
      * @desc 根据主键查询
      * @author zk
      * @date 2023/7/6
@@ -29,45 +58,363 @@ public class KwfTruckService {
         return truckDao.selectById(key);
     }
 
+    /**
+     * @param params 参数
+     * @desc 统计
+     * @author zk
+     * @date 2023/7/11
+     **/
+    public Map statistics(Map<String, Object> params) {
+        /**统计数据**/
+        List<KwfTableTopCount> counts = truckDao.statistics(params);
+        long tatol = 0;
+        for (KwfTableTopCount topCount:counts) {
+            tatol += topCount.getTotal();
+        }
+
+        /**全部数据-处理**/
+        KwfTableTopCount allCount = new KwfTableTopCount();
+        allCount.setValue(String.valueOf(Global.NUMERICAL_ZERO));
+        allCount.setTotal(tatol);
+        counts.add(allCount);
+
+        /**数据组装**/
+        Map tableCount = new HashMap();
+        tableCount.put("tableTop", counts);
+        tableCount.put("tableBottom", tatol);
+        return tableCount;
+    }
+
     /**
      * @param params 分页参数
      * @desc 分页查询
      * @author zk
      * @date 2023/7/6
      **/
-    public List<KwfTruck> findPage(Map<String, Object> params) {
-        return truckDao.selectPage(null, null);
+    public List<KwfTruckVo> findPage(Map<String, Object> params) {
+        /**查询分页数据**/
+        List<KwfTruckVo> trucks = truckDao.findPage(params);
+        if (CollectionUtils.isEmpty(trucks)) {
+            return trucks;
+        }
+
+        /**获取查询数据**/
+        List<Long> createBys = new ArrayList<>();
+        List<Long> entIds = new ArrayList<>();
+        for (KwfTruckVo truck:trucks) {
+            createBys.add(Long.parseLong(truck.getCreateBy()));
+            entIds.add(Long.parseLong(truck.getEntId()));
+        }
+        //用户数据集
+        createBys = createBys.stream().distinct().collect(Collectors.toList());
+        Map<Long, UserCacheResDto> users = remoteSystemService.queryUserCacheMapByIds(createBys);
+        //企业数据集
+        entIds = entIds.stream().distinct().collect(Collectors.toList());
+        Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
+
+        /**数据组装**/
+        for (KwfTruckVo truck:trucks) {
+            UserCacheResDto user = users == null ? null : users.get(Long.parseLong(truck.getCreateBy()));
+            EntCacheResDto ent = ents == null ? null : ents.get(Long.parseLong(truck.getEntId()));
+            truck.setCreateByName(user != null ? user.getName() : null);
+            truck.setFirmName(ent != null ? ent.getFirmName() : null);
+        }
+        return trucks;
     }
 
     /**
-     * @param params 分页参数
+     * @param params 查询参数
      * @desc 查询
      * @author zk
      * @date 2023/7/6
      **/
-    public List<KwfTruck> findList(Map<String, Object> params) {
-        return truckDao.selectPage(null, null);
+    public List<Map<String, Object>> findList(Map<String, Object> params) {
+        return truckDao.findList(params);
     }
 
     /**
-     * @param params 分页参数
-     * @desc 新增司机
+     * @param {}
+     * @description 导出
      * @author zk
-     * @date 2023/7/6
+     * @date 2023/07/11
      **/
-    public HttpResult add(KwfTruck params) {
-        truckDao.insert(params);
+    public HttpResult importExcel(MultipartFile file) {
         return null;
     }
 
     /**
-     * @param params 分页参数
-     * @desc 修改司机
+     * @param params 参数
+     * @desc 新增车辆
      * @author zk
      * @date 2023/7/6
      **/
-    public HttpResult update(KwfTruck params) {
-        truckDao.updateById(params);
-        return null;
+    public HttpResult add(KwfTruckDto params) {
+        /**车辆信息**/
+        KwfTruck truck = new KwfTruck();
+        BeanUtils.copyProperties(params, truck);
+        //证件都有数据则为已认证(前端校验认证数据必填)
+        boolean bool = checkLicense(params);
+        if (bool) {
+            truck.setStatus(Global.NUMERICAL_ONE);
+        } else {
+            truck.setStatus(Global.NUMERICAL_TWO);
+        }
+        HttpResult result = truckEdit(truck);
+        if (result.getCode() != HttpStatus.SUCCESS_CODE) {
+            return result;
+        }
+
+        /**车辆行驶证信息**/
+        KwfTruckLicenseDto truckLicenseDto = params.getTruckLicense();
+        if (truckLicenseDto != null) {
+            truckLicenseDto.setTruckId(truck.getId());
+            truckLicenseEdit(truckLicenseDto);
+        }
+
+        /**车辆行驶证信息**/
+        KwfTransportLicenseDto transportLicenseDto = params.getTransportLicense();
+        if (transportLicenseDto != null) {
+            truckLicenseDto.setTruckId(truck.getId());
+            transportLicenseEdit(transportLicenseDto);
+        }
+
+        /**车辆信息与企业关联信息**/
+        truckEntEdit(truck);
+        return HttpResult.ok("车辆信息新增成功!");
+    }
+
+    /**
+     * @param params 参数
+     * @desc 修改车辆
+     * @author zk
+     * @date 2023/7/6
+     **/
+    public HttpResult update(KwfTruckDto params) {
+        /**数据校验**/
+        if (StringUtils.isBlank(params.getId())) {
+            return HttpResult.error(HttpStatus.PARAMETERS_PATTERN_ERROR_CODE,"车辆信息ID不能为空!");
+        }
+        KwfTruck truck = truckDao.selectById(params.getId());
+        if (truck == null) {
+            return HttpResult.error("车辆信息不存在!");
+        }
+
+        /**车辆信息**/
+        BeanUtils.copyProperties(params, truck);
+        //证件都有数据则为已认证(前端校验认证数据必填)
+        boolean bool = checkLicense(params);
+        if (bool) {
+            truck.setStatus(Global.NUMERICAL_ONE);
+        }
+        HttpResult result = truckEdit(truck);
+        if (result.getCode() != HttpStatus.SUCCESS_CODE) {
+            return result;
+        }
+
+        /**车辆行驶证信息**/
+        KwfTruckLicenseDto truckLicenseDto = params.getTruckLicense();
+        if (truckLicenseDto != null) {
+            truckLicenseDto.setTruckId(truck.getId());
+            truckLicenseEdit(truckLicenseDto);
+        }
+
+        /**车辆行驶证信息**/
+        KwfTransportLicenseDto transportLicenseDto = params.getTransportLicense();
+        if (transportLicenseDto != null) {
+            truckLicenseDto.setTruckId(truck.getId());
+            transportLicenseEdit(transportLicenseDto);
+        }
+        return HttpResult.ok("车辆信息修改成功!");
+    }
+
+    /**
+     * @param {ids:主键ID(多个以逗号隔开)}
+     * @description 删除
+     * @author zk
+     * @date 2023/7/6
+     **/
+    public HttpResult del(String ids) {
+        /**数据校验**/
+        if (StringUtils.isBlank(ids)) {
+            return HttpResult.error("请选择要删除的数据!");
+        }
+
+        /**数据组装**/
+        String[] idArray = ids.split(",");
+        KwfTruckEnt truckEntQuery = new KwfTruckEnt();
+        truckEntQuery.setEntId(LoginUserHolder.getEntId());
+        for (String id : idArray) {
+            truckEntQuery.setTruckId(Long.parseLong(id));
+            KwfTruckEnt truckEnt = truckEntDao.findByTruckEnt(truckEntQuery);
+            if (truckEnt != null) {
+                truckEnt.setDelFlag(Global.YES);
+                if (truckEntDao.updateById(truckEnt) <= 0) {
+                    throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.DELETE_FAIL);
+                }
+            }
+        }
+        return HttpResult.ok("删除成功!");
+    }
+
+    /**
+     * @param params 参数
+     * @desc 更新车辆信息
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public HttpResult truckEdit(KwfTruck params) {
+        if (StringUtils.isBlank(params.getId())) {
+            /**唯一性交易**/
+            List<Map<String, Object>> drivers = truckDao.findList(new HashMap(){{ put("truckNo", params.getTruckNo()); }});
+            if (!CollectionUtils.isEmpty(drivers)) {
+                return HttpResult.error("车牌号已存在!");
+            }
+
+            /**新增**/
+            params.setEntId(LoginUserHolder.getEntId());
+            params.setEntId(params.getEntId() == null ? 1 : params.getEntId());// 暂时处理---------------zk
+            int count = truckDao.insert(params);
+            return count > 0 ? HttpResult.ok() : HttpResult.error("车辆信息新增失败!");
+        } else {
+            /**唯一性交易**/
+            List<Map<String, Object>> drivers = truckDao.findList(new HashMap(){{ put("truckNo", params.getTruckNo()); }});
+            //校验list中对象key值是否存在与value不一致的情况
+            boolean bool = CollectionUtils.listByKeyValueV1(drivers, "id", String.valueOf(params.getId()));
+            if (bool) {
+                return HttpResult.error("车辆信息已存在!");
+            }
+
+            /**更新**/
+            int count = truckDao.updateById(params);
+            return count > 0 ? HttpResult.ok() : HttpResult.error("车辆信息修改失败!");
+        }
+    }
+
+    /**
+     * @param params 参数
+     * @desc 更新车辆行驶证信息
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public HttpResult truckLicenseEdit(KwfTruckLicenseDto params) {
+        /**数据copy**/
+        KwfTruckLicense truckLicense = new KwfTruckLicense();
+        BeanUtils.copyProperties(params, truckLicense);
+
+        /**数据更新**/
+        int count = 0;
+        KwfTruckLicense license = truckLicenseDao.findByTruckId(params.getTruckId());
+        if (license == null) {
+            count = truckLicenseDao.insert(truckLicense);
+        } else {
+            truckLicense.setId(license.getId());
+            count = truckLicenseDao.updateById(truckLicense);
+        }
+
+        /**校验车辆是否有证书并更新状态**/
+        checkLicense(truckLicense.getId());
+        return count > 0 ? HttpResult.ok("车辆行驶证信息修改成功!") : HttpResult.error("车辆行驶证信息修改失败!");
+    }
+
+    /**
+     * @param key 参数
+     * @desc 查询车辆行驶证信息
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public KwfTruckLicense findTruckLicenseByKey(Long key) {
+        return truckLicenseDao.findByTruckId(key);
+    }
+
+    /**
+     * @param params 参数
+     * @desc 更新车辆道路运输许可证
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public HttpResult transportLicenseEdit(KwfTransportLicenseDto params) {
+        /**数据copy**/
+        KwfTransportLicense transportLicense = new KwfTransportLicense();
+        BeanUtils.copyProperties(params, transportLicense);
+
+        /**数据更新**/
+        int count = 0;
+        KwfTransportLicense license = transportLicenseDao.findByTruckId(params.getTruckId());
+        if (license == null) {
+            count = transportLicenseDao.insert(transportLicense);
+            return count > 0 ? HttpResult.ok("车辆驾驶证信息更新成功!") : HttpResult.error("车辆驾驶证信息更新失败!");
+        } else {
+            transportLicense.setId(license.getId());
+            count = transportLicenseDao.updateById(transportLicense);
+        }
+
+        /**校验车辆是否有证书并更新状态**/
+        checkLicense(transportLicense.getTruckId());
+        return count > 0 ? HttpResult.ok("车辆驾驶证信息修改成功!") : HttpResult.error("车辆驾驶证信息修改失败!");
+    }
+
+    /**
+     * @param key 参数
+     * @desc 查询车辆道路运输许可证
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public KwfTransportLicense findTransportLicenseByKey(Long key) {
+        return transportLicenseDao.findByTruckId(key);
+    }
+
+    /**
+     * @param params 参数
+     * @desc 新增车辆信息与企业关联信息
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public void truckEntEdit(KwfTruck params) {
+        KwfTruckEnt truckEnt = new KwfTruckEnt();
+        truckEnt.setTruckId(params.getId());
+        truckEnt.setEntId(params.getEntId());
+        truckEntDao.insert(truckEnt);
+    }
+
+    /**
+     * @param params 参数
+     * @desc 校验车辆是否有证书
+     * @author zk
+     * @date 2023/7/11
+     **/
+    public boolean checkLicense(KwfTruckDto params) {
+        //车辆行驶证信息
+        if (params.getTruckLicense() == null || StringUtils.isBlank(params.getTruckLicense().getDrivingNo())) {
+            return false;
+        }
+        //车辆道路运输许可证
+        if (params.getTransportLicense() == null || StringUtils.isBlank(params.getTransportLicense().getRoadTranNo())) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * @param truckId 车辆主键id
+     * @desc 校验车辆是否有证书并更新状态
+     * @author zk
+     * @date 2023/7/11
+     **/
+    public void checkLicense(Long truckId) {
+        //车辆行驶证信息
+        KwfTruckLicense license = this.findTruckLicenseByKey(truckId);
+        if (license == null || StringUtils.isBlank(license.getDrivingNo())) {
+            return;
+        }
+        //车辆道路运输许可证
+        KwfTransportLicense transportLicense = this.findTransportLicenseByKey(truckId);
+        if (transportLicense == null || StringUtils.isBlank(transportLicense.getRoadTranNo())) {
+            return;
+        }
+        //更新数据
+        KwfTruck truck = new KwfTruck();
+        truck.setId(truckId);
+        truck.setStatus(Global.NUMERICAL_ONE);
+        truckDao.updateById(truck);
     }
 }

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

@@ -4,7 +4,7 @@
 
     <select id="findByDriverId" resultType="com.sckw.fleet.model.KwfDriverCard" parameterType="java.lang.String" >
         SELECT
-            id, driver_id driverId, idcard, expire_time expireTime, address, certificate_mian certificateMian,
+            id, driver_id driverId, idcard, expire_time expireTime, address, certificate_main certificateMain,
             certificate_revolt certificateRevolt, remark, status, create_by createBy, create_time createTime,
             update_by updateBy, update_time updateTime
         from kwf_driver_card

+ 5 - 2
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverEntMapper.xml

@@ -5,8 +5,11 @@
     <select id="findByDriverEnt" resultType="com.sckw.fleet.model.KwfDriverEnt" parameterType="com.sckw.fleet.model.KwfDriverEnt" >
         SELECT
             id, ent_id entId, driver_id driverId, remark, status, create_by createBy,
-            create_time createTime, update_by updateBy, update_time updateTime from kwf_driver_ent
-        where del_flag = 0 and ent_id = #{entId, jdbcType=VARCHAR} and driver_id = #{driverId, jdbcType=VARCHAR}
+            create_time createTime, update_by updateBy, update_time updateTime
+        from kwf_driver_ent
+        where del_flag = 0
+        and ent_id = #{entId, jdbcType=VARCHAR}
+        and driver_id = #{driverId, jdbcType=VARCHAR}
     </select>
 
 </mapper>

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

@@ -5,7 +5,7 @@
     <select id="findByDriverId" resultType="com.sckw.fleet.model.KwfDriverLicense" parameterType="java.lang.String" >
         SELECT
             id, driver_id driverId, driver_no driverNo, type, expire_time expireTime, grant_unit grantUnit,
-            certificate_mian certificateMian, certificate_revolt certificateRevolt, remark, status, create_by createBy,
+            certificate_main certificateMain, certificate_revolt certificateRevolt, remark, status, create_by createBy,
             create_time createTime, update_by updateBy, update_time updateTime
         from kwf_driver_license
         where del_flag = 0 and driver_id = #{driverId, jdbcType=VARCHAR}

+ 12 - 0
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml

@@ -35,6 +35,12 @@
         <if test="fleetName != null and fleetName != ''">
             and fl.name like concat('%',#{fleetName},'%')
         </if>
+        <if test="startTime != null and startTime != '' " >
+            and DATE( dr.create_time) <![CDATA[ >= ]]> #{startTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="endTime != null and endTime != '' " >
+            and DATE( dr.create_time ) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
+        </if>
         <if test="keywords != null and keywords != ''">
             and (
             dr.name like concat('%',#{keyWords},'%')
@@ -83,6 +89,12 @@
         <if test="status != null and status != ''">
             and dr.status = #{status, jdbcType=VARCHAR}
         </if>
+        <if test="startTime != null and startTime != '' " >
+            and DATE( fl.create_time) <![CDATA[ >= ]]> #{startTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="endTime != null and endTime != '' " >
+            and DATE( fl.create_time ) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
+        </if>
         <if test="keywords != null and keywords != ''">
             and (
             dr.name like concat('%',#{keyWords},'%')

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

@@ -5,7 +5,7 @@
     <select id="findByDriverId" resultType="com.sckw.fleet.model.KwfDriverQualification" parameterType="java.lang.String" >
         SELECT
             id, driver_id driverId, quali_no qualiNo, type, expire_time expireTime, grant_unit grantUnit,
-            certificate_mian certificateMian, certificate_revolt certificateRevolt, remark, status, create_by createBy,
+            certificate_main certificateMain, certificate_revolt certificateRevolt, remark, status, create_by createBy,
             create_time createTime, update_by updateBy, update_time updateTime
         from kwf_driver_qualification
         where del_flag = 0 and driver_id = #{driverId, jdbcType=VARCHAR}

+ 6 - 0
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfFleetMapper.xml

@@ -20,6 +20,12 @@
         <if test="phone != null and phone != ''">
             and fl.phone = #{phone, jdbcType=VARCHAR}
         </if>
+        <if test="startTime != null and startTime != '' " >
+            and DATE( fl.create_time) <![CDATA[ >= ]]> #{startTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="endTime != null and endTime != '' " >
+            and DATE( fl.create_time ) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
+        </if>
         <if test="keywords != null and keywords != ''">
             and (
                 fl.name like concat('%',#{keywords},'%')

+ 10 - 0
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTransportLicenseMapper.xml

@@ -2,4 +2,14 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.fleet.dao.KwfTransportLicenseMapper">
 
+    <select id="findByTruckId" resultType="com.sckw.fleet.model.KwfTransportLicense" parameterType="java.lang.String" >
+        SELECT
+            id, truck_id truckId, road_tran_no roadTranNo, firm_name firmName, business_license_no businessLicenseNo,
+            grant_unit grantUnit, grant_time grantTime, expire_time expireTime, certificate_main certificateMain,
+            certificate_revolt certificateRevolt, remark, create_by createBy, create_time createTime, update_by updateBy,
+            update_time updateTime
+        from kwf_transport_license
+        where del_flag = 0 and truck_id = #{truckId, jdbcType=VARCHAR}
+    </select>
+
 </mapper>

+ 6 - 3
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckEntMapper.xml

@@ -4,9 +4,12 @@
 
     <select id="findByTruckEnt" resultType="com.sckw.fleet.model.KwfTruckEnt" parameterType="com.sckw.fleet.model.KwfTruckEnt" >
         SELECT
-        id, ent_id entId, driver_id driverId, remark, status, create_by createBy,
-        create_time createTime, update_by updateBy, update_time updateTime from kwf_driver_ent
-        where del_flag = 0 and ent_id = #{entId, jdbcType=VARCHAR} and driver_id = #{driverId, jdbcType=VARCHAR}
+            id, ent_id entId, truck_id truckId, remark, status, create_by createBy,
+            create_time createTime, update_by updateBy, update_time updateTime
+        from kwf_truck_ent
+        where del_flag = 0
+        and ent_id = #{entId, jdbcType=VARCHAR}
+        and truck_id = #{truckId, jdbcType=VARCHAR}
     </select>
 
 

+ 9 - 0
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckLicenseMapper.xml

@@ -2,4 +2,13 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.fleet.dao.KwfTruckLicenseMapper">
 
+    <select id="findByTruckId" resultType="com.sckw.fleet.model.KwfTruckLicense" parameterType="java.lang.String" >
+        SELECT
+            id, truck_id truckId, vin, driving_no drivingNo, owner, reg_time regTime, grant_unit grantUnit,
+            grant_time grantTime, certificate_main certificateMain, certificate_revolt certificateRevolt,
+            remark, create_by createBy, create_time createTime, update_by updateBy, update_time updateTime
+        from kwf_truck_license
+        where del_flag = 0 and truck_id = #{truckId, jdbcType=VARCHAR}
+    </select>
+
 </mapper>

+ 158 - 0
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckMapper.xml

@@ -2,4 +2,162 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.fleet.dao.KwfTruckMapper">
 
+    <select id="statistics" resultType="com.sckw.fleet.model.vo.KwfTableTopCount" parameterType="java.util.Map" >
+        SELECT
+            tr.`status` value, count(0) total
+        from kwf_truck tr
+        left join kwf_truck_ent tre on tre.truck_id = tr.id
+        left join kwf_truck_license trl on trl.truck_id = tr.id and trl.del_flag = 0
+        left join kwf_transport_license tranl on tranl.truck_id = tr.id and tranl.del_flag = 0
+        left join kwf_fleet_truck flt on flt.id = tr.id and flt.del_flag = 0
+        left join kwf_fleet fl on fl.id = flt.fleet_id and fl.del_flag = 0
+        where tre.del_flag = 0 and tre.del_flag = 0
+        <if test="entId != null and entId != ''">
+            and tre.ent_id = #{entId, jdbcType=VARCHAR}
+        </if>
+        <if test="truckNo != null and truckNo != ''">
+            and tr.truck_no = #{truckNo, jdbcType=VARCHAR}
+        </if>
+        <if test="type != null and type != ''">
+            and tr.type = #{type, jdbcType=VARCHAR}
+        </if>
+        <if test="energyType != null and energyType != ''">
+            and tr.energy_type = #{energyType, jdbcType=VARCHAR}
+        </if>
+        <if test="useType != null and useType != ''">
+            and tr.use_type = #{useType, jdbcType=VARCHAR}
+        </if>
+        <if test="fleetId != null and fleetId != ''">
+            and fl.id = #{fleetId, jdbcType=VARCHAR}
+        </if>
+        <if test="fleetName != null and fleetName != ''">
+            and fl.name like concat('%',#{fleetName},'%')
+        </if>
+        <if test="status != null and status != ''">
+            and tr.status = #{status, jdbcType=VARCHAR}
+        </if>
+        <if test="startTime != null and startTime != '' " >
+            and DATE( tr.create_time) <![CDATA[ >= ]]> #{startTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="endTime != null and endTime != '' " >
+            and DATE( tr.create_time ) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="keywords != null and keywords != ''">
+            and (
+            tr.truck_no like concat('%',#{keyWords},'%')
+            )
+        </if>
+        GROUP BY tr.`status`
+    </select>
+
+    <select id="findPage" resultType="com.sckw.fleet.model.vo.KwfTruckVo" parameterType="java.util.Map" >
+        SELECT
+        tr.id, tre.ent_id entId, tr.truck_no truckNo, tr.type, tr.energy_type energyType, tr.use_type useType,
+        tr.spec, tr.actual_weight actualWeight, tr.gross_weight grossWeight, tr.tare_weight tareWeight,
+        tr.color, tr.eev, tr.trailer_no trailerNo, tr.total_complete totalComplete, tr.total_take totalTake,
+        tr.total_weight totalWeight, tr.business_status businessStatus, tr.remark, tr.status,
+        tr.create_by createBy, tr.create_time createTime, tr.update_by updateBy, tr.update_time updateTime,
+        trl.owner, trl.vin, trl.reg_time regTime, trl.grant_time grantTime, trl.grant_unit grantUnit,
+        trl.driving_no drivingNo, tranl.road_tran_no roadTranNo, tranl.firm_name tranFirmName,
+        tranl.business_license_no businessLicenseNo, fl.`name` fleetName
+        from kwf_truck tr
+        left join kwf_truck_ent tre on tre.truck_id = tr.id
+        left join kwf_truck_license trl on trl.truck_id = tr.id and trl.del_flag = 0
+        left join kwf_transport_license tranl on tranl.truck_id = tr.id and tranl.del_flag = 0
+        left join kwf_fleet_truck flt on flt.id = tr.id and flt.del_flag = 0
+        left join kwf_fleet fl on fl.id = flt.fleet_id and fl.del_flag = 0
+        where tre.del_flag = 0 and tre.del_flag = 0
+        <if test="entId != null and entId != ''">
+            and tre.ent_id = #{entId, jdbcType=VARCHAR}
+        </if>
+        <if test="truckNo != null and truckNo != ''">
+            and tr.truck_no = #{truckNo, jdbcType=VARCHAR}
+        </if>
+        <if test="type != null and type != ''">
+            and tr.type = #{type, jdbcType=VARCHAR}
+        </if>
+        <if test="energyType != null and energyType != ''">
+            and tr.energy_type = #{energyType, jdbcType=VARCHAR}
+        </if>
+        <if test="useType != null and useType != ''">
+            and tr.use_type = #{useType, jdbcType=VARCHAR}
+        </if>
+        <if test="fleetId != null and fleetId != ''">
+            and fl.id = #{fleetId, jdbcType=VARCHAR}
+        </if>
+        <if test="fleetName != null and fleetName != ''">
+            and fl.name like concat('%',#{fleetName},'%')
+        </if>
+        <if test="status != null and status != ''">
+            and tr.status = #{status, jdbcType=VARCHAR}
+        </if>
+        <if test="startTime != null and startTime != '' " >
+            and DATE( tr.create_time) <![CDATA[ >= ]]> #{startTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="endTime != null and endTime != '' " >
+            and DATE( tr.create_time ) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="keywords != null and keywords != ''">
+            and (
+            tr.truck_no like concat('%',#{keyWords},'%')
+            )
+        </if>
+        ORDER BY tr.create_time desc
+    </select>
+
+    <select id="findList" resultType="java.util.Map" parameterType="java.util.Map" >
+        SELECT
+            tr.id, tre.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, tr.remark, tr.status,
+            tr.create_by createBy, tr.create_time createTime, tr.update_by updateBy, tr.update_time updateTime
+        from kwf_truck tr
+        left join kwf_truck_ent tre on tre.truck_id = tr.id
+        where tre.del_flag = 0 and tre.del_flag = 0
+        <if test="entId != null and entId != ''">
+            and tre.ent_id = #{entId, jdbcType=VARCHAR}
+        </if>
+        <if test="truckNo != null and truckNo != ''">
+            and tr.truck_no = #{truckNo, jdbcType=VARCHAR}
+        </if>
+        <if test="type != null and type != ''">
+            and tr.type = #{type, jdbcType=VARCHAR}
+        </if>
+        <if test="energyType != null and energyType != ''">
+            and tr.energy_type = #{energyType, jdbcType=VARCHAR}
+        </if>
+        <if test="useType != null and useType != ''">
+            and tr.use_type = #{useType, jdbcType=VARCHAR}
+        </if>
+        <if test="status != null and status != ''">
+            and tr.status = #{status, jdbcType=VARCHAR}
+        </if>
+        <if test="startTime != null and startTime != '' " >
+            and DATE( tr.create_time) <![CDATA[ >= ]]> #{startTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="endTime != null and endTime != '' " >
+            and DATE( tr.create_time ) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="keywords != null and keywords != ''">
+            and (
+            tr.truck_no like concat('%',#{keyWords},'%')
+            )
+        </if>
+        ORDER BY tr.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,
+            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, tr.remark, tr.status,
+            tr.create_by createBy, tr.create_time createTime, tr.update_by updateBy, tr.update_time updateTime
+        from kwf_truck tr
+        left join kwf_truck_ent tre on tre.truck_id = tr.id
+        where tre.del_flag = 0 and tre.del_flag = 0
+        and tre.ent_id = #{entId, jdbcType=VARCHAR}
+        and tr.id = #{id, jdbcType=VARCHAR}
+    </select>
 </mapper>

+ 117 - 17
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -1,15 +1,15 @@
 package com.sckw.order.controller;
 
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.order.model.vo.req.PurchaseOrderParam;
-import com.sckw.order.model.vo.req.UpdateOrderParam;
-import com.sckw.order.model.vo.req.ValetOrderParam;
+import com.sckw.order.model.vo.req.*;
 import com.sckw.order.serivce.KwoTradeOrderService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.MediaType;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * @desc: 贸易订单相关
  * @author: yzc
@@ -36,30 +36,29 @@ public class KwoTradeOrderController {
     }
 
     /**
-     * @desc: 代客下单草稿
+     * @desc: 采购下单提交
      * @author: yzc
      * @date: 2023-07-07 15:29
-     * @Param valetOrderParam:
+     * @Param purchaseOrderParam:
      * @return: com.sckw.core.web.response.HttpResult
      */
-    @PostMapping(value = "/addValetOrderDraft", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult addValetOrderDraft(@RequestBody ValetOrderParam valetOrderParam) {
-        kwoTradeOrderService.addValetOrderDraft(valetOrderParam);
-        return HttpResult.ok("代客下单草稿保存成功");
+    @PostMapping(value = "/addPurchaseOrderSubmit", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult addPurchaseOrderSubmit(@RequestBody @Validated PurchaseOrderParam purchaseOrderParam) {
+        kwoTradeOrderService.addPurchaseOrderSubmit(purchaseOrderParam);
+        return HttpResult.ok("采购下单提交成功");
     }
 
-
     /**
-     * @desc: 采购下单提交
+     * @desc: 代客下单草稿
      * @author: yzc
      * @date: 2023-07-07 15:29
-     * @Param purchaseOrderParam:
+     * @Param valetOrderParam:
      * @return: com.sckw.core.web.response.HttpResult
      */
-    @PostMapping(value = "/addPurchaseOrderSubmit", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult addPurchaseOrderSubmit(@RequestBody @Validated PurchaseOrderParam purchaseOrderParam) {
-        kwoTradeOrderService.addPurchaseOrderSubmit(purchaseOrderParam);
-        return HttpResult.ok("采购下单提交成功");
+    @PostMapping(value = "/addValetOrderDraft", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult addValetOrderDraft(@RequestBody ValetOrderParam valetOrderParam) {
+        kwoTradeOrderService.addValetOrderDraft(valetOrderParam);
+        return HttpResult.ok("代客下单草稿保存成功");
     }
 
 
@@ -98,7 +97,108 @@ public class KwoTradeOrderController {
     @PostMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult update(@RequestBody @Validated UpdateOrderParam updateOrderParam) {
         kwoTradeOrderService.update(updateOrderParam);
-        return HttpResult.ok("修改成功");
+        return HttpResult.ok("订单修改成功");
+    }
+
+    /**
+     * @desc: 订单受理
+     * @author: yzc
+     * @date: 2023-07-12 11:16
+     * @Param acceptanceOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/acceptanceOrder", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult acceptanceOrder(@RequestBody @Validated AcceptanceOrderParam acceptanceOrderParam) {
+        kwoTradeOrderService.acceptanceOrder(acceptanceOrderParam);
+        return HttpResult.ok("订单受理成功");
+    }
+
+    /**
+     * @desc: 驳回订单
+     * @author: yzc
+     * @date: 2023-07-12 11:22
+     * @Param rejectOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/rejectOrder", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult rejectOrder(@RequestBody @Validated RejectOrderParam rejectOrderParam) {
+        kwoTradeOrderService.rejectOrder(rejectOrderParam);
+        return HttpResult.ok("订单驳回成功");
+    }
+
+    /**
+     * @desc: 驳回订单原因查询
+     * @author: yzc
+     * @date: 2023-07-12 11:22
+     * @Param id:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @GetMapping("/rejectReason")
+    public HttpResult rejectReason(@RequestParam Long id) {
+        return HttpResult.ok(kwoTradeOrderService.rejectReason(id));
+    }
+
+    /**
+     * @desc: 完结订单
+     * @author: yzc
+     * @date: 2023-07-12 17:29
+     * @Param completeOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/completeOrder", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult completeOrder(@RequestBody @Validated CompleteOrderParam completeOrderParam) {
+        kwoTradeOrderService.completeOrder(completeOrderParam);
+        return HttpResult.ok("订单完结成功");
+    }
+
+    /**
+     * @desc: 分页查询
+     * @author: yzc
+     * @date: 2023-07-12 17:31
+     * @Param completeOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/select", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult select(@RequestBody @Validated OrderListSelectParam orderListSelectParam) {
+        return HttpResult.ok(kwoTradeOrderService.select(orderListSelectParam));
+    }
+
+    /**
+     * @desc: 订单统计
+     * @author: yzc
+     * @date: 2023-07-12 17:31
+     * @Param completeOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/statistic", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult statistic(@RequestBody @Validated OrderListStatisticParam orderListStatisticParam) {
+        return HttpResult.ok(kwoTradeOrderService.statistic(orderListStatisticParam));
+    }
+
+    /**
+     * @desc: 订单列表导出
+     * @author: yzc
+     * @date: 2023-07-12 17:32
+     * @Param completeOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/export", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult export(@RequestBody @Validated CompleteOrderParam completeOrderParam) {
+        kwoTradeOrderService.export(completeOrderParam);
+        return HttpResult.ok("订单完结成功");
+    }
+
+    /**
+     * @desc: 批量删除
+     * @author: yzc
+     * @date: 2023-07-12 17:34
+     * @Param ids:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @GetMapping("/batchDelete")
+    public HttpResult batchDelete(@RequestParam List<Long> ids) {
+        kwoTradeOrderService.batchDelete(ids);
+        return HttpResult.ok("订单批量删除成功");
     }
 
 }

+ 5 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrderUnit.java

@@ -39,6 +39,11 @@ public class KwoTradeOrderUnit extends BaseModel {
      */
     private Long entId;
 
+    /**
+     * 顶级企业ID
+     */
+    private Long topEntId;
+
     /**
      * 企业名称
      */

+ 53 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AcceptanceOrderParam.java

@@ -0,0 +1,53 @@
+package com.sckw.order.model.vo.req;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * @desc: 受理订单请求参数
+ * @author: yzc
+ * @date: 2023-07-12 11:08
+ */
+@Getter
+@Setter
+@ToString
+public class AcceptanceOrderParam {
+
+    @NotNull(message = "订单id不能为空")
+    private Long id;
+
+    @NotNull(message = "订单总量不能为空")
+    private BigDecimal amount;
+
+    @NotNull(message = "订单成交单价不能为空")
+    private BigDecimal unitPrice;
+
+    @NotNull(message = "订单金额不能为空")
+    private BigDecimal price;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @NotNull(message = "开始时间不能为空")
+    private LocalDate startTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @NotNull(message = "结束时间不能为空")
+    private LocalDate endTime;
+
+    @NotNull(message = "提货方式不能为空")
+    private String pickupType;
+
+    @NotBlank(message = "交付类型不能为空")
+    private String deliveryType;
+
+    @NotNull(message = "合同信息不能为空")
+    @Valid
+    private ContractInfo contractInfo;
+}

+ 2 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AddressInfo.java

@@ -20,7 +20,7 @@ public class AddressInfo {
      * 地址类型(1装货地址、2卸货地址)
      */
     @NotNull(message = "地址类型不能为空")
-    private Integer addressType;
+    private String addressType;
 
     /**
      * 地址名称
@@ -32,7 +32,7 @@ public class AddressInfo {
      * 地址类型
      */
     @NotNull(message = "地址类型不能为空")
-    private Long type;
+    private String type;
 
     /**
      * 联系人姓名

+ 31 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/CompleteOrderParam.java

@@ -0,0 +1,31 @@
+package com.sckw.order.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.Length;
+
+import java.math.BigDecimal;
+
+/**
+ * @desc: 订单完结请求参数
+ * @author: yzc
+ * @date: 2023-07-12 17:26
+ */
+@Getter
+@Setter
+@ToString
+public class CompleteOrderParam {
+
+    @NotNull(message = "订单id不能为为空")
+    private Long id;
+
+    @NotBlank(message = "实际交付量不能为空")
+    private BigDecimal actualAmount;
+
+    @Length(min = 1, max = 200, message = "驳回原因不能为空且最多200字")
+    private String remark;
+
+}

+ 30 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/ContractInfo.java

@@ -0,0 +1,30 @@
+package com.sckw.order.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * @desc: 合同信息
+ * @author: yzc
+ * @date: 2023-07-12 11:00
+ */
+@Getter
+@Setter
+@ToString
+public class ContractInfo {
+
+    @NotNull(message = "合同id不能为空")
+    private Long contractId;
+
+    @NotBlank(message = "合同编号不能为空")
+    private String contractNo;
+
+    @NotBlank(message = "合同名称不能为空")
+    private String contractName;
+
+    @NotBlank(message = "合同签约方式不能为空")
+    private String contractSigningWay;
+}

+ 84 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/GoodsInfo.java

@@ -0,0 +1,84 @@
+package com.sckw.order.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.math.BigDecimal;
+
+/**
+ * @desc: 商品信息
+ * @author: yzc
+ * @date: 2023-07-12 10:17
+ */
+@Getter
+@Setter
+@ToString
+public class GoodsInfo {
+    /**
+     * 商品id
+     */
+    @NotNull(message = "商品id不能为空")
+    private Long goodsId;
+
+    /**
+     * 商品编号
+     */
+    @NotBlank(message = "商品编号不能为空")
+    private String goodsCode;
+
+    /**
+     * 商品名称
+     */
+    @NotBlank(message = "商品名称不能为空")
+    private String goodsName;
+
+    /**
+     * 商品类型
+     */
+    @NotBlank(message = "商品类型不能为空")
+    private String goodsType;
+
+    /**
+     * 商品发票税率(%)
+     */
+    @NotNull(message = "商品发票税率不能为空")
+    private BigDecimal goodsTaxRate;
+
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    @NotBlank(message = "商品单位不能为空")
+    private String unit;
+    /**
+     * 价格段id
+     */
+    @NotNull(message = "价格段id不能为空")
+    private Long priceRangeId;
+
+    /**
+     * 订单成交单价
+     */
+    @NotNull(message = "订单成交单价不能为空")
+    private BigDecimal unitPrice;
+
+    /**
+     * 商品skuId
+     */
+    private Long skuId;
+
+    /**
+     * 收款单位id
+     */
+    @NotNull(message = "收款单位id不能为空")
+    private Long collectionUnitId;
+
+    /**
+     * 收款单位名称
+     */
+    @NotBlank(message = "收款单位名称不能为空")
+    private String collectionUnit;
+
+}

+ 23 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListExportParam.java

@@ -0,0 +1,23 @@
+package com.sckw.order.model.vo.req;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.List;
+
+/**
+ * @desc: 订单列表导出请求参数
+ * @author: yzc
+ * @date: 2023-07-12 17:41
+ */
+@Getter
+@Setter
+@ToString
+public class OrderListExportParam extends OrderListStatisticParam {
+
+    /**
+     * 订单id集合
+     */
+    private List<Long> ids;
+}

+ 25 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListSelectParam.java

@@ -0,0 +1,25 @@
+package com.sckw.order.model.vo.req;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * @desc: 订单列表分页请求参数
+ * @author: yzc
+ * @date: 2023-07-12 17:38
+ */
+@Getter
+@Setter
+@ToString
+public class OrderListSelectParam extends OrderListStatisticParam {
+
+    /**
+     * 当前页码
+     */
+    private int page = 1;
+    /**
+     * 每页数量
+     */
+    private int pageSize = 10;
+}

+ 72 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListStatisticParam.java

@@ -0,0 +1,72 @@
+package com.sckw.order.model.vo.req;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @desc: 订单列表统计请求参数
+ * @author: yzc
+ * @date: 2023-07-12 17:37
+ */
+@Getter
+@Setter
+@ToString
+public class OrderListStatisticParam {
+
+    /**
+     * 订单类型(1销售订单、2采购订单)
+     */
+    private Integer orderType;
+
+    /**
+     * 订单编号、单位、商品名称(模糊匹配共用)
+     */
+    private String keywords;
+    /**
+     * 创建时间开始(yyyy-MM-dd)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startCreateTime;
+
+    /**
+     * 创建时间结束(yyyy-MM-dd)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endCreateTime;
+
+    /**
+     * 装货地址id集合
+     */
+    private List<Long> shippingAddressIds;
+
+    /**
+     * 装货地址id集合
+     */
+    private List<Long> unloadingAddressIds;
+
+    /**
+     * 交易方式(预付款、货到付款)集合
+     */
+    private List<String> tradings;
+
+    /**
+     * 提货方式(采方自提、供应配送)集合
+     */
+    private List<String> pickupTypes;
+
+    /**
+     * 交付类型(签发交付、签收交付)集合
+     */
+    private List<String> deliveryTypes;
+
+    /**
+     * 下单方式(0自主下单/1代客下单)集合
+     */
+    private List<String> sources;
+
+}

+ 21 - 28
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/PurchaseOrderParam.java

@@ -9,6 +9,7 @@ import jakarta.validation.constraints.Size;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
+import org.hibernate.validator.constraints.Length;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -25,51 +26,35 @@ import java.util.List;
 public class PurchaseOrderParam {
 
     /**
-     * 商品id
+     * 商品信息
      */
-    @NotNull(message = "商品id不能为空")
-    private Long goodsId;
-    /**
-     * 单位(吨、方、箱、件)
-     */
-    @NotBlank(message = "单位不能为空")
-    private String unit;
-    /**
-     * 价格段id
-     */
-    @NotNull(message = "价格段id不能为空")
-    private Long priceRangeId;
-    /**
-     * 商品skuId
-     */
-    private Long skuId;
+    @Valid
+    @NotNull(message = "商品信息不能为空")
+    private GoodsInfo goodsInfo;
+
     /**
      * 订单总量
      */
     @NotNull(message = "订单总量不能为空")
     private BigDecimal amount;
     /**
-     * 商品单价
+     * 订单金额
      */
-    @NotNull(message = "商品单价不能为空")
+    @NotNull(message = "订单金额不能为空")
     private BigDecimal price;
-    /**
-     * 交易方式(预付款、货到付款)
-     */
-    @NotNull(message = "交易方式不能为空")
-    private Long trading;
+
     /**
      * 单位信息
      */
     @NotEmpty(message = "单位信息不能为空")
-    @Size(min = 2,max = 2,message = "单位信息只能有两条")
+    @Size(min = 2, max = 2, message = "单位信息只能有两条")
     @Valid
     private List<UnitInfo> unitInfo;
     /**
      * 地址信息
      */
     @NotEmpty(message = "地址信息不能为空")
-    @Size(min = 2,max = 2,message = "地址信息只能有两条")
+    @Size(min = 2, max = 2, message = "地址信息只能有两条")
     @Valid
     private List<AddressInfo> addressInfo;
     /**
@@ -87,10 +72,18 @@ public class PurchaseOrderParam {
     /**
      * 提货方式(采方自提、供应配送)
      */
-    @NotNull(message = "提货方式不能为空")
-    private Long pickupType;
+    @NotBlank(message = "提货方式不能为空")
+    private String pickupType;
+
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    @NotNull(message = "交易方式不能为空")
+    private String trading;
     /**
      * 备注
      */
+    @Length(max = 200, message = "备注最多支持200字")
     private String remark;
+
 }

+ 25 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/RejectOrderParam.java

@@ -0,0 +1,25 @@
+package com.sckw.order.model.vo.req;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.Length;
+
+/**
+ * @desc: 订单驳回参数
+ * @author: yzc
+ * @date: 2023-07-12 11:18
+ */
+@Getter
+@Setter
+@ToString
+public class RejectOrderParam {
+
+    @NotNull(message = "订单id不能为为空")
+    private Long id;
+
+    @Length(min = 1, max = 200, message = "驳回原因不能为空且最多200字")
+    private String remark;
+
+}

+ 1 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UnitInfo.java

@@ -20,7 +20,7 @@ public class UnitInfo {
      * 单位类型(1销售单位、2采购单位)
      */
     @NotNull(message = "单位类型不能为空")
-    private Integer unitType;
+    private String unitType;
 
     /**
      * 企业id

+ 72 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UpdateOrderParam.java

@@ -1,8 +1,16 @@
 package com.sckw.order.model.vo.req;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
+import org.hibernate.validator.constraints.Length;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
 
 /**
  * @desc: 修改订单请求参数
@@ -14,5 +22,69 @@ import lombok.ToString;
 @ToString
 public class UpdateOrderParam {
 
+    @NotNull(message = "订单id不能为空")
+    private Long id;
+
+    /**
+     * 操作类型0保存、1提交
+     */
+    @NotNull(message = "操作类型不能为空")
+    private Integer operateType;
+
+    /**
+     * 商品信息
+     */
+    private GoodsInfo goodsInfo;
+
+    /**
+     * 订单总量
+     */
+    private BigDecimal amount;
+    /**
+     * 订单金额
+     */
+    private BigDecimal price;
+
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+
+    /**
+     * 提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+
+    /**
+     * 交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+
+    /**
+     * 单位信息
+     */
+    @Size(max = 2, message = "单位信息只能有两条")
+    private List<UnitInfo> unitInfo;
+    /**
+     * 地址信息
+     */
+    @Size(max = 2, message = "地址信息只能有两条")
+    private List<AddressInfo> addressInfo;
+    /**
+     * 开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate startTime;
+    /**
+     * 结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endTime;
+
+    /**
+     * 备注
+     */
+    @Length(max = 200, message = "备注最多支持200字")
+    private String remark;
 
 }

+ 7 - 7
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/ValetOrderParam.java

@@ -1,5 +1,7 @@
 package com.sckw.order.model.vo.req;
 
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
@@ -15,13 +17,11 @@ import lombok.ToString;
 @ToString
 public class ValetOrderParam extends PurchaseOrderParam {
 
-    @NotNull(message = "交付类型不能为空")
-    private Long deliveryType;
+    @NotBlank(message = "交付类型不能为空")
+    private String deliveryType;
 
-    @NotNull(message = "合同id不能为空")
-    private Long contractId;
-
-    @NotNull(message = "合同编号不能为空")
-    private String contractNo;
+    @NotNull(message = "合同信息不能为空")
+    @Valid
+    private ContractInfo contractInfo;
 
 }

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

@@ -1,5 +1,10 @@
 package com.sckw.order.model.vo.res;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sckw.order.model.vo.req.AddressInfo;
+import com.sckw.order.model.vo.req.ContractInfo;
+import com.sckw.order.model.vo.req.GoodsInfo;
+import com.sckw.order.model.vo.req.UnitInfo;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -7,9 +12,10 @@ import lombok.experimental.Accessors;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.util.List;
 
 /**
- * @desc: 订单详情
+ * @desc: 订单详情响应参数
  * @author: yzc
  * @date: 2023-07-07 15:35
  */
@@ -17,7 +23,7 @@ import java.time.LocalDate;
 @Setter
 @ToString
 @Accessors(chain = true)
-public class OrderDetail {
+public class OrderDetailRes {
 
     /**
      * 订单id
@@ -35,38 +41,55 @@ public class OrderDetail {
     private BigDecimal amount;
 
     /**
-     * 单位(吨、方、件、箱、其他)
+     * 订单金额
      */
-    private String unit;
+    private BigDecimal price;
 
     /**
-     * 价格
+     * 商品信息
      */
-    private BigDecimal price;
+    private GoodsInfo goodsInfo;
+
+    /**
+     * 单位信息
+     */
+    private List<UnitInfo> unitInfo;
+
+    /**
+     * 地址信息
+     */
+    private List<AddressInfo> addressInfo;
+
+    /**
+     * 合同信息
+     */
+    private ContractInfo contractInfo;
 
     /**
      * 交易方式(预付款、货到付款)
      */
-    private Long trading;
+    private String trading;
 
     /**
      * 提货方式(采方自提、供应配送)
      */
-    private Long pickupType;
+    private String pickupType;
 
     /**
      * 交付类型(签发交付、签收交付)
      */
-    private Long deliveryType;
+    private String deliveryType;
 
     /**
      * 开始日期
      */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate startTime;
 
     /**
      * 结束日期
      */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate endTime;
 
     /**
@@ -82,6 +105,12 @@ public class OrderDetail {
     /**
      * 订单创建来源类型(采购下单/销售代客下单)
      */
-    private Integer source;
+    private String source;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
 
 }

+ 145 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderListRes.java

@@ -0,0 +1,145 @@
+package com.sckw.order.model.vo.res;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * @desc: 订单列表响应参数
+ * @author: yzc
+ * @date: 2023-07-12 17:45
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class OrderListRes {
+
+    /**
+     * 订单id
+     */
+    private Long id;
+    /**
+     * 订单状态
+     */
+    private String status;
+    /**
+     * 订单编号
+     */
+    private String tOrderNo;
+    /**
+     * 采购单位
+     */
+    private String purchaseUnit;
+    /**
+     * 销售单位
+     */
+    private String saleUnit;
+    /**
+     * 交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+    /**
+     * 提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+    /**
+     * 托运状态
+     */
+    private String consignmentStatus;
+    /**
+     * 下单方式(自主下单/代客下单)
+     */
+    private String source;
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+    /**
+     * 合同id
+     */
+    private Long contractId;
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+    /**
+     * 合同编号
+     */
+    private String contractName;
+    /**
+     * 签约方式(线上签约、线下签约)
+     */
+    private String signingWay;
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String unit;
+    /**
+     * 订单成交单价
+     */
+    private BigDecimal unitPrice;
+    /**
+     * 订单金额
+     */
+    private BigDecimal price;
+    /**
+     * 订单总量
+     */
+    private BigDecimal orderAmount;
+    /**
+     * 订单总量
+     */
+    private BigDecimal amount;
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+    /**
+     * 实际交付量
+     */
+    private BigDecimal actualAmount;
+    /**
+     * 归属项目
+     */
+    private String beLongingProject;
+    /**
+     * 装货地点
+     */
+    private String loadingPlace;
+    /**
+     * 卸货地点
+     */
+    private String unloadingPlace;
+    /**
+     * 计划开始时间
+     */
+    private String startTime;
+    /**
+     * 计划结束时间
+     */
+    private String endTime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String creatByName;
+    /**
+     * 创建时间
+     */
+    private String createTime;
+}

+ 63 - 8
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -1,14 +1,22 @@
 package com.sckw.order.serivce;
 
+import com.sckw.core.common.enums.enums.DictEnum;
+import com.sckw.core.model.vo.TableStatisticRes;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.utils.OrderGenerateUtils;
 import com.sckw.order.dao.KwoTradeOrderMapper;
-import com.sckw.order.model.vo.req.PurchaseOrderParam;
-import com.sckw.order.model.vo.req.UpdateOrderParam;
-import com.sckw.order.model.vo.req.ValetOrderParam;
-import com.sckw.order.model.vo.res.OrderDetail;
+import com.sckw.order.model.KwoTradeOrder;
+import com.sckw.order.model.vo.req.*;
+import com.sckw.order.model.vo.res.OrderDetailRes;
+import com.sckw.order.model.vo.res.OrderListRes;
+import com.sckw.stream.model.SckwBusSum;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * @desc: 交易订单(采购订单/销售订单)service
  * @author: yzc
@@ -20,16 +28,29 @@ import org.springframework.stereotype.Service;
 public class KwoTradeOrderService {
 
     private final KwoTradeOrderMapper kwoTradeOrderMapper;
+    private final StreamBridge streamBridge;
+    private final KwoTradeOrderAddressService kwoTradeOrderAddressService;
+    private final KwoTradeOrderUnitService kwoTradeOrderUnitService;
+    private final KwoTradeOrderGoodsService kwoTradeOrderGoodsService;
+    private final KwoTradeOrderTrackService kwoTradeOrderTrackService;
+
+    private static final String ORDER_NO_PREFIX = "CD";
 
     /**
      * @desc: 采购下单草稿
      * @author: yzc
      * @date: 2023-07-07 15:31
-     * @Param purchaseOrderParam:
+     * @Param param:
      * @return: void
      */
-    public void addPurchaseOrderDraft(PurchaseOrderParam purchaseOrderParam) {
-
+    public void addPurchaseOrderDraft(PurchaseOrderParam param) {
+        KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
+        order.setTOrderNo(OrderGenerateUtils.generateOrderNo("CD")).setSource(DictEnum.TORDER_SOURCE_0.getValue())
+                .setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()));
+        kwoTradeOrderMapper.insert(order);
+        //存MongoD
+        SckwBusSum sckwBusSum = new SckwBusSum();
+        streamBridge.send("sckw-busSum", sckwBusSum);
     }
 
     /**
@@ -72,7 +93,7 @@ public class KwoTradeOrderService {
      * @Param id:
      * @return: com.sckw.order.model.vo.res.OrderDetail
      */
-    public OrderDetail detail(Long id) {
+    public OrderDetailRes detail(Long id) {
         return null;
     }
 
@@ -86,4 +107,38 @@ public class KwoTradeOrderService {
     public void update(UpdateOrderParam updateOrderParam) {
 
     }
+
+    public void acceptanceOrder(AcceptanceOrderParam acceptanceOrderParam) {
+
+    }
+
+    public void rejectOrder(RejectOrderParam rejectOrderParam) {
+
+    }
+
+    public String rejectReason(Long id) {
+        return null;
+    }
+
+    public void completeOrder(CompleteOrderParam completeOrderParam) {
+
+    }
+
+
+    public List<OrderListRes> select(OrderListSelectParam orderListSelectParam) {
+        return null;
+    }
+
+    public TableStatisticRes statistic(OrderListStatisticParam orderListStatisticParam) {
+        return null;
+    }
+
+
+    public void export(CompleteOrderParam completeOrderParam) {
+
+    }
+
+    public void batchDelete(List<Long> ids) {
+
+    }
 }

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

@@ -105,7 +105,7 @@ public class AddGoodsParam {
     /**
      * 备注
      */
-    @Length(max = 100, message = "备注最多支持100字")
+    @Length(max = 200, message = "备注最多支持200字")
     private String remark;
 
     /**

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

@@ -26,11 +26,6 @@ public class UpdateGoodsParam {
     @NotNull(message = "商品id不能为空")
     private Long id;
 
-    /**
-     * 商品状态
-     */
-    @NotNull(message = "商品状态不能为空")
-    private Integer status;
     /**
      * 商品名称
      */
@@ -101,7 +96,7 @@ public class UpdateGoodsParam {
     /**
      * 备注
      */
-    @Length(max = 100, message = "备注最多支持100字")
+    @Length(max = 200, message = "备注最多支持200字")
     private String remark;
 
     /**

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

@@ -14,6 +14,7 @@ import com.sckw.core.model.vo.TableStatisticRes;
 import com.sckw.core.model.vo.TableTop;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.NumberUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.excel.utils.DateUtil;
@@ -94,7 +95,7 @@ public class KwpGoodsService {
         KwpGoods goods = BeanUtils.copyProperties(addGoodsParam, KwpGoods.class);
         Integer cityCode = addGoodsParam.getAddressInfo().getCityCode();
         SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
-        goods.setProvinceCode(area.getProvinceCode()).setEntId(entId)
+        goods.setCode(NumberUtils.createRandomVcode()).setProvinceCode(area.getProvinceCode()).setEntId(entId)
                 .setAddedTime(new Date()).setStatus(GoodsStatusEnum.PUT_ON_SHELVES.getCode());
         kwpGoodsMapper.insert(goods);
         addGoodsOtherInfo(goods.getId(), addGoodsParam);
@@ -201,20 +202,15 @@ public class KwpGoodsService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void update(UpdateGoodsParam param) {
-        if (Objects.equals(param.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())) {
-            judgeParameters(param);
-        }
-        KwpGoods kwpGoods = getGoodsById(param.getId());
-        if (Objects.isNull(kwpGoods)) {
+        KwpGoods goods = getGoodsById(param.getId());
+        if (Objects.isNull(goods)) {
             throw new BusinessException("当前商品不存在!");
         }
-        if (Objects.equals(kwpGoods.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())) {
-            throw new BusinessException("当前商品为上架状态,不可修改!");
-        }
-        KwpGoods goods = BeanUtils.copyProperties(param, KwpGoods.class);
-        if (Objects.equals(param.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())) {
-            goods.setAddedTime(new Date());
+        if (Objects.equals(goods.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())
+                || Objects.equals(goods.getStatus(), GoodsStatusEnum.TAKE_OFF_SHELVES.getCode())) {
+            judgeParameters(param);
         }
+        BeanUtils.copyProperties(param, goods);
         if (Objects.nonNull(param.getAddressInfo())) {
             Integer cityCode = param.getAddressInfo().getCityCode();
             SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);

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

@@ -39,7 +39,7 @@ public class KwTransportController {
      * @param query 查询参数
      * @return
      */
-    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @RequestMapping(value = "/selectList", method = RequestMethod.POST)
     public HttpResult acceptCarriageOrderList(@Validated @RequestBody ConsignOrderQuery query) {
         HttpResult httpResult = new HttpResult();
         try {
@@ -57,7 +57,7 @@ public class KwTransportController {
      * @param query
      * @return
      */
-    @RequestMapping(value = "/statistics", method = RequestMethod.GET)
+    @RequestMapping(value = "/statistics", method = RequestMethod.POST)
     public HttpResult statistics(@Validated @RequestBody ConsignOrderQuery query) {
         try {
             return transportService.statistics(query);
@@ -73,7 +73,7 @@ public class KwTransportController {
      * @param query 查询参数
      * @return
      */
-    @RequestMapping(value = "/export", method = RequestMethod.GET)
+    @RequestMapping(value = "/export", method = RequestMethod.POST)
     public HttpResult export(@Validated @RequestBody ConsignOrderQuery query) {
         HttpServletResponse response = RequestHolder.getResponse();
         List<ConsignOrderVo> list = transportService.export(query);

+ 9 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/common/enums/LogisticsOrderEnum.java

@@ -6,14 +6,17 @@ package com.sckw.transport.common.enums;
  * @date 2023-07-07 14:07:23
  */
 public enum LogisticsOrderEnum {
-    TO_BE_PLANNED(0, "toBePlanned", "0", "待计划"),
+    TO_BE_PLANNED(0, "waitingSigning", "0", "待签约"),
     PENDING_ORDER(1, "pendingOrder", "1", "待接单"),
     WAIT_DELIVERY(2, "waitDelivery", "2", "待派车"),
     IN_TRANSIT(3, "inTransit", "3", "运输中"),
-    WAIT_LOADING(4, "waitLoading", "4", "待装货"),
-    WAIT_UNLOADING(5, "waitUnLoading", "5", "待卸货"),
-    END_LOADING(6, "endLoading", "6", "装货完成"),
-    END_UNLOADING(7, "endUnloading", "7", "卸货完成");
+    //    WAIT_LOADING(4, "waitLoading", "4", "待装货"),
+//    WAIT_UNLOADING(5, "waitUnLoading", "5", "待卸货"),
+    HAVE_FINISHED(4, "haveFinished", "4", "已完成"),
+    HAVE_RECONCILED(5, "haveReconciled", "5", "已对账"),
+    HAVE_ALREADY_SETTLED(6,"haveAlreadySettled","5","已结算"),
+    SEND_BACK(7,"sendBack","5","已退回");
+
     private final Integer code;
     private final String value;
     private final String status;
@@ -50,4 +53,4 @@ public enum LogisticsOrderEnum {
         }
         return null;
     }
-}
+    }

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

@@ -5,13 +5,16 @@ import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.easyexcel.RequestHolder;
 import com.sckw.excel.utils.ExcelUtil;
+import com.sckw.transport.model.dto.OrderTakingDTO;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
-import com.sckw.transport.model.vo.ConsignOrderVo;
+import com.sckw.transport.model.vo.ConsignOrderVO;
 import com.sckw.transport.service.AcceptCarriageOrderService;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
@@ -71,14 +74,23 @@ public class AcceptCarriageOrderController {
         HttpServletResponse response = RequestHolder.getResponse();
         List list = acceptCarriageOrderService.export(query);
         if (CollectionUtils.isNotEmpty(list)){
-            ExcelUtil.download(response, ConsignOrderVo.class, list);
+            ExcelUtil.download(response, ConsignOrderVO.class, list);
             return HttpResult.ok();
         }
         return HttpResult.error("没有可导出的数据");
     }
 
     /**
-     * 承运订单-分包托运s
+     * 承运订单-接单
+     * @param orderDTO
+     * @return
+     */
+    @RequestMapping(value = "/orderTaking", method = RequestMethod.POST)
+    public HttpResult orderTaking(@Validated @RequestBody OrderTakingDTO orderDTO) {
+        return acceptCarriageOrderService.orderTaking(orderDTO);
+    }
+    /**
+     * 承运订单-分包托运
      * @param query 查询参数
      * @return
      */

+ 24 - 49
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java

@@ -2,13 +2,8 @@ package com.sckw.transport.controller;
 
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.excel.easyexcel.RequestHolder;
-import com.sckw.excel.utils.ExcelUtil;
-import com.sckw.transport.model.dto.OrderDto;
-import com.sckw.transport.model.param.ConsignOrderQuery;
-import com.sckw.transport.model.vo.ConsignOrderVo;
+import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.service.ConsignOrderService;
-import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,8 +13,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
-
 /**
  * @author lfdc
  * @description 托运订单controller
@@ -33,84 +26,66 @@ public class ConsignOrderController {
 
     @Autowired
     ConsignOrderService consignOrderService;
-
     /**
-     * 托运订单首页条件查询
+     * 托运订单获取车辆运单
      *
-     * @param query 查询参数
+     * @param orderDto
      * @return
      */
-    @RequestMapping(value = "/list", method = RequestMethod.GET)
-    public HttpResult acceptCarriageOrderList(ConsignOrderQuery query) {
+    @RequestMapping(value = "/getCarWaybillByOrder", method = RequestMethod.POST)
+    public HttpResult getCarWaybillByOrder(@Validated @RequestBody OrderDTO orderDto) {
         try {
-            return consignOrderService.list(query);
+            return consignOrderService.getCarWaybillByOrder(orderDto);
         } catch (Exception e) {
-            log.error("托运订单查询失败:{}", e.getMessage(), e);
+            log.error("托运订单获取车辆运单失败:订单id {},error {} ", orderDto.getId(), e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
 
     /**
-     * 托运订单top统计
+     * 托运订单获取车辆信息
      *
-     * @param query
+     * @param orderDto
      * @return
      */
-    @RequestMapping(value = "/statistics", method = RequestMethod.GET)
-    public HttpResult statistics(ConsignOrderQuery query) {
+    @RequestMapping(value = "/getCarListByOrder", method = RequestMethod.POST)
+    public HttpResult getCarListByOrder(@Validated @RequestBody OrderDTO orderDto) {
         try {
-            return consignOrderService.statistics(query);
+            return consignOrderService.getCarListByOrder(orderDto);
         } catch (Exception e) {
-            log.error("托运订单top统计失败:{}", e.getMessage(), e);
+            log.error("托运订单获取车辆运单失败:订单id {},error {} ", orderDto.getId(), e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
-
     /**
-     * 托运订单导出
+     * 托运订单-撤销托运
      *
-     * @param query 查询参数
-     * @return
-     */
-    @RequestMapping(value = "/export", method = RequestMethod.GET)
-    public HttpResult export(ConsignOrderQuery query) {
-        HttpServletResponse response = RequestHolder.getResponse();
-        List<ConsignOrderVo> list = consignOrderService.export(query);
-        if (!org.springframework.util.CollectionUtils.isEmpty(list)) {
-            ExcelUtil.download(response, ConsignOrderVo.class, list);
-            return null;
-        }
-        return HttpResult.error("没有可导出的数据");
-    }
-
-    /**
-     * 托运订单获取车辆运单
      * @param orderDto
      * @return
      */
-    @RequestMapping(value = "getCarWaybillByOrder",method = RequestMethod.GET)
-    public HttpResult getCarWaybillByOrder( @Validated  @RequestBody OrderDto orderDto){
+    @RequestMapping(value = "/cancelConsign", method = RequestMethod.POST)
+    public HttpResult cancelConsign(@Validated @RequestBody OrderDTO orderDto) {
         try {
-            return consignOrderService.getCarWaybillByOrder(orderDto);
+            return consignOrderService.cancelConsign(orderDto);
         } catch (Exception e) {
-            log.error("托运订单获取车辆运单失败:订单id {},error {} ", e.getMessage(), e);
+            log.error("托运订单-撤销托运运单失败:订单id {},error {} ", orderDto.getId(), e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
 
     /**
-     * 托运订单获取车辆信息
+     * 托运订单-完结订单
+     *
      * @param orderDto
      * @return
      */
-    @RequestMapping(value = "getCarListByOrder",method = RequestMethod.GET)
-    public HttpResult getCarListByOrder(@Validated  @RequestBody OrderDto orderDto){
+    @RequestMapping(value = "/commitOrderFinish", method = RequestMethod.POST)
+    public HttpResult commitOrderFinish(@Validated @RequestBody OrderDTO orderDto) {
         try {
-            return consignOrderService.getCarListByOrder(orderDto);
+            return null;
         } catch (Exception e) {
-            log.error("托运订单获取车辆运单失败:订单id {},error {} ", e.getMessage(), e);
+            log.error("托运订单-撤销托运运单失败:订单id {},error {} ", orderDto.getId(), e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
-
 }

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

@@ -0,0 +1,45 @@
+package com.sckw.transport.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.transport.model.dto.DocumentParamDTO;
+import com.sckw.transport.service.TransportCommonService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author lfdc
+ * @description 运输服务公共接口调用查询Controller
+ * @date 2023-07-12 09:07:42
+ */
+@Slf4j
+@RestController
+@RequestMapping(value = "/kwtTransport")
+public class TransportCommonController {
+    @Autowired
+    private TransportCommonService transportCommonService;
+
+    /**
+     * 获取订单详情-托运订单-承运订单
+     *
+     * @param dto
+     * @return
+     */
+    @RequestMapping(value = "/getOrderDetail", method = RequestMethod.POST)
+    public HttpResult getOrderDetail(@Validated @RequestBody DocumentParamDTO dto) {
+        log.info("获取订单详情参数:{}", JSONObject.toJSONString(dto));
+        try {
+            return transportCommonService.getOrderDetail(dto);
+        } catch (Exception e) {
+            log.error("获取订单详情失败:error {} ", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+}

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

@@ -53,12 +53,12 @@ public class KwoTradeOrder extends BaseModel {
     private Long pickupType;
 
     /**
-     * 开始日期
+     * 计划开始日期
      */
     private LocalDateTime startTime;
 
     /**
-     * 结束日期
+     * 计划结束日期
      */
     private LocalDateTime endTime;
 

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

@@ -96,12 +96,12 @@ public class KwtLogisticsOrder implements Serializable {
     private String goodsPriceUnit;
 
     /**
-     * 开始日期
+     * 计划开始日期
      */
     private Date startTime;
 
     /**
-     * 结束日期
+     * 计划结束日期
      */
     private Date entTime;
 
@@ -131,7 +131,7 @@ public class KwtLogisticsOrder implements Serializable {
     private BigDecimal ignoreAmount;
 
     /**
-     * 亏吨量
+     * 亏吨量(装货量-卸货量)
      */
     private BigDecimal deficitAmount;
 
@@ -158,7 +158,7 @@ public class KwtLogisticsOrder implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

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

@@ -93,7 +93,7 @@ public class KwtLogisticsOrderAddress implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

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

@@ -15,7 +15,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_logistics_order_address")
+@TableName("sckw_transport.kwt_logistics_order_circulate")
 public class KwtLogisticsOrderCirculate implements Serializable {
     /**
      * 主键
@@ -77,7 +77,7 @@ public class KwtLogisticsOrderCirculate implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

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

@@ -38,7 +38,7 @@ public class KwtLogisticsOrderContract implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 6 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderGoods.java

@@ -36,6 +36,11 @@ public class KwtLogisticsOrderGoods implements Serializable {
      */
     private Long goodsId;
 
+    /**
+     * 货物名称
+     */
+    private String goodsName;
+
     /**
      * sku
      */
@@ -49,7 +54,7 @@ public class KwtLogisticsOrderGoods implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

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

@@ -34,7 +34,7 @@ public class KwtLogisticsOrderTrack implements Serializable {
     /**
      * 用户状态(待受理、待运输、运输中、已完成、已取消)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

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

@@ -61,7 +61,7 @@ public class KwtLogisticsOrderUnit implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

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

@@ -15,7 +15,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_logistics_order_address")
+@TableName("sckw_transport.kwt_waybill_order")
 public class KwtWaybillOrder implements Serializable {
     /**
      * 主键
@@ -36,6 +36,7 @@ public class KwtWaybillOrder implements Serializable {
      * 编号
      */
     private String wOrderNo;
+
     private String type;
 
     /**
@@ -76,7 +77,7 @@ public class KwtWaybillOrder implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

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

@@ -14,7 +14,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_logistics_order_address")
+@TableName("sckw_transport.kwt_waybill_order_ticket")
 public class KwtWaybillOrderTicket implements Serializable {
     /**
      * 主键
@@ -59,7 +59,7 @@ public class KwtWaybillOrderTicket implements Serializable {
     /**
      * 用户状态(0正常、1已锁)
      */
-    private Integer status = 0;
+    private Integer status;
 
     private Long createBy;
 

+ 4 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderTrack.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.model;
 
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
@@ -12,7 +13,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_logistics_order_address")
+@TableName("sckw_transport.kwt_waybill_order_track")
 public class KwtWaybillOrderTrack implements Serializable {
     /**
      * 主键
@@ -48,7 +49,8 @@ public class KwtWaybillOrderTrack implements Serializable {
     /**
      * 是否删除(0未删除,1删除)
      */
-    private Integer delFlag;
+    @TableLogic("0")
+    private Integer delFlag = 0;
 
     private static final long serialVersionUID = 1L;
 }

+ 27 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/DocumentParamDTO.java

@@ -0,0 +1,27 @@
+package com.sckw.transport.model.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 单据dto用于查询
+ * @date 2023-07-12 09:07:35
+ */
+@Data
+public class DocumentParamDTO {
+    /**
+     * 数据库主键id
+     */
+    @NotBlank(message = "id不能为空")
+    private String id;
+    /**
+     * 单据号
+     */
+    private String documentNo;
+    /**
+     * 单据类型(销售订单:0;采购订单:1;承运订单:3;托运订单:4)
+     */
+    @NotBlank(message = "单据类型不能为空")
+    private String documentType;
+}

+ 22 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderDTO.java

@@ -0,0 +1,22 @@
+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 单据数据
+ * @date 2023-07-10 08:07:52
+ */
+@Data
+@Accessors(chain = true)
+public class OrderDTO {
+    @JsonProperty("orderNo")
+    @NotNull(message = "单据编号不能为空")
+    private String orderNo;
+    @JsonProperty("id")
+    @NotNull(message = "数据id不能为空")
+    private String id;
+}

+ 0 - 19
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderDto.java

@@ -1,19 +0,0 @@
-package com.sckw.transport.model.dto;
-
-import jakarta.validation.constraints.NotBlank;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * @author lfdc
- * @description 单据数据
- * @date 2023-07-10 08:07:52
- */
-@Data
-@Accessors(chain = true)
-public class OrderDto {
-    @NotBlank(message = "单据编号不能为空")
-    private String orderNo;
-    @NotBlank(message = "数据id不能为空")
-    private String id;
-}

+ 38 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderTakingDTO.java

@@ -0,0 +1,38 @@
+package com.sckw.transport.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 操作订单-接单操作
+ * @date 2023-07-12 15:07:32
+ */
+@Data
+public class OrderTakingDTO {
+    /**
+     * 单据号
+     */
+    @NotNull(message = "单据号不能为空")
+    @JsonProperty(value = "lOrderNo")
+    private String lOrderNo;
+    /**
+     * 数据主键id
+     */
+    @NotNull(message = "主键id不能为空")
+    @JsonProperty(value = "lOrderId")
+    private String lOrderId;
+    /**
+     * 是否接单的类型(true:接受;false:拒绝)
+     */
+    @NotNull(message = "接单类型不能为空")
+    @JsonProperty(value = "type")
+    private Boolean type;
+    /**
+     * 驳回时填写原因
+     */
+    @JsonProperty(value = "remark")
+    private String remark;
+
+}

+ 12 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java

@@ -1,10 +1,14 @@
 package com.sckw.transport.model.param;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 /**
  * @author lfdc
@@ -149,13 +153,18 @@ public class LogisticsConsignmentParam {
      */
     private String priceType;
     /**
-     * 计划货时间
+     * 计划货时间
      */
-    private String receiveGoodsDateTime;
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    private String receiveGoodsDateTime;
+    private Date receiveGoodsDateTime;
     /**
      * 计划发货时间
      */
-    private String shipmentsDateTime;
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date shipmentsDateTime;
     /**
      * 税率
      */

+ 3 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/AcceptCarriageOrderVo.java → sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/AcceptCarriageOrderVO.java

@@ -10,7 +10,7 @@ import java.util.List;
  * @date 2023-06-27 10:06:30
  */
 @Data
-public class AcceptCarriageOrderVo {
+public class AcceptCarriageOrderVO {
     /**
      * 状态
      */
@@ -120,7 +120,7 @@ public class AcceptCarriageOrderVo {
      */
     private String plannedDate;
 
-    private List<CarWaybillVo> carWaybillList;
-    private List<ConsignmentVo> consignmentList;
+    private List<CarWaybillVO> carWaybillList;
+    private List<ConsignmentVO> consignmentList;
 
 }

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarDataVo.java → sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarDataVO.java

@@ -10,7 +10,7 @@ import lombok.experimental.Accessors;
  */
 @Data
 @Accessors(chain = true)
-public class CarDataVo {
+public class CarDataVO {
     /**
      * 司机姓名
      */

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

@@ -10,7 +10,8 @@ import lombok.experimental.Accessors;
  */
 @Data
 @Accessors(chain = true)
-public class CarWaybillVo {
+public class CarWaybillVO {
+    private String id;
 
     /**
      * 运单编号

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/ConsignOrderVo.java → sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/ConsignOrderVO.java

@@ -11,7 +11,7 @@ import java.io.Serializable;
  * @date 2023-07-07 09:07:06
  */
 @Data
-public class ConsignOrderVo extends PageResult implements Serializable {
+public class ConsignOrderVO extends PageResult implements Serializable {
     /**
      * 结算周期
      */

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/ConsignmentVo.java → sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/ConsignmentVO.java

@@ -8,7 +8,7 @@ import lombok.Data;
  * @date 2023-06-27 11:06:08
  */
 @Data
-public class ConsignmentVo {
+public class ConsignmentVO {
     /**
      * 状态
      */

+ 133 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java

@@ -0,0 +1,133 @@
+package com.sckw.transport.model.vo;
+
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 订单详情vo
+ * @date 2023-07-12 09:07:57
+ */
+@Data
+public class OrderDetailVO {
+    private String id;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+    /**
+     * 承运单位
+     */
+    private String carrierCompany;
+    /**
+     * 承运联系人
+     */
+    private String carrierContacts;
+    /**
+     * 承运联系电话
+     */
+    private String carrierPhone;
+    /**
+     * 收款单位
+     */
+    private String collectionCompany;
+    /**
+     * 托运单位
+     */
+    private String consignCompany;
+    /**
+     * 托运联系人
+     */
+    private String consignContacts;
+    /**
+     * 托运联系电话
+     */
+    private String consignPhone;
+    /**
+     * 扣亏损值
+     */
+    private String deduct;
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+    /**
+     * 合理亏损
+     */
+    private String loss;
+    /**
+     * 任务总量
+     */
+    private String number;
+    /**
+     * 订单金额
+     */
+    private String orderAmount;
+    /**
+     * 已履约量
+     */
+    private String performanceAmount;
+    /**
+     * 运价
+     */
+    private String price;
+    /**
+     * 计划结束时间
+     */
+    private String scheduleEndTime;
+    /**
+     * 计划开始时间
+     */
+    private String scheduleStartTime;
+    /**
+     * 结算周期
+     */
+    private String settlementCycle;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 合同id
+     */
+    private String contractId;
+    /**
+     * 合同名称
+     */
+    private String contractName;
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+    /**
+     * 装货地址
+     */
+    private String loadAddress;
+    /**
+     * 装货联系人
+     */
+    private String loadContacts;
+    /**
+     * 装货联系电话
+     */
+    private String loadPhone;
+    /**
+     * 装货详细地址
+     */
+    private String loadAddressDetail;
+    /**
+     * 装货详细地址
+     */
+    private String unloadAddress;
+    /**
+     * 卸货联系人
+     */
+    private String unloadContacts;
+    /**
+     * 卸货联系电话
+     */
+    private String unloadPhone;
+    /**
+     * 卸货详细地址
+     */
+    private String unloadAddressDetail;
+}

+ 80 - 21
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -1,18 +1,34 @@
 package com.sckw.transport.service;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
+import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.transport.common.enums.LogisticsOrderEnum;
+import com.sckw.transport.dao.KwtLogisticsOrderMapper;
+import com.sckw.transport.dao.KwtLogisticsOrderTrackMapper;
+import com.sckw.transport.model.KwtLogisticsOrder;
+import com.sckw.transport.model.KwtLogisticsOrderTrack;
+import com.sckw.transport.model.dto.OrderDTO;
+import com.sckw.transport.model.dto.OrderTakingDTO;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
-import com.sckw.transport.model.vo.AcceptCarriageOrderVo;
-import com.sckw.transport.model.vo.CarWaybillVo;
-import com.sckw.transport.model.vo.ConsignmentVo;
+import com.sckw.transport.model.vo.AcceptCarriageOrderVO;
+import com.sckw.transport.model.vo.CarWaybillVO;
+import com.sckw.transport.model.vo.ConsignmentVO;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -24,29 +40,27 @@ import java.util.List;
 @Service
 public class AcceptCarriageOrderService {
 
+    @Autowired
+    private KwtLogisticsOrderMapper logisticsOrderMapper;
+
+    @Autowired
+    private KwtLogisticsOrderTrackMapper logisticsOrderTrackMapper;
+
     public HttpResult list(AcceptCarriageOrderQuery query) {
-        List<AcceptCarriageOrderVo> list=new ArrayList<>();
-        AcceptCarriageOrderVo acceptCarriageOrderVo = new AcceptCarriageOrderVo();
-        List<CarWaybillVo> carWaybillVoList = new ArrayList<>();
-        CarWaybillVo carWaybillVo=new CarWaybillVo();
-        carWaybillVoList.add(carWaybillVo);
-        List<ConsignmentVo> consignmentVos = new ArrayList<>();
-        ConsignmentVo consignmentVo=new ConsignmentVo();
-        consignmentVos.add(consignmentVo);
-        acceptCarriageOrderVo.setCarWaybillList(carWaybillVoList);
-        acceptCarriageOrderVo.setConsignmentList(consignmentVos);
+        List<AcceptCarriageOrderVO> list = new ArrayList<>();
+        AcceptCarriageOrderVO acceptCarriageOrderVo = new AcceptCarriageOrderVO();
+        List<CarWaybillVO> carWaybillVOList = new ArrayList<>();
+        CarWaybillVO carWaybillVo = new CarWaybillVO();
+        carWaybillVOList.add(carWaybillVo);
+        List<ConsignmentVO> consignmentVOS = new ArrayList<>();
+        ConsignmentVO consignmentVo = new ConsignmentVO();
+        consignmentVOS.add(consignmentVo);
+        acceptCarriageOrderVo.setCarWaybillList(carWaybillVOList);
+        acceptCarriageOrderVo.setConsignmentList(consignmentVOS);
         list.add(acceptCarriageOrderVo);
         PageHelper.startPage(query.getPage(), query.getPageSize());
         PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(list));
         return HttpResult.ok(pageResult);
-//        Map<String,Object> map=new HashMap<>();
-//        map.put("data",pageResult);
-//        Map<String,Object> map1=new HashMap<>();
-//        map1.put("data1","1");
-//        map1.put("data12","12");
-//        map1.put("data13","13");
-//        map.put("statistics",map1);
-//        return HttpResult.ok(map);
     }
 
     public HttpResult count(AcceptCarriageOrderQuery query) {
@@ -60,4 +74,49 @@ public class AcceptCarriageOrderService {
     public List export(AcceptCarriageOrderQuery query) {
         return null;
     }
+
+    public List acceptOrder(OrderDTO orderDTO) {
+
+        return null;
+    }
+
+    /**
+     * 是否接单
+     *
+     * @param orderDTO
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResult orderTaking(OrderTakingDTO orderDTO) {
+        log.info("接单操作接收数据:{}", JSONObject.toJSONString(orderDTO));
+        HttpResult result = new HttpResult();
+        result.setCode(HttpStatus.SUCCESS_CODE);
+        KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
+                .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
+                .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId()));
+        if (logisticsOrder == null) {
+            result.setMsg("单据不存在!");
+        }
+        if (orderDTO.getType()) {
+            logisticsOrderTrackMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderTrack>()
+                    .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrderTrack::getLOrderId, orderDTO.getLOrderId())
+                    .set(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.WAIT_DELIVERY.getCode())
+                    .set(KwtLogisticsOrderTrack::getUpdateBy, LoginUserHolder.getUserId())
+                    .set(KwtLogisticsOrderTrack::getUpdateTime, new Date()));
+        } else {
+            logisticsOrderTrackMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderTrack>()
+                    .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrderTrack::getLOrderId, orderDTO.getLOrderId())
+                    .set(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.SEND_BACK.getCode())
+                    .set(KwtLogisticsOrderTrack::getUpdateBy, LoginUserHolder.getUserId())
+                    .set(StringUtils.isNotBlank(orderDTO.getRemark()), KwtLogisticsOrderTrack::getRemark, orderDTO.getRemark())
+                    .set(KwtLogisticsOrderTrack::getUpdateTime, new Date()));
+        }
+        logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
+                .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
+                .set(KwtLogisticsOrder::getUpdateTime, new Date())
+                .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId()));
+        return result;
+    }
 }

+ 82 - 42
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.utils.CollectionUtils;
@@ -10,15 +11,16 @@ import com.sckw.excel.utils.DateUtil;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
-import com.sckw.transport.model.dto.OrderDto;
+import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.model.param.ConsignOrderQuery;
-import com.sckw.transport.model.vo.CarDataVo;
-import com.sckw.transport.model.vo.CarWaybillVo;
-import com.sckw.transport.model.vo.ConsignOrderVo;
+import com.sckw.transport.model.vo.CarDataVO;
+import com.sckw.transport.model.vo.CarWaybillVO;
+import com.sckw.transport.model.vo.ConsignOrderVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
@@ -74,35 +76,34 @@ public class ConsignOrderService {
         return null;
     }
 
-    public List<ConsignOrderVo> export(ConsignOrderQuery query) {
-        return new ArrayList<ConsignOrderVo>();
+    public List<ConsignOrderVO> export(ConsignOrderQuery query) {
+        return new ArrayList<ConsignOrderVO>();
     }
 
-    public HttpResult getCarWaybillByOrder(OrderDto orderDto) {
-        List<CarWaybillVo> returnList = new ArrayList<>();
-        CarWaybillVo carWaybillVo = new CarWaybillVo();
+    public HttpResult getCarWaybillByOrder(OrderDTO orderDto) {
+        List<CarWaybillVO> returnList = new ArrayList<>();
         KwtLogisticsOrder order = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                .eq(StringUtils.isNotBlank(orderDto.getId()), KwtLogisticsOrder::getId, Long.parseLong(orderDto.getOrderNo()))
+                .eq(StringUtils.isNotBlank(orderDto.getId()), KwtLogisticsOrder::getId, Long.parseLong(orderDto.getId()))
                 .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
-                .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())
-                .eq(KwtLogisticsOrder::getDelFlag, NumberConstant.ZERO));
+                .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId()));
         if (ObjectUtils.isEmpty(order)) {
             return HttpResult.ok(returnList);
         }
         List<KwtWaybillOrder> kwtWaybillOrders = kwtWaybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
                 .eq(StringUtils.isNotBlank(order.getId()), KwtWaybillOrder::getLOrderId, order.getId())
-                .eq(StringUtils.isNotBlank(orderDto.getOrderNo()), KwtWaybillOrder::getLOrderId, orderDto.getOrderNo()));
+                .eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId()));
         if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
             for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
-                KwtWaybillOrderTrack kwtWaybillOrderTrack = kwtWaybillOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
+                CarWaybillVO carWaybillVo = new CarWaybillVO();
+                KwtWaybillOrderTrack track = kwtWaybillOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
                         .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTrack::getWOrderId, kwtWaybillOrder.getId()));
-                KwtWaybillOrderTicket loadKwtWaybillOrderTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
+                KwtWaybillOrderTicket loadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
                         .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
                         .eq(KwtWaybillOrderTicket::getType, NumberConstant.ONE));
-                KwtWaybillOrderTicket unloadKwtWaybillOrderTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
+                KwtWaybillOrderTicket unloadTicket = kwtWaybillOrderTicketMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
                         .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
                         .eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
-                KwtLogisticsOrderCirculate kwtLogisticsOrderCirculate = kwtLogisticsOrderCirculateMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderCirculate>()
+                KwtLogisticsOrderCirculate circulate = kwtLogisticsOrderCirculateMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderCirculate>()
                         .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtLogisticsOrderCirculate::getLOrderId, kwtWaybillOrder.getId())
                         .eq(KwtLogisticsOrderCirculate::getEntId, order.getEntId()));
                 //扣亏量/吨->亏吨量-合理损耗
@@ -110,42 +111,58 @@ public class ConsignOrderService {
                 if (kwtWaybillOrder.getDeficitAmount() != null && (kwtWaybillOrder.getDeficitAmount().compareTo(new BigDecimal(NumberConstant.ZERO)) == NumberConstant.ZERO)) {
                     deduct = kwtWaybillOrder.getDeficitAmount().subtract(order.getLoss() == null ? new BigDecimal(NumberConstant.ZERO) : order.getLoss());
                 }
-                carWaybillVo.setWaybillNumber(order.getLOrderNo())
-                        .setTruckNo(kwtWaybillOrder.getTruckNo())
-                        .setStatus(kwtWaybillOrderTrack == null ? null : String.valueOf(kwtWaybillOrderTrack.getStatus()))
-                        .setWaybillType(kwtWaybillOrder.getType())
-                        //todo 调用司机服务 dubbo
-                        .setDriverName(null)
-                        //todo 取mongo
-                        .setConsignMotorcade(null)
-                        .setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()))
-                        .setSendCarDate(DateUtil.getDateTime(kwtLogisticsOrderCirculate.getEntrustDate()))
-                        .setStowageWeigh(loadKwtWaybillOrderTicket.getAmount() == null ? null : String.valueOf(loadKwtWaybillOrderTicket.getAmount()))
-                        .setStowageDate(DateUtil.getDateTime(loadKwtWaybillOrderTicket.getCreateTime()))
-                        .setUnloadDate(DateUtil.getDateTime(unloadKwtWaybillOrderTicket.getCreateTime()))
-                        .setUnloadWeigh(unloadKwtWaybillOrderTicket.getAmount() == null ? null : String.valueOf(loadKwtWaybillOrderTicket.getAmount()))
-                        /**亏吨量/吨->装货量-卸货量
-                         扣亏量/吨->亏吨量-合理损耗*/
-                        .setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()))
-                        .setDeduct(String.valueOf(deduct))
-                        .setAppointor(remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()).getName());
+                carWaybillVo.setId(String.valueOf(kwtWaybillOrder.getId()));
+                carWaybillVo.setWaybillNumber(order.getLOrderNo());
+                carWaybillVo.setTruckNo(kwtWaybillOrder == null ? null : kwtWaybillOrder.getTruckNo());
+                carWaybillVo.setStatus(track == null ? null : String.valueOf(track.getStatus()));
+                carWaybillVo.setWaybillType(kwtWaybillOrder.getType());
+                //todo 调用司机服务 dubbo
+                carWaybillVo.setDriverName(null);
+                //todo 取mongo
+                carWaybillVo.setConsignMotorcade(null);
+                carWaybillVo.setSendCarWeigh(kwtWaybillOrder.getEntrustAmount() == null ? null : String.valueOf(kwtWaybillOrder.getEntrustAmount()));
+                if (circulate != null) {
+                    carWaybillVo.setSendCarDate(circulate.getCreateTime() == null ? null : DateUtil.getDateTime(circulate.getCreateTime()));
+                } else {
+                    carWaybillVo.setSendCarDate(null);
+                }
+                if (loadTicket != null) {
+                    carWaybillVo.setStowageWeigh(loadTicket.getAmount() == null ? null : String.valueOf(loadTicket.getAmount()));
+                    carWaybillVo.setStowageDate(loadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(loadTicket.getCreateTime()));
+                } else {
+                    carWaybillVo.setSendCarWeigh(null);
+                    carWaybillVo.setStowageDate(null);
+                }
+                if (unloadTicket != null) {
+                    carWaybillVo.setUnloadWeigh(unloadTicket.getAmount() == null ? null : String.valueOf(unloadTicket.getAmount()));
+                    carWaybillVo.setUnloadDate(unloadTicket.getCreateTime() == null ? null : DateUtil.getDateTime(unloadTicket.getCreateTime()));
+                } else {
+                    carWaybillVo.setUnloadWeigh(null);
+                    carWaybillVo.setUnloadDate(null);
+                }
+                /**亏吨量/吨->装货量-卸货量
+                 扣亏量/吨->亏吨量-合理损耗*/
+                carWaybillVo.setDefectiveWeigh(kwtWaybillOrder.getDeficitAmount() == null ? null : String.valueOf(kwtWaybillOrder.getDeficitAmount()));
+                carWaybillVo.setDeduct(String.valueOf(deduct));
+                carWaybillVo.setAppointor(remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()) == null ?
+                        String.valueOf(kwtWaybillOrder.getCreateBy()) : remoteSystemService.queryUserCacheById(kwtWaybillOrder.getCreateBy()).getName());
                 returnList.add(carWaybillVo);
             }
         }
         return HttpResult.ok(returnList);
     }
 
-    public HttpResult getCarListByOrder(OrderDto orderDto) {
+    public HttpResult getCarListByOrder(OrderDTO orderDto) {
         KwtWaybillOrder waybillOrder = kwtWaybillOrderMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrder>()
-                .eq(KwtWaybillOrder::getId, orderDto.getId())
+                .eq(KwtWaybillOrder::getLOrderId, orderDto.getId())
                 .eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId()));
         List<KwtLogisticsOrderCirculate> list = kwtLogisticsOrderCirculateMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrderCirculate>()
                 .eq(KwtLogisticsOrderCirculate::getLOrderId, orderDto.getId())
                 .eq(KwtLogisticsOrderCirculate::getEntId, LoginUserHolder.getEntId()));
-        List<CarDataVo> carDataVos = new ArrayList<CarDataVo>();
+        List<CarDataVO> carDataVOS = new ArrayList<CarDataVO>();
         if (CollectionUtils.isNotEmpty(list)) {
             for (KwtLogisticsOrderCirculate circulate : list) {
-                CarDataVo carDataVo = new CarDataVo();
+                CarDataVO carDataVo = new CarDataVO();
                 //todo dubbo查询
 //                circulate.getDriverId() ;
 //                carDataVo.setDriverName();
@@ -154,9 +171,32 @@ public class ConsignOrderService {
 //                carDataVo.getLoadAmount();
                 carDataVo.setTruckNo(circulate.getTruckNo());
                 carDataVo.setWOrderNo(waybillOrder.getWOrderNo());
-                carDataVos.add(carDataVo);
+                carDataVOS.add(carDataVo);
             }
         }
-        return HttpResult.ok(carDataVos);
+        return HttpResult.ok(carDataVOS);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResult cancelConsign(OrderDTO orderDto) {
+        log.info("订单-撤销托运请求参数:{}", JSONObject.toJSONString(orderDto));
+        HttpResult result = new HttpResult();
+        KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                .eq(KwtLogisticsOrder::getId, orderDto.getId())
+                .eq(KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
+                .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId()));
+        if (logisticsOrder == null) {
+            result.setMsg("单据不存在");
+        }
+        /**以此字段判别是否存在分包操作*/
+        if (logisticsOrder.getPid()==null){//撤销数据回归到贸易订单
+            //并不属于被分包
+            //待接单状态下才能撤销托运
+            //
+
+        }else {
+            //即代表存在分包,当次是属于被分包.需要将数据回归到上游数据。
+        }
+        return result;
     }
 }

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

@@ -9,7 +9,6 @@ import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringUtils;
 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.stream.model.SckwBusSum;
@@ -107,7 +106,7 @@ public class LogisticsConsignmentService {
         insertLogisticsOrderUnit(bo, waybillNo, orderId);
         insertLogisticsOrderAddress(bo, waybillNo, orderId);
         insertLogisticsOrderTrack(bo, waybillNo, orderId);
-        sendMongoDB(waybillNo, orderId, bo,tradeOrder);
+        sendMongoDB(waybillNo, orderId, bo, tradeOrder);
 
     }
 
@@ -278,6 +277,7 @@ public class LogisticsConsignmentService {
         KwtLogisticsOrderGoods kwtLogisticsOrderGoods = new KwtLogisticsOrderGoods();
         kwtLogisticsOrderGoods.setId(new IdWorker(NumberConstant.ONE).nextId());
         kwtLogisticsOrderGoods.setGoodsId(Long.parseLong(bo.getGoodsId()));
+        kwtLogisticsOrderGoods.setGoodsName(bo.getGoodsName());
         kwtLogisticsOrderGoods.setSkuId(StringUtils.isBlank(bo.getSkuId()) ? null : Long.parseLong(bo.getSkuId()));
         kwtLogisticsOrderGoods.setLOrderId(orderId);
         kwtLogisticsOrderGoods.setLOrderNo(waybillNo);
@@ -320,8 +320,8 @@ public class LogisticsConsignmentService {
         order.setGoodsPriceUnit(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getGoodsPriceUnit()) == null ?
                 null : remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getGoodsPriceUnit()).getValue());
         order.setGoodsPriceUnit(bo.getGoodsPriceUnit());
-        order.setStartTime(DateUtil.LocalDateTimeToDate(tradeOrder.getStartTime()));
-        order.setEntTime(DateUtil.LocalDateTimeToDate(tradeOrder.getEndTime()));
+        order.setStartTime(bo.getShipmentsDateTime());
+        order.setEntTime(bo.getReceiveGoodsDateTime());
         order.setRemark(bo.getRemark());
         order.setPayment(tradeOrder.getTrading());
         order.setTaxRate(new BigDecimal(bo.getTaxRate()));
@@ -351,7 +351,7 @@ public class LogisticsConsignmentService {
     }
 
     /**
-     * 物流订单-装货地址
+     * 物流订单-装货地址
      *
      * @param bo
      * @param waybillNo

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

@@ -1,7 +1,19 @@
 package com.sckw.transport.service;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sckw.core.common.enums.NumberConstant;
+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.transport.dao.*;
+import com.sckw.transport.model.*;
+import com.sckw.transport.model.dto.DocumentParamDTO;
+import com.sckw.transport.model.vo.OrderDetailVO;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -13,8 +25,33 @@ import org.springframework.stereotype.Service;
 @Service
 public class TransportCommonService {
 
+    @Autowired
+    public KwoTradeOrderMapper tradeOrderMapper;
+
+    @Autowired
+    public KwtLogisticsOrderGoodsMapper logisticsOrderGoodsMapper;
+
+    @Autowired
+    public KwtLogisticsOrderContractMapper logisticsOrderContractMapper;
+
+    @Autowired
+    public KwtLogisticsOrderMapper logisticsOrderMapper;
+
+    @Autowired
+    public KwoTradeOrderAddressMapper tradeOrderAddressMapper;
+
+    @Autowired
+    public KwtLogisticsOrderAddressMapper logisticsOrderAddressMapper;
+
+    @Autowired
+    public KwtLogisticsOrderTrackMapper logisticsOrderTrackMapper;
+
+    @Autowired
+    public KwtLogisticsOrderUnitMapper logisticsOrderUnitMapper;
+
     /**
      * 获取托运企业名称
+     *
      * @param param
      * @return
      */
@@ -24,6 +61,7 @@ public class TransportCommonService {
 
     /**
      * 获取车牌号
+     *
      * @param param
      * @return
      */
@@ -33,6 +71,7 @@ public class TransportCommonService {
 
     /**
      * 获取联系人
+     *
      * @param param
      * @return
      */
@@ -42,6 +81,7 @@ public class TransportCommonService {
 
     /**
      * 获取司机
+     *
      * @param param
      * @return
      */
@@ -49,4 +89,89 @@ public class TransportCommonService {
         return HttpResult.ok();
     }
 
+    public HttpResult getOrderDetail(DocumentParamDTO dto) {
+        HttpResult httpResult = new HttpResult();
+        httpResult.setCode(HttpStatus.SUCCESS_CODE);
+        if (String.valueOf(NumberConstant.FOUR).equals(dto.getDocumentType())) {
+            //托运订单
+            OrderDetailVO orderDetailVO = getOrderData(dto);
+            httpResult.setData(orderDetailVO);
+        } else if (String.valueOf(NumberConstant.THREE).equals(dto.getDocumentType())) {
+            //承运订单
+            OrderDetailVO orderDetailVO = getOrderData(dto);
+            httpResult.setData(orderDetailVO);
+        } else {
+            httpResult.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
+            httpResult.setMsg("单据类型错误");
+        }
+        return httpResult;
+    }
+
+    private OrderDetailVO getOrderData(DocumentParamDTO dto) {
+        KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                .eq(KwtLogisticsOrder::getId, dto.getId())
+                .eq(StringUtils.isNotBlank(dto.getDocumentNo()), KwtLogisticsOrder::getLOrderNo, dto.getDocumentNo())
+                .eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId()));
+        if (logisticsOrder == null) {
+            log.info("查无单据:{}", JSONObject.toJSONString(dto));
+            throw new RuntimeException("查无单据");
+
+        }
+        KwtLogisticsOrderContract contract = logisticsOrderContractMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderContract>()
+                .eq(StringUtils.isNotBlank(dto.getId()), KwtLogisticsOrderContract::getLOrderId, dto.getId()));
+        KwtLogisticsOrderUnit unitOne = logisticsOrderUnitMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderUnit>()
+                .eq(StringUtils.isNotBlank(dto.getId()), KwtLogisticsOrderUnit::getLOrderId, dto.getId())
+                .eq(KwtLogisticsOrderUnit::getUnitType, NumberConstant.ONE));
+//                .eq(KwtLogisticsOrderUnit::getEntId, logisticsOrder.getEntId()));
+        KwtLogisticsOrderUnit unitTwo = logisticsOrderUnitMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderUnit>()
+                .eq(StringUtils.isNotBlank(dto.getId()), KwtLogisticsOrderUnit::getLOrderId, dto.getId())
+                .eq(KwtLogisticsOrderUnit::getUnitType, NumberConstant.TWO));
+//                .eq(KwtLogisticsOrderUnit::getEntId, logisticsOrder.getEntId()));
+        KwtLogisticsOrderAddress loadOrderAddress = logisticsOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
+                .eq(StringUtils.isNotBlank(dto.getId()), KwtLogisticsOrderAddress::getLOrderId, dto.getId())
+                .eq(KwtLogisticsOrderAddress::getAddressType, NumberConstant.ONE));
+        KwtLogisticsOrderAddress unloadOrderAddress = logisticsOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
+                .eq(StringUtils.isNotBlank(dto.getId()), KwtLogisticsOrderAddress::getLOrderId, dto.getId())
+                .eq(KwtLogisticsOrderAddress::getAddressType, NumberConstant.TWO));
+        KwtLogisticsOrderGoods orderGoods = logisticsOrderGoodsMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderGoods>()
+                .eq(StringUtils.isNotBlank(logisticsOrder.getId()), KwtLogisticsOrderGoods::getLOrderId, logisticsOrder.getId()));
+        OrderDetailVO orderDetailVO = new OrderDetailVO();
+        orderDetailVO.setId(String.valueOf(logisticsOrder.getId()));
+        if (contract != null) {
+            orderDetailVO.setContractId(contract.getContractId() == null ? null : String.valueOf(contract.getContractId()));
+            //todo 接口调用合同服务查询合同信息
+//            orderDetailVO.setContractName(contract.getContractId() == null ? null : String.valueOf(contract.getContractId()));
+//            orderDetailVO.setContractNo(contract.getContractId() == null ? null : String.valueOf(contract.getContractId()));
+        }
+        if (unitOne != null) {
+            orderDetailVO.setConsignCompany(unitOne.getFirmName());
+            orderDetailVO.setConsignContacts(unitOne.getContacts());
+            orderDetailVO.setConsignPhone(unitOne.getPhone());
+            orderDetailVO.setCollectionCompany(unitOne.getFirmName());
+        }
+        if (unitTwo != null) {
+            orderDetailVO.setCarrierCompany(unitTwo.getFirmName());
+            orderDetailVO.setCarrierContacts(unitTwo.getContacts());
+            orderDetailVO.setCarrierPhone(unitTwo.getPhone());
+        }
+        orderDetailVO.setGoodsName(orderGoods == null ? null : orderGoods.getGoodsName());
+        orderDetailVO.setNumber(logisticsOrder.getAmount() == null ? null : String.valueOf(logisticsOrder.getAmount()));
+        orderDetailVO.setPrice(logisticsOrder.getPrice() == null ? null : String.valueOf(logisticsOrder.getPrice()));
+        orderDetailVO.setLoss(logisticsOrder.getLoss() == null ? null : String.valueOf(logisticsOrder.getLoss()));
+        orderDetailVO.setDeduct(logisticsOrder.getGoodsPrice() == null ? null : String.valueOf(logisticsOrder.getGoodsPrice()));
+        orderDetailVO.setLoadAddress(loadOrderAddress.getName());
+        orderDetailVO.setLoadContacts(loadOrderAddress.getContacts());
+        orderDetailVO.setLoadPhone(loadOrderAddress.getPhone());
+        orderDetailVO.setLoadAddressDetail(loadOrderAddress.getDetailAddress());
+        orderDetailVO.setUnloadAddress(unloadOrderAddress.getName());
+        orderDetailVO.setUnloadContacts(unloadOrderAddress.getContacts());
+        orderDetailVO.setUnloadPhone(unloadOrderAddress.getPhone());
+        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.getEntTime() == null ? null : DateUtil.getDateTime(logisticsOrder.getEntTime()));
+        orderDetailVO.setPerformanceAmount(logisticsOrder.getLoadAmount() == null ? null : String.valueOf(logisticsOrder.getLoadAmount()));
+        return orderDetailVO;
+    }
 }

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

@@ -6,6 +6,7 @@
         <result column="l_order_id" jdbcType="BIGINT" property="lOrderId" />
         <result column="order_no" jdbcType="VARCHAR" property="lOrderNo" />
         <result column="goods_id" jdbcType="BIGINT" property="goodsId" />
+        <result column="goods_name" jdbcType="VARCHAR" property="goodsName" />
         <result column="sku_id" jdbcType="BIGINT" property="skuId" />
         <result column="remark" jdbcType="VARCHAR" property="remark" />
         <result column="status" jdbcType="INTEGER" property="status" />
@@ -17,7 +18,7 @@
     </resultMap>
     <sql id="Base_Column_List">
         id, l_order_id, l_order_no, goods_id, sku_id, remark, `status`, create_by, create_time,
-    update_by, update_time, del_flag
+    update_by, update_time, del_flag,goods_name
     </sql>
     <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
         select

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

@@ -26,211 +26,4 @@
     load_amount, deficit_amount, remark, `status`, create_by, create_time, update_by,
     update_time, del_flag
     </sql>
-    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-        select
-        <include refid="Base_Column_List" />
-        from kwt_waybill_order
-        where id = #{id,jdbcType=BIGINT}
-    </select>
-    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-        delete from kwt_waybill_order
-        where id = #{id,jdbcType=BIGINT}
-    </delete>
-    <insert id="insert" parameterType="com.sckw.transport.model.KwtWaybillOrder">
-        insert into kwt_waybill_order (id, ent_id, l_order_id,
-                                       w_order_no, truck_no, driver_id,
-                                       entrust_amount, unload_amount, load_amount,
-                                       deficit_amount, remark, `status`,
-                                       create_by, create_time, update_by,
-                                       update_time, del_flag)
-        values (#{id,jdbcType=BIGINT}, #{entId,jdbcType=BIGINT}, #{lOrderId,jdbcType=BIGINT},
-                #{wOrderNo,jdbcType=VARCHAR}, #{truckNo,jdbcType=VARCHAR}, #{driverId,jdbcType=BIGINT},
-                #{entrustAmount,jdbcType=DECIMAL}, #{unloadAmount,jdbcType=DECIMAL}, #{loadAmount,jdbcType=DECIMAL},
-                #{deficitAmount,jdbcType=DECIMAL}, #{remark,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER},
-                #{createBy,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=BIGINT},
-                #{updateTime,jdbcType=TIMESTAMP}, #{delFlag,jdbcType=INTEGER})
-    </insert>
-    <insert id="insertSelective" parameterType="com.sckw.transport.model.KwtWaybillOrder">
-        insert into kwt_waybill_order
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">
-                id,
-            </if>
-            <if test="entId != null">
-                ent_id,
-            </if>
-            <if test="lOrderId != null">
-                l_order_id,
-            </if>
-            <if test="wOrderNo != null">
-                w_order_no,
-            </if>
-            <if test="truckNo != null">
-                truck_no,
-            </if>
-            <if test="driverId != null">
-                driver_id,
-            </if>
-            <if test="entrustAmount != null">
-                entrust_amount,
-            </if>
-            <if test="unloadAmount != null">
-                unload_amount,
-            </if>
-            <if test="loadAmount != null">
-                load_amount,
-            </if>
-            <if test="deficitAmount != null">
-                deficit_amount,
-            </if>
-            <if test="remark != null">
-                remark,
-            </if>
-            <if test="status != null">
-                `status`,
-            </if>
-            <if test="createBy != null">
-                create_by,
-            </if>
-            <if test="createTime != null">
-                create_time,
-            </if>
-            <if test="updateBy != null">
-                update_by,
-            </if>
-            <if test="updateTime != null">
-                update_time,
-            </if>
-            <if test="delFlag != null">
-                del_flag,
-            </if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">
-                #{id,jdbcType=BIGINT},
-            </if>
-            <if test="entId != null">
-                #{entId,jdbcType=BIGINT},
-            </if>
-            <if test="lOrderId != null">
-                #{lOrderId,jdbcType=BIGINT},
-            </if>
-            <if test="wOrderNo != null">
-                #{wOrderNo,jdbcType=VARCHAR},
-            </if>
-            <if test="truckNo != null">
-                #{truckNo,jdbcType=VARCHAR},
-            </if>
-            <if test="driverId != null">
-                #{driverId,jdbcType=BIGINT},
-            </if>
-            <if test="entrustAmount != null">
-                #{entrustAmount,jdbcType=DECIMAL},
-            </if>
-            <if test="unloadAmount != null">
-                #{unloadAmount,jdbcType=DECIMAL},
-            </if>
-            <if test="loadAmount != null">
-                #{loadAmount,jdbcType=DECIMAL},
-            </if>
-            <if test="deficitAmount != null">
-                #{deficitAmount,jdbcType=DECIMAL},
-            </if>
-            <if test="remark != null">
-                #{remark,jdbcType=VARCHAR},
-            </if>
-            <if test="status != null">
-                #{status,jdbcType=INTEGER},
-            </if>
-            <if test="createBy != null">
-                #{createBy,jdbcType=BIGINT},
-            </if>
-            <if test="createTime != null">
-                #{createTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="updateBy != null">
-                #{updateBy,jdbcType=BIGINT},
-            </if>
-            <if test="updateTime != null">
-                #{updateTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="delFlag != null">
-                #{delFlag,jdbcType=INTEGER},
-            </if>
-        </trim>
-    </insert>
-    <update id="updateByPrimaryKeySelective" parameterType="com.sckw.transport.model.KwtWaybillOrder">
-        update kwt_waybill_order
-        <set>
-            <if test="entId != null">
-                ent_id = #{entId,jdbcType=BIGINT},
-            </if>
-            <if test="lOrderId != null">
-                l_order_id = #{lOrderId,jdbcType=BIGINT},
-            </if>
-            <if test="wOrderNo != null">
-                w_order_no = #{wOrderNo,jdbcType=VARCHAR},
-            </if>
-            <if test="truckNo != null">
-                truck_no = #{truckNo,jdbcType=VARCHAR},
-            </if>
-            <if test="driverId != null">
-                driver_id = #{driverId,jdbcType=BIGINT},
-            </if>
-            <if test="entrustAmount != null">
-                entrust_amount = #{entrustAmount,jdbcType=DECIMAL},
-            </if>
-            <if test="unloadAmount != null">
-                unload_amount = #{unloadAmount,jdbcType=DECIMAL},
-            </if>
-            <if test="loadAmount != null">
-                load_amount = #{loadAmount,jdbcType=DECIMAL},
-            </if>
-            <if test="deficitAmount != null">
-                deficit_amount = #{deficitAmount,jdbcType=DECIMAL},
-            </if>
-            <if test="remark != null">
-                remark = #{remark,jdbcType=VARCHAR},
-            </if>
-            <if test="status != null">
-                `status` = #{status,jdbcType=INTEGER},
-            </if>
-            <if test="createBy != null">
-                create_by = #{createBy,jdbcType=BIGINT},
-            </if>
-            <if test="createTime != null">
-                create_time = #{createTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="updateBy != null">
-                update_by = #{updateBy,jdbcType=BIGINT},
-            </if>
-            <if test="updateTime != null">
-                update_time = #{updateTime,jdbcType=TIMESTAMP},
-            </if>
-            <if test="delFlag != null">
-                del_flag = #{delFlag,jdbcType=INTEGER},
-            </if>
-        </set>
-        where id = #{id,jdbcType=BIGINT}
-    </update>
-    <update id="updateByPrimaryKey" parameterType="com.sckw.transport.model.KwtWaybillOrder">
-        update kwt_waybill_order
-        set ent_id = #{entId,jdbcType=BIGINT},
-            l_order_id = #{lOrderId,jdbcType=BIGINT},
-            w_order_no = #{wOrderNo,jdbcType=VARCHAR},
-            truck_no = #{truckNo,jdbcType=VARCHAR},
-            driver_id = #{driverId,jdbcType=BIGINT},
-            entrust_amount = #{entrustAmount,jdbcType=DECIMAL},
-            unload_amount = #{unloadAmount,jdbcType=DECIMAL},
-            load_amount = #{loadAmount,jdbcType=DECIMAL},
-            deficit_amount = #{deficitAmount,jdbcType=DECIMAL},
-            remark = #{remark,jdbcType=VARCHAR},
-            `status` = #{status,jdbcType=INTEGER},
-            create_by = #{createBy,jdbcType=BIGINT},
-            create_time = #{createTime,jdbcType=TIMESTAMP},
-            update_by = #{updateBy,jdbcType=BIGINT},
-            update_time = #{updateTime,jdbcType=TIMESTAMP},
-            del_flag = #{delFlag,jdbcType=INTEGER}
-        where id = #{id,jdbcType=BIGINT}
-    </update>
 </mapper>

+ 15 - 137
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderTrackMapper.xml

@@ -1,141 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.transport.dao.KwtWaybillOrderTrackMapper">
-  <resultMap id="BaseResultMap" type="com.sckw.transport.model.KwtWaybillOrderTrack">
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="w_order_id" jdbcType="BIGINT" property="wOrderId" />
-    <result column="remark" jdbcType="VARCHAR" property="remark" />
-    <result column="status" jdbcType="INTEGER" property="status" />
-    <result column="create_by" jdbcType="BIGINT" property="createBy" />
-    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
-    <result column="update_by" jdbcType="BIGINT" property="updateBy" />
-    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
-    <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    id, order_id, remark, `status`, create_by, create_time, update_by, update_time, del_flag
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    select 
-    <include refid="Base_Column_List" />
-    from kwt_waybill_order_track
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    delete from kwt_waybill_order_track
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.sckw.transport.model.KwtWaybillOrderTrack">
-    insert into kwt_waybill_order_track (id, order_id, remark, 
-      `status`, create_by, create_time, 
-      update_by, update_time, del_flag
-      )
-    values (#{id,jdbcType=BIGINT}, #{orderId,jdbcType=BIGINT}, #{remark,jdbcType=VARCHAR}, 
-      #{status,jdbcType=INTEGER}, #{createBy,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, 
-      #{updateBy,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP}, #{delFlag,jdbcType=INTEGER}
-      )
-  </insert>
-  <insert id="insertSelective" parameterType="com.sckw.transport.model.KwtWaybillOrderTrack">
-    insert into kwt_waybill_order_track
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="orderId != null">
-        order_id,
-      </if>
-      <if test="remark != null">
-        remark,
-      </if>
-      <if test="status != null">
-        `status`,
-      </if>
-      <if test="createBy != null">
-        create_by,
-      </if>
-      <if test="createTime != null">
-        create_time,
-      </if>
-      <if test="updateBy != null">
-        update_by,
-      </if>
-      <if test="updateTime != null">
-        update_time,
-      </if>
-      <if test="delFlag != null">
-        del_flag,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=BIGINT},
-      </if>
-      <if test="orderId != null">
-        #{orderId,jdbcType=BIGINT},
-      </if>
-      <if test="remark != null">
-        #{remark,jdbcType=VARCHAR},
-      </if>
-      <if test="status != null">
-        #{status,jdbcType=INTEGER},
-      </if>
-      <if test="createBy != null">
-        #{createBy,jdbcType=BIGINT},
-      </if>
-      <if test="createTime != null">
-        #{createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="updateBy != null">
-        #{updateBy,jdbcType=BIGINT},
-      </if>
-      <if test="updateTime != null">
-        #{updateTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="delFlag != null">
-        #{delFlag,jdbcType=INTEGER},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.sckw.transport.model.KwtWaybillOrderTrack">
-    update kwt_waybill_order_track
-    <set>
-      <if test="orderId != null">
-        order_id = #{orderId,jdbcType=BIGINT},
-      </if>
-      <if test="remark != null">
-        remark = #{remark,jdbcType=VARCHAR},
-      </if>
-      <if test="status != null">
-        `status` = #{status,jdbcType=INTEGER},
-      </if>
-      <if test="createBy != null">
-        create_by = #{createBy,jdbcType=BIGINT},
-      </if>
-      <if test="createTime != null">
-        create_time = #{createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="updateBy != null">
-        update_by = #{updateBy,jdbcType=BIGINT},
-      </if>
-      <if test="updateTime != null">
-        update_time = #{updateTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="delFlag != null">
-        del_flag = #{delFlag,jdbcType=INTEGER},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.sckw.transport.model.KwtWaybillOrderTrack">
-    update kwt_waybill_order_track
-    set order_id = #{orderId,jdbcType=BIGINT},
-      remark = #{remark,jdbcType=VARCHAR},
-      `status` = #{status,jdbcType=INTEGER},
-      create_by = #{createBy,jdbcType=BIGINT},
-      create_time = #{createTime,jdbcType=TIMESTAMP},
-      update_by = #{updateBy,jdbcType=BIGINT},
-      update_time = #{updateTime,jdbcType=TIMESTAMP},
-      del_flag = #{delFlag,jdbcType=INTEGER}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
+    <resultMap id="BaseResultMap" type="com.sckw.transport.model.KwtWaybillOrderTrack">
+        <id column="id" jdbcType="BIGINT" property="id" />
+        <result column="w_order_id" jdbcType="BIGINT" property="wOrderId" />
+        <result column="remark" jdbcType="VARCHAR" property="remark" />
+        <result column="status" jdbcType="INTEGER" property="status" />
+        <result column="create_by" jdbcType="BIGINT" property="createBy" />
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+        <result column="update_by" jdbcType="BIGINT" property="updateBy" />
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+        <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
+    </resultMap>
+    <sql id="Base_Column_List">
+        id, w_order_id, remark, `status`, create_by, create_time, update_by, update_time,
+    del_flag
+    </sql>
 </mapper>