提交 02cfe448 作者: Administrator

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

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