Browse Source

Merge branch 'master' of http://8.130.72.63:18081/single-window/guest-security-check-system

CzRger 7 months ago
parent
commit
67d97d7245
40 changed files with 2504 additions and 276 deletions
  1. 12 12
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/controller/PassengerCheckController.java
  2. 161 19
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/entity/PassengerCheck.java
  3. 1 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/enums/PassengerCheckEnum.java
  4. 1 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/mapper/PassengerCheckMapper.java
  5. 111 7
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/param/PassengerCheckAddParam.java
  6. 111 7
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/param/PassengerCheckEditParam.java
  7. 1 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/param/PassengerCheckIdParam.java
  8. 1 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/param/PassengerCheckPageParam.java
  9. 9 8
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/service/PassengerCheckService.java
  10. 65 2
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/service/impl/PassengerCheckServiceImpl.java
  11. 174 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/controller/PassengerCheckRecordController.java
  12. 66 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/entity/PassengerCheckRecord.java
  13. 34 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/enums/PassengerCheckRecordEnum.java
  14. 25 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/mapper/PassengerCheckRecordMapper.java
  15. 5 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/mapper/mapping/PassengerCheckRecordMapper.xml
  16. 37 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/param/PassengerCheckRecordAddParam.java
  17. 44 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/param/PassengerCheckRecordEditParam.java
  18. 35 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/param/PassengerCheckRecordIdParam.java
  19. 49 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/param/PassengerCheckRecordPageParam.java
  20. 80 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/service/PassengerCheckRecordService.java
  21. 94 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/service/impl/PassengerCheckRecordServiceImpl.java
  22. 6 18
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/controller/PassengerInfoController.java
  23. 3 89
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/entity/PassengerInfo.java
  24. 3 2
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/param/PassengerInfoPageParam.java
  25. 140 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/param/PassengerRootPageParam.java
  26. 3 5
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/service/PassengerInfoService.java
  27. 80 101
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/service/impl/PassengerInfoServiceImpl.java
  28. 2 2
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/vo/PassengerInfoDetailVo.java
  29. 9 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/vo/PassengerRoot.java
  30. 175 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/controller/PassengerPassController.java
  31. 232 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/entity/PassengerPass.java
  32. 34 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/enums/PassengerPassEnum.java
  33. 25 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/mapper/PassengerPassMapper.java
  34. 5 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/mapper/mapping/PassengerPassMapper.xml
  35. 162 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/param/PassengerPassAddParam.java
  36. 167 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/param/PassengerPassEditParam.java
  37. 35 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/param/PassengerPassIdParam.java
  38. 51 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/param/PassengerPassPageParam.java
  39. 81 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/service/PassengerPassService.java
  40. 175 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/service/impl/PassengerPassServiceImpl.java

+ 12 - 12
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/controller/PassengerCheckController.java

@@ -22,7 +22,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
-import vip.xiaonuo.biz.modular.passenger.passengercheck.entity.PassengerCheck;
 import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.biz.modular.passenger.passengercheck.entity.PassengerCheck;
@@ -46,7 +45,7 @@ import java.util.HashMap;
  * 旅客查验信息控制器
  *
  * @author wenjinbiao
- * @date  2024/12/05 17:40
+ * @date  2024/12/06 15:46
  */
 @Tag(name = "旅客查验信息控制器")
 @RestController
@@ -60,20 +59,21 @@ public class PassengerCheckController {
      * 获取旅客查验信息分页
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
     @Operation(summary = "获取旅客查验信息分页")
     @SaCheckPermission("/biz/passengercheck/page")
     @GetMapping("/biz/passengercheck/page")
     public CommonResult<Page<PassengerCheck>> page(PassengerCheckPageParam passengerCheckPageParam) {
-        return CommonResult.data(passengerCheckService.page(passengerCheckPageParam));
+//        return CommonResult.data(passengerCheckService.page(passengerCheckPageParam));
+        return null;
     }
 
     /**
      * 添加旅客查验信息
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
     @Operation(summary = "添加旅客查验信息")
     @CommonLog("添加旅客查验信息")
@@ -88,7 +88,7 @@ public class PassengerCheckController {
      * 编辑旅客查验信息
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
     @Operation(summary = "编辑旅客查验信息")
     @CommonLog("编辑旅客查验信息")
@@ -103,16 +103,16 @@ public class PassengerCheckController {
      * 导出旅客查验信息
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
     @Operation(summary = "导出旅客查验信息")
     @CommonLog("导出旅客查验信息")
     @SaCheckPermission("/biz/passengercheck/export")
     @PostMapping("/biz/passengercheck/export")
     public void export(@RequestBody @Valid PassengerCheckPageParam passengerCheckPageParam, HttpServletResponse response) {
-        Page<PassengerCheck> page =  passengerCheckService.page(passengerCheckPageParam);
-        List<PassengerCheck> records = page.getRecords();
-        exportExcel(response,PassengerCheck.class,records,"旅客查验信息");
+//        Page<PassengerCheck> page =  passengerCheckService.page(passengerCheckPageParam);
+//        List<PassengerCheck> records = page.getRecords();
+//        exportExcel(response,PassengerCheck.class,records,"旅客查验信息");
     }
 
 
@@ -148,7 +148,7 @@ public class PassengerCheckController {
      * 删除旅客查验信息
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
     @Operation(summary = "删除旅客查验信息")
     @CommonLog("删除旅客查验信息")
@@ -164,7 +164,7 @@ public class PassengerCheckController {
      * 获取旅客查验信息详情
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
     @Operation(summary = "获取旅客查验信息详情")
     @SaCheckPermission("/biz/passengercheck/detail")

+ 161 - 19
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/entity/PassengerCheck.java

@@ -24,7 +24,7 @@ import java.util.Date;
  * 旅客查验信息实体
  *
  * @author wenjinbiao
- * @date  2024/12/05 17:40
+ * @date  2024/12/06 15:46
  **/
 @Getter
 @Setter
@@ -38,29 +38,171 @@ public class PassengerCheck {
     @ExcelProperty(index = 0,value = "id")
     private String id;
 
-    /** 旅客id */
-    @Schema(description = "旅客id")
+    /** 姓名 */
+    @Schema(description = "姓名")
     @ColumnWidth(12)
-    @ExcelProperty(index = 1,value = "旅客id")
-    private String passengerId;
+    @ExcelProperty(index = 1,value = "姓名")
+    private String name;
 
-    /** 查验步骤 */
-    @Schema(description = "查验步骤")
+    /** 性别 */
+    @Schema(description = "性别")
     @ColumnWidth(12)
-    @ExcelProperty(index = 2,value = "查验步骤")
-    private String checkStep;
+    @ExcelProperty(index = 2,value = "性别")
+    private String gender;
 
-    /** 创建人 */
-    @Schema(description = "创建人")
+    /** 年龄 */
+    @Schema(description = "年龄")
     @ColumnWidth(12)
-    @ExcelProperty(index = 3,value = "创建人")
-    @TableField(fill = FieldFill.INSERT)
-    private String createUser;
+    @ExcelProperty(index = 3,value = "年龄")
+    private String age;
 
-    /** 创建时间 */
-    @Schema(description = "创建时间")
+    /** 身份证号 */
+    @Schema(description = "身份证号")
     @ColumnWidth(12)
-    @ExcelProperty(index = 4,value = "创建时间")
-    @TableField(fill = FieldFill.INSERT)
-    private Date createTime;
+    @ExcelProperty(index = 4,value = "身份证号")
+    private String idNo;
+
+    /** 证件照 */
+    @Schema(description = "证件照")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 5,value = "证件照")
+    private String certificateUrl;
+
+    /** 抓拍照 */
+    @Schema(description = "抓拍照")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 6,value = "抓拍照")
+    private String captureUrl;
+
+    /** 相似度 */
+    @Schema(description = "相似度")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 7,value = "相似度")
+    private String similarity;
+
+    /** 国籍 */
+    @Schema(description = "国籍")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 8,value = "国籍")
+    private String nationality;
+
+    /** 居住地 */
+    @Schema(description = "居住地")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 9,value = "居住地")
+    private String address;
+
+    /** 车次/航班号 */
+    @Schema(description = "车次/航班号")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 10,value = "车次/航班号")
+    private String travelNo;
+
+    /** 航/车次(班)日期 */
+    @Schema(description = "航/车次(班)日期")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 11,value = "航/车次(班)日期")
+    private Date travelTime;
+
+    /** 出发时间 */
+    @Schema(description = "出发时间")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 12,value = "出发时间")
+    private Date departTime;
+
+    /** 是否携带行李物品 */
+    @Schema(description = "是否携带行李物品")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 13,value = "是否携带行李物品")
+    private String baggage;
+
+    /** 出发港口 */
+    @Schema(description = "出发港口")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 14,value = "出发港口")
+    private String fromPort;
+
+    /** 到达港口 */
+    @Schema(description = "到达港口")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 15,value = "到达港口")
+    private String toPort;
+
+    /** 座位号 */
+    @Schema(description = "座位号")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 16,value = "座位号")
+    private String seatNo;
+
+    /** 交通工具类型 */
+    @Schema(description = "交通工具类型")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 17,value = "交通工具类型")
+    private String vehicleType;
+
+    /** 查验指令 */
+    @Schema(description = "查验指令")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 18,value = "查验指令")
+    private String checkInstruction;
+
+    /** 指令编号 */
+    @Schema(description = "指令编号")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 19,value = "指令编号")
+    private String checkInstructionNo;
+
+    /** 发布时间 */
+    @Schema(description = "发布时间")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 20,value = "发布时间")
+    private Date releaseTime;
+
+    /** 查验地点 */
+    @Schema(description = "查验地点")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 21,value = "查验地点")
+    private String checkPlace;
+
+    /** 查验方式 */
+    @Schema(description = "查验方式")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 22,value = "查验方式")
+    private String checkMethod;
+
+    /** 查验目的 */
+    @Schema(description = "查验目的")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 23,value = "查验目的")
+    private String checkPurpose;
+
+    /** 查验状态 */
+    @Schema(description = "查验状态")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 24,value = "查验状态")
+    private String checkStatus;
+
+    /** 查验人 */
+    @Schema(description = "查验人")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 25,value = "查验人")
+    private String checkBy;
+
+    /** 查验结果 */
+    @Schema(description = "查验结果")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 26,value = "查验结果")
+    private String checkResult;
+
+    /** 查验时间 */
+    @Schema(description = "查验时间")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 27,value = "查验时间")
+    private Date checkTime;
+
+    /** 查验原因 */
+    @Schema(description = "查验原因")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 28,value = "查验原因")
+    private String checkReason;
 }

