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
7e1a909a
Commit
7e1a909a
authored
May 08, 2021
by
cy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
方案优化
parent
56cfc490
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
121 additions
and
51 deletions
+121
-51
SchemeServiceImpl.java
...java/cn/wisenergy/service/app/impl/SchemeServiceImpl.java
+121
-51
No files found.
wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/SchemeServiceImpl.java
View file @
7e1a909a
...
@@ -409,7 +409,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -409,7 +409,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
return
R
.
error
(
"考生无副科成绩!"
);
return
R
.
error
(
"考生无副科成绩!"
);
}
}
//本科or专科
//本科or专科
String
gradeType
=
StringUtils
.
isBlank
(
schemeVo
.
getGradeType
())
?
null
:
schemeVo
.
getGradeType
();
String
gradeType
=
StringUtils
.
isBlank
(
schemeVo
.
getGradeType
())
?
null
:
schemeVo
.
getGradeType
();
//文化分
//文化分
Double
majorGrade
=
scoreInfo
.
getMajorGrade
();
Double
majorGrade
=
scoreInfo
.
getMajorGrade
();
//专业分
//专业分
...
@@ -516,7 +516,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -516,7 +516,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
}
//筛选出带和的字符串的限专业学校
//筛选出带和的字符串的限专业学校
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
while
(
iterator
.
hasNext
())
{
while
(
iterator
.
hasNext
())
{
Volunteer
info
=
iterator
.
next
();
Volunteer
info
=
iterator
.
next
();
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
...
@@ -541,7 +541,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -541,7 +541,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
volunteerVo
.
setUserId
(
user
.
getId
());
volunteerVo
.
setUserId
(
user
.
getId
());
//筛选出带和的字符串的限专业学校
//筛选出带和的字符串的限专业学校
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
while
(
iterator
.
hasNext
())
{
while
(
iterator
.
hasNext
())
{
Volunteer
info
=
iterator
.
next
();
Volunteer
info
=
iterator
.
next
();
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
...
@@ -728,6 +728,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -728,6 +728,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map
.
put
(
"type"
,
SchemeTypeEnums
.
UNDERGRADUATE_CULTURE
.
getCode
());
map
.
put
(
"type"
,
SchemeTypeEnums
.
UNDERGRADUATE_CULTURE
.
getCode
());
map
.
put
(
"downGrade"
,
downGrade
);
map
.
put
(
"downGrade"
,
downGrade
);
list
=
volunteerMapper
.
getVolunteerList
(
map
);
list
=
volunteerMapper
.
getVolunteerList
(
map
);
String
classStr
=
classNames
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
//筛选出带和的字符串的限专业学校并进行判断
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
while
(
iterator
.
hasNext
())
{
Volunteer
info
=
iterator
.
next
();
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
for
(
String
co
:
course
)
{
if
(!
classStr
.
contains
(
co
))
{
iterator
.
remove
();
break
;
}
}
}
}
if
(
list
.
size
()
<
firstRule
.
getNumber
())
{
if
(
list
.
size
()
<
firstRule
.
getNumber
())
{
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
firstRule
.
getNumber
(),
upGrade
,
downGrade
,
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
firstRule
.
getNumber
(),
upGrade
,
downGrade
,
SchemeTypeEnums
.
UNDERGRADUATE_CULTURE
.
getCode
(),
classNames
);
SchemeTypeEnums
.
UNDERGRADUATE_CULTURE
.
getCode
(),
classNames
);
...
@@ -741,7 +756,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -741,7 +756,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map
.
put
(
"type"
,
SchemeTypeEnums
.
JUNIOR_COLLEGE_MAJOR
.
getCode
());
map
.
put
(
"type"
,
SchemeTypeEnums
.
JUNIOR_COLLEGE_MAJOR
.
getCode
());
map
.
put
(
"downGrade"
,
downGrade
);
map
.
put
(
"downGrade"
,
downGrade
);
list
=
volunteerMapper
.
getVolunteerList
(
map
);
list
=
volunteerMapper
.
getVolunteerList
(
map
);
String
classStr
=
classNames
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
//筛选出带和的字符串的限专业学校并进行判断
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
while
(
iterator
.
hasNext
())
{
Volunteer
info
=
iterator
.
next
();
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
for
(
String
co
:
course
)
{
if
(!
classStr
.
contains
(
co
))
{
iterator
.
remove
();
break
;
}
}
}
}
//如果数据不满足最大数量,取不限专业最低分补充
//如果数据不满足最大数量,取不限专业最低分补充
if
(
list
.
size
()
<
secondRule
.
getNumber
())
{
if
(
list
.
size
()
<
secondRule
.
getNumber
())
{
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
secondRule
.
getNumber
(),
upGrade
,
downGrade
,
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
secondRule
.
getNumber
(),
upGrade
,
downGrade
,
...
@@ -788,7 +817,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -788,7 +817,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map
.
put
(
"downGrade"
,
downGrade
);
map
.
put
(
"downGrade"
,
downGrade
);
map
.
put
(
"type"
,
SchemeTypeEnums
.
UNDERGRADUATE_ARTS
.
getCode
());
map
.
put
(
"type"
,
SchemeTypeEnums
.
UNDERGRADUATE_ARTS
.
getCode
());
list
=
volunteerMapper
.
getVolunteerList
(
map
);
list
=
volunteerMapper
.
getVolunteerList
(
map
);
String
classStr
=
classNames
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
//筛选出带和的字符串的限专业学校并进行判断
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
while
(
iterator
.
hasNext
())
{
Volunteer
info
=
iterator
.
next
();
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
for
(
String
co
:
course
)
{
if
(!
classStr
.
contains
(
co
))
{
iterator
.
remove
();
break
;
}
}
}
}
//如果数据不满足最大数量,取不限专业最低分补充
//如果数据不满足最大数量,取不限专业最低分补充
if
(
list
.
size
()
<
secondRule
.
getNumber
())
{
if
(
list
.
size
()
<
secondRule
.
getNumber
())
{
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
firstRule
.
getNumber
(),
upGrade
,
downGrade
,
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
firstRule
.
getNumber
(),
upGrade
,
downGrade
,
...
@@ -813,7 +856,6 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -813,7 +856,6 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//2、考生是否能报取美术专科
//2、考生是否能报取美术专科
if
(
secondCulture
>=
secondRule
.
getCultureMin
()
&&
secondMajor
>=
secondRule
.
getProfessionMin
())
{
if
(
secondCulture
>=
secondRule
.
getCultureMin
()
&&
secondMajor
>=
secondRule
.
getProfessionMin
())
{
//浮动分数
//浮动分数
double
upGrade
=
secondRuleTotal
+
secondRule
.
getUpMark
();
double
upGrade
=
secondRuleTotal
+
secondRule
.
getUpMark
();
double
downGrade
=
secondRuleTotal
-
secondRule
.
getDownMark
();
double
downGrade
=
secondRuleTotal
-
secondRule
.
getDownMark
();
...
@@ -823,7 +865,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -823,7 +865,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
}
map
.
put
(
"type"
,
SchemeTypeEnums
.
JUNIOR_COLLEGE_ARTS
.
getCode
());
map
.
put
(
"type"
,
SchemeTypeEnums
.
JUNIOR_COLLEGE_ARTS
.
getCode
());
list
=
volunteerMapper
.
getVolunteerList
(
map
);
list
=
volunteerMapper
.
getVolunteerList
(
map
);
String
classStr
=
classNames
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
//筛选出带和的字符串的限专业学校并进行判断
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
while
(
iterator
.
hasNext
())
{
Volunteer
info
=
iterator
.
next
();
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
for
(
String
co
:
course
)
{
if
(!
classStr
.
contains
(
co
))
{
iterator
.
remove
();
break
;
}
}
}
}
//如果数据不满足最大数量,取不限专业最低分补充
//如果数据不满足最大数量,取不限专业最低分补充
if
(
list
.
size
()
<
secondRule
.
getNumber
())
{
if
(
list
.
size
()
<
secondRule
.
getNumber
())
{
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
secondRule
.
getNumber
(),
upGrade
,
downGrade
,
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
secondRule
.
getNumber
(),
upGrade
,
downGrade
,
...
@@ -869,7 +925,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -869,7 +925,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map
.
put
(
"downGrade"
,
downGrade
);
map
.
put
(
"downGrade"
,
downGrade
);
map
.
put
(
"type"
,
SchemeTypeEnums
.
UNDERGRADUATE_LITERATURE
.
getCode
());
map
.
put
(
"type"
,
SchemeTypeEnums
.
UNDERGRADUATE_LITERATURE
.
getCode
());
list
=
volunteerMapper
.
getVolunteerList
(
map
);
list
=
volunteerMapper
.
getVolunteerList
(
map
);
String
classStr
=
classNames
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
//筛选出带和的字符串的限专业学校并进行判断
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
while
(
iterator
.
hasNext
())
{
Volunteer
info
=
iterator
.
next
();
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
for
(
String
co
:
course
)
{
if
(!
classStr
.
contains
(
co
))
{
iterator
.
remove
();
break
;
}
}
}
}
//如果数据不满足最大数量,取不限专业最低分补充
//如果数据不满足最大数量,取不限专业最低分补充
if
(
list
.
size
()
<
secondRule
.
getNumber
())
{
if
(
list
.
size
()
<
secondRule
.
getNumber
())
{
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
secondRule
.
getNumber
(),
upGrade
,
downGrade
,
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
secondRule
.
getNumber
(),
upGrade
,
downGrade
,
...
@@ -916,7 +986,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -916,7 +986,21 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map
.
put
(
"downGrade"
,
downGrade
);
map
.
put
(
"downGrade"
,
downGrade
);
map
.
put
(
"type"
,
SchemeTypeEnums
.
UNDERGRADUATE_SPORTS
.
getCode
());
map
.
put
(
"type"
,
SchemeTypeEnums
.
UNDERGRADUATE_SPORTS
.
getCode
());
list
=
volunteerMapper
.
getVolunteerList
(
map
);
list
=
volunteerMapper
.
getVolunteerList
(
map
);
String
classStr
=
classNames
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
//筛选出带和的字符串的限专业学校并进行判断
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
while
(
iterator
.
hasNext
())
{
Volunteer
info
=
iterator
.
next
();
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
for
(
String
co
:
course
)
{
if
(!
classStr
.
contains
(
co
))
{
iterator
.
remove
();
break
;
}
}
}
}
//如果数据不满足最大数量,取不限专业最低分补充
//如果数据不满足最大数量,取不限专业最低分补充
if
(
list
.
size
()
<
secondRule
.
getNumber
())
{
if
(
list
.
size
()
<
secondRule
.
getNumber
())
{
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
secondRule
.
getNumber
(),
upGrade
,
downGrade
,
List
<
Volunteer
>
fillList
=
fillUpVolunteer
(
list
,
secondRule
.
getNumber
(),
upGrade
,
downGrade
,
...
@@ -995,20 +1079,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -995,20 +1079,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
private
List
<
Volunteer
>
fillUpVolunteer
(
List
<
Volunteer
>
list
,
Integer
number
,
double
max
,
double
min
,
Integer
type
,
List
<
String
>
classNames
)
{
private
List
<
Volunteer
>
fillUpVolunteer
(
List
<
Volunteer
>
list
,
Integer
number
,
double
max
,
double
min
,
Integer
type
,
List
<
String
>
classNames
)
{
String
classStr
=
classNames
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
String
classStr
=
classNames
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
));
//筛选出带和的字符串的限专业学校并进行判断
Iterator
<
Volunteer
>
iterator
=
list
.
iterator
();
while
(
iterator
.
hasNext
()){
Volunteer
info
=
iterator
.
next
();
if
(
info
.
getCourseDemand
().
contains
(
"和"
))
{
String
[]
course
=
info
.
getCourseDemand
().
split
(
"和"
);
for
(
String
co
:
course
)
{
if
(!
classStr
.
contains
(
co
))
{
iterator
.
remove
();
break
;
}
}
}
}
//已存在的志愿ids
//已存在的志愿ids
List
<
Integer
>
volunteerIds
=
list
.
stream
().
map
(
Volunteer:
:
getId
).
collect
(
Collectors
.
toList
());
List
<
Integer
>
volunteerIds
=
list
.
stream
().
map
(
Volunteer:
:
getId
).
collect
(
Collectors
.
toList
());
...
@@ -1025,6 +1096,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -1025,6 +1096,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
List
<
Volunteer
>
fillList
=
volunteerMapper
.
getFillList
(
map
);
List
<
Volunteer
>
fillList
=
volunteerMapper
.
getFillList
(
map
);
List
<
Volunteer
>
resultList
=
new
ArrayList
<>();
List
<
Volunteer
>
resultList
=
new
ArrayList
<>();
List
<
Volunteer
>
otherList
=
new
ArrayList
<>();
List
<
Volunteer
>
otherList
=
new
ArrayList
<>();
List
<
Volunteer
>
endList
=
new
ArrayList
<>();
Map
<
Double
,
List
<
Volunteer
>>
mapObj
=
fillList
.
stream
().
collect
(
Collectors
.
groupingBy
(
Volunteer:
:
getLowestMark
Map
<
Double
,
List
<
Volunteer
>>
mapObj
=
fillList
.
stream
().
collect
(
Collectors
.
groupingBy
(
Volunteer:
:
getLowestMark
));
));
...
@@ -1036,7 +1108,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -1036,7 +1108,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
int
count
=
mRandom
.
nextInt
(
volunteers
.
size
());
int
count
=
mRandom
.
nextInt
(
volunteers
.
size
());
//判断限制专业
//判断限制专业
String
courseDemand
=
volunteers
.
get
(
count
).
getCourseDemand
();
String
courseDemand
=
volunteers
.
get
(
count
).
getCourseDemand
();
if
(
courseDemand
.
contains
(
"和"
))
{
if
(
courseDemand
.
contains
(
"和"
))
{
String
[]
course
=
courseDemand
.
split
(
"和"
);
String
[]
course
=
courseDemand
.
split
(
"和"
);
for
(
String
co
:
course
)
{
for
(
String
co
:
course
)
{
if
(!
classStr
.
contains
(
co
))
{
if
(!
classStr
.
contains
(
co
))
{
...
@@ -1044,12 +1116,12 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -1044,12 +1116,12 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
break
;
break
;
}
}
}
}
}
else
{
}
else
{
resultList
.
add
(
volunteers
.
get
(
count
));
resultList
.
add
(
volunteers
.
get
(
count
));
volunteers
.
remove
(
count
);
volunteers
.
remove
(
count
);
otherList
.
addAll
(
volunteers
);
}
}
}
}
otherList
.
addAll
(
volunteers
);
}
else
{
}
else
{
resultList
.
addAll
(
volunteers
);
resultList
.
addAll
(
volunteers
);
}
}
...
@@ -1071,7 +1143,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -1071,7 +1143,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
int
count
=
mRandom
.
nextInt
(
volunteers
.
size
());
int
count
=
mRandom
.
nextInt
(
volunteers
.
size
());
//判断限制专业
//判断限制专业
String
courseDemand
=
volunteers
.
get
(
count
).
getCourseDemand
();
String
courseDemand
=
volunteers
.
get
(
count
).
getCourseDemand
();
if
(
courseDemand
.
contains
(
"和"
))
{
if
(
courseDemand
.
contains
(
"和"
))
{
String
[]
course
=
courseDemand
.
split
(
"和"
);
String
[]
course
=
courseDemand
.
split
(
"和"
);
for
(
String
co
:
course
)
{
for
(
String
co
:
course
)
{
if
(!
classStr
.
contains
(
co
))
{
if
(!
classStr
.
contains
(
co
))
{
...
@@ -1079,12 +1151,13 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -1079,12 +1151,13 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
break
;
break
;
}
}
}
}
}
else
{
}
else
{
resultList
.
add
(
volunteers
.
get
(
count
));
resultList
.
add
(
volunteers
.
get
(
count
));
volunteers
.
remove
(
count
);
volunteers
.
remove
(
count
);
otherList
.
addAll
(
volunteers
);
}
}
}
}
endList
.
addAll
(
volunteers
);
}
else
{
}
else
{
resultList
.
addAll
(
volunteers
);
resultList
.
addAll
(
volunteers
);
}
}
...
@@ -1096,36 +1169,32 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -1096,36 +1169,32 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
}
//从剩下的数据中随机抽取,添满数组
//从剩下的数据中随机抽取,添满数组
Collections
.
shuffle
(
other
List
);
Collections
.
shuffle
(
end
List
);
if
(
resultList
.
size
()
<
totalNumber
)
{
if
(
resultList
.
size
()
<
totalNumber
)
{
int
num
=
totalNumber
-
resultList
.
size
();
int
num
=
totalNumber
-
resultList
.
size
();
List
<
Volunteer
>
volunteers
=
new
ArrayList
<>();
List
<
Volunteer
>
volunteers
=
new
ArrayList
<>();
if
(
other
List
.
size
()
>
0
)
{
if
(
end
List
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
num
;
i
++)
{
for
(
int
i
=
0
;
i
<
num
;
i
++)
{
Random
mRandom
=
new
Random
();
Random
mRandom
=
new
Random
();
if
(
otherList
.
size
()
>
0
)
{
int
count
=
mRandom
.
nextInt
(
endList
.
size
());
int
count
=
mRandom
.
nextInt
(
otherList
.
size
());
if
(
resultList
.
contains
(
endList
.
get
(
count
)))
{
if
(
resultList
.
contains
(
otherList
.
get
(
count
)))
{
endList
.
remove
(
count
);
otherList
.
remove
(
count
);
continue
;
continue
;
}
}
//判断限制专业
//判断限制专业
String
courseDemand
=
other
List
.
get
(
count
).
getCourseDemand
();
String
courseDemand
=
end
List
.
get
(
count
).
getCourseDemand
();
if
(
courseDemand
.
contains
(
"和"
))
{
if
(
courseDemand
.
contains
(
"和"
))
{
String
[]
course
=
courseDemand
.
split
(
"和"
);
String
[]
course
=
courseDemand
.
split
(
"和"
);
for
(
String
co
:
course
)
{
for
(
String
co
:
course
)
{
if
(!
classStr
.
contains
(
co
))
{
if
(!
classStr
.
contains
(
co
))
{
other
List
.
remove
(
count
);
end
List
.
remove
(
count
);
break
;
break
;
}
}
}
}
continue
;
continue
;
}
}
volunteers
.
add
(
otherList
.
get
(
count
));
volunteers
.
add
(
endList
.
get
(
count
));
otherList
.
remove
(
count
);
endList
.
remove
(
count
);
}
else
{
break
;
}
}
}
}
}
resultList
.
addAll
(
volunteers
);
resultList
.
addAll
(
volunteers
);
...
@@ -1246,4 +1315,5 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
...
@@ -1246,4 +1315,5 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
}
}
}
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