Browse Source

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

dzx 1 year ago
parent
commit
873acc2bf3

+ 32 - 5
src/main/java/com/xjrsoft/module/outint/controller/CarOutInRecordController.java

@@ -1,9 +1,13 @@
 package com.xjrsoft.module.outint.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.yulichang.toolkit.MPJWrappers;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
@@ -15,6 +19,14 @@ import com.xjrsoft.module.outint.entity.CarOutInRecord;
 import com.xjrsoft.module.outint.service.ICarOutInRecordService;
 import com.xjrsoft.module.outint.vo.CarOutInRecordPageVo;
 import com.xjrsoft.module.outint.vo.CarOutInRecordVo;
+import com.xjrsoft.module.personnel.entity.CarMessageApply;
+import com.xjrsoft.module.personnel.entity.ReservationSchool;
+import com.xjrsoft.module.personnel.entity.ReservationSchoolPeople;
+import com.xjrsoft.module.personnel.entity.StundentFaceProcess;
+import com.xjrsoft.module.personnel.vo.ReservationSchoolVisitorPageVo;
+import com.xjrsoft.module.system.entity.DictionaryDetail;
+import com.xjrsoft.module.system.entity.File;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -50,11 +62,26 @@ public class CarOutInRecordController {
     @SaCheckPermission("caroutinrecord:detail")
     public RT<PageOutput<CarOutInRecordPageVo>> page(@Valid CarOutInRecordPageDto dto){
 
-        LambdaQueryWrapper<CarOutInRecord> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                    .orderByDesc(CarOutInRecord::getId)
-                .select(CarOutInRecord.class,x -> VoToColumnUtil.fieldsToColumns(CarOutInRecordPageVo.class).contains(x.getProperty()));
-        IPage<CarOutInRecord> page = carOutInRecordService.page(ConventPage.getPage(dto), queryWrapper);
+        IPage<CarOutInRecordPageVo> page = carOutInRecordService.selectJoinListPage(ConventPage.getPage(dto),CarOutInRecordPageVo.class,
+                MPJWrappers.<CarOutInRecord>lambdaJoin()
+                        .orderByDesc(CarOutInRecord::getId)
+                        .ge(ObjectUtil.isNotNull(dto.getStartTime()),CarOutInRecord::getRecordTime,dto.getStartTime())
+                        .le(ObjectUtil.isNotNull(dto.getEndTime()),CarOutInRecord::getRecordTime,dto.getEndTime())
+                        .eq(ObjectUtil.isNotNull(dto.getCategory()), CarOutInRecord::getCategory, dto.getCategory())
+                        .eq(ObjectUtil.isNotNull(dto.getStatus()), CarOutInRecord::getStatus, dto.getStatus())
+                        .eq(ObjectUtil.isNotNull(dto.getVehicleType()), CarMessageApply::getVehicleType, dto.getVehicleType())
+                        .like(StrUtil.isNotBlank(dto.getName()), ReservationSchoolPeople::getName,dto.getName())
+                        .like(StrUtil.isNotBlank(dto.getPhone()),ReservationSchoolPeople::getPhone,dto.getPhone())
+                        .select(CarOutInRecord::getId)
+                        .select(ReservationSchoolPeople::getPhone,ReservationSchoolPeople::getGender,ReservationSchoolPeople::getName,ReservationSchoolPeople::getIdentityCard,ReservationSchoolPeople::getPlateNumber)
+                        .select(CarOutInRecord.class,x -> VoToColumnUtil.fieldsToColumns(CarOutInRecordPageVo.class).contains(x.getProperty()))
+                        .select(CarMessageApply::getVehicleType)
+                        .leftJoin(ReservationSchoolPeople.class,ReservationSchoolPeople::getId,CarOutInRecord::getReservationSchoolPeopleId)
+                        .leftJoin(CarMessageApply.class,CarMessageApply::getId,CarOutInRecord::getCarMessageApplyId)
+                        .leftJoin(File.class,File::getFolderId, CarOutInRecord::getFacePhoto,ext->ext.selectAs(File::getFileUrl,CarOutInRecordPageVo::getFacePhotoUrl))
+                        .leftJoin(DictionaryDetail.class,DictionaryDetail::getCode, ReservationSchoolPeople::getGender, ext->ext.selectAs(DictionaryDetail::getName, CarOutInRecordPageVo::getGender))
+                );
+
         PageOutput<CarOutInRecordPageVo> pageOutput = ConventPage.getPageOutput(page, CarOutInRecordPageVo.class);
         return RT.ok(pageOutput);
     }

+ 36 - 6
src/main/java/com/xjrsoft/module/outint/controller/VisitorOutInRecordController.java

@@ -2,19 +2,32 @@ package com.xjrsoft.module.outint.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.yulichang.toolkit.MPJWrappers;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.organization.entity.Department;
 import com.xjrsoft.module.outint.dto.AddVisitorOutInRecordDto;
 import com.xjrsoft.module.outint.dto.UpdateVisitorOutInRecordDto;
 import com.xjrsoft.module.outint.dto.VisitorOutInRecordPageDto;
+import com.xjrsoft.module.outint.entity.CarOutInRecord;
 import com.xjrsoft.module.outint.entity.VisitorOutInRecord;
 import com.xjrsoft.module.outint.service.IVisitorOutInRecordService;
+import com.xjrsoft.module.outint.vo.CarOutInRecordPageVo;
 import com.xjrsoft.module.outint.vo.VisitorOutInRecordPageVo;
 import com.xjrsoft.module.outint.vo.VisitorOutInRecordVo;
+import com.xjrsoft.module.personnel.entity.CarMessageApply;
+import com.xjrsoft.module.personnel.entity.ReservationSchool;
+import com.xjrsoft.module.personnel.entity.ReservationSchoolPeople;
+import com.xjrsoft.module.personnel.vo.ReservationSchoolVisitorPageVo;
+import com.xjrsoft.module.system.entity.DictionaryDetail;
+import com.xjrsoft.module.system.entity.File;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -49,12 +62,29 @@ public class VisitorOutInRecordController {
     @ApiOperation(value="访客出入记录列表(分页)")
     @SaCheckPermission("visitoroutinrecord:detail")
     public RT<PageOutput<VisitorOutInRecordPageVo>> page(@Valid VisitorOutInRecordPageDto dto){
-
-        LambdaQueryWrapper<VisitorOutInRecord> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                    .orderByDesc(VisitorOutInRecord::getId)
-                .select(VisitorOutInRecord.class,x -> VoToColumnUtil.fieldsToColumns(VisitorOutInRecordPageVo.class).contains(x.getProperty()));
-        IPage<VisitorOutInRecord> page = visitorOutInRecordService.page(ConventPage.getPage(dto), queryWrapper);
+        IPage<VisitorOutInRecordPageVo> page = visitorOutInRecordService.selectJoinListPage(ConventPage.getPage(dto),VisitorOutInRecordPageVo.class,
+                MPJWrappers.<VisitorOutInRecord>lambdaJoin()
+                        .orderByDesc(VisitorOutInRecord::getId)
+                        .like(StrUtil.isNotBlank(dto.getName()), ReservationSchoolPeople::getName,dto.getName())
+                        .like(StrUtil.isNotBlank(dto.getIdentityCard()), ReservationSchoolPeople::getIdentityCard,dto.getIdentityCard())
+                        .eq(ObjectUtil.isNotNull(dto.getDeptId())&&dto.getDeptId()!=0, ReservationSchool::getDeptId, dto.getDeptId())
+                        .eq(ObjectUtil.isNotNull(dto.getRespondentUserId())&&dto.getRespondentUserId()!=0, ReservationSchool::getRespondentUserId, dto.getRespondentUserId())
+                        .ge(ObjectUtil.isNotNull(dto.getStartTime()),VisitorOutInRecord::getRecordTime,dto.getStartTime())
+                        .le(ObjectUtil.isNotNull(dto.getEndTime()),VisitorOutInRecord::getRecordTime,dto.getEndTime())
+                        .eq(ObjectUtil.isNotNull(dto.getStatus()), VisitorOutInRecord::getStatus, dto.getStatus())
+                        .like(StrUtil.isNotBlank(dto.getPlateNumber()),ReservationSchoolPeople::getPlateNumber,dto.getPlateNumber())
+                        .select(VisitorOutInRecord.class,x -> VoToColumnUtil.fieldsToColumns(VisitorOutInRecordPageVo.class).contains(x.getProperty()))
+                        .select(ReservationSchoolPeople::getName,ReservationSchoolPeople::getIdentityCard,ReservationSchoolPeople::getPhone,ReservationSchoolPeople::getPlateNumber)
+                        .select(ReservationSchool::getReason)
+                        .leftJoin(ReservationSchoolPeople.class,ReservationSchoolPeople::getId,VisitorOutInRecord::getReservationSchoolPeopleId)
+                        .leftJoin(ReservationSchool.class,ReservationSchool::getId,ReservationSchoolPeople::getReservationSchooId)
+
+                        .leftJoin(File.class,File::getFolderId, VisitorOutInRecord::getFacePhoto, ext->ext.selectAs(File::getFileUrl, VisitorOutInRecordPageVo::getFacePhotoUrl))
+
+                        .leftJoin(XjrUser.class,XjrUser::getId,ReservationSchool::getRespondentUserId,ext->ext.selectAs(XjrUser::getName,VisitorOutInRecordPageVo::getRespondentUserCn))
+                        .leftJoin(Department.class,Department::getId,ReservationSchool::getDeptId,ext->ext.selectAs(Department::getName,VisitorOutInRecordPageVo::getDeptCn))
+                        .leftJoin(DictionaryDetail.class,DictionaryDetail::getCode, ReservationSchoolPeople::getGender, ext->ext.selectAs(DictionaryDetail::getName, VisitorOutInRecordPageVo::getGender))
+                );
         PageOutput<VisitorOutInRecordPageVo> pageOutput = ConventPage.getPageOutput(page, VisitorOutInRecordPageVo.class);
         return RT.ok(pageOutput);
     }

+ 42 - 0
src/main/java/com/xjrsoft/module/outint/dto/CarOutInRecordPageDto.java

@@ -1,9 +1,13 @@
 package com.xjrsoft.module.outint.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.time.LocalDateTime;
+
 
 /**
 * @title: 车辆出入记录分页查询入参
@@ -14,6 +18,44 @@ import lombok.EqualsAndHashCode;
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class CarOutInRecordPageDto extends PageInput {
+    /**
+     * 记录开始时间
+     */
+    @ApiModelProperty("记录开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime startTime;
+    /**
+     * 记录开始时间
+     */
+    @ApiModelProperty("记录结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime endTime;
+    /**
+     * 车辆分类
+     */
+    @ApiModelProperty("车辆分类")
+    private  String category;
+    /**
+     * 过车方向
+     */
+    @ApiModelProperty("过车方向")
+    private  String status;
+    /**
+     * 车辆类型
+     */
+    @ApiModelProperty("车辆类型")
+    private String vehicleType;
+
+    /**
+     * 车主姓名
+     */
+    @ApiModelProperty("车主姓名")
+    private String name;
 
+    /**
+     * 手机号码
+     */
+    @ApiModelProperty("手机号码")
+    private String phone;
 
 }

+ 52 - 0
src/main/java/com/xjrsoft/module/outint/dto/VisitorOutInRecordPageDto.java

@@ -1,9 +1,13 @@
 package com.xjrsoft.module.outint.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.time.LocalDateTime;
+
 
 /**
 * @title: 访客出入记录分页查询入参
@@ -14,6 +18,54 @@ import lombok.EqualsAndHashCode;
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class VisitorOutInRecordPageDto extends PageInput {
+    /**
+     * 车主姓名
+     */
+    @ApiModelProperty("车主姓名")
+    private String name;
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty("身份证号")
+    private String identityCard;
+    /**
+     * 到访部门id
+     */
+    @ApiModelProperty("到访部门id")
+    private Long deptId;
+    /**
+     * 被访人用户id
+     */
+    @ApiModelProperty("被访人用户id")
+    private Long respondentUserId;
+
+    /**
+     * 记录开始时间
+     */
+    @ApiModelProperty("记录开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime startTime;
+    /**
+     * 记录开始时间
+     */
+    @ApiModelProperty("记录结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime endTime;
+    /**
+     * 过车方向
+     */
+    @ApiModelProperty("过车方向")
+    private  String status;
 
+    /**
+     * 手机号码
+     */
+    @ApiModelProperty("手机号码")
+    private String phone;
 
+    /**
+     * 车牌号
+     */
+    @ApiModelProperty("车牌号")
+    private String plateNumber;
 }

+ 39 - 0
src/main/java/com/xjrsoft/module/outint/vo/CarOutInRecordPageVo.java

@@ -80,4 +80,43 @@ public class CarOutInRecordPageVo {
     @ApiModelProperty("车辆分类(0:固定车辆 1:临时车辆)")
     private Integer category;
 
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty("身份证号")
+    private String identityCard;
+    /**
+     * 手机号码
+     */
+    @ApiModelProperty("手机号码")
+    private Long phone;
+    /**
+     * 性别
+     */
+    @ApiModelProperty("性别")
+    private String gender;
+
+    /**
+     * 车牌号
+     */
+    @ApiModelProperty("车牌号")
+    private String plateNumber;
+
+    /**
+     * 车辆类型
+     */
+    @ApiModelProperty("车辆类型")
+    private String vehicleType;
+
+    /**
+     * 人脸照片地址
+     */
+    @ApiModelProperty("人脸照片地址")
+    private String facePhotoUrl;
+
 }

+ 55 - 0
src/main/java/com/xjrsoft/module/outint/vo/VisitorOutInRecordPageVo.java

@@ -70,4 +70,59 @@ public class VisitorOutInRecordPageVo {
     @ApiModelProperty("进出状态(0:进 1:出)")
     private Integer status;
 
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty("身份证号")
+    private String identityCard;
+    /**
+     * 手机号码
+     */
+    @ApiModelProperty("手机号码")
+    private Long phone;
+    /**
+     * 性别
+     */
+    @ApiModelProperty("性别")
+    private String gender;
+
+    /**
+     * 车牌号
+     */
+    @ApiModelProperty("车牌号")
+    private String plateNumber;
+
+    /**
+     * 车辆类型
+     */
+    @ApiModelProperty("车辆类型")
+    private String vehicleType;
+
+    /**
+     * 人脸照片地址
+     */
+    @ApiModelProperty("人脸照片地址")
+    private String facePhotoUrl;
+    /**
+     * 被访人用户
+     */
+    @ApiModelProperty("被访人用户")
+    private String respondentUserCn;
+    /**
+     * 被访部门
+     */
+    @ApiModelProperty("被访部门")
+    private String deptCn;
+
+    /**
+     * 进校事由
+     */
+    @ApiModelProperty("进校事由")
+    private String reason;
+
 }

+ 5 - 1
src/main/java/com/xjrsoft/module/personnel/vo/CarMessageApplyVo.java

@@ -73,7 +73,11 @@ public class CarMessageApplyVo {
     */
     @ApiModelProperty("部门审核人用户id")
     private Long deptLederUserId;
-
+    /**
+     * 用户ID
+     */
+    @ApiModelProperty("用户ID")
+    private  Long userId;
 
 
 }