+ 1 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/enums/PassengerCheckEnum.java

@@ -18,7 +18,7 @@ import lombok.Getter;
  * 旅客查验信息枚举
  *
  * @author wenjinbiao
- * @date  2024/12/05 17:40
+ * @date  2024/12/06 15:46
  **/
 @Getter
 public enum PassengerCheckEnum {

+ 1 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/mapper/PassengerCheckMapper.java

@@ -19,7 +19,7 @@ import vip.xiaonuo.biz.modular.passenger.passengercheck.entity.PassengerCheck;
  * 旅客查验信息Mapper接口
  *
  * @author wenjinbiao
- * @date  2024/12/05 17:40
+ * @date  2024/12/06 15:46
  **/
 public interface PassengerCheckMapper extends BaseMapper<PassengerCheck> {
 }

+ 111 - 7
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/param/PassengerCheckAddParam.java

@@ -25,18 +25,122 @@ import java.util.Date;
  * 旅客查验信息添加参数
  *
  * @author wenjinbiao
- * @date  2024/12/05 17:40
+ * @date  2024/12/06 15:46
  **/
 @Getter
 @Setter
 public class PassengerCheckAddParam {
 
-    /** 旅客id */
-    @Schema(description = "旅客id")
-    private String passengerId;
+    /** 姓名 */
+    @Schema(description = "姓名")
+    private String name;
 
-    /** 查验步骤 */
-    @Schema(description = "查验步骤")
-    private String checkStep;
+    /** 性别 */
+    @Schema(description = "性别")
+    private String gender;
+
+    /** 年龄 */
+    @Schema(description = "年龄")
+    private String age;
+
+    /** 身份证号 */
+    @Schema(description = "身份证号")
+    private String idNo;
+
+    /** 证件照 */
+    @Schema(description = "证件照")
+    private String certificateUrl;
+
+    /** 抓拍照 */
+    @Schema(description = "抓拍照")
+    private String captureUrl;
+
+    /** 相似度 */
+    @Schema(description = "相似度")
+    private String similarity;
+
+    /** 国籍 */
+    @Schema(description = "国籍")
+    private String nationality;
+
+    /** 居住地 */
+    @Schema(description = "居住地")
+    private String address;
+
+    /** 车次/航班号 */
+    @Schema(description = "车次/航班号")
+    private String travelNo;
+
+    /** 航/车次(班)日期 */
+    @Schema(description = "航/车次(班)日期")
+    private Date travelTime;
+
+    /** 出发时间 */
+    @Schema(description = "出发时间")
+    private Date departTime;
+
+    /** 是否携带行李物品 */
+    @Schema(description = "是否携带行李物品")
+    private String baggage;
+
+    /** 出发港口 */
+    @Schema(description = "出发港口")
+    private String fromPort;
+
+    /** 到达港口 */
+    @Schema(description = "到达港口")
+    private String toPort;
+
+    /** 座位号 */
+    @Schema(description = "座位号")
+    private String seatNo;
+
+    /** 交通工具类型 */
+    @Schema(description = "交通工具类型")
+    private String vehicleType;
+
+    /** 查验指令 */
+    @Schema(description = "查验指令")
+    private String checkInstruction;
+
+    /** 指令编号 */
+    @Schema(description = "指令编号")
+    private String checkInstructionNo;
+
+    /** 发布时间 */
+    @Schema(description = "发布时间")
+    private Date releaseTime;
+
+    /** 查验地点 */
+    @Schema(description = "查验地点")
+    private String checkPlace;
+
+    /** 查验方式 */
+    @Schema(description = "查验方式")
+    private String checkMethod;
+
+    /** 查验目的 */
+    @Schema(description = "查验目的")
+    private String checkPurpose;
+
+    /** 查验状态 */
+    @Schema(description = "查验状态")
+    private String checkStatus;
+
+    /** 查验人 */
+    @Schema(description = "查验人")
+    private String checkBy;
+
+    /** 查验结果 */
+    @Schema(description = "查验结果")
+    private String checkResult;
+
+    /** 查验时间 */
+    @Schema(description = "查验时间")
+    private Date checkTime;
+
+    /** 查验原因 */
+    @Schema(description = "查验原因")
+    private String checkReason;
 
 }

+ 111 - 7
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/param/PassengerCheckEditParam.java

@@ -25,7 +25,7 @@ import java.util.Date;
  * 旅客查验信息编辑参数
  *
  * @author wenjinbiao
- * @date  2024/12/05 17:40
+ * @date  2024/12/06 15:46
  **/
 @Getter
 @Setter
@@ -36,12 +36,116 @@ public class PassengerCheckEditParam {
     @NotBlank(message = "id不能为空")
     private String id;
 
-    /** 旅客id */
-    @Schema(description = "旅客id")
-    private String passengerId;
+    /** 姓名 */
+    @Schema(description = "姓名")
+    private String name;
 
-    /** 查验步骤 */
-    @Schema(description = "查验步骤")
-    private String checkStep;
+    /** 性别 */
+    @Schema(description = "性别")
+    private String gender;
+
+    /** 年龄 */
+    @Schema(description = "年龄")
+    private String age;
+
+    /** 身份证号 */
+    @Schema(description = "身份证号")
+    private String idNo;
+
+    /** 证件照 */
+    @Schema(description = "证件照")
+    private String certificateUrl;
+
+    /** 抓拍照 */
+    @Schema(description = "抓拍照")
+    private String captureUrl;
+
+    /** 相似度 */
+    @Schema(description = "相似度")
+    private String similarity;
+
+    /** 国籍 */
+    @Schema(description = "国籍")
+    private String nationality;
+
+    /** 居住地 */
+    @Schema(description = "居住地")
+    private String address;
+
+    /** 车次/航班号 */
+    @Schema(description = "车次/航班号")
+    private String travelNo;
+
+    /** 航/车次(班)日期 */
+    @Schema(description = "航/车次(班)日期")
+    private Date travelTime;
+
+    /** 出发时间 */
+    @Schema(description = "出发时间")
+    private Date departTime;
+
+    /** 是否携带行李物品 */
+    @Schema(description = "是否携带行李物品")
+    private String baggage;
+
+    /** 出发港口 */
+    @Schema(description = "出发港口")
+    private String fromPort;
+
+    /** 到达港口 */
+    @Schema(description = "到达港口")
+    private String toPort;
+
+    /** 座位号 */
+    @Schema(description = "座位号")
+    private String seatNo;
+
+    /** 交通工具类型 */
+    @Schema(description = "交通工具类型")
+    private String vehicleType;
+
+    /** 查验指令 */
+    @Schema(description = "查验指令")
+    private String checkInstruction;
+
+    /** 指令编号 */
+    @Schema(description = "指令编号")
+    private String checkInstructionNo;
+
+    /** 发布时间 */
+    @Schema(description = "发布时间")
+    private Date releaseTime;
+
+    /** 查验地点 */
+    @Schema(description = "查验地点")
+    private String checkPlace;
+
+    /** 查验方式 */
+    @Schema(description = "查验方式")
+    private String checkMethod;
+
+    /** 查验目的 */
+    @Schema(description = "查验目的")
+    private String checkPurpose;
+
+    /** 查验状态 */
+    @Schema(description = "查验状态")
+    private String checkStatus;
+
+    /** 查验人 */
+    @Schema(description = "查验人")
+    private String checkBy;
+
+    /** 查验结果 */
+    @Schema(description = "查验结果")
+    private String checkResult;
+
+    /** 查验时间 */
+    @Schema(description = "查验时间")
+    private Date checkTime;
+
+    /** 查验原因 */
+    @Schema(description = "查验原因")
+    private String checkReason;
 
 }

+ 1 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/param/PassengerCheckIdParam.java

@@ -22,7 +22,7 @@ import jakarta.validation.constraints.NotBlank;
  * 旅客查验信息Id参数
  *
  * @author wenjinbiao
- * @date  2024/12/05 17:40
+ * @date  2024/12/06 15:46
  **/
 @Getter
 @Setter

+ 1 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/param/PassengerCheckPageParam.java

@@ -22,7 +22,7 @@ import java.util.Date;
  * 旅客查验信息查询参数
  *
  * @author wenjinbiao
- * @date  2024/12/05 17:40
+ * @date  2024/12/06 15:46
  **/
 @Getter
 @Setter

+ 9 - 8
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/service/PassengerCheckService.java

@@ -19,6 +19,7 @@ import vip.xiaonuo.biz.modular.passenger.passengercheck.param.PassengerCheckAddP
 import vip.xiaonuo.biz.modular.passenger.passengercheck.param.PassengerCheckEditParam;
 import vip.xiaonuo.biz.modular.passenger.passengercheck.param.PassengerCheckIdParam;
 import vip.xiaonuo.biz.modular.passenger.passengercheck.param.PassengerCheckPageParam;
+import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerRootPageParam;
 
 import java.util.List;
 
@@ -26,7 +27,7 @@ import java.util.List;
  * 旅客查验信息Service接口
  *
  * @author wenjinbiao
- * @date  2024/12/05 17:40
+ * @date  2024/12/06 15:46
  **/
 public interface PassengerCheckService extends IService<PassengerCheck> {
 
@@ -34,15 +35,15 @@ public interface PassengerCheckService extends IService<PassengerCheck> {
      * 获取旅客查验信息分页
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
-    Page<PassengerCheck> page(PassengerCheckPageParam passengerCheckPageParam);
+    Page<PassengerCheck> page(PassengerRootPageParam rootPageParam);
 
     /**
      * 添加旅客查验信息
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
     void add(PassengerCheckAddParam passengerCheckAddParam);
 
@@ -50,7 +51,7 @@ public interface PassengerCheckService extends IService<PassengerCheck> {
      * 编辑旅客查验信息
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
     void edit(PassengerCheckEditParam passengerCheckEditParam);
 
@@ -58,7 +59,7 @@ public interface PassengerCheckService extends IService<PassengerCheck> {
      * 删除旅客查验信息
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
     void delete(List<PassengerCheckIdParam> passengerCheckIdParamList);
 
@@ -66,7 +67,7 @@ public interface PassengerCheckService extends IService<PassengerCheck> {
      * 获取旅客查验信息详情
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      */
     PassengerCheck detail(PassengerCheckIdParam passengerCheckIdParam);
 
@@ -74,7 +75,7 @@ public interface PassengerCheckService extends IService<PassengerCheck> {
      * 获取旅客查验信息详情
      *
      * @author wenjinbiao
-     * @date  2024/12/05 17:40
+     * @date  2024/12/06 15:46
      **/
     PassengerCheck queryEntity(String id);
 }

+ 65 - 2
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheck/service/impl/PassengerCheckServiceImpl.java

@@ -21,6 +21,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerRootPageParam;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
@@ -38,14 +40,75 @@ import java.util.List;
  * 旅客查验信息Service接口实现类
  *
  * @author wenjinbiao
- * @date  2024/12/05 17:40
+ * @date  2024/12/06 15:46
  **/
 @Service
 public class PassengerCheckServiceImpl extends ServiceImpl<PassengerCheckMapper, PassengerCheck> implements PassengerCheckService {
 
     @Override
-    public Page<PassengerCheck> page(PassengerCheckPageParam passengerCheckPageParam) {
+    public Page<PassengerCheck> page(PassengerRootPageParam passengerCheckPageParam) {
         QueryWrapper<PassengerCheck> queryWrapper = new QueryWrapper<PassengerCheck>().checkSqlInjection();
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getName())) {
+            queryWrapper.lambda().like(PassengerCheck::getName, passengerCheckPageParam.getName());
+        }
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getGender())) {
+            queryWrapper.lambda().eq(PassengerCheck::getGender, passengerCheckPageParam.getGender());
+        }
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getIdNo())) {
+            queryWrapper.lambda().like(PassengerCheck::getIdNo, passengerCheckPageParam.getIdNo());
+        }
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getNationality())) {
+            queryWrapper.lambda().eq(PassengerCheck::getNationality, passengerCheckPageParam.getNationality());
+        }
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getAddress())) {
+            queryWrapper.lambda().like(PassengerCheck::getAddress, passengerCheckPageParam.getAddress());
+        }
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getTravelNo())) {
+            queryWrapper.lambda().like(PassengerCheck::getTravelNo, passengerCheckPageParam.getTravelNo());
+        }
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getCheckPlace())) {
+            queryWrapper.lambda().like(PassengerCheck::getCheckPlace, passengerCheckPageParam.getCheckPlace());
+        }
+
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getCheckStatus())) {
+            queryWrapper.lambda().like(PassengerCheck::getCheckStatus, passengerCheckPageParam.getCheckStatus());
+        }
+
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getBaggage())) {
+            queryWrapper.lambda().eq(PassengerCheck::getBaggage, passengerCheckPageParam.getBaggage());
+        }
+
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getFromPort())) {
+            queryWrapper.lambda().eq(PassengerCheck::getFromPort, passengerCheckPageParam.getFromPort());
+        }
+
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getToPort())) {
+            queryWrapper.lambda().eq(PassengerCheck::getToPort, passengerCheckPageParam.getToPort());
+        }
+
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getCheckReason())) {
+            queryWrapper.lambda().like(PassengerCheck::getCheckReason, passengerCheckPageParam.getCheckReason());
+        }
+
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getCheckBy())) {
+            queryWrapper.lambda().like(PassengerCheck::getCheckBy, passengerCheckPageParam.getCheckBy());
+        }
+
+
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getTravelTimeStart())) {
+            queryWrapper.lambda().ge(PassengerCheck::getTravelTime, passengerCheckPageParam.getTravelTimeStart());
+        }
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getTravelTimeEnd())) {
+            queryWrapper.lambda().le(PassengerCheck::getTravelTime,passengerCheckPageParam.getTravelTimeEnd());
+        }
+
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getCheckTimeStart())) {
+            queryWrapper.lambda().ge(PassengerCheck::getCheckTime, passengerCheckPageParam.getCheckTimeStart());
+        }
+        if(ObjectUtil.isNotEmpty(passengerCheckPageParam.getCheckTimeEnd())) {
+            queryWrapper.lambda().ge(PassengerCheck::getCheckTime, passengerCheckPageParam.getCheckTimeEnd());
+        }
+
         if(ObjectUtil.isAllNotEmpty(passengerCheckPageParam.getSortField(), passengerCheckPageParam.getSortOrder())) {
             CommonSortOrderEnum.validate(passengerCheckPageParam.getSortOrder());
             queryWrapper.orderBy(true, passengerCheckPageParam.getSortOrder().equalsIgnoreCase(CommonSortOrderEnum.ASC.getValue()),

+ 174 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/controller/PassengerCheckRecordController.java

@@ -0,0 +1,174 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengercheckrecord.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.URLUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.entity.PassengerCheckRecord;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordAddParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordEditParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordIdParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordPageParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.service.PassengerCheckRecordService;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotEmpty;
+import java.util.List;
+import java.io.IOException;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.fastjson.JSON;
+
+import java.util.HashMap;
+
+/**
+ * 旅客查验信息控制器
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:40
+ */
+@Tag(name = "旅客查验信息控制器")
+@RestController
+@Validated
+public class PassengerCheckRecordController {
+
+    @Resource
+    private PassengerCheckRecordService passengerCheckService;
+
+    /**
+     * 获取旅客查验信息分页
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    @Operation(summary = "获取旅客查验信息分页")
+    @SaCheckPermission("/biz/passengercheck/record/page")
+    @GetMapping("/biz/passengercheck/record/page")
+    public CommonResult<Page<PassengerCheckRecord>> page(PassengerCheckRecordPageParam passengerCheckPageParam) {
+        return CommonResult.data(passengerCheckService.page(passengerCheckPageParam));
+    }
+
+    /**
+     * 添加旅客查验信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    @Operation(summary = "添加旅客查验信息")
+    @CommonLog("添加旅客查验信息")
+    @SaCheckPermission("/biz/passengercheck/record/add")
+    @PostMapping("/biz/passengercheck/record/add")
+    public CommonResult<String> add(@RequestBody @Valid PassengerCheckRecordAddParam passengerCheckAddParam) {
+        passengerCheckService.add(passengerCheckAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑旅客查验信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    @Operation(summary = "编辑旅客查验信息")
+    @CommonLog("编辑旅客查验信息")
+    @SaCheckPermission("/biz/passengercheck/record/edit")
+    @PostMapping("/biz/passengercheck/record/edit")
+    public CommonResult<String> edit(@RequestBody @Valid PassengerCheckRecordEditParam passengerCheckEditParam) {
+        passengerCheckService.edit(passengerCheckEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 导出旅客查验信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    @Operation(summary = "导出旅客查验信息")
+    @CommonLog("导出旅客查验信息")
+    @SaCheckPermission("/biz/passengercheck/record/export")
+    @PostMapping("/biz/passengercheck/record/export")
+    public void export(@RequestBody @Valid PassengerCheckRecordPageParam passengerCheckPageParam, HttpServletResponse response) {
+        Page<PassengerCheckRecord> page =  passengerCheckService.page(passengerCheckPageParam);
+        List<PassengerCheckRecord> records = page.getRecords();
+        exportExcel(response, PassengerCheckRecord.class,records,"旅客查验信息");
+    }
+
+
+    /**
+     * 导出表格数据
+     * @param cl       表格字段实体类
+     * @param data     查询数据
+     * @param sheetName  表格名称
+     */
+    public void exportExcel(HttpServletResponse response, Class cl, List data, String sheetName){
+       HashMap<String, String> map = new HashMap<>();
+       try {
+           response.setHeader("Content-disposition", "attachment;filename=" + URLUtil.encode(sheetName) + ".xlsx");
+           response.setHeader("Access-Control-Allow-Origin", "*");
+           response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
+           response.setContentType("application/octet-stream;charset=UTF-8");
+           EasyExcel.write(response.getOutputStream(), cl).autoCloseStream(Boolean.FALSE).sheet(sheetName).doWrite(data);
+       } catch (IOException e) {
+           response.reset();
+           response.setContentType("application/json");
+           response.setCharacterEncoding("utf-8");
+           map.put("status", "failure");
+           map.put("message", "下载文件失败" + e.getMessage());
+           try {
+               response.getWriter().println(JSON.toJSONString(map));
+           } catch (IOException ex) {
+               ex.printStackTrace();
+           }
+       }
+    }
+
+    /**
+     * 删除旅客查验信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    @Operation(summary = "删除旅客查验信息")
+    @CommonLog("删除旅客查验信息")
+    @SaCheckPermission("/biz/passengercheck/record/delete")
+    @PostMapping("/biz/passengercheck/record/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   List<PassengerCheckRecordIdParam> passengerCheckIdParamList) {
+        passengerCheckService.delete(passengerCheckIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取旅客查验信息详情
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    @Operation(summary = "获取旅客查验信息详情")
+    @SaCheckPermission("/biz/passengercheck/record/detail")
+    @GetMapping("/biz/passengercheck/record/detail")
+    public CommonResult<PassengerCheckRecord> detail(@Valid PassengerCheckRecordIdParam passengerCheckIdParam) {
+        return CommonResult.data(passengerCheckService.detail(passengerCheckIdParam));
+    }
+}

+ 66 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/entity/PassengerCheckRecord.java

@@ -0,0 +1,66 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengercheckrecord.entity;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 旅客查验信息实体
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:40
+ **/
+@Getter
+@Setter
+@TableName("passenger_check_record")
+public class PassengerCheckRecord {
+
+    /** id */
+    @TableId
+    @Schema(description = "id")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 0,value = "id")
+    private String id;
+
+    /** 旅客id */
+    @Schema(description = "旅客id")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 1,value = "旅客id")
+    private String passengerId;
+
+    /** 查验步骤 */
+    @Schema(description = "查验步骤")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 2,value = "查验步骤")
+    private String checkStep;
+
+    /** 创建人 */
+    @Schema(description = "创建人")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 3,value = "创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** 创建时间 */
+    @Schema(description = "创建时间")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 4,value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+}

