Pārlūkot izejas kodu

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

czh 2 gadi atpakaļ
vecāks
revīzija
0022884e8a
37 mainītis faili ar 2183 papildinājumiem un 87 dzēšanām
  1. 3 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java
  2. 42 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/CollectionUtils.java
  3. 5 0
      sckw-common/sckw-common-mongo/pom.xml
  4. 29 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/enums/BusSumEnum.java
  5. 376 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java
  6. 310 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java
  7. 361 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java
  8. 9 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java
  9. 5 39
      sckw-modules/sckw-example/pom.xml
  10. 3 12
      sckw-modules/sckw-example/src/main/java/com/sckw/example/ExampleApplication.java
  11. 2 2
      sckw-modules/sckw-example/src/main/java/com/sckw/example/model/Student.java
  12. 3 3
      sckw-modules/sckw-example/src/test/java/com/sckw/example/StudentDaoTest.java
  13. 3 3
      sckw-modules/sckw-example/src/test/java/com/sckw/example/StudentRepositoryTest.java
  14. 75 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfDriverController.java
  15. 14 2
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfFleetController.java
  16. 7 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverCardMapper.java
  17. 6 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverLicenseMapper.java
  18. 23 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverMapper.java
  19. 7 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfDriverQualificationMapper.java
  20. 54 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverCardDto.java
  21. 59 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverDto.java
  22. 58 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverLicenseDto.java
  23. 58 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverQualificationDto.java
  24. 4 4
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfFleetDto.java
  25. 9 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfDriverVo.java
  26. 259 11
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java
  27. 40 4
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfFleetService.java
  28. 9 0
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverCardMapper.xml
  29. 9 0
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverLicenseMapper.xml
  30. 74 0
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml
  31. 9 0
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverQualificationMapper.xml
  32. 18 0
      sckw-modules/sckw-report/pom.xml
  33. 44 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/consumer/SckwBusSumConsumer.java
  34. 77 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwFleetController.java
  35. 12 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/dao/SckwTradeOrderRepository.java
  36. 51 0
      sckw-modules/sckw-report/src/test/java/com/sckw/report/SckwTradeOrderTest.java
  37. 56 4
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

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

@@ -139,6 +139,9 @@ public class Global {
     /**+符号**/
     /**+符号**/
     public static final String PLUS = "+";
     public static final String PLUS = "+";
 
 
+    /**#符号**/
+    public static final String POUND = "#";
+
     /**下划线拼接*/
     /**下划线拼接*/
     public static final String BRACKET = "()";
     public static final String BRACKET = "()";
     public static final String BRACKET_LEFT = "(";
     public static final String BRACKET_LEFT = "(";

+ 42 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/CollectionUtils.java

@@ -2,6 +2,8 @@ package com.sckw.core.utils;
 
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
 import java.util.*;
 import java.util.*;
 
 
 /**
 /**
@@ -375,4 +377,44 @@ public class CollectionUtils extends CollectionUtil {
 		}
 		}
 		return result;
 		return result;
     }
     }
+
+	/**
+	 * 对象转Map
+	 * @param object
+	 * @return
+	 * @throws IllegalAccessException
+	 */
+	public static Map beanToMap(Object object) throws Exception {
+		Map<String, Object> map = new HashMap<String, Object>();
+		Field[] fields = object.getClass().getDeclaredFields();
+		for (Field field : fields) {
+			field.setAccessible(true);
+			map.put(field.getName(), field.get(object));
+		}
+		return map;
+	}
+
+	/**
+	 * map转对象
+	 * @param map
+	 * @param beanClass
+	 * @param <T>
+	 * @return
+	 * @throws Exception
+	 */
+	public static <T> T mapToBean(Map map, Class<T> beanClass) throws Exception {
+		T object = beanClass.newInstance();
+		Field[] fields = object.getClass().getDeclaredFields();
+		for (Field field : fields) {
+			int mod = field.getModifiers();
+			if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
+				continue;
+			}
+			field.setAccessible(true);
+			if (map.containsKey(field.getName())) {
+				field.set(object, map.get(field.getName()));
+			}
+		}
+		return object;
+	}
 }
 }

+ 5 - 0
sckw-common/sckw-common-mongo/pom.xml

@@ -21,5 +21,10 @@
             <groupId>org.springframework.boot</groupId>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-mongodb</artifactId>
             <artifactId>spring-boot-starter-data-mongodb</artifactId>
         </dependency>
         </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
     </dependencies>
     </dependencies>
 </project>
 </project>

+ 29 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/enums/BusSumEnum.java

@@ -0,0 +1,29 @@
+package com.sckw.mongo.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+public enum BusSumEnum {
+
+    VERIFICATION_CODE("VERIFICATION_CODE", "SMS_262585113", "验证码", "您的验证码为:${code},该验证码为平台重要凭证,请勿泄露于他人!");
+
+    private String type;
+
+    private String name;
+
+    private String title;
+
+    private String value;
+
+    public static String getNameByValue(String value) {
+        for (BusSumEnum entityEnum : BusSumEnum.values()) {
+            if (entityEnum.getValue().equals(value)) {
+                return entityEnum.getName();
+            }
+        }
+        return null;
+    }
+
+}

+ 376 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java

@@ -0,0 +1,376 @@
+package com.sckw.mongo.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc MongoDB-物流订单信息
+ * @date 2023/7/8
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Accessors(chain = true)
+@Document(collection = "sckw_logistics_order")
+public class SckwLogisticsOrder{
+
+    /**
+     * 主键
+     */
+    @Id
+    private Long lOrderId;
+
+    /**
+     * 物流订单编号
+     */
+    private String lOrderNo;
+
+    /**
+     * 分包上级物流订单id
+     */
+    private Long lOrderPid;
+
+    /**
+     * 交易订单id(kwo_trade_order)
+     */
+    private Long tOrderId;
+
+    /**
+     * 交易订单编号(kwo_trade_order)
+     */
+    private String tOrderNo;
+
+    /**
+     * 结算周期(周结、月结、季结)
+     */
+    private Long settlementCycle;
+
+    /**
+     * 运价
+     */
+    private BigDecimal price;
+
+    /**
+     * 运价方式(元/吨、元/车)
+     */
+    private Long priceType;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String unit;
+
+    /**
+     * 合理损耗
+     */
+    private BigDecimal loss;
+
+    /**
+     * 合理损耗单位(‰/kG)
+     */
+    private String lossUnit;
+
+    /**
+     * 商品价值(扣亏货值)
+     */
+    private BigDecimal goodsPrice;
+
+    /**
+     * 商品价值(扣亏货值)单位
+     */
+    private String goodsPriceUnit;
+
+    /**
+     * 卸货日期
+     */
+    private Date unloadTime;
+
+    /**
+     * 装货日期
+     */
+    private Date loadTime;
+
+    /**
+     * 分包量
+     */
+    private BigDecimal subcontractAmount;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 卸货量
+     */
+    private BigDecimal unloadAmount;
+
+    /**
+     * 装货量
+     */
+    private BigDecimal loadAmount;
+
+    /**
+     * 忽略剩余量
+     */
+    private BigDecimal ignoreAmount;
+
+    /**
+     * 亏吨量
+     */
+    private BigDecimal deficitAmount;
+
+    /**
+     * 亏吨扣款
+     */
+    private BigDecimal deficitPrice;
+
+    /**
+     * 付款方式(预付款、线下支付、第三方支付)
+     */
+    private Long payment;
+
+    /**
+     * 发票税率(%)
+     */
+    private BigDecimal taxRate;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    private Integer status;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 商品主键
+     */
+    private Integer goodsId;
+
+    /**
+     * 商品编号
+     */
+    private String goodsCode;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品类型
+     */
+    private Long goodsType;
+
+    /**
+     * 商品行业
+     */
+    private Long goodsIndustry;
+
+    /**
+     * 商品尺寸大小
+     */
+    private String goodsSpec;
+
+    /**
+     * 合同主键
+     */
+    private Integer contractId;
+
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 合同mc
+     */
+    private String contractName;
+
+    /**
+     * 合同签约方式
+     */
+    private String contractSigningWay;
+
+    /**
+     * 托运企业主键ID
+     */
+    private Long checkEntId;
+
+    /**
+     * 托运企业名称
+     */
+    private String checkFirmName;
+
+    /**
+     * 托运企业联系人
+     */
+    private String checkContacts;
+
+    /**
+     * 托运企业联系电话
+     */
+    private String checkPhone;
+
+    /**
+     * 承运企业主键ID
+     */
+    private Long carrierEntId;
+
+    /**
+     * 承运企业名称
+     */
+    private String carrierFirmName;
+
+    /**
+     * 承运企业联系人
+     */
+    private String carrierContacts;
+
+    /**
+     * 承运企业联系电话
+     */
+    private String carrierPhone;
+
+    /**
+     * 装货地址类型
+     */
+    private Long loadType;
+
+    /**
+     * 装货联系人姓名
+     */
+    private String loadContacts;
+
+    /**
+     * 装货联系电话
+     */
+    private String loadPhone;
+
+    /**
+     * 装货所在地区
+     */
+    private Integer loadCityCode;
+
+    /**
+     * 装货所属区域名称
+     */
+    private String loadCityName;
+
+    /**
+     * 装货详细地址
+     */
+    private String loadDetailAddress;
+
+    /**
+     * 装货纬度
+     */
+    private String loadLat;
+
+    /**
+     * 装货纬度
+     */
+    private String loadLng;
+
+    /**
+     * 卸货地址类型
+     */
+    private Long unloadType;
+
+    /**
+     * 卸货联系人姓名
+     */
+    private String unloadContacts;
+
+    /**
+     * 卸货联系电话
+     */
+    private String unloadPhone;
+
+    /**
+     * 卸货所在地区
+     */
+    private Integer unloadCityCode;
+
+    /**
+     * 卸货所属区域名称
+     */
+    private String unloadCityName;
+
+    /**
+     * 卸货详细地址
+     */
+    private String unloadDetailAddress;
+
+    /**
+     * 卸货纬度
+     */
+    private String unloadLat;
+
+    /**
+     * 卸货纬度
+     */
+    private String unloadLng;
+
+    /**
+     * 创建人主键id
+     */
+    private Long createBy;
+
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人主键id
+     */
+    private Long updateBy;
+
+    /**
+     * 更新人姓名
+     */
+    private String updateByName;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+
+}

+ 310 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java

@@ -0,0 +1,310 @@
+package com.sckw.mongo.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc MongoDB-交易订单信息
+ * @date 2023/7/8
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Accessors(chain = true)
+@Document(collection = "sckw_trade_order")
+public class SckwTradeOrder{
+
+    /**
+     * 订单主键
+     */
+    @Id
+    private Long tOrderId;
+
+    /**
+     * 订单编号
+     */
+    private String tOrderNo;
+
+    /**
+     * 订单成交数量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 订单单位(吨、方、箱、件)
+     */
+    private String unit;
+
+    /**
+     * 订单金额
+     */
+    private BigDecimal price;
+
+    /**
+     * 订单成交单价
+     */
+    private BigDecimal unitPrice;
+
+    /**
+     * 订单交易方式(预付款、货到付款)
+     */
+    private Long trading;
+
+    /**
+     * 订单提货方式(采方自提、供应配送)
+     */
+    private Long pickupType;
+
+    /**
+     * 订单交付类型(签发交付、签收交付)
+     */
+    private Long deliveryType;
+
+    /**
+     * 订单开始日期
+     */
+    private Date startTime;
+
+    /**
+     * 订单结束日期
+     */
+    private Date endTime;
+
+    /**
+     * 订单已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 订单实际交付量
+     */
+    private BigDecimal actualAmount;
+
+    /**
+     * 订单创建来源类型(采购下单/销售代客下单)
+     */
+    private Integer source;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 订单备注
+     */
+    private String remark;
+
+    /**
+     * 企业主键ID
+     */
+    private Long entId;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 商品主键
+     */
+    private Integer goodsId;
+
+    /**
+     * 商品编号
+     */
+    private String goodsCode;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品类型
+     */
+    private Long goodsType;
+
+    /**
+     * 商品行业
+     */
+    private Long goodsIndustry;
+
+    /**
+     * 商品尺寸大小
+     */
+    private String goodsSpec;
+
+    /**
+     * 商品发票税率(%)
+     */
+    private BigDecimal goodsTaxRate;
+
+    /**
+     * 商品所属项目名称
+     */
+    private String projectName;
+
+    /**
+     * 合同主键
+     */
+    private Integer contractId;
+
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 合同mc
+     */
+    private String contractName;
+
+    /**
+     * 合同签约方式
+     */
+    private String contractSigningWay;
+
+    /**
+     * 采购企业主键ID
+     */
+    private Long procureEntId;
+
+    /**
+     * 采购企业名称
+     */
+    private String procureFirmName;
+
+    /**
+     * 采购企业联系人
+     */
+    private String procureContacts;
+
+    /**
+     * 采购企业联系电话
+     */
+    private String procurePhone;
+
+    /**
+     * 供应企业主键ID
+     */
+    private Long supplyEntId;
+
+    /**
+     * 供应企业名称
+     */
+    private String supplyFirmName;
+
+    /**
+     * 供应企业联系人
+     */
+    private String supplyContacts;
+
+    /**
+     * 供应企业联系电话
+     */
+    private String supplyPhone;
+
+    /**
+     * 装货地址类型
+     */
+    private Long loadType;
+
+    /**
+     * 装货所在地区
+     */
+    private Integer loadCityCode;
+
+    /**
+     * 装货所属区域名称
+     */
+    private String loadCityName;
+
+    /**
+     * 装货详细地址
+     */
+    private String loadDetailAddress;
+
+    /**
+     * 装货纬度
+     */
+    private String loadLat;
+
+    /**
+     * 装货纬度
+     */
+    private String loadLng;
+
+    /**
+     * 卸货地址类型
+     */
+    private Long unloadType;
+
+    /**
+     * 卸货所在地区
+     */
+    private Integer unloadCityCode;
+
+    /**
+     * 卸货所属区域名称
+     */
+    private String unloadCityName;
+
+    /**
+     * 卸货详细地址
+     */
+    private String unloadDetailAddress;
+
+    /**
+     * 卸货纬度
+     */
+    private String unloadLat;
+
+    /**
+     * 卸货纬度
+     */
+    private String unloadLng;
+
+    /**
+     * 创建人主键id
+     */
+    private Long createBy;
+
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人主键id
+     */
+    private Long updateBy;
+
+    /**
+     * 更新人姓名
+     */
+    private String updateByName;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

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

@@ -0,0 +1,361 @@
+package com.sckw.mongo.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc MongoDB-车辆订单信息
+ * @date 2023/7/8
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Accessors(chain = true)
+@Document(collection = "sckw_waybill_order")
+public class SckwWaybillOrder{
+
+    /**
+     * 主键
+     */
+    @Id
+    private Long wOrderId;
+
+    /**
+     * 编号
+     */
+    private String wOrderNo;
+
+    /**
+     * 主键
+     */
+    private Long lOrderId;
+
+    /**
+     * 物流订单编号
+     */
+    private String lOrderNo;
+
+    /**
+     * 交易订单id(kwo_trade_order)
+     */
+    private Long tOrderId;
+
+    /**
+     * 交易订单编号(kwo_trade_order)
+     */
+    private String tOrderNo;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+
+    /**
+     * 车辆类型(牵引车、自卸、高栏、平板、厢式、集装箱车、罐车、封闭式、专项作业车、其他)
+     */
+    private Integer truckType;
+
+    /**
+     * 车能源类型(柴油、汽油、电动、氢能、天然气、液化石油气、甲醇、油电混动、油气混动、其他)
+     */
+    private Integer truckEnergyType;
+
+    /**
+     * 车使用性质(营运车、租赁车辆、货运车、危化品运输车、非营运车、其他)
+     */
+    private Integer truckUseType;
+
+    /**
+     * 车辆颜色
+     */
+    private Integer truckColor;
+
+    /**
+     * 车挂车号
+     */
+    private String truckTrailerNo;
+
+    /**
+     * 司机主键ID
+     */
+    private Long driverId;
+
+    /**
+     * 司机姓名
+     */
+    private String driverName;
+
+    /**
+     * 司机手机号码
+     */
+    private String driverPhone;
+
+    /**
+     * 司机身份证号
+     */
+    private String driverIdcard;
+
+    /**
+     * 装货日期
+     */
+    private Date loadTime;
+
+    /**
+     * 卸货日期
+     */
+    private Date unloadTime;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 装货重量
+     */
+    private BigDecimal loadAmount;
+
+    /**
+     * 装货皮重
+     */
+    private BigDecimal loadTareAmount;
+
+    /**
+     * 装货毛重
+     */
+    private BigDecimal loadGrossAmount;
+
+    /**
+     * 装货上传凭证地址,多个以英文逗号隔开
+     */
+    private String loadUrls;
+
+    /**
+     * 卸货重量
+     */
+    private BigDecimal unloadAmount;
+
+    /**
+     * 卸货皮重
+     */
+    private BigDecimal unloadTareAmount;
+
+    /**
+     * 卸货毛重
+     */
+    private BigDecimal unloadGrossAmount;
+
+    /**
+     * 卸货上传凭证地址,多个以英文逗号隔开
+     */
+    private String unloadUrls;
+
+    /**
+     * 亏吨重量
+     */
+    private BigDecimal deficitAmount;
+
+    /**
+     * 商品主键
+     */
+    private Integer goodsId;
+
+    /**
+     * 商品编号
+     */
+    private String goodsCode;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品类型
+     */
+    private Long goodsType;
+
+    /**
+     * 商品行业
+     */
+    private Long goodsIndustry;
+
+    /**
+     * 商品尺寸大小
+     */
+    private String goodsSpec;
+
+    /**
+     * 托运企业主键ID
+     */
+    private Long checkEntId;
+
+    /**
+     * 托运企业名称
+     */
+    private String checkFirmName;
+
+    /**
+     * 托运企业联系人
+     */
+    private String checkContacts;
+
+    /**
+     * 托运企业联系电话
+     */
+    private String checkPhone;
+
+    /**
+     * 承运企业主键ID
+     */
+    private Long carrierEntId;
+
+    /**
+     * 承运企业名称
+     */
+    private String carrierFirmName;
+
+    /**
+     * 承运企业联系人
+     */
+    private String carrierContacts;
+
+    /**
+     * 承运企业联系电话
+     */
+    private String carrierPhone;
+
+    /**
+     * 装货地址类型
+     */
+    private Long loadType;
+
+    /**
+     * 装货联系人姓名
+     */
+    private String loadContacts;
+
+    /**
+     * 装货联系电话
+     */
+    private String loadPhone;
+
+    /**
+     * 装货所在地区
+     */
+    private Integer loadCityCode;
+
+    /**
+     * 装货所属区域名称
+     */
+    private String loadCityName;
+
+    /**
+     * 装货详细地址
+     */
+    private String loadDetailAddress;
+
+    /**
+     * 装货纬度
+     */
+    private String loadLat;
+
+    /**
+     * 装货纬度
+     */
+    private String loadLng;
+
+    /**
+     * 卸货地址类型
+     */
+    private Long unloadType;
+
+    /**
+     * 卸货联系人姓名
+     */
+    private String unloadContacts;
+
+    /**
+     * 卸货联系电话
+     */
+    private String unloadPhone;
+
+    /**
+     * 卸货所在地区
+     */
+    private Integer unloadCityCode;
+
+    /**
+     * 卸货所属区域名称
+     */
+    private String unloadCityName;
+
+    /**
+     * 卸货详细地址
+     */
+    private String unloadDetailAddress;
+
+    /**
+     * 卸货纬度
+     */
+    private String unloadLat;
+
+    /**
+     * 卸货纬度
+     */
+    private String unloadLng;
+
+    /**
+     * 创建人主键id
+     */
+    private Long createBy;
+
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人主键id
+     */
+    private Long updateBy;
+
+    /**
+     * 更新人姓名
+     */
+    private String updateByName;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+
+}

+ 9 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java

@@ -32,6 +32,15 @@ public interface RemoteSystemService {
      */
      */
     SysDictResDto queryDictByTypeAndValue(String type, String value);
     SysDictResDto queryDictByTypeAndValue(String type, String value);
 
 
+    /**
+     * @param type 字典类型
+     * @return SysDictResDto
+     * @desc: 根据字典类型和key查字典
+     * @author: czh
+     * @date: 2023/7/7
+     */
+    List<SysDictGroupResDto> queryDictGroupByType(String type);
+
     /**
     /**
      * @param  type 字典类型,value key
      * @param  type 字典类型,value key
      * @return SysDictGroupResDto
      * @return SysDictGroupResDto

+ 5 - 39
sckw-modules/sckw-example/pom.xml

@@ -18,6 +18,11 @@
 
 
     <dependencies>
     <dependencies>
         <!-- 核心模块 -->
         <!-- 核心模块 -->
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-startup</artifactId>
+        </dependency>
+
         <dependency>
         <dependency>
             <groupId>com.sckw</groupId>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-common-core</artifactId>
             <artifactId>sckw-common-core</artifactId>
@@ -83,45 +88,6 @@
             <artifactId>sckw-message-api</artifactId>
             <artifactId>sckw-message-api</artifactId>
         </dependency>
         </dependency>
 
 
-        <!--web-->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-autoconfigure</artifactId>
-            <optional>true</optional>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-bootstrap</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-loadbalancer</artifactId>
-        </dependency>
-
-        <!--注册中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-        </dependency>
-
-        <!--配置中心客户端-->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-        </dependency>
-
         <!--junit-->
         <!--junit-->
         <dependency>
         <dependency>
             <groupId>junit</groupId>
             <groupId>junit</groupId>

+ 3 - 12
sckw-modules/sckw-example/src/main/java/com/sckw/example/ExampleApplication.java

@@ -1,20 +1,11 @@
 package com.sckw.example;
 package com.sckw.example;
 
 
-import com.sckw.core.annotation.SckwCloudApplication;
-import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+import com.sckw.remote.annotation.SckwRemoteApplication;
+import com.sckw.startup.annotation.SckwCloudApplication;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-import org.springframework.cloud.openfeign.EnableFeignClients;
 
 
-@EnableDubbo
-@EnableFeignClients({"com.sckw.*.api.feign"})
-@EnableDiscoveryClient
-//@EnableAutoDataSourceProxy
-@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
+@SckwRemoteApplication
 @SckwCloudApplication
 @SckwCloudApplication
-//@SckwRemoteApplication
 public class ExampleApplication {
 public class ExampleApplication {
 
 
     public static void main(String[] args) {
     public static void main(String[] args) {

+ 2 - 2
sckw-modules/sckw-example/src/main/java/com/sckw/example/model/Student.java

@@ -8,7 +8,7 @@ import java.util.Date;
 public class Student {
 public class Student {
 
 
     @Id
     @Id
-    private String studentId;
+    private Long studentId;
 
 
     private String studentName;
     private String studentName;
 
 
@@ -18,7 +18,7 @@ public class Student {
 
 
     private Date studentBirthday;
     private Date studentBirthday;
 
 
-    public Student(String studentId, String studentName, Integer studentAge, Double studentScore, Date studentBirthday) {
+    public Student(Long studentId, String studentName, Integer studentAge, Double studentScore, Date studentBirthday) {
         this.studentId = studentId;
         this.studentId = studentId;
         this.studentName = studentName;
         this.studentName = studentName;
         this.studentAge = studentAge;
         this.studentAge = studentAge;

+ 3 - 3
sckw-modules/sckw-example/src/test/java/com/sckw/example/StudentDaoTest.java

@@ -19,11 +19,11 @@ public class StudentDaoTest {
     void addOneStudent(){
     void addOneStudent(){
 //        插入10行
 //        插入10行
         Long begtime = System.currentTimeMillis();
         Long begtime = System.currentTimeMillis();
-        for (Integer count = 0; count < 10000; count++) {
+        for (Long count = 0L; count < 1000000; count++) {
             Student student = new Student();
             Student student = new Student();
-            student.setStudentId("study_"+count);
+            student.setStudentId(count);
             student.setStudentName("Echo"+count);
             student.setStudentName("Echo"+count);
-            student.setStudentAge(count);
+            student.setStudentAge(0);
             student.setStudentScore(98.5-count);
             student.setStudentScore(98.5-count);
             student.setStudentBirthday(new Date());
             student.setStudentBirthday(new Date());
             studentDao.addOne(student);
             studentDao.addOne(student);

+ 3 - 3
sckw-modules/sckw-example/src/test/java/com/sckw/example/StudentRepositoryTest.java

@@ -19,7 +19,7 @@ public class StudentRepositoryTest {
      */
      */
     @Test
     @Test
     public void insertOne() {
     public void insertOne() {
-        Student student = new Student("009", "tom", 18, 88.2d, new Date());
+        Student student = new Student(9L, "tom", 18, 88.2d, new Date());
         studentRepository.insert(student);
         studentRepository.insert(student);
     }
     }
 
 
@@ -30,8 +30,8 @@ public class StudentRepositoryTest {
     public void insertMany() {
     public void insertMany() {
         List<Student> list = new ArrayList<>();
         List<Student> list = new ArrayList<>();
         Long begtime = System.currentTimeMillis();
         Long begtime = System.currentTimeMillis();
-        for (int i=0; i<10000; i++) {
-            Student student1 = new Student("7"+i, "jerry", 19, 38.2d, new Date());
+        for (long i=0; i<1000; i++) {
+            Student student1 = new Student(i, "jerry", 19, 38.2d, new Date());
             list.add(student1);
             list.add(student1);
         }
         }
         studentRepository.insert(list);
         studentRepository.insert(list);

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

@@ -1,13 +1,23 @@
 package com.sckw.fleet.controller;
 package com.sckw.fleet.controller;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.model.page.PageResult;
+import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.fleet.model.KwfDriver;
 import com.sckw.fleet.model.KwfDriver;
+import com.sckw.fleet.model.KwfDriverCard;
+import com.sckw.fleet.model.KwfDriverLicense;
+import com.sckw.fleet.model.KwfDriverQualification;
+import com.sckw.fleet.model.dto.KwfDriverCardDto;
+import com.sckw.fleet.model.dto.KwfDriverDto;
+import com.sckw.fleet.model.dto.KwfDriverLicenseDto;
+import com.sckw.fleet.model.dto.KwfDriverQualificationDto;
 import com.sckw.fleet.service.KwfDriverService;
 import com.sckw.fleet.service.KwfDriverService;
 import jakarta.validation.Valid;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,7 +45,24 @@ public class KwfDriverController {
      **/
      **/
     @GetMapping("/detail")
     @GetMapping("/detail")
     public HttpResult selectByKey(Long id) throws SystemException {
     public HttpResult selectByKey(Long id) throws SystemException {
-        return HttpResult.ok(driverService.selectByKey(id));
+        //司机信息
+        KwfDriver driver = driverService.selectByKey(id);
+
+        //身份证信息
+        KwfDriverCard cardJson = driverService.findCarByKey(driver.getId());
+
+        //司机驾驶证信息
+        KwfDriverLicense licenseJson = driverService.findLicenseByKey(driver.getId());
+
+        //司机从业资格证
+        KwfDriverQualification qualificationJson = driverService.findQualificationByKey(driver.getId());
+
+        //数据组装
+        JSONObject driverJson = JSONObject.parseObject(JSON.toJSONString(driver));
+        driverJson.put("driverCard", cardJson);
+        driverJson.put("driverLicense", licenseJson);
+        driverJson.put("driverQualification", qualificationJson);
+        return HttpResult.ok(driverJson);
     }
     }
 
 
     /**
     /**
@@ -72,7 +99,7 @@ public class KwfDriverController {
      * @date 2023/6/14
      * @date 2023/6/14
      */
      */
     @PostMapping("/add")
     @PostMapping("/add")
-    public HttpResult add(@Valid @RequestBody KwfDriver params) {
+    public HttpResult add(@Valid @RequestBody KwfDriverDto params) throws SystemException{
         return driverService.add(params);
         return driverService.add(params);
     }
     }
 
 
@@ -83,7 +110,52 @@ public class KwfDriverController {
      * @date 2023/5/30
      * @date 2023/5/30
      **/
      **/
     @PostMapping("/update")
     @PostMapping("/update")
-    public HttpResult update(@RequestBody KwfDriver params) throws SystemException {
+    public HttpResult update(@Valid @RequestBody KwfDriverDto params) throws SystemException {
         return driverService.update(params);
         return driverService.update(params);
     }
     }
+
+    /**
+     * @param {ids:主键ID(多个以逗号隔开)}
+     * @description 删除
+     * @author zk
+     * @date 2023/7/7
+     **/
+    @PostMapping("/dels")
+    public HttpResult del(@RequestParam String ids) throws SystemException {
+        return driverService.del(ids);
+    }
+
+    /**
+     * @param params {}
+     * @description 司机身份证信息编辑
+     * @author zk
+     * @date 2023/7/7
+     **/
+    @PostMapping("/driverCardEdit")
+    public HttpResult driverCardEdit(@Valid @RequestBody KwfDriverCardDto params) throws SystemException {
+        return driverService.driverCardEdit(params);
+    }
+
+    /**
+     * @param params {}
+     * @description 司机驾驶证信息编辑
+     * @author zk
+     * @date 2023/7/7
+     **/
+    @PostMapping("/driverLicenseEdit")
+    public HttpResult driverLicenseEdit(@Valid @RequestBody KwfDriverLicenseDto params) throws SystemException {
+        return driverService.driverLicenseEdit(params);
+    }
+
+    /**
+     * @param params {}
+     * @description 司机从业资格证信息编辑
+     * @author zk
+     * @date 2023/7/7
+     **/
+    @PostMapping("/driverQualiEdit")
+    public HttpResult driverQualiEdit(@Valid @RequestBody KwfDriverQualificationDto params) throws SystemException {
+        return driverService.driverQualificationEdit(params);
+    }
+
 }
 }

+ 14 - 2
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfFleetController.java

@@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.model.page.PageResult;
+import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.fleet.model.KwfDriver;
 import com.sckw.fleet.model.KwfDriver;
 import com.sckw.fleet.model.KwfFleet;
 import com.sckw.fleet.model.KwfFleet;
@@ -70,7 +71,7 @@ public class KwfFleetController {
      * @return HttpResult
      * @return HttpResult
      * @desc 新增用户
      * @desc 新增用户
      * @author czh
      * @author czh
-     * @date 2023/6/14
+     * @date 2023/7/6
      */
      */
     @PostMapping("/add")
     @PostMapping("/add")
     public HttpResult add(@Valid @RequestBody KwfFleetDto params) {
     public HttpResult add(@Valid @RequestBody KwfFleetDto params) {
@@ -81,10 +82,21 @@ public class KwfFleetController {
      * @param params {}
      * @param params {}
      * @description 更新
      * @description 更新
      * @author zk
      * @author zk
-     * @date 2023/5/30
+     * @date 2023/7/6
      **/
      **/
     @PostMapping("/update")
     @PostMapping("/update")
     public HttpResult update(@Valid @RequestBody KwfFleetDto params) throws SystemException {
     public HttpResult update(@Valid @RequestBody KwfFleetDto params) throws SystemException {
         return fleetService.update(params);
         return fleetService.update(params);
     }
     }
+
+    /**
+     * @param {ids:主键ID(多个以逗号隔开)}
+     * @description 删除
+     * @author zk
+     * @date 2023/7/6
+     **/
+    @PostMapping("/dels")
+    public HttpResult del(@RequestParam String ids) throws SystemException {
+        return HttpResult.ok(HttpStatus.MSG_008);
+    }
 }
 }

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

@@ -12,4 +12,11 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 @Mapper
 public interface KwfDriverCardMapper extends BaseMapper<KwfDriverCard> {
 public interface KwfDriverCardMapper extends BaseMapper<KwfDriverCard> {
 
 
+    /**
+     * 查询
+     * @param driverId 司机id
+     * @return
+     */
+    KwfDriverCard findByDriverId(String driverId);
+
 }
 }

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

@@ -12,4 +12,10 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 @Mapper
 public interface KwfDriverLicenseMapper extends BaseMapper<KwfDriverLicense> {
 public interface KwfDriverLicenseMapper extends BaseMapper<KwfDriverLicense> {
 
 
+    /**
+     * 查询
+     * @param driverId 司机id
+     * @return
+     */
+    KwfDriverLicense findByDriverId(String driverId);
 }
 }

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

@@ -2,7 +2,10 @@ package com.sckw.fleet.dao;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.fleet.model.KwfDriver;
 import com.sckw.fleet.model.KwfDriver;
+import com.sckw.fleet.model.vo.KwfDriverVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * @desc 司机信息 Mapper 接口
  * @desc 司机信息 Mapper 接口
@@ -12,4 +15,24 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 @Mapper
 public interface KwfDriverMapper extends BaseMapper<KwfDriver> {
 public interface KwfDriverMapper extends BaseMapper<KwfDriver> {
 
 
+    /**
+     * 分页查询
+     * @param params
+     * @return
+     */
+    List<KwfDriverVo> findPage(Map<String, Object> params);
+
+    /**
+     * 查询
+     * @param params
+     * @return
+     */
+    List<Map<String, Object>> findList(Map<String, Object> params);
+
+    /**
+     * 查询企业下司机信息
+     * @param params
+     * @return
+     */
+    KwfDriver findEntDriver(KwfDriver params);
 }
 }

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

@@ -12,4 +12,11 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 @Mapper
 public interface KwfDriverQualificationMapper extends BaseMapper<KwfDriverQualification> {
 public interface KwfDriverQualificationMapper extends BaseMapper<KwfDriverQualification> {
 
 
+    /**
+     * 查询
+     * @param driverId 司机id
+     * @return
+     */
+    KwfDriverQualification findByDriverId(String driverId);
+
 }
 }

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

@@ -0,0 +1,54 @@
+package com.sckw.fleet.model.dto;
+
+import jakarta.validation.constraints.Pattern;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc 司机身份证信息
+ * @date 2023/7/7 0007
+ */
+@Data
+public class KwfDriverCardDto {
+
+    /**
+     * 主键
+     */
+    private String id;
+
+    /**
+     * 司机主键
+     */
+    private String driverId;
+
+    /**
+     * 身份证号
+     */
+    @Pattern(regexp = "(^\\d{18}$)|(^\\d{15}$)", message = "身份证号码格式不正确!")
+    private String idcard;
+
+    /**
+     * 有效日期
+     */
+    private Date expireTime;
+
+    /**
+     * 联系地址
+     */
+    @Size(max=30, message = "联系地址长度不能大于100个字符!")
+    private String address;
+
+    /**
+     * 证书正面URL地址
+     */
+    @Size(max=100, message = "证书正面URL地址长度不能大于100个字符!")
+    private String certificateMian;
+
+    /**
+     * 证书反面URL地址
+     */
+    @Size(max=100, message = "证书反面URL地址长度不能大于1000个字符!")
+    private String certificateRevolt;
+}

+ 59 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfDriverDto.java

@@ -0,0 +1,59 @@
+package com.sckw.fleet.model.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Pattern;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+
+/**
+ * @author zk
+ * @desc 车队
+ * @date 2023/7/6 0006
+ */
+@Data
+public class KwfDriverDto {
+    /**
+     * 主键
+     */
+    private String id;
+
+    /**
+     * 车队名称
+     */
+    @NotBlank(message = "司机姓名不能为空!")
+    @Size(max=10, message = "司机姓名长度不能大于10个字符!")
+    private String name;
+
+    /**
+     * 联系电话
+     */
+    @NotBlank(message = "电话号码不能为空!")
+    @Pattern(regexp = "^1[3456789]\\d{9}$", message = "电话号码格式不正确!")
+    private String phone;
+
+    /**
+     * 身份证号
+     */
+    @Pattern(regexp = "(^\\d{18}$)|(^\\d{15}$)", message = "身份证号码格式不正确!")
+    private String idcard;
+
+    /**
+     * 车队班组主键ID
+     */
+    private String fleetId;
+
+    /**
+     * 身份证信息
+     */
+    private KwfDriverCardDto driverCard;
+
+    /**
+     *司机驾驶证信息
+     */
+    private KwfDriverLicenseDto driverLicense;
+
+    /**
+     *司机从业资格证
+     */
+    private KwfDriverQualificationDto driverQualification;
+}

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

@@ -0,0 +1,58 @@
+package com.sckw.fleet.model.dto;
+
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc 司机驾驶证信息
+ * @date 2023/7/7 0007
+ */
+@Data
+public class KwfDriverLicenseDto {
+
+    /**
+     * 主键
+     */
+    private String id;
+
+    /**
+     * 司机主键
+     */
+    private String driverId;
+
+    /**
+     * 驾驶证号
+     */
+    @Size(max=20, message = "驾驶证号长度不能大于20个字符!")
+    private String driverNo;
+
+    /**
+     * 准驾车型
+     */
+    private String type;
+
+    /**
+     * 有效日期
+     */
+    private Date expireTime;
+
+    /**
+     * 发证机关单位
+     */
+    @Size(max=20, message = "发证机关单位长度不能大于20个字符!")
+    private String grantUnit;
+
+    /**
+     * 证书正面URL地址
+     */
+    @Size(max=100, message = "证书正面URL地址长度不能大于100个字符!")
+    private String certificateMian;
+
+    /**
+     * 证书反面URL地址
+     */
+    @Size(max=100, message = "证书反面URL地址长度不能大于1000个字符!")
+    private String certificateRevolt;
+}

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

@@ -0,0 +1,58 @@
+package com.sckw.fleet.model.dto;
+
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc 司机从业资格证
+ * @date 2023/7/7 0007
+ */
+@Data
+public class KwfDriverQualificationDto {
+
+    /**
+     * 主键
+     */
+    private String id;
+
+    /**
+     * 司机主键
+     */
+    private String driverId;
+
+    /**
+     * 从业资格证号
+     */
+    @Size(max=20, message = "从业资格证号长度不能大于20个字符!")
+    private String qualiNo;
+
+    /**
+     * 准驾车型
+     */
+    private String type;
+
+    /**
+     * 有效日期
+     */
+    private Date expireTime;
+
+    /**
+     * 发证机关单位
+     */
+    @Size(max=20, message = "发证机关单位长度不能大于20个字符!")
+    private String grantUnit;
+
+    /**
+     * 证书正面URL地址
+     */
+    @Size(max=100, message = "证书正面URL地址长度不能大于100个字符!")
+    private String certificateMian;
+
+    /**
+     * 证书反面URL地址
+     */
+    @Size(max=100, message = "证书反面URL地址长度不能大于100个字符!")
+    private String certificateRevolt;
+}

+ 4 - 4
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfFleetDto.java

@@ -12,6 +12,7 @@ import lombok.Data;
  */
  */
 @Data
 @Data
 public class KwfFleetDto {
 public class KwfFleetDto {
+
     /**
     /**
      * 主键
      * 主键
      */
      */
@@ -21,25 +22,24 @@ public class KwfFleetDto {
      * 车队名称
      * 车队名称
      */
      */
     @NotBlank(message = "车队班组不能为空!")
     @NotBlank(message = "车队班组不能为空!")
-    @Size(max=20, message = "输入长度不能大于20个字符!")
+    @Size(max=20, message = "车队班组长度不能大于20个字符!")
     private String name;
     private String name;
 
 
     /**
     /**
      * 车队联系人
      * 车队联系人
      */
      */
-    //@NotBlank(message = "车队长不能为空!")
-    @Size(max=20, message = "输入长度不能大于20个字符!")
+    @Size(max=20, message = "车队联系人长度不能大于20个字符!")
     private String contacts;
     private String contacts;
 
 
     /**
     /**
      * 联系电话
      * 联系电话
      */
      */
-    //@NotBlank(message = "联系电话不能为空!")
     @Pattern(regexp = "^1[3456789]\\d{9}$", message = "联系电话格式不正确!")
     @Pattern(regexp = "^1[3456789]\\d{9}$", message = "联系电话格式不正确!")
     private String phone;
     private String phone;
 
 
     /**
     /**
      * 备注
      * 备注
      */
      */
+    @Size(max=200, message = "备注信息长度不能大于200个字符!")
     private String remark;
     private String remark;
 }
 }

+ 9 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfDriverVo.java

@@ -0,0 +1,9 @@
+package com.sckw.fleet.model.vo;
+
+/**
+ * @author zk
+ * @desc TODO
+ * @date 2023/7/7 0007
+ */
+public class KwfDriverVo {
+}

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

@@ -1,10 +1,25 @@
 package com.sckw.fleet.service;
 package com.sckw.fleet.service;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.PasswordUtils;
+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.core.web.response.HttpResult;
-import com.sckw.fleet.dao.KwfDriverMapper;
-import com.sckw.fleet.model.KwfDriver;
+import com.sckw.fleet.dao.*;
+import com.sckw.fleet.model.*;
+import com.sckw.fleet.model.dto.KwfDriverCardDto;
+import com.sckw.fleet.model.dto.KwfDriverDto;
+import com.sckw.fleet.model.dto.KwfDriverLicenseDto;
+import com.sckw.fleet.model.dto.KwfDriverQualificationDto;
+import com.sckw.fleet.model.vo.KwfDriverVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -18,6 +33,14 @@ public class KwfDriverService {
 
 
     @Autowired
     @Autowired
     KwfDriverMapper driverDao;
     KwfDriverMapper driverDao;
+    @Autowired
+    KwfDriverEntMapper driverEntDao;
+    @Autowired
+    KwfDriverCardMapper KwfDriverCardDao;
+    @Autowired
+    KwfDriverLicenseMapper KwfDriverLicenseDao;
+    @Autowired
+    KwfDriverQualificationMapper KwfDriverQualificationDao;
 
 
     /**
     /**
      * @param key 逐渐id
      * @param key 逐渐id
@@ -35,8 +58,8 @@ public class KwfDriverService {
      * @author zk
      * @author zk
      * @date 2023/7/6
      * @date 2023/7/6
      **/
      **/
-    public List<KwfDriver> findPage(Map<String, Object> params) {
-        return driverDao.selectPage(null, null);
+    public List<KwfDriverVo> findPage(Map<String, Object> params) {
+        return driverDao.findPage(params);
     }
     }
 
 
     /**
     /**
@@ -50,24 +73,249 @@ public class KwfDriverService {
     }
     }
 
 
     /**
     /**
-     * @param params 分页参数
+     * @param params 参数
      * @desc 新增司机
      * @desc 新增司机
      * @author zk
      * @author zk
      * @date 2023/7/6
      * @date 2023/7/6
      **/
      **/
-    public HttpResult add(KwfDriver params) {
-        driverDao.insert(params);
-        return null;
+    public HttpResult add(KwfDriverDto params) {
+        /**司机信息**/
+        KwfDriver driver = new KwfDriver();
+        BeanUtils.copyProperties(params, driver);
+        HttpResult result = driverEdit(driver);
+        if (result != null) {
+            return result;
+        }
+
+        /**身份证信息**/
+        params.getDriverCard().setDriverId(params.getId());
+        driverCardEdit(params.getDriverCard());
+
+        /**司机驾驶证信息**/
+        params.getDriverLicense().setDriverId(params.getId());
+        driverLicenseEdit(params.getDriverLicense());
+
+        /**司机从业资格证**/
+        params.getDriverQualification().setDriverId(params.getId());
+        driverQualificationEdit(params.getDriverQualification());
+
+        /**司机信息与企业关联信息**/
+        driverEntEdit(driver);
+        return HttpResult.ok("司机信息新增成功!");
     }
     }
 
 
     /**
     /**
-     * @param params 分页参数
+     * @param params 参数
      * @desc 修改司机
      * @desc 修改司机
      * @author zk
      * @author zk
      * @date 2023/7/6
      * @date 2023/7/6
      **/
      **/
-    public HttpResult update(KwfDriver params) {
-        driverDao.updateById(params);
+    public HttpResult update(KwfDriverDto params) {
+        /**数据校验**/
+        if (StringUtils.isBlank(params.getId())) {
+            return HttpResult.error(HttpStatus.PARAMETERS_PATTERN_ERROR_CODE,"司机信息ID不能为空!");
+        }
+        KwfDriver driver = driverDao.selectById(params.getId());
+        if (driver == null) {
+            return HttpResult.error("司机信息不存在!");
+        }
+
+        /**司机信息**/
+        BeanUtils.copyProperties(params, driver);
+        HttpResult result = driverEdit(driver);
+        if (result != null) {
+            return result;
+        }
+
+        /**身份证信息**/
+        params.getDriverCard().setDriverId(params.getId());
+        driverCardEdit(params.getDriverCard());
+
+        /**司机驾驶证信息**/
+        params.getDriverLicense().setDriverId(params.getId());
+        driverLicenseEdit(params.getDriverLicense());
+
+        /**司机从业资格证**/
+        params.getDriverQualification().setDriverId(params.getId());
+        driverQualificationEdit(params.getDriverQualification());
+        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(",");
+        KwfDriver driverQuery = new KwfDriver();
+        driverQuery.setEntId(LoginUserHolder.getEntId());
+        for (String id : idArray) {
+            driverQuery.setId(Long.parseLong(id));
+            KwfDriver driver = driverDao.findEntDriver(driverQuery);
+            if (driver != null) {
+                driver.setDelFlag(Global.YES);
+                if (driverDao.updateById(driver) <= 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 driverEdit(KwfDriver params) {
+        if (StringUtils.isBlank(params.getId())) {
+            /**唯一性交易**/
+            List<Map<String, Object>> drivers = driverDao.findList(new HashMap(){{ put("phone", params.getPhone()); }});
+            if (!CollectionUtils.isEmpty(drivers)) {
+                return HttpResult.error("电话号码已存在!");
+            }
+
+            /**新增**/
+            String md5 = PasswordUtils.md5(params.getPhone());
+            String password = PasswordUtils.entryptPassword(md5);
+            params.setSalt(PasswordUtils.getSaltSubPwd(password));
+            params.setPassword(password);
+            params.setEntId(LoginUserHolder.getEntId());
+            int count = driverDao.insert(params);
+            return count > 0 ? null : HttpResult.error("司机信息新增失败!");
+        } else {
+            /**唯一性交易**/
+            List<Map<String, Object>> drivers = driverDao.findList(new HashMap(){{ put("phone", params.getPhone()); }});
+            //校验list中对象key值是否存在与value不一致的情况
+            boolean bool = CollectionUtils.listByKeyValueV1(drivers, "id", String.valueOf(params.getId()));
+            if (bool) {
+                return HttpResult.error("司机信息电话号码已存在!");
+            }
+
+            /**更新**/
+            int count = driverDao.updateById(params);
+            return count > 0 ? null : HttpResult.error("司机信息修改失败!");
+        }
+    }
+
+    /**
+     * @param params 参数
+     * @desc 新增身份证信息
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public HttpResult driverCardEdit(KwfDriverCardDto params) {
+        /**数据copy**/
+        KwfDriverCard driverCard = new KwfDriverCard();
+        BeanUtils.copyProperties(params, driverCard);
+
+        /**数据更新**/
+        KwfDriverCard card = KwfDriverCardDao.findByDriverId(params.getDriverId());
+        if (card == null) {
+            int count = KwfDriverCardDao.insert(driverCard);
+        } else {
+            driverCard.setId(card.getId());
+            int count = KwfDriverCardDao.updateById(driverCard);
+        }
         return null;
         return null;
     }
     }
+
+    /**
+     * @param key 参数
+     * @desc 查询身份证信息
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public KwfDriverCard findCarByKey(Long key) {
+        return KwfDriverCardDao.findByDriverId(String.valueOf(key));
+    }
+
+    /**
+     * @param params 参数
+     * @desc 新增司机驾驶证信息
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public HttpResult driverLicenseEdit(KwfDriverLicenseDto params) {
+        /**数据copy**/
+        KwfDriverLicense driverLicense = new KwfDriverLicense();
+        BeanUtils.copyProperties(params, driverLicense);
+
+        /**数据更新**/
+        KwfDriverLicense license = KwfDriverLicenseDao.findByDriverId(params.getDriverId());
+        if (license == null) {
+            int count = KwfDriverLicenseDao.insert(driverLicense);
+        } else {
+            driverLicense.setId(license.getId());
+            int count = KwfDriverLicenseDao.updateById(driverLicense);
+        }
+        return null;
+    }
+
+    /**
+     * @param key 参数
+     * @desc 查询司机驾驶证信息
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public KwfDriverLicense findLicenseByKey(Long key) {
+        return KwfDriverLicenseDao.findByDriverId(String.valueOf(key));
+    }
+
+    /**
+     * @param params 参数
+     * @desc 新增司机从业资格证
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public HttpResult driverQualificationEdit(KwfDriverQualificationDto params) {
+        /**数据copy**/
+        KwfDriverQualification driverQual = new KwfDriverQualification();
+        BeanUtils.copyProperties(params, driverQual);
+
+        /**数据更新**/
+        KwfDriverQualification qualification = KwfDriverQualificationDao.findByDriverId(params.getDriverId());
+        if (qualification == null) {
+            int count = KwfDriverQualificationDao.insert(driverQual);
+        } else {
+            driverQual.setId(qualification.getId());
+            int count = KwfDriverQualificationDao.updateById(driverQual);
+        }
+        return null;
+    }
+
+    /**
+     * @param key 参数
+     * @desc 查询司机从业资格证
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public KwfDriverQualification findQualificationByKey(Long key) {
+        return KwfDriverQualificationDao.findByDriverId(String.valueOf(key));
+    }
+
+    /**
+     * @param params 参数
+     * @desc 新增司机信息与企业关联信息
+     * @author zk
+     * @date 2023/7/7
+     **/
+    public void driverEntEdit(KwfDriver params) {
+        if (StringUtils.isBlank(params.getId())) {
+            KwfDriverEnt driverEnt = new KwfDriverEnt();
+            driverEnt.setDriverId(params.getId());
+            driverEnt.setEntId(params.getEntId());
+            driverEntDao.insert(driverEnt);
+        }
+    }
+
 }
 }

+ 40 - 4
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfFleetService.java

@@ -1,7 +1,11 @@
 package com.sckw.fleet.service;
 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.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 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.context.LoginUserHolder;
 import com.sckw.core.web.model.LoginUserInfo;
 import com.sckw.core.web.model.LoginUserInfo;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.HttpResult;
@@ -44,8 +48,13 @@ public class KwfFleetService {
      * @date 2023/7/6
      * @date 2023/7/6
      **/
      **/
     public List<KwfFleetVo> findPage(Map<String, Object> params) {
     public List<KwfFleetVo> findPage(Map<String, Object> params) {
+        /**获取查询数据集**/
         params.put("entId", LoginUserHolder.getEntId());
         params.put("entId", LoginUserHolder.getEntId());
         List<KwfFleetVo> fleets = fleetDao.findPage(params);
         List<KwfFleetVo> fleets = fleetDao.findPage(params);
+
+        /**数据组装**/
+        //dubbo获取用户信息
+
         return fleets;
         return fleets;
     }
     }
 
 
@@ -67,16 +76,17 @@ public class KwfFleetService {
      * @date 2023/7/6
      * @date 2023/7/6
      **/
      **/
     public HttpResult add(KwfFleetDto params) {
     public HttpResult add(KwfFleetDto params) {
-        /**车队班组唯一性交易**/
+        /**唯一性交易**/
         List<Map<String, Object>> fleets = fleetDao.findList(new HashMap(){{
         List<Map<String, Object>> fleets = fleetDao.findList(new HashMap(){{
             put("name", params.getName()); put("entId", LoginUserHolder.getEntId());}});
             put("name", params.getName()); put("entId", LoginUserHolder.getEntId());}});
         if (!CollectionUtils.isEmpty(fleets)) {
         if (!CollectionUtils.isEmpty(fleets)) {
             return HttpResult.error("车队班组已存在!");
             return HttpResult.error("车队班组已存在!");
         }
         }
 
 
-        /**车队班组新增**/
+        /**新增**/
         KwfFleet fleet = new KwfFleet();
         KwfFleet fleet = new KwfFleet();
         BeanUtils.copyProperties(params, fleet);
         BeanUtils.copyProperties(params, fleet);
+        fleet.setEntId(LoginUserHolder.getEntId());
         int count = fleetDao.insert(fleet);
         int count = fleetDao.insert(fleet);
         return count > 0 ? HttpResult.ok("车队信息新增成功!") : HttpResult.error("车队信息新增失败!");
         return count > 0 ? HttpResult.ok("车队信息新增成功!") : HttpResult.error("车队信息新增失败!");
     }
     }
@@ -88,7 +98,7 @@ public class KwfFleetService {
      * @date 2023/7/6
      * @date 2023/7/6
      **/
      **/
     public HttpResult update(KwfFleetDto params) {
     public HttpResult update(KwfFleetDto params) {
-        /**车队班组唯一性交易**/
+        /**唯一性交易**/
         List<Map<String, Object>> fleets = fleetDao.findList(new HashMap(){{
         List<Map<String, Object>> fleets = fleetDao.findList(new HashMap(){{
             put("name", params.getName()); put("entId", LoginUserHolder.getEntId());}});
             put("name", params.getName()); put("entId", LoginUserHolder.getEntId());}});
         //校验list中对象key值是否存在与value不一致的情况
         //校验list中对象key值是否存在与value不一致的情况
@@ -97,10 +107,36 @@ public class KwfFleetService {
             return HttpResult.error("车队班组已存在!");
             return HttpResult.error("车队班组已存在!");
         }
         }
 
 
-        /**车队班组更新**/
+        /**更新**/
         KwfFleet fleet = new KwfFleet();
         KwfFleet fleet = new KwfFleet();
         BeanUtils.copyProperties(params, fleet);
         BeanUtils.copyProperties(params, fleet);
         int count = fleetDao.updateById(fleet);
         int count = fleetDao.updateById(fleet);
         return count > 0 ? HttpResult.ok("车队信息修改成功!") : HttpResult.error("车队信息修改失败!");
         return count > 0 ? HttpResult.ok("车队信息修改成功!") : HttpResult.error("车队信息修改失败!");
     }
     }
+
+    /**
+     * @param {ids:主键ID(多个以逗号隔开)}
+     * @description 删除
+     * @author zk
+     * @date 2023/7/6
+     **/
+    public HttpResult del(String ids) {
+        /*1.数据校验*/
+        if (StringUtils.isBlank(ids)) {
+            return HttpResult.error("请选择要删除的数据!");
+        }
+
+        String[] idArray = ids.split(",");
+        for (String id : idArray) {
+            KwfFleet fleet = fleetDao.selectById(id);
+            if (fleet != null) {
+                fleet.setDelFlag(Global.YES);
+                if (fleetDao.updateById(fleet) <= 0) {
+                    throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.DELETE_FAIL);
+                }
+            }
+        }
+        return HttpResult.ok("删除成功!");
+    }
+
 }
 }

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

@@ -2,4 +2,13 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.fleet.dao.KwfDriverCardMapper">
 <mapper namespace="com.sckw.fleet.dao.KwfDriverCardMapper">
 
 
+    <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,
+            certificate_revolt certificateRevolt, remark, status, create_by createBy, create_time createTime,
+            update_by updateBy, update_time updateTime
+        from kwf_driver_card
+        where del_flag = 0 and driver_id = #{driverId, jdbcType=VARCHAR}
+    </select>
+
 </mapper>
 </mapper>

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

@@ -2,4 +2,13 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.fleet.dao.KwfDriverLicenseMapper">
 <mapper namespace="com.sckw.fleet.dao.KwfDriverLicenseMapper">
 
 
+    <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,
+            create_time createTime, update_by updateBy, update_time updateTime
+        from kwf_driver_license
+        where del_flag = 0 and driver_id = #{driverId, jdbcType=VARCHAR}
+    </select>
+
 </mapper>
 </mapper>

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

@@ -2,4 +2,78 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.fleet.dao.KwfDriverMapper">
 <mapper namespace="com.sckw.fleet.dao.KwfDriverMapper">
 
 
+    <select id="findPage" resultType="com.sckw.fleet.model.vo.KwfDriverVo" parameterType="java.util.Map" >
+        SELECT
+            dr.id, dr.name, dr.phone, dr.idcard, drc.expire_time idcardExpireTime, drc.address, drl.driver_no driverNo,
+            drl.type licenseType, drl.expire_time licenseExpireTime, drl.grant_unit licenseGrantUnit,
+            drq.quali_no qualiNo, dre.ent_id entId, dr.create_by createBy, dr.create_time crateTime,
+            dr.update_time updateTime, dr.remark, trr.truck_no truckNo
+        from kwf_driver dr
+        left join kwf_driver_ent dre on dre.driver_id = dr.id
+        left join kwf_driver_card drc on drc.driver_id = dr.id
+        left join kwf_driver_license drl on drl.driver_id = dr.id
+        left join kwf_driver_qualification drq on drq.driver_id = dr.id
+        left join kwf_truck_report trr on trr.ent_id = dre.ent_id and trr.driver_id = dr.id
+        where dr.del_flag = 0 and dre.del_flag = 0 and drc.del_flag = 0 and drl.del_flag = 0 and drq.del_flag = 0
+        <if test="entId != null and entId != ''">
+            and dre.ent_id = #{entId, jdbcType=VARCHAR}
+        </if>
+        <if test="name != null and name != ''">
+            and dr.name = #{name, jdbcType=VARCHAR}
+        </if>
+        <if test="idcard != null and idcard != ''">
+            and dr.idcard = #{idcard, jdbcType=VARCHAR}
+        </if>
+        <if test="phone != null and phone != ''">
+            and dr.phone = #{phone, jdbcType=VARCHAR}
+        </if>
+        <if test="keywords != null and keywords != ''">
+            and (
+            dr.name like concat('%',#{keyWords},'%')
+            or dr.idcard like concat('%',#{keyWords},'%')
+            or dr.phone like concat('%',#{keyWords},'%')
+            )
+        </if>
+        ORDER BY dr.create_time desc
+    </select>
+
+    <select id="findList" resultType="java.util.Map" parameterType="java.util.Map" >
+        SELECT
+            dr.id, name, phone, salt, password, idcard, total_complete totalComplete,
+            total_take totalTake, total_weight totalWeight, dre.ent_id entId
+        from kwf_driver dr
+        left join kwf_driver_ent dre on dre.driver_id = dr.id
+        where dr.del_flag = 0 and dre.del_flag = 0
+        <if test="entId != null and entId != ''">
+            and dre.ent_id = #{entId, jdbcType=VARCHAR}
+        </if>
+        <if test="name != null and name != ''">
+            and dr.name = #{name, jdbcType=VARCHAR}
+        </if>
+        <if test="idcard != null and idcard != ''">
+            and dr.idcard = #{idcard, jdbcType=VARCHAR}
+        </if>
+        <if test="phone != null and phone != ''">
+            and dr.phone = #{phone, jdbcType=VARCHAR}
+        </if>
+        <if test="keywords != null and keywords != ''">
+            and (
+            dr.name like concat('%',#{keyWords},'%')
+            or dr.idcard like concat('%',#{keyWords},'%')
+            or dr.phone like concat('%',#{keyWords},'%')
+            )
+        </if>
+        ORDER BY dr.create_time desc
+    </select>
+
+    <select id="findEntDriver" resultType="com.sckw.fleet.model.KwfDriver" parameterType="com.sckw.fleet.model.KwfDriver" >
+        SELECT
+            dr.id, name, phone, salt, password, idcard, total_complete totalComplete,
+            total_take totalTake, total_weight totalWeight, dre.ent_id entId
+            from kwf_driver dr
+            left join kwf_driver_ent dre on dre.driver_id = dr.id
+        where dr.del_flag = 0 and dre.del_flag = 0
+        and dre.ent_id = #{entId, jdbcType=VARCHAR}
+        and dr.id = #{id, jdbcType=VARCHAR}
+    </select>
 </mapper>
 </mapper>

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

@@ -2,4 +2,13 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.fleet.dao.KwfDriverQualificationMapper">
 <mapper namespace="com.sckw.fleet.dao.KwfDriverQualificationMapper">
 
 
+    <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,
+            create_time createTime, update_by updateBy, update_time updateTime
+        from kwf_driver_qualification
+        where del_flag = 0 and driver_id = #{driverId, jdbcType=VARCHAR}
+    </select>
+
 </mapper>
 </mapper>

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

@@ -59,11 +59,29 @@
             <artifactId>sckw-common-sentinel</artifactId>
             <artifactId>sckw-common-sentinel</artifactId>
         </dependency>
         </dependency>
 
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-mongo</artifactId>
+        </dependency>
+
         <dependency>
         <dependency>
             <groupId>com.sckw</groupId>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-system-api</artifactId>
             <artifactId>sckw-system-api</artifactId>
         </dependency>
         </dependency>
 
 
+
+        <!--junit-->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
 </project>
 </project>

+ 44 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/consumer/SckwBusSumConsumer.java

@@ -0,0 +1,44 @@
+package com.sckw.report.consumer;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.sckw.mongo.model.SckwTradeOrder;
+import com.sckw.report.dao.SckwTradeOrderRepository;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import java.util.Date;
+import java.util.Map;
+import java.util.function.Consumer;
+
+/**
+ * @author zk
+ * @desc 接收业务汇总消息
+ * @date 2023/7/8 0008
+ */
+@Configuration
+@RequiredArgsConstructor
+@Slf4j
+public class SckwBusSumConsumer {
+    @Autowired
+    SckwTradeOrderRepository tradeOrderRepository;
+
+    @Bean
+    public Consumer<Map> sckwBusSum() {
+        return sckwBusSum -> {
+            try {
+                System.out.println(new Date()+"---------"+JSON.toJSONString(sckwBusSum));
+                addMongodb(sckwBusSum);
+            } catch (Exception e) {
+                log.error("处理业务数据汇总消息:{}异常", JSON.toJSONString(sckwBusSum), e);
+            }
+        };
+    }
+
+    public void addMongodb(Map<String, Object> sckwBusSum) {
+        SckwTradeOrder order = JSONObject.parseObject(JSON.toJSONString(sckwBusSum), SckwTradeOrder.class);
+        tradeOrderRepository.insert(order);
+    }
+}

+ 77 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwFleetController.java

@@ -0,0 +1,77 @@
+package com.sckw.report.controller;
+
+import com.alibaba.fastjson2.JSON;
+import com.sckw.core.exception.SystemException;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.mongo.model.SckwTradeOrder;
+import com.sckw.report.dao.SckwTradeOrderRepository;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.stream.function.StreamBridge;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * @author zk
+ * @desc TODO
+ * @date 2023/7/8 0008
+ */
+@AllArgsConstructor
+@RestController
+@RequestMapping("/kwFleet")
+public class KwFleetController {
+
+    @Autowired
+    SckwTradeOrderRepository tradeOrderRepository;
+
+    @Resource
+    StreamBridge streamBridge;
+
+    /**
+     * @param
+     * @desc 根据主键查询
+     * @author zk
+     * @date 2023/7/6
+     **/
+    @GetMapping("/detail")
+    public HttpResult selectByKey() throws SystemException {
+        List<SckwTradeOrder> list = new ArrayList<SckwTradeOrder>();
+        Long begtime = System.currentTimeMillis();
+        for (int i=0; i<10000; i++) {
+            SckwTradeOrder order = new SckwTradeOrder();
+            order.setTOrderId(System.currentTimeMillis() + i);
+            order.setTOrderNo("O" + order.getTOrderId());
+            order.setContractName("xxxx");
+            list.add(order);
+        }
+        tradeOrderRepository.insert(list);
+        Long enttime = System.currentTimeMillis();
+        System.out.println("------------------"+(enttime - begtime));
+        return HttpResult.ok();
+    }
+
+    /**
+     * @param
+     * @desc 根据主键查询
+     * @author zk
+     * @date 2023/7/6
+     **/
+    @GetMapping("/detailV1")
+    public HttpResult selectByKey1() throws SystemException {
+        for (int i=0; i<1000; i++) {
+            Long id = System.currentTimeMillis()+i;
+            HashMap map = new HashMap();
+            map.put("tOrderId", id);
+            map.put("tOrderNo", "D" + id);
+            map.put("contractName", "xxxx");
+            streamBridge.send("sckw-busSum", JSON.toJSONString(map));
+            System.out.println("------------------"+i);
+        }
+        return HttpResult.ok();
+    }
+}

+ 12 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/dao/SckwTradeOrderRepository.java

@@ -0,0 +1,12 @@
+package com.sckw.report.dao;
+
+import com.sckw.mongo.model.SckwTradeOrder;
+import org.springframework.data.mongodb.repository.MongoRepository;
+
+/**
+ * @author zk
+ * @desc MongoDB-交易订单信息
+ * @date 2023/7/8 0008
+ */
+public interface SckwTradeOrderRepository extends MongoRepository<SckwTradeOrder, Long> {
+}

+ 51 - 0
sckw-modules/sckw-report/src/test/java/com/sckw/report/SckwTradeOrderTest.java

@@ -0,0 +1,51 @@
+package com.sckw.report;
+
+import com.sckw.mongo.model.SckwTradeOrder;
+import com.sckw.report.dao.SckwTradeOrderRepository;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zk
+ * @desc TODO
+ * @date 2023/7/8 0008
+ */
+@SpringBootTest
+public class SckwTradeOrderTest {
+    @Autowired
+    SckwTradeOrderRepository tradeOrderRepository;
+
+    /**
+     * 插入单条数据
+     */
+    @Test
+    public void insertOne() {
+        SckwTradeOrder order = new SckwTradeOrder();
+        order.setTOrderId(System.currentTimeMillis());
+        order.setTOrderNo("O" + order.getTOrderId());
+        tradeOrderRepository.insert(order);
+    }
+
+    /**
+     * 插入多条数据
+     */
+    @Test
+    public void insertMany() {
+        List<SckwTradeOrder> list = new ArrayList<SckwTradeOrder>();
+        Long begtime = System.currentTimeMillis();
+        for (int i=0; i<10000; i++) {
+            SckwTradeOrder order = new SckwTradeOrder();
+            order.setTOrderId(System.currentTimeMillis() + i);
+            order.setTOrderNo("O" + order.getTOrderId());
+            list.add(order);
+        }
+        tradeOrderRepository.insert(list);
+        Long enttime = System.currentTimeMillis();
+        System.out.println("------------------"+(enttime - begtime));
+    }
+
+
+}

+ 56 - 4
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -9,6 +9,7 @@ import com.sckw.core.utils.StringUtils;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.*;
 import com.sckw.system.api.model.dto.res.*;
+import com.sckw.system.api.model.pojo.DeptInfoPojo;
 import com.sckw.system.dao.SysDictDao;
 import com.sckw.system.dao.SysDictDao;
 import com.sckw.system.model.KwsUser;
 import com.sckw.system.model.KwsUser;
 import com.sckw.system.model.SysDict;
 import com.sckw.system.model.SysDict;
@@ -71,7 +72,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
      */
      */
     @Override
     @Override
     public SysDictResDto queryDictByTypeAndValue(String type, String value) {
     public SysDictResDto queryDictByTypeAndValue(String type, String value) {
-        String key = Global.REDIS_SYS_DICT_PREFIX + type + "#" + value;
+        String key = Global.REDIS_SYS_DICT_PREFIX + type + Global.POUND + value;
         String dictCache = RedissonUtils.getString(key);
         String dictCache = RedissonUtils.getString(key);
         //从redis查,查不到从数据库查,并写入redis
         //从redis查,查不到从数据库查,并写入redis
         if (StringUtils.isBlank(dictCache)) {
         if (StringUtils.isBlank(dictCache)) {
@@ -87,6 +88,37 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         return JSONObject.parseObject(dictCache, SysDictResDto.class);
         return JSONObject.parseObject(dictCache, SysDictResDto.class);
     }
     }
 
 
+    /**
+     * @param type 字典类型
+     * @return SysDictResDto
+     * @desc: 根据字典类型和key查字典
+     * @author: czh
+     * @date: 2023/7/7
+     */
+    @Override
+    public List<SysDictGroupResDto> queryDictGroupByType(String type) {
+        List<SysDict> sysDicts = sysDictDao.queryByType(type);
+        if (CollectionUtils.isEmpty(sysDicts)) {
+            return Collections.emptyList();
+        }
+
+        //取最顶层去递归
+        List<SysDictGroupResDto> list = new ArrayList<>();
+        sysDicts = sysDicts.stream().filter(item -> item.getParentId().equals(String.valueOf(Global.NO))).toList();
+        if (CollectionUtils.isEmpty(sysDicts)) {
+            return Collections.emptyList();
+        }
+
+        sysDicts.forEach(item -> {
+            SysDictGroupResDto sysDictGroupResDto = queryDictGroupByTypeAndValue(type, item.getValue());
+            if (!Objects.isNull(sysDictGroupResDto)) {
+                list.add(sysDictGroupResDto);
+            }
+        });
+
+        return list;
+    }
+
     /**
     /**
      * @param  type 字典类型,value key
      * @param  type 字典类型,value key
      * @return SysDictGroupResDto
      * @return SysDictGroupResDto
@@ -96,7 +128,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
      */
      */
     @Override
     @Override
     public SysDictGroupResDto queryDictGroupByTypeAndValue(String type, String value) {
     public SysDictGroupResDto queryDictGroupByTypeAndValue(String type, String value) {
-        String key = Global.REDIS_SYS_DICT_GROUP_PREFIX + type + "#" + value;
+        String key = Global.REDIS_SYS_DICT_GROUP_PREFIX + type + Global.POUND + value;
         String dictCache = RedissonUtils.getString(key);
         String dictCache = RedissonUtils.getString(key);
         //从redis查,查不到从数据库查,并写入redis
         //从redis查,查不到从数据库查,并写入redis
         if (StringUtils.isBlank(dictCache)) {
         if (StringUtils.isBlank(dictCache)) {
@@ -164,12 +196,32 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
             userCacheResDto.setRoleInfo(remoteBaseService.queryRoleInfoByUserId(userId));
             userCacheResDto.setRoleInfo(remoteBaseService.queryRoleInfoByUserId(userId));
 
 
             List<KwsUserDeptResDto> kwsUserDeptResDtos = remoteBaseService.queryUserDeptByUserId(userId);
             List<KwsUserDeptResDto> kwsUserDeptResDtos = remoteBaseService.queryUserDeptByUserId(userId);
-            if (!CollectionUtils.isEmpty(kwsUserDeptResDtos)) {
+            if (CollectionUtils.isEmpty(kwsUserDeptResDtos)) {
+                return userCacheResDto;
+            }
+
+            List<Long> deptIds = kwsUserDeptResDtos.stream().map(KwsUserDeptResDto::getDeptId).toList();
+            List<KwsDeptResDto> kwsDeptResDtos = remoteBaseService.queryDeptByIds(deptIds);
+            if (CollectionUtils.isEmpty(kwsDeptResDtos)) {
+                return userCacheResDto;
             }
             }
 
 
+            Long entId = kwsDeptResDtos.get(0).getEntId();
+            KwsEnterpriseResDto kwsEnterpriseResDto = remoteBaseService.queryEnterpriseById(entId);
+            if (Objects.isNull(kwsEnterpriseResDto)) {
+                return userCacheResDto;
+            }
+
+            EntCacheResDto entCacheResDto = new EntCacheResDto();
+            BeanUtils.copyProperties(kwsEnterpriseResDto, entCacheResDto);
+            entCacheResDto.setDeptInfo(BeanUtils.copyToList(kwsDeptResDtos, DeptInfoPojo.class));
+            entCacheResDto.setCertificateInfo(remoteBaseService.queryCertificateByEntId(entId));
+            userCacheResDto.setEntInfo(entCacheResDto);
+            RedissonUtils.putString(key, JSON.toJSONString(userCacheResDto), Global.COMMON_EXPIRE);
+            return userCacheResDto;
         }
         }
 
 
-        return null;
+        return JSONObject.parseObject(dictCache, UserCacheResDto.class);
     }
     }
 
 
     /**
     /**