Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
856966b6
提交
856966b6
authored
4月 27, 2022
作者:
Administrator
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat : 邀请,访客,车辆,访客小程序,功能添加
上级
3510b233
显示空白字符变更
内嵌
并排
正在显示
28 个修改的文件
包含
1118 行增加
和
416 行删除
+1118
-416
CarRepository.java
...rc/main/java/com/yiring/app/domain/car/CarRepository.java
+0
-32
Car.java
app/src/main/java/com/yiring/app/domain/visitor/Car.java
+3
-21
CarRepository.java
...ain/java/com/yiring/app/domain/visitor/CarRepository.java
+24
-0
Invitation.java
...c/main/java/com/yiring/app/domain/visitor/Invitation.java
+71
-0
InvitationRepository.java
...a/com/yiring/app/domain/visitor/InvitationRepository.java
+15
-0
Visitor.java
app/src/main/java/com/yiring/app/domain/visitor/Visitor.java
+21
-9
VisitorRepository.java
...java/com/yiring/app/domain/visitor/VisitorRepository.java
+3
-1
CarExportExcel.java
...ain/java/com/yiring/app/excel/visitor/CarExportExcel.java
+1
-1
InvitationExportExcel.java
...a/com/yiring/app/excel/visitor/InvitationExportExcel.java
+62
-0
CarParam.java
app/src/main/java/com/yiring/app/param/visitor/CarParam.java
+5
-23
CarQueryParam.java
...main/java/com/yiring/app/param/visitor/CarQueryParam.java
+1
-1
InvitationParam.java
...in/java/com/yiring/app/param/visitor/InvitationParam.java
+41
-8
InvitationQueryParam.java
...va/com/yiring/app/param/visitor/InvitationQueryParam.java
+58
-0
VisitorListParam.java
...n/java/com/yiring/app/param/visitor/VisitorListParam.java
+0
-49
VisitorParam.java
.../main/java/com/yiring/app/param/visitor/VisitorParam.java
+21
-22
CarService.java
.../main/java/com/yiring/app/service/visitor/CarService.java
+23
-25
InvitationService.java
...ava/com/yiring/app/service/visitor/InvitationService.java
+68
-0
VisitorService.java
...n/java/com/yiring/app/service/visitor/VisitorService.java
+15
-14
CarServiceImpl.java
...a/com/yiring/app/service/visitor/impl/CarServiceImpl.java
+25
-53
InvitationServiceImpl.java
...iring/app/service/visitor/impl/InvitationServiceImpl.java
+333
-0
VisitorServiceImpl.java
...m/yiring/app/service/visitor/impl/VisitorServiceImpl.java
+78
-87
VideoNameVo.java
app/src/main/java/com/yiring/app/vo/video/VideoNameVo.java
+49
-0
CarVo.java
app/src/main/java/com/yiring/app/vo/visitor/CarVo.java
+28
-40
InvitationVo.java
...src/main/java/com/yiring/app/vo/visitor/InvitationVo.java
+59
-0
VisitorVo.java
app/src/main/java/com/yiring/app/vo/visitor/VisitorVo.java
+4
-0
CarController.java
...c/main/java/com/yiring/app/web/visitor/CarController.java
+24
-25
InvitationController.java
...java/com/yiring/app/web/visitor/InvitationController.java
+81
-0
VisitorController.java
...in/java/com/yiring/app/web/visitor/VisitorController.java
+5
-5
没有找到文件。
app/src/main/java/com/yiring/app/domain/car/CarRepository.java
deleted
100644 → 0
浏览文件 @
3510b233
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
car
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
* @author tzl
* 2022/4/11 13:42
*/
@Repository
public
interface
CarRepository
extends
JpaRepository
<
Car
,
Serializable
>,
JpaSpecificationExecutor
<
Car
>
{
// /**
// * 检查是否存在相同车牌号登记
// *
// * @param param String 车牌号码
// * @return 是否存在
// */
// @Query("SELECT COUNT(c.id) FROM bs_car c where car_num=?1 and label_card_status <>'已收卡'")
// boolean hasCarInfoByCarNum(String param);
//
// /**
// * 检查是否存在相同手机号码登记
// *
// * @param param String 手机号码
// * @return 是否存在
// */
// @Query("SELECT COUNT(c.id) FROM bs_car c where driver_mobile=?1 and label_card_status <>'已收卡'")
// boolean hasCarInfoByMobile(String param);
}
app/src/main/java/com/yiring/app/domain/
ca
r/Car.java
→
app/src/main/java/com/yiring/app/domain/
visito
r/Car.java
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
ca
r
;
package
com
.
yiring
.
app
.
domain
.
visito
r
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
java.io.Serial
;
...
...
@@ -48,24 +48,6 @@ public class Car implements Serializable {
@Comment
(
"车辆类型"
)
String
carType
;
@Comment
(
"司机名称"
)
String
driverName
;
@Comment
(
"司机电话"
)
String
driverMobile
;
@Comment
(
"标签卡"
)
String
labelCard
;
@Comment
(
"所属单位id"
)
String
orgId
;
@Comment
(
"被访人id"
)
String
intervieweeId
;
@Comment
(
"来访原因"
)
String
reason
;
@Comment
(
"收卡时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
cardRecTime
;
...
...
@@ -77,6 +59,6 @@ public class Car implements Serializable {
@Comment
(
"发卡时间"
)
LocalDateTime
cardSendTime
;
@Comment
(
"
备用字段
"
)
String
reserve4
;
@Comment
(
"
标签卡
"
)
String
labelCard
;
}
app/src/main/java/com/yiring/app/domain/visitor/CarRepository.java
0 → 100644
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
visitor
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.stereotype.Repository
;
/**
* @author tzl
* 2022/4/11 13:42
*/
@Repository
public
interface
CarRepository
extends
JpaRepository
<
Car
,
Serializable
>,
JpaSpecificationExecutor
<
Car
>
{
/**
* 检查车牌号车辆是否已经在园内
*
* @param param String 车牌号码
* @return 是否存在
*/
@Query
(
"SELECT COUNT(c.id) FROM Car c where carNum=?1 and cardRecTime is null"
)
int
hasCarInfoByCarNum
(
String
param
);
}
app/src/main/java/com/yiring/app/domain/visitor/Invitation.java
0 → 100644
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
visitor
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.GenericGenerator
;
import
org.hibernate.snowflake.SnowflakeId
;
/**
* 邀请管理
*
* @author Administrator
* @version 1.0
* @description: 邀请信息实体
* @date 2022/4/24 16:43
*/
@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@Table
(
name
=
"BS_INVITATION"
)
@Comment
(
"邀请信息"
)
public
class
Invitation
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
1330887992216252468L
;
@Id
@Comment
(
"主键id"
)
@GeneratedValue
(
generator
=
SnowflakeId
.
GENERATOR
)
@GenericGenerator
(
name
=
SnowflakeId
.
GENERATOR
,
strategy
=
SnowflakeId
.
Strategy
.
LONG
)
Long
id
;
@Comment
(
"邀请方式"
)
String
InvitationMethod
;
@Comment
(
"状态"
)
String
status
;
@Comment
(
"邀请人id"
)
Long
inviterId
;
@Comment
(
"邀请人数"
)
Integer
numOfVisitor
;
@Comment
(
"创建时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
createTime
;
// @Comment("访客id")
// Long visitorId;
@Comment
(
"被邀请访客"
)
@JsonIgnore
@OneToOne
@JoinColumn
(
name
=
"visitor_id"
,
referencedColumnName
=
"id"
)
Visitor
visitor
;
}
app/src/main/java/com/yiring/app/domain/visitor/InvitationRepository.java
0 → 100644
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
visitor
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
* @author tzl
* 2022/4/24 16:53
*/
@Repository
public
interface
InvitationRepository
extends
JpaRepository
<
Invitation
,
Serializable
>,
JpaSpecificationExecutor
<
Invitation
>
{}
app/src/main/java/com/yiring/app/domain/visitor/Visitor.java
浏览文件 @
856966b6
...
...
@@ -6,11 +6,13 @@ import java.io.Serial;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.*
;
import
javax.persistence.CascadeType
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.GenericGenerator
;
import
org.hibernate.annotations.*
;
import
org.hibernate.snowflake.SnowflakeId
;
/**
...
...
@@ -26,6 +28,8 @@ import org.hibernate.snowflake.SnowflakeId;
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@DynamicInsert
@DynamicUpdate
@Table
(
name
=
"BS_VISITOR"
)
@Comment
(
"访客信息"
)
public
class
Visitor
implements
Serializable
{
...
...
@@ -49,10 +53,10 @@ public class Visitor implements Serializable {
String
visitorCarNum
;
@Comment
(
"是否特殊作业"
)
boolean
taskType
;
String
taskType
;
@Comment
(
"邀请人数"
)
Integer
numOfVisitor
;
//
@Comment("邀请人数")
//
Integer numOfVisitor;
@Comment
(
"访客来源"
)
String
visitorSource
;
...
...
@@ -69,7 +73,7 @@ public class Visitor implements Serializable {
@Comment
(
"被访人id"
)
String
intervieweeId
;
@Comment
(
"来访原因"
)
@Comment
(
"来访原因
/邀请原因
"
)
String
reason
;
@Comment
(
"收卡时间"
)
...
...
@@ -89,11 +93,19 @@ public class Visitor implements Serializable {
LocalDateTime
cardSendTime
;
@Comment
(
"备用字段"
)
Stri
ng
reserve1
;
Lo
ng
reserve1
;
@Comment
(
"备用字段"
)
String
reserve2
;
@Comment
(
"是否已删除:Y是 N否"
)
@Column
(
columnDefinition
=
"VARCHAR DEFAULT 'N'"
)
String
deleted
;
@Comment
(
"主访人员id"
)
Long
mainVisitorId
;
@Comment
(
"备用字段"
)
String
reserve3
;
@Comment
(
"访客车辆"
)
@OneToOne
(
cascade
=
{
CascadeType
.
ALL
})
Car
car
;
}
app/src/main/java/com/yiring/app/domain/visitor/VisitorRepository.java
浏览文件 @
856966b6
...
...
@@ -11,4 +11,6 @@ import org.springframework.stereotype.Repository;
* 2022/4/19 14:06
*/
@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
);
}
app/src/main/java/com/yiring/app/excel/
ca
r/CarExportExcel.java
→
app/src/main/java/com/yiring/app/excel/
visito
r/CarExportExcel.java
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
ca
r
;
package
com
.
yiring
.
app
.
excel
.
visito
r
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
...
...
app/src/main/java/com/yiring/app/excel/visitor/InvitationExportExcel.java
0 → 100644
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
visitor
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* @version 1.0
* @description: TODO
* @date 2022/4/25 11:53
*/
@ExcelModel
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
InvitationExportExcel
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
8861639917182472169L
;
@ExcelColumn
(
title
=
"邀请原因"
)
String
reason
;
@ExcelColumn
(
title
=
"邀请方式"
)
String
InvitationMethod
;
@ExcelColumn
(
title
=
"邀请人数"
)
Integer
numOfVisitor
;
@ExcelColumn
(
title
=
"所属单位"
)
String
orgId
;
@ExcelColumn
(
title
=
"到访人姓名"
)
String
visitorName
;
@ExcelColumn
(
title
=
"到访人电话"
)
String
visitorMobile
;
@ExcelColumn
(
title
=
"是否特殊任务"
)
String
taskType
;
// Long inviterId;
@ExcelColumn
(
title
=
"邀请人姓名"
)
String
inviterName
;
@ExcelColumn
(
title
=
"邀请人部门"
)
String
inviterDept
;
@ExcelColumn
(
title
=
"预约到访时间"
,
format
=
"yyyy-MM-dd HH:mm:ss"
,
width
=
15
)
LocalDateTime
appOfVisitTime
;
@ExcelColumn
(
title
=
"状态"
)
String
status
;
}
app/src/main/java/com/yiring/app/param/
ca
r/CarParam.java
→
app/src/main/java/com/yiring/app/param/
visito
r/CarParam.java
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
ca
r
;
package
com
.
yiring
.
app
.
param
.
visito
r
;
import
com.yiring.common.constant.RegEx
;
import
io.swagger.annotations.ApiModel
;
...
...
@@ -8,7 +8,6 @@ import java.io.Serial;
import
java.io.Serializable
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.Pattern
;
import
javax.validation.constraints.Size
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
...
...
@@ -35,25 +34,8 @@ public class CarParam implements Serializable {
@ApiModelProperty
(
value
=
"车辆类型"
,
example
=
"1"
)
String
carType
;
@ApiModelProperty
(
value
=
"司机名称"
,
example
=
"张三"
,
required
=
true
)
@NotEmpty
(
message
=
"司机名称不能为空"
)
String
driverName
;
@ApiModelProperty
(
value
=
"司机电话"
,
example
=
"17688888888"
,
required
=
true
)
@NotEmpty
(
message
=
"司机电话不能为空"
)
@Pattern
(
regexp
=
RegEx
.
MOBILE
,
message
=
"手机号码格式不正确"
)
String
driverMobile
;
@ApiModelProperty
(
value
=
"所属单位id"
,
example
=
"1"
,
required
=
true
)
@NotEmpty
(
message
=
"所属单位id不能为空"
)
String
orgId
;
@ApiModelProperty
(
value
=
"被访人id"
,
example
=
"1"
,
required
=
true
)
@NotEmpty
(
message
=
"被访人id不能为空"
)
String
intervieweeId
;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"视察"
,
required
=
true
)
@NotEmpty
(
message
=
"来访原因不能为空"
)
@Size
(
min
=
1
,
max
=
20
,
message
=
"来访原因超出范围"
)
String
reason
;
@ApiModelProperty
(
value
=
"车辆类型"
,
example
=
"1"
)
String
labelCard
;
// @ApiModelProperty(value = "对应访客id", example = "1", required = true)
// Long visitorId;
}
app/src/main/java/com/yiring/app/param/
ca
r/CarQueryParam.java
→
app/src/main/java/com/yiring/app/param/
visito
r/CarQueryParam.java
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
ca
r
;
package
com
.
yiring
.
app
.
param
.
visito
r
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
app/src/main/java/com/yiring/app/param/visitor/
VisitorInfo
Param.java
→
app/src/main/java/com/yiring/app/param/visitor/
Invitation
Param.java
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
visitor
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yiring.common.constant.RegEx
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.Pattern
;
import
javax.validation.constraints.Size
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 邀请信息入参
*
* @author tzl
* 2022/4/21 14:04
* @version 1.0
* @description: 邀请信息入参
* @date 2022/4/24 17:30
*/
@ApiModel
(
"VisitorInfo"
)
@Data
...
...
@@ -19,23 +28,47 @@ import lombok.experimental.FieldDefaults;
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VisitorInfo
Param
implements
Serializable
{
public
class
Invitation
Param
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
3419577080791245488L
;
private
static
final
long
serialVersionUID
=
3394438557179083143L
;
@ApiModelProperty
(
value
=
"邀请方式:个人 公司"
,
example
=
"个人"
,
required
=
true
)
@NotEmpty
(
message
=
"邀请方式不能为空"
)
String
InvitationMethod
;
@ApiModelProperty
(
value
=
"邀请原因/来访原因"
,
example
=
"随便看看"
,
required
=
true
)
@Size
(
min
=
1
,
max
=
20
,
message
=
"邀请原因"
)
String
reason
;
@ApiModelProperty
(
value
=
"到访人姓名"
,
example
=
"张三"
,
required
=
true
)
@NotEmpty
(
message
=
"到访人姓名
不能为空
"
)
@NotEmpty
(
message
=
"到访人姓名"
)
String
visitorName
;
@ApiModelProperty
(
value
=
"到访人电话"
,
example
=
"17688888888"
,
required
=
true
)
@Pattern
(
regexp
=
RegEx
.
MOBILE
,
message
=
"手机号码格式不正确"
)
@NotEmpty
(
message
=
"到访人电话不能为空"
)
String
visitorMobile
;
@ApiModelProperty
(
value
=
"到访人身份证"
,
example
=
"430441190001255417"
,
required
=
true
)
@NotEmpty
(
message
=
"到访人身份证不能为空"
)
@ApiModelProperty
(
value
=
"到访人身份证"
,
example
=
"430441190001255417"
)
String
visitorCarNum
;
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"fasle"
,
required
=
true
)
boolean
taskType
;
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"否"
,
required
=
true
)
String
taskType
;
// @ApiModelProperty(value = "访客来源", example = "外部邀请", required = true)
// String visitorSource;
@ApiModelProperty
(
value
=
"访客公司"
,
example
=
"壹润科技"
)
String
orgId
;
@ApiModelProperty
(
value
=
"预约时间"
,
example
=
"2022-04-19 14:28:00"
,
required
=
true
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
appOfVisitTime
;
@ApiModelProperty
(
value
=
"邀请人id"
,
example
=
"1"
,
required
=
true
)
Long
inviterId
;
@ApiModelProperty
(
value
=
"邀请人数"
,
example
=
"1"
)
Integer
numOfVisitor
;
}
app/src/main/java/com/yiring/app/param/visitor/InvitationQueryParam.java
0 → 100644
浏览文件 @
856966b6
/* (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
java.time.LocalDateTime
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* @version 1.0
* @description: TODO
* @date 2022/4/25 9:36
*/
@ApiModel
(
"InvitationQueryParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
InvitationQueryParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
8217270866091799814L
;
@ApiModelProperty
(
value
=
"到访人姓名"
,
example
=
"张三"
)
String
visitorName
;
@ApiModelProperty
(
value
=
"到访人电话"
,
example
=
"17688888888"
)
String
visitorMobile
;
@ApiModelProperty
(
value
=
"访客公司"
,
example
=
"壹润科技"
)
String
orgId
;
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"fasle"
)
String
taskType
;
@ApiModelProperty
(
value
=
"邀请人id"
,
example
=
"1"
)
Long
inviterId
;
// @ApiModelProperty(value = "邀请人部门id", example = "1")
// Long deptId;
@ApiModelProperty
(
value
=
"预约到访时间(开始)"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
appOfVisitTimeStart
;
@ApiModelProperty
(
value
=
"预约到访时间(结束)"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
appOfVisitTimeEnd
;
@ApiModelProperty
(
value
=
"分页条数"
,
example
=
"10"
)
Integer
pageSize
;
@ApiModelProperty
(
value
=
"当前页数"
,
example
=
"1"
)
Integer
pageNo
;
}
app/src/main/java/com/yiring/app/param/visitor/VisitorListParam.java
deleted
100644 → 0
浏览文件 @
3510b233
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
visitor
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* 2022/4/21 13:51
*/
@ApiModel
(
"VisitorParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VisitorListParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
6356324790945367160L
;
@ApiModelProperty
(
value
=
"访客来源"
,
example
=
"内部邀请"
,
required
=
true
)
String
visitorSource
;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"2022-04-19 14:28:00"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
appOfVisitTime
;
@ApiModelProperty
(
value
=
"被访人id"
,
example
=
"1"
,
required
=
true
)
String
intervieweeId
;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"看看"
,
required
=
true
)
String
reason
;
@ApiModelProperty
(
value
=
"访客所属公司"
,
example
=
"壹润科技"
,
required
=
true
)
String
orgId
;
@ApiModelProperty
(
value
=
"邀请人数"
,
example
=
"1"
,
required
=
true
)
Integer
numOfVisitor
;
List
<
VisitorInfoParam
>
visitorInfos
;
}
app/src/main/java/com/yiring/app/param/visitor/VisitorParam.java
浏览文件 @
856966b6
...
...
@@ -2,11 +2,14 @@
package
com
.
yiring
.
app
.
param
.
visitor
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yiring.common.constant.RegEx
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.Pattern
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
...
...
@@ -22,6 +25,7 @@ import lombok.experimental.FieldDefaults;
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VisitorParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1444009404727514785L
;
@ApiModelProperty
(
value
=
"到访人姓名"
,
example
=
"张三"
,
required
=
true
)
...
...
@@ -37,20 +41,11 @@ public class VisitorParam implements Serializable {
String
visitorCarNum
;
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"fasle"
,
required
=
true
)
boolean
taskType
;
// @Comment("邀请人数")
// Integer numOfVisitor;
String
taskType
;
@ApiModelProperty
(
value
=
"访客来源"
,
example
=
"外部邀请"
,
required
=
true
)
String
visitorSource
;
// @Comment("标签卡")
// String labelCard;
//
// @Comment("标签卡状态")
// String labelCardStatus;
@ApiModelProperty
(
value
=
"访客所属公司"
,
example
=
"壹润科技"
)
String
orgId
;
...
...
@@ -60,19 +55,23 @@ public class VisitorParam implements Serializable {
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"看看"
,
required
=
true
)
String
reason
;
// @ApiModelProperty(value = "发卡时间", example = "看看", required = true)
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// LocalDateTime cardRecTime;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"2022-04-19 14:28:00"
)
@ApiModelProperty
(
value
=
"来访时间"
,
example
=
"2022-04-19 14:28:00"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
appOfVisitTime
;
// @Comment("创建时间")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// LocalDateTime createTime;
//
// @Comment("发卡时间")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// LocalDateTime cardSendTime;
@ApiModelProperty
(
value
=
"是否有车(是 1 ,否 2)"
,
example
=
"2"
)
Integer
hasCar
;
@ApiModelProperty
(
value
=
"车牌号码"
,
example
=
"湘A99999"
)
@Pattern
(
regexp
=
RegEx
.
CARNUM
,
message
=
"车牌号码格式不正确"
)
String
carNum
;
@ApiModelProperty
(
value
=
"车辆类型"
,
example
=
"货车"
)
String
carType
;
@ApiModelProperty
(
value
=
"车辆标签卡"
,
example
=
"1"
)
String
labelCard
;
@ApiModelProperty
(
value
=
"主访人员id"
,
example
=
"1"
)
Long
mainVisitorId
;
}
app/src/main/java/com/yiring/app/service/
ca
r/CarService.java
→
app/src/main/java/com/yiring/app/service/
visito
r/CarService.java
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
ca
r
;
package
com
.
yiring
.
app
.
service
.
visito
r
;
import
com.yiring.app.domain.car.Car
;
import
com.yiring.app.param.car.CarParam
;
import
com.yiring.app.param.car.CarQueryParam
;
import
com.yiring.app.vo.car.CarVo
;
import
com.yiring.app.domain.visitor.Car
;
import
com.yiring.app.param.visitor.CarQueryParam
;
import
com.yiring.app.vo.visitor.CarVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
...
...
@@ -19,19 +18,18 @@ public interface CarService {
/**
* 添加车辆来访信息
*
* @param car
Param CarParam
* @param car
Car
* @return 车辆来访信息id
*/
Result
<
Long
>
saveCarInfo
(
Car
Param
carParam
);
Result
<
Long
>
saveCarInfo
(
Car
car
);
/**
* 修改车辆来访信息
*
* @param carParam CarParam
* @param idParam IdParam
* @param car Car
* @return 修改的车辆来访信息id
*/
Result
<
Long
>
updateCarInfo
(
Car
Param
carParam
,
IdParam
idParam
);
Result
<
Long
>
updateCarInfo
(
Car
car
);
/**
* 收卡
...
...
@@ -81,21 +79,21 @@ public interface CarService {
*/
void
export
(
CarQueryParam
carParam
,
HttpServletResponse
response
);
/**
* 检查是否存在相同车牌号登记
*
* @param param String 车牌号码
* @return 是否存在
*/
boolean
hasCarInfoByCarNum
(
String
param
);
/**
* 检查是否存在相同手机号码登记
*
* @param param String 手机号码
* @return 是否存在
*/
boolean
hasCarInfoByMobile
(
String
param
);
/
/ /
**
//
* 检查是否存在相同车牌号登记
//
*
//
* @param param String 车牌号码
//
* @return 是否存在
//
*/
//
boolean hasCarInfoByCarNum(String param);
//
/
/ /
**
//
* 检查是否存在相同手机号码登记
//
*
//
* @param param String 手机号码
//
* @return 是否存在
//
*/
//
boolean hasCarInfoByMobile(String param);
/**
* 筛选条件
...
...
app/src/main/java/com/yiring/app/service/visitor/InvitationService.java
0 → 100644
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
visitor
;
import
com.yiring.app.param.visitor.InvitationParam
;
import
com.yiring.app.param.visitor.InvitationQueryParam
;
import
com.yiring.app.vo.visitor.InvitationVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
javax.servlet.http.HttpServletResponse
;
/**
* @author tzl
* @date 2022/4/24 16:57
*/
public
interface
InvitationService
{
/**
* 发起邀请
* @param invitationParam 新增邀请入参
* @return 是否成功
*/
Result
<
String
>
saveInv
(
InvitationParam
invitationParam
);
/**
* 修改邀请
* @date 2022/4/24 17:50
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
updateInv
(
InvitationParam
invitationParam
,
IdParam
idParam
);
/**
* 删除邀请
* @date 2022/4/24 17:52
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
deleteInv
(
IdParam
idParam
);
/**
* 分页
* @date 2022/4/24 17:56
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<java.lang.String>>
*/
Result
<
PageVo
<
InvitationVo
>>
pageInv
(
InvitationQueryParam
invitationQueryParam
);
/**
* 撤回邀请
* @author tzl
* @date 2022/4/25 11:30
* @param idParam 主键id
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
recallInv
(
IdParam
idParam
);
/**
* 发送邀请
* @author tzl
* @date 2022/4/25 11:31
* @param idParam 主键id
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
sendInv
(
IdParam
idParam
);
/**
* 导出邀请信息
* @author tzl
* @date 2022/4/25 11:34
* @param invitationQueryParam 筛选条件
*/
void
exportInv
(
InvitationQueryParam
invitationQueryParam
,
HttpServletResponse
response
);
}
app/src/main/java/com/yiring/app/service/visitor/VisitorService.java
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
visitor
;
import
com.yiring.app.param.visitor.VisitorListParam
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.vo.visitor.VisitorVo
;
...
...
@@ -22,19 +21,12 @@ public interface VisitorService {
*/
Result
<
String
>
saveVisitor
(
VisitorParam
visitorParam
);
/**
* 访客批量新增
* @param visitorListParam 批量访客新增入参
* @return 是否成功
*/
Result
<
String
>
saveVisitor
(
VisitorListParam
visitorListParam
);
/**
* 访客删除
* @param idParam 主键id
* @return 是否成功
*/
Result
<
String
>
deleteVisitor
(
IdParam
idParam
);
// /**
// * 访客删除
// * @param idParam 主键id
// * @return 是否成功
// */
// Result<String> deleteVisitor(IdParam idParam);
/**
* 修改访客信息
...
...
@@ -79,4 +71,13 @@ public interface VisitorService {
* @return 是否成功
*/
Result
<
String
>
cardRec
(
IdParam
idParam
);
/**
* 查看详情,并且带出该访客的随访人信息
* @author tzl
* @date 2022/4/25 16:48
* @param idParam 主键id
* @return com.yiring.common.core.Result<com.yiring.app.vo.visitor.VisitorVo>
*/
Result
<
VisitorVo
>
selectInfo
(
IdParam
idParam
);
}
app/src/main/java/com/yiring/app/service/
ca
r/impl/CarServiceImpl.java
→
app/src/main/java/com/yiring/app/service/
visito
r/impl/CarServiceImpl.java
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
ca
r
.
impl
;
package
com
.
yiring
.
app
.
service
.
visito
r
.
impl
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder
;
import
com.yiring.app.domain.car.Car
;
import
com.yiring.app.domain.car.CarRepository
;
import
com.yiring.app.excel.car.CarExportExcel
;
import
com.yiring.app.param.car.CarParam
;
import
com.yiring.app.param.car.CarQueryParam
;
import
com.yiring.app.service.car.CarService
;
import
com.yiring.app.vo.car.CarVo
;
import
com.yiring.app.domain.visitor.Car
;
import
com.yiring.app.domain.visitor.CarRepository
;
import
com.yiring.app.excel.visitor.CarExportExcel
;
import
com.yiring.app.param.visitor.CarQueryParam
;
import
com.yiring.app.service.visitor.CarService
;
import
com.yiring.app.vo.visitor.CarVo
;
import
com.yiring.auth.domain.role.Role
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
...
...
@@ -49,50 +48,37 @@ public class CarServiceImpl implements CarService {
CarRepository
carRepository
;
@Override
public
Result
<
Long
>
saveCarInfo
(
Car
Param
carParam
)
{
// 检查车牌号
是否已存在
if
(
hasCarInfoByCarNum
(
carParam
.
getCarNum
())
)
{
public
Result
<
Long
>
saveCarInfo
(
Car
car
)
{
// 检查车牌号
车辆是否已经在园内
if
(
carRepository
.
hasCarInfoByCarNum
(
car
.
getCarNum
())
>
0
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您的车牌号已存在"
);
}
// 检查司机手机号码号是否已存在
if
(
hasCarInfoByMobile
(
carParam
.
getDriverMobile
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您的联系方式已存在"
);
}
Car
car
=
Car
.
builder
()
.
carNum
(
carParam
.
getCarNum
())
.
carType
(
carParam
.
getCarType
())
.
driverMobile
(
carParam
.
getDriverMobile
())
.
driverName
(
carParam
.
getDriverName
())
.
intervieweeId
(
carParam
.
getIntervieweeId
())
.
orgId
(
carParam
.
getOrgId
())
.
reason
(
carParam
.
getReason
())
.
createTime
(
LocalDateTime
.
now
())
.
build
();
// Car car = Car
// .builder()
// .carNum(carParam.getCarNum())
// .carType(carParam.getCarType())
// .labelCard(carParam.getLabelCard())
// .createTime(LocalDateTime.now())
// // .visitorId(carParam.getVisitorId())
// .build();
Car
carReuslt
=
carRepository
.
saveAndFlush
(
car
);
return
Result
.
ok
(
carReuslt
.
getId
());
}
@Override
public
Result
<
Long
>
updateCarInfo
(
Car
Param
carParam
,
IdParam
idParam
)
{
Optional
<
Car
>
optional
=
carRepository
.
findById
(
idParam
.
getId
());
public
Result
<
Long
>
updateCarInfo
(
Car
car
)
{
Optional
<
Car
>
optional
=
carRepository
.
findById
(
car
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Car
car
=
optional
.
get
();
if
(!
car
.
getCarNum
().
equals
(
car
Param
.
getCarNum
()))
{
Car
car
Optional
=
optional
.
get
();
if
(!
car
.
getCarNum
().
equals
(
car
Optional
.
getCarNum
()))
{
// 当修改车牌号时才检查重复
if
(
hasCarInfoByCarNum
(
carParam
.
getCarNum
())
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您的车牌号
信息已存在
"
);
if
(
carRepository
.
hasCarInfoByCarNum
(
carOptional
.
getCarNum
())
>
0
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您的车牌号
已在园区内
"
);
}
}
if
(!
car
.
getDriverMobile
().
equals
(
carParam
.
getDriverMobile
()))
{
// 当修改联系方式时才检查重复
if
(
hasCarInfoByMobile
(
carParam
.
getDriverMobile
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您的联系方式已存在"
);
}
}
BeanUtils
.
copyProperties
(
carParam
,
car
);
BeanUtils
.
copyProperties
(
car
,
car
);
Car
carReuslt
=
carRepository
.
saveAndFlush
(
car
);
return
Result
.
ok
(
carReuslt
.
getId
());
}
...
...
@@ -224,20 +210,6 @@ public class CarServiceImpl implements CarService {
}
@Override
public
boolean
hasCarInfoByCarNum
(
String
param
)
{
Car
entity
=
Car
.
builder
().
carNum
(
param
).
build
();
long
count
=
carRepository
.
count
(
Example
.
of
(
entity
));
return
count
>
0
;
}
@Override
public
boolean
hasCarInfoByMobile
(
String
param
)
{
Car
entity
=
Car
.
builder
().
driverMobile
(
param
).
build
();
long
count
=
carRepository
.
count
(
Example
.
of
(
entity
));
return
count
>
0
;
}
@Override
public
Specification
<
Car
>
condition
(
CarQueryParam
carParam
)
{
return
(
root
,
query
,
criteriaBuilder
)
->
{
List
<
Predicate
>
list
=
new
ArrayList
<>();
...
...
app/src/main/java/com/yiring/app/service/visitor/impl/InvitationServiceImpl.java
0 → 100644
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
visitor
.
impl
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder
;
import
com.yiring.app.domain.visitor.Invitation
;
import
com.yiring.app.domain.visitor.InvitationRepository
;
import
com.yiring.app.domain.visitor.Visitor
;
import
com.yiring.app.domain.visitor.VisitorRepository
;
import
com.yiring.app.excel.visitor.InvitationExportExcel
;
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.InvitationVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
java.io.OutputStream
;
import
java.net.URLEncoder
;
import
java.nio.charset.StandardCharsets
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
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.Predicate
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.data.domain.*
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/4/24 17:05
*/
@Slf4j
@Transactional
(
rollbackFor
=
RuntimeException
.
class
)
@Service
public
class
InvitationServiceImpl
implements
InvitationService
{
@Resource
InvitationRepository
invitationRepository
;
@Resource
VisitorRepository
visitorRepository
;
@Override
public
Result
<
String
>
saveInv
(
InvitationParam
invitationParam
)
{
Visitor
visitor
=
new
Visitor
();
BeanUtils
.
copyProperties
(
invitationParam
,
visitor
);
visitor
.
setCreateTime
(
LocalDateTime
.
now
());
//设置创建时间和默认状态
Invitation
invitation
=
Invitation
.
builder
()
.
createTime
(
LocalDateTime
.
now
())
.
status
(
"已发送"
)
.
visitor
(
visitor
)
.
InvitationMethod
(
invitationParam
.
getInvitationMethod
())
.
numOfVisitor
(
invitationParam
.
getNumOfVisitor
())
.
inviterId
(
invitationParam
.
getInviterId
())
.
build
();
//添加一条访客未到访信息
if
(
invitationParam
.
getInvitationMethod
().
equals
(
"个人"
))
{
visitor
.
setVisitorSource
(
"邀请个人"
);
}
else
{
visitor
.
setVisitorSource
(
"邀请公司"
);
}
visitorRepository
.
saveAndFlush
(
visitor
);
invitationRepository
.
saveAndFlush
(
invitation
);
//短信通知该手机用户
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
updateInv
(
InvitationParam
invitationParam
,
IdParam
idParam
)
{
Optional
<
Invitation
>
optional
=
invitationRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Invitation
invitation
=
optional
.
get
();
Visitor
visitor2
=
invitation
.
getVisitor
();
BeanUtils
.
copyProperties
(
invitationParam
,
invitation
);
invitationRepository
.
saveAndFlush
(
invitation
);
//修改访客未到访信息
if
(
visitor2
==
null
)
{
// 为空添加
visitor2
=
new
Visitor
();
}
BeanUtils
.
copyProperties
(
invitationParam
,
visitor2
);
visitorRepository
.
saveAndFlush
(
visitor2
);
//短信通知该手机用户
//
//
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
deleteInv
(
IdParam
idParam
)
{
Optional
<
Invitation
>
optional
=
invitationRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Invitation
invitation
=
optional
.
get
();
invitationRepository
.
delete
(
invitation
);
visitorRepository
.
delete
(
invitation
.
getVisitor
());
//短信通知该手机用户邀请取消
//
//
return
Result
.
ok
();
}
@Override
public
Result
<
PageVo
<
InvitationVo
>>
pageInv
(
InvitationQueryParam
invitationQueryParam
)
{
PageVo
<
InvitationVo
>
resultVo
;
//排序
Sort
sort
=
Sort
.
by
(
Sort
.
Order
.
desc
(
Visitor
.
Fields
.
createTime
));
if
(
Objects
.
nonNull
(
invitationQueryParam
.
getPageNo
())
&&
Objects
.
nonNull
(
invitationQueryParam
.
getPageSize
()))
{
//分页
Pageable
pageable
=
PageRequest
.
of
(
invitationQueryParam
.
getPageNo
()
-
1
,
invitationQueryParam
.
getPageSize
()
);
Page
<
Invitation
>
all
=
invitationRepository
.
findAll
(
condition
(
invitationQueryParam
),
pageable
);
List
<
InvitationVo
>
data
=
all
.
get
()
.
map
(
invitation
->
{
InvitationVo
vo
=
new
InvitationVo
();
BeanUtils
.
copyProperties
(
invitation
,
vo
);
return
vo
;
})
.
collect
(
Collectors
.
toList
());
resultVo
=
PageVo
.
build
(
data
,
all
.
getTotalElements
());
}
else
{
List
<
Invitation
>
all
=
invitationRepository
.
findAll
(
condition
(
invitationQueryParam
),
sort
);
List
<
InvitationVo
>
data
=
all
.
stream
()
.
map
(
invitation
->
{
InvitationVo
vo
=
new
InvitationVo
();
BeanUtils
.
copyProperties
(
invitation
,
vo
);
return
vo
;
})
.
collect
(
Collectors
.
toList
());
resultVo
=
PageVo
.
build
(
data
,
data
.
size
());
}
return
Result
.
ok
(
resultVo
);
}
@Override
public
Result
<
String
>
recallInv
(
IdParam
idParam
)
{
Optional
<
Invitation
>
optional
=
invitationRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Invitation
invitation
=
optional
.
get
();
if
(
invitation
.
getVisitor
().
getAppOfVisitTime
().
isBefore
(
LocalDateTime
.
now
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"预约时间已过"
);
}
invitation
.
setStatus
(
"已撤回"
);
Visitor
visitor
=
invitation
.
getVisitor
();
// 逻辑删除对应访客信息
if
(
visitor
!=
null
)
{
visitor
.
setDeleted
(
"Y"
);
visitorRepository
.
saveAndFlush
(
visitor
);
}
invitationRepository
.
saveAndFlush
(
invitation
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
sendInv
(
IdParam
idParam
)
{
Optional
<
Invitation
>
optional
=
invitationRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Invitation
invitation
=
optional
.
get
();
if
(
invitation
.
getVisitor
().
getAppOfVisitTime
().
isBefore
(
LocalDateTime
.
now
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"预约时间已过"
);
}
invitation
.
setStatus
(
"已发送"
);
//添加访客信息
Visitor
visitor
=
invitation
.
getVisitor
();
// 逻辑删除对应访客信息
if
(
visitor
!=
null
)
{
visitor
.
setDeleted
(
"N"
);
visitorRepository
.
saveAndFlush
(
visitor
);
}
invitationRepository
.
saveAndFlush
(
invitation
);
return
Result
.
ok
();
}
@Override
public
void
exportInv
(
InvitationQueryParam
invitationQueryParam
,
HttpServletResponse
response
)
{
List
<
Invitation
>
invitations
=
invitationRepository
.
findAll
(
condition
(
invitationQueryParam
));
List
<
InvitationExportExcel
>
invitationExportExcels
=
invitations
.
stream
()
.
map
(
invitation
->
{
InvitationExportExcel
invitationExportExcel
=
new
InvitationExportExcel
();
BeanUtils
.
copyProperties
(
invitation
,
invitationExportExcel
);
BeanUtils
.
copyProperties
(
invitation
.
getVisitor
(),
invitationExportExcel
);
return
invitationExportExcel
;
})
.
toList
();
try
(
DefaultStreamExcelBuilder
<
InvitationExportExcel
>
defaultStreamExcelBuilder
=
DefaultStreamExcelBuilder
.
of
(
InvitationExportExcel
.
class
)
.
threadPool
(
Executors
.
newFixedThreadPool
(
2
))
.
rowHeight
(
14
)
.
titleRowHeight
(
14
)
.
widths
(
8
)
.
style
(
"cell->vertical-align:center;text-align:center"
,
"title->vertical-align:center;text-align:center;font-weight:bold;font-family:等线"
)
.
start
()
)
{
defaultStreamExcelBuilder
.
append
(
invitationExportExcels
);
String
fileName
=
URLEncoder
.
encode
(
"邀请信息.xlsx"
,
StandardCharsets
.
UTF_8
);
response
.
setContentType
(
"application/octet-stream"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
OutputStream
out
=
response
.
getOutputStream
();
Workbook
workbook
=
defaultStreamExcelBuilder
.
fixedTitles
().
build
();
workbook
.
write
(
out
);
workbook
.
close
();
out
.
flush
();
out
.
close
();
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
throw
new
RuntimeException
(
"导出邀请信息失败: "
+
e
.
getMessage
());
}
}
public
Specification
<
Invitation
>
condition
(
InvitationQueryParam
invitationQueryParam
)
{
return
(
root
,
query
,
criteriaBuilder
)
->
{
Join
<
Invitation
,
Visitor
>
join
=
root
.
join
(
"visitor"
,
JoinType
.
LEFT
);
List
<
Predicate
>
list
=
new
ArrayList
<>();
if
(
StrUtil
.
isNotBlank
(
invitationQueryParam
.
getVisitorName
()))
{
list
.
add
(
criteriaBuilder
.
like
(
join
.
get
(
Visitor
.
Fields
.
visitorName
).
as
(
String
.
class
),
"%"
+
invitationQueryParam
.
getVisitorName
()
+
"%"
)
);
}
if
(
StrUtil
.
isNotBlank
(
invitationQueryParam
.
getVisitorMobile
()))
{
list
.
add
(
criteriaBuilder
.
like
(
join
.
get
(
Visitor
.
Fields
.
visitorMobile
).
as
(
String
.
class
),
"%"
+
invitationQueryParam
.
getVisitorMobile
()
+
"%"
)
);
}
if
(
StrUtil
.
isNotBlank
(
invitationQueryParam
.
getOrgId
()))
{
list
.
add
(
criteriaBuilder
.
like
(
join
.
get
(
Visitor
.
Fields
.
orgId
).
as
(
String
.
class
),
"%"
+
invitationQueryParam
.
getOrgId
()
+
"%"
)
);
}
if
(
StrUtil
.
isNotBlank
(
invitationQueryParam
.
getTaskType
()))
{
list
.
add
(
criteriaBuilder
.
equal
(
join
.
get
(
Visitor
.
Fields
.
taskType
).
as
(
String
.
class
),
invitationQueryParam
.
getTaskType
()
)
);
}
if
(
invitationQueryParam
.
getInviterId
()
!=
null
)
{
list
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
Invitation
.
Fields
.
inviterId
).
as
(
String
.
class
),
invitationQueryParam
.
getInviterId
()
)
);
}
if
(
Objects
.
nonNull
(
invitationQueryParam
.
getAppOfVisitTimeStart
())
&&
Objects
.
nonNull
(
invitationQueryParam
.
getAppOfVisitTimeEnd
())
)
{
//预约到访时间区间段查询
list
.
add
(
criteriaBuilder
.
between
(
join
.
get
(
Visitor
.
Fields
.
appOfVisitTime
),
invitationQueryParam
.
getAppOfVisitTimeStart
(),
invitationQueryParam
.
getAppOfVisitTimeEnd
()
)
);
}
Predicate
[]
predicates
=
new
Predicate
[
list
.
size
()];
query
.
where
(
list
.
toArray
(
predicates
));
return
criteriaBuilder
.
and
(
list
.
toArray
(
predicates
));
};
}
// /**
// * 查看被邀人手机号码是否已经发出邀请
// *
// * @param mobile 手机号码
// * @return boolean
// * @author tzl
// * @date 2022/4/24 17:27
// */
// public boolean hasVisitorMobile(String mobile) {
// Invitation invitation = Invitation.builder().visitorMobile(mobile).status("已发送").build();
// long count = invitationRepository.count(Example.of(invitation));
// return count > 0;
// }
}
app/src/main/java/com/yiring/app/service/visitor/impl/VisitorServiceImpl.java
浏览文件 @
856966b6
...
...
@@ -4,15 +4,16 @@ package com.yiring.app.service.visitor.impl;
import
cn.hutool.core.util.StrUtil
;
import
com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder
;
import
com.yiring.app.domain.appletUser.AppletUserRepository
;
import
com.yiring.app.domain.visitor.Car
;
import
com.yiring.app.domain.visitor.Visitor
;
import
com.yiring.app.domain.visitor.VisitorRepository
;
import
com.yiring.app.excel.visitor.VisitorExportExcel
;
import
com.yiring.app.param.visitor.VisitorInfoParam
;
import
com.yiring.app.param.visitor.VisitorListParam
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.service.visitor.CarService
;
import
com.yiring.app.service.visitor.VisitorService
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.common.constant.RegEx
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
...
...
@@ -51,97 +52,82 @@ public class VisitorServiceImpl implements VisitorService {
VisitorRepository
visitorRepository
;
@Resource
CarService
carService
;
@Resource
AppletUserRepository
appletUserRepository
;
@Override
public
Result
<
String
>
saveVisitor
(
VisitorParam
visitorParam
)
{
if
(
hasVisitorMobile
(
visitorParam
.
getVisitorMobile
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您输入的手机号码已经预约"
);
if
(
visitorParam
.
getMainVisitorId
()
!=
null
)
{
//如果主访人员id不为空,
Visitor
optional
=
visitorRepository
.
findByIdAndDeleted
(
visitorParam
.
getMainVisitorId
(),
"N"
);
if
(
optional
==
null
)
{
return
Result
.
no
(
Status
.
NOT_FOUND
,
"信息失效,请联系管理员"
);
}
if
(
hasCarNum
(
visitorParam
.
getVisitorCarNum
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您输入的身份证号码已经预约"
);
}
//设置创建时间和默认状态
Visitor
visitor
=
Visitor
.
builder
().
createTime
(
LocalDateTime
.
now
()).
build
();
BeanUtils
.
copyProperties
(
visitorParam
,
visitor
);
visitorRepository
.
saveAndFlush
(
visitor
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
saveVisitor
(
VisitorListParam
visitorListParam
)
{
List
<
VisitorInfoParam
>
visitorInfos
=
visitorListParam
.
getVisitorInfos
();
List
<
String
>
mobileList
=
new
ArrayList
<>();
List
<
String
>
carList
=
new
ArrayList
<>();
//如果存在重复身份证,电话号码,将其信息装入集合
visitorInfos
.
forEach
(
visitorInfoParam
->
{
if
(
hasVisitorMobile
(
visitorInfoParam
.
getVisitorMobile
()))
{
mobileList
.
add
(
visitorInfoParam
.
getVisitorMobile
());
}
if
(
hasCarNum
(
visitorInfoParam
.
getVisitorCarNum
()))
{
carList
.
add
(
visitorInfoParam
.
getVisitorCarNum
());
}
});
if
(
mobileList
.
size
()
>
0
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
mobileList
+
"手机号已经预约,请勿重复预约"
);
}
if
(
carList
.
size
()
>
0
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
carList
+
"身份证已经预约,请勿重复预约"
);
}
List
<
Visitor
>
visitorList
=
new
ArrayList
<>();
//补全访客其他信息
visitorInfos
.
forEach
(
visitorInfoParam
->
{
Visitor
visitor
=
new
Visitor
();
BeanUtils
.
copyProperties
(
visitorInfoParam
,
visitor
);
visitor
.
setOrgId
(
visitorListParam
.
getOrgId
());
visitor
.
setNumOfVisitor
(
visitorListParam
.
getNumOfVisitor
());
visitor
.
setReason
(
visitorListParam
.
getReason
());
visitor
.
setIntervieweeId
(
visitorListParam
.
getIntervieweeId
());
visitorList
.
add
(
visitor
);
});
visitorRepository
.
saveAll
(
visitorList
);
//通知用户登录微信小程序查看
//查看该手机是否已注册小程序
// visitorInfos.forEach(visitorInfoParam -> {
// if(appletUserRepository.countMobile(visitorInfoParam.getVisitorMobile())<1){
// 没有的情况下为qi
// }
// });
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
deleteVisitor
(
IdParam
idParam
)
{
Optional
<
Visitor
>
optional
=
visitorRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
//如果有车, 填车辆信息,
if
(
visitorParam
.
getHasCar
()
==
1
)
{
//校验车辆必填信息
if
(
StrUtil
.
isBlank
(
visitorParam
.
getCarNum
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"请输入车牌号码"
);
}
if
(
visitorParam
.
getCarNum
().
matches
(
RegEx
.
CARNUM
))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"请输入正确的车牌号码"
);
}
if
(
StrUtil
.
isBlank
(
visitorParam
.
getCarType
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"请输入车辆类型"
);
}
if
(
StrUtil
.
isBlank
(
visitorParam
.
getLabelCard
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"请输入车辆标签卡"
);
}
//需要判断标签卡是否有效
Car
car
=
Car
.
builder
()
.
carNum
(
visitorParam
.
getCarNum
())
.
carType
(
visitorParam
.
getCarType
())
.
labelCard
(
visitorParam
.
getLabelCard
())
.
createTime
(
LocalDateTime
.
now
())
.
build
();
carService
.
saveCarInfo
(
car
);
visitor
.
setCar
(
car
);
}
visitorRepository
.
delete
(
optional
.
get
()
);
visitorRepository
.
saveAndFlush
(
visitor
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
updateVisitor
(
VisitorParam
visitorParam
,
IdParam
idParam
)
{
Optional
<
Visitor
>
optional
=
visitorRepository
.
findById
(
idParam
.
getId
()
);
if
(
optional
.
isEmpty
()
)
{
Visitor
optional
=
visitorRepository
.
findByIdAndDeleted
(
idParam
.
getId
(),
"N"
);
if
(
optional
==
null
)
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Visitor
visitor
=
optional
.
get
();
if
(!
visitor
.
getVisitorCarNum
().
equals
(
visitorParam
.
getVisitorCarNum
()))
{
//当修改身份证时
if
(
hasCarNum
(
visitorParam
.
getVisitorCarNum
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您输入的身份证号码已经预约"
);
}
}
if
(!
visitor
.
getVisitorMobile
().
equals
(
visitorParam
.
getVisitorMobile
()))
{
//当修改手机号码时
if
(
hasVisitorMobile
(
visitorParam
.
getVisitorMobile
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您输入的手机号码已经预约"
);
//判断标签卡是否正确 生效
Car
car
=
optional
.
getCar
();
if
(
car
!=
null
)
{
BeanUtils
.
copyProperties
(
visitorParam
,
car
);
carService
.
updateCarInfo
(
car
);
}
else
{
if
(
StrUtil
.
isNotBlank
(
visitorParam
.
getCarNum
()))
{
car
=
Car
.
builder
()
.
carNum
(
visitorParam
.
getCarNum
())
.
carType
(
visitorParam
.
getCarType
())
.
labelCard
(
visitorParam
.
getLabelCard
())
.
createTime
(
LocalDateTime
.
now
())
.
build
();
optional
.
setCar
(
car
);
carService
.
saveCarInfo
(
car
);
}
else
{
optional
.
setCar
(
null
);
}
}
BeanUtils
.
copyProperties
(
visitorParam
,
visitor
);
visitorRepository
.
saveAndFlush
(
visitor
);
BeanUtils
.
copyProperties
(
visitorParam
,
optional
);
visitorRepository
.
saveAndFlush
(
optional
);
return
Result
.
ok
();
}
...
...
@@ -262,21 +248,26 @@ public class VisitorServiceImpl implements VisitorService {
return
Result
.
ok
();
}
public
boolean
hasCarNum
(
String
carNum
)
{
Visitor
visitor
=
Visitor
.
builder
().
visitorCarNum
(
carNum
).
labelCardStatus
(
"1"
).
build
();
long
count
=
visitorRepository
.
count
(
Example
.
of
(
visitor
));
Visitor
visitor1
=
Visitor
.
builder
().
visitorCarNum
(
carNum
).
labelCardStatus
(
"2"
).
build
();
long
count1
=
visitorRepository
.
count
(
Example
.
of
(
visitor1
));
return
count
+
count1
>
0
;
@Override
public
Result
<
VisitorVo
>
selectInfo
(
IdParam
idParam
)
{
return
null
;
}
public
boolean
hasVisitorMobile
(
String
mobile
)
{
Visitor
visitor
=
Visitor
.
builder
().
visitorMobile
(
mobile
).
labelCardStatus
(
"1"
).
build
();
long
count
=
visitorRepository
.
count
(
Example
.
of
(
visitor
));
Visitor
visitor1
=
Visitor
.
builder
().
visitorMobile
(
mobile
).
labelCardStatus
(
"1"
).
build
();
long
count1
=
visitorRepository
.
count
(
Example
.
of
(
visitor1
));
return
count
+
count1
>
0
;
}
// public boolean hasCarNum(String carNum) {
// Visitor visitor = Visitor.builder().visitorCarNum(carNum).labelCardStatus("1").build();
// long count = visitorRepository.count(Example.of(visitor));
// Visitor visitor1 = Visitor.builder().visitorCarNum(carNum).labelCardStatus("2").build();
// long count1 = visitorRepository.count(Example.of(visitor1));
// return count + count1 > 0;
// }
//
// public boolean hasVisitorMobile(String mobile) {
// Visitor visitor = Visitor.builder().visitorMobile(mobile).labelCardStatus("1").build();
// long count = visitorRepository.count(Example.of(visitor));
// Visitor visitor1 = Visitor.builder().visitorMobile(mobile).labelCardStatus("1").build();
// long count1 = visitorRepository.count(Example.of(visitor1));
// return count + count1 > 0;
// }
public
Specification
<
Visitor
>
condition
(
VisitorQueryParam
visitorQueryParam
)
{
return
(
root
,
query
,
criteriaBuilder
)
->
{
...
...
app/src/main/java/com/yiring/app/vo/video/VideoNameVo.java
0 → 100644
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
video
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 监控名称模糊查询反参Vo
* @author tzl
* 2022/4/15 10:48
*/
@ApiModel
(
"VideoNameVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VideoNameVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
3968078657827350557L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"1548548545755"
)
Long
id
;
// @ApiModelProperty(value = "坐标点", example = "坐标点")
// Point point;
// @ApiModelProperty(value = "编号", example = "88888888")
// String uuid;
// @ApiModelProperty(value = "m3u8地址", example = "m3u8地址")
// String m3u8;
// @ApiModelProperty(value = "备注", example = "备注")
// String remark;
@ApiModelProperty
(
value
=
"摄像头名称"
,
example
=
"摄像头1"
)
String
videoName
;
// @ApiModelProperty(value = "状态", example = "正常")
// String status;
}
app/src/main/java/com/yiring/app/vo/
ca
r/CarVo.java
→
app/src/main/java/com/yiring/app/vo/
visito
r/CarVo.java
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
ca
r
;
package
com
.
yiring
.
app
.
vo
.
visito
r
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
...
...
@@ -40,8 +38,8 @@ public class CarVo implements Serializable {
/**
* 车辆类型翻译
*/
@ApiModelProperty
(
value
=
"车辆类型(字典翻译)"
,
example
=
"货车"
)
String
carTypeName
;
//
@ApiModelProperty(value = "车辆类型(字典翻译)", example = "货车")
//
String carTypeName;
// public String getCarTypeName() {
// if (StrUtil.isNotBlank(carType)) {
...
...
@@ -50,23 +48,13 @@ public class CarVo implements Serializable {
// return null;
// }
@ApiModelProperty
(
value
=
"司机名称"
,
example
=
"张三"
)
String
driverName
;
@ApiModelProperty
(
value
=
"司机电话"
,
example
=
"17688888888"
)
String
driverMobile
;
@ApiModelProperty
(
value
=
"标签卡"
,
example
=
"DT8875666"
)
String
labelCard
;
@ApiModelProperty
(
value
=
"标签卡状态"
,
example
=
"1"
)
String
labelCardStatus
;
/**
* 车辆类型翻译
*/
@ApiModelProperty
(
value
=
"标签卡状态"
,
example
=
"未发卡"
)
String
labelCardStatusName
;
// /**
// * 车辆类型翻译
// */
// @ApiModelProperty(value = "标签卡状态", example = "未发卡")
// String labelCardStatusName;
// public String getLabelCardStatusName() {
// if (StrUtil.isNotBlank(carType)) {
...
...
@@ -75,24 +63,24 @@ public class CarVo implements Serializable {
// return null;
// }
@ApiModelProperty
(
value
=
"单位id"
,
example
=
"湖南壹润科技"
)
String
orgId
;
@ApiModelProperty
(
value
=
"被访人id"
,
example
=
"1"
)
String
intervieweeId
;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"装货"
)
String
reason
;
@ApiModelProperty
(
value
=
"收卡时间"
,
example
=
"2022-04-11 17:25:33"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
cardRecTime
;
@ApiModelProperty
(
value
=
"创建时间"
,
example
=
"2022-04-11 17:25:33"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
createTime
;
@ApiModelProperty
(
value
=
"发卡时间"
,
example
=
"2022-04-11 17:25:33"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
cardSendTime
;
//
@ApiModelProperty(value = "单位id", example = "湖南壹润科技")
//
String orgId;
//
//
@ApiModelProperty(value = "被访人id", example = "1")
//
String intervieweeId;
//
//
@ApiModelProperty(value = "来访原因", example = "装货")
//
String reason;
//
//
@ApiModelProperty(value = "收卡时间", example = "2022-04-11 17:25:33")
//
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//
LocalDateTime cardRecTime;
//
@ApiModelProperty(value = "创建时间", example = "2022-04-11 17:25:33")
//
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//
LocalDateTime createTime;
//
//
@ApiModelProperty(value = "发卡时间", example = "2022-04-11 17:25:33")
//
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//
LocalDateTime cardSendTime;
}
app/src/main/java/com/yiring/app/vo/visitor/InvitationVo.java
0 → 100644
浏览文件 @
856966b6
/* (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/25 11:14
*/
@ApiModel
(
"InvitationVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
InvitationVo
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
inviterName
;
@ApiModelProperty
(
value
=
"邀请人所属部门"
,
example
=
"开发部"
)
String
inviterDept
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"撤回"
)
String
status
;
@ApiModelProperty
(
value
=
"被邀请访客"
)
Visitor
visitor
;
}
app/src/main/java/com/yiring/app/vo/visitor/VisitorVo.java
浏览文件 @
856966b6
...
...
@@ -4,6 +4,7 @@ package com.yiring.app.vo.visitor;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.visitor.Car
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serializable
;
...
...
@@ -77,4 +78,7 @@ public class VisitorVo implements Serializable {
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"发卡时间"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
cardSendTime
;
@ApiModelProperty
(
value
=
"车辆反参"
)
Car
car
;
}
app/src/main/java/com/yiring/app/web/
ca
r/CarController.java
→
app/src/main/java/com/yiring/app/web/
visito
r/CarController.java
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
ca
r
;
package
com
.
yiring
.
app
.
web
.
visito
r
;
import
com.yiring.app.param.car.CarParam
;
import
com.yiring.app.param.car.CarQueryParam
;
import
com.yiring.app.service.car.CarService
;
import
com.yiring.app.vo.car.CarVo
;
import
com.yiring.app.param.visitor.CarQueryParam
;
import
com.yiring.app.service.visitor.CarService
;
import
com.yiring.app.vo.visitor.CarVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
...
...
@@ -38,17 +37,17 @@ public class CarController {
@Resource
CarService
carService
;
@ApiOperation
(
value
=
"新增车辆来访信息"
)
@PostMapping
(
"saveCarInfo"
)
public
Result
<
Long
>
saveCarInfo
(
@Valid
CarParam
carParam
)
{
return
carService
.
saveCarInfo
(
carParam
);
}
//
@ApiOperation(value = "新增车辆来访信息")
//
@PostMapping("saveCarInfo")
//
public Result<Long> saveCarInfo(@Valid CarParam carParam) {
//
return carService.saveCarInfo(carParam);
//
}
@ApiOperation
(
value
=
"修改车辆来访信息"
)
@PostMapping
(
"updateCarInfo"
)
public
Result
<
Long
>
updateCarInfo
(
@Valid
CarParam
carParam
,
@Valid
IdParam
idParam
)
{
return
carService
.
updateCarInfo
(
carParam
,
idParam
);
}
//
@ApiOperation(value = "修改车辆来访信息")
//
@PostMapping("updateCarInfo")
//
public Result<Long> updateCarInfo(@Valid CarParam carParam, @Valid IdParam idParam) {
//
return carService.updateCarInfo(carParam, idParam);
//
}
@ApiOperation
(
value
=
"收卡"
)
@PostMapping
(
"cardRec"
)
...
...
@@ -63,17 +62,17 @@ public class CarController {
return
carService
.
cardSend
(
idParam
,
labelCard
);
}
@ApiOperation
(
value
=
"删除车辆来访信息"
)
@PostMapping
(
"deleteCarInfo"
)
public
Result
<
String
>
deleteCarInfo
(
@Valid
IdParam
idParam
)
{
return
carService
.
deleteCarInfo
(
idParam
);
}
//
@ApiOperation(value = "删除车辆来访信息")
//
@PostMapping("deleteCarInfo")
//
public Result<String> deleteCarInfo(@Valid IdParam idParam) {
//
return carService.deleteCarInfo(idParam);
//
}
@ApiOperation
(
value
=
"查看车辆来访信息详情"
)
@GetMapping
(
"getCarInfo"
)
public
Result
<
CarVo
>
getCarInfo
(
@Valid
IdParam
idParam
)
{
return
carService
.
getCarInfo
(
idParam
);
}
//
@ApiOperation(value = "查看车辆来访信息详情")
//
@GetMapping("getCarInfo")
//
public Result<CarVo> getCarInfo(@Valid IdParam idParam) {
//
return carService.getCarInfo(idParam);
//
}
@ApiOperation
(
value
=
"查看车辆来访信息(分页)"
)
@GetMapping
(
"pageCarInfo"
)
...
...
app/src/main/java/com/yiring/app/web/visitor/InvitationController.java
0 → 100644
浏览文件 @
856966b6
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
visitor
;
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.InvitationVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.http.MediaType
;
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.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/4/25 11:35
*/
@Slf4j
@Validated
@Api
(
tags
=
"Invitation(邀请)"
)
@RestController
@RequestMapping
(
"/invitation/"
)
public
class
InvitationController
{
@Resource
InvitationService
invitationService
;
@ApiOperation
(
value
=
"新增邀请信息"
)
@PostMapping
(
"saveInv"
)
public
Result
<
String
>
saveInv
(
@Valid
InvitationParam
invitationParam
)
{
return
invitationService
.
saveInv
(
invitationParam
);
}
@ApiOperation
(
value
=
"修改邀请信息"
)
@PostMapping
(
"updateInv"
)
public
Result
<
String
>
updateInv
(
@Valid
InvitationParam
invitationParam
,
@Valid
IdParam
idParam
)
{
return
invitationService
.
updateInv
(
invitationParam
,
idParam
);
}
@ApiOperation
(
value
=
"撤回"
)
@PostMapping
(
"recallInv"
)
public
Result
<
String
>
recallInv
(
@Valid
IdParam
idParam
)
{
return
invitationService
.
recallInv
(
idParam
);
}
@ApiOperation
(
value
=
"发起邀请"
)
@PostMapping
(
"sendInv"
)
public
Result
<
String
>
sendInv
(
@Valid
IdParam
idParam
)
{
return
invitationService
.
sendInv
(
idParam
);
}
@ApiOperation
(
value
=
"删除邀请"
)
@PostMapping
(
"deleteInv"
)
public
Result
<
String
>
deleteInv
(
@Valid
IdParam
idParam
)
{
return
invitationService
.
deleteInv
(
idParam
);
}
@ApiOperation
(
value
=
"查看邀请信息(分页)"
)
@GetMapping
(
"pageInv"
)
public
Result
<
PageVo
<
InvitationVo
>>
pageInv
(
@Valid
InvitationQueryParam
invitationQueryParam
)
{
return
invitationService
.
pageInv
(
invitationQueryParam
);
}
@ApiOperation
(
value
=
"导出邀请信息"
,
produces
=
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
)
@PostMapping
(
"exportInv"
)
public
void
exportInv
(
HttpServletResponse
response
,
@Valid
InvitationQueryParam
invitationQueryParam
)
{
invitationService
.
exportInv
(
invitationQueryParam
,
response
);
}
}
app/src/main/java/com/yiring/app/web/visitor/VisitorController.java
浏览文件 @
856966b6
...
...
@@ -61,11 +61,11 @@ public class VisitorController {
return
visitorService
.
cardSend
(
labelCard
,
idParam
);
}
@ApiOperation
(
value
=
"删除访客信息"
)
@PostMapping
(
"deleteVisitor"
)
public
Result
<
String
>
deleteVisitor
(
@Valid
IdParam
idParam
)
{
return
visitorService
.
deleteVisitor
(
idParam
);
}
//
@ApiOperation(value = "删除访客信息")
//
@PostMapping("deleteVisitor")
//
public Result<String> deleteVisitor(@Valid IdParam idParam) {
//
return visitorService.deleteVisitor(idParam);
//
}
@ApiOperation
(
value
=
"查看访客信息详情"
)
@GetMapping
(
"selectVisitor"
)
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论