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 239ee0b9
authored
Oct 31, 2023
by
刘鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor(时间片容量): 重构避免强制写入时增加重复时间段
1 parent
d96a04a1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
63 additions
and
5 deletions
project-order/src/main/java/com/dituhui/pea/order/dao/EngineerSliceUsedCapacityDao.java
project-order/src/main/java/com/dituhui/pea/order/scheduler/InitEngineerCapacityScheduler.java
project-order/src/main/java/com/dituhui/pea/order/service/EngineerSliceUsedCapacityService.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/EngineerSliceUsedCapacityServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/dao/EngineerSliceUsedCapacityDao.java
View file @
239ee0b
...
@@ -8,4 +8,5 @@ import java.util.List;
...
@@ -8,4 +8,5 @@ import java.util.List;
public
interface
EngineerSliceUsedCapacityDao
extends
JpaRepository
<
CapacityEngineerSliceUsedEntity
,
Long
>
{
public
interface
EngineerSliceUsedCapacityDao
extends
JpaRepository
<
CapacityEngineerSliceUsedEntity
,
Long
>
{
List
<
CapacityEngineerSliceUsedEntity
>
findByWorkdayAndEngineerCode
(
String
workDay
,
String
engineerCode
);
List
<
CapacityEngineerSliceUsedEntity
>
findByWorkdayAndEngineerCode
(
String
workDay
,
String
engineerCode
);
List
<
CapacityEngineerSliceUsedEntity
>
deleteByWorkdayAndEngineerCode
(
String
workDay
,
String
engineerCode
);
}
}
project-order/src/main/java/com/dituhui/pea/order/scheduler/InitEngineerCapacityScheduler.java
View file @
239ee0b
...
@@ -8,7 +8,6 @@ import com.dituhui.pea.order.dao.CapacityEngineerCalendarDao;
...
@@ -8,7 +8,6 @@ import com.dituhui.pea.order.dao.CapacityEngineerCalendarDao;
import
com.dituhui.pea.order.dao.CapacityEngineerStatDao
;
import
com.dituhui.pea.order.dao.CapacityEngineerStatDao
;
import
com.dituhui.pea.order.dao.EngineerBusinessDao
;
import
com.dituhui.pea.order.dao.EngineerBusinessDao
;
import
com.dituhui.pea.order.dao.EngineerInfoDao
;
import
com.dituhui.pea.order.dao.EngineerInfoDao
;
import
com.dituhui.pea.order.dao.EngineerSliceUsedCapacityDao
;
import
com.dituhui.pea.order.dao.TimeSliceDao
;
import
com.dituhui.pea.order.dao.TimeSliceDao
;
import
com.dituhui.pea.order.entity.CapacityEngineerCalendarEntity
;
import
com.dituhui.pea.order.entity.CapacityEngineerCalendarEntity
;
import
com.dituhui.pea.order.entity.CapacityEngineerSliceUsedEntity
;
import
com.dituhui.pea.order.entity.CapacityEngineerSliceUsedEntity
;
...
@@ -16,6 +15,7 @@ import com.dituhui.pea.order.entity.CapacityEngineerStatEntity;
...
@@ -16,6 +15,7 @@ import com.dituhui.pea.order.entity.CapacityEngineerStatEntity;
import
com.dituhui.pea.order.entity.EngineerBusinessEntity
;
import
com.dituhui.pea.order.entity.EngineerBusinessEntity
;
import
com.dituhui.pea.order.entity.EngineerInfoEntity
;
import
com.dituhui.pea.order.entity.EngineerInfoEntity
;
import
com.dituhui.pea.order.entity.TimeSliceEntity
;
import
com.dituhui.pea.order.entity.TimeSliceEntity
;
import
com.dituhui.pea.order.service.EngineerSliceUsedCapacityService
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -29,8 +29,11 @@ import java.time.LocalDate;
...
@@ -29,8 +29,11 @@ import java.time.LocalDate;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.time.LocalTime
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -58,7 +61,7 @@ public class InitEngineerCapacityScheduler {
...
@@ -58,7 +61,7 @@ public class InitEngineerCapacityScheduler {
@Autowired
@Autowired
private
TimeSliceDao
timeSliceDao
;
private
TimeSliceDao
timeSliceDao
;
@Autowired
@Autowired
private
EngineerSliceUsedCapacity
Dao
engineerSliceUsedCapacityDao
;
private
EngineerSliceUsedCapacity
Service
EngineerSliceUsedCapacityService
;
private
boolean
verifyCalendar
(
List
<
CapacityEngineerCalendarEntity
>
configs
)
{
private
boolean
verifyCalendar
(
List
<
CapacityEngineerCalendarEntity
>
configs
)
{
// 检查多条请假配置是否有交叉行为; configs已经根据startTime排序
// 检查多条请假配置是否有交叉行为; configs已经根据startTime排序
...
@@ -101,7 +104,7 @@ public class InitEngineerCapacityScheduler {
...
@@ -101,7 +104,7 @@ public class InitEngineerCapacityScheduler {
private
void
initOneEngineerSlice
(
String
date
,
String
engineerCode
,
List
<
CapacityEngineerCalendarEntity
>
configs
,
private
void
initOneEngineerSlice
(
String
date
,
String
engineerCode
,
List
<
CapacityEngineerCalendarEntity
>
configs
,
List
<
TimeSliceEntity
>
commonTimeSliceList
)
{
List
<
TimeSliceEntity
>
commonTimeSliceList
)
{
//查询时间片容量
//查询时间片容量
List
<
CapacityEngineerSliceUsedEntity
>
engineerTimeSlice
=
engineerSliceUsedCapacityDao
.
findByWorkdayAndEngineerCode
(
date
,
engineerCode
);
List
<
CapacityEngineerSliceUsedEntity
>
engineerTimeSlice
=
EngineerSliceUsedCapacityService
.
findByWorkdayAndEngineerCode
(
date
,
engineerCode
);
if
(!
CollectionUtil
.
isEmpty
(
engineerTimeSlice
)
&&
!
rewriteForce
)
{
if
(!
CollectionUtil
.
isEmpty
(
engineerTimeSlice
)
&&
!
rewriteForce
)
{
log
.
warn
(
"工程师:{}存在日期:{}时间切片记录, 无需初始化"
,
engineerCode
,
date
);
log
.
warn
(
"工程师:{}存在日期:{}时间切片记录, 无需初始化"
,
engineerCode
,
date
);
return
;
return
;
...
@@ -116,7 +119,11 @@ public class InitEngineerCapacityScheduler {
...
@@ -116,7 +119,11 @@ public class InitEngineerCapacityScheduler {
ArrayList
<
CapacityEngineerSliceUsedEntity
>
resultList
=
new
ArrayList
<>(
timeCorridor
.
size
());
ArrayList
<
CapacityEngineerSliceUsedEntity
>
resultList
=
new
ArrayList
<>(
timeCorridor
.
size
());
for
(
TimeSliceEntity
timeSlice
:
timeCorridor
)
{
for
(
TimeSliceEntity
timeSlice
:
timeCorridor
)
{
CapacityEngineerSliceUsedEntity
r
=
new
CapacityEngineerSliceUsedEntity
();
final
Long
id
=
timeSlice
.
getId
();
Optional
<
CapacityEngineerSliceUsedEntity
>
sliceUsedEntity
=
Optional
.
ofNullable
(
engineerTimeSlice
).
orElse
(
Collections
.
emptyList
())
.
stream
()
.
filter
(
t
->
Objects
.
equals
(
t
.
getTimmeSlice
().
getId
(),
id
)).
findFirst
();
CapacityEngineerSliceUsedEntity
r
=
sliceUsedEntity
.
orElseGet
(
CapacityEngineerSliceUsedEntity:
:
new
);
r
.
setTimmeSlice
(
timeSlice
);
r
.
setTimmeSlice
(
timeSlice
);
r
.
setEngineerCode
(
engineerCode
);
r
.
setEngineerCode
(
engineerCode
);
r
.
setWorkday
(
date
);
r
.
setWorkday
(
date
);
...
@@ -153,7 +160,7 @@ public class InitEngineerCapacityScheduler {
...
@@ -153,7 +160,7 @@ public class InitEngineerCapacityScheduler {
resultList
.
add
(
r
);
resultList
.
add
(
r
);
}
}
engineerSliceUsedCapacityDao
.
saveAll
(
resultList
);
EngineerSliceUsedCapacityService
.
saveAll
(
resultList
);
}
}
...
...
project-order/src/main/java/com/dituhui/pea/order/service/EngineerSliceUsedCapacityService.java
0 → 100644
View file @
239ee0b
package
com
.
dituhui
.
pea
.
order
.
service
;
import
com.dituhui.pea.order.entity.CapacityEngineerSliceUsedEntity
;
import
java.util.Collection
;
import
java.util.List
;
public
interface
EngineerSliceUsedCapacityService
{
List
<
CapacityEngineerSliceUsedEntity
>
findByWorkdayAndEngineerCode
(
String
workDay
,
String
engineerCode
);
List
<
CapacityEngineerSliceUsedEntity
>
deleteByWorkdayAndEngineerCode
(
String
workDay
,
String
engineerCode
);
List
<
CapacityEngineerSliceUsedEntity
>
saveAll
(
Collection
<
CapacityEngineerSliceUsedEntity
>
collection
);
}
project-order/src/main/java/com/dituhui/pea/order/service/impl/EngineerSliceUsedCapacityServiceImpl.java
0 → 100644
View file @
239ee0b
package
com
.
dituhui
.
pea
.
order
.
service
.
impl
;
import
com.dituhui.pea.order.dao.EngineerSliceUsedCapacityDao
;
import
com.dituhui.pea.order.entity.CapacityEngineerSliceUsedEntity
;
import
com.dituhui.pea.order.service.EngineerSliceUsedCapacityService
;
import
lombok.AllArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
javax.transaction.Transactional
;
import
java.util.Collection
;
import
java.util.List
;
@Service
@AllArgsConstructor
public
class
EngineerSliceUsedCapacityServiceImpl
implements
EngineerSliceUsedCapacityService
{
private
final
EngineerSliceUsedCapacityDao
engineerSliceUsedCapacityDao
;
@Override
@Transactional
public
List
<
CapacityEngineerSliceUsedEntity
>
findByWorkdayAndEngineerCode
(
String
workDay
,
String
engineerCode
)
{
return
engineerSliceUsedCapacityDao
.
findByWorkdayAndEngineerCode
(
workDay
,
engineerCode
);
}
@Override
@Transactional
public
List
<
CapacityEngineerSliceUsedEntity
>
deleteByWorkdayAndEngineerCode
(
String
workDay
,
String
engineerCode
)
{
return
engineerSliceUsedCapacityDao
.
deleteByWorkdayAndEngineerCode
(
workDay
,
engineerCode
);
}
@Override
@Transactional
public
List
<
CapacityEngineerSliceUsedEntity
>
saveAll
(
Collection
<
CapacityEngineerSliceUsedEntity
>
collection
)
{
return
engineerSliceUsedCapacityDao
.
saveAll
(
collection
);
}
}
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