+ 34 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/enums/PassengerCheckRecordEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengercheckrecord.enums;
+
+import lombok.Getter;
+
+/**
+ * 旅客查验信息枚举
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:40
+ **/
+@Getter
+public enum PassengerCheckRecordEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    PassengerCheckRecordEnum(String value) {
+        this.value = value;
+    }
+}

+ 25 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/mapper/PassengerCheckRecordMapper.java

@@ -0,0 +1,25 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengercheckrecord.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.entity.PassengerCheckRecord;
+
+/**
+ * 旅客查验信息Mapper接口
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:40
+ **/
+public interface PassengerCheckRecordMapper extends BaseMapper<PassengerCheckRecord> {
+}

+ 5 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/mapper/mapping/PassengerCheckRecordMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.biz.modular.passenger.passengercheck.mapper.PassengerCheckMapper">
+
+</mapper>

+ 37 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/param/PassengerCheckRecordAddParam.java

@@ -0,0 +1,37 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 旅客查验信息添加参数
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:40
+ **/
+@Getter
+@Setter
+public class PassengerCheckRecordAddParam {
+
+    /** 旅客id */
+    @Schema(description = "旅客id")
+    private String passengerId;
+
+    /** 查验步骤 */
+    @Schema(description = "查验步骤")
+    private String checkStep;
+
+}

+ 44 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/param/PassengerCheckRecordEditParam.java

@@ -0,0 +1,44 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+
+/**
+ * 旅客查验信息编辑参数
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:40
+ **/
+@Getter
+@Setter
+public class PassengerCheckRecordEditParam {
+
+    /** id */
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** 旅客id */
+    @Schema(description = "旅客id")
+    private String passengerId;
+
+    /** 查验步骤 */
+    @Schema(description = "查验步骤")
+    private String checkStep;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/param/PassengerCheckRecordIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+
+/**
+ * 旅客查验信息Id参数
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:40
+ **/
+@Getter
+@Setter
+public class PassengerCheckRecordIdParam {
+
+    /** id */
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 49 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/param/PassengerCheckRecordPageParam.java

@@ -0,0 +1,49 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 旅客查验信息查询参数
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:40
+ **/
+@Getter
+@Setter
+public class PassengerCheckRecordPageParam {
+
+    /** 当前页 */
+    @Schema(description = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @Schema(description = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @Schema(description = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @Schema(description = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @Schema(description = "关键词")
+    private String searchKey;
+
+}

+ 80 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/service/PassengerCheckRecordService.java

@@ -0,0 +1,80 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengercheckrecord.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.entity.PassengerCheckRecord;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordAddParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordEditParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordIdParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordPageParam;
+
+import java.util.List;
+
+/**
+ * 旅客查验信息Service接口
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:40
+ **/
+public interface PassengerCheckRecordService extends IService<PassengerCheckRecord> {
+
+    /**
+     * 获取旅客查验信息分页
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    Page<PassengerCheckRecord> page(PassengerCheckRecordPageParam passengerCheckPageParam);
+
+    /**
+     * 添加旅客查验信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    void add(PassengerCheckRecordAddParam passengerCheckAddParam);
+
+    /**
+     * 编辑旅客查验信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    void edit(PassengerCheckRecordEditParam passengerCheckEditParam);
+
+    /**
+     * 删除旅客查验信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    void delete(List<PassengerCheckRecordIdParam> passengerCheckIdParamList);
+
+    /**
+     * 获取旅客查验信息详情
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     */
+    PassengerCheckRecord detail(PassengerCheckRecordIdParam passengerCheckIdParam);
+
+    /**
+     * 获取旅客查验信息详情
+     *
+     * @author wenjinbiao
+     * @date  2024/12/05 17:40
+     **/
+    PassengerCheckRecord queryEntity(String id);
+}

+ 94 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengercheckrecord/service/impl/PassengerCheckRecordServiceImpl.java

@@ -0,0 +1,94 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengercheckrecord.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.entity.PassengerCheckRecord;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.mapper.PassengerCheckRecordMapper;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordAddParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordEditParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordIdParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.param.PassengerCheckRecordPageParam;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.service.PassengerCheckRecordService;
+
+import java.util.List;
+
+/**
+ * 旅客查验信息Service接口实现类
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:40
+ **/
+@Service
+public class PassengerCheckRecordServiceImpl extends ServiceImpl<PassengerCheckRecordMapper, PassengerCheckRecord> implements PassengerCheckRecordService {
+
+    @Override
+    public Page<PassengerCheckRecord> page(PassengerCheckRecordPageParam passengerCheckPageParam) {
+        QueryWrapper<PassengerCheckRecord> queryWrapper = new QueryWrapper<PassengerCheckRecord>().checkSqlInjection();
+        if(ObjectUtil.isAllNotEmpty(passengerCheckPageParam.getSortField(), passengerCheckPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(passengerCheckPageParam.getSortOrder());
+            queryWrapper.orderBy(true, passengerCheckPageParam.getSortOrder().equalsIgnoreCase(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(passengerCheckPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(PassengerCheckRecord::getId);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(PassengerCheckRecordAddParam passengerCheckAddParam) {
+        PassengerCheckRecord passengerCheck = BeanUtil.toBean(passengerCheckAddParam, PassengerCheckRecord.class);
+        this.save(passengerCheck);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(PassengerCheckRecordEditParam passengerCheckEditParam) {
+        PassengerCheckRecord passengerCheck = this.queryEntity(passengerCheckEditParam.getId());
+        BeanUtil.copyProperties(passengerCheckEditParam, passengerCheck);
+        this.updateById(passengerCheck);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<PassengerCheckRecordIdParam> passengerCheckIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(passengerCheckIdParamList, PassengerCheckRecordIdParam::getId));
+    }
+
+    @Override
+    public PassengerCheckRecord detail(PassengerCheckRecordIdParam passengerCheckIdParam) {
+        return this.queryEntity(passengerCheckIdParam.getId());
+    }
+
+    @Override
+    public PassengerCheckRecord queryEntity(String id) {
+        PassengerCheckRecord passengerCheck = this.getById(id);
+        if(ObjectUtil.isEmpty(passengerCheck)) {
+            throw new CommonException("旅客查验信息不存在,id值为:{}", id);
+        }
+        return passengerCheck;
+    }
+}

+ 6 - 18
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/controller/PassengerInfoController.java

@@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
 import vip.xiaonuo.biz.modular.passenger.passengerinfo.entity.PassengerInfo;
 import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.*;
 import vip.xiaonuo.biz.modular.passenger.passengerinfo.vo.PassengerInfoDetailVo;
+import vip.xiaonuo.biz.modular.passenger.passengerinfo.vo.PassengerRoot;
 import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.biz.modular.passenger.passengerinfo.entity.PassengerInfo;
@@ -66,23 +67,10 @@ public class PassengerInfoController {
     @Operation(summary = "获取旅客基本信息分页")
     ////@SaCheckPermission("/biz/passengerinfo/page")
     @GetMapping("/biz/passengerinfo/page")
-    public CommonResult<Page<PassengerInfo>> page(PassengerInfoPageParam passengerInfoPageParam) {
-        return CommonResult.data(passengerInfoService.page(passengerInfoPageParam));
+    public CommonResult<Object> page(PassengerRootPageParam rootPageParam) {
+        return CommonResult.data(passengerInfoService.page(rootPageParam));
     }
 
-    /**
-     * 获取旅客基本信息分页
-     *
-     * @author wenjinbiao
-     * @date  2024/12/05 17:34
-     */
-    @Operation(summary = "获取放行旅客基本信息分页")
-    ////@SaCheckPermission("/biz/passengerinfo/page")
-    @GetMapping("/biz/passengerinfo/pass/page")
-    public CommonResult<Page<PassengerInfo>> passPage(PassengerInfoPageParam passengerInfoPageParam) {
-        passengerInfoPageParam.setPass("1");
-        return CommonResult.data(passengerInfoService.page(passengerInfoPageParam));
-    }
 
     /**
      * 添加旅客基本信息
@@ -125,9 +113,9 @@ public class PassengerInfoController {
     //@SaCheckPermission("/biz/passengerinfo/export")
     @PostMapping("/biz/passengerinfo/export")
     public void export(@RequestBody @Valid PassengerInfoPageParam passengerInfoPageParam, HttpServletResponse response) {
-        Page<PassengerInfo> page =  passengerInfoService.page(passengerInfoPageParam);
-        List<PassengerInfo> records = page.getRecords();
-        exportExcel(response,PassengerInfo.class,records,"旅客基本信息");
+//        Page<PassengerInfo> page =  passengerInfoService.page(passengerInfoPageParam);
+//        List<PassengerInfo> records = page.getRecords();
+//        exportExcel(response,PassengerInfo.class,records,"旅客基本信息");
     }
 
 

+ 3 - 89
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/entity/PassengerInfo.java

@@ -17,6 +17,8 @@ import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
+import vip.xiaonuo.biz.modular.passenger.passengerinfo.vo.PassengerRoot;
+
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -29,7 +31,7 @@ import java.util.Date;
 @Getter
 @Setter
 @TableName("passenger_info")
-public class PassengerInfo {
+public class PassengerInfo extends PassengerRoot {
 
     /** id */
     @TableId
@@ -140,93 +142,5 @@ public class PassengerInfo {
     @ExcelProperty(index = 17,value = "交通工具类型")
     private String vehicleType;
 
-    /** 查验指令 */
-    @Schema(description = "查验指令")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 18,value = "查验指令")
-    private String checkInstruction;
-
-    /** 指令编号 */
-    @Schema(description = "指令编号")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 19,value = "指令编号")
-    private String checkInstructionNo;
-
-    /** 发布时间 */
-    @Schema(description = "发布时间")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 20,value = "发布时间")
-    private Date releaseTime;
-
-    /** 查验地点 */
-    @Schema(description = "查验地点")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 21,value = "查验地点")
-    private String checkPlace;
 
-    /** 查验方式 */
-    @Schema(description = "查验方式")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 22,value = "查验方式")
-    private String checkMethod;
-
-    /** 查验目的 */
-    @Schema(description = "查验目的")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 23,value = "查验目的")
-    private String checkPurpose;
-
-    /** 查验状态 */
-    @Schema(description = "查验状态")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 24,value = "查验状态")
-    private String checkStatus;
-
-    /** 查验人 */
-    @Schema(description = "查验人")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 25,value = "查验人")
-    private String checkBy;
-
-    /** 查验结果 */
-    @Schema(description = "查验结果")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 26,value = "查验结果")
-    private String checkResult;
-
-    /** 查验原因 */
-    @Schema(description = "查验原因")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 27,value = "查验原因")
-    private String checkReason;
-
-    /** 入场时间 */
-    @Schema(description = "入场时间")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 28,value = "入场时间")
-    private Date admissionTime;
-
-    /** 放行时间 */
-    @Schema(description = "放行时间")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 29,value = "放行时间")
-    private Date passTime;
-
-    /** 查验时间 */
-    @Schema(description = "查验时间")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 30,value = "查验时间")
-    private Date checkTime;
-
-    /** 查验时间 */
-    @Schema(description = "查验类型")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 31,value = "类型")
-    private String checkType;
-
-    /** 查验时间 */
-    @Schema(description = "放行0否1是")
-    @ColumnWidth(12)
-    @ExcelProperty(index = 32,value = "放行0否1是")
-    private String pass;
 }

