Browse Source

添加派位可控

xiao547607 3 years ago
parent
commit
b1f55fe774

+ 5 - 6
common/src/main/resources/mapper/base/ApplicationMiddle.xml

@@ -180,9 +180,7 @@
 			LEFT JOIN base_school_number g ON a.school_number_id = g.id_
 		]]>
         <where>
-            <if test="searchParams.delFlag != null">
-                and a.del_flag like #{searchParams.delFlag}
-            </if>
+            a.del_flag = 0
             <if test="searchParams.type != null">
                 and a.type_ like #{searchParams.type}
             </if>
@@ -209,6 +207,9 @@
                 and a.create_time <= #{searchParams.endCreateTime}
                 ]]>
             </if>
+            <if test="searchParams.hit != null">
+                and a.hit_ = #{searchParams.hit}
+            </if>
 
             <if test="searchParams.grade != null">
                 and g.grade_ = #{searchParams.grade}
@@ -278,9 +279,7 @@
 			LEFT JOIN base_school_number g ON a.school_number_id = g.id_
 		]]>
         <where>
-            <if test="searchParams.delFlag != null">
-                and a.del_flag = #{searchParams.delFlag}
-            </if>
+             a.del_flag = 0
             <if test="searchParams.type != null">
                 and a.type_ like #{searchParams.type}
             </if>

+ 46 - 3
web/src/main/java/com/jpsoft/campus/modules/base/controller/ApportionController.java

@@ -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);