liu 1 anno fa
parent
commit
b6b72d2c3c

+ 37 - 21
src/main/java/com/template/controller/WelcomeDormitoryController.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.template.api.WelcomeDormitoryControllerAPI;
 import com.template.api.WelcomeStudentControllerAPI;
+import com.template.common.utils.BeanUtil;
 import com.template.common.utils.ExcelUtils;
 import com.template.model.enumModel.eFileType;
 import com.template.model.pojo.*;
@@ -75,8 +76,8 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
             return CommonResult.fail("请勿跨性别添加寝室");
         }
 
-        WelcomeDormitory existCount =welcomeDormitoryService.queryExistDormotory(welcomeDormitory.getSchoolId(),welcomeDormitory.getBuildId(),welcomeDormitory.getDormitory());
-        if(existCount != null && existCount.getId().intValue() != welcomeDormitory.getId().intValue()){
+        WelcomeDormitory existCount = welcomeDormitoryService.queryExistDormotory(welcomeDormitory.getSchoolId(), welcomeDormitory.getBuildId(), welcomeDormitory.getDormitory());
+        if (existCount != null && existCount.getId().intValue() != welcomeDormitory.getId().intValue()) {
             return CommonResult.ok("当前寝室号已存在");
         }
 
@@ -149,10 +150,10 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
             return CommonResult.fail("请勿跨性别添加寝室");
         }
 
-         WelcomeDormitory existCount =welcomeDormitoryService.queryExistDormotory(welcomeDormitory.getSchoolId(),welcomeDormitory.getBuildId(),welcomeDormitory.getDormitory());
-         if(existCount != null && existCount.getId().intValue() != welcomeDormitory.getId().intValue()){
-             return CommonResult.ok("当前寝室号已存在");
-         }
+        WelcomeDormitory existCount = welcomeDormitoryService.queryExistDormotory(welcomeDormitory.getSchoolId(), welcomeDormitory.getBuildId(), welcomeDormitory.getDormitory());
+        if (existCount != null && existCount.getId().intValue() != welcomeDormitory.getId().intValue()) {
+            return CommonResult.ok("当前寝室号已存在");
+        }
 
 
         WelcomeDormitory one = welcomeDormitoryService.getById(welcomeDormitory.getId());
@@ -245,33 +246,49 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
     }
 
     @Override