+ 3 - 2
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/param/PassengerInfoPageParam.java

@@ -129,13 +129,14 @@ public class PassengerInfoPageParam {
     private Date passTimeStart;
 
     /** 放行时间 */
-    @Schema(description = "放行开始时间")
+    @Schema(description = "放行结束时间")
     private Date passTimeEnd;
 
     /** 查验类型 */
     @Schema(description = "查验类型")
     private Date checkType;
 
-    private String pass;
+    @Schema(description = "查询类型 1 基本信息  2 旅客信息  3放行")
+    private String queryType;
 
 }

+ 140 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/param/PassengerRootPageParam.java

@@ -0,0 +1,140 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerinfo.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 旅客基本信息查询参数
+ *
+ * @author wenjinbiao
+ * @date  2024/12/05 17:34
+ **/
+@Getter
+@Setter
+public class PassengerRootPageParam {
+
+    /** 当前页 */
+    @Schema(description = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @Schema(description = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @Schema(description = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @Schema(description = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @Schema(description = "关键词")
+    private String searchKey;
+
+    /** 姓名 */
+    @Schema(description = "姓名")
+    private String name;
+
+    /** 性别 */
+    @Schema(description = "性别")
+    private String gender;
+
+    /** 身份证号 */
+    @Schema(description = "身份证号")
+    private String idNo;
+
+    /** 国籍 */
+    @Schema(description = "国籍")
+    private String nationality;
+
+    /** 居住地 */
+    @Schema(description = "居住地")
+    private String address;
+
+    /** 车次/航班号 */
+    @Schema(description = "车次/航班号")
+    private String travelNo;
+
+    /** 查验地点 */
+    @Schema(description = "查验地点")
+    private String checkPlace;
+
+
+    /** 关键词 */
+    @Schema(description = "查验状态")
+    private String checkStatus;
+
+    @Schema(description = "航班开始日期")
+    private String travelTimeStart;
+
+    @Schema(description = "航班结束日期")
+    private String travelTimeEnd;
+
+    /** 是否携带行李物品 */
+    @Schema(description = "是否携带行李物品")
+    private String baggage;
+
+
+    /** 出发港口 */
+    @Schema(description = "出发港口")
+    private String fromPort;
+
+    /** 到达港口 */
+    @Schema(description = "到达港口")
+    private String toPort;
+
+    @Schema(description = "查验开始时间")
+    private String checkTimeStart;
+
+    @Schema(description = "查验结束时间")
+    private String checkTimeEnd;
+
+    /** 查验原因 */
+    @Schema(description = "查验原因")
+    private String checkReason;
+
+    /** 查验人 */
+    @Schema(description = "查验人")
+    private String checkBy;
+
+
+    /** 入场时间 */
+    @Schema(description = "入场开始时间")
+    private Date admissionTimeStart;
+
+    @Schema(description = "入场结束时间")
+    private Date admissionTimeEnd;
+
+    /** 放行时间 */
+    @Schema(description = "放行开始时间")
+    private Date passTimeStart;
+
+    /** 放行时间 */
+    @Schema(description = "放行结束时间")
+    private Date passTimeEnd;
+
+    /** 查验类型 */
+    @Schema(description = "查验类型")
+    private Date checkType;
+
+    @Schema(description = "查询类型 1 基本信息  2 旅客信息  3放行")
+    private String queryType;
+
+}

+ 3 - 5
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/service/PassengerInfoService.java

@@ -14,12 +14,10 @@ package vip.xiaonuo.biz.modular.passenger.passengerinfo.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.*;
 import vip.xiaonuo.biz.modular.passenger.passengerinfo.vo.PassengerInfoDetailVo;
 import vip.xiaonuo.biz.modular.passenger.passengerinfo.entity.PassengerInfo;
-import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerInfoAddParam;
-import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerInfoEditParam;
-import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerInfoIdParam;
-import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerInfoPageParam;
+import vip.xiaonuo.biz.modular.passenger.passengerinfo.vo.PassengerRoot;
 
 import java.util.List;
 
@@ -37,7 +35,7 @@ public interface PassengerInfoService extends IService<PassengerInfo> {
      * @author wenjinbiao
      * @date  2024/12/05 17:34
      */
-    Page<PassengerInfo> page(PassengerInfoPageParam passengerInfoPageParam);
+    Object page(PassengerRootPageParam rootPageParam);
 
     /**
      * 添加旅客基本信息

+ 80 - 101
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/service/impl/PassengerInfoServiceImpl.java

@@ -23,20 +23,22 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import vip.xiaonuo.biz.modular.passenger.passengercheck.entity.PassengerCheck;
+import vip.xiaonuo.biz.modular.passenger.passengercheck.param.PassengerCheckPageParam;
 import vip.xiaonuo.biz.modular.passenger.passengercheck.service.PassengerCheckService;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.entity.PassengerCheckRecord;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.service.PassengerCheckRecordService;
 import vip.xiaonuo.biz.modular.passenger.passengergood.entity.PassengerGood;
 import vip.xiaonuo.biz.modular.passenger.passengergood.service.PassengerGoodService;
+import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.*;
 import vip.xiaonuo.biz.modular.passenger.passengerinfo.vo.PassengerInfoDetailVo;
-import vip.xiaonuo.biz.modular.qysecondlinehzdrqtz.entity.QySecondlineHzdRqTz;
+import vip.xiaonuo.biz.modular.passenger.passengerinfo.vo.PassengerRoot;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.entity.PassengerPass;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.service.PassengerPassService;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
 import vip.xiaonuo.biz.modular.passenger.passengerinfo.entity.PassengerInfo;
 import vip.xiaonuo.biz.modular.passenger.passengerinfo.mapper.PassengerInfoMapper;
-import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerInfoAddParam;
-import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerInfoEditParam;
-import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerInfoIdParam;
-import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerInfoPageParam;
 import vip.xiaonuo.biz.modular.passenger.passengerinfo.service.PassengerInfoService;
 
 import java.util.List;
@@ -52,102 +54,79 @@ public class PassengerInfoServiceImpl extends ServiceImpl<PassengerInfoMapper, P
     @Autowired
     private PassengerGoodService passengerGoodService;
     @Autowired
+    private PassengerCheckRecordService passengerCheckRecordService;
+    @Autowired
     private PassengerCheckService passengerCheckService;
-    @Override
-    public Page<PassengerInfo> page(PassengerInfoPageParam passengerInfoPageParam) {
-        QueryWrapper<PassengerInfo> queryWrapper = new QueryWrapper<PassengerInfo>().checkSqlInjection();
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getName())) {
-            queryWrapper.lambda().like(PassengerInfo::getName, passengerInfoPageParam.getName());
-        }
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getGender())) {
-            queryWrapper.lambda().eq(PassengerInfo::getGender, passengerInfoPageParam.getGender());
-        }
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getIdNo())) {
-            queryWrapper.lambda().like(PassengerInfo::getIdNo, passengerInfoPageParam.getIdNo());
-        }
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getNationality())) {
-            queryWrapper.lambda().eq(PassengerInfo::getNationality, passengerInfoPageParam.getNationality());
-        }
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getAddress())) {
-            queryWrapper.lambda().like(PassengerInfo::getAddress, passengerInfoPageParam.getAddress());
-        }
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getTravelNo())) {
-            queryWrapper.lambda().like(PassengerInfo::getTravelNo, passengerInfoPageParam.getTravelNo());
-        }
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getCheckPlace())) {
-            queryWrapper.lambda().like(PassengerInfo::getCheckPlace, passengerInfoPageParam.getCheckPlace());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getCheckStatus())) {
-            queryWrapper.lambda().like(PassengerInfo::getCheckStatus, passengerInfoPageParam.getCheckStatus());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getBaggage())) {
-            queryWrapper.lambda().eq(PassengerInfo::getBaggage, passengerInfoPageParam.getBaggage());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getFromPort())) {
-            queryWrapper.lambda().eq(PassengerInfo::getFromPort, passengerInfoPageParam.getFromPort());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getToPort())) {
-            queryWrapper.lambda().eq(PassengerInfo::getToPort, passengerInfoPageParam.getToPort());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getCheckReason())) {
-            queryWrapper.lambda().like(PassengerInfo::getCheckReason, passengerInfoPageParam.getCheckReason());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getCheckBy())) {
-            queryWrapper.lambda().like(PassengerInfo::getCheckBy, passengerInfoPageParam.getCheckBy());
-        }
-
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getPass())) {
-            queryWrapper.lambda().eq(PassengerInfo::getPass, passengerInfoPageParam.getPass());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getCheckType())) {
-            queryWrapper.lambda().eq(PassengerInfo::getCheckType, passengerInfoPageParam.getCheckType());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getTravelTimeStart())) {
-            queryWrapper.lambda().ge(PassengerInfo::getTravelTime, passengerInfoPageParam.getTravelTimeStart());
-        }
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getTravelTimeEnd())) {
-            queryWrapper.lambda().le(PassengerInfo::getTravelTime,passengerInfoPageParam.getTravelTimeEnd());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getCheckTimeStart())) {
-            queryWrapper.lambda().ge(PassengerInfo::getCheckTime, passengerInfoPageParam.getCheckTimeStart());
-        }
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getCheckTimeEnd())) {
-            queryWrapper.lambda().ge(PassengerInfo::getCheckTime, passengerInfoPageParam.getCheckTimeEnd());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getAdmissionTimeStart())) {
-            queryWrapper.lambda().ge(PassengerInfo::getAdmissionTime, passengerInfoPageParam.getAdmissionTimeStart());
-        }
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getAdmissionTimeEnd())) {
-            queryWrapper.lambda().le(PassengerInfo::getAdmissionTime,passengerInfoPageParam.getAdmissionTimeEnd());
-        }
-
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getPassTimeStart())) {
-            queryWrapper.lambda().ge(PassengerInfo::getPassTime, passengerInfoPageParam.getPassTimeStart());
-        }
-        if(ObjectUtil.isNotEmpty(passengerInfoPageParam.getPassTimeEnd())) {
-            queryWrapper.lambda().le(PassengerInfo::getPassTime,passengerInfoPageParam.getPassTimeEnd());
-        }
-
+    @Autowired
+    private PassengerPassService passengerPassService;
 
-        if(ObjectUtil.isAllNotEmpty(passengerInfoPageParam.getSortField(), passengerInfoPageParam.getSortOrder())) {
-            CommonSortOrderEnum.validate(passengerInfoPageParam.getSortOrder());
-            queryWrapper.orderBy(true, passengerInfoPageParam.getSortOrder().equalsIgnoreCase(CommonSortOrderEnum.ASC.getValue()),
-                    StrUtil.toUnderlineCase(passengerInfoPageParam.getSortField()));
-        } else {
-            queryWrapper.lambda().orderByAsc(PassengerInfo::getId);
-        }
-        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    @Override
+    public Object page(PassengerRootPageParam rootPageParam) {
+        if("1".equals(rootPageParam.getQueryType())){
+            QueryWrapper<PassengerInfo> queryWrapper = new QueryWrapper<PassengerInfo>().checkSqlInjection();
+            if(ObjectUtil.isNotEmpty(rootPageParam.getName())) {
+                queryWrapper.lambda().like(PassengerInfo::getName, rootPageParam.getName());
+            }
+            if(ObjectUtil.isNotEmpty(rootPageParam.getGender())) {
+                queryWrapper.lambda().eq(PassengerInfo::getGender, rootPageParam.getGender());
+            }
+            if(ObjectUtil.isNotEmpty(rootPageParam.getIdNo())) {
+                queryWrapper.lambda().like(PassengerInfo::getIdNo, rootPageParam.getIdNo());
+            }
+            if(ObjectUtil.isNotEmpty(rootPageParam.getNationality())) {
+                queryWrapper.lambda().eq(PassengerInfo::getNationality, rootPageParam.getNationality());
+            }
+            if(ObjectUtil.isNotEmpty(rootPageParam.getAddress())) {
+                queryWrapper.lambda().like(PassengerInfo::getAddress, rootPageParam.getAddress());
+            }
+            if(ObjectUtil.isNotEmpty(rootPageParam.getTravelNo())) {
+                queryWrapper.lambda().like(PassengerInfo::getTravelNo, rootPageParam.getTravelNo());
+            }
+
+
+            if(ObjectUtil.isNotEmpty(rootPageParam.getBaggage())) {
+                queryWrapper.lambda().eq(PassengerInfo::getBaggage, rootPageParam.getBaggage());
+            }
+
+            if(ObjectUtil.isNotEmpty(rootPageParam.getFromPort())) {
+                queryWrapper.lambda().eq(PassengerInfo::getFromPort, rootPageParam.getFromPort());
+            }
+
+            if(ObjectUtil.isNotEmpty(rootPageParam.getToPort())) {
+                queryWrapper.lambda().eq(PassengerInfo::getToPort, rootPageParam.getToPort());
+            }
+
+
+
+
+
+
+            if(ObjectUtil.isNotEmpty(rootPageParam.getTravelTimeStart())) {
+                queryWrapper.lambda().ge(PassengerInfo::getTravelTime, rootPageParam.getTravelTimeStart());
+            }
+            if(ObjectUtil.isNotEmpty(rootPageParam.getTravelTimeEnd())) {
+                queryWrapper.lambda().le(PassengerInfo::getTravelTime,rootPageParam.getTravelTimeEnd());
+            }
+
+
+            if(ObjectUtil.isAllNotEmpty(rootPageParam.getSortField(), rootPageParam.getSortOrder())) {
+                CommonSortOrderEnum.validate(rootPageParam.getSortOrder());
+                queryWrapper.orderBy(true, rootPageParam.getSortOrder().equalsIgnoreCase(CommonSortOrderEnum.ASC.getValue()),
+                        StrUtil.toUnderlineCase(rootPageParam.getSortField()));
+            } else {
+                queryWrapper.lambda().orderByAsc(PassengerInfo::getId);
+            }
+            Page<PassengerInfo> page = this.page(CommonPageRequest.defaultPage(), queryWrapper);
+
+            return page;
+        }else if("2".equals(rootPageParam.getQueryType())){
+            Page<PassengerCheck> page = passengerCheckService.page(rootPageParam);
+            return page;
+        }else if("3".equals(rootPageParam.getQueryType())){
+            Page<PassengerPass> page = passengerPassService.page(rootPageParam);
+            return page;
+        }
+        return null;
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -180,8 +159,8 @@ public class PassengerInfoServiceImpl extends ServiceImpl<PassengerInfoMapper, P
         QueryWrapper<PassengerGood> goodWrapper = new QueryWrapper<PassengerGood>().checkSqlInjection();
         List<PassengerGood> goods = passengerGoodService.list(goodWrapper.lambda().eq(PassengerGood::getPassengerId, passengerInfoIdParam.getId()));
 
-        QueryWrapper<PassengerCheck> checkWrapper = new QueryWrapper<PassengerCheck>().checkSqlInjection();
-        List<PassengerCheck> checks = passengerCheckService.list(checkWrapper.lambda().eq(PassengerCheck::getPassengerId, passengerInfoIdParam.getId()));
+        QueryWrapper<PassengerCheckRecord> checkWrapper = new QueryWrapper<PassengerCheckRecord>().checkSqlInjection();
+        List<PassengerCheckRecord> checks = passengerCheckRecordService.list(checkWrapper.lambda().eq(PassengerCheckRecord::getPassengerId, passengerInfoIdParam.getId()));
         BeanUtil.copyProperties(passengerInfo,detailVo);
         detailVo.setGoods(goods);
         detailVo.setChecks(checks);

+ 2 - 2
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/vo/PassengerInfoDetailVo.java

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
-import vip.xiaonuo.biz.modular.passenger.passengercheck.entity.PassengerCheck;
+import vip.xiaonuo.biz.modular.passenger.passengercheckrecord.entity.PassengerCheckRecord;
 import vip.xiaonuo.biz.modular.passenger.passengergood.entity.PassengerGood;
 
 import java.util.Date;
@@ -206,5 +206,5 @@ public class PassengerInfoDetailVo {
     private List<PassengerGood> goods;
 
     @Schema(description = "查验过程记录")
-    private List<PassengerCheck> checks;
+    private List<PassengerCheckRecord> checks;
 }

+ 9 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerinfo/vo/PassengerRoot.java

@@ -0,0 +1,9 @@
+package vip.xiaonuo.biz.modular.passenger.passengerinfo.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public abstract class PassengerRoot {
+}

+ 175 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/controller/PassengerPassController.java

@@ -0,0 +1,175 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerpass.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.URLUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.entity.PassengerPass;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassAddParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassEditParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassIdParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassPageParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.service.PassengerPassService;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotEmpty;
+import java.util.List;
+import java.io.IOException;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.fastjson.JSON;
+import java.net.URLEncoder;
+import java.util.HashMap;
+
+/**
+ * 旅客放行信息控制器
+ *
+ * @author wenjinbiao
+ * @date  2024/12/06 15:48
+ */
+@Tag(name = "旅客放行信息控制器")
+@RestController
+@Validated
+public class PassengerPassController {
+
+    @Resource
+    private PassengerPassService passengerPassService;
+
+    /**
+     * 获取旅客放行信息分页
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    @Operation(summary = "获取旅客放行信息分页")
+    @SaCheckPermission("/biz/passengerpass/page")
+    @GetMapping("/biz/passengerpass/page")
+    public CommonResult<Page<PassengerPass>> page(PassengerPassPageParam passengerPassPageParam) {
+       // return CommonResult.data(passengerPassService.page(passengerPassPageParam));
+        return null;
+    }
+
+    /**
+     * 添加旅客放行信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    @Operation(summary = "添加旅客放行信息")
+    @CommonLog("添加旅客放行信息")
+    @SaCheckPermission("/biz/passengerpass/add")
+    @PostMapping("/biz/passengerpass/add")
+    public CommonResult<String> add(@RequestBody @Valid PassengerPassAddParam passengerPassAddParam) {
+        passengerPassService.add(passengerPassAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑旅客放行信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    @Operation(summary = "编辑旅客放行信息")
+    @CommonLog("编辑旅客放行信息")
+    @SaCheckPermission("/biz/passengerpass/edit")
+    @PostMapping("/biz/passengerpass/edit")
+    public CommonResult<String> edit(@RequestBody @Valid PassengerPassEditParam passengerPassEditParam) {
+        passengerPassService.edit(passengerPassEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 导出旅客放行信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    @Operation(summary = "导出旅客放行信息")
+    @CommonLog("导出旅客放行信息")
+    @SaCheckPermission("/biz/passengerpass/export")
+    @PostMapping("/biz/passengerpass/export")
+    public void export(@RequestBody @Valid PassengerPassPageParam passengerPassPageParam, HttpServletResponse response) {
+//        Page<PassengerPass> page =  passengerPassService.page(passengerPassPageParam);
+//        List<PassengerPass> records = page.getRecords();
+//        exportExcel(response,PassengerPass.class,records,"旅客放行信息");
+    }
+
+
+    /**
+     * 导出表格数据
+     * @param cl       表格字段实体类
+     * @param data     查询数据
+     * @param sheetName  表格名称
+     */
+    public void exportExcel(HttpServletResponse response, Class cl, List data, String sheetName){
+       HashMap<String, String> map = new HashMap<>();
+       try {
+           response.setHeader("Content-disposition", "attachment;filename=" + URLUtil.encode(sheetName) + ".xlsx");
+           response.setHeader("Access-Control-Allow-Origin", "*");
+           response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
+           response.setContentType("application/octet-stream;charset=UTF-8");
+           EasyExcel.write(response.getOutputStream(), cl).autoCloseStream(Boolean.FALSE).sheet(sheetName).doWrite(data);
+       } catch (IOException e) {
+           response.reset();
+           response.setContentType("application/json");
+           response.setCharacterEncoding("utf-8");
+           map.put("status", "failure");
+           map.put("message", "下载文件失败" + e.getMessage());
+           try {
+               response.getWriter().println(JSON.toJSONString(map));
+           } catch (IOException ex) {
+               ex.printStackTrace();
+           }
+       }
+    }
+
+    /**
+     * 删除旅客放行信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    @Operation(summary = "删除旅客放行信息")
+    @CommonLog("删除旅客放行信息")
+    @SaCheckPermission("/biz/passengerpass/delete")
+    @PostMapping("/biz/passengerpass/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   List<PassengerPassIdParam> passengerPassIdParamList) {
+        passengerPassService.delete(passengerPassIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取旅客放行信息详情
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    @Operation(summary = "获取旅客放行信息详情")
+    @SaCheckPermission("/biz/passengerpass/detail")
+    @GetMapping("/biz/passengerpass/detail")
+    public CommonResult<PassengerPass> detail(@Valid PassengerPassIdParam passengerPassIdParam) {
+        return CommonResult.data(passengerPassService.detail(passengerPassIdParam));
+    }
+}

+ 232 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/entity/PassengerPass.java

@@ -0,0 +1,232 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerpass.entity;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 旅客放行信息实体
+ *
+ * @author wenjinbiao
+ * @date  2024/12/06 15:48
+ **/
+@Getter
+@Setter
+@TableName("passenger_pass")
+public class PassengerPass {
+
+    /** id */
+    @TableId
+    @Schema(description = "id")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 0,value = "id")
+    private String id;
+
+    /** 姓名 */
+    @Schema(description = "姓名")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 1,value = "姓名")
+    private String name;
+
+    /** 性别 */
+    @Schema(description = "性别")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 2,value = "性别")
+    private String gender;
+
+    /** 年龄 */
+    @Schema(description = "年龄")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 3,value = "年龄")
+    private String age;
+
+    /** 身份证号 */
+    @Schema(description = "身份证号")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 4,value = "身份证号")
+    private String idNo;
+
+    /** 证件照 */
+    @Schema(description = "证件照")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 5,value = "证件照")
+    private String certificateUrl;
+
+    /** 抓拍照 */
+    @Schema(description = "抓拍照")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 6,value = "抓拍照")
+    private String captureUrl;
+
+    /** 相似度 */
+    @Schema(description = "相似度")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 7,value = "相似度")
+    private String similarity;
+
+    /** 国籍 */
+    @Schema(description = "国籍")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 8,value = "国籍")
+    private String nationality;
+
+    /** 居住地 */
+    @Schema(description = "居住地")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 9,value = "居住地")
+    private String address;
+
+    /** 车次/航班号 */
+    @Schema(description = "车次/航班号")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 10,value = "车次/航班号")
+    private String travelNo;
+
+    /** 航/车次(班)日期 */
+    @Schema(description = "航/车次(班)日期")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 11,value = "航/车次(班)日期")
+    private Date travelTime;
+
+    /** 出发时间 */
+    @Schema(description = "出发时间")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 12,value = "出发时间")
+    private Date departTime;
+
+    /** 是否携带行李物品 */
+    @Schema(description = "是否携带行李物品")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 13,value = "是否携带行李物品")
+    private String baggage;
+
+    /** 出发港口 */
+    @Schema(description = "出发港口")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 14,value = "出发港口")
+    private String fromPort;
+
+    /** 到达港口 */
+    @Schema(description = "到达港口")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 15,value = "到达港口")
+    private String toPort;
+
+    /** 座位号 */
+    @Schema(description = "座位号")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 16,value = "座位号")
+    private String seatNo;
+
+    /** 交通工具类型 */
+    @Schema(description = "交通工具类型")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 17,value = "交通工具类型")
+    private String vehicleType;
+
+    /** 查验指令 */
+    @Schema(description = "查验指令")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 18,value = "查验指令")
+    private String checkInstruction;
+
+    /** 指令编号 */
+    @Schema(description = "指令编号")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 19,value = "指令编号")
+    private String checkInstructionNo;
+
+    /** 发布时间 */
+    @Schema(description = "发布时间")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 20,value = "发布时间")
+    private Date releaseTime;
+
+    /** 查验地点 */
+    @Schema(description = "查验地点")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 21,value = "查验地点")
+    private String checkPlace;
+
+    /** 查验方式 */
+    @Schema(description = "查验方式")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 22,value = "查验方式")
+    private String checkMethod;
+
+    /** 查验目的 */
+    @Schema(description = "查验目的")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 23,value = "查验目的")
+    private String checkPurpose;
+
+    /** 查验状态 */
+    @Schema(description = "查验状态")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 24,value = "查验状态")
+    private String checkStatus;
+
+    /** 查验人 */
+    @Schema(description = "查验人")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 25,value = "查验人")
+    private String checkBy;
+
+    /** 查验结果 */
+    @Schema(description = "查验结果")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 26,value = "查验结果")
+    private String checkResult;
+
+    /** 查验时间 */
+    @Schema(description = "查验时间")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 27,value = "查验时间")
+    private Date checkTime;
+
+    /** 查验原因 */
+    @Schema(description = "查验原因")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 28,value = "查验原因")
+    private String checkReason;
+
+    /** 入场时间 */
+    @Schema(description = "入场时间")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 29,value = "入场时间")
+    private Date admissionTime;
+
+    /** 放行时间 */
+    @Schema(description = "放行时间")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 30,value = "放行时间")
+    private Date passTime;
+
+    /** 查验类型 */
+    @Schema(description = "查验类型")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 31,value = "查验类型")
+    private String checkType;
+
+    /** 放行0否1是 */
+    @Schema(description = "放行0否1是")
+    @ColumnWidth(12)
+    @ExcelProperty(index = 32,value = "放行0否1是")
+    private String pass;
+}

