Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
V
volunteer_service
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
licc
volunteer_service
Commits
e027ff53
Commit
e027ff53
authored
Feb 09, 2021
by
licc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
查询方案优化
parent
fe1e4525
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
35 deletions
+9
-35
SchemeServiceImpl.java
...java/cn/wisenergy/service/app/impl/SchemeServiceImpl.java
+9
-35
No files found.
wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/SchemeServiceImpl.java
View file @
e027ff53
...
...
@@ -717,43 +717,17 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
}
//从剩下
来的数据中再重复上步操作
//从剩下
的数据中随机抽取,添满数组
if
(
result
.
size
()
<
total
)
{
List
<
Volunteer
>
otherListB
=
new
ArrayList
<>();
Map
<
String
,
List
<
Volunteer
>>
mapB
=
otherList
.
stream
().
collect
(
Collectors
.
groupingBy
(
Volunteer:
:
getLowestMark
));
for
(
Map
.
Entry
<
String
,
List
<
Volunteer
>>
entry
:
mapB
.
entrySet
())
{
List
<
Volunteer
>
volunteerList
=
entry
.
getValue
();
if
(
volunteerList
.
size
()
>
2
)
{
for
(
int
i
=
0
;
i
<
2
;
i
++)
{
Random
mRandom
=
new
Random
();
int
number
=
mRandom
.
nextInt
(
volunteerList
.
size
());
result
.
add
(
volunteerList
.
get
(
number
));
volunteerList
.
remove
(
number
);
}
otherListB
.
addAll
(
volunteerList
);
}
else
{
result
.
addAll
(
volunteerList
);
}
if
(
result
.
size
()
>=
total
)
{
return
result
.
subList
(
0
,
total
);
}
}
//从剩下的数据中随机抽取,添满数组
if
(
result
.
size
()
<
total
)
{
int
number
=
total
-
result
.
size
();
List
<
Volunteer
>
volunteers
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
number
;
i
++)
{
Random
mRandom
=
new
Random
();
int
count
=
mRandom
.
nextInt
(
otherListB
.
size
());
volunteers
.
add
(
otherListB
.
get
(
count
));
otherListB
.
remove
(
number
);
}
result
.
addAll
(
volunteers
);
int
number
=
total
-
result
.
size
();
List
<
Volunteer
>
volunteers
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
number
;
i
++)
{
Random
mRandom
=
new
Random
();
int
count
=
mRandom
.
nextInt
(
otherList
.
size
());
volunteers
.
add
(
otherList
.
get
(
count
));
otherList
.
remove
(
number
);
}
result
.
addAll
(
volunteers
);
}
return
result
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment