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 552ebf92
authored
Jun 16, 2023
by
王力
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature_mvp616_wangl' into 'develop'
Feature mvp616 wangl See merge request !102
2 parents
2ce35f96
3ebc5005
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
157 additions
and
4 deletions
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/ScheduleEngineerOverviewResp.java
project-order/src/main/java/com/alibaba/cloud/integration/order/service/impl/ScheduleServiceImpl.java
project-order/src/main/java/com/alibaba/cloud/integration/order/dto/ScheduleEngineerOverviewResp.java
View file @
552ebf9
...
@@ -2,6 +2,46 @@ package com.alibaba.cloud.integration.order.dto;
...
@@ -2,6 +2,46 @@ package com.alibaba.cloud.integration.order.dto;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
@Data
@Data
public
class
ScheduleEngineerOverviewResp
{
public
class
ScheduleEngineerOverviewResp
{
private
String
title
;
private
String
engineerCode
;
private
String
startTime
;
private
String
endTime
;
private
List
<
Dynamic
>
dynamics
;
private
List
<
Timeline
>
timelines
;
private
List
<
Order
>
orders
;
@Data
public
static
class
Dynamic
{
private
String
label
;
private
String
value
;
}
@Data
public
static
class
Timeline
{
private
String
startTime
;
private
String
endTime
;
private
String
type
;
}
@Data
public
static
class
Order
{
private
String
orderId
;
private
String
location
;
private
String
type
;
private
String
skill
;
private
String
orderStatus
;
private
String
orderStatusName
;
private
Integer
distance
;
private
String
arriveTime
;
private
String
timeType
;
private
String
expectArriveDuration
;
private
String
arriveDuration
;
private
String
expectWorkDuration
;
private
String
workDuration
;
}
}
}
project-order/src/main/java/com/alibaba/cloud/integration/order/service/impl/ScheduleServiceImpl.java
View file @
552ebf9
package
com
.
alibaba
.
cloud
.
integration
.
order
.
service
.
impl
;
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.common.Result
;
import
com.alibaba.cloud.integration.order.dao.*
;
import
com.alibaba.cloud.integration.order.dao.*
;
import
com.alibaba.cloud.integration.order.dto.ScheduleEngineerOverviewResp
;
import
com.alibaba.cloud.integration.order.dto.ScheduleOverviewResp
;
import
com.alibaba.cloud.integration.order.dto.ScheduleOverviewResp
;
import
com.alibaba.cloud.integration.order.entity.*
;
import
com.alibaba.cloud.integration.order.entity.*
;
import
com.alibaba.cloud.integration.order.service.ScheduleService
;
import
com.alibaba.cloud.integration.order.service.ScheduleService
;
...
@@ -12,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -12,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -27,6 +30,9 @@ public class ScheduleServiceImpl implements ScheduleService {
...
@@ -27,6 +30,9 @@ public class ScheduleServiceImpl implements ScheduleService {
private
OrgTeamEngineerMPDao
orgTeamEngineerMPDao
;
private
OrgTeamEngineerMPDao
orgTeamEngineerMPDao
;
@Autowired
@Autowired
private
OrgGroupMPDao
orgGroupMPDao
;
@Autowired
private
OrderRequestMPDao
orderRequestMPDao
;
private
OrderRequestMPDao
orderRequestMPDao
;
@Autowired
@Autowired
...
@@ -56,7 +62,7 @@ public class ScheduleServiceImpl implements ScheduleService {
...
@@ -56,7 +62,7 @@ public class ScheduleServiceImpl implements ScheduleService {
team
.
setOrder
(
this
.
getTeamOrderSum
(
orders
));
team
.
setOrder
(
this
.
getTeamOrderSum
(
orders
));
List
<
ScheduleOverviewResp
.
Item
>
children
=
new
ArrayList
<>();
List
<
ScheduleOverviewResp
.
Item
>
children
=
new
ArrayList
<>();
if
(
orders
==
null
||
orders
.
isEmpty
())
{
if
(
orders
==
null
||
orders
.
isEmpty
())
{
team
.
setChildren
(
children
);
team
.
setChildren
(
children
);
teams
.
add
(
team
);
teams
.
add
(
team
);
continue
;
continue
;
...
@@ -119,8 +125,75 @@ public class ScheduleServiceImpl implements ScheduleService {
...
@@ -119,8 +125,75 @@ public class ScheduleServiceImpl implements ScheduleService {
}
}
@Override
@Override
public
Result
<?>
getScheduleEngineerOverview
(
String
date
,
String
engineerCode
)
{
public
Result
<?>
getScheduleEngineerOverview
(
String
date
,
String
engineerCode
)
throws
BusinessException
{
return
null
;
EngineerInfo
engineer
=
this
.
queryEngineerInfo
(
engineerCode
);
if
(
engineer
==
null
)
{
throw
new
BusinessException
(
"分销员不存在"
);
}
List
<
OrderAppointment
>
orderAppointments
=
this
.
queryOrderAppointmentsByEngineerCode
(
engineerCode
,
date
);
List
<
ScheduleEngineerOverviewResp
.
Timeline
>
timelines
=
new
ArrayList
<>();
for
(
OrderAppointment
o
:
orderAppointments
)
{
ScheduleEngineerOverviewResp
.
Timeline
item
=
new
ScheduleEngineerOverviewResp
.
Timeline
();
item
.
setStartTime
(
this
.
Timestamp2Datetime
(
o
.
getExpectStartTime
(),
"hh:mm"
));
item
.
setEndTime
(
this
.
Timestamp2Datetime
(
o
.
getExpectEndTime
(),
"hh:mm"
));
item
.
setType
(
o
.
getStatus
());
timelines
.
add
(
item
);
}
List
<
ScheduleEngineerOverviewResp
.
Dynamic
>
dynamics
=
new
ArrayList
<>();
dynamics
.
add
(
this
.
packDynamic
(
"姓名"
,
engineer
.
getName
()));
dynamics
.
add
(
this
.
packDynamic
(
"日期"
,
date
));
dynamics
.
add
(
this
.
packDynamic
(
"状态"
,
"上班"
));
dynamics
.
add
(
this
.
packDynamic
(
"待服务"
,
"5"
));
dynamics
.
add
(
this
.
packDynamic
(
"服务中"
,
"1"
));
dynamics
.
add
(
this
.
packDynamic
(
"已完成"
,
"2"
));
dynamics
.
add
(
this
.
packDynamic
(
"已取消"
,
"2"
));
dynamics
.
add
(
this
.
packDynamic
(
"已改约"
,
"3"
));
dynamics
.
add
(
this
.
packDynamic
(
"预计总耗时"
,
"6小时"
));
dynamics
.
add
(
this
.
packDynamic
(
"公里数"
,
"42公里"
));
dynamics
.
add
(
this
.
packDynamic
(
"工作时间"
,
"08:00-19:00"
));
dynamics
.
add
(
this
.
packDynamic
(
"交通工具"
,
"电动车"
));
List
<
String
>
orderIds
=
orderAppointments
.
stream
().
map
(
OrderAppointment:
:
getOrderId
).
collect
(
Collectors
.
toList
());
List
<
OrderRequest
>
orderRequests
=
this
.
queryOrderRequestByOrderIds
(
orderIds
);
List
<
ScheduleEngineerOverviewResp
.
Order
>
orders
=
new
ArrayList
<>();
for
(
OrderRequest
o
:
orderRequests
)
{
ScheduleEngineerOverviewResp
.
Order
item
=
new
ScheduleEngineerOverviewResp
.
Order
();
item
.
setOrderId
(
o
.
getOrderId
());
item
.
setLocation
(
String
.
format
(
"%s,%s"
,
o
.
getX
(),
o
.
getY
()));
item
.
setType
(
o
.
getType
());
item
.
setSkill
(
o
.
getSkill
());
item
.
setOrderStatus
(
o
.
getAppointmentStatus
());
item
.
setOrderStatusName
(
""
);
item
.
setDistance
(
3000
);
item
.
setArriveTime
(
""
);
item
.
setTimeType
(
""
);
item
.
setExpectArriveDuration
(
""
);
item
.
setArriveTime
(
""
);
item
.
setWorkDuration
(
""
);
item
.
setExpectWorkDuration
(
""
);
orders
.
add
(
item
);
}
String
groupName
=
""
;
OrgGroup
group
=
this
.
queryOrgGroupInfo
(
engineer
.
getGroupId
());
if
(
group
!=
null
)
{
groupName
=
group
.
getGroupName
();
}
ScheduleEngineerOverviewResp
res
=
new
ScheduleEngineerOverviewResp
();
res
.
setTitle
(
String
.
format
(
"%s_%s"
,
groupName
,
engineer
.
getName
()));
res
.
setEngineerCode
(
engineerCode
);
res
.
setStartTime
(
"08:00"
);
// TODO
res
.
setEndTime
(
"18:00"
);
res
.
setDynamics
(
dynamics
);
res
.
setTimelines
(
timelines
);
res
.
setOrders
(
orders
);
return
Result
.
success
(
res
);
}
}
private
IPage
<
OrgTeam
>
queryOrgTeams
(
long
page
,
long
size
,
String
levelType
,
List
<
String
>
levelIds
)
{
private
IPage
<
OrgTeam
>
queryOrgTeams
(
long
page
,
long
size
,
String
levelType
,
List
<
String
>
levelIds
)
{
...
@@ -154,10 +227,25 @@ public class ScheduleServiceImpl implements ScheduleService {
...
@@ -154,10 +227,25 @@ public class ScheduleServiceImpl implements ScheduleService {
return
orderRequestMPDao
.
selectList
(
lqw
);
return
orderRequestMPDao
.
selectList
(
lqw
);
}
}
private
List
<
OrderRequest
>
queryOrderRequestByOrderIds
(
List
<
String
>
orderIds
)
{
LambdaQueryWrapper
<
OrderRequest
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
in
(
OrderRequest:
:
getOrderId
,
orderIds
);
return
orderRequestMPDao
.
selectList
(
lqw
);
}
private
List
<
OrderAppointment
>
queryOrderAppointments
(
List
<
String
>
orderIds
,
String
date
)
{
private
List
<
OrderAppointment
>
queryOrderAppointments
(
List
<
String
>
orderIds
,
String
date
)
{
LambdaQueryWrapper
<
OrderAppointment
>
lqw
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
OrderAppointment
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
in
(
OrderAppointment:
:
getOrderId
,
orderIds
);
lqw
.
in
(
OrderAppointment:
:
getOrderId
,
orderIds
);
lqw
.
ge
(
OrderAppointment:
:
getExpectStartTime
,
this
.
getTimestampFromDate
(
date
,
"00:00:00"
));
lqw
.
ge
(
OrderAppointment:
:
getExpectStartTime
,
this
.
getTimestampFromDate
(
date
,
"00:00:00"
));
lqw
.
le
(
OrderAppointment:
:
getExpectEndTime
,
this
.
getTimestampFromDate
(
date
,
"23:59:59"
));
return
orderAppointmentMPDao
.
selectList
(
lqw
);
}
private
List
<
OrderAppointment
>
queryOrderAppointmentsByEngineerCode
(
String
engineerCode
,
String
date
)
{
LambdaQueryWrapper
<
OrderAppointment
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
in
(
OrderAppointment:
:
getEngineerCode
,
engineerCode
);
lqw
.
ge
(
OrderAppointment:
:
getExpectStartTime
,
this
.
getTimestampFromDate
(
date
,
"00:00:00"
));
lqw
.
le
(
OrderAppointment:
:
getExpectEndTime
,
this
.
getTimestampFromDate
(
date
,
"23:59:59"
));
return
orderAppointmentMPDao
.
selectList
(
lqw
);
return
orderAppointmentMPDao
.
selectList
(
lqw
);
}
}
...
@@ -167,6 +255,18 @@ public class ScheduleServiceImpl implements ScheduleService {
...
@@ -167,6 +255,18 @@ public class ScheduleServiceImpl implements ScheduleService {
return
engineerInfoMPDao
.
selectList
(
lqw
);
return
engineerInfoMPDao
.
selectList
(
lqw
);
}
}
private
EngineerInfo
queryEngineerInfo
(
String
engineerCode
)
{
LambdaQueryWrapper
<
EngineerInfo
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
eq
(
EngineerInfo:
:
getEngineerCode
,
engineerCode
);
return
engineerInfoMPDao
.
selectOne
(
lqw
);
}
private
OrgGroup
queryOrgGroupInfo
(
String
groupId
)
{
LambdaQueryWrapper
<
OrgGroup
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
eq
(
OrgGroup:
:
getGroupId
,
groupId
);
return
orgGroupMPDao
.
selectOne
(
lqw
);
}
private
ScheduleOverviewResp
.
OrderSum
getTeamOrderSum
(
List
<
OrderRequest
>
orders
)
{
private
ScheduleOverviewResp
.
OrderSum
getTeamOrderSum
(
List
<
OrderRequest
>
orders
)
{
ScheduleOverviewResp
.
OrderSum
s
=
new
ScheduleOverviewResp
.
OrderSum
();
ScheduleOverviewResp
.
OrderSum
s
=
new
ScheduleOverviewResp
.
OrderSum
();
...
@@ -182,7 +282,19 @@ public class ScheduleServiceImpl implements ScheduleService {
...
@@ -182,7 +282,19 @@ public class ScheduleServiceImpl implements ScheduleService {
return
s
;
return
s
;
}
}
public
Timestamp
getTimestampFromDate
(
String
date
,
String
t
)
{
private
ScheduleEngineerOverviewResp
.
Dynamic
packDynamic
(
String
label
,
String
value
)
{
ScheduleEngineerOverviewResp
.
Dynamic
item
=
new
ScheduleEngineerOverviewResp
.
Dynamic
();
item
.
setLabel
(
label
);
item
.
setValue
(
value
);
return
item
;
}
private
Timestamp
getTimestampFromDate
(
String
date
,
String
t
)
{
return
Timestamp
.
valueOf
(
date
+
" "
+
t
);
return
Timestamp
.
valueOf
(
date
+
" "
+
t
);
}
}
private
String
Timestamp2Datetime
(
Timestamp
t
,
String
pattern
)
{
DateTimeFormatter
df
=
DateTimeFormatter
.
ofPattern
(
pattern
);
return
df
.
format
(
t
.
toLocalDateTime
());
}
}
}
\ No newline at end of file
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