Browse Source

解决床位分配查询不正确问题

dzx 1 year ago
parent
commit
6e89842ca7

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

@@ -173,35 +173,29 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
             Integer distributeCount = 0;
             Integer maleCount = 0, femaleCount = 0;
             if(allStayMaleCountMap.get(record.getId()) != null){
-                maleCount = allStayMaleCountMap.get(record.getId());
-            }
-            if(maleCount == null){
-                maleCount = 0;
+                maleCount = allStayMaleCountMap.get(record.getId()) - (allArrangedMaleCountMap.get(record.getId()) == null ? 0 : allArrangedMaleCountMap.get(record.getId()));
             }
             record.setMaleCount(maleCount);
 
-            if(allStayFemaleCountMap.get(record.getId()) != null){
-                femaleCount = allStayMaleCountMap.get(record.getId());
-            }
-            if(femaleCount == null){
-                femaleCount = 0;
+            if(allStayFemaleCountMap.get(record.getId()) != null && allArrangedFemaleCountMap.get(record.getId()) != null){
+                femaleCount = allStayFemaleCountMap.get(record.getId()) - allArrangedFemaleCountMap.get(record.getId());
             }
             record.setFemaleCount(femaleCount);
 
             if("SB10001".equals(dto.getGender()) && allStayMaleCountMap.get(record.getId()) != null){
                 needCout = allStayMaleCountMap.get(record.getId());
                 if(allArrangedMaleCountMap.get(record.getId()) != null){
-                    distributeCount = needCout - (allArrangedMaleCountMap.get(record.getId()) == null ? 0 : allArrangedMaleCountMap.get(record.getId()));
+                    distributeCount = (allArrangedMaleCountMap.get(record.getId()) == null ? 0 : allArrangedMaleCountMap.get(record.getId()));
                 }
             }else if("SB10002".equals(dto.getGender())){
                 needCout = femaleCount;
                 if(allArrangedFemaleCountMap.get(record.getId()) != null){
-                    distributeCount = needCout - (allArrangedFemaleCountMap.get(record.getId()) == null ? 0 : allArrangedFemaleCountMap.get(record.getId()));
+                    distributeCount = (allArrangedFemaleCountMap.get(record.getId()) == null ? 0 : allArrangedFemaleCountMap.get(record.getId()));
                 }
             }else{
                 needCout = allStayCountMap.get(record.getId());
                 if(allArrangedCountMap.get(record.getId()) != null){
-                    distributeCount = needCout - (allArrangedCountMap.get(record.getId()) == null ? 0 : allArrangedCountMap.get(record.getId()));
+                    distributeCount = (allArrangedCountMap.get(record.getId()) == null ? 0 : allArrangedCountMap.get(record.getId()));
                 }
             }
             if(needCout == null){

+ 5 - 4
src/main/resources/mapper/room/RoomBedMapper.xml

@@ -156,11 +156,12 @@
     </select>
     <!-- 已分配的总人数 -->
     <select id="getAllArrangedCount" resultType="com.xjrsoft.module.room.vo.ClassStudentCountVo">
-        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
+        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
         WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
-        AND a2.class_id = a1.id
+        AND a4.delete_mark = 0
         GROUP BY a1.id
     </select>
     <!-- 已分配的男生人数 -->