+ 34 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/enums/PassengerPassEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerpass.enums;
+
+import lombok.Getter;
+
+/**
+ * 旅客放行信息枚举
+ *
+ * @author wenjinbiao
+ * @date  2024/12/06 15:48
+ **/
+@Getter
+public enum PassengerPassEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    PassengerPassEnum(String value) {
+        this.value = value;
+    }
+}

+ 25 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/mapper/PassengerPassMapper.java

@@ -0,0 +1,25 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerpass.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.entity.PassengerPass;
+
+/**
+ * 旅客放行信息Mapper接口
+ *
+ * @author wenjinbiao
+ * @date  2024/12/06 15:48
+ **/
+public interface PassengerPassMapper extends BaseMapper<PassengerPass> {
+}

+ 5 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/mapper/mapping/PassengerPassMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.biz.modular.passenger.passengerpass.mapper.PassengerPassMapper">
+
+</mapper>

+ 162 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/param/PassengerPassAddParam.java

@@ -0,0 +1,162 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerpass.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 旅客放行信息添加参数
+ *
+ * @author wenjinbiao
+ * @date  2024/12/06 15:48
+ **/
+@Getter
+@Setter
+public class PassengerPassAddParam {
+
+    /** 姓名 */
+    @Schema(description = "姓名")
+    private String name;
+
+    /** 性别 */
+    @Schema(description = "性别")
+    private String gender;
+
+    /** 年龄 */
+    @Schema(description = "年龄")
+    private String age;
+
+    /** 身份证号 */
+    @Schema(description = "身份证号")
+    private String idNo;
+
+    /** 证件照 */
+    @Schema(description = "证件照")
+    private String certificateUrl;
+
+    /** 抓拍照 */
+    @Schema(description = "抓拍照")
+    private String captureUrl;
+
+    /** 相似度 */
+    @Schema(description = "相似度")
+    private String similarity;
+
+    /** 国籍 */
+    @Schema(description = "国籍")
+    private String nationality;
+
+    /** 居住地 */
+    @Schema(description = "居住地")
+    private String address;
+
+    /** 车次/航班号 */
+    @Schema(description = "车次/航班号")
+    private String travelNo;
+
+    /** 航/车次(班)日期 */
+    @Schema(description = "航/车次(班)日期")
+    private Date travelTime;
+
+    /** 出发时间 */
+    @Schema(description = "出发时间")
+    private Date departTime;
+
+    /** 是否携带行李物品 */
+    @Schema(description = "是否携带行李物品")
+    private String baggage;
+
+    /** 出发港口 */
+    @Schema(description = "出发港口")
+    private String fromPort;
+
+    /** 到达港口 */
+    @Schema(description = "到达港口")
+    private String toPort;
+
+    /** 座位号 */
+    @Schema(description = "座位号")
+    private String seatNo;
+
+    /** 交通工具类型 */
+    @Schema(description = "交通工具类型")
+    private String vehicleType;
+
+    /** 查验指令 */
+    @Schema(description = "查验指令")
+    private String checkInstruction;
+
+    /** 指令编号 */
+    @Schema(description = "指令编号")
+    private String checkInstructionNo;
+
+    /** 发布时间 */
+    @Schema(description = "发布时间")
+    private Date releaseTime;
+
+    /** 查验地点 */
+    @Schema(description = "查验地点")
+    private String checkPlace;
+
+    /** 查验方式 */
+    @Schema(description = "查验方式")
+    private String checkMethod;
+
+    /** 查验目的 */
+    @Schema(description = "查验目的")
+    private String checkPurpose;
+
+    /** 查验状态 */
+    @Schema(description = "查验状态")
+    private String checkStatus;
+
+    /** 查验人 */
+    @Schema(description = "查验人")
+    private String checkBy;
+
+    /** 查验结果 */
+    @Schema(description = "查验结果")
+    private String checkResult;
+
+    /** 查验时间 */
+    @Schema(description = "查验时间")
+    private Date checkTime;
+
+    /** 查验原因 */
+    @Schema(description = "查验原因")
+    private String checkReason;
+
+    /** 入场时间 */
+    @Schema(description = "入场时间")
+    private Date admissionTime;
+
+    /** 放行时间 */
+    @Schema(description = "放行时间")
+    private Date passTime;
+
+    /** 查验类型 */
+    @Schema(description = "查验类型")
+    private String checkType;
+
+    /** 放行0否1是 */
+    @Schema(description = "放行0否1是")
+    private String pass;
+
+}

