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 c22ac384
authored
Jun 20, 2023
by
wangli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
接口修改
1 parent
e7a7316e
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
54 additions
and
11 deletions
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderAssignImpl.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderAssignImpl.java
View file @
c22ac38
package
com
.
dituhui
.
pea
.
order
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.dituhui.pea.common.BusinessException
;
import
com.dituhui.pea.common.Result
;
import
com.dituhui.pea.order.common.TimeUtils
;
import
com.dituhui.pea.order.dao.EngineerInfoMPDao
;
import
com.dituhui.pea.order.dao.OrderAppointmentMPDao
;
import
com.dituhui.pea.order.dao.OrderRequestMPDao
;
import
com.dituhui.pea.order.dto.LabelValueDTO
;
import
com.dituhui.pea.order.dto.OrderAssignRecommendResp
;
import
com.dituhui.pea.order.dto.TimeLineDTO
;
import
com.dituhui.pea.order.entity.EngineerInfo
;
import
com.dituhui.pea.order.entity.OrderAppointment
;
import
com.dituhui.pea.order.entity.OrderRequest
;
import
com.dituhui.pea.order.service.OrderAssign
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -20,10 +22,11 @@ import org.springframework.transaction.annotation.Transactional;
import
java.sql.Timestamp
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Service
public
class
OrderAssignImpl
implements
OrderAssign
{
...
...
@@ -61,10 +64,14 @@ public class OrderAssignImpl implements OrderAssign {
continue
;
}
List
<
String
>
orderIds
=
orderAppointments
.
stream
().
map
(
OrderAppointment:
:
getOrderId
).
collect
(
Collectors
.
toList
());
List
<
OrderRequest
>
orders
=
this
.
queryOrderRequestsByOrderIds
(
orderIds
);
HashMap
<
String
,
List
<
LabelValueDTO
>>
orderTips
=
this
.
packOrderTips
(
orders
);
OrderAssignRecommendResp
.
Engineer
item
=
new
OrderAssignRecommendResp
.
Engineer
();
OrderAssignRecommendResp
.
InsertInfo
insertInfo
=
new
OrderAssignRecommendResp
.
InsertInfo
();
insertInfo
.
setNumber
(
String
.
format
(
"%d/%d"
,
rr
.
index
+
1
,
orderAppointments
.
size
()
+
1
));
insertInfo
.
setNumber
(
String
.
format
(
"%d/%d"
,
rr
.
index
+
1
,
orderAppointments
.
size
()
+
1
));
insertInfo
.
setTimeDesc
(
"+30分钟"
);
insertInfo
.
setTimeDesc
(
"+4公里"
);
...
...
@@ -74,10 +81,10 @@ public class OrderAssignImpl implements OrderAssign {
item
.
setInsertInfo
(
insertInfo
);
item
.
setDistanceDesc
(
"15.5公里"
);
item
.
setTimeDesc
(
"520分钟"
);
item
.
setDesc
(
String
.
format
(
"将被插入在第%d单,受此影响原第%d单变化第%d单,第3单将增加5公里路程,比预计晚到30分钟,建议调整;"
,
rr
.
index
+
1
,
rr
.
index
+
1
,
rr
.
index
+
2
));
item
.
setDesc
(
String
.
format
(
"将被插入在第%d单,受此影响原第%d单变化第%d单,第3单将增加5公里路程,比预计晚到30分钟,建议调整;"
,
rr
.
index
+
1
,
rr
.
index
+
1
,
rr
.
index
+
2
));
item
.
setStartTime
(
"08:00"
);
item
.
setStartTime
(
"18:00"
);
item
.
setTimelines
(
this
.
packTimelines
(
orderAppointments
));
item
.
setTimelines
(
this
.
packTimelines
(
orderAppointments
,
orderTips
));
items
.
add
(
item
);
}
...
...
@@ -147,6 +154,12 @@ public class OrderAssignImpl implements OrderAssign {
return
orderRequestMPDao
.
selectOne
(
lqw
);
}
private
List
<
OrderRequest
>
queryOrderRequestsByOrderIds
(
List
<
String
>
orderIds
)
{
LambdaQueryWrapper
<
OrderRequest
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
in
(
OrderRequest:
:
getOrderId
,
orderIds
);
return
orderRequestMPDao
.
selectList
(
lqw
);
}
private
List
<
OrderAppointment
>
queryOrderAppointments
(
String
engineerCode
,
String
date
)
{
LambdaQueryWrapper
<
OrderAppointment
>
lqw
=
new
LambdaQueryWrapper
<>();
lqw
.
eq
(
OrderAppointment:
:
getEngineerCode
,
engineerCode
);
...
...
@@ -165,18 +178,48 @@ public class OrderAssignImpl implements OrderAssign {
return
engineerInfoMPDao
.
selectList
(
lqw
);
}
private
List
<
OrderAssignRecommendResp
.
Timeline
>
packTimelines
(
List
<
OrderAppointment
>
orders
)
{
List
<
OrderAssignRecommendResp
.
Timeline
>
items
=
new
ArrayList
<>();
for
(
OrderAppointment
order:
orders
){
OrderAssignRecommendResp
.
Timeline
item
=
new
OrderAssignRecommendResp
.
Timeline
();
private
List
<
TimeLineDTO
>
packTimelines
(
List
<
OrderAppointment
>
orders
,
HashMap
<
String
,
List
<
LabelValueDTO
>>
orderTips
)
{
List
<
LabelValueDTO
>
empty
=
new
ArrayList
<>();
List
<
TimeLineDTO
>
items
=
new
ArrayList
<>();
for
(
OrderAppointment
order
:
orders
)
{
TimeLineDTO
item
=
new
TimeLineDTO
();
item
.
setOrderId
(
order
.
getOrderId
());
item
.
setPreStatus
(
order
.
getPreStatus
());
item
.
setStartTime
(
TimeUtils
.
timestamp2DateTime
(
order
.
getExpectStartTime
(),
"HH:mm"
));
item
.
setEndTime
(
TimeUtils
.
timestamp2DateTime
(
order
.
getExpectEndTime
(),
"HH:mm"
));
item
.
setT
ype
(
order
.
getStatus
(
));
item
.
setT
ips
(
orderTips
.
getOrDefault
(
order
.
getOrderId
(),
empty
));
items
.
add
(
item
);
}
return
items
;
}
private
HashMap
<
String
,
List
<
LabelValueDTO
>>
packOrderTips
(
List
<
OrderRequest
>
orders
)
{
HashMap
<
String
,
List
<
LabelValueDTO
>>
map
=
new
HashMap
<>();
for
(
OrderRequest
order
:
orders
)
{
map
.
put
(
order
.
getOrderId
(),
this
.
packOrderTip
(
order
));
}
return
map
;
}
private
List
<
LabelValueDTO
>
packOrderTip
(
OrderRequest
order
)
{
// pack订单tips
List
<
LabelValueDTO
>
items
=
new
ArrayList
<>();
items
.
add
(
this
.
packLabelValue
(
"类型/品牌"
,
String
.
format
(
"%s %s %s"
,
order
.
getSkill
(),
order
.
getType
(),
order
.
getBrand
())));
items
.
add
(
this
.
packLabelValue
(
"电话/地址"
,
String
.
format
(
"%s %s\n%s"
,
order
.
getName
(),
order
.
getPhone
(),
order
.
getAddress
())));
items
.
add
(
this
.
packLabelValue
(
"备注"
,
order
.
getDescription
()));
items
.
add
(
this
.
packLabelValue
(
"标签"
,
order
.
getTags
()));
return
items
;
}
private
LabelValueDTO
packLabelValue
(
String
label
,
String
value
)
{
LabelValueDTO
item
=
new
LabelValueDTO
();
item
.
setLabel
(
label
);
item
.
setValue
(
value
);
return
item
;
}
}
@Data
...
...
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