Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
yangxiujun
/
paidan_demo
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit ed1a677c
authored
Sep 19, 2023
by
刘鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CI:PEA 对外接口API定义
1 parent
0638281b
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
470 additions
and
0 deletions
project-order/src/main/java/com/dituhui/pea/order/controller/PeaApiController.java
project-order/src/main/java/com/dituhui/pea/order/dto/OrganizationTreeDTO.java
project-order/src/main/java/com/dituhui/pea/order/dto/param/CapacityQueryDTO.java
project-order/src/main/java/com/dituhui/pea/order/dto/param/EngineerParamDTO.java
project-order/src/main/java/com/dituhui/pea/order/dto/param/Location.java
project-order/src/main/java/com/dituhui/pea/order/dto/param/ValidGroup.java
project-order/src/main/java/com/dituhui/pea/order/controller/PeaApiController.java
0 → 100644
View file @
ed1a677
package
com
.
dituhui
.
pea
.
order
.
controller
;
import
com.dituhui.pea.common.Result
;
import
com.dituhui.pea.order.dto.OrganizationTreeDTO
;
import
com.dituhui.pea.order.dto.param.CapacityQueryDTO
;
import
com.dituhui.pea.order.dto.param.EngineerParamDTO
;
import
com.dituhui.pea.order.dto.param.ValidGroup
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.format.annotation.DateTimeFormat
;
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.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.time.LocalDate
;
/**
* PEA 调用API
*/
@RestController
@RequestMapping
(
"/pea-order/pea"
)
@RequiredArgsConstructor
public
class
PeaApiController
{
/**
* 2.1POST 组织架构同步事件通知
*
* @param requestParam 请求参数
* @return 成功或者失败
* @apiNote BEAN系统当组织架构信息变化的时候,通知PEA系统;然后PEA系统,将会根据变化的要素信息,再去向BEAN系统发起查询,去获取详细的信息;
*/
@PostMapping
(
"/organization/tree"
)
public
Result
<?>
organizationTree
(
@NotNull
(
message
=
"请求参数不能为空"
)
@Validated
({
ValidGroup
.
PeaTree
.
class
})
@RequestBody
OrganizationTreeDTO
.
Request
requestParam
)
{
return
Result
.
success
(
null
);
}
/**
* 2.2POST 组织人员同步事件通知
*
* @param requestParam 请求参数
* @return 成功或者失败
* @apiNote 当组织人员有变化的时候,BEAN调用本接口,告知PEA系统,该组织人员有变化,PEA系统再去BEAN系统发起查询,获取该组织所有的人员信息保存到本地;
*/
@PostMapping
(
"/organization/staff"
)
public
Result
<?>
organizationStaff
(
@RequestBody
OrganizationTreeDTO
.
Request
requestParam
)
{
return
Result
.
success
(
null
);
}
/**
* 2.3POST 技术员信息同步事件通知
*
* @param requestParam 请求参数
* @return 成功或者失败
* @apiNote 将网点/小组内的工程师信息,推送给PEA系统;包括2种模式:全量/增量;
*/
@PostMapping
(
"/organization/engineer"
)
public
Result
<?>
organizationEngineer
(
@RequestBody
EngineerParamDTO
.
Request
requestParam
)
{
return
Result
.
success
(
null
);
}
/**
* 4.1 创单可用容量查询
*
* @param reqDTO 查询参数
* @return 容量列表
*/
@PostMapping
(
"/capacity/query"
)
public
Result
<
CapacityQueryDTO
.
Result
>
capacityQuery
(
@Validated
@RequestBody
CapacityQueryDTO
.
Request
reqDTO
)
{
//TODO 查询日期起止参数限制为一月
return
Result
.
success
(
null
);
}
/**
* 4.2 改派到人容量看板查询
*
* @param engineerCode 工程师工号
* @param beginDate 查询起始日期, 格式:yyyy-MM-dd
* @param endDate 查询截止日期, 格式:yyyy-MM-dd
* @return 容量列表
* @apiNote 查询指定人员的可用容量接口(改派到人)
*/
@GetMapping
(
"/capacity/engineer"
)
public
Result
<
CapacityQueryDTO
.
PersonalResult
>
capacityEngineer
(
@NotBlank
@RequestParam
(
"engineerCode"
)
String
engineerCode
,
@NotNull
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
LocalDate
beginDate
,
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
LocalDate
endDate
)
{
return
Result
.
success
(
null
);
}
}
project-order/src/main/java/com/dituhui/pea/order/dto/OrganizationTreeDTO.java
View file @
ed1a677
package
com
.
dituhui
.
pea
.
order
.
dto
;
import
com.dituhui.pea.order.dto.param.ValidGroup
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotBlank
;
import
java.util.List
;
@lombok
.
Data
...
...
@@ -10,7 +12,15 @@ public class OrganizationTreeDTO {
@Data
public
static
class
Request
{
/**
* 组织级别,包括:cluster大区; branch分部; group分站/网点
*/
@NotBlank
(
message
=
"组织级别不能为空"
,
groups
=
{
ValidGroup
.
PeaTree
.
class
})
private
String
levelType
;
/**
* 组织编码, 大区、分部、分站的编码;
*/
@NotBlank
(
message
=
"组织编码不能为空"
,
groups
=
{
ValidGroup
.
PeaTree
.
class
})
private
String
levelValue
;
}
...
...
project-order/src/main/java/com/dituhui/pea/order/dto/param/CapacityQueryDTO.java
0 → 100644
View file @
ed1a677
package
com
.
dituhui
.
pea
.
order
.
dto
.
param
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.validation.annotation.Validated
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
* 创单可用容量
*/
@Validated
public
class
CapacityQueryDTO
{
/**
* 查询参数
*/
@Setter
@Getter
public
static
class
Request
{
/**
* 服务技能
*/
@Valid
private
List
<
Service
>
services
;
/**
* 地址坐标信息
*/
@Valid
@NotNull
private
Location
location
;
/**
* 查询起始日期
*/
@NotBlank
private
String
beginDate
;
/**
* 查询结束日期
*/
@NotBlank
private
String
endDate
;
}
/**
* 返回值
*/
@Setter
@Getter
public
static
class
Result
{
/**
* 符合条件的履约组织网点)Id
*/
private
String
groupId
;
/**
* 原始请求参数
*/
private
Request
params
;
/**
* 需要的服务时长,单位: 分钟
*/
private
int
takeTime
;
/**
* 查询容量返回结果
*/
private
List
<
Data
>
datas
;
}
/**
* 改派到人查询结果
*/
@Setter
@Getter
public
static
class
PersonalResult
{
/**
* 查询的工程师工号
*/
private
String
engineerCode
;
/**
* 查询工程师姓名
*/
private
String
engineerName
;
/**
* 查询容量返回结果
*/
private
List
<
Data
>
datas
;
}
/**
* 查询容量返回结果
*/
@Setter
@Getter
public
static
class
Data
{
/**
* 日期 yyyy-MM-dd
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
LocalDate
date
;
/**
* 容量列表
*/
private
List
<
Segment
>
segments
;
}
/**
* 容量
*/
@Setter
@Getter
public
static
class
Segment
{
/**
* 最大可用时长, 单位: 分钟
*/
private
int
maxDuration
;
/**
* 容量名称 全天/上午/下午/晚上等
*/
private
String
name
;
/**
* 起始时间 yyyy-MM-dd HH:mm:ss
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
beginTime
;
/**
* 截止时间 yyyy-MM-dd HH:mm:ss
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
endTime
;
/**
* 容量状态 0不可约;1可约;
*/
private
int
status
;
/**
* 剩余容量
*/
private
int
remain
;
}
/**
* 服务
*/
@Setter
@Getter
public
static
class
Service
{
/**
* 品牌
*/
@NotBlank
private
String
brand
;
/**
* 产品类型
*/
@NotBlank
private
String
productType
;
/**
* 需要的技能
*/
@NotBlank
private
String
serviceType
;
}
}
project-order/src/main/java/com/dituhui/pea/order/dto/param/EngineerParamDTO.java
0 → 100644
View file @
ed1a677
package
com
.
dituhui
.
pea
.
order
.
dto
.
param
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.validation.annotation.Validated
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.time.LocalDate
;
import
java.util.List
;
/**
* 技术员信息
*/
public
class
EngineerParamDTO
{
/**
* Body 请求参数
*/
@Setter
@Getter
@Validated
public
static
class
Request
{
/**
* 网点/分站编码
*/
@NotBlank
private
String
groupId
;
/**
* 同步工程师列表
*/
@NotNull
private
List
<
Engineer
>
egineers
;
}
/**
* 技术员信息
*/
public
static
class
Engineer
{
/**
* 工程师工号
*/
private
String
engineerCode
;
/**
* 工程师姓名
*/
private
String
name
;
/**
* 工程师联系电话
*/
private
String
phone
;
private
int
kind
;
/**
* 地址坐标信息
*/
private
Location
location
;
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
private
LocalDate
birth
;
private
String
gender
;
private
List
<
String
>
skills
;
private
String
grade
;
private
List
<
String
>
credentials
;
private
int
vehicle
;
private
String
status
;
private
String
address
;
private
String
vehicleNo
;
private
String
memo
;
}
}
project-order/src/main/java/com/dituhui/pea/order/dto/param/Location.java
0 → 100644
View file @
ed1a677
package
com
.
dituhui
.
pea
.
order
.
dto
.
param
;
import
lombok.Getter
;
import
lombok.Setter
;
import
javax.validation.constraints.NotNull
;
/**
* 地址坐标信息
*/
@Setter
@Getter
public
class
Location
{
/**
* 地点名称,例如:xx小区
*/
private
String
name
;
/**
* 详细地址, xx路xx号等信息
*/
private
String
address
;
/**
* 地址纬度
*/
@NotNull
private
Double
latitude
;
/**
* 地址经度
*/
@NotNull
private
Double
longitude
;
}
project-order/src/main/java/com/dituhui/pea/order/dto/param/ValidGroup.java
0 → 100644
View file @
ed1a677
package
com
.
dituhui
.
pea
.
order
.
dto
.
param
;
import
javax.validation.GroupSequence
;
/**
* 参数校验分组, 定义分组
*/
public
class
ValidGroup
{
/**
* 新增使用(配合spring的@Validated功能分组使用)
*/
public
interface
Insert
{
}
/**
* 更新使用(配合spring的@Validated功能分组使用)
*/
public
interface
Update
{
}
/**
* 删除使用(配合spring的@Validated功能分组使用)
*/
public
interface
Delete
{
}
/**
* 属性必须有这两个分组的才验证(配合spring的@Validated功能分组使用)
*/
@GroupSequence
({
Insert
.
class
,
Update
.
class
,
Delete
.
class
})
public
interface
All
{
}
/**
* pea Api 组织架构同步事件
*/
public
interface
PeaTree
{
}
/**
* pea Api 组织人员同步事件
*/
public
interface
PeaOrganization
{
}
}
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment