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 cdad1494
authored
Nov 21, 2023
by
Ren Ping
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into develop
2 parents
a0eb8c12
f7380496
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
76 additions
and
6 deletions
project-order/src/main/java/com/dituhui/pea/order/enums/ServiceStatusEnum.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/DispatchServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/EngineerGanttServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderInfoServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/utils/OrderUtil.java
project-order/src/main/java/com/dituhui/pea/order/enums/ServiceStatusEnum.java
View file @
cdad149
...
...
@@ -8,7 +8,9 @@ public enum ServiceStatusEnum {
STARTED
(
"STARTED"
,
"已开始"
),
CANCELED
(
"CANCELED"
,
"已取消"
),
FINISHED
(
"FINISHED"
,
"已完成"
),
UNFINISHED
(
"UNFINISHED"
,
"已上门未完成"
);
//已超时
UNFINISHED
(
"UNFINISHED"
,
"已上门未完成"
),
DELAY
(
"DELAY"
,
"已延误"
);
private
final
String
code
;
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/DispatchServiceImpl.java
View file @
cdad149
...
...
@@ -20,6 +20,7 @@ import com.dituhui.pea.order.service.DispatchService;
import
com.dituhui.pea.order.service.EngineerCalendarService
;
import
com.dituhui.pea.order.service.OrderInfoService
;
import
com.dituhui.pea.order.utils.CommonUtil
;
import
com.dituhui.pea.order.utils.OrderUtil
;
import
com.google.common.collect.Sets
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
...
...
@@ -293,7 +294,7 @@ public class DispatchServiceImpl implements DispatchService {
item
.
setAppointmentType
(
o
.
getAppointmentMethod
());
item
.
setAppointmentStatus
(
o
.
getAppointmentStatus
());
item
.
setOrderStatus
(
o
.
getOrderStatus
());
// 订单状态
item
.
setServiceStatus
(
o
.
getServiceStatus
(
));
item
.
setServiceStatus
(
OrderUtil
.
handleServiceStatus
(
o
));
item
.
setOrderStatusDesc
(
OrderStatusEnum
.
valueOf
(
o
.
getOrderStatus
()).
getDescription
());
item
.
setCreateTime
(
TimeUtils
.
IsoLocalDateTime2String
(
o
.
getCreateTime
()));
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/EngineerGanttServiceImpl.java
View file @
cdad149
...
...
@@ -73,7 +73,7 @@ public class EngineerGanttServiceImpl implements EngineerGanttService {
EngineersGanttDTO
.
Slot
slot
=
new
EngineersGanttDTO
.
Slot
();
// todo 需要根据订单时间和状态,采用expectXXXX或者actualXXXX
slot
.
setOrderId
(
order
.
getOrderId
());
slot
.
setServiceStatus
(
order
.
getServiceStatus
(
));
slot
.
setServiceStatus
(
OrderUtil
.
handleServiceStatus
(
order
));
String
startServiceStr
=
null
;
if
(
checkOrderIsFinish
(
order
.
getServiceStatus
()))
{
slot
.
setBtime
(
ObjectUtil
.
isNull
(
order
.
getActualStartTime
())
?
null
:
getHourMinute
(
order
.
getActualStartTime
()));
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderInfoServiceImpl.java
View file @
cdad149
...
...
@@ -483,7 +483,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
// 没有单直接返回
if
(
CollectionUtils
.
isEmpty
(
engineerOrders
))
{
Result
handleLeaveTimeResult
=
handleLeaveTime
(
engineerLeaveTimeSlice
,
insertOrder
.
getExpectTimeBegin
(),
insertOrder
.
getExpectTimeEnd
(),
skillInfo
.
getTakeTime
(),
true
,
insertOrder
);
if
(!
handleLeaveTimeResult
.
getCode
().
equals
(
StatusCodeEnum
.
SUCCESS
))
{
if
(!
handleLeaveTimeResult
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getCode
()
))
{
return
Result
.
failed
(
insertOrder
);
}
LocalDateTime
planStartTime
=
(
LocalDateTime
)
handleLeaveTimeResult
.
getResult
();
...
...
@@ -513,7 +513,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
// 没有单直接返回
if
(
CollectionUtils
.
isEmpty
(
orderSegments
))
{
Result
handleLeaveTimeResult
=
handleLeaveTime
(
engineerLeaveTimeSlice
,
insertOrder
.
getExpectTimeBegin
(),
insertOrder
.
getExpectTimeEnd
(),
skillInfo
.
getTakeTime
(),
true
,
insertOrder
);
if
(!
handleLeaveTimeResult
.
getCode
().
equals
(
StatusCode
Enum
.
SUCCESS
))
{
if
(!
handleLeaveTimeResult
.
getCode
().
equals
(
Result
Enum
.
SUCCESS
))
{
return
Result
.
failed
(
insertOrder
);
}
LocalDateTime
planStartTime
=
(
LocalDateTime
)
handleLeaveTimeResult
.
getResult
();
...
...
@@ -586,6 +586,15 @@ public class OrderInfoServiceImpl implements OrderInfoService {
}
LocalDateTime
planStartTime
=
(
LocalDateTime
)
handleLeaveTimeResult
.
getResult
();
if
(
orderSegment
.
getEnd
().
plusMinutes
(
roadTime
).
compareTo
(
planStartTime
)
<=
0
)
{
//下一单为待插入订单且为最后一单直接返回
if
(
i
==
orderSegments
.
size
()
-
2
)
{
insertOrder
.
setTakeTime
(
skillInfo
.
getTakeTime
());
insertOrder
.
setPlanStartTime
(
planStartTime
);
insertOrder
.
setPlanEndTime
(
planStartTime
.
plusMinutes
(
skillInfo
.
getTakeTime
()));
insertOrder
.
setArriveElapsed
(
roadTime
);
insertOrder
.
setArriveDistance
(
BigDecimal
.
valueOf
(
distanceDTO
.
getDis
()
*
1000
).
intValue
());
return
Result
.
success
(
insertOrder
);
}
OrderInfoEntity
nestOrder
=
orderInfoDao
.
getByOrderId
(
nestOrderSegment
.
getOrderId
());
nestOrder
.
setArriveElapsed
(
roadTime
);
nestOrder
.
setArriveDistance
(
BigDecimal
.
valueOf
(
distanceDTO
.
getDis
()
*
1000
).
intValue
());
...
...
@@ -612,6 +621,10 @@ public class OrderInfoServiceImpl implements OrderInfoService {
nestOrder
.
setPlanStartTime
(
nestOrder
.
getPlanStartTime
().
plusMinutes
(
minutes
));
nestOrder
.
setPlanEndTime
(
nestOrder
.
getPlanEndTime
().
plusMinutes
(
minutes
));
orderInfoDao
.
save
(
nestOrder
);
//下一单为待插入订单且为最后一单直接返回
if
(
i
==
orderSegments
.
size
()
-
2
)
{
return
Result
.
success
(
insertOrder
);
}
moveTime
=
(
int
)
minutes
;
isMove
=
true
;
}
...
...
@@ -678,7 +691,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
return
Result
.
success
(
expectTimeBegin
);
}
// 请假时间内则顺延
if
(
expectTimeBegin
.
compareTo
(
occupyInfoDetail
.
getBeginTime
())
>=
0
||
expectTimeBegin
.
compareTo
(
occupyInfoDetail
.
getEndTime
())
<=
0
)
{
if
(
expectTimeBegin
.
compareTo
(
occupyInfoDetail
.
getBeginTime
())
>=
0
&&
expectTimeBegin
.
compareTo
(
occupyInfoDetail
.
getEndTime
())
<=
0
)
{
return
Result
.
success
(
occupyInfoDetail
.
getEndTime
());
}
if
(
expectTimeEnd
.
compareTo
(
occupyInfoDetail
.
getEndTime
().
plusMinutes
(
takeTime
))
>=
0
)
{
...
...
project-order/src/main/java/com/dituhui/pea/order/utils/OrderUtil.java
View file @
cdad149
package
com
.
dituhui
.
pea
.
order
.
utils
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.dituhui.pea.order.entity.OrderInfoEntity
;
import
com.dituhui.pea.order.enums.OrderPeaTagsEnum
;
import
com.dituhui.pea.order.enums.ServiceStatusEnum
;
import
org.apache.commons.lang3.StringUtils
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
...
...
@@ -40,6 +43,57 @@ public class OrderUtil {
/**
* 处理工单状态,主要处理以延迟和已超时
*
* @param order
* @return
*/
public
static
String
handleServiceStatus
(
OrderInfoEntity
order
)
{
if
(
isDelay
(
order
))
{
return
ServiceStatusEnum
.
DELAY
.
getCode
();
}
if
(
isOvertime
(
order
))
{
return
ServiceStatusEnum
.
UNFINISHED
.
getCode
();
}
return
order
.
getServiceStatus
();
}
/**
* 判断订单是否是延迟订单
*
* @param order
* @return
*/
public
static
Boolean
isDelay
(
OrderInfoEntity
order
)
{
if
(!
order
.
getServiceStatus
().
equals
(
ServiceStatusEnum
.
INIT
.
getCode
())
&&
!
order
.
getServiceStatus
().
equals
(
ServiceStatusEnum
.
CONTACTED
.
getCode
()))
{
return
false
;
}
if
(
order
.
getExpectTimeBegin
().
plusMinutes
(
10
).
isBefore
(
LocalDateTime
.
now
()))
{
return
true
;
}
return
false
;
}
/**
* 判断订单是否是延迟订单
*
* @param order
* @return
*/
public
static
Boolean
isOvertime
(
OrderInfoEntity
order
)
{
if
(!
order
.
getServiceStatus
().
equals
(
ServiceStatusEnum
.
STARTED
.
getCode
())
||
ObjectUtil
.
isNotNull
(
order
.
getActualEndTime
()))
{
return
false
;
}
if
(
order
.
getPlanEndTime
().
plusMinutes
(
10
).
isBefore
(
LocalDateTime
.
now
()))
{
return
true
;
}
return
false
;
}
/**
* 分单,超派,特殊时间等处理工单指派工程师,网点等数据
*
* @param order
...
...
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