From 887db5c8d014057b68dece0be655a080f457d085 Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Fri, 31 Jul 2026 01:30:54 +0800 Subject: [PATCH] fix bug --- .../transport/pojo/entity/TransportShip.java | 73 +++++++++++++++++ .../pojo/entity/TransportVehicle.java | 24 +++++- .../controller/DriverController.java | 30 ++++--- .../transport/excel/TransportShipExcel.java | 67 ++++++++++++++++ .../excel/TransportVehicleExcel.java | 3 + .../transport/mapper/DriverMapper.xml | 37 +++++---- .../transport/mapper/TransportShipMapper.xml | 48 +++++++++++ .../mapper/TransportVehicleMapper.xml | 8 ++ .../service/impl/DriverServiceImpl.java | 30 +++++-- .../impl/TransportShipServiceImpl.java | 80 ++++++++++++++++++- .../impl/TransportVehicleServiceImpl.java | 16 +++- doc/sql/transport/blade_transport_ship.sql | 26 +++++- .../blade_transport_ship_patch_20260730.sql | 25 ++++++ doc/sql/transport/blade_transport_vehicle.sql | 6 +- ...blade_transport_vehicle_patch_20260730.sql | 6 ++ 15 files changed, 435 insertions(+), 44 deletions(-) create mode 100644 doc/sql/transport/blade_transport_ship_patch_20260730.sql create mode 100644 doc/sql/transport/blade_transport_vehicle_patch_20260730.sql 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 @@