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 99031334
authored
Oct 30, 2023
by
huangjinxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:改约相关
1 parent
e9d01980
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
448 additions
and
118 deletions
project-interface/src/main/java/com/dituhui/pea/enums/StatusCodeEnum.java
project-interface/src/main/java/com/dituhui/pea/util/DateUtil.java
project-order/src/main/java/com/dituhui/pea/order/controller/OrderAssignController.java
project-order/src/main/java/com/dituhui/pea/order/controller/PeaApiController.java
project-order/src/main/java/com/dituhui/pea/order/dao/OrgBranchDao.java
project-order/src/main/java/com/dituhui/pea/order/dto/BusinessTeamDetailDTO.java
project-order/src/main/java/com/dituhui/pea/order/dto/OrderReschedule.java
project-order/src/main/java/com/dituhui/pea/order/dto/param/OrderDTO.java
project-order/src/main/java/com/dituhui/pea/order/enums/BeanServiceFlowEnum.java
project-order/src/main/java/com/dituhui/pea/order/enums/OrderStatus.java
project-order/src/main/java/com/dituhui/pea/order/enums/OrderStatusEnum.java
project-order/src/main/java/com/dituhui/pea/order/enums/ServiceStatus.java → project-order/src/main/java/com/dituhui/pea/order/enums/ServiceStatusEnum.java
project-order/src/main/java/com/dituhui/pea/order/service/CommonService.java
project-order/src/main/java/com/dituhui/pea/order/service/FendanService.java
project-order/src/main/java/com/dituhui/pea/order/service/OrderInfoService.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/BusinessTeamServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/CommonServiceImpl.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/FendanServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderAssignImpl.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderCreateServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderInfoServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderServiceListServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/utils/CommonUtil.java
project-interface/src/main/java/com/dituhui/pea/enums/StatusCodeEnum.java
View file @
9903133
...
...
@@ -130,7 +130,9 @@ public enum StatusCodeEnum {
FENDAN_AREA_UNMATCHED
(
"023"
,
"分单接口没有查到配置区块"
,
false
),
FENDAN_ENGINEER_UNMATCHED
(
"023"
,
"分单接口没有查到配置工程师"
,
false
);
FENDAN_ENGINEER_UNMATCHED
(
"023"
,
"分单接口没有查到配置工程师"
,
false
),
FENDAN_IS_TRANSCEND
(
"024"
,
"分单超派"
,
false
);
/**
* 状态码
...
...
project-interface/src/main/java/com/dituhui/pea/util/DateUtil.java
View file @
9903133
...
...
@@ -5,6 +5,7 @@ import org.apache.commons.lang3.time.DateUtils;
import
org.springframework.util.Assert
;
import
java.text.MessageFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.Duration
;
import
java.time.Instant
;
import
java.time.LocalDate
;
...
...
@@ -16,10 +17,7 @@ import java.time.format.DateTimeFormatter;
import
java.time.temporal.Temporal
;
import
java.time.temporal.TemporalAmount
;
import
java.time.temporal.TemporalQuery
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.GregorianCalendar
;
import
java.util.TimeZone
;
import
java.util.*
;
/**
* 日期工具类
...
...
@@ -46,6 +44,11 @@ public class DateUtil {
* java 8 时间格式化
*/
public
static
final
DateTimeFormatter
DATETIME_FORMATTER
=
DateTimeFormatter
.
ofPattern
(
DateUtil
.
PATTERN_DATETIME
);
/**
* java 8 时间格式化
*/
public
static
final
SimpleDateFormat
SIMPLE_DATE_FORMAT
=
new
SimpleDateFormat
(
DateUtil
.
PATTERN_DATETIME
);
/**
* 日期 yyyy-MM-dd格式
*/
...
...
@@ -61,6 +64,15 @@ public class DateUtil {
*
* @return 当前日期
*/
public
static
String
datetimeFormatter
(
Date
date
)
{
return
SIMPLE_DATE_FORMAT
.
format
(
date
);
}
/**
* 获取当前日期
*
* @return 当前日期
*/
public
static
Date
now
()
{
return
new
Date
();
}
...
...
@@ -504,6 +516,58 @@ public class DateUtil {
public
static
Integer
getHour
(
Date
date
)
{
return
DateUtils
.
toCalendar
(
date
).
get
(
Calendar
.
HOUR_OF_DAY
);
}
/**
* date转localDate
*
* @param date
* @return
*/
public
static
LocalDate
getLocalDateByDate
(
Date
date
)
{
return
date
.
toInstant
().
atZone
(
ZoneId
.
systemDefault
()).
toLocalDate
();
}
/**
* 判断目标时间是否是今天
*/
public
static
boolean
judgeIsToday
(
Date
date
)
{
if
(
Objects
.
isNull
(
date
))
{
return
false
;
}
ZoneId
zoneId
=
ZoneId
.
systemDefault
();
LocalDate
inputDate
=
date
.
toInstant
().
atZone
(
zoneId
).
toLocalDate
();
LocalDate
today
=
LocalDate
.
now
();
return
inputDate
.
equals
(
today
);
}
/***
* @param localDateTime
* @return: boolean
* @Description: 根据LocalDateTime来判断是否是今天
*/
public
boolean
judgeTimeIsToday
(
LocalDateTime
localDateTime
)
{
LocalDateTime
startTime
=
LocalDate
.
now
().
atTime
(
0
,
0
,
0
);
LocalDateTime
endTime
=
LocalDate
.
now
().
atTime
(
23
,
59
,
59
);
//如果大于今天的开始日期,小于今天的结束日期
if
(
localDateTime
.
isAfter
(
startTime
)
&&
localDateTime
.
isBefore
(
endTime
))
{
return
true
;
}
return
false
;
}
/**
* 根据日期转换到指定时间
* 2023-10-30+2023-10-22 21:21:12 -> 2023-10-30 21:21:12
*
* @param localDateTime
* @return: boolean
* @Description: 根据LocalDateTime来判断是否是今天
*/
public
String
handleDate
(
String
date
,
LocalDateTime
localDateTime
)
{
String
format
=
localDateTime
.
format
(
TIME_FORMATTER
);
return
date
+
" "
+
format
;
}
//CHECKSTYLE:ON
}
project-order/src/main/java/com/dituhui/pea/order/controller/OrderAssignController.java
View file @
9903133
...
...
@@ -7,6 +7,7 @@ import com.dituhui.pea.order.dto.OrderAssignReq;
import
com.dituhui.pea.order.dto.OrderReschedule
;
import
com.dituhui.pea.order.dto.OrderRevokeAssign
;
import
com.dituhui.pea.order.service.OrderAssign
;
import
com.dituhui.pea.order.service.OrderInfoService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -19,6 +20,8 @@ public class OrderAssignController {
@Autowired
private
OrderAssign
orderAssign
;
@Autowired
private
OrderInfoService
orderInfoService
;
@GetMapping
(
"/order/assign/recommend/engineers"
)
public
Result
<?>
getOrderAssignRecommendEngineers
(
...
...
@@ -64,7 +67,7 @@ public class OrderAssignController {
// 订单改约
Result
<?>
res
=
null
;
try
{
res
=
order
Assign
.
orderReschedule
(
req
);
res
=
order
InfoService
.
orderReschedule
(
req
);
}
catch
(
BusinessException
e
)
{
return
Result
.
failed
(
e
.
getMessage
());
}
...
...
project-order/src/main/java/com/dituhui/pea/order/controller/PeaApiController.java
View file @
9903133
package
com
.
dituhui
.
pea
.
order
.
controller
;
import
com.dituhui.pea.common.Result
;
import
com.dituhui.pea.enums.StatusCodeEnum
;
import
com.dituhui.pea.order.common.jackson.DateUtil
;
import
com.dituhui.pea.order.common.jackson.JsonUtil
;
import
com.dituhui.pea.order.dto.param.*
;
import
com.dituhui.pea.order.enums.OrderStatusEnum
;
import
com.dituhui.pea.order.enums.ServiceStatusEnum
;
import
com.dituhui.pea.order.dao.TableCodeCheckDao
;
import
com.dituhui.pea.order.dto.param.BaseDistance
;
import
com.dituhui.pea.order.dto.param.BaseDistanceParam
;
...
...
@@ -18,9 +22,12 @@ import com.dituhui.pea.order.entity.TypeCodeCheckTableEntity;
import
com.dituhui.pea.order.service.CapacityQueryService
;
import
com.dituhui.pea.order.service.EngineerCalendarService
;
import
com.dituhui.pea.order.service.OrderCreateService
;
import
com.dituhui.pea.order.service.OrderInfoService
;
import
com.dituhui.pea.order.service.PeaOuterAPIService
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
...
@@ -54,8 +61,11 @@ public class PeaApiController {
private
final
EngineerCalendarService
engineerCalendarService
;
private
final
PeaOuterAPIService
peaOuterAPIService
;
@Autowired
private
OrderCreateService
orderCreateService
;
@Autowired
private
OrderInfoService
orderInfoService
;
private
final
CapacityQueryService
capacityQueryService
;
private
final
OrderCreateService
orderCreateService
;
private
final
TableCodeCheckDao
tableCodeCheckDao
;
...
...
@@ -228,8 +238,10 @@ public class PeaApiController {
*/
@PostMapping
(
"/order/stage/change"
)
public
Result
<?>
orderStageChanged
(
@Validated
@RequestBody
OrderDTO
.
StageChangeRequest
request
)
{
return
Result
.
success
(
null
);
if
(
StringUtils
.
isBlank
(
request
.
getOrderId
()))
{
return
Result
.
failed
(
StatusCodeEnum
.
COMMON_PARAM_EMPTY
);
}
return
orderInfoService
.
orderStageChanged
(
request
);
}
/**
...
...
project-order/src/main/java/com/dituhui/pea/order/dao/OrgBranchDao.java
View file @
9903133
...
...
@@ -16,4 +16,6 @@ public interface OrgBranchDao extends JpaRepository<OrgBranchEntity, Integer> {
OrgBranchEntity
getByBranchId
(
String
branchId
);
public
List
<
OrgBranchEntity
>
findByBranchIdIn
(
List
<
String
>
ids
);
public
OrgBranchEntity
findByCitycodeListLike
(
String
citycodeList
);
}
project-order/src/main/java/com/dituhui/pea/order/dto/BusinessTeamDetailDTO.java
View file @
9903133
...
...
@@ -23,6 +23,14 @@ public class BusinessTeamDetailDTO {
private
String
groupName
;
private
String
warehouseId
;
private
List
<
String
>
workdays
;
/**
* 下班时间
*/
private
String
workOff
;
/**
* 上班时间
*/
private
String
workOn
;
}
...
...
project-order/src/main/java/com/dituhui/pea/order/dto/OrderReschedule.java
View file @
9903133
package
com
.
dituhui
.
pea
.
order
.
dto
;
import
com.dituhui.pea.order.dto.param.Location
;
import
lombok.Data
;
@Data
...
...
@@ -13,4 +14,13 @@ public class OrderReschedule {
* 操作员
*/
private
String
operator
;
/**
* 地址坐标信息
*/
private
Location
happenLocation
;
/**
* 备注
*/
private
String
description
;
}
project-order/src/main/java/com/dituhui/pea/order/dto/param/OrderDTO.java
View file @
9903133
package
com
.
dituhui
.
pea
.
order
.
dto
.
param
;
import
com.dituhui.pea.util.DateUtil
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.EqualsAndHashCode
;
import
lombok.Getter
;
...
...
@@ -109,6 +108,7 @@ public class OrderDTO {
int
hour
=
DateUtils
.
toCalendar
(
date
).
get
(
Calendar
.
HOUR_OF_DAY
);
System
.
out
.
println
(
"当前小时为:"
+
hour
);
}
/**
* 预约描述时间(全天/上午/下午)
*/
...
...
@@ -136,7 +136,7 @@ public class OrderDTO {
/**
* 是否指定某个工程师/是否排除某个工程师 0:否 1:指定 2:排除 默认0
*/
private
int
isAppointEngineer
;
private
Integer
isAppointEngineer
;
/**
* 指定某个工程师/排除某个工程师 codes
...
...
@@ -185,9 +185,9 @@ public class OrderDTO {
/**
* 新预约时间, 特殊状态的时候填写:orderStatus为改约的时候填写
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss
"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss
"
,
timezone
=
"GMT+8"
)
private
Date
newReservationTime
;
// @DateTimeFormat(pattern = "yyyy-MM-dd
")
// @JsonFormat(pattern = "yyyy-MM-dd
", timezone = "GMT+8")
private
String
newReservationTime
;
/**
* 描述信息
...
...
project-order/src/main/java/com/dituhui/pea/order/enums/BeanServiceFlowEnum.java
0 → 100644
View file @
9903133
package
com
.
dituhui
.
pea
.
order
.
enums
;
import
org.apache.commons.lang3.StringUtils
;
/**
* bean 服务状态枚举
*/
public
enum
BeanServiceFlowEnum
{
//bean 已联系/准备服务/开始服务/结束服务等
//pea 服务状态:INIT-初始化/PENDING待服务/CONTACTED已排期/STARTED-已开始/FINISHED已完成/UNFINISHED-已上门未完成
PENDING
(
"已联系"
,
"PENDING"
),
CONTACTED
(
"准备服务"
,
"CONTACTED"
),
STARTED
(
"开始服务"
,
"STARTED"
),
FINISHED
(
"结束服务"
,
"FINISHED"
);
private
String
name
;
private
String
status
;
BeanServiceFlowEnum
(
String
name
,
String
status
)
{
this
.
name
=
name
;
this
.
status
=
status
;
}
public
String
getName
()
{
return
name
;
}
public
String
getStatus
()
{
return
status
;
}
public
static
String
getStatusByName
(
String
name
)
{
if
(
StringUtils
.
isBlank
(
name
))
{
return
null
;
}
for
(
BeanServiceFlowEnum
value
:
BeanServiceFlowEnum
.
values
())
{
if
(
name
.
equals
(
value
.
name
))
{
return
value
.
status
;
}
}
return
null
;
}
}
project-order/src/main/java/com/dituhui/pea/order/enums/OrderStatus.java
deleted
100644 → 0
View file @
e9d0198
package
com
.
dituhui
.
pea
.
order
.
enums
;
public
enum
OrderStatus
{
CREATE
(
"创建订单"
),
NORMAL
(
"正常"
),
CANCELED
(
"已取消"
),
RESCHEDULED
(
"已改约"
),
ASSIGN
(
"工单指派"
);
private
final
String
description
;
OrderStatus
(
String
description
){
this
.
description
=
description
;
};
public
String
getDescription
()
{
return
description
;
}
public
static
String
getEnumName
(
OrderStatus
orderStatus
){
return
orderStatus
.
toString
();
}
}
project-order/src/main/java/com/dituhui/pea/order/enums/OrderStatusEnum.java
0 → 100644
View file @
9903133
package
com
.
dituhui
.
pea
.
order
.
enums
;
public
enum
OrderStatusEnum
{
CREATE
(
"创建订单"
,
"CREATE"
),
NORMAL
(
"正常"
,
"NORMAL"
),
CANCELED
(
"已取消"
,
"CANCELED"
),
RESCHEDULED
(
"已改约"
,
"RESCHEDULED"
),
ASSIGN
(
"工单指派"
,
"ASSIGN"
);
private
final
String
description
;
private
final
String
code
;
OrderStatusEnum
(
String
description
,
String
code
)
{
this
.
description
=
description
;
this
.
code
=
code
;
}
public
String
getDescription
()
{
return
description
;
}
public
String
getCode
()
{
return
code
;
}
public
static
String
getEnumName
(
OrderStatusEnum
orderStatus
)
{
return
orderStatus
.
toString
();
}
}
project-order/src/main/java/com/dituhui/pea/order/enums/ServiceStatus.java
→
project-order/src/main/java/com/dituhui/pea/order/enums/ServiceStatus
Enum
.java
View file @
9903133
package
com
.
dituhui
.
pea
.
order
.
enums
;
public
enum
ServiceStatus
{
public
enum
ServiceStatus
Enum
{
// 服务状态:INIT-初始化/PENDING待服务/CONTACTED已排期/STARTED-已开始/FINISHED已完成/UNFINISHED-已上门未完成
INIT
(
"待服务"
),
PENDING
(
"待服务"
),
CONTACTED
(
"已排期"
),
STARTED
(
"已开始"
),
FINISHED
(
"已完成"
),
UNFINISHED
(
"已上门未完成"
);
INIT
(
"INIT"
,
"待服务"
),
PENDING
(
"PENDING"
,
"待服务"
),
CONTACTED
(
"CONTACTED"
,
"已排期"
),
STARTED
(
"STARTED"
,
"已开始"
),
FINISHED
(
"FINISHED"
,
"已完成"
),
UNFINISHED
(
"UNFINISHED"
,
"已上门未完成"
);
private
final
String
code
;
private
final
String
description
;
ServiceStatus
(
String
description
)
{
ServiceStatusEnum
(
String
code
,
String
description
)
{
this
.
code
=
code
;
this
.
description
=
description
;
}
...
...
@@ -19,7 +22,11 @@ public enum ServiceStatus {
return
description
;
}
public
static
String
getEnumName
(
ServiceStatus
serviceStatus
){
public
String
getCode
()
{
return
code
;
}
public
static
String
getEnumName
(
ServiceStatusEnum
serviceStatus
)
{
return
serviceStatus
.
toString
();
}
}
project-order/src/main/java/com/dituhui/pea/order/service/CommonService.java
View file @
9903133
...
...
@@ -2,11 +2,14 @@ package com.dituhui.pea.order.service;
import
com.dituhui.pea.order.dto.LabelValueDTO
;
import
java.time.LocalDateTime
;
import
java.util.List
;
public
interface
CommonService
{
void
addOrderEvent
(
String
orderId
,
String
subOrderId
,
String
source
,
String
operator
,
String
event
,
String
content
,
String
memo
);
void
addOrderEvent
(
String
orderId
,
String
subOrderId
,
String
source
,
String
operator
,
String
event
,
String
content
,
String
memo
,
LocalDateTime
createTime
);
List
<
LabelValueDTO
>
getSpecialParams
(
String
catalog
,
String
biztype
);
}
project-order/src/main/java/com/dituhui/pea/order/service/FendanService.java
View file @
9903133
...
...
@@ -7,6 +7,8 @@ import com.dituhui.pea.order.dto.param.OrgTeamInfo;
import
com.dituhui.pea.pojo.saas.req.AdministrativeDistrictReq
;
import
com.dituhui.pea.pojo.saas.resp.AdministrativeDistrictResp
;
import
java.time.LocalDate
;
import
java.time.LocalTime
;
import
java.util.List
;
public
interface
FendanService
{
...
...
@@ -27,5 +29,17 @@ public interface FendanService {
*/
Result
<
List
<
OrgGroupInfo
>>
fendanToGroup
(
OrderDTO
.
OrderCreateRequest
request
);
/**
* 分单到工作队
*
* @param request
* @param isDate 是否是日期,0 :false 1:是
* @param targetDate 日期
* @param startTime 开始时间
* @param endTime 结束时间
* @return
*/
Result
<
OrgTeamInfo
>
fendanToGroupCapacity
(
OrderDTO
.
OrderCreateRequest
request
,
Integer
isDate
,
LocalDate
targetDate
,
LocalTime
startTime
,
LocalTime
endTime
);
Result
<
AdministrativeDistrictResp
>
getAdminDistrict
(
AdministrativeDistrictReq
req
);
}
project-order/src/main/java/com/dituhui/pea/order/service/OrderInfoService.java
View file @
9903133
package
com
.
dituhui
.
pea
.
order
.
service
;
import
com.dituhui.pea.common.Result
;
import
com.dituhui.pea.order.dto.OrderReschedule
;
import
com.dituhui.pea.order.dto.param.OrderDTO
;
import
java.time.LocalDate
;
...
...
@@ -26,4 +28,20 @@ public interface OrderInfoService {
* @return 有则返回多条订单关联id,没有则不是一家多单
*/
Result
deleteMultipleOrders
(
String
multipleOrders
,
String
orderId
);
/**
* 工单变更处理
*
* @param request
* @return
*/
Result
<?>
orderStageChanged
(
OrderDTO
.
StageChangeRequest
request
);
/**
* 改约
*
* @param req
* @return
*/
Result
<?>
orderReschedule
(
OrderReschedule
req
);
}
project-order/src/main/java/com/dituhui/pea/order/service/impl/BusinessTeamServiceImpl.java
View file @
9903133
...
...
@@ -258,6 +258,8 @@ public class BusinessTeamServiceImpl implements BusinessTeamService {
.
setGroupId
(
g
.
getGroupId
())
.
setGroupName
(
g
.
getGroupName
())
.
setWarehouseId
(
teamEntity
.
getWarehouseId
())
.
setWorkOff
(
teamEntity
.
getWorkOff
())
.
setWorkOn
(
teamEntity
.
getWorkOn
())
.
setWorkdays
(
Arrays
.
asList
(
teamEntity
.
getWorkdays
().
split
(
","
)));
List
<
String
>
engineerCodes
=
orgTeamEngineerDao
.
findAllByTeamId
(
teamEntity
.
getTeamId
()).
stream
()
.
map
(
OrgTeamEngineerEntity:
:
getEngineerCode
).
collect
(
Collectors
.
toList
());
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/CommonServiceImpl.java
View file @
9903133
...
...
@@ -39,10 +39,10 @@ public class CommonServiceImpl implements CommonService {
public
void
addOrderEvent
(
String
orderId
,
String
subOrderId
,
String
source
,
String
operator
,
String
event
,
String
content
,
String
memo
)
{
OrderEventEntity
entity
=
new
OrderEventEntity
();
if
(
StringUtils
.
isBlank
(
source
)){
if
(
StringUtils
.
isBlank
(
source
))
{
source
=
"SYSTEM"
;
}
if
(
StringUtils
.
isBlank
(
operator
)){
if
(
StringUtils
.
isBlank
(
operator
))
{
operator
=
"PEA-WEB"
;
}
entity
.
setOrderId
(
orderId
).
setSuborderId
(
subOrderId
).
setSource
(
source
).
setOperator
(
operator
).
setOperatorName
(
operator
);
...
...
@@ -52,9 +52,24 @@ public class CommonServiceImpl implements CommonService {
}
@Override
public
void
addOrderEvent
(
String
orderId
,
String
subOrderId
,
String
source
,
String
operator
,
String
event
,
String
content
,
String
memo
,
LocalDateTime
createTime
)
{
OrderEventEntity
entity
=
new
OrderEventEntity
();
if
(
StringUtils
.
isBlank
(
source
))
{
source
=
"SYSTEM"
;
}
if
(
StringUtils
.
isBlank
(
operator
))
{
operator
=
"PEA-WEB"
;
}
entity
.
setOrderId
(
orderId
).
setSuborderId
(
subOrderId
).
setSource
(
source
).
setOperator
(
operator
).
setOperatorName
(
operator
);
entity
.
setEvent
(
event
).
setDescription
(
content
).
setMemo
(
memo
);
entity
.
setCreateTime
(
createTime
).
setUpdateTime
(
createTime
);
orderEventDao
.
save
(
entity
);
}
@Override
public
List
<
LabelValueDTO
>
getSpecialParams
(
String
catalog
,
String
biztype
)
{
List
<
PubParamsEntity
>
params
=
pubParamsDao
.
findByCatalogAndBiztype
(
catalog
,
biztype
);
return
params
.
stream
().
map
(
entity
->{
return
params
.
stream
().
map
(
entity
->
{
return
new
LabelValueDTO
()
.
setLabel
(
entity
.
getPlabel
())
.
setValue
(
entity
.
getPvalue
());
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/DispatchServiceImpl.java
View file @
9903133
...
...
@@ -12,7 +12,7 @@ import com.dituhui.pea.order.dto.DispatchOrderListResp;
import
com.dituhui.pea.order.entity.*
;
import
com.dituhui.pea.order.enums.OrderFlowEnum
;
import
com.dituhui.pea.order.enums.OrderGroupEnum
;
import
com.dituhui.pea.order.enums.OrderStatus
;
import
com.dituhui.pea.order.enums.OrderStatus
Enum
;
import
com.dituhui.pea.order.service.DispatchService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
...
...
@@ -242,7 +242,7 @@ public class DispatchServiceImpl implements DispatchService {
item
.
setAppointmentStatus
(
o
.
getAppointmentStatus
());
item
.
setOrderStatus
(
o
.
getOrderStatus
());
// 订单状态
item
.
setServiceStatus
(
o
.
getServiceStatus
());
item
.
setOrderStatusDesc
(
OrderStatus
.
valueOf
(
o
.
getOrderStatus
()).
getDescription
());
item
.
setOrderStatusDesc
(
OrderStatus
Enum
.
valueOf
(
o
.
getOrderStatus
()).
getDescription
());
item
.
setCreateTime
(
TimeUtils
.
IsoLocalDateTime2String
(
o
.
getCreateTime
()));
item
.
setMultipleOrders
(
o
.
getMultipleOrders
());
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/FendanServiceImpl.java
View file @
9903133
package
com
.
dituhui
.
pea
.
order
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.dituhui.pea.common.Result
;
import
com.dituhui.pea.enums.StatusCodeEnum
;
import
com.dituhui.pea.order.common.SaasUtils
;
import
com.dituhui.pea.order.dao.*
;
import
com.dituhui.pea.order.dto.param.CapacityQueryDTO
;
import
com.dituhui.pea.order.dto.param.OrderDTO
;
import
com.dituhui.pea.order.dto.param.OrgGroupInfo
;
import
com.dituhui.pea.order.dto.param.OrgTeamInfo
;
import
com.dituhui.pea.order.entity.*
;
import
com.dituhui.pea.order.service.CapacityQueryService
;
import
com.dituhui.pea.order.service.FendanService
;
import
com.dituhui.pea.pojo.fendan.FendanDTO
;
import
com.dituhui.pea.pojo.saas.req.AdministrativeDistrictReq
;
import
com.dituhui.pea.pojo.saas.resp.AdministrativeDistrictResp
;
import
com.dituhui.pea.util.DateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDate
;
import
java.time.LocalTime
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -37,6 +43,10 @@ public class FendanServiceImpl implements FendanService {
private
EngineerInfoDao
engineerInfoDao
;
@Autowired
private
OrgTeamEngineerDao
orgTeamEngineerDao
;
@Autowired
private
SkillInfoDao
skillInfoDao
;
@Autowired
private
CapacityQueryService
capacityQueryService
;
private
static
String
allLayerId
=
"ALL"
;
...
...
@@ -207,6 +217,96 @@ public class FendanServiceImpl implements FendanService {
return
Result
.
success
(
orgGroupTeamInfos
);
}
/**
* 派工到工作队
*
* @param request
* @return
*/
@Override
public
Result
<
OrgTeamInfo
>
fendanToGroupCapacity
(
OrderDTO
.
OrderCreateRequest
request
,
Integer
isDate
,
LocalDate
targetDate
,
LocalTime
startTime
,
LocalTime
endTime
)
{
List
<
OrgGroupInfo
>
orgGroupTeamInfos
=
new
ArrayList
<>();
//1:根据经纬度分单获取面
FendanDTO
fendanDTO
=
new
FendanDTO
();
fendanDTO
.
setXy
(
request
.
getLocation
().
getLongitude
()
+
","
+
request
.
getLocation
().
getLatitude
());
List
<
SaasUtils
.
BlockInfo
>
blockInfos
=
saasUtils
.
queryBlocksByXy
(
fendanDTO
);
if
(
blockInfos
.
isEmpty
())
{
return
Result
.
failed
(
StatusCodeEnum
.
FENDAN_AREA_UNMATCHED
);
}
//2:根据服务范围匹配工作队
String
peaBrand
=
fixBrand
(
request
.
getBrand
());
List
<
String
>
blockIds
=
blockInfos
.
stream
().
map
(
SaasUtils
.
BlockInfo
::
getBlockId
).
distinct
().
collect
(
Collectors
.
toList
());
List
<
MapBlockInfoEntity
>
mapBlockInBlockIdsList
=
new
ArrayList
<>();
//区划所在范围所有工作队
for
(
String
blockId
:
blockIds
)
{
List
<
MapBlockInfoEntity
>
mapBlockInfoEntities
=
mapBlockInfoDao
.
findByAreaIdsLike
(
blockId
);
mapBlockInBlockIdsList
.
addAll
(
mapBlockInfoEntities
);
}
//区划所在范围并分配到具体技能的工作队
List
<
MapBlockInfoEntity
>
mapBlockSkillList
=
mapBlockInfoDao
.
listTeamIdByBrandAndSkill
(
peaBrand
,
request
.
getProductType
(),
request
.
getServiceType
());
if
(
CollectionUtils
.
isEmpty
(
mapBlockSkillList
)
&&
CollectionUtils
.
isEmpty
(
mapBlockInBlockIdsList
))
{
return
Result
.
failed
(
StatusCodeEnum
.
FENDAN_TEAM_UNMATCHED
);
}
List
<
Integer
>
mapBlockAllList
=
mapBlockSkillList
.
stream
().
map
(
MapBlockInfoEntity:
:
getId
).
distinct
().
collect
(
Collectors
.
toList
());
//筛选漏选工作队(处理全技能图层)和查出多余图层
List
<
MapBlockInfoEntity
>
mapBlockInfoList
=
new
ArrayList
<>();
for
(
MapBlockInfoEntity
mapBlockInfoEntity
:
mapBlockInBlockIdsList
)
{
if
(
mapBlockAllList
.
contains
(
mapBlockInfoEntity
.
getId
()))
{
mapBlockInfoList
.
add
(
mapBlockInfoEntity
);
}
if
(
mapBlockInfoEntity
.
getLayerId
().
equals
(
allLayerId
))
{
mapBlockInfoList
.
add
(
mapBlockInfoEntity
);
}
}
if
(
CollectionUtils
.
isEmpty
(
mapBlockInfoList
))
{
return
Result
.
failed
(
StatusCodeEnum
.
FENDAN_TEAM_UNMATCHED
);
}
//3:按照派工顺序组装工作队数据
List
<
String
>
teamIdList
=
mapBlockInfoList
.
stream
().
map
(
MapBlockInfoEntity:
:
getTeamId
).
distinct
().
collect
(
Collectors
.
toList
());
List
<
OrgTeamEntity
>
teamList
=
orgTeamDao
.
findByTeamIdIn
(
teamIdList
);
Map
<
String
,
OrgTeamEntity
>
teamMap
=
teamList
.
stream
().
collect
(
Collectors
.
toMap
(
OrgTeamEntity:
:
getTeamId
,
e
->
e
));
List
<
OrgGroupEntity
>
orgGroupList
=
orgGroupDao
.
findByTeamIdIn
(
teamIdList
);
for
(
OrgGroupEntity
orgGroupEntity
:
orgGroupList
)
{
OrgGroupInfo
orgGroup
=
BeanUtil
.
copyProperties
(
orgGroupEntity
,
OrgGroupInfo
.
class
);
MapBlockInfoEntity
allLayer
=
null
;
for
(
int
i
=
0
;
i
<
mapBlockInfoList
.
size
();
i
++)
{
if
(!
mapBlockInfoList
.
get
(
i
).
getGroupId
().
equals
(
orgGroupEntity
.
getGroupId
()))
{
continue
;
}
OrgTeamEntity
orgTeamEntity
=
teamMap
.
get
(
mapBlockInfoList
.
get
(
i
).
getTeamId
());
//全技能数据放在最后
if
(
mapBlockInfoList
.
get
(
i
).
getLayerId
().
equals
(
allLayerId
))
{
allLayer
=
mapBlockInfoList
.
get
(
i
);
}
else
{
OrgTeamInfo
orgTeamInfo
=
BeanUtil
.
copyProperties
(
orgTeamEntity
,
OrgTeamInfo
.
class
);
orgGroup
.
setTeamInfos
(
Arrays
.
asList
(
orgTeamInfo
));
}
//最后处理全技能数据
if
(
i
==
mapBlockInfoList
.
size
()
-
1
&&
null
!=
allLayer
)
{
OrgTeamInfo
orgTeamInfoAll
=
BeanUtil
.
copyProperties
(
orgTeamEntity
,
OrgTeamInfo
.
class
);
orgGroup
.
setTeamInfos
(
Arrays
.
asList
(
orgTeamInfoAll
));
allLayer
=
null
;
}
}
orgGroupTeamInfos
.
add
(
orgGroup
);
}
CapacityQueryDTO
.
Service
service
=
new
CapacityQueryDTO
.
Service
();
service
.
setBrand
(
peaBrand
);
service
.
setProductType
(
request
.
getProductType
());
service
.
setServiceType
(
request
.
getServiceType
());
SkillInfoEntity
skillInfo
=
skillInfoDao
.
getByBrandAndTypeAndSkill
(
peaBrand
,
request
.
getProductType
(),
request
.
getServiceType
());
for
(
OrgGroupInfo
orgGroupInfo
:
orgGroupTeamInfos
)
{
CapacityQueryDTO
.
Segment
capacity
=
isDate
==
1
?
capacityQueryService
.
queryCapacityByTeam
(
orgGroupInfo
.
getTeamInfos
().
get
(
0
).
getTeamId
(),
service
,
targetDate
)
:
capacityQueryService
.
queryCapacityByTeam
(
orgGroupInfo
.
getTeamInfos
().
get
(
0
).
getTeamId
(),
service
,
targetDate
,
startTime
,
endTime
);
if
(
ObjectUtil
.
isNotNull
(
capacity
)
&&
capacity
.
getStatus
()
==
1
&&
capacity
.
getMaxDuration
()
>
skillInfo
.
getTakeTime
())
{
return
Result
.
success
(
orgGroupInfo
.
getTeamInfos
().
get
(
0
));
}
}
return
Result
.
failed
(
StatusCodeEnum
.
FENDAN_IS_TRANSCEND
);
}
@Override
public
Result
<
AdministrativeDistrictResp
>
getAdminDistrict
(
AdministrativeDistrictReq
req
)
{
AdministrativeDistrictResp
adminDistrict
=
saasUtils
.
getAdminDistrict
(
req
);
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderAssignImpl.java
View file @
9903133
package
com
.
dituhui
.
pea
.
order
.
service
.
impl
;
import
c
om.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
c
n.hutool.core.util.ObjectUtil
;
import
com.dituhui.pea.common.BusinessException
;
import
com.dituhui.pea.common.Result
;
import
com.dituhui.pea.common.ResultEnum
;
import
com.dituhui.pea.enums.StatusCodeEnum
;
import
com.dituhui.pea.order.common.OrderAssignCheck
;
import
com.dituhui.pea.order.common.TimeUtils
;
import
com.dituhui.pea.order.dao.*
;
import
com.dituhui.pea.order.dto.*
;
import
com.dituhui.pea.order.dto.param.CapacityQueryDTO
;
import
com.dituhui.pea.order.dto.param.Location
;
import
com.dituhui.pea.order.dto.param.OrderDTO
;
import
com.dituhui.pea.order.dto.param.OrgTeamInfo
;
import
com.dituhui.pea.order.entity.*
;
import
com.dituhui.pea.order.enums.OrderFlowEnum
;
import
com.dituhui.pea.order.enums.OrderStatus
;
import
com.dituhui.pea.order.service.CommonService
;
import
com.dituhui.pea.order.service.OrderAssign
;
import
com.dituhui.pea.order.service.OrderInfoService
;
import
com.dituhui.pea.order.enums.OrderStatusEnum
;
import
com.dituhui.pea.order.enums.ServiceStatusEnum
;
import
com.dituhui.pea.order.service.*
;
import
com.dituhui.pea.order.utils.CommonUtil
;
import
com.dituhui.pea.pojo.saas.req.AdministrativeDistrictReq
;
import
com.dituhui.pea.pojo.saas.resp.AdministrativeDistrictResp
;
import
com.dituhui.pea.util.DateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -22,12 +28,10 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.persistence.EntityManager
;
import
javax.persistence.Query
;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.criteria.Root
;
import
java.sql.Timestamp
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.*
;
...
...
@@ -67,6 +71,21 @@ public class OrderAssignImpl implements OrderAssign {
@Autowired
private
OrderInfoService
orderInfoService
;
@Autowired
private
OrgGroupDao
orgGroupDao
;
@Autowired
private
FendanService
fendanService
;
@Autowired
private
OrgBranchDao
orgBranchDao
;
@Autowired
private
MsgService
msgService
;
@Autowired
private
CapacityQueryService
capacityQueryService
;
@Transactional
@Override
public
Result
<?>
getOrderAssignRecommendEngineers
(
String
orderId
,
String
key
,
String
distance
,
String
recommend
)
{
...
...
@@ -171,7 +190,7 @@ public class OrderAssignImpl implements OrderAssign {
order
.
setEngineerCode
(
engineer
.
getEngineerCode
());
orderInfoDao
.
save
(
order
);
// 工单变更登记
commonService
.
addOrderEvent
(
req
.
getOrderId
(),
""
,
"PEA-WEB"
,
req
.
getOperator
(),
OrderStatus
.
ASSIGN
.
getDescription
(),
OrderStatus
.
ASSIGN
.
getDescription
(),
""
);
commonService
.
addOrderEvent
(
req
.
getOrderId
(),
""
,
"PEA-WEB"
,
req
.
getOperator
(),
OrderStatus
Enum
.
ASSIGN
.
getDescription
(),
OrderStatusEnum
.
ASSIGN
.
getDescription
(),
""
);
return
Result
.
success
(
null
);
}
...
...
@@ -198,53 +217,32 @@ public class OrderAssignImpl implements OrderAssign {
@Override
public
Result
<?>
orderReschedule
(
OrderReschedule
req
)
throws
BusinessException
{
// 工单改约接口(当前同放回工单池处理)
LocalDateTime
expectBegin
=
TimeUtils
.
IsoDateTime2LocalDateTime
(
req
.
getExpectBegin
());
LocalDateTime
expectEnd
=
TimeUtils
.
IsoDateTime2LocalDateTime
(
req
.
getExpectEnd
());
OrderInfoEntity
order
=
orderInfoDao
.
getByOrderId
(
req
.
getOrderId
());
if
(
order
==
null
)
{
throw
new
BusinessException
(
"订单不存在"
);
}
if
(
order
.
getDt
().
isEqual
(
expectBegin
.
toLocalDate
()))
{
throw
new
BusinessException
(
"改约日期不应与之前日期相同"
);
}
if
(
LocalDate
.
now
().
isAfter
(
expectBegin
.
toLocalDate
()))
{
throw
new
BusinessException
(
"改约日期不能小于今日"
);
return
null
;
}
LocalDate
originDate
=
order
.
getDt
();
// 改约前的日期
private
void
sendMsg
(
String
branchId
,
String
orderId
,
String
reservationTime
)
{
//发送通知分部消息
MsgDTO
msgDTO
=
new
MsgDTO
();
msgDTO
.
setBranchId
(
branchId
);
msgDTO
.
setType
(
0
);
msgDTO
.
setOrderIds
(
orderId
);
msgDTO
.
setTag
(
1
);
msgDTO
.
setContent
(
"有1条预约日期在"
+
reservationTime
+
"的工单需人工外理"
);
msgService
.
add
(
msgDTO
);
}
// 更新order_info表
// String sql = "UPDATE OrderInfo e SET e.appointmentStatus = 'INIT', e.dt=:dt, e.expectTimeBegin = :expectTimeBegin, e.expectTimeEnd = :expectTimeEnd, e.expectTimeDesc = :expectTimeDesc WHERE e.orderId = :orderId";
// Query query = entityManager.createQuery(sql);
// query.setParameter("dt", expectBegin.toLocalDate());
// query.setParameter("expectTimeBegin", expectBegin);
// query.setParameter("expectTimeEnd", expectEnd);
// query.setParameter("expectTimeDesc", expectDesc);
// query.setParameter("orderId", orderId);
// query.executeUpdate();
order
.
setAppointmentStatus
(
OrderFlowEnum
.
INIT
.
name
());
order
.
setDt
(
expectBegin
.
toLocalDate
());
order
.
setExpectTimeBegin
(
expectBegin
);
order
.
setExpectTimeEnd
(
expectEnd
);
order
.
setExpectTimeDesc
(
req
.
getExpectDesc
());
private
OrderInfoEntity
handleMultipleOrders
(
OrderInfoEntity
order
)
{
//处理一家多单逻辑
Result
<
String
>
deleteMultipleOrders
=
orderInfoService
.
deleteMultipleOrders
(
order
.
getMultipleOrders
(),
order
.
getAddressId
());
if
(!
deleteMultipleOrders
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getCode
()))
{
throw
new
BusinessException
(
"改约日期失败"
);
}
Result
<
String
>
multipleOrdersResult
=
orderInfoService
.
addMultipleOrders
(
expectBegin
.
toLocalDate
(),
order
.
getAddressId
(),
req
.
getOrderId
());
Result
<
String
>
multipleOrdersResult
=
orderInfoService
.
addMultipleOrders
(
order
.
getDt
(),
order
.
getAddressId
(),
order
.
getOrderId
());
if
(!
multipleOrdersResult
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getCode
()))
{
throw
new
BusinessException
(
"改约日期失败"
);
}
order
.
setMultipleOrders
(
multipleOrdersResult
.
getResult
());
orderInfoDao
.
save
(
order
);
// 操作员ID TODO-用户系统
// 登记事件
commonService
.
addOrderEvent
(
req
.
getOrderId
(),
""
,
"PEA-WEB"
,
req
.
getOperator
(),
OrderStatus
.
RESCHEDULED
.
getDescription
(),
OrderStatus
.
RESCHEDULED
.
getDescription
(),
""
);
return
Result
.
success
(
null
);
return
order
;
}
private
List
<
String
>
searchEngineerCodes
(
OrderInfoEntity
order
,
String
distance
,
String
key
,
String
recommend
)
{
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderCreateServiceImpl.java
View file @
9903133
...
...
@@ -16,11 +16,10 @@
package
com
.
dituhui
.
pea
.
order
.
service
.
impl
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.date.LocalDateTimeUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.dituhui.pea.common.Result
;
import
com.dituhui.pea.common.ResultEnum
;
import
com.dituhui.pea.enums.StatusCodeEnum
;
import
com.dituhui.pea.order.common.*
;
import
com.dituhui.pea.order.dao.*
;
import
com.dituhui.pea.order.dto.*
;
...
...
@@ -30,8 +29,9 @@ import com.dituhui.pea.order.dto.param.OrgGroupInfo;
import
com.dituhui.pea.order.dto.param.OrgTeamInfo
;
import
com.dituhui.pea.order.entity.*
;
import
com.dituhui.pea.order.enums.OrderFlowEnum
;
import
com.dituhui.pea.order.enums.OrderStatus
;
import
com.dituhui.pea.order.enums.OrderStatus
Enum
;
import
com.dituhui.pea.order.service.*
;
import
com.dituhui.pea.order.utils.CommonUtil
;
import
com.dituhui.pea.pojo.saas.req.AdministrativeDistrictReq
;
import
com.dituhui.pea.pojo.saas.resp.AdministrativeDistrictResp
;
import
com.dituhui.pea.util.DateUtil
;
...
...
@@ -39,7 +39,6 @@ import io.seata.core.context.RootContext;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.aspectj.weaver.ast.Var
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -47,14 +46,10 @@ import org.springframework.transaction.annotation.Transactional;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
import
static
com
.
dituhui
.
pea
.
order
.
config
.
OrderConfig
.
PATTERN_DATE
;
import
static
com
.
dituhui
.
pea
.
order
.
config
.
OrderConfig
.
PATTERN_DATETIME
;
@Slf4j
@Service
public
class
OrderCreateServiceImpl
implements
OrderCreateService
{
...
...
@@ -142,6 +137,9 @@ public class OrderCreateServiceImpl implements OrderCreateService {
String
peaBrand
=
fixBrand
(
req
.
getBrand
());
// location
Location
location
=
req
.
getLocation
();
//先处理时间,后面用
entity
.
setExpectTimeBegin
(
DateUtil
.
fromDate
(
req
.
getExpectBegin
()));
entity
.
setExpectTimeEnd
(
DateUtil
.
fromDate
(
req
.
getExpectEnd
()));
//获取省市区
AdministrativeDistrictReq
administrativeDistrictReq
=
new
AdministrativeDistrictReq
();
administrativeDistrictReq
.
setPoints
(
location
.
getLongitude
()
+
","
+
location
.
getLatitude
());
...
...
@@ -151,9 +149,11 @@ public class OrderCreateServiceImpl implements OrderCreateService {
entity
.
setCity
(
adminDistrict
.
getResult
().
getSubNames
().
getCity
());
entity
.
setCounty
(
adminDistrict
.
getResult
().
getSubNames
().
getCounty
());
}
Result
<
List
<
OrgGroupInfo
>>
fendanResult
=
fendanService
.
fendanToGroup
(
req
);
//todo 根据容量筛选出一个工作队,分单失败则存数据库然后发送消息
if
(!
fendanResult
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getCode
())
||
CollectionUtils
.
isEmpty
(
fendanResult
.
getResult
()))
{
Result
<
OrgTeamInfo
>
fendanResult
=
fendanService
.
fendanToGroupCapacity
(
req
,
2
,
entity
.
getExpectTimeBegin
().
toLocalDate
(),
entity
.
getExpectTimeBegin
().
toLocalTime
(),
entity
.
getExpectTimeEnd
().
toLocalTime
());
if
(!
fendanResult
.
getCode
().
equals
(
ResultEnum
.
SUCCESS
.
getCode
())
||
ObjectUtil
.
isNull
(
fendanResult
.
getResult
()))
{
if
(
fendanResult
.
getCode
().
equals
(
StatusCodeEnum
.
FENDAN_IS_TRANSCEND
.
getCode
()))
{
entity
.
setTranscend
(
1
);
}
OrgGroupEntity
groupDaoByCitycodeListLike
=
orgGroupDao
.
getByCitycodeListLike
(
adminDistrict
.
getResult
().
getSubNames
().
getCounty
());
entity
.
setOrgClusterId
(
groupDaoByCitycodeListLike
.
getClusterId
());
entity
.
setOrgBranchId
(
groupDaoByCitycodeListLike
.
getBranchId
());
...
...
@@ -166,20 +166,15 @@ public class OrderCreateServiceImpl implements OrderCreateService {
msgDTO
.
setContent
(
"有1条预约日期在"
+
entity
.
getExpectTimeBegin
().
toLocalDate
()
+
"的工单需人工外理"
);
msgService
.
add
(
msgDTO
);
}
else
{
OrgTeamInfo
teamInfo
=
fendanResult
.
getResult
().
get
(
0
).
getTeamInfos
().
get
(
0
);
// 根据分单,填写clusterId/branchId/groupId/teamId等
// 根据分单工作队,填写clusterId/branchId/groupId/teamId等
OrgTeamInfo
teamInfo
=
fendanResult
.
getResult
();
entity
.
setOrgClusterId
(
teamInfo
.
getClusterId
());
entity
.
setOrgBranchId
(
teamInfo
.
getBranchId
());
entity
.
setOrgGroupId
(
teamInfo
.
getGroupId
());
entity
.
setOrgTeamId
(
teamInfo
.
getTeamId
());
//处理超派,特殊时间段
Integer
startHourOrder
=
DateUtil
.
getHour
(
req
.
getExpectBegin
());
Integer
endHourOrder
=
DateUtil
.
getHour
(
req
.
getExpectEnd
());
Integer
startHourTeam
=
Integer
.
valueOf
(
teamInfo
.
getWorkOn
().
split
(
":"
)[
0
]);
Integer
endHourTeam
=
Integer
.
valueOf
(
teamInfo
.
getWorkOff
().
split
(
":"
)[
0
]);
if
(
startHourOrder
<
startHourTeam
||
endHourOrder
>
endHourTeam
)
{
entity
.
setIsSpecialTime
(
1
);
}
entity
.
setIsSpecialTime
(
CommonUtil
.
isSpecial
(
entity
.
getExpectTimeBegin
().
toLocalTime
(),
entity
.
getExpectTimeEnd
().
toLocalTime
(),
teamInfo
.
getWorkOn
(),
teamInfo
.
getWorkOff
()));
}
entity
.
setSource
(
req
.
getSource
());
entity
.
setOrderId
(
orderId
);
...
...
@@ -190,8 +185,6 @@ public class OrderCreateServiceImpl implements OrderCreateService {
entity
.
setType
(
req
.
getProductType
());
entity
.
setSkill
(
req
.
getServiceType
());
entity
.
setFaultDescribe
(
req
.
getFaultDescribe
());
entity
.
setExpectTimeBegin
(
DateUtil
.
fromDate
(
req
.
getExpectBegin
()));
entity
.
setExpectTimeEnd
(
DateUtil
.
fromDate
(
req
.
getExpectEnd
()));
entity
.
setExpectTimeDesc
(
req
.
getExpectDesc
());
// 使用期望时间来初始化计划时间,后面在指派环节更新为真正的有效的计划时间
entity
.
setPlanStartTime
(
entity
.
getExpectTimeBegin
());
...
...
@@ -229,7 +222,7 @@ public class OrderCreateServiceImpl implements OrderCreateService {
// todo 服务单状态、预约状态等
orderInfoDao
.
save
(
entity
);
// 登记
commonService
.
addOrderEvent
(
orderId
,
""
,
req
.
getSource
(),
"API"
,
OrderStatus
.
CREATE
.
getDescription
(),
OrderStatus
.
CREATE
.
getDescription
(),
""
);
commonService
.
addOrderEvent
(
orderId
,
""
,
req
.
getSource
(),
"API"
,
OrderStatus
Enum
.
CREATE
.
getDescription
(),
OrderStatusEnum
.
CREATE
.
getDescription
(),
""
);
// 指派检查,简单处理,遇到第一个可以指派的就停止检查
// tryVirtualAppointment(entity, req.getSource(), teamId);
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderInfoServiceImpl.java
View file @
9903133
This diff is collapsed.
Click to expand it.
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderServiceListServiceImpl.java
View file @
9903133
...
...
@@ -54,7 +54,9 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
lqw
.
le
(
OrderInfo:
:
getDt
,
endDate
);
//预约开始日期
//筛选项
lqw
.
eq
(
StringUtils
.
isNotEmpty
(
reqDTO
.
getPhone
()),
OrderInfo:
:
getPhone
,
reqDTO
.
getPhone
());
lqw
.
eq
(
StringUtils
.
isNotEmpty
(
reqDTO
.
getOrderId
()),
OrderInfo:
:
getOrderId
,
reqDTO
.
getOrderId
());
if
(
StringUtils
.
isNotBlank
(
reqDTO
.
getOrderId
()))
{
lqw
.
in
(
StringUtils
.
isNotEmpty
(
reqDTO
.
getOrderId
()),
OrderInfo:
:
getOrderId
,
reqDTO
.
getOrderId
().
split
(
","
));
}
lqw
.
in
(
ListUtils
.
isNotEmpty
(
reqDTO
.
getBranchIds
()),
OrderInfo:
:
getOrgBranchId
,
reqDTO
.
getBranchIds
());
lqw
.
in
(
ListUtils
.
isNotEmpty
(
reqDTO
.
getGroupIds
()),
OrderInfo:
:
getOrgGroupId
,
reqDTO
.
getGroupIds
());
lqw
.
in
(
ListUtils
.
isNotEmpty
(
reqDTO
.
getTeamIds
()),
OrderInfo:
:
getOrgTeamId
,
reqDTO
.
getTeamIds
());
...
...
project-order/src/main/java/com/dituhui/pea/order/utils/CommonUtil.java
View file @
9903133
package
com
.
dituhui
.
pea
.
order
.
utils
;
import
cn.hutool.core.util.StrUtil
;
import
com.dituhui.pea.util.DateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
java.time.LocalTime
;
import
java.util.*
;
@Slf4j
...
...
@@ -63,4 +65,28 @@ public class CommonUtil {
calendar
.
add
(
Calendar
.
DATE
,
days
);
return
calendar
.
getTime
();
}
/**
* 判断是否特殊时间段
*
* @return
*/
public
static
Integer
isSpecial
(
LocalTime
expectBegin
,
LocalTime
expectEnd
,
String
strOn
,
String
strOff
)
{
LocalTime
workOn
=
LocalTime
.
parse
(
strOn
+
":00"
,
DateUtil
.
TIME_FORMATTER
);
LocalTime
workOff
=
LocalTime
.
parse
(
strOff
+
":00"
,
DateUtil
.
TIME_FORMATTER
);
if
(
expectBegin
.
isBefore
(
workOn
)
||
expectEnd
.
isAfter
(
workOff
))
{
return
1
;
}
return
0
;
}
public
static
String
fixBrand
(
String
brand
)
{
if
(!
brand
.
equals
(
"嘉格纳"
))
{
return
"博世/西门子以及其他品牌"
;
}
else
{
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