|
@@ -588,28 +588,46 @@ public class ApportionController {
|
|
|
|
|
|
try {
|
|
|
//读取等待派位人员信息列表
|
|
|
+ Map<String,Object> bzSearchParams = new HashMap<>();
|
|
|
Map<String,Object> searchParams = new HashMap<>();
|
|
|
+ bzSearchParams.put("status","60");
|
|
|
searchParams.put("status","60");
|
|
|
if (StringUtils.isNotEmpty(schoolId)) {
|
|
|
+ bzSearchParams.put("schoolId",schoolId);
|
|
|
searchParams.put("schoolId",schoolId);
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(grade)) {
|
|
|
searchParams.put("grade",grade);
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(type)) {
|
|
|
+ bzSearchParams.put("type",type);
|
|
|
searchParams.put("type",type);
|
|
|
}
|
|
|
List<Sort> sortList = new ArrayList<>();
|
|
|
sortList.add(new Sort("create_time","desc"));
|
|
|
+
|
|
|
+ //必中
|
|
|
+ bzSearchParams.put("hit","1");
|
|
|
+ bzSearchParams.put("delFlag","0");
|
|
|
+ Page<ApplicationMiddle> bzPage = applicationMiddleService.pageSearch(bzSearchParams,1,100000,false,sortList);
|
|
|
+ //随机
|
|
|
+ searchParams.put("hit","0");
|
|
|
+ searchParams.put("delFlag","0");
|
|
|
Page<ApplicationMiddle> ApplicationMiddlePage = applicationMiddleService.pageSearch(searchParams,1,100000,false,sortList);
|
|
|
|
|
|
+ //学位数-必中的人数=剩余的数量
|
|
|
+ Integer syAmount = amount - bzPage.size();
|
|
|
+ if(syAmount < 0){
|
|
|
+ syAmount = 0;
|
|
|
+ }
|
|
|
+
|
|
|
//随机抽取
|
|
|
- if(amount > ApplicationMiddlePage.size()){
|
|
|
- amount = ApplicationMiddlePage.size();
|
|
|
+ if(syAmount > ApplicationMiddlePage.size()){
|
|
|
+ syAmount = ApplicationMiddlePage.size();
|
|
|
}
|
|
|
List<Integer> integerList = new ArrayList<>();
|
|
|
Random random = new Random();
|
|
|
- for(int i=0;i<amount;i++){
|
|
|
+ for(int i=0;i<syAmount;i++){
|
|
|
for(int j=0;j>-1;j++) {
|
|
|
Integer ran = random.nextInt(ApplicationMiddlePage.size());
|
|
|
if (!integerList.contains(ran)) {
|
|
@@ -638,6 +656,31 @@ public class ApportionController {
|
|
|
return msgResult;
|
|
|
}
|
|
|
|
|
|
+ //必中
|
|
|
+ for(int i=0;i<bzPage.size();i++){
|
|
|
+ ApplicationMiddle applicationMiddle = bzPage.get(i);
|
|
|
+ ApportionDetail apportionDetail = new ApportionDetail();
|
|
|
+ apportionDetail.setId(UUID.randomUUID().toString());
|
|
|
+ apportionDetail.setApportionId(apportion.getId());
|
|
|
+ apportionDetail.setApplicationId(applicationMiddle.getId());
|
|
|
+ apportionDetail.setStudentId(applicationMiddle.getStudentId());
|
|
|
+ apportionDetail.setPersonId(applicationMiddle.getPersonId());
|
|
|
+ apportionDetail.setSchoolId(schoolId);
|
|
|
+ apportionDetail.setWinner(true);
|
|
|
+ apportionDetail.setDelFlag(false);
|
|
|
+ apportionDetail.setCreateBy(subject);
|
|
|
+ apportionDetail.setCreateTime(new Date());
|
|
|
+ apportionDetail.setUpdateBy(subject);
|
|
|
+ apportionDetail.setUpdateTime(new Date());
|
|
|
+ apportionDetailService.insert(apportionDetail);
|
|
|
+
|
|
|
+ applicationMiddle.setStatus(String.valueOf(Integer.parseInt(applicationMiddle.getStatus()) + 10));
|
|
|
+ applicationMiddle.setOfferId(schoolId);
|
|
|
+ applicationMiddle.setUpdateBy(subject);
|
|
|
+ applicationMiddle.setUpdateTime(new Date());
|
|
|
+ applicationMiddleService.update(applicationMiddle);
|
|
|
+ }
|
|
|
+
|
|
|
//写入派位列表
|
|
|
for(int i=0;i<ApplicationMiddlePage.size();i++){
|
|
|
ApplicationMiddle applicationMiddle = ApplicationMiddlePage.get(i);
|