提交 02cfe448 作者: Administrator

feat : 访客 被放人信息翻译、被访人id条件搜索, 邀请, 按照部门条件搜索

上级 19d7e4e4
...@@ -74,7 +74,7 @@ public class Invitation implements Serializable { ...@@ -74,7 +74,7 @@ public class Invitation implements Serializable {
@Comment("被邀请访客") @Comment("被邀请访客")
@JsonIgnore @JsonIgnore
@OneToOne @OneToOne(cascade = CascadeType.REMOVE)
@JoinColumn(name = "visitor_id", referencedColumnName = "id") @JoinColumn(name = "visitor_id", referencedColumnName = "id")
Visitor visitor; Visitor visitor;
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
package com.yiring.app.domain.visitor; package com.yiring.app.domain.visitor;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.yiring.auth.domain.user.User;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -70,8 +71,8 @@ public class Visitor implements Serializable { ...@@ -70,8 +71,8 @@ public class Visitor implements Serializable {
@Comment("所属单位id") @Comment("所属单位id")
String orgId; String orgId;
@Comment("被访人id") // @Comment("被访人id")
Long intervieweeId; // Long intervieweeId;
@Comment("来访原因/邀请原因") @Comment("来访原因/邀请原因")
String reason; String reason;
...@@ -109,6 +110,11 @@ public class Visitor implements Serializable { ...@@ -109,6 +110,11 @@ public class Visitor implements Serializable {
@OneToOne(cascade = { CascadeType.ALL }) @OneToOne(cascade = { CascadeType.ALL })
Car car; Car car;
@Comment("被访人信息")
@OneToOne
@JoinColumn(name = "interviewee_id", referencedColumnName = "id")
User user;
@Comment("修改时间") @Comment("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime updateTime; LocalDateTime updateTime;
......
...@@ -3,6 +3,7 @@ package com.yiring.app.param.visitor; ...@@ -3,6 +3,7 @@ package com.yiring.app.param.visitor;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import lombok.*; import lombok.*;
...@@ -20,6 +21,7 @@ import lombok.experimental.FieldDefaults; ...@@ -20,6 +21,7 @@ import lombok.experimental.FieldDefaults;
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
public class VisitorQueryParam implements Serializable { public class VisitorQueryParam implements Serializable {
@Serial
private static final long serialVersionUID = -4314254785949101573L; private static final long serialVersionUID = -4314254785949101573L;
@ApiModelProperty(value = "访客姓名", example = "张三") @ApiModelProperty(value = "访客姓名", example = "张三")
...@@ -46,8 +48,8 @@ public class VisitorQueryParam implements Serializable { ...@@ -46,8 +48,8 @@ public class VisitorQueryParam implements Serializable {
@ApiModelProperty(value = "标签卡", example = "DS41234231") @ApiModelProperty(value = "标签卡", example = "DS41234231")
String labelCard; String labelCard;
@ApiModelProperty(value = "标签卡状态", example = "1") @ApiModelProperty(value = "是否主访人", example = "1:是,2否")
String labelCardStatus; String isMain;
@ApiModelProperty(value = "预约到访时间(开始)", example = "2022-04-19 14:28:00") @ApiModelProperty(value = "预约到访时间(开始)", example = "2022-04-19 14:28:00")
LocalDateTime appOfVisitTimeStart; LocalDateTime appOfVisitTimeStart;
......
...@@ -13,6 +13,7 @@ import com.yiring.app.param.visitor.InvitationParam; ...@@ -13,6 +13,7 @@ import com.yiring.app.param.visitor.InvitationParam;
import com.yiring.app.param.visitor.InvitationQueryParam; import com.yiring.app.param.visitor.InvitationQueryParam;
import com.yiring.app.service.visitor.InvitationService; import com.yiring.app.service.visitor.InvitationService;
import com.yiring.app.vo.visitor.InvitationDetailsVo; import com.yiring.app.vo.visitor.InvitationDetailsVo;
import com.yiring.auth.domain.dept.Department;
import com.yiring.auth.domain.user.User; import com.yiring.auth.domain.user.User;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.core.Status; import com.yiring.common.core.Status;
...@@ -64,7 +65,7 @@ public class InvitationServiceImpl implements InvitationService { ...@@ -64,7 +65,7 @@ public class InvitationServiceImpl implements InvitationService {
User user = User.builder().id(invitationParam.getInviterId()).build(); User user = User.builder().id(invitationParam.getInviterId()).build();
Visitor visitor = new Visitor(); Visitor visitor = new Visitor();
BeanUtils.copyProperties(invitationParam, visitor); BeanUtils.copyProperties(invitationParam, visitor);
visitor.setIntervieweeId(invitationParam.getInviterId()); visitor.setUser(user);
visitor.setCreateTime(LocalDateTime.now()); visitor.setCreateTime(LocalDateTime.now());
//身份证验证 //身份证验证
// if(StrUtil.isNotBlank(invitationParam.getVisitorCarNum())){ // if(StrUtil.isNotBlank(invitationParam.getVisitorCarNum())){
...@@ -120,7 +121,8 @@ public class InvitationServiceImpl implements InvitationService { ...@@ -120,7 +121,8 @@ public class InvitationServiceImpl implements InvitationService {
visitor2 = new Visitor(); visitor2 = new Visitor();
} }
BeanUtils.copyProperties(invitationParam, visitor2); BeanUtils.copyProperties(invitationParam, visitor2);
visitor2.setIntervieweeId(invitationParam.getInviterId()); visitor2.setUser(invitation.getUser());
// visitor2.setIntervieweeId(invitationParam.getInviterId());
visitorRepository.saveAndFlush(visitor2); visitorRepository.saveAndFlush(visitor2);
//短信通知该手机用户 //短信通知该手机用户
// //
...@@ -137,7 +139,7 @@ public class InvitationServiceImpl implements InvitationService { ...@@ -137,7 +139,7 @@ public class InvitationServiceImpl implements InvitationService {
} }
Invitation invitation = optional.get(); Invitation invitation = optional.get();
invitationRepository.delete(invitation); invitationRepository.delete(invitation);
visitorRepository.delete(invitation.getVisitor()); // visitorRepository.delete(invitation.getVisitor());
//短信通知该手机用户邀请取消 //短信通知该手机用户邀请取消
// //
// //
...@@ -381,7 +383,8 @@ public class InvitationServiceImpl implements InvitationService { ...@@ -381,7 +383,8 @@ public class InvitationServiceImpl implements InvitationService {
public Specification<Invitation> condition(InvitationQueryParam invitationQueryParam) { public Specification<Invitation> condition(InvitationQueryParam invitationQueryParam) {
return (root, query, criteriaBuilder) -> { return (root, query, criteriaBuilder) -> {
Join<Invitation, Visitor> joinVisitor = root.join("visitor", JoinType.LEFT); Join<Invitation, Visitor> joinVisitor = root.join("visitor", JoinType.LEFT);
Join<Invitation, User> joinUser = root.join("user", JoinType.LEFT); Join<Invitation, User> joinUser = joinVisitor.join("user", JoinType.LEFT);
Join<User, Department> departmentJoin = joinUser.join("department", JoinType.LEFT);
// Join<User, Department> joinDepartment = root.join(User.Fields.department, JoinType.LEFT); // Join<User, Department> joinDepartment = root.join(User.Fields.department, JoinType.LEFT);
List<Predicate> list = new ArrayList<>(); List<Predicate> list = new ArrayList<>();
if (StrUtil.isNotBlank(invitationQueryParam.getVisitorName())) { if (StrUtil.isNotBlank(invitationQueryParam.getVisitorName())) {
...@@ -428,14 +431,14 @@ public class InvitationServiceImpl implements InvitationService { ...@@ -428,14 +431,14 @@ public class InvitationServiceImpl implements InvitationService {
); );
} }
// if (invitationQueryParam.getDeptName() != null) { if (invitationQueryParam.getDeptName() != null) {
// list.add( list.add(
// criteriaBuilder.like( criteriaBuilder.like(
// joinDepartment.get(Department.Fields.name).as(String.class), departmentJoin.get(Department.Fields.name).as(String.class),
// "%"+invitationQueryParam.getDeptName()+"%" "%" + invitationQueryParam.getDeptName() + "%"
// ) )
// ); );
// } }
if ( if (
Objects.nonNull(invitationQueryParam.getAppOfVisitTimeStart()) && Objects.nonNull(invitationQueryParam.getAppOfVisitTimeStart()) &&
......
...@@ -19,6 +19,7 @@ import com.yiring.auth.domain.user.UserRepository; ...@@ -19,6 +19,7 @@ import com.yiring.auth.domain.user.UserRepository;
import com.yiring.common.constant.RegEx; import com.yiring.common.constant.RegEx;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.core.Status; import com.yiring.common.core.Status;
import com.yiring.common.domain.BasicEntity;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import java.io.OutputStream; import java.io.OutputStream;
...@@ -32,6 +33,8 @@ import java.util.Optional; ...@@ -32,6 +33,8 @@ import java.util.Optional;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.JoinType;
import javax.persistence.criteria.Order; import javax.persistence.criteria.Order;
import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Predicate;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -179,6 +182,13 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -179,6 +182,13 @@ public class VisitorServiceImpl implements VisitorService {
} }
VisitorDetailsVo vo = new VisitorDetailsVo(); VisitorDetailsVo vo = new VisitorDetailsVo();
BeanUtils.copyProperties(visitor, vo); BeanUtils.copyProperties(visitor, vo);
VisitorDetailsVo.UserVo userVo = VisitorDetailsVo.UserVo
.builder()
.realName(visitor.getUser().getRealName())
.mobile(visitor.getUser().getMobile())
.deptName(visitor.getUser().getDepartment().getName())
.build();
vo.setUserVo(userVo);
vo.setList(listResult); vo.setList(listResult);
return Result.ok(vo); return Result.ok(vo);
} }
...@@ -323,6 +333,7 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -323,6 +333,7 @@ public class VisitorServiceImpl implements VisitorService {
public Specification<Visitor> condition(VisitorQueryParam visitorQueryParam) { public Specification<Visitor> condition(VisitorQueryParam visitorQueryParam) {
return (root, query, criteriaBuilder) -> { return (root, query, criteriaBuilder) -> {
List<Predicate> list = new ArrayList<>(); List<Predicate> list = new ArrayList<>();
Join<Visitor, User> join = root.join("user", JoinType.LEFT);
//查询条件 //查询条件
if (StrUtil.isNotBlank(visitorQueryParam.getVisitorName())) { if (StrUtil.isNotBlank(visitorQueryParam.getVisitorName())) {
//访客姓名 //访客姓名
...@@ -380,9 +391,7 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -380,9 +391,7 @@ public class VisitorServiceImpl implements VisitorService {
if (StrUtil.isNotBlank(visitorQueryParam.getIntervieweeId())) { if (StrUtil.isNotBlank(visitorQueryParam.getIntervieweeId())) {
//被访人 //被访人
list.add( list.add(criteriaBuilder.equal(join.get(BasicEntity.Fields.id), visitorQueryParam.getIntervieweeId()));
criteriaBuilder.equal(root.get(Visitor.Fields.intervieweeId), visitorQueryParam.getIntervieweeId())
);
} }
if (StrUtil.isNotBlank(visitorQueryParam.getLabelCard())) { if (StrUtil.isNotBlank(visitorQueryParam.getLabelCard())) {
...@@ -395,16 +404,25 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -395,16 +404,25 @@ public class VisitorServiceImpl implements VisitorService {
); );
} }
if (StrUtil.isNotBlank(visitorQueryParam.getLabelCardStatus())) { if (StrUtil.isNotBlank(visitorQueryParam.getIsMain())) {
//标签卡状态 //标签卡号查询
list.add( if (visitorQueryParam.getIsMain().equals("1")) {
criteriaBuilder.like( list.add(criteriaBuilder.isNull(root.get(Visitor.Fields.mainVisitorId)));
root.get(Visitor.Fields.labelCardStatus), } else {
"%" + visitorQueryParam.getLabelCardStatus() + "%" list.add(criteriaBuilder.isNotNull(root.get(Visitor.Fields.mainVisitorId)));
) }
);
} }
// if (StrUtil.isNotBlank(visitorQueryParam.getLabelCardStatus())) {
// //标签卡状态
// list.add(
// criteriaBuilder.like(
// root.get(Visitor.Fields.labelCardStatus),
// "%" + visitorQueryParam.getLabelCardStatus() + "%"
// )
// );
// }
if ( if (
Objects.nonNull(visitorQueryParam.getAppOfVisitTimeStart()) && Objects.nonNull(visitorQueryParam.getAppOfVisitTimeStart()) &&
Objects.nonNull(visitorQueryParam.getAppOfVisitTimeEnd()) Objects.nonNull(visitorQueryParam.getAppOfVisitTimeEnd())
......
...@@ -62,8 +62,8 @@ public class VisitorDetailsVo implements Serializable { ...@@ -62,8 +62,8 @@ public class VisitorDetailsVo implements Serializable {
@ApiModelProperty(value = "所属单位id", example = "壹润科技") @ApiModelProperty(value = "所属单位id", example = "壹润科技")
String orgId; String orgId;
@ApiModelProperty(value = "被访人id", example = "1") // @ApiModelProperty(value = "被访人id", example = "1")
Long intervieweeId; // Long intervieweeId;
@ApiModelProperty(value = "被访人姓名", example = "李四") @ApiModelProperty(value = "被访人姓名", example = "李四")
String intervieweeName; String intervieweeName;
...@@ -90,6 +90,8 @@ public class VisitorDetailsVo implements Serializable { ...@@ -90,6 +90,8 @@ public class VisitorDetailsVo implements Serializable {
@ApiModelProperty(value = "车辆反参") @ApiModelProperty(value = "车辆反参")
Car car; Car car;
UserVo userVo;
@ApiModelProperty(value = "主访人id") @ApiModelProperty(value = "主访人id")
Long mainVisitorId; Long mainVisitorId;
...@@ -119,4 +121,29 @@ public class VisitorDetailsVo implements Serializable { ...@@ -119,4 +121,29 @@ public class VisitorDetailsVo implements Serializable {
@ApiModelProperty(value = "主访人id") @ApiModelProperty(value = "主访人id")
Long mainVisitorId; Long mainVisitorId;
} }
@ApiModel("UserVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public static class UserVo implements Serializable {
@Serial
private static final long serialVersionUID = 4115779013003587949L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "id", example = "1")
Long id;
@ApiModelProperty(value = "被访人姓名", example = "张三")
String realName;
@ApiModelProperty(value = "被访人电话", example = "17688888888")
String mobile;
@ApiModelProperty(value = "被访人部门")
String deptName;
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论