-    public CommonResult listDormitory(int currentPage, int pageCount, Integer schoolId,Integer buildId,Integer dormitoryId,String sex,Integer collegeId,Integer status,Integer retentionState) {
+    public CommonResult listDormitory(int currentPage, int pageCount, Integer schoolId, Integer buildId, Integer dormitoryId, String sex, Integer collegeId, Integer status, Integer retentionState) {
 
-        PageUtils<WelcomeDormitoryVo> pageUtils = welcomeDormitoryService.listDormitoryPage(currentPage, pageCount, schoolId, buildId, dormitoryId, sex, collegeId, status,retentionState);
+        PageUtils<WelcomeDormitoryVo> pageUtils = welcomeDormitoryService.listDormitoryPage(currentPage, pageCount, schoolId, buildId, dormitoryId, sex, collegeId, status, retentionState);
 
         if (pageUtils != null && pageUtils.getList() != null && pageUtils.getList().size() > 0) {
             List<Integer> dormitoryIds = pageUtils.getList().stream().map(WelcomeDormitoryVo::getId).collect(Collectors.toList());
             List<WelcomeBed> beds = welcomeBedService.queryBeds(dormitoryIds);
 
+            ArrayList<WelcomeDormitory> welcomeDormitories = new ArrayList<>();
             for (WelcomeDormitoryVo wdv : pageUtils.getList()) {
                 //入住人数
                 int count = (int) beds.stream().filter(e -> e.getDormitoryId().intValue() == wdv.getId().intValue() && StringUtils.hasText(e.getStudentCard())).count();
                 if (count == wdv.getBedNumber().intValue()) {//满员 1
                     //更改状态
-                    wdv.setStatus(1);
-                    wdv.setFreeBedNumber(0);
+                    if (wdv.getStatus() != 1 || wdv.getFreeBedNumber() != 0) {
+                        wdv.setStatus(1);
+                        wdv.setFreeBedNumber(0);
+                        WelcomeDormitory welcomeDormitory = new WelcomeDormitory();
+                        BeanUtil.copyProperties(wdv,welcomeDormitory);
+                        welcomeDormitories.add(welcomeDormitory);
+                    }
+
                 } else if (count > 0 && count < wdv.getBedNumber().intValue()) {//缺额 3
                     //更改状态
-                    wdv.setStatus(3);
-                    wdv.setFreeBedNumber(wdv.getBedNumber()-count);
+                    if (wdv.getStatus() != 3 || wdv.getFreeBedNumber() != wdv.getBedNumber() - count) {
+                        wdv.setStatus(3);
+                        wdv.setFreeBedNumber(wdv.getBedNumber() - count);
+                        WelcomeDormitory welcomeDormitory = new WelcomeDormitory();
+                        BeanUtil.copyProperties(wdv,welcomeDormitory);
+                        welcomeDormitories.add(welcomeDormitory);
+                    }
                 } else {//全空 2
                     //更改状态
-                    wdv.setStatus(2);
-                    wdv.setFreeBedNumber(wdv.getBedNumber()-count);
+                    if (wdv.getStatus() != 2 || wdv.getFreeBedNumber() != wdv.getBedNumber() - count) {
+                        wdv.setStatus(2);
+                        wdv.setFreeBedNumber(wdv.getBedNumber() - count);
+                        WelcomeDormitory welcomeDormitory = new WelcomeDormitory();
+                        BeanUtil.copyProperties(wdv,welcomeDormitory);
+                        welcomeDormitories.add(welcomeDormitory);
+                    }
                 }
-
-
             }
+            welcomeDormitoryService.updateBatchById(welcomeDormitories);
         }
 
 
@@ -617,7 +634,7 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
     }
 
     @Override
-    public void welcomeDormitoryExport(HttpServletResponse response, Integer schoolId,Integer buildId,Integer dormitoryId,String sex,Integer collegeId,Integer status,Integer retentionState) {
+    public void welcomeDormitoryExport(HttpServletResponse response, Integer schoolId, Integer buildId, Integer dormitoryId, String sex, Integer collegeId, Integer status, Integer retentionState) {
         List<WelcomeDormitoryVo> result = welcomeDormitoryService.listDormitory(schoolId, buildId, dormitoryId, sex, collegeId, status, retentionState);
         //导出
         Workbook workbook = new XSSFWorkbook();
@@ -657,8 +674,8 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
     @Override
     public CommonResult batchOperation(BatchOperationVo batchOperationVo) {
         List<Integer> dormitoryIds = batchOperationVo.getDormitoryIds();
-        LambdaQueryWrapper<WelcomeDormitory> wrapper=new LambdaQueryWrapper<>();
-        wrapper.in(WelcomeDormitory::getId,dormitoryIds);
+        LambdaQueryWrapper<WelcomeDormitory> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(WelcomeDormitory::getId, dormitoryIds);
         List<WelcomeDormitory> list = welcomeDormitoryService.list(wrapper);
         if (ObjectUtils.isNotEmpty(list)) {
             for (WelcomeDormitory welcomeDormitory : list) {
@@ -671,12 +688,11 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
 
     @Override
     public CommonResult collegeDormitoryCollegeGroup(Integer schoolId, Integer buildId, Integer collegeId) {
-        List<WelcomeDormitory> list = welcomeDormitoryService.collegeDormitoryCollegeGroup(schoolId, buildId,collegeId);
+        List<WelcomeDormitory> list = welcomeDormitoryService.collegeDormitoryCollegeGroup(schoolId, buildId, collegeId);
 
         return CommonResult.ok(list);
     }
 
 
-
 }