Ver código fonte

解决分配床位报错的问题

dzx 1 ano atrás
pai
commit
050e5d8104

+ 12 - 3
src/main/java/com/xjrsoft/module/room/service/impl/RoomBedServiceImpl.java

@@ -184,13 +184,22 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
 
             if("SB10001".equals(dto.getGender()) && allStayMaleCountMap.get(record.getId()) != null){
                 needCout = allStayMaleCountMap.get(record.getId());
-                distributeCount = needCout - (allArrangedMaleCountMap.get(record.getId()) == null ? 0 : allArrangedMaleCountMap.get(record.getId()));
+                distributeCount = needCout;
+                if(allArrangedMaleCountMap.get(record.getId()) != null){
+                    distributeCount = needCout - (allArrangedMaleCountMap.get(record.getId()) == null ? 0 : allArrangedMaleCountMap.get(record.getId()));
+                }
             }else if("SB10002".equals(dto.getGender())){
                 needCout = femaleCount;
-                distributeCount = needCout - (allArrangedFemaleCountMap.get(record.getId()) == null ? 0 : allArrangedFemaleCountMap.get(record.getId()));
+                distributeCount = needCout;
+                if(allArrangedFemaleCountMap.get(record.getId()) != null){
+                    distributeCount = needCout - (allArrangedFemaleCountMap.get(record.getId()) == null ? 0 : allArrangedFemaleCountMap.get(record.getId()));
+                }
             }else{
                 needCout = allStayCountMap.get(record.getId());
-                distributeCount = needCout - (allArrangedCountMap.get(record.getId()) == null ? 0 : allArrangedCountMap.get(record.getId()));
+                distributeCount = needCout;
+                if(allArrangedCountMap.get(record.getId()) != null){
+                    distributeCount = needCout - (allArrangedCountMap.get(record.getId()) == null ? 0 : allArrangedCountMap.get(record.getId()));
+                }
             }
 
             record.setNeedCount(needCout);

+ 10 - 9
src/main/resources/mapper/room/RoomBedMapper.xml

@@ -126,7 +126,7 @@
 
     <!-- 查询班上需要住宿的人数 -->
     <select id="getAllStayCount" resultType="com.xjrsoft.module.room.vo.ClassStudentCountVo">
-        SELECT t1.id,COUNT(*) FROM base_class t1
+        SELECT t1.id as class_id,COUNT(*) as student_count FROM base_class t1
         LEFT JOIN base_student_school_roll t2 ON t1.id = t2.class_id
         LEFT JOIN xjr_user t3 ON t2.user_id = t3.id
         WHERE t1.delete_mark = 0
@@ -136,7 +136,7 @@
 
     <!-- 需要安排的男生总人数 -->
     <select id="getAllStayMaleCount" resultType="com.xjrsoft.module.room.vo.ClassStudentCountVo">
-        SELECT t1.id,COUNT(*) FROM base_class t1
+        SELECT t1.id as class_id,COUNT(*) as student_count FROM base_class t1
         LEFT JOIN base_student_school_roll t2 ON t1.id = t2.class_id
         LEFT JOIN xjr_user t3 ON t2.user_id = t3.id
         WHERE t1.delete_mark = 0
@@ -146,7 +146,7 @@
     </select>
     <!-- 需要安排的女生总人数 -->
     <select id="getAllStayFemaleCount" resultType="com.xjrsoft.module.room.vo.ClassStudentCountVo">
-        SELECT t1.id,COUNT(*) FROM base_class t1
+        SELECT t1.id as class_id,COUNT(*) as student_count FROM base_class t1
         LEFT JOIN base_student_school_roll t2 ON t1.id = t2.class_id
         LEFT JOIN xjr_user t3 ON t2.user_id = t3.id
         WHERE t1.delete_mark = 0
@@ -156,31 +156,32 @@
     </select>
     <!-- 已分配的总人数 -->
     <select id="getAllArrangedCount" resultType="com.xjrsoft.module.room.vo.ClassStudentCountVo">
-        SELECT COUNT(*) FROM room_bed a1
+        SELECT a1.id as class_id,COUNT(*) as student_count FROM room_bed a1
         LEFT JOIN base_student_school_roll a2 ON a1.student_user_id = a2.user_id
         LEFT JOIN xjr_user c4 ON a2.user_id = c4.id
         WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
-        AND a2.class_id = t1.id
+        AND a2.class_id = a1.id
+        GROUP BY a1.id
     </select>
     <!-- 已分配的男生人数 -->
     <select id="getAllArrangedMaleCount" resultType="com.xjrsoft.module.room.vo.ClassStudentCountVo">
-        SELECT a1.id,COUNT(*) FROM base_class a1
+        SELECT a1.id as class_id,COUNT(*) as student_count FROM base_class a1
         LEFT JOIN base_student_school_roll a2 ON a1.id = a2.class_id
         LEFT JOIN room_bed a3 ON a2.user_id = a3.student_user_id
         LEFT JOIN xjr_user a4 ON a3.student_user_id = a4.id AND a4.gender = 1
         WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
         AND a4.delete_mark = 0
-        GROUP BY a1.idd
+        GROUP BY a1.id
     </select>
     <!-- 已分配的女生人数 -->
     <select id="getAllArrangedFemaleCount" resultType="com.xjrsoft.module.room.vo.ClassStudentCountVo">
-        SELECT a1.id,COUNT(*) FROM base_class a1
+        SELECT a1.id as class_id,COUNT(*) as student_count FROM base_class a1
         LEFT JOIN base_student_school_roll a2 ON a1.id = a2.class_id
         LEFT JOIN room_bed a3 ON a2.user_id = a3.student_user_id
         LEFT JOIN xjr_user a4 ON a3.student_user_id = a4.id AND a4.gender = 2
         WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
         AND a4.delete_mark = 0
-        GROUP BY a1.idd
+        GROUP BY a1.id
     </select>
     <!--查询分配床位班级列表的各个人数 - 结束 -->