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 a0ecc3f4
authored
May 08, 2023
by
wangli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增服务端列表实现
1 parent
0a6fc1ce
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
360 additions
and
0 deletions
project-order/src/main/java/com/alibaba/cloud/integration/order/config/MPConfig.java
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/OrderServiceListController.java
project-order/src/main/java/com/alibaba/cloud/integration/order/dao/OrderAppointmentDao.java
project-order/src/main/java/com/alibaba/cloud/integration/order/dao/OrderServiceDao.java
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/OrderServiceList.java
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/OrderServiceListReq.java
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/OrderServiceListResp.java
project-order/src/main/java/com/alibaba/cloud/integration/order/entity/OrderAppointment.java
project-order/src/main/java/com/alibaba/cloud/integration/order/entity/OrderService.java
project-order/src/main/java/com/alibaba/cloud/integration/order/service/OrderServiceList.java
project-order/src/main/java/com/alibaba/cloud/integration/order/service/impl/OrderServiceListImpl.java
project-order/src/main/java/com/alibaba/cloud/integration/order/config/MPConfig.java
0 → 100644
View file @
a0ecc3f
package
com
.
alibaba
.
cloud
.
integration
.
order
.
config
;
import
com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor
;
import
com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
@Configuration
public
class
MPConfig
{
@Bean
public
MybatisPlusInterceptor
mybatisPlusInterceptor
()
{
MybatisPlusInterceptor
interceptor
=
new
MybatisPlusInterceptor
();
interceptor
.
addInnerInterceptor
(
new
PaginationInnerInterceptor
());
return
interceptor
;
}
}
\ No newline at end of file
project-order/src/main/java/com/alibaba/cloud/integration/order/controller/OrderServiceListController.java
0 → 100644
View file @
a0ecc3f
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.dto.OrderServiceListReq
;
import
com.alibaba.cloud.integration.order.service.OrderServiceList
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author wangl@zjhuixinyun.com
*/
@RestController
public
class
OrderServiceListController
{
@Autowired
private
OrderServiceList
orderServiceList
;
@GetMapping
(
"/order/service/list"
)
public
Result
<?>
GetOrderServiceList
(
@RequestParam
OrderServiceListReq
req
)
{
Result
<?>
res
=
null
;
try
{
res
=
orderServiceList
.
GetOrderServiceList
(
req
);
}
catch
(
BusinessException
e
)
{
return
Result
.
failed
(
e
.
getMessage
());
}
return
res
;
}
}
project-order/src/main/java/com/alibaba/cloud/integration/order/dao/OrderAppointmentDao.java
0 → 100644
View file @
a0ecc3f
package
com
.
alibaba
.
cloud
.
integration
.
order
.
dao
;
import
com.alibaba.cloud.integration.order.entity.OrderAppointment
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
OrderAppointmentDao
extends
BaseMapper
<
OrderAppointment
>
{
}
project-order/src/main/java/com/alibaba/cloud/integration/order/dao/OrderServiceDao.java
0 → 100644
View file @
a0ecc3f
package
com
.
alibaba
.
cloud
.
integration
.
order
.
dao
;
import
com.alibaba.cloud.integration.order.entity.OrderService
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
OrderServiceDao
extends
BaseMapper
<
OrderService
>
{
}
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/OrderServiceList.java
0 → 100644
View file @
a0ecc3f
package
com
.
alibaba
.
cloud
.
integration
.
order
.
dto
;
import
lombok.Data
;
@Data
public
class
OrderServiceList
{
private
String
orderId
;
private
String
type
;
private
String
brand
;
private
String
skill
;
private
String
faultDescribe
;
private
String
name
;
private
String
phone
;
private
String
address
;
private
String
x
;
private
String
y
;
private
String
expectTimeBegin
;
private
String
expectTimeEnd
;
private
String
source
;
private
String
description
;
private
String
orgBranchName
;
private
Integer
engineerNum
;
private
String
engineerNames
;
private
String
appointmentTime
;
private
String
appointmentStatus
;
private
String
appointmentType
;
private
String
createTime
;
}
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/OrderServiceListReq.java
0 → 100644
View file @
a0ecc3f
package
com
.
alibaba
.
cloud
.
integration
.
order
.
dto
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
@Data
@EqualsAndHashCode
public
class
OrderServiceListReq
{
private
String
startDate
;
private
String
endDate
;
private
long
page
;
private
long
size
;
private
String
sort
;
private
String
appointmentType
;
private
String
appointmentStatus
;
private
String
type
;
private
String
brand
;
private
String
skill
;
}
\ No newline at end of file
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/OrderServiceListResp.java
0 → 100644
View file @
a0ecc3f
package
com
.
alibaba
.
cloud
.
integration
.
order
.
dto
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
OrderServiceListResp
{
private
long
total
;
private
long
pages
;
private
long
pageCurrent
;
private
long
pageSize
;
private
List
<
OrderServiceList
>
content
;
}
project-order/src/main/java/com/alibaba/cloud/integration/order/entity/OrderAppointment.java
0 → 100644
View file @
a0ecc3f
package
com
.
alibaba
.
cloud
.
integration
.
order
.
entity
;
import
lombok.Data
;
import
java.sql.Timestamp
;
@Data
public
class
OrderAppointment
{
private
Integer
id
;
private
String
orderId
;
private
String
suborderId
;
private
String
mainSub
;
private
Integer
engineer_id
;
private
String
engineerName
;
private
String
engineerPhone
;
private
String
engineerAge
;
private
String
engineerGroupId
;
private
String
engineerGroupName
;
private
String
isWorkshop
;
private
Timestamp
expectTime
;
private
Timestamp
actualTime
;
private
Timestamp
startTime
;
private
Timestamp
endTime
;
private
String
status
;
private
String
memo
;
private
Timestamp
createTime
;
private
Timestamp
updateTime
;
}
project-order/src/main/java/com/alibaba/cloud/integration/order/entity/OrderService.java
0 → 100644
View file @
a0ecc3f
package
com
.
alibaba
.
cloud
.
integration
.
order
.
entity
;
import
lombok.Data
;
import
java.sql.Timestamp
;
@Data
public
class
OrderService
{
private
Integer
id
;
private
String
orderId
;
private
String
name
;
private
String
phone
;
private
String
address
;
private
String
x
;
private
String
y
;
private
String
province
;
private
String
city
;
private
String
county
;
private
String
categoryId
;
private
String
brand
;
private
String
type
;
private
String
skill
;
private
String
applyNote
;
private
String
faultDescribe
;
private
Timestamp
expectTimeBegin
;
private
Timestamp
expectTimeEnd
;
private
String
expectTimeDesc
;
private
String
source
;
private
String
priority
;
private
String
areaId
;
private
String
orderTags
;
private
String
tags
;
private
String
status
;
private
String
statusAppointment
;
private
String
orgClusterId
;
private
String
orgClusterName
;
private
String
orgBranchId
;
private
String
orgBranchName
;
private
String
orgGroupId
;
private
String
orgGroupName
;
private
String
orgTeamId
;
private
String
orgTeamName
;
private
String
description
;
private
Timestamp
createTime
;
private
Timestamp
updateTime
;
}
project-order/src/main/java/com/alibaba/cloud/integration/order/service/OrderServiceList.java
0 → 100644
View file @
a0ecc3f
package
com
.
alibaba
.
cloud
.
integration
.
order
.
service
;
import
com.alibaba.cloud.integration.common.BusinessException
;
import
com.alibaba.cloud.integration.common.Result
;
import
com.alibaba.cloud.integration.order.dto.OrderServiceListReq
;
import
com.alibaba.cloud.integration.order.dto.OrderServiceListResp
;
public
interface
OrderServiceList
{
Result
<
OrderServiceListResp
>
GetOrderServiceList
(
OrderServiceListReq
req
)
throws
BusinessException
;
}
project-order/src/main/java/com/alibaba/cloud/integration/order/service/impl/OrderServiceListImpl.java
0 → 100644
View file @
a0ecc3f
package
com
.
alibaba
.
cloud
.
integration
.
order
.
service
.
impl
;
import
com.alibaba.cloud.integration.common.BusinessException
;
import
com.alibaba.cloud.integration.common.Result
;
import
com.alibaba.cloud.integration.order.dao.OrderAppointmentDao
;
import
com.alibaba.cloud.integration.order.dao.OrderServiceDao
;
import
com.alibaba.cloud.integration.order.dto.OrderServiceList
;
import
com.alibaba.cloud.integration.order.dto.OrderServiceListReq
;
import
com.alibaba.cloud.integration.order.dto.OrderServiceListResp
;
import
com.alibaba.cloud.integration.order.entity.OrderAppointment
;
import
com.alibaba.cloud.integration.order.entity.OrderService
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.apache.logging.log4j.util.Strings
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.sql.Timestamp
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
public
class
OrderServiceListImpl
{
@Autowired
private
OrderServiceDao
orderServiceDao
;
@Autowired
private
OrderAppointmentDao
orderAppointmentDao
;
@Transactional
public
Result
<
OrderServiceListResp
>
GetOrderServiceList
(
OrderServiceListReq
req
)
throws
BusinessException
{
//分页
IPage
<
OrderService
>
page
=
new
Page
(
req
.
getPage
(),
req
.
getSize
());
LambdaQueryWrapper
<
OrderService
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
ge
(
OrderService:
:
getExpectTimeBegin
,
this
.
GetTimestampFromDate
(
req
.
getStartDate
()));
//预约开始日期
lqw
.
le
(
OrderService:
:
getExpectTimeBegin
,
this
.
GetTimestampFromDate
(
req
.
getEndDate
()));
//预约结束日期
lqw
.
eq
(
Strings
.
isNotEmpty
(
req
.
getAppointmentStatus
()),
OrderService:
:
getStatusAppointment
,
req
.
getAppointmentStatus
());
//指派状态
lqw
.
eq
(
Strings
.
isNotEmpty
(
req
.
getType
()),
OrderService:
:
getType
,
req
.
getType
());
//设备类型
lqw
.
eq
(
Strings
.
isNotEmpty
(
req
.
getBrand
()),
OrderService:
:
getBrand
,
req
.
getBrand
());
//品牌
lqw
.
eq
(
Strings
.
isNotEmpty
(
req
.
getSkill
()),
OrderService:
:
getSkill
,
req
.
getSkill
());
//技能
// 查询工单表列表
orderServiceDao
.
selectPage
(
page
,
lqw
);
List
<
OrderService
>
records
=
page
.
getRecords
();
//获取工单订单号列表
List
<
String
>
orderIds
=
new
ArrayList
<>();
for
(
OrderService
r:
records
)
{
orderIds
.
add
(
r
.
getOrderId
());
}
// 获取指派订单列表
HashMap
<
String
,
List
<
OrderAppointment
>>
appointOrders
=
this
.
PackOrderAppointment
(
this
.
GetOrderAppointment
(
orderIds
));
List
<
OrderAppointment
>
appoint
;
List
<
OrderServiceList
>
content
=
new
ArrayList
<>();
for
(
OrderService
o:
records
)
{
OrderServiceList
record
=
new
OrderServiceList
();
appoint
=
appointOrders
.
getOrDefault
(
o
.
getOrderId
(),
List
.
of
());
record
.
setOrderId
(
o
.
getOrderId
());
record
.
setType
(
o
.
getType
());
record
.
setBrand
(
o
.
getBrand
());
record
.
setFaultDescribe
(
o
.
getFaultDescribe
());
record
.
setSkill
(
o
.
getSkill
());
record
.
setName
(
o
.
getName
());
record
.
setPhone
(
o
.
getPhone
());
record
.
setAddress
(
o
.
getAddress
());
record
.
setX
(
o
.
getX
());
record
.
setY
(
o
.
getY
());
record
.
setSource
(
o
.
getSource
());
record
.
setDescription
(
o
.
getDescription
());
record
.
setOrgBranchName
(
o
.
getOrgBranchName
());
record
.
setEngineerNum
(
this
.
getEngNum
(
appoint
));
//工程师数量
record
.
setEngineerNames
(
this
.
getEngNames
(
appoint
));
//工程师姓名列表
content
.
add
(
record
);
}
// 组装
OrderServiceListResp
res
=
new
OrderServiceListResp
();
res
.
setTotal
(
page
.
getTotal
());
res
.
setPages
(
page
.
getPages
());
res
.
setPageCurrent
(
page
.
getCurrent
());
res
.
setPageSize
(
page
.
getSize
());
res
.
setContent
(
content
);
return
Result
.
success
(
res
);
}
public
List
<
OrderAppointment
>
GetOrderAppointment
(
List
<
String
>
orderIds
)
{
// 获取指派单列表
LambdaQueryWrapper
<
OrderAppointment
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
in
(
OrderAppointment:
:
getOrderId
,
orderIds
);
return
orderAppointmentDao
.
selectList
(
lqw
);
}
public
HashMap
<
String
,
List
<
OrderAppointment
>>
PackOrderAppointment
(
List
<
OrderAppointment
>
orders
){
HashMap
<
String
,
List
<
OrderAppointment
>>
map
=
new
HashMap
<>();
// 根据订单ID-子订单降序排序
Comparator
<
OrderAppointment
>
byOrderIdDesc
=
Comparator
.
comparing
(
OrderAppointment:
:
getOrderId
,
String
.
CASE_INSENSITIVE_ORDER
).
reversed
();
Comparator
<
OrderAppointment
>
bySuborderIdDesc
=
Comparator
.
comparing
(
OrderAppointment:
:
getSuborderId
,
String
.
CASE_INSENSITIVE_ORDER
).
reversed
();
Comparator
<
OrderAppointment
>
comp
=
byOrderIdDesc
.
thenComparing
(
bySuborderIdDesc
);
List
<
OrderAppointment
>
results
=
orders
.
stream
().
sorted
(
comp
).
collect
(
Collectors
.
toList
());
Set
<
String
>
set
=
new
HashSet
<>();
for
(
OrderAppointment
o:
results
){
set
.
add
(
o
.
getOrderId
());
}
for
(
String
s:
set
){
map
.
put
(
s
,
new
ArrayList
<
OrderAppointment
>());
}
// 根据订单ID-子订单分组, 只取一组子订单分组
String
flagOrderId
=
""
;
String
flagSuborderId
=
""
;
for
(
OrderAppointment
o:
results
)
{
}
// TODO
return
map
;
}
private
Integer
getEngNum
(
List
<
OrderAppointment
>
orders
){
/*获取工程师数量*/
return
orders
.
size
();
}
private
String
getEngNames
(
List
<
OrderAppointment
>
orders
)
{
/*获取工程师姓名列表*/
List
<
String
>
names
=
new
ArrayList
<>();
for
(
OrderAppointment
o:
orders
)
{
names
.
add
(
o
.
getEngineerName
());
}
return
String
.
join
(
"、"
,
names
);
}
public
Timestamp
GetTimestampFromDate
(
String
date
){
return
Timestamp
.
valueOf
(
date
+
" 00:00:00"
);
}
}
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