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 e2c8ee1c
authored
Nov 17, 2023
by
刘鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(工作日历):工作日历新增是否全天字段-变更
1 parent
2fd37c17
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
37 additions
and
4 deletions
project-order/src/main/java/com/dituhui/pea/order/dto/CalendarDetailDTO.java
project-order/src/main/java/com/dituhui/pea/order/dto/CalendarUpdateDTO.java
project-order/src/main/java/com/dituhui/pea/order/entity/CapacityEngineerCalendarEntity.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/EngineerCalendarServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderAssignImpl.java
project-order/src/main/java/com/dituhui/pea/order/dto/CalendarDetailDTO.java
View file @
e2c8ee1
...
@@ -24,6 +24,10 @@ public class CalendarDetailDTO {
...
@@ -24,6 +24,10 @@ public class CalendarDetailDTO {
private
String
phone
;
private
String
phone
;
private
String
planId
;
private
String
planId
;
private
String
remark
;
private
String
remark
;
/**
* 是否全天
*/
private
Boolean
wholeDay
;
private
String
type
;
private
String
type
;
private
String
typeName
;
private
String
typeName
;
...
...
project-order/src/main/java/com/dituhui/pea/order/dto/CalendarUpdateDTO.java
View file @
e2c8ee1
...
@@ -6,6 +6,12 @@ public class CalendarUpdateDTO {
...
@@ -6,6 +6,12 @@ public class CalendarUpdateDTO {
@lombok
.
Data
@lombok
.
Data
public
static
class
Request
{
public
static
class
Request
{
/**
* 日程是否是全天
*/
@NotBlank
(
message
=
"请指定日程是否是全天"
)
private
Boolean
wholeDay
;
@NotBlank
@NotBlank
private
String
startTime
;
private
String
startTime
;
@NotBlank
@NotBlank
...
...
project-order/src/main/java/com/dituhui/pea/order/entity/CapacityEngineerCalendarEntity.java
View file @
e2c8ee1
...
@@ -18,6 +18,12 @@ public class CapacityEngineerCalendarEntity {
...
@@ -18,6 +18,12 @@ public class CapacityEngineerCalendarEntity {
@Column
(
nullable
=
false
)
@Column
(
nullable
=
false
)
private
String
workday
;
private
String
workday
;
/**
* 事件日程是否是全天类型
*/
@Column
(
name
=
"whole_day"
,
nullable
=
false
)
private
Boolean
wholeDay
;
@Column
(
name
=
"engineer_code"
,
nullable
=
false
,
columnDefinition
=
"varchar(50) default '0'"
)
@Column
(
name
=
"engineer_code"
,
nullable
=
false
,
columnDefinition
=
"varchar(50) default '0'"
)
private
String
engineerCode
;
private
String
engineerCode
;
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/EngineerCalendarServiceImpl.java
View file @
e2c8ee1
...
@@ -156,6 +156,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
...
@@ -156,6 +156,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
rs
.
setStartTime
(
DateUtils
.
formatDateTime
(
entity
.
getStartTime
()));
rs
.
setStartTime
(
DateUtils
.
formatDateTime
(
entity
.
getStartTime
()));
rs
.
setEndTime
(
DateUtils
.
formatDateTime
(
entity
.
getEndTime
()));
rs
.
setEndTime
(
DateUtils
.
formatDateTime
(
entity
.
getEndTime
()));
rs
.
setRemark
(
entity
.
getMemo
());
rs
.
setRemark
(
entity
.
getMemo
());
rs
.
setWholeDay
(
entity
.
getWholeDay
());
// todo 操作员
// todo 操作员
rs
.
setOperator
(
entity
.
getOperatorName
());
rs
.
setOperator
(
entity
.
getOperatorName
());
return
Result
.
success
(
rs
);
return
Result
.
success
(
rs
);
...
@@ -169,7 +170,9 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
...
@@ -169,7 +170,9 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
if
(
entity
==
null
)
{
if
(
entity
==
null
)
{
return
Result
.
failed
(
"日历配置信息不存在"
);
return
Result
.
failed
(
"日历配置信息不存在"
);
}
}
// todo 业务检查,暂时只需要检查日期时间必须为将来; 后面还需要检查配置项是否与其他配置项在时间上有交叉
// 日程所属工程师
final
String
engineerCode
=
entity
.
getEngineerCode
();
// 业务检查,暂时只需要检查日期时间必须为将来; 后面还需要检查配置项是否与其他配置项在时间上有交叉
LocalDateTime
time1
=
DateUtils
.
localDateTimeFromStr
(
reqDTO
.
getStartTime
());
LocalDateTime
time1
=
DateUtils
.
localDateTimeFromStr
(
reqDTO
.
getStartTime
());
LocalDateTime
time2
=
DateUtils
.
localDateTimeFromStr
(
reqDTO
.
getEndTime
());
LocalDateTime
time2
=
DateUtils
.
localDateTimeFromStr
(
reqDTO
.
getEndTime
());
if
(
time1
.
isAfter
(
time2
))
{
if
(
time1
.
isAfter
(
time2
))
{
...
@@ -178,6 +181,14 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
...
@@ -178,6 +181,14 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
if
(
time1
.
isBefore
(
LocalDateTime
.
now
())
||
time2
.
isBefore
(
LocalDateTime
.
now
()))
{
if
(
time1
.
isBefore
(
LocalDateTime
.
now
())
||
time2
.
isBefore
(
LocalDateTime
.
now
()))
{
return
Result
.
failed
(
"只能更新未来时间"
);
return
Result
.
failed
(
"只能更新未来时间"
);
}
}
Optional
<
CheckTime
>
checkTimeOptional
=
checkTimesHasOverlap
(
time1
.
toLocalDate
(),
engineerCode
,
time1
,
time2
);
if
(
checkTimeOptional
.
isPresent
())
{
CheckTime
checkTime
=
checkTimeOptional
.
get
();
throw
new
BusinessException
(
"工号为"
+
engineerCode
+
"的工程师在"
+
checkTime
.
getStartTime
()
+
"到"
+
checkTime
.
getEndTime
()
+
"区间已有日程安排"
);
}
entity
.
setWholeDay
(
reqDTO
.
getWholeDay
());
entity
.
setStartTime
(
time1
);
entity
.
setStartTime
(
time1
);
entity
.
setEndTime
(
time2
);
entity
.
setEndTime
(
time2
);
entity
.
setMemo
(
reqDTO
.
getRemark
());
entity
.
setMemo
(
reqDTO
.
getRemark
());
...
@@ -229,7 +240,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
...
@@ -229,7 +240,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
endTime
=
String
.
format
(
"%s %s:00"
,
endTime
,
config
.
getWorkOff
());
endTime
=
String
.
format
(
"%s %s:00"
,
endTime
,
config
.
getWorkOff
());
}
}
if
(
"none"
.
equals
(
repeatType
))
{
if
(
"none"
.
equals
(
repeatType
))
{
addOneEngineerPlan
(
userId
,
engineerCode
,
type
,
beginTime
,
endTime
,
remark
);
addOneEngineerPlan
(
userId
,
engineerCode
,
type
,
beginTime
,
endTime
,
remark
,
isAllday
);
}
else
{
}
else
{
LocalDate
beginDate
=
DateUtils
.
localDateFromStr
(
beginTime
);
LocalDate
beginDate
=
DateUtils
.
localDateFromStr
(
beginTime
);
LocalDate
endDate
=
DateUtils
.
localDateFromStr
(
repeatEndDate
);
LocalDate
endDate
=
DateUtils
.
localDateFromStr
(
repeatEndDate
);
...
@@ -242,7 +253,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
...
@@ -242,7 +253,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
long
days
=
beginDate
.
until
(
current
,
ChronoUnit
.
DAYS
);
long
days
=
beginDate
.
until
(
current
,
ChronoUnit
.
DAYS
);
beginTime
=
DateUtils
.
formatDateTime
(
DateUtils
.
localDateTimeFromStr
(
finalBeginTime
).
plusDays
(
days
));
beginTime
=
DateUtils
.
formatDateTime
(
DateUtils
.
localDateTimeFromStr
(
finalBeginTime
).
plusDays
(
days
));
endTime
=
DateUtils
.
formatDateTime
(
DateUtils
.
localDateTimeFromStr
(
finalEndTime
).
plusDays
(
days
));
endTime
=
DateUtils
.
formatDateTime
(
DateUtils
.
localDateTimeFromStr
(
finalEndTime
).
plusDays
(
days
));
addOneEngineerPlan
(
userId
,
engineerCode
,
type
,
beginTime
,
endTime
,
remark
);
addOneEngineerPlan
(
userId
,
engineerCode
,
type
,
beginTime
,
endTime
,
remark
,
isAllday
);
current
=
getNextDate
(
current
,
repeatType
);
current
=
getNextDate
(
current
,
repeatType
);
}
}
}
}
...
@@ -276,7 +287,8 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
...
@@ -276,7 +287,8 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
return
current
;
return
current
;
}
}
private
void
addOneEngineerPlan
(
String
userId
,
String
engineerCode
,
String
type
,
String
beginTime
,
String
endTime
,
String
remark
)
{
private
void
addOneEngineerPlan
(
String
userId
,
String
engineerCode
,
String
type
,
String
beginTime
,
String
endTime
,
String
remark
,
Boolean
allDay
)
{
// 一个工程师、一条配置处理;可能一条会跨多天,需要分别补充处理
// 一个工程师、一条配置处理;可能一条会跨多天,需要分别补充处理
log
.
info
(
"addOneEngineerPlan ==> [engineerCode:{}][beginTime:{}]"
,
engineerCode
,
beginTime
);
log
.
info
(
"addOneEngineerPlan ==> [engineerCode:{}][beginTime:{}]"
,
engineerCode
,
beginTime
);
String
userName
=
user
.
getUserInfo
(
userId
).
getResult
().
getAccount
();
String
userName
=
user
.
getUserInfo
(
userId
).
getResult
().
getAccount
();
...
@@ -305,6 +317,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
...
@@ -305,6 +317,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
e
.
setStartTime
(
startTime
);
e
.
setStartTime
(
startTime
);
e
.
setEndTime
(
endTime1
);
e
.
setEndTime
(
endTime1
);
e
.
setWorkday
(
DateUtils
.
formatDate
(
beginDate
));
e
.
setWorkday
(
DateUtils
.
formatDate
(
beginDate
));
e
.
setWholeDay
(
allDay
);
e
.
setMemo
(
remark
);
e
.
setMemo
(
remark
);
//
//
e
.
setOperatorId
(
userId
);
e
.
setOperatorId
(
userId
);
...
@@ -355,6 +368,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
...
@@ -355,6 +368,7 @@ public class EngineerCalendarServiceImpl implements EngineerCalendarService {
e
.
setOperatorId
(
userId
);
e
.
setOperatorId
(
userId
);
e
.
setOperatorName
(
userName
);
e
.
setOperatorName
(
userName
);
all
.
add
(
e
);
all
.
add
(
e
);
e
.
setWholeDay
(
allDay
);
// 按日迭代
// 按日迭代
current
=
current
.
plusDays
(
1
);
current
=
current
.
plusDays
(
1
);
}
}
...
...
project-order/src/main/java/com/dituhui/pea/order/service/impl/OrderAssignImpl.java
View file @
e2c8ee1
...
@@ -364,6 +364,9 @@ public class OrderAssignImpl implements OrderAssign {
...
@@ -364,6 +364,9 @@ public class OrderAssignImpl implements OrderAssign {
double
orderLongitude
=
Double
.
parseDouble
(
order
.
getX
());
double
orderLongitude
=
Double
.
parseDouble
(
order
.
getX
());
double
orderLatitude
=
Double
.
parseDouble
(
order
.
getY
());
double
orderLatitude
=
Double
.
parseDouble
(
order
.
getY
());
//TODO 排除当天已经请假或者休息的人员
//均计算距离
//均计算距离
List
<
TempEngineer
>
result
=
engineerCodes1
.
stream
()
List
<
TempEngineer
>
result
=
engineerCodes1
.
stream
()
.
map
(
engineerCode
->
{
.
map
(
engineerCode
->
{
...
...
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