提交 ca409c7b 作者: Administrator

feat : 访客,邀请功能增加

上级 c19783ee
...@@ -3,6 +3,7 @@ package com.yiring.app.domain.visitor; ...@@ -3,6 +3,7 @@ package com.yiring.app.domain.visitor;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
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;
...@@ -11,6 +12,8 @@ import lombok.*; ...@@ -11,6 +12,8 @@ import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants; import lombok.experimental.FieldNameConstants;
import org.hibernate.annotations.Comment; import org.hibernate.annotations.Comment;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.GenericGenerator;
import org.hibernate.snowflake.SnowflakeId; import org.hibernate.snowflake.SnowflakeId;
...@@ -31,6 +34,8 @@ import org.hibernate.snowflake.SnowflakeId; ...@@ -31,6 +34,8 @@ import org.hibernate.snowflake.SnowflakeId;
@FieldNameConstants @FieldNameConstants
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
@Entity @Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "BS_INVITATION") @Table(name = "BS_INVITATION")
@Comment("邀请信息") @Comment("邀请信息")
public class Invitation implements Serializable { public class Invitation implements Serializable {
...@@ -50,8 +55,8 @@ public class Invitation implements Serializable { ...@@ -50,8 +55,8 @@ public class Invitation implements Serializable {
@Comment("状态") @Comment("状态")
String status; String status;
@Comment("邀请人id") // @Comment("邀请人id")
Long inviterId; // Long inviterId;
@Comment("邀请人数") @Comment("邀请人数")
Integer numOfVisitor; Integer numOfVisitor;
...@@ -60,6 +65,10 @@ public class Invitation implements Serializable { ...@@ -60,6 +65,10 @@ public class Invitation implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime createTime; LocalDateTime createTime;
@Comment("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime updateTime;
// @Comment("访客id") // @Comment("访客id")
// Long visitorId; // Long visitorId;
...@@ -68,4 +77,10 @@ public class Invitation implements Serializable { ...@@ -68,4 +77,10 @@ public class Invitation implements Serializable {
@OneToOne @OneToOne
@JoinColumn(name = "visitor_id", referencedColumnName = "id") @JoinColumn(name = "visitor_id", referencedColumnName = "id")
Visitor visitor; Visitor visitor;
@Comment("邀请人")
@JsonIgnore
@OneToOne
@JoinColumn(name = "inviter_id", referencedColumnName = "id")
User user;
} }
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
package com.yiring.app.domain.visitor; package com.yiring.app.domain.visitor;
import java.io.Serializable; import java.io.Serializable;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -12,4 +14,14 @@ import org.springframework.stereotype.Repository; ...@@ -12,4 +14,14 @@ import org.springframework.stereotype.Repository;
*/ */
@Repository @Repository
public interface InvitationRepository public interface InvitationRepository
extends JpaRepository<Invitation, Serializable>, JpaSpecificationExecutor<Invitation> {} extends JpaRepository<Invitation, Serializable>, JpaSpecificationExecutor<Invitation> {
/**
* 小程序用户查看邀请信息
* @author tzl
* @date 2022/4/28 11:08
* @param mobile 手机
* @param deleted 是否删除
* @return java.util.List<com.yiring.app.domain.visitor.Invitation>
*/
Page<Invitation> findAllByVisitor_VisitorMobileAndVisitor_Deleted(String mobile, String deleted, Pageable pageable);
}
...@@ -71,7 +71,7 @@ public class Visitor implements Serializable { ...@@ -71,7 +71,7 @@ public class Visitor implements Serializable {
String orgId; String orgId;
@Comment("被访人id") @Comment("被访人id")
String intervieweeId; Long intervieweeId;
@Comment("来访原因/邀请原因") @Comment("来访原因/邀请原因")
String reason; String reason;
...@@ -108,4 +108,12 @@ public class Visitor implements Serializable { ...@@ -108,4 +108,12 @@ public class Visitor implements Serializable {
@Comment("访客车辆") @Comment("访客车辆")
@OneToOne(cascade = { CascadeType.ALL }) @OneToOne(cascade = { CascadeType.ALL })
Car car; Car car;
@Comment("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime updateTime;
// @Comment("邀请人")
// @OneToOne(cascade = { CascadeType.ALL })
// @JoinColumn(name = "main_visitor_id", referencedColumnName = "id")
// Visitor visitor;
} }
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
package com.yiring.app.domain.visitor; package com.yiring.app.domain.visitor;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -13,4 +14,8 @@ import org.springframework.stereotype.Repository; ...@@ -13,4 +14,8 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface VisitorRepository extends JpaRepository<Visitor, Serializable>, JpaSpecificationExecutor<Visitor> { public interface VisitorRepository extends JpaRepository<Visitor, Serializable>, JpaSpecificationExecutor<Visitor> {
Visitor findByIdAndDeleted(Long id, String deleted); Visitor findByIdAndDeleted(Long id, String deleted);
List<Visitor> findAllByMainVisitorIdAndDeletedEquals(Long mainId, String deleted);
List<Visitor> findAllByMainVisitorIdAndDeletedEqualsAndIdIsNot(Long mainId, String deleted, Long id);
} }
...@@ -29,7 +29,7 @@ public class InvitationExportExcel implements Serializable { ...@@ -29,7 +29,7 @@ public class InvitationExportExcel implements Serializable {
@ExcelColumn(title = "邀请原因") @ExcelColumn(title = "邀请原因")
String reason; String reason;
@ExcelColumn(title = "邀请方式") @ExcelColumn(title = "邀请方式", mapping = "1:个人,2:公司")
String InvitationMethod; String InvitationMethod;
@ExcelColumn(title = "邀请人数") @ExcelColumn(title = "邀请人数")
...@@ -44,7 +44,7 @@ public class InvitationExportExcel implements Serializable { ...@@ -44,7 +44,7 @@ public class InvitationExportExcel implements Serializable {
@ExcelColumn(title = "到访人电话") @ExcelColumn(title = "到访人电话")
String visitorMobile; String visitorMobile;
@ExcelColumn(title = "是否特殊任务") @ExcelColumn(title = "是否特殊任务", mapping = "false:否,true:是")
String taskType; String taskType;
// Long inviterId; // Long inviterId;
......
/* (C) 2022 YiRing, Inc. */
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 lombok.*;
import lombok.experimental.FieldDefaults;
/**
* @author tzl
* @version 1.0
* @description: TODO
* @date 2022/4/28 11:12
*/
@ApiModel("InvitationAppQueryParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class InvitationAppQueryParam implements Serializable {
@Serial
private static final long serialVersionUID = 5194434249966317387L;
@ApiModelProperty(value = "到访人电话", example = "17688888888")
String visitorMobile;
@ApiModelProperty(value = "分页条数", example = "10")
Integer pageSize;
@ApiModelProperty(value = "当前页数", example = "1")
Integer pageNo;
}
...@@ -53,7 +53,7 @@ public class InvitationParam implements Serializable { ...@@ -53,7 +53,7 @@ public class InvitationParam implements Serializable {
@ApiModelProperty(value = "到访人身份证", example = "430441190001255417") @ApiModelProperty(value = "到访人身份证", example = "430441190001255417")
String visitorCarNum; String visitorCarNum;
@ApiModelProperty(value = "是否特殊作业", example = "", required = true) @ApiModelProperty(value = "是否特殊作业", example = "false", required = true)
String taskType; String taskType;
// @ApiModelProperty(value = "访客来源", example = "外部邀请", required = true) // @ApiModelProperty(value = "访客来源", example = "外部邀请", required = true)
......
...@@ -38,11 +38,11 @@ public class InvitationQueryParam implements Serializable { ...@@ -38,11 +38,11 @@ public class InvitationQueryParam implements Serializable {
@ApiModelProperty(value = "是否特殊作业", example = "fasle") @ApiModelProperty(value = "是否特殊作业", example = "fasle")
String taskType; String taskType;
@ApiModelProperty(value = "邀请人id", example = "1") @ApiModelProperty(value = "邀请人", example = "张三")
Long inviterId; String realName;
// @ApiModelProperty(value = "邀请人部门id", example = "1") @ApiModelProperty(value = "邀请人部门", example = "研发")
// Long deptId; String deptName;
@ApiModelProperty(value = "预约到访时间(开始)", example = "2022-04-19 14:28:00") @ApiModelProperty(value = "预约到访时间(开始)", example = "2022-04-19 14:28:00")
LocalDateTime appOfVisitTimeStart; LocalDateTime appOfVisitTimeStart;
......
...@@ -33,6 +33,7 @@ public class VisitorParam implements Serializable { ...@@ -33,6 +33,7 @@ public class VisitorParam implements Serializable {
String visitorName; String visitorName;
@ApiModelProperty(value = "到访人电话", example = "17688888888", required = true) @ApiModelProperty(value = "到访人电话", example = "17688888888", required = true)
@Pattern(regexp = RegEx.MOBILE, message = "手机号码格式不正确")
@NotEmpty(message = "到访人电话不能为空") @NotEmpty(message = "到访人电话不能为空")
String visitorMobile; String visitorMobile;
......
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.visitor; package com.yiring.app.service.visitor;
import com.yiring.app.param.visitor.InvitationAppQueryParam;
import com.yiring.app.param.visitor.InvitationParam; 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.vo.visitor.InvitationVo; import com.yiring.app.vo.visitor.InvitationDetailsVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
...@@ -38,7 +39,7 @@ public interface InvitationService { ...@@ -38,7 +39,7 @@ public interface InvitationService {
* @date 2022/4/24 17:56 * @date 2022/4/24 17:56
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<java.lang.String>> * @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<java.lang.String>>
*/ */
Result<PageVo<InvitationVo>> pageInv(InvitationQueryParam invitationQueryParam); Result<PageVo<InvitationDetailsVo>> pageInv(InvitationQueryParam invitationQueryParam);
/** /**
* 撤回邀请 * 撤回邀请
...@@ -65,4 +66,24 @@ public interface InvitationService { ...@@ -65,4 +66,24 @@ public interface InvitationService {
* @param invitationQueryParam 筛选条件 * @param invitationQueryParam 筛选条件
*/ */
void exportInv(InvitationQueryParam invitationQueryParam, HttpServletResponse response); void exportInv(InvitationQueryParam invitationQueryParam, HttpServletResponse response);
/**
* 小程序查询全部
* @author tzl
* @date 2022/4/28 10:56
* @param idParam 主键id
* @return com.yiring.common.core.Result<com.yiring.app.vo.visitor.InvitationDetailsVo>
*/
Result<InvitationDetailsVo> detailsInv(IdParam idParam);
/**
* 小程序用户查看邀请信息
* @author tzl
* @date 2022/4/28 11:30
* @param invitationAppQueryParam 入参
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<com.yiring.app.vo.visitor.InvitationVo>>
*/
Result<PageVo<InvitationDetailsVo>> findAllByVisitor_VisitorMobileAndVisitor_Deleted(
InvitationAppQueryParam invitationAppQueryParam
);
} }
...@@ -3,6 +3,7 @@ package com.yiring.app.service.visitor; ...@@ -3,6 +3,7 @@ package com.yiring.app.service.visitor;
import com.yiring.app.param.visitor.VisitorParam; import com.yiring.app.param.visitor.VisitorParam;
import com.yiring.app.param.visitor.VisitorQueryParam; import com.yiring.app.param.visitor.VisitorQueryParam;
import com.yiring.app.vo.visitor.VisitorDetailsVo;
import com.yiring.app.vo.visitor.VisitorVo; import com.yiring.app.vo.visitor.VisitorVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
...@@ -15,7 +16,7 @@ import javax.servlet.http.HttpServletResponse; ...@@ -15,7 +16,7 @@ import javax.servlet.http.HttpServletResponse;
*/ */
public interface VisitorService { public interface VisitorService {
/** /**
* 访客新增 * 访客登记
* @param visitorParam 新增访客入参 * @param visitorParam 新增访客入参
* @return 是否成功 * @return 是否成功
*/ */
...@@ -41,7 +42,7 @@ public interface VisitorService { ...@@ -41,7 +42,7 @@ public interface VisitorService {
* @param idParam 主键id * @param idParam 主键id
* @return 访客信息 * @return 访客信息
*/ */
Result<VisitorVo> selectVisitor(IdParam idParam); Result<VisitorDetailsVo> selectVisitor(IdParam idParam);
/** /**
* 分页查询 * 分页查询
......
...@@ -12,7 +12,10 @@ import com.yiring.app.param.visitor.VisitorParam; ...@@ -12,7 +12,10 @@ import com.yiring.app.param.visitor.VisitorParam;
import com.yiring.app.param.visitor.VisitorQueryParam; import com.yiring.app.param.visitor.VisitorQueryParam;
import com.yiring.app.service.visitor.CarService; import com.yiring.app.service.visitor.CarService;
import com.yiring.app.service.visitor.VisitorService; import com.yiring.app.service.visitor.VisitorService;
import com.yiring.app.vo.visitor.VisitorDetailsVo;
import com.yiring.app.vo.visitor.VisitorVo; import com.yiring.app.vo.visitor.VisitorVo;
import com.yiring.auth.domain.user.User;
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;
...@@ -29,6 +32,7 @@ import java.util.Optional; ...@@ -29,6 +32,7 @@ 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.Order;
import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Predicate;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -55,20 +59,30 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -55,20 +59,30 @@ public class VisitorServiceImpl implements VisitorService {
CarService carService; CarService carService;
@Resource @Resource
UserRepository userRepository;
@Resource
AppletUserRepository appletUserRepository; AppletUserRepository appletUserRepository;
@Override @Override
public Result<String> saveVisitor(VisitorParam visitorParam) { public Result<String> saveVisitor(VisitorParam visitorParam) {
//设置创建时间和默认状态
Visitor visitor = Visitor
.builder()
.createTime(LocalDateTime.now())
.updateTime(LocalDateTime.now())
.cardSendTime(LocalDateTime.now())
.build();
BeanUtils.copyProperties(visitorParam, visitor);
if (visitorParam.getMainVisitorId() != null) { if (visitorParam.getMainVisitorId() != null) {
//如果主访人员id不为空, //如果主访人员id不为空,
Visitor optional = visitorRepository.findByIdAndDeleted(visitorParam.getMainVisitorId(), "N"); Visitor optional = visitorRepository.findByIdAndDeleted(visitorParam.getMainVisitorId(), "N");
if (optional == null) { if (optional == null) {
return Result.no(Status.NOT_FOUND, "信息失效,请联系管理员"); return Result.no(Status.NOT_FOUND, "信息失效,请联系管理员");
} }
visitor.setMainVisitorId(visitorParam.getMainVisitorId());
} }
//设置创建时间和默认状态
Visitor visitor = Visitor.builder().createTime(LocalDateTime.now()).build();
BeanUtils.copyProperties(visitorParam, visitor);
//如果有车, 填车辆信息, //如果有车, 填车辆信息,
if (visitorParam.getHasCar() == 1) { if (visitorParam.getHasCar() == 1) {
//校验车辆必填信息 //校验车辆必填信息
...@@ -127,20 +141,45 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -127,20 +141,45 @@ public class VisitorServiceImpl implements VisitorService {
} }
} }
BeanUtils.copyProperties(visitorParam, optional); BeanUtils.copyProperties(visitorParam, optional);
optional.setUpdateTime(LocalDateTime.now());
visitorRepository.saveAndFlush(optional); visitorRepository.saveAndFlush(optional);
return Result.ok(); return Result.ok();
} }
@Override @Override
public Result<VisitorVo> selectVisitor(IdParam idParam) { public Result<VisitorDetailsVo> selectVisitor(IdParam idParam) {
Optional<Visitor> optional = visitorRepository.findById(idParam.getId()); Optional<Visitor> optional = visitorRepository.findById(idParam.getId());
if (optional.isEmpty()) { if (optional.isEmpty()) {
return Result.no(Status.NOT_FOUND); return Result.no(Status.NOT_FOUND);
} }
Visitor visitor = optional.get(); Visitor visitor = optional.get();
VisitorVo vo = new VisitorVo(); List<Visitor> list = new ArrayList<>();
List<VisitorDetailsVo.VisitorResultVo> listResult = new ArrayList<>();
//主访人id为空 为主访问人,查询出其下面的随访人的姓名和电话
if (visitor.getMainVisitorId() == null) {
list = visitorRepository.findAllByMainVisitorIdAndDeletedEquals(visitor.getId(), "N");
} else {
//查询此随访访客的主访客,
Visitor n = visitorRepository.findByIdAndDeleted(visitor.getMainVisitorId(), "N");
if (n != null) {
//添加此随访人一同的随访人
list =
visitorRepository.findAllByMainVisitorIdAndDeletedEqualsAndIdIsNot(n.getId(), "N", visitor.getId());
list.add(n);
}
}
//处理返回数据的结构
if (list != null) {
list.forEach(visitorEntity -> {
VisitorDetailsVo.VisitorResultVo visitorResultVo = new VisitorDetailsVo.VisitorResultVo();
BeanUtils.copyProperties(visitorEntity, visitorResultVo);
listResult.add(visitorResultVo);
});
}
VisitorDetailsVo vo = new VisitorDetailsVo();
BeanUtils.copyProperties(visitor, vo); BeanUtils.copyProperties(visitor, vo);
vo.setList(listResult);
return Result.ok(vo); return Result.ok(vo);
} }
...@@ -158,6 +197,11 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -158,6 +197,11 @@ public class VisitorServiceImpl implements VisitorService {
.map(visitor -> { .map(visitor -> {
VisitorVo vo = new VisitorVo(); VisitorVo vo = new VisitorVo();
BeanUtils.copyProperties(visitor, vo); BeanUtils.copyProperties(visitor, vo);
//翻译被访问人姓名
if (vo.getIntervieweeId() != null) {
Optional<User> byId = userRepository.findById(vo.getIntervieweeId());
byId.ifPresent(user -> vo.setIntervieweeName(user.getRealName()));
}
return vo; return vo;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());
...@@ -169,6 +213,11 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -169,6 +213,11 @@ public class VisitorServiceImpl implements VisitorService {
.map(visitor -> { .map(visitor -> {
VisitorVo vo = new VisitorVo(); VisitorVo vo = new VisitorVo();
BeanUtils.copyProperties(visitor, vo); BeanUtils.copyProperties(visitor, vo);
//翻译被访问人姓名
if (vo.getIntervieweeId() != null) {
Optional<User> byId = userRepository.findById(vo.getIntervieweeId());
byId.ifPresent(user -> vo.setIntervieweeName(user.getRealName()));
}
return vo; return vo;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());
...@@ -206,6 +255,7 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -206,6 +255,7 @@ public class VisitorServiceImpl implements VisitorService {
String fileName = URLEncoder.encode("访客信息.xlsx", StandardCharsets.UTF_8); String fileName = URLEncoder.encode("访客信息.xlsx", StandardCharsets.UTF_8);
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName); response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
OutputStream out = response.getOutputStream(); OutputStream out = response.getOutputStream();
...@@ -243,6 +293,7 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -243,6 +293,7 @@ public class VisitorServiceImpl implements VisitorService {
} }
Visitor visitor = optional.get(); Visitor visitor = optional.get();
visitor.setLabelCardStatus("3"); visitor.setLabelCardStatus("3");
visitor.setUpdateTime(LocalDateTime.now());
visitor.setCardRecTime(LocalDateTime.now()); visitor.setCardRecTime(LocalDateTime.now());
visitorRepository.saveAndFlush(visitor); visitorRepository.saveAndFlush(visitor);
return Result.ok(); return Result.ok();
...@@ -395,9 +446,10 @@ public class VisitorServiceImpl implements VisitorService { ...@@ -395,9 +446,10 @@ public class VisitorServiceImpl implements VisitorService {
) )
); );
} }
Order order = criteriaBuilder.desc(root.get(Visitor.Fields.updateTime));
Predicate[] predicates = new Predicate[list.size()]; Predicate[] predicates = new Predicate[list.size()];
query.where(list.toArray(predicates)); query.where(list.toArray(predicates));
query.orderBy(order);
return criteriaBuilder.and(list.toArray(predicates)); return criteriaBuilder.and(list.toArray(predicates));
}; };
} }
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.visitor;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.domain.visitor.Visitor;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 邀请反参
* @author tzl
* @version 1.0
* @description:
* @date 2022/4/28 10:48
*/
@ApiModel("InvitationDetailsVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class InvitationDetailsVo implements Serializable {
@Serial
private static final long serialVersionUID = 5496232471863298479L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "id", example = "1548548545755")
Long id;
@ApiModelProperty(value = "邀请原因/来访原因", example = "随便看看")
String reason;
@ApiModelProperty(value = "邀请方式:个人 公司", example = "个人")
String InvitationMethod;
@ApiModelProperty(value = "邀请人数", example = "1")
Integer numOfVisitor;
@ApiModelProperty(value = "邀请人id", example = "1")
Long inviterId;
@ApiModelProperty(value = "状态", example = "撤回")
String status;
@ApiModelProperty(value = "被邀请访客")
Visitor visitor;
@ApiModelProperty(value = "邀请人信息")
User user;
@ApiModel("User")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public static class User 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 = "研发部")
String deptName;
@ApiModelProperty(value = "邀请人电话", example = "17688888888")
String mobile;
}
}
...@@ -56,4 +56,28 @@ public class InvitationVo implements Serializable { ...@@ -56,4 +56,28 @@ public class InvitationVo implements Serializable {
@ApiModelProperty(value = "被邀请访客") @ApiModelProperty(value = "被邀请访客")
Visitor visitor; Visitor visitor;
@ApiModelProperty(value = "邀请人信息")
User user;
@ApiModel("User")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public static class User 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 = "研发部")
String deptName;
}
} }
...@@ -4,7 +4,6 @@ package com.yiring.app.vo.visitor; ...@@ -4,7 +4,6 @@ package com.yiring.app.vo.visitor;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.domain.visitor.Car;
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.Serial;
...@@ -41,11 +40,11 @@ public class VisitorVo implements Serializable { ...@@ -41,11 +40,11 @@ public class VisitorVo implements Serializable {
@ApiModelProperty(value = "到访人身份证", example = "430441190001255417") @ApiModelProperty(value = "到访人身份证", example = "430441190001255417")
String visitorCarNum; String visitorCarNum;
@ApiModelProperty(value = "是否特殊作业", example = "true") @ApiModelProperty(value = "是否特殊作业", example = "false")
boolean taskType; String taskType;
@ApiModelProperty(value = "邀请人数", example = "1") // @ApiModelProperty(value = "邀请人数", example = "1")
Integer numOfVisitor; // Integer numOfVisitor;
@ApiModelProperty(value = "访客来源", example = "内部邀请") @ApiModelProperty(value = "访客来源", example = "内部邀请")
String visitorSource; String visitorSource;
...@@ -53,14 +52,17 @@ public class VisitorVo implements Serializable { ...@@ -53,14 +52,17 @@ public class VisitorVo implements Serializable {
@ApiModelProperty(value = "标签卡", example = "WE34421231") @ApiModelProperty(value = "标签卡", example = "WE34421231")
String labelCard; String labelCard;
@ApiModelProperty(value = "标签卡状态", example = "使用中") // @ApiModelProperty(value = "标签卡状态", example = "使用中")
String labelCardStatus; // String labelCardStatus;
@ApiModelProperty(value = "所属单位id", example = "壹润科技") @ApiModelProperty(value = "所属单位id", example = "壹润科技")
String orgId; String orgId;
@ApiModelProperty(value = "被访人id", example = "1") @ApiModelProperty(value = "被访人id", example = "1")
String intervieweeId; Long intervieweeId;
@ApiModelProperty(value = "被访人姓名", example = "李四")
String intervieweeName;
@ApiModelProperty(value = "来访原因", example = "来访原因") @ApiModelProperty(value = "来访原因", example = "来访原因")
String reason; String reason;
...@@ -69,18 +71,21 @@ public class VisitorVo implements Serializable { ...@@ -69,18 +71,21 @@ public class VisitorVo implements Serializable {
@ApiModelProperty(value = "收卡时间", example = "2022-04-19 14:28:00") @ApiModelProperty(value = "收卡时间", example = "2022-04-19 14:28:00")
LocalDateTime cardRecTime; LocalDateTime cardRecTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "预约到访时间", example = "2022-04-19 14:28:00") // @ApiModelProperty(value = "预约到访时间", example = "2022-04-19 14:28:00")
LocalDateTime appOfVisitTime; // LocalDateTime appOfVisitTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间", example = "2022-04-19 14:28:00") // @ApiModelProperty(value = "创建时间", example = "2022-04-19 14:28:00")
LocalDateTime createTime; // LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "发卡时间", example = "2022-04-19 14:28:00") @ApiModelProperty(value = "发卡时间", example = "2022-04-19 14:28:00")
LocalDateTime cardSendTime; LocalDateTime cardSendTime;
@ApiModelProperty(value = "车辆反参") // @ApiModelProperty(value = "车辆反参")
Car car; // Car car;
@ApiModelProperty(value = "主访人id")
Long mainVisitorId;
} }
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.visitor; package com.yiring.app.web.visitor;
import com.yiring.app.param.visitor.InvitationAppQueryParam;
import com.yiring.app.param.visitor.InvitationParam; 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.InvitationVo; import com.yiring.app.vo.visitor.InvitationDetailsVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
...@@ -69,7 +70,7 @@ public class InvitationController { ...@@ -69,7 +70,7 @@ public class InvitationController {
@ApiOperation(value = "查看邀请信息(分页)") @ApiOperation(value = "查看邀请信息(分页)")
@GetMapping("pageInv") @GetMapping("pageInv")
public Result<PageVo<InvitationVo>> pageInv(@Valid InvitationQueryParam invitationQueryParam) { public Result<PageVo<InvitationDetailsVo>> pageInv(@Valid InvitationQueryParam invitationQueryParam) {
return invitationService.pageInv(invitationQueryParam); return invitationService.pageInv(invitationQueryParam);
} }
...@@ -78,4 +79,16 @@ public class InvitationController { ...@@ -78,4 +79,16 @@ public class InvitationController {
public void exportInv(HttpServletResponse response, @Valid InvitationQueryParam invitationQueryParam) { public void exportInv(HttpServletResponse response, @Valid InvitationQueryParam invitationQueryParam) {
invitationService.exportInv(invitationQueryParam, response); invitationService.exportInv(invitationQueryParam, response);
} }
@ApiOperation(value = "小程序查看邀请详情")
@GetMapping("detailsInv")
public Result<InvitationDetailsVo> detailsInv(@Valid IdParam idParam) {
return invitationService.detailsInv(idParam);
}
@ApiOperation(value = "小程序查看邀请")
@GetMapping("appGetInv")
public Result<PageVo<InvitationDetailsVo>> appGetInv(@Valid InvitationAppQueryParam invitationAppQueryParam) {
return invitationService.findAllByVisitor_VisitorMobileAndVisitor_Deleted(invitationAppQueryParam);
}
} }
...@@ -4,6 +4,7 @@ package com.yiring.app.web.visitor; ...@@ -4,6 +4,7 @@ package com.yiring.app.web.visitor;
import com.yiring.app.param.visitor.VisitorParam; import com.yiring.app.param.visitor.VisitorParam;
import com.yiring.app.param.visitor.VisitorQueryParam; import com.yiring.app.param.visitor.VisitorQueryParam;
import com.yiring.app.service.visitor.VisitorService; import com.yiring.app.service.visitor.VisitorService;
import com.yiring.app.vo.visitor.VisitorDetailsVo;
import com.yiring.app.vo.visitor.VisitorVo; import com.yiring.app.vo.visitor.VisitorVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam; import com.yiring.common.param.IdParam;
...@@ -69,7 +70,7 @@ public class VisitorController { ...@@ -69,7 +70,7 @@ public class VisitorController {
@ApiOperation(value = "查看访客信息详情") @ApiOperation(value = "查看访客信息详情")
@GetMapping("selectVisitor") @GetMapping("selectVisitor")
public Result<VisitorVo> selectVisitor(@Valid IdParam idParam) { public Result<VisitorDetailsVo> selectVisitor(@Valid IdParam idParam) {
return visitorService.selectVisitor(idParam); return visitorService.selectVisitor(idParam);
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论