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 cf6f6c13
authored
Aug 09, 2023
by
丁伟峰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
虚拟指派,如果后面还有一个工单,可能会影响下一个工单的在途时间和里程,修改原有工单
1 parent
ce9530f3
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
21 deletions
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderCreateServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderCreateServiceImpl.java
View file @
cf6f6c1
...
@@ -175,7 +175,7 @@ public class OrderCreateServiceImpl implements OrderCreateService {
...
@@ -175,7 +175,7 @@ public class OrderCreateServiceImpl implements OrderCreateService {
if
(
teamIds
==
null
||
teamIds
.
isEmpty
())
{
if
(
teamIds
==
null
||
teamIds
.
isEmpty
())
{
return
Result
.
failed
(
"没有找到匹配的工作队"
);
return
Result
.
failed
(
"没有找到匹配的工作队"
);
}
}
// 选择一个工作队(理论上,只有1个合适的工作队),然后遍历下面的
各个技术员,从符合技能的技术员中,汇总相关的容量
// 选择一个工作队(理论上,只有1个合适的工作队),然后遍历下面的
符合技能的技术员
// 遍历工作队,每个工作队
// 遍历工作队,每个工作队
String
teamId
=
teamIds
.
get
(
0
);
String
teamId
=
teamIds
.
get
(
0
);
OrgTeamEntity
teamEntity
=
orgTeamDao
.
getByTeamId
(
teamId
);
OrgTeamEntity
teamEntity
=
orgTeamDao
.
getByTeamId
(
teamId
);
...
@@ -199,19 +199,18 @@ public class OrderCreateServiceImpl implements OrderCreateService {
...
@@ -199,19 +199,18 @@ public class OrderCreateServiceImpl implements OrderCreateService {
return
Result
.
success
(
null
);
return
Result
.
success
(
null
);
}
}
private
void
tryVirtualAppointment
(
OrderInfoEntity
entity
,
String
source
,
String
teamId
)
{
private
void
tryVirtualAppointment
(
OrderInfoEntity
thisOrderEntity
,
String
source
,
String
teamId
)
{
// todo 等王力那边修改后,这边再进行整合,需要返回当前工单、后面的一个工单的数据情况,这边再进行修改
try
{
try
{
List
<
String
>
engineerCodes
=
engineerUtils
.
getEngineersByLevel
(
"team"
,
teamId
).
stream
()
List
<
String
>
engineerCodes
=
engineerUtils
.
getEngineersByLevel
(
"team"
,
teamId
).
stream
()
.
map
(
EngineerInfoEntity:
:
getEngineerCode
).
collect
(
Collectors
.
toList
());
.
map
(
EngineerInfoEntity:
:
getEngineerCode
).
collect
(
Collectors
.
toList
());
List
<
String
>
matchEngineerCodes
=
engineerSkillDao
.
findAllByBrandAndTypeAndSkillAndEngineerCodeIn
(
entity
.
getBrand
(),
entity
.
getType
(),
e
ntity
.
getSkill
(),
engineerCodes
).
stream
()
List
<
String
>
matchEngineerCodes
=
engineerSkillDao
.
findAllByBrandAndTypeAndSkillAndEngineerCodeIn
(
thisOrderEntity
.
getBrand
(),
thisOrderEntity
.
getType
(),
thisOrderE
ntity
.
getSkill
(),
engineerCodes
).
stream
()
.
map
(
EngineerSkillEntity:
:
getEngineerCode
).
collect
(
Collectors
.
toList
());
.
map
(
EngineerSkillEntity:
:
getEngineerCode
).
collect
(
Collectors
.
toList
());
String
assignEngineerCode
=
null
;
String
assignEngineerCode
=
null
;
OrderAssignCheck
.
Result
checkResult
=
null
;
OrderAssignCheck
.
Result
checkResult
=
null
;
log
.
info
(
"=== 准备调用指派,候选的技术员列表: {}"
,
matchEngineerCodes
);
log
.
info
(
"=== 准备调用指派,候选的技术员列表: {}"
,
matchEngineerCodes
);
for
(
String
engineerCode
:
matchEngineerCodes
)
{
for
(
String
engineerCode
:
matchEngineerCodes
)
{
checkResult
=
orderAssignCheck
.
orderAssignCheck
(
entity
.
getOrderId
(),
e
ntity
.
getDt
(),
engineerCode
);
checkResult
=
orderAssignCheck
.
orderAssignCheck
(
thisOrderEntity
.
getOrderId
(),
thisOrderE
ntity
.
getDt
(),
engineerCode
);
log
.
info
(
"orderAssignCheck ===> orderId[{}]engineerCode[{}] ==> result[{}]"
,
e
ntity
.
getOrderId
(),
engineerCode
,
checkResult
);
log
.
info
(
"orderAssignCheck ===> orderId[{}]engineerCode[{}] ==> result[{}]"
,
thisOrderE
ntity
.
getOrderId
(),
engineerCode
,
checkResult
);
if
(
checkResult
.
getIndex
()
<
0
)
{
if
(
checkResult
.
getIndex
()
<
0
)
{
assignEngineerCode
=
engineerCode
;
assignEngineerCode
=
engineerCode
;
break
;
break
;
...
@@ -223,22 +222,33 @@ public class OrderCreateServiceImpl implements OrderCreateService {
...
@@ -223,22 +222,33 @@ public class OrderCreateServiceImpl implements OrderCreateService {
// 修改当前工单
// 修改当前工单
OrderAssignCheck
.
OrderNode
insertNode
=
checkResult
.
getCurOrderNode
();
OrderAssignCheck
.
OrderNode
insertNode
=
checkResult
.
getCurOrderNode
();
e
ntity
.
setEngineerCode
(
assignEngineerCode
);
thisOrderE
ntity
.
setEngineerCode
(
assignEngineerCode
);
EngineerInfoEntity
engineerInfo
=
engineerInfoDao
.
getByEngineerCode
(
assignEngineerCode
);
EngineerInfoEntity
engineerInfo
=
engineerInfoDao
.
getByEngineerCode
(
assignEngineerCode
);
entity
.
setEngineerName
(
engineerInfo
.
getName
());
thisOrderEntity
.
setEngineerName
(
engineerInfo
.
getName
());
entity
.
setEngineerPhone
(
engineerInfo
.
getPhone
());
thisOrderEntity
.
setEngineerPhone
(
engineerInfo
.
getPhone
());
entity
.
setAppointmentStatus
(
"PRE"
);
thisOrderEntity
.
setAppointmentStatus
(
"PRE"
);
entity
.
setDispatcher
(
"AUTO_NOW"
);
thisOrderEntity
.
setDispatcher
(
"AUTO_NOW"
);
entity
.
setPlanStartTime
(
insertNode
.
getPlanStartTime
());
thisOrderEntity
.
setPlanStartTime
(
insertNode
.
getPlanStartTime
());
entity
.
setPlanEndTime
(
insertNode
.
getPlanEndTime
());
thisOrderEntity
.
setPlanEndTime
(
insertNode
.
getPlanEndTime
());
entity
.
setArriveDistance
(
checkResult
.
getAdditionDistance
());
thisOrderEntity
.
setArriveDistance
(
checkResult
.
getAdditionDistance
());
entity
.
setArriveElapsed
(
checkResult
.
getAdditionElapsed
());
thisOrderEntity
.
setArriveElapsed
(
checkResult
.
getAdditionElapsed
());
orderInfoDao
.
save
(
entity
);
orderInfoDao
.
save
(
thisOrderEntity
);
// 如果影响到原有工单,修改原有工单
if
(
checkResult
.
getPostOrderNode
()
!=
null
)
{
// 如果后面还有一个工单,可能会影响下一个工单的在途时间和里程,修改原有工单
OrderAssignCheck
.
OrderNode
postNode
=
checkResult
.
getPostOrderNode
();
OrderInfoEntity
postOrderEntity
=
orderInfoDao
.
getByOrderId
(
checkResult
.
getPostOrderId
());
if
(
postOrderEntity
==
null
)
{
log
.
error
(
"受影响的原有工单信息不存在!orderId[{}]"
,
checkResult
.
getPostOrderId
());
// todo 可能需要抛出异常
}
else
{
postOrderEntity
.
setArriveDistance
(
postNode
.
getArriveDistance
());
postOrderEntity
.
setArriveElapsed
(
postNode
.
getArriveElapsed
());
orderInfoDao
.
save
(
postOrderEntity
);
}
}
// 登记
// 登记
commonService
.
addOrderEvent
(
entity
.
getOrderId
(),
e
ntity
.
getSubId
(),
source
,
"API"
,
"虚拟指派"
,
"虚拟指派"
,
""
);
commonService
.
addOrderEvent
(
thisOrderEntity
.
getOrderId
(),
thisOrderE
ntity
.
getSubId
(),
source
,
"API"
,
"虚拟指派"
,
"虚拟指派"
,
""
);
}
}
log
.
info
(
"==== 已经完成虚拟指派 ===="
);
log
.
info
(
"==== 已经完成虚拟指派 ===="
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -250,8 +260,8 @@ public class OrderCreateServiceImpl implements OrderCreateService {
...
@@ -250,8 +260,8 @@ public class OrderCreateServiceImpl implements OrderCreateService {
return
String
.
format
(
"%s_%s"
,
orderId
,
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
(),
"MMdd"
));
return
String
.
format
(
"%s_%s"
,
orderId
,
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
(),
"MMdd"
));
}
}
private
String
fixBrand
(
String
brand
){
private
String
fixBrand
(
String
brand
)
{
if
(!
brand
.
equals
(
"嘉格纳"
)){
if
(!
brand
.
equals
(
"嘉格纳"
))
{
return
"博世/西门子以及其他品牌"
;
return
"博世/西门子以及其他品牌"
;
}
else
{
}
else
{
return
brand
;
return
brand
;
...
...
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