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 d7109111
authored
Jun 01, 2023
by
wangli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
1 parent
c817b6f7
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
118 additions
and
69 deletions
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/OrderServiceDetailController.java
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/OrderServiceDetailResp.java
project-order/src/main/java/com/alibaba/cloud/integration/order/service/OrderServiceDetail.java
project-order/src/main/java/com/alibaba/cloud/integration/order/service/impl/OrderServiceDetailImpl.java
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/OrderServiceDetailController.java
View file @
d710911
package
com
.
alibaba
.
cloud
.
integration
.
order
.
controller
;
import
com.alibaba.cloud.integration.common.BusinessException
;
import
com.alibaba.cloud.integration.common.Result
;
import
com.alibaba.cloud.integration.order.service.OrderServiceDetail
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -15,6 +16,39 @@ public class OrderServiceDetailController {
@GetMapping
(
"/order/service/detail"
)
public
Result
<?>
GetOrderServiceDetail
(
@RequestParam
String
orderId
)
{
return
orderServiceDetail
.
GetOrderServiceDetail
(
orderId
);
// 服务单详情
Result
<?>
res
=
null
;
try
{
res
=
orderServiceDetail
.
getOrderServiceDetail
(
orderId
);
}
catch
(
BusinessException
e
)
{
Result
.
failed
(
e
.
getMessage
());
}
return
res
;
}
@GetMapping
(
"/order/service/dynamics"
)
public
Result
<?>
getOrderServiceDynamicController
(
@RequestParam
String
orderId
){
//服务单动态
Result
<?>
res
=
null
;
try
{
res
=
orderServiceDetail
.
getOrderServiceDynamics
(
orderId
);
}
catch
(
BusinessException
e
)
{
Result
.
failed
(
e
.
getMessage
());
}
return
res
;
}
@GetMapping
(
"/order/appointment/list"
)
public
Result
<?>
getOrderAppointmentList
(
@RequestParam
String
orderId
)
{
//工单预约单列表
Result
<?>
res
=
null
;
try
{
res
=
orderServiceDetail
.
getOrderAppointmentList
(
orderId
);
}
catch
(
BusinessException
e
)
{
return
Result
.
failed
(
e
.
getMessage
());
}
return
res
;
}
}
\ No newline at end of file
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/OrderServiceDetailResp.java
View file @
d710911
...
...
@@ -11,14 +11,6 @@ public class OrderServiceDetailResp {
private
String
statusDesc
;
private
String
risk
;
private
String
riskDesc
;
private
String
location
;
private
List
<
KV
>
orderServiceItems
;
private
List
<
OrderAppointment
>
orderAppointments
;
@Data
public
static
class
OrderAppointment
{
private
String
title
;
private
String
expectTime
;
private
List
<
List
<
KV
>>
engineers
;
private
List
<
KV
>
timelines
;
}
}
project-order/src/main/java/com/alibaba/cloud/integration/order/service/OrderServiceDetail.java
View file @
d710911
...
...
@@ -3,5 +3,9 @@ package com.alibaba.cloud.integration.order.service;
import
com.alibaba.cloud.integration.common.Result
;
public
interface
OrderServiceDetail
{
Result
<?>
GetOrderServiceDetail
(
String
orderId
);
Result
<?>
getOrderServiceDetail
(
String
orderId
);
Result
<?>
getOrderServiceDynamics
(
String
orderId
);
Result
<?>
getOrderAppointmentList
(
String
orderId
);
}
project-order/src/main/java/com/alibaba/cloud/integration/order/service/impl/OrderServiceDetailImpl.java
View file @
d710911
...
...
@@ -3,12 +3,9 @@ package com.alibaba.cloud.integration.order.service.impl;
import
com.alibaba.cloud.integration.common.Result
;
import
com.alibaba.cloud.integration.order.dao.*
;
import
com.alibaba.cloud.integration.order.dto.KV
;
import
com.alibaba.cloud.integration.order.dto.OrderAppointmentListResp
;
import
com.alibaba.cloud.integration.order.dto.OrderServiceDetailResp
;
import
com.alibaba.cloud.integration.order.entity.OrderRequest
;
import
com.alibaba.cloud.integration.order.entity.OrderAppointment
;
import
com.alibaba.cloud.integration.order.entity.EngineerInfo
;
import
com.alibaba.cloud.integration.order.entity.EngineerSkill
;
import
com.alibaba.cloud.integration.order.entity.OrderTimeline
;
import
com.alibaba.cloud.integration.order.entity.*
;
import
com.alibaba.cloud.integration.order.service.OrderServiceDetail
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -38,15 +35,36 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
@Transactional
@Override
public
Result
<?>
G
etOrderServiceDetail
(
String
orderId
)
{
public
Result
<?>
g
etOrderServiceDetail
(
String
orderId
)
{
// 查询订单详情
OrderRequest
detail
=
this
.
GetOrderDetail
(
orderId
);
OrderRequest
order
=
this
.
queryOrderDetail
(
orderId
);
// 查询指派列表
List
<
OrderServiceDetailResp
.
OrderAppointment
>
items
=
new
ArrayList
<>();
List
<
KV
>
items
=
this
.
packOrderDetail
(
order
);
List
<
OrderAppointment
>
appoints
=
this
.
GetOrderAppointments
(
orderId
);
OrderServiceDetailResp
res
=
new
OrderServiceDetailResp
();
res
.
setOrderId
(
orderId
);
res
.
setLocation
(
""
);
res
.
setRisk
(
""
);
res
.
setStatusDesc
(
""
);
res
.
setStatus
(
""
);
res
.
setOrderServiceItems
(
items
);
return
Result
.
success
(
res
);
}
@Transactional
@Override
public
Result
<?>
getOrderServiceDynamics
(
String
orderId
)
{
return
null
;
}
@Transactional
@Override
public
Result
<?>
getOrderAppointmentList
(
String
orderId
)
{
List
<
OrderAppointmentListResp
.
OrderAppointment
>
items
=
new
ArrayList
<>();
// 查询预约单列表
List
<
OrderAppointment
>
appoints
=
this
.
queryOrderAppointments
(
orderId
);
// 工程师ID列表
List
<
String
>
egCodes
=
new
ArrayList
<>();
...
...
@@ -55,13 +73,13 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
}
// 获取工程师基础信息列表
HashMap
<
String
,
EngineerInfo
>
egInfo
=
this
.
G
etEngineerInfos
(
egCodes
);
HashMap
<
String
,
EngineerInfo
>
egInfo
=
this
.
g
etEngineerInfos
(
egCodes
);
// 获取工程师技能列表
HashMap
<
String
,
EngineerSkill
>
egSkill
=
this
.
G
etEngineerSkills
(
egCodes
);
HashMap
<
String
,
EngineerSkill
>
egSkill
=
this
.
g
etEngineerSkills
(
egCodes
);
// 获取订单timeline
Map
<
String
,
List
<
OrderTimeline
>>
timelines
=
this
.
G
etOrderTimelines
(
orderId
);
Map
<
String
,
List
<
OrderTimeline
>>
timelines
=
this
.
g
etOrderTimelines
(
orderId
);
// 对指派单列表按照subOrderId降序排序, 获取排序的subOrderId列表, 然后根据subOrderId分组
Comparator
<
OrderAppointment
>
sbDesc
=
Comparator
.
comparing
(
OrderAppointment:
:
getSuborderId
,
String
.
CASE_INSENSITIVE_ORDER
).
reversed
();
...
...
@@ -80,18 +98,18 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
List
<
OrderAppointment
>
orders
=
appointOrders
.
get
(
subOrderId
);
OrderAppointment
order
=
orders
.
get
(
0
);
// 第一个订单
Order
ServiceDetailResp
.
OrderAppointment
op
=
new
OrderServiceDetail
Resp
.
OrderAppointment
();
Order
AppointmentListResp
.
OrderAppointment
op
=
new
OrderAppointmentList
Resp
.
OrderAppointment
();
// 获取工程师列表信息
List
<
List
<
KV
>>
egInfos
=
new
ArrayList
<>();
for
(
OrderAppointment
o:
orders
)
{
String
egCode
=
o
.
getEngineerCode
();
egInfos
.
add
(
this
.
P
ackEngineerInfos
(
egInfo
.
get
(
egCode
),
egSkill
.
get
(
egCode
)));
egInfos
.
add
(
this
.
p
ackEngineerInfos
(
egInfo
.
get
(
egCode
),
egSkill
.
get
(
egCode
)));
}
op
.
setEngineers
(
egInfos
);
//获取timeline信息
op
.
setTimelines
(
this
.
P
ackOrderTimeline
(
timelines
.
get
(
subOrderId
)));
op
.
setTimelines
(
this
.
p
ackOrderTimeline
(
timelines
.
get
(
subOrderId
)));
op
.
setTitle
(
order
.
getSuborderId
());
op
.
setExpectTime
(
order
.
getExpectTime
().
toString
());
...
...
@@ -99,29 +117,29 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
}
// 返回结果
Order
ServiceDetailResp
res
=
new
OrderServiceDetail
Resp
();
Order
AppointmentListResp
res
=
new
OrderAppointmentList
Resp
();
res
.
setOrderId
(
orderId
);
res
.
setStatus
(
detail
.
getStatus
());
res
.
setOrderServiceItems
(
this
.
PackOrderDetail
(
detail
));
res
.
setOrderAppointments
(
items
);
res
.
setOrders
(
items
);
return
Result
.
success
(
res
);
}
private
OrderRequest
Get
OrderDetail
(
String
orderId
)
{
private
OrderRequest
query
OrderDetail
(
String
orderId
)
{
// 获取服务单记录
LambdaQueryWrapper
<
OrderRequest
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
eq
(
OrderRequest:
:
getOrderId
,
orderId
);
return
orderRequestDao
.
selectOne
(
lqw
);
}
private
List
<
OrderAppointment
>
GetOrderAppointments
(
String
orderId
)
{
private
List
<
OrderAppointment
>
queryOrderAppointments
(
String
orderId
)
{
// 获取指派单记录列表
LambdaQueryWrapper
<
OrderAppointment
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
eq
(
OrderAppointment:
:
getOrderId
,
orderId
);
return
orderAppointmentDao
.
selectList
(
lqw
);
}
private
HashMap
<
String
,
EngineerInfo
>
G
etEngineerInfos
(
List
<
String
>
egCodes
){
private
HashMap
<
String
,
EngineerInfo
>
g
etEngineerInfos
(
List
<
String
>
egCodes
){
// 获取工程师信息列表
HashMap
<
String
,
EngineerInfo
>
map
=
new
HashMap
<>();
...
...
@@ -135,7 +153,7 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
return
map
;
}
private
HashMap
<
String
,
EngineerSkill
>
G
etEngineerSkills
(
List
<
String
>
egCodes
)
{
private
HashMap
<
String
,
EngineerSkill
>
g
etEngineerSkills
(
List
<
String
>
egCodes
)
{
// 获取工程师技能列表
HashMap
<
String
,
EngineerSkill
>
map
=
new
HashMap
<>();
...
...
@@ -150,8 +168,8 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
return
map
;
}
private
Map
<
String
,
List
<
OrderTimeline
>>
G
etOrderTimelines
(
String
orderId
)
{
HashMap
<
String
,
List
<
OrderTimeline
>>
map
=
new
HashMap
<>();
private
Map
<
String
,
List
<
OrderTimeline
>>
g
etOrderTimelines
(
String
orderId
)
{
// 获取订单时间线
LambdaQueryWrapper
<
OrderTimeline
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
eq
(
OrderTimeline:
:
getOrderId
,
orderId
);
...
...
@@ -167,22 +185,7 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
return
results
.
stream
().
collect
(
Collectors
.
groupingBy
(
OrderTimeline:
:
getSuborderId
));
}
private
List
<
KV
>
PackOrderDetail
(
OrderRequest
order
)
{
List
<
KV
>
items
=
new
ArrayList
<>();
items
.
add
(
this
.
PackOrderItem
(
"客户姓名:"
,
order
.
getName
()));
items
.
add
(
this
.
PackOrderItem
(
"标签:"
,
order
.
getTags
()));
items
.
add
(
this
.
PackOrderItem
(
"客户电话:"
,
order
.
getPhone
()));
items
.
add
(
this
.
PackOrderItem
(
"设备:"
,
order
.
getType
()));
items
.
add
(
this
.
PackOrderItem
(
"服务:"
,
order
.
getSkill
()));
items
.
add
(
this
.
PackOrderItem
(
"故障描述:"
,
order
.
getFaultDescribe
()));
items
.
add
(
this
.
PackOrderItem
(
"备注:"
,
order
.
getApplyNote
()));
items
.
add
(
this
.
PackOrderItem
(
"意向时间:"
,
""
));
items
.
add
(
this
.
PackOrderItem
(
"时间要求:"
,
order
.
getExpectTimeDesc
()));
items
.
add
(
this
.
PackOrderItem
(
"预约方式:"
,
order
.
getSource
()));
return
items
;
}
private
List
<
KV
>
PackEngineerInfos
(
EngineerInfo
eg
,
EngineerSkill
skill
)
{
private
List
<
KV
>
packEngineerInfos
(
EngineerInfo
eg
,
EngineerSkill
skill
)
{
// 获取工程师信息
String
kind
=
""
;
...
...
@@ -198,39 +201,54 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
age
=
eg
.
getBirth
();
}
List
<
KV
>
items
=
new
ArrayList
<>();
items
.
add
(
this
.
P
ackEngineer
(
"技术员:"
,
eg
.
getName
(),
"engineer"
));
items
.
add
(
this
.
P
ackEngineer
(
"小组:"
,
"老王组"
,
""
));
items
.
add
(
this
.
P
ackEngineer
(
"类型:"
,
kind
,
""
));
items
.
add
(
this
.
P
ackEngineer
(
"性别/年龄:"
,
eg
.
getGender
()+
"/"
+
age
,
""
));
items
.
add
(
this
.
P
ackEngineer
(
"手机号:"
,
eg
.
getPhone
(),
""
));
items
.
add
(
this
.
P
ackEngineer
(
"工号:"
,
eg
.
getEngineerCode
(),
""
));
items
.
add
(
this
.
P
ackEngineer
(
"技能:"
,
skill
.
getSkill
(),
""
));
items
.
add
(
this
.
p
ackEngineer
(
"技术员:"
,
eg
.
getName
(),
"engineer"
));
items
.
add
(
this
.
p
ackEngineer
(
"小组:"
,
"老王组"
,
""
));
items
.
add
(
this
.
p
ackEngineer
(
"类型:"
,
kind
,
""
));
items
.
add
(
this
.
p
ackEngineer
(
"性别/年龄:"
,
eg
.
getGender
()+
"/"
+
age
,
""
));
items
.
add
(
this
.
p
ackEngineer
(
"手机号:"
,
eg
.
getPhone
(),
""
));
items
.
add
(
this
.
p
ackEngineer
(
"工号:"
,
eg
.
getEngineerCode
(),
""
));
items
.
add
(
this
.
p
ackEngineer
(
"技能:"
,
skill
.
getSkill
(),
""
));
return
items
;
}
private
List
<
KV
>
PackOrderTimeline
(
List
<
OrderTimeline
>
timelines
)
{
private
List
<
KV
>
packOrderDetail
(
OrderRequest
order
)
{
List
<
KV
>
items
=
new
ArrayList
<>();
items
.
add
(
this
.
packOrderItem
(
"客户姓名:"
,
order
.
getName
()));
items
.
add
(
this
.
packOrderItem
(
"标签:"
,
order
.
getTags
()));
items
.
add
(
this
.
packOrderItem
(
"客户电话:"
,
order
.
getPhone
()));
items
.
add
(
this
.
packOrderItem
(
"设备:"
,
order
.
getType
()));
items
.
add
(
this
.
packOrderItem
(
"服务:"
,
order
.
getSkill
()));
items
.
add
(
this
.
packOrderItem
(
"故障描述:"
,
order
.
getFaultDescribe
()));
items
.
add
(
this
.
packOrderItem
(
"备注:"
,
order
.
getApplyNote
()));
items
.
add
(
this
.
packOrderItem
(
"意向时间:"
,
""
));
items
.
add
(
this
.
packOrderItem
(
"时间要求:"
,
order
.
getExpectTimeDesc
()));
items
.
add
(
this
.
packOrderItem
(
"预约方式:"
,
order
.
getSource
()));
return
items
;
}
private
List
<
KV
>
packOrderTimeline
(
List
<
OrderTimeline
>
timelines
)
{
List
<
KV
>
items
=
new
ArrayList
<>();
if
(
timelines
==
null
)
{
return
items
;
}
for
(
OrderTimeline
o:
timelines
)
{
items
.
add
(
this
.
P
ackTimeline
(
o
.
getEvent
(),
o
.
getHappen
(),
o
.
getStatus
().
toString
()));
items
.
add
(
this
.
p
ackTimeline
(
o
.
getEvent
(),
o
.
getHappen
(),
o
.
getStatus
().
toString
()));
}
return
items
;
}
private
KV
PackOrderItem
(
String
title
,
String
value
)
{
return
this
.
PackKV
(
title
,
value
,
null
,
null
,
null
);
}
private
KV
PackEngineer
(
String
title
,
String
value
,
Object
params
)
{
private
KV
packEngineer
(
String
title
,
String
value
,
Object
params
)
{
return
this
.
PackKV
(
title
,
value
,
null
,
null
,
params
);
}
private
KV
P
ackTimeline
(
String
title
,
String
value
,
String
status
)
{
private
KV
p
ackTimeline
(
String
title
,
String
value
,
String
status
)
{
return
this
.
PackKV
(
title
,
value
,
null
,
status
,
null
);
}
private
KV
packOrderItem
(
String
title
,
String
value
)
{
return
this
.
PackKV
(
title
,
value
,
null
,
null
,
null
);
}
private
KV
PackKV
(
String
title
,
String
value
,
String
type
,
String
status
,
Object
params
)
{
KV
item
=
new
KV
();
item
.
setTitle
(
title
);
...
...
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