+ 167 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/param/PassengerPassEditParam.java

@@ -0,0 +1,167 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerpass.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 旅客放行信息编辑参数
+ *
+ * @author wenjinbiao
+ * @date  2024/12/06 15:48
+ **/
+@Getter
+@Setter
+public class PassengerPassEditParam {
+
+    /** id */
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** 姓名 */
+    @Schema(description = "姓名")
+    private String name;
+
+    /** 性别 */
+    @Schema(description = "性别")
+    private String gender;
+
+    /** 年龄 */
+    @Schema(description = "年龄")
+    private String age;
+
+    /** 身份证号 */
+    @Schema(description = "身份证号")
+    private String idNo;
+
+    /** 证件照 */
+    @Schema(description = "证件照")
+    private String certificateUrl;
+
+    /** 抓拍照 */
+    @Schema(description = "抓拍照")
+    private String captureUrl;
+
+    /** 相似度 */
+    @Schema(description = "相似度")
+    private String similarity;
+
+    /** 国籍 */
+    @Schema(description = "国籍")
+    private String nationality;
+
+    /** 居住地 */
+    @Schema(description = "居住地")
+    private String address;
+
+    /** 车次/航班号 */
+    @Schema(description = "车次/航班号")
+    private String travelNo;
+
+    /** 航/车次(班)日期 */
+    @Schema(description = "航/车次(班)日期")
+    private Date travelTime;
+
+    /** 出发时间 */
+    @Schema(description = "出发时间")
+    private Date departTime;
+
+    /** 是否携带行李物品 */
+    @Schema(description = "是否携带行李物品")
+    private String baggage;
+
+    /** 出发港口 */
+    @Schema(description = "出发港口")
+    private String fromPort;
+
+    /** 到达港口 */
+    @Schema(description = "到达港口")
+    private String toPort;
+
+    /** 座位号 */
+    @Schema(description = "座位号")
+    private String seatNo;
+
+    /** 交通工具类型 */
+    @Schema(description = "交通工具类型")
+    private String vehicleType;
+
+    /** 查验指令 */
+    @Schema(description = "查验指令")
+    private String checkInstruction;
+
+    /** 指令编号 */
+    @Schema(description = "指令编号")
+    private String checkInstructionNo;
+
+    /** 发布时间 */
+    @Schema(description = "发布时间")
+    private Date releaseTime;
+
+    /** 查验地点 */
+    @Schema(description = "查验地点")
+    private String checkPlace;
+
+    /** 查验方式 */
+    @Schema(description = "查验方式")
+    private String checkMethod;
+
+    /** 查验目的 */
+    @Schema(description = "查验目的")
+    private String checkPurpose;
+
+    /** 查验状态 */
+    @Schema(description = "查验状态")
+    private String checkStatus;
+
+    /** 查验人 */
+    @Schema(description = "查验人")
+    private String checkBy;
+
+    /** 查验结果 */
+    @Schema(description = "查验结果")
+    private String checkResult;
+
+    /** 查验时间 */
+    @Schema(description = "查验时间")
+    private Date checkTime;
+
+    /** 查验原因 */
+    @Schema(description = "查验原因")
+    private String checkReason;
+
+    /** 入场时间 */
+    @Schema(description = "入场时间")
+    private Date admissionTime;
+
+    /** 放行时间 */
+    @Schema(description = "放行时间")
+    private Date passTime;
+
+    /** 查验类型 */
+    @Schema(description = "查验类型")
+    private String checkType;
+
+    /** 放行0否1是 */
+    @Schema(description = "放行0否1是")
+    private String pass;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/param/PassengerPassIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerpass.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+
+/**
+ * 旅客放行信息Id参数
+ *
+ * @author wenjinbiao
+ * @date  2024/12/06 15:48
+ **/
+@Getter
+@Setter
+public class PassengerPassIdParam {
+
+    /** id */
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 51 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/param/PassengerPassPageParam.java

@@ -0,0 +1,51 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerpass.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 旅客放行信息查询参数
+ *
+ * @author wenjinbiao
+ * @date  2024/12/06 15:48
+ **/
+@Getter
+@Setter
+public class PassengerPassPageParam {
+
+    /** 当前页 */
+    @Schema(description = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @Schema(description = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @Schema(description = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @Schema(description = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @Schema(description = "关键词")
+    private String searchKey;
+
+}

+ 81 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/service/PassengerPassService.java

@@ -0,0 +1,81 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerpass.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerRootPageParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.entity.PassengerPass;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassAddParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassEditParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassIdParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassPageParam;
+
+import java.util.List;
+
+/**
+ * 旅客放行信息Service接口
+ *
+ * @author wenjinbiao
+ * @date  2024/12/06 15:48
+ **/
+public interface PassengerPassService extends IService<PassengerPass> {
+
+    /**
+     * 获取旅客放行信息分页
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    Page<PassengerPass> page(PassengerRootPageParam rootPageParam);
+
+    /**
+     * 添加旅客放行信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    void add(PassengerPassAddParam passengerPassAddParam);
+
+    /**
+     * 编辑旅客放行信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    void edit(PassengerPassEditParam passengerPassEditParam);
+
+    /**
+     * 删除旅客放行信息
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    void delete(List<PassengerPassIdParam> passengerPassIdParamList);
+
+    /**
+     * 获取旅客放行信息详情
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     */
+    PassengerPass detail(PassengerPassIdParam passengerPassIdParam);
+
+    /**
+     * 获取旅客放行信息详情
+     *
+     * @author wenjinbiao
+     * @date  2024/12/06 15:48
+     **/
+    PassengerPass queryEntity(String id);
+}

+ 175 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/passenger/passengerpass/service/impl/PassengerPassServiceImpl.java

@@ -0,0 +1,175 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.passenger.passengerpass.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import vip.xiaonuo.biz.modular.passenger.passengerinfo.param.PassengerRootPageParam;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.entity.PassengerPass;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.mapper.PassengerPassMapper;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassAddParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassEditParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassIdParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.param.PassengerPassPageParam;
+import vip.xiaonuo.biz.modular.passenger.passengerpass.service.PassengerPassService;
+
+import java.util.List;
+
+/**
+ * 旅客放行信息Service接口实现类
+ *
+ * @author wenjinbiao
+ * @date  2024/12/06 15:48
+ **/
+@Service
+public class PassengerPassServiceImpl extends ServiceImpl<PassengerPassMapper, PassengerPass> implements PassengerPassService {
+
+    @Override
+    public Page<PassengerPass> page(PassengerRootPageParam rootPageParam) {
+        QueryWrapper<PassengerPass> queryWrapper = new QueryWrapper<PassengerPass>().checkSqlInjection();
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getName())) {
+            queryWrapper.lambda().like(PassengerPass::getName, rootPageParam.getName());
+        }
+        if(ObjectUtil.isNotEmpty(rootPageParam.getGender())) {
+            queryWrapper.lambda().eq(PassengerPass::getGender, rootPageParam.getGender());
+        }
+        if(ObjectUtil.isNotEmpty(rootPageParam.getIdNo())) {
+            queryWrapper.lambda().like(PassengerPass::getIdNo, rootPageParam.getIdNo());
+        }
+        if(ObjectUtil.isNotEmpty(rootPageParam.getNationality())) {
+            queryWrapper.lambda().eq(PassengerPass::getNationality, rootPageParam.getNationality());
+        }
+        if(ObjectUtil.isNotEmpty(rootPageParam.getAddress())) {
+            queryWrapper.lambda().like(PassengerPass::getAddress, rootPageParam.getAddress());
+        }
+        if(ObjectUtil.isNotEmpty(rootPageParam.getTravelNo())) {
+            queryWrapper.lambda().like(PassengerPass::getTravelNo, rootPageParam.getTravelNo());
+        }
+        if(ObjectUtil.isNotEmpty(rootPageParam.getCheckPlace())) {
+            queryWrapper.lambda().like(PassengerPass::getCheckPlace, rootPageParam.getCheckPlace());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getCheckStatus())) {
+            queryWrapper.lambda().like(PassengerPass::getCheckStatus, rootPageParam.getCheckStatus());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getBaggage())) {
+            queryWrapper.lambda().eq(PassengerPass::getBaggage, rootPageParam.getBaggage());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getFromPort())) {
+            queryWrapper.lambda().eq(PassengerPass::getFromPort, rootPageParam.getFromPort());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getToPort())) {
+            queryWrapper.lambda().eq(PassengerPass::getToPort, rootPageParam.getToPort());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getCheckReason())) {
+            queryWrapper.lambda().like(PassengerPass::getCheckReason, rootPageParam.getCheckReason());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getCheckBy())) {
+            queryWrapper.lambda().like(PassengerPass::getCheckBy, rootPageParam.getCheckBy());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getCheckType())) {
+            queryWrapper.lambda().eq(PassengerPass::getCheckType, rootPageParam.getCheckType());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getTravelTimeStart())) {
+            queryWrapper.lambda().ge(PassengerPass::getTravelTime, rootPageParam.getTravelTimeStart());
+        }
+        if(ObjectUtil.isNotEmpty(rootPageParam.getTravelTimeEnd())) {
+            queryWrapper.lambda().le(PassengerPass::getTravelTime,rootPageParam.getTravelTimeEnd());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getCheckTimeStart())) {
+            queryWrapper.lambda().ge(PassengerPass::getCheckTime, rootPageParam.getCheckTimeStart());
+        }
+        if(ObjectUtil.isNotEmpty(rootPageParam.getCheckTimeEnd())) {
+            queryWrapper.lambda().ge(PassengerPass::getCheckTime, rootPageParam.getCheckTimeEnd());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getAdmissionTimeStart())) {
+            queryWrapper.lambda().ge(PassengerPass::getAdmissionTime, rootPageParam.getAdmissionTimeStart());
+        }
+        if(ObjectUtil.isNotEmpty(rootPageParam.getAdmissionTimeEnd())) {
+            queryWrapper.lambda().le(PassengerPass::getAdmissionTime,rootPageParam.getAdmissionTimeEnd());
+        }
+
+        if(ObjectUtil.isNotEmpty(rootPageParam.getPassTimeStart())) {
+            queryWrapper.lambda().ge(PassengerPass::getPassTime, rootPageParam.getPassTimeStart());
+        }
+        if(ObjectUtil.isNotEmpty(rootPageParam.getPassTimeEnd())) {
+            queryWrapper.lambda().le(PassengerPass::getPassTime,rootPageParam.getPassTimeEnd());
+        }
+
+        if(ObjectUtil.isAllNotEmpty(rootPageParam.getSortField(), rootPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(rootPageParam.getSortOrder());
+            queryWrapper.orderBy(true, rootPageParam.getSortOrder().equalsIgnoreCase(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(rootPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(PassengerPass::getId);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(PassengerPassAddParam passengerPassAddParam) {
+        PassengerPass passengerPass = BeanUtil.toBean(passengerPassAddParam, PassengerPass.class);
+        this.save(passengerPass);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(PassengerPassEditParam passengerPassEditParam) {
+        PassengerPass passengerPass = this.queryEntity(passengerPassEditParam.getId());
+        BeanUtil.copyProperties(passengerPassEditParam, passengerPass);
+        this.updateById(passengerPass);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<PassengerPassIdParam> passengerPassIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(passengerPassIdParamList, PassengerPassIdParam::getId));
+    }
+
+    @Override
+    public PassengerPass detail(PassengerPassIdParam passengerPassIdParam) {
+        return this.queryEntity(passengerPassIdParam.getId());
+    }
+
+    @Override
+    public PassengerPass queryEntity(String id) {
+        PassengerPass passengerPass = this.getById(id);
+        if(ObjectUtil.isEmpty(passengerPass)) {
+            throw new CommonException("旅客放行信息不存在,id值为:{}", id);
+        }
+        return passengerPass;
+    }
+}