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 6a51be14
authored
Aug 10, 2023
by
wangli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
1 parent
2c8a9f36
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
37 deletions
project-order/src/main/java/com/dituhui/pea/order/dao/EngineerSkillGroupDao.java
project-order/src/main/java/com/dituhui/pea/order/service/impl/EngineerServiceImpl.java
project-order/src/main/java/com/dituhui/pea/order/dao/EngineerSkillGroupDao.java
View file @
6a51be1
...
@@ -10,6 +10,7 @@ public interface EngineerSkillGroupDao extends JpaRepository<EngineerSkillGroupE
...
@@ -10,6 +10,7 @@ public interface EngineerSkillGroupDao extends JpaRepository<EngineerSkillGroupE
List
<
EngineerSkillGroupEntity
>
findByEngineerCode
(
String
engineerCode
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCode
(
String
engineerCode
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeAndStatus
(
String
engineerCode
,
boolean
status
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeAndStatus
(
String
engineerCode
,
boolean
status
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeInAndStatus
(
List
<
String
>
engineerCodes
,
boolean
status
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeInAndStatus
(
List
<
String
>
engineerCodes
,
boolean
status
);
List
<
EngineerSkillGroupEntity
>
findByEngineerCodeInAndStatusIn
(
List
<
String
>
engineerCodes
,
List
<
Boolean
>
status
);
List
<
EngineerSkillGroupEntity
>
findBySkillGroupCode
(
String
skillGroupCode
);
List
<
EngineerSkillGroupEntity
>
findBySkillGroupCode
(
String
skillGroupCode
);
List
<
EngineerSkillGroupEntity
>
findBySkillGroupCodeAndStatus
(
String
skillGroupCode
,
boolean
status
);
List
<
EngineerSkillGroupEntity
>
findBySkillGroupCodeAndStatus
(
String
skillGroupCode
,
boolean
status
);
}
}
project-order/src/main/java/com/dituhui/pea/order/service/impl/EngineerServiceImpl.java
View file @
6a51be1
package
com
.
dituhui
.
pea
.
order
.
service
.
impl
;
package
com
.
dituhui
.
pea
.
order
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.dituhui.pea.common.BusinessException
;
import
com.dituhui.pea.common.BusinessException
;
import
com.dituhui.pea.common.Result
;
import
com.dituhui.pea.common.Result
;
import
com.dituhui.pea.order.common.ListUtils
;
import
com.dituhui.pea.order.common.TimeUtils
;
import
com.dituhui.pea.order.common.TimeUtils
;
import
com.dituhui.pea.order.dao.*
;
import
com.dituhui.pea.order.dao.EngineerBusinessDao
;
import
com.dituhui.pea.order.dto.*
;
import
com.dituhui.pea.order.dao.EngineerInfoDao
;
import
com.dituhui.pea.order.entity.*
;
import
com.dituhui.pea.order.dao.EngineerSkillGroupDao
;
import
com.dituhui.pea.order.dao.OrgGroupDao
;
import
com.dituhui.pea.order.dto.EngineerBusinessListResp
;
import
com.dituhui.pea.order.dto.EngineerInfoListResp
;
import
com.dituhui.pea.order.dto.EngineerSkillListResp
;
import
com.dituhui.pea.order.entity.EngineerBusinessEntity
;
import
com.dituhui.pea.order.entity.EngineerInfoEntity
;
import
com.dituhui.pea.order.entity.EngineerSkillGroupEntity
;
import
com.dituhui.pea.order.entity.OrgGroupEntity
;
import
com.dituhui.pea.order.service.EngineerService
;
import
com.dituhui.pea.order.service.EngineerService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.data.domain.Page
;
import
org.springframework.util.StringUtils
;
import
org.springframework.util.StringUtils
;
import
javax.persistence.EntityManager
;
import
javax.persistence.EntityManager
;
...
@@ -25,9 +31,6 @@ import javax.persistence.criteria.CriteriaBuilder;
...
@@ -25,9 +31,6 @@ import javax.persistence.criteria.CriteriaBuilder;
import
javax.persistence.criteria.CriteriaUpdate
;
import
javax.persistence.criteria.CriteriaUpdate
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.criteria.Root
;
import
javax.persistence.criteria.Root
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.Duration
;
import
java.time.Duration
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
...
@@ -43,9 +46,6 @@ public class EngineerServiceImpl implements EngineerService {
...
@@ -43,9 +46,6 @@ public class EngineerServiceImpl implements EngineerService {
private
EngineerInfoDao
engineerInfoDao
;
private
EngineerInfoDao
engineerInfoDao
;
@Autowired
@Autowired
private
EngineerSkillGroupMPDao
engineerSkillGroupMPDao
;
@Autowired
private
EngineerSkillGroupDao
engineerSkillGroupDao
;
private
EngineerSkillGroupDao
engineerSkillGroupDao
;
@Autowired
@Autowired
...
@@ -150,17 +150,22 @@ public class EngineerServiceImpl implements EngineerService {
...
@@ -150,17 +150,22 @@ public class EngineerServiceImpl implements EngineerService {
}
}
// 更新categoryIds状态为1
// 更新categoryIds状态为1
wrapper
.
eq
(
EngineerSkillGroup:
:
getEngineerCode
,
engineerCode
);
CriteriaBuilder
cb1
=
entityManager
.
getCriteriaBuilder
();
wrapper
.
in
(
EngineerSkillGroup:
:
getSkillGroupCode
,
skillGroupIds
);
CriteriaUpdate
<
EngineerSkillGroupEntity
>
update1
=
cb
.
createCriteriaUpdate
(
EngineerSkillGroupEntity
.
class
);
wrapper
.
set
(
EngineerSkillGroup:
:
getStatus
,
1
);
Root
<
EngineerSkillGroupEntity
>
root1
=
update1
.
from
(
EngineerSkillGroupEntity
.
class
);
int
n
=
engineerSkillGroupMPDao
.
update
(
null
,
wrapper
);
update1
.
set
(
root1
.
get
(
"status"
),
1
);
update1
.
where
(
cb1
.
equal
(
root1
.
get
(
"engineerCode"
),
engineerCode
),
root1
.
get
(
"skillGroupCode"
).
in
(
skillGroupIds
)
);
int
n
=
entityManager
.
createQuery
(
update1
).
executeUpdate
();
if
(
skillGroupIds
.
size
()
==
n
)
{
if
(
skillGroupIds
.
size
()
==
n
)
{
// 更新记录条数等于提交记录条数
// 更新记录条数等于提交记录条数
return
null
;
return
null
;
}
}
// 可能存在engineerSkill表不存在的记录,需要补充录入
// 可能存在engineerSkill表不存在的记录,需要补充录入
List
<
Integer
>
statuses
=
new
ArrayList
<
Integer
>(
Arrays
.
asList
(
1
,
0
));
List
<
Boolean
>
statuses
=
new
ArrayList
<
Boolean
>(
Arrays
.
asList
(
true
,
false
));
List
<
String
>
engineerCodes
=
new
ArrayList
<>(
Collections
.
singletonList
(
engineerCode
));
List
<
String
>
engineerCodes
=
new
ArrayList
<>(
Collections
.
singletonList
(
engineerCode
));
HashMap
<
String
,
List
<
String
>>
engineerSkills
=
this
.
queryEngineerSkills
(
engineerCodes
,
statuses
);
HashMap
<
String
,
List
<
String
>>
engineerSkills
=
this
.
queryEngineerSkills
(
engineerCodes
,
statuses
);
...
@@ -168,12 +173,12 @@ public class EngineerServiceImpl implements EngineerService {
...
@@ -168,12 +173,12 @@ public class EngineerServiceImpl implements EngineerService {
Set
<
String
>
sDB
=
new
HashSet
<>(
engineerSkills
.
getOrDefault
(
engineerCode
,
new
ArrayList
<>()));
Set
<
String
>
sDB
=
new
HashSet
<>(
engineerSkills
.
getOrDefault
(
engineerCode
,
new
ArrayList
<>()));
sInput
.
removeAll
(
sDB
);
sInput
.
removeAll
(
sDB
);
for
(
String
skillGroupId
:
sInput
)
{
for
(
String
skillGroupId
:
sInput
)
{
EngineerSkillGroup
e
=
new
EngineerSkillGroup
();
EngineerSkillGroupEntity
e
=
new
EngineerSkillGroupEntity
();
e
.
setEngineerCode
(
engineerCode
);
e
.
setEngineerCode
(
engineerCode
);
e
.
setSkillGroupCode
(
skillGroupId
);
e
.
setSkillGroupCode
(
skillGroupId
);
e
.
setDescription
(
""
);
e
.
setDescription
(
""
);
e
.
setStatus
(
1
);
e
.
setStatus
(
true
);
engineerSkillGroupMPDao
.
inser
t
(
e
);
entityManager
.
persis
t
(
e
);
}
}
return
null
;
return
null
;
}
}
...
@@ -241,11 +246,11 @@ public class EngineerServiceImpl implements EngineerService {
...
@@ -241,11 +246,11 @@ public class EngineerServiceImpl implements EngineerService {
// 查询技术员所在的groupIds
// 查询技术员所在的groupIds
List
<
OrgGroupEntity
>
groups
=
new
ArrayList
<>();
List
<
OrgGroupEntity
>
groups
=
new
ArrayList
<>();
if
(
levelType
.
equals
(
"cluster"
))
{
if
(
levelType
.
equals
(
"cluster"
))
{
groups
=
orgGroupDao
.
findAllByClusterId
(
levelValue
);
groups
=
orgGroupDao
.
findAllByClusterId
(
levelValue
);
}
else
if
(
levelType
.
equals
(
"branch"
))
{
}
else
if
(
levelType
.
equals
(
"branch"
))
{
groups
=
orgGroupDao
.
findAllByBranchId
(
levelValue
);
groups
=
orgGroupDao
.
findAllByBranchId
(
levelValue
);
}
else
if
(
levelType
.
equals
(
"group"
))
{
}
else
if
(
levelType
.
equals
(
"group"
))
{
groups
=
orgGroupDao
.
findAllByGroupId
(
levelValue
);
groups
=
orgGroupDao
.
findAllByGroupId
(
levelValue
);
}
}
List
<
String
>
groupIds
=
groups
.
stream
().
map
(
OrgGroupEntity:
:
getGroupId
).
collect
(
Collectors
.
toList
());
List
<
String
>
groupIds
=
groups
.
stream
().
map
(
OrgGroupEntity:
:
getGroupId
).
collect
(
Collectors
.
toList
());
...
@@ -290,29 +295,26 @@ public class EngineerServiceImpl implements EngineerService {
...
@@ -290,29 +295,26 @@ public class EngineerServiceImpl implements EngineerService {
return
map
;
return
map
;
}
}
private
HashMap
<
String
,
List
<
String
>>
queryEngineerSkills
(
List
<
String
>
engineerCodes
,
List
<
Integer
>
statuses
)
{
private
HashMap
<
String
,
List
<
String
>>
queryEngineerSkills
(
List
<
String
>
engineerCodes
,
List
<
Boolean
>
statuses
)
{
// 获取engineerCode对应的技能表, HashMap<engineerCode, List<skillId>>
// 获取engineerCode对应的技能表, HashMap<engineerCode, List<skillId>>
HashMap
<
String
,
List
<
String
>>
map
=
new
HashMap
<>();
HashMap
<
String
,
List
<
String
>>
map
=
new
HashMap
<>();
if
(
engineerCodes
.
isEmpty
())
{
if
(
engineerCodes
.
isEmpty
())
{
return
map
;
return
map
;
}
}
LambdaQueryWrapper
<
EngineerSkillGroup
>
lqw
=
new
LambdaQueryWrapper
<>();
List
<
EngineerSkillGroupEntity
>
records
=
engineerSkillGroupDao
.
findByEngineerCodeInAndStatusIn
(
engineerCodes
,
statuses
);
lqw
.
in
(
EngineerSkillGroup:
:
getEngineerCode
,
engineerCodes
);
if
(
ListUtils
.
isEmpty
(
records
))
{
lqw
.
in
(
EngineerSkillGroup:
:
getStatus
,
statuses
);
List
<
EngineerSkillGroup
>
records
=
engineerSkillGroupMPDao
.
selectList
(
lqw
);
if
(
records
==
null
||
records
.
isEmpty
())
{
return
map
;
return
map
;
}
}
Comparator
<
EngineerSkillGroup
>
ec
=
Comparator
.
comparing
(
EngineerSkillGroup
:
:
getEngineerCode
,
String
.
CASE_INSENSITIVE_ORDER
);
Comparator
<
EngineerSkillGroupEntity
>
ec
=
Comparator
.
comparing
(
EngineerSkillGroupEntity
:
:
getEngineerCode
,
String
.
CASE_INSENSITIVE_ORDER
);
List
<
EngineerSkillGroup
>
results
=
records
.
stream
().
sorted
(
ec
).
collect
(
Collectors
.
toList
());
List
<
EngineerSkillGroupEntity
>
results
=
records
.
stream
().
sorted
(
ec
).
collect
(
Collectors
.
toList
());
// 根据engineerCode分组
// 根据engineerCode分组
Map
<
String
,
List
<
EngineerSkillGroup
>>
g
=
results
.
stream
().
collect
(
Collectors
.
groupingBy
(
EngineerSkillGroup
:
:
getEngineerCode
));
Map
<
String
,
List
<
EngineerSkillGroupEntity
>>
g
=
results
.
stream
().
collect
(
Collectors
.
groupingBy
(
EngineerSkillGroupEntity
:
:
getEngineerCode
));
for
(
String
engineerCode
:
g
.
keySet
())
{
for
(
String
engineerCode
:
g
.
keySet
())
{
// 技术员技能ID列表
// 技术员技能ID列表
List
<
String
>
skillGroupIds
=
g
.
get
(
engineerCode
).
stream
().
map
(
EngineerSkillGroup
:
:
getSkillGroupCode
).
collect
(
Collectors
.
toList
());
List
<
String
>
skillGroupIds
=
g
.
get
(
engineerCode
).
stream
().
map
(
EngineerSkillGroupEntity
:
:
getSkillGroupCode
).
collect
(
Collectors
.
toList
());
map
.
put
(
engineerCode
,
skillGroupIds
);
map
.
put
(
engineerCode
,
skillGroupIds
);
}
}
return
map
;
return
map
;
...
@@ -388,7 +390,7 @@ public class EngineerServiceImpl implements EngineerService {
...
@@ -388,7 +390,7 @@ public class EngineerServiceImpl implements EngineerService {
List
<
String
>
engineerCodes
=
engineers
.
stream
().
map
(
EngineerInfoEntity:
:
getEngineerCode
).
collect
(
Collectors
.
toList
());
List
<
String
>
engineerCodes
=
engineers
.
stream
().
map
(
EngineerInfoEntity:
:
getEngineerCode
).
collect
(
Collectors
.
toList
());
// 获取技术员的可用技能列表
// 获取技术员的可用技能列表
List
<
Integer
>
statuses
=
Collections
.
singletonList
(
1
);
List
<
Boolean
>
statuses
=
Collections
.
singletonList
(
true
);
HashMap
<
String
,
List
<
String
>>
engineerSkillGroups
=
this
.
queryEngineerSkills
(
engineerCodes
,
statuses
);
HashMap
<
String
,
List
<
String
>>
engineerSkillGroups
=
this
.
queryEngineerSkills
(
engineerCodes
,
statuses
);
List
<
String
>
emptySkills
=
Collections
.
emptyList
();
List
<
String
>
emptySkills
=
Collections
.
emptyList
();
...
@@ -421,7 +423,7 @@ public class EngineerServiceImpl implements EngineerService {
...
@@ -421,7 +423,7 @@ public class EngineerServiceImpl implements EngineerService {
for
(
EngineerInfoEntity
e
:
engineers
)
{
for
(
EngineerInfoEntity
e
:
engineers
)
{
EngineerBusinessListResp
.
EngineerBusiness
item
=
new
EngineerBusinessListResp
.
EngineerBusiness
();
EngineerBusinessListResp
.
EngineerBusiness
item
=
new
EngineerBusinessListResp
.
EngineerBusiness
();
EngineerBusinessEntity
b
=
buss
.
getOrDefault
(
e
.
getEngineerCode
(),
null
);
EngineerBusinessEntity
b
=
buss
.
getOrDefault
(
e
.
getEngineerCode
(),
null
);
if
(
b
==
null
)
{
if
(
b
==
null
)
{
// 若没有配置,则不返回, 由同步程序初始化
// 若没有配置,则不返回, 由同步程序初始化
continue
;
continue
;
}
}
...
@@ -482,7 +484,7 @@ public class EngineerServiceImpl implements EngineerService {
...
@@ -482,7 +484,7 @@ public class EngineerServiceImpl implements EngineerService {
}
}
LocalDateTime
dtBegin
=
LocalDateTime
.
of
(
LocalDateTime
.
now
().
toLocalDate
(),
tBegin
);
LocalDateTime
dtBegin
=
LocalDateTime
.
of
(
LocalDateTime
.
now
().
toLocalDate
(),
tBegin
);
LocalDateTime
dtEnd
;
LocalDateTime
dtEnd
;
if
(
r
<
0
)
{
if
(
r
<
0
)
{
dtEnd
=
LocalDateTime
.
of
(
LocalDateTime
.
now
().
toLocalDate
(),
tEnd
);
dtEnd
=
LocalDateTime
.
of
(
LocalDateTime
.
now
().
toLocalDate
(),
tEnd
);
}
else
{
}
else
{
dtEnd
=
LocalDateTime
.
of
(
LocalDateTime
.
now
().
plusDays
(
1
).
toLocalDate
(),
tEnd
);
dtEnd
=
LocalDateTime
.
of
(
LocalDateTime
.
now
().
plusDays
(
1
).
toLocalDate
(),
tEnd
);
...
...
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