diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportShip.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportShip.java
index 3fdcc55..afccdd0 100644
--- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportShip.java
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportShip.java
@@ -32,6 +32,7 @@ import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
+import java.math.BigDecimal;
import java.time.LocalDate;
/**
@@ -57,12 +58,66 @@ public class TransportShip extends TenantEntity {
@Schema(description = "所属组织")
private String organizationName;
+ @Schema(description = "安放龙骨日期")
+ private LocalDate keelLayingDate;
+
+ @Schema(description = "建造完工日期")
+ private LocalDate buildCompletionDate;
+
+ @Schema(description = "总长")
+ private BigDecimal totalLength;
+
+ @Schema(description = "船宽")
+ private BigDecimal shipWidth;
+
+ @Schema(description = "型深")
+ private BigDecimal moldedDepth;
+
+ @Schema(description = "最大船高")
+ private BigDecimal maxShipHeight;
+
+ @Schema(description = "空载吃水")
+ private BigDecimal lightDraft;
+
+ @Schema(description = "满载吃水")
+ private BigDecimal fullLoadDraft;
+
+ @Schema(description = "航区")
+ private String navigationArea;
+
+ @Schema(description = "所有权登记号码")
+ private String ownershipRegistrationNo;
+
+ @Schema(description = "初次登记号码")
+ private String initialRegistrationNo;
+
+ @Schema(description = "船舶所有人")
+ private String shipOwner;
+
+ @Schema(description = "取得所有权日期")
+ private LocalDate ownershipAcquisitionDate;
+
@Schema(description = "船检登记号")
private String shipInspectionNo;
@Schema(description = "船舶类型")
private String shipType;
+ @Schema(description = "总吨")
+ private BigDecimal grossTonnage;
+
+ @Schema(description = "净吨")
+ private BigDecimal netTonnage;
+
+ @Schema(description = "船舶所有权证书图片")
+ private String ownershipCertImage;
+
+ @Schema(description = "内河船舶安全与环保证书图片")
+ private String safetyCertImage;
+
+ @Schema(description = "国籍证有效期自")
+ private LocalDate nationalityCertStartDate;
+
@Schema(description = "国籍证有效期至")
private LocalDate nationalityCertEndDate;
@@ -72,6 +127,9 @@ public class TransportShip extends TenantEntity {
@Schema(description = "国籍证图片")
private String nationalityCertImage;
+ @Schema(description = "最低安全配员证书有效期自")
+ private LocalDate safeManningCertStartDate;
+
@Schema(description = "最低安全配员证书有效期至")
private LocalDate safeManningCertEndDate;
@@ -81,6 +139,12 @@ public class TransportShip extends TenantEntity {
@Schema(description = "最低安全配员证书图片")
private String safeManningCertImage;
+ @Schema(description = "营业运输证编号")
+ private String businessTransportCertNo;
+
+ @Schema(description = "营业运输证发证日期")
+ private LocalDate businessTransportCertIssueDate;
+
@Schema(description = "营业运输证有效期至")
private LocalDate businessTransportCertEndDate;
@@ -90,6 +154,9 @@ public class TransportShip extends TenantEntity {
@Schema(description = "营业运输证图片")
private String businessTransportCertImage;
+ @Schema(description = "起租日期")
+ private LocalDate leaseStartDate;
+
@Schema(description = "承租有效期至")
private LocalDate leaseEndDate;
@@ -99,6 +166,12 @@ public class TransportShip extends TenantEntity {
@Schema(description = "承租合同图片")
private String leaseContractImage;
+ @Schema(description = "船舶承租人")
+ private String shipLessee;
+
+ @Schema(description = "船舶经营人")
+ private String shipOperator;
+
@Schema(description = "备注")
private String remark;
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportVehicle.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportVehicle.java
index d24c906..4688695 100644
--- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportVehicle.java
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportVehicle.java
@@ -58,6 +58,11 @@ public class TransportVehicle extends TenantEntity {
*/
@Schema(description = "车牌号")
private String plateNo;
+ /**
+ * 车牌颜色
+ */
+ @Schema(description = "车牌颜色")
+ private String plateColor;
/**
* 车辆类型
*/
@@ -134,10 +139,25 @@ public class TransportVehicle extends TenantEntity {
@Schema(description = "行驶证长期有效")
private Integer drivingLicenseLongTerm;
/**
- * 行驶证图片
+ * 行驶证主页正面
*/
- @Schema(description = "行驶证图片")
+ @Schema(description = "行驶证主页正面")
private String drivingLicenseImage;
+ /**
+ * 行驶证主页反面
+ */
+ @Schema(description = "行驶证主页反面")
+ private String drivingLicenseMainBack;
+ /**
+ * 行驶证副页正面
+ */
+ @Schema(description = "行驶证副页正面")
+ private String drivingLicenseViceFront;
+ /**
+ * 行驶证副页反面
+ */
+ @Schema(description = "行驶证副页反面")
+ private String drivingLicenseViceBack;
/**
* 道路运输证号
*/
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/DriverController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/DriverController.java
index e9a8265..89f336b 100644
--- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/DriverController.java
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/DriverController.java
@@ -75,6 +75,24 @@ public class DriverController extends BladeController {
private static final int DEFAULT_CURRENT = 1;
private static final int DEFAULT_SIZE = 10;
private static final int MAX_SIZE = 100;
+ private static final String EXPIRY_EXPIRED_SQL = """
+ (
+ ((driving_license_long_term IS NULL OR driving_license_long_term != 1) AND driving_license_end_date < {0})
+ OR ((qualification_long_term IS NULL OR qualification_long_term != 1) AND qualification_end_date < {0})
+ )
+ """;
+ private static final String EXPIRY_WITHIN_30_SQL = """
+ (
+ NOT (
+ ((driving_license_long_term IS NULL OR driving_license_long_term != 1) AND driving_license_end_date < {0})
+ OR ((qualification_long_term IS NULL OR qualification_long_term != 1) AND qualification_end_date < {0})
+ )
+ AND (
+ ((driving_license_long_term IS NULL OR driving_license_long_term != 1) AND driving_license_end_date BETWEEN {0} AND {1})
+ OR ((qualification_long_term IS NULL OR qualification_long_term != 1) AND qualification_end_date BETWEEN {0} AND {1})
+ )
+ )
+ """;
private final IDriverService driverService;
@@ -222,18 +240,10 @@ public class DriverController extends BladeController {
queryWrapper.eq(Driver::getStatus, driver.getStatus());
}
if ("within30".equals(driver.getExpireStatus())) {
- queryWrapper.and(wrapper -> wrapper
- .and(item -> item.ne(Driver::getDrivingLicenseLongTerm, 1)
- .between(Driver::getDrivingLicenseEndDate, driver.getToday(), driver.getWarningDate()))
- .or(item -> item.ne(Driver::getQualificationLongTerm, 1)
- .between(Driver::getQualificationEndDate, driver.getToday(), driver.getWarningDate())));
+ queryWrapper.apply(EXPIRY_WITHIN_30_SQL, driver.getToday(), driver.getWarningDate());
}
if ("expired".equals(driver.getExpireStatus())) {
- queryWrapper.and(wrapper -> wrapper
- .and(item -> item.ne(Driver::getDrivingLicenseLongTerm, 1)
- .lt(Driver::getDrivingLicenseEndDate, driver.getToday()))
- .or(item -> item.ne(Driver::getQualificationLongTerm, 1)
- .lt(Driver::getQualificationEndDate, driver.getToday())));
+ queryWrapper.apply(EXPIRY_EXPIRED_SQL, driver.getToday());
}
return queryWrapper;
}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportShipExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportShipExcel.java
index bf69825..96ddc17 100644
--- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportShipExcel.java
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportShipExcel.java
@@ -34,6 +34,7 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.time.LocalDate;
/**
@@ -62,36 +63,102 @@ public class TransportShipExcel implements Serializable {
@ExcelProperty("所属组织")
private String organizationName;
+ @ExcelProperty("安放龙骨日期")
+ private LocalDate keelLayingDate;
+
+ @ExcelProperty("建造完工日期")
+ private LocalDate buildCompletionDate;
+
+ @ExcelProperty("总长")
+ private BigDecimal totalLength;
+
+ @ExcelProperty("船宽")
+ private BigDecimal shipWidth;
+
+ @ExcelProperty("型深")
+ private BigDecimal moldedDepth;
+
+ @ExcelProperty("最大船高")
+ private BigDecimal maxShipHeight;
+
+ @ExcelProperty("空载吃水")
+ private BigDecimal lightDraft;
+
+ @ExcelProperty("满载吃水")
+ private BigDecimal fullLoadDraft;
+
+ @ExcelProperty("航区")
+ private String navigationArea;
+
+ @ExcelProperty("登记号码")
+ private String ownershipRegistrationNo;
+
+ @ExcelProperty("初次登记号码")
+ private String initialRegistrationNo;
+
+ @ExcelProperty("船舶所有人")
+ private String shipOwner;
+
+ @ExcelProperty("取得所有权日期")
+ private LocalDate ownershipAcquisitionDate;
+
@ExcelProperty("船检登记号")
private String shipInspectionNo;
@ExcelProperty("船舶类型")
private String shipType;
+ @ExcelProperty("总吨")
+ private BigDecimal grossTonnage;
+
+ @ExcelProperty("净吨")
+ private BigDecimal netTonnage;
+
+ @ExcelProperty("国籍证有效期自")
+ private LocalDate nationalityCertStartDate;
+
@ExcelProperty("国籍证有效期至")
private LocalDate nationalityCertEndDate;
@ExcelProperty("国籍证长期有效")
private String nationalityCertLongTermName;
+ @ExcelProperty("最低安全配员证书有效期自")
+ private LocalDate safeManningCertStartDate;
+
@ExcelProperty("最低安全配员证书有效期至")
private LocalDate safeManningCertEndDate;
@ExcelProperty("最低安全配员证书长期有效")
private String safeManningCertLongTermName;
+ @ExcelProperty("营业运输证证书编号")
+ private String businessTransportCertNo;
+
+ @ExcelProperty("营业运输证发证日期")
+ private LocalDate businessTransportCertIssueDate;
+
@ExcelProperty("营业运输证有效期至")
private LocalDate businessTransportCertEndDate;
@ExcelProperty("营业运输证长期有效")
private String businessTransportCertLongTermName;
+ @ExcelProperty("起租日期")
+ private LocalDate leaseStartDate;
+
@ExcelProperty("承租有效期至")
private LocalDate leaseEndDate;
@ExcelProperty("承租长期有效")
private String leaseLongTermName;
+ @ExcelProperty("船舶承租人")
+ private String shipLessee;
+
+ @ExcelProperty("船舶经营人")
+ private String shipOperator;
+
@ExcelProperty("状态")
private String statusName;
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportVehicleExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportVehicleExcel.java
index 2814475..7a94b4f 100644
--- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportVehicleExcel.java
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportVehicleExcel.java
@@ -59,6 +59,9 @@ public class TransportVehicleExcel implements Serializable {
@ExcelProperty("车牌号")
private String plateNo;
+ @ExcelProperty("车牌颜色")
+ private String plateColor;
+
@ExcelProperty("车辆类型")
private String vehicleType;
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/DriverMapper.xml b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/DriverMapper.xml
index 73aa017..737152f 100644
--- a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/DriverMapper.xml
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/DriverMapper.xml
@@ -90,6 +90,23 @@
remark
+
+ (
+ ((driving_license_long_term IS NULL OR driving_license_long_term != 1) AND driving_license_end_date < #{driver.today})
+ OR ((qualification_long_term IS NULL OR qualification_long_term != 1) AND qualification_end_date < #{driver.today})
+ )
+
+
+
+ (
+ NOT
+ AND (
+ ((driving_license_long_term IS NULL OR driving_license_long_term != 1) AND driving_license_end_date BETWEEN #{driver.today} AND #{driver.warningDate})
+ OR ((qualification_long_term IS NULL OR qualification_long_term != 1) AND qualification_end_date BETWEEN #{driver.today} AND #{driver.warningDate})
+ )
+ )
+
+
is_deleted = 0
@@ -118,16 +135,10 @@
AND status = #{driver.status}
- AND (
- (driving_license_long_term != 1 AND driving_license_end_date BETWEEN #{driver.today} AND #{driver.warningDate})
- OR (qualification_long_term != 1 AND qualification_end_date BETWEEN #{driver.today} AND #{driver.warningDate})
- )
+ AND
- AND (
- (driving_license_long_term != 1 AND driving_license_end_date < #{driver.today})
- OR (qualification_long_term != 1 AND qualification_end_date < #{driver.today})
- )
+ AND
@@ -144,14 +155,8 @@