Browse Source

添加寝室

夏文涛 1 year ago
parent
commit
9f0e69addb

+ 52 - 12
src/main/java/com/template/controller/WelcomeDormitoryController.java

@@ -25,6 +25,7 @@ import org.apache.poi.xssf.usermodel.XSSFRow;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
@@ -37,6 +38,7 @@ import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Optional;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -78,7 +80,7 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
         welcomeDormitory.setFreeBedNumber(welcomeDormitory.getBedNumber());
         welcomeDormitory.setFreeBedNumber(welcomeDormitory.getBedNumber());
 
 
         boolean insertWd = welcomeDormitoryService.save(welcomeDormitory);
         boolean insertWd = welcomeDormitoryService.save(welcomeDormitory);
-        if(!insertWd){
+        if (!insertWd) {
             return CommonResult.fail("新增失败");
             return CommonResult.fail("新增失败");
 
 
         }
         }
@@ -104,9 +106,9 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
             welcomeBeds.add(welcomeBed);
             welcomeBeds.add(welcomeBed);
         }
         }
 
 
-        if(welcomeBeds != null && welcomeBeds.size() > 0){
+        if (welcomeBeds != null && welcomeBeds.size() > 0) {
             boolean insertBeds = welcomeBedService.saveBatch(welcomeBeds);
             boolean insertBeds = welcomeBedService.saveBatch(welcomeBeds);
-            if(!insertBeds){
+            if (!insertBeds) {
                 return CommonResult.fail("新增失败");
                 return CommonResult.fail("新增失败");
             }
             }
         }
         }
@@ -141,21 +143,36 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
             }
             }
         }
         }
 
 
+        List<WelcomeBed> beds = welcomeBedService.queryDormitorys(one.getId());
+
+        //入住人数
+        int count = (int) beds.stream().filter(e -> e.getDormitoryId().intValue() == welcomeDormitory.getId().intValue() && StringUtils.hasText(e.getStudentCard())).count();
+        if (count == welcomeDormitory.getBedNumber().intValue()) {//满员 1
+            //更改状态
+            welcomeDormitory.setStatus(1);
+        } else if (count > 0 && count < welcomeDormitory.getBedNumber().intValue()) {//缺额 3
+            //更改状态
+            welcomeDormitory.setStatus(3);
+        } else {//全空 2
+            //更改状态
+            welcomeDormitory.setStatus(2);
+        }
+
         boolean updateDormitory = welcomeDormitoryService.updateById(welcomeDormitory);
         boolean updateDormitory = welcomeDormitoryService.updateById(welcomeDormitory);
-        if(!updateDormitory){
+        if (!updateDormitory) {
             return CommonResult.fail("编辑失败");
             return CommonResult.fail("编辑失败");
         }
         }
 
 
 //        动态修改床位
 //        动态修改床位
         List<WelcomeBed> list = welcomeBedService.listWelcomeBed(welcomeDormitory.getId());
         List<WelcomeBed> list = welcomeBedService.listWelcomeBed(welcomeDormitory.getId());
-        if(list != null && list.size() > 0){
+        if (list != null && list.size() > 0) {
             ArrayList<WelcomeBed> welcomeBeds = new ArrayList<>();
             ArrayList<WelcomeBed> welcomeBeds = new ArrayList<>();
             //动态生成床位
             //动态生成床位
             Integer bedNumber = welcomeDormitory.getBedNumber();
             Integer bedNumber = welcomeDormitory.getBedNumber();
             for (int i = 1; i <= bedNumber; i++) {
             for (int i = 1; i <= bedNumber; i++) {
                 int intData = i;
                 int intData = i;
                 Optional<WelcomeBed> oBed = list.stream().filter(e -> e.getNumber().intValue() == intData).findFirst();
                 Optional<WelcomeBed> oBed = list.stream().filter(e -> e.getNumber().intValue() == intData).findFirst();
-                if(oBed != null && oBed.isPresent()){
+                if (oBed != null && oBed.isPresent()) {
                     WelcomeBed wb = new WelcomeBed();
                     WelcomeBed wb = new WelcomeBed();
                     wb = oBed.get();
                     wb = oBed.get();
                     wb.setSchool(welcomeDormitory.getSchool());
                     wb.setSchool(welcomeDormitory.getSchool());
@@ -166,7 +183,7 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
                     wb.setDormitoryId(welcomeDormitory.getId());
                     wb.setDormitoryId(welcomeDormitory.getId());
                     wb.setSex(welcomeDormitory.getSex());
                     wb.setSex(welcomeDormitory.getSex());
                     welcomeBeds.add(wb);
                     welcomeBeds.add(wb);
-                }else{
+                } else {
                     WelcomeBed welcomeInsert = new WelcomeBed();
                     WelcomeBed welcomeInsert = new WelcomeBed();
                     welcomeInsert.setNumber(i);
                     welcomeInsert.setNumber(i);
                     welcomeInsert.setSchool(welcomeDormitory.getSchool());
                     welcomeInsert.setSchool(welcomeDormitory.getSchool());
@@ -180,7 +197,7 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
                     welcomeBeds.add(welcomeInsert);
                     welcomeBeds.add(welcomeInsert);
                 }
                 }
             }
             }
-        }else {
+        } else {
             //动态生成床位
             //动态生成床位
             Integer bedNumber = welcomeDormitory.getBedNumber();
             Integer bedNumber = welcomeDormitory.getBedNumber();
             ArrayList<WelcomeBed> welcomeBeds = new ArrayList<>();
             ArrayList<WelcomeBed> welcomeBeds = new ArrayList<>();
@@ -197,9 +214,9 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
                 welcomeBed.setIsCheck(0);
                 welcomeBed.setIsCheck(0);
                 welcomeBeds.add(welcomeBed);
                 welcomeBeds.add(welcomeBed);
             }
             }
-            if(welcomeBeds != null && welcomeBeds.size() > 0){
+            if (welcomeBeds != null && welcomeBeds.size() > 0) {
                 boolean insertBeds = welcomeBedService.saveBatch(welcomeBeds);
                 boolean insertBeds = welcomeBedService.saveBatch(welcomeBeds);
-                if(!insertBeds){
+                if (!insertBeds) {
                     return CommonResult.fail("编辑失败");
                     return CommonResult.fail("编辑失败");
                 }
                 }
             }
             }
@@ -215,6 +232,29 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
 
 
         PageUtils<WelcomeDormitoryVo> pageUtils = welcomeDormitoryService.listDormitory(currentPage, pageCount, schoolId, buildId, dormitoryId, sex, status, majorId, collegeId);
         PageUtils<WelcomeDormitoryVo> pageUtils = welcomeDormitoryService.listDormitory(currentPage, pageCount, schoolId, buildId, dormitoryId, sex, status, majorId, collegeId);
 
 
+        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);
+
+            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);
+                } else if (count > 0 && count < wdv.getBedNumber().intValue()) {//缺额 3
+                    //更改状态
+                    wdv.setStatus(3);
+                } else {//全空 2
+                    //更改状态
+                    wdv.setStatus(2);
+                }
+
+
+            }
+        }
+
+
         return CommonResult.ok(pageUtils);
         return CommonResult.ok(pageUtils);
     }
     }
 
 
@@ -227,10 +267,10 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
 
 
 
 
     @Override
     @Override
-    public CommonResult bedNumberGroup(Integer schoolId,Integer buildId,Integer dormitoryId) {
+    public CommonResult bedNumberGroup(Integer schoolId, Integer buildId, Integer dormitoryId) {
 
 
 //        获取未入住的床位
 //        获取未入住的床位
-        List<WelcomeBed> beds= welcomeBedService.bedNumberGroup(schoolId,buildId,dormitoryId);
+        List<WelcomeBed> beds = welcomeBedService.bedNumberGroup(schoolId, buildId, dormitoryId);
 
 
         return CommonResult.ok(beds);
         return CommonResult.ok(beds);
     }
     }

+ 2 - 0
src/main/java/com/template/services/WelcomeBedService.java

@@ -41,4 +41,6 @@ public interface WelcomeBedService extends IService<WelcomeBed> {
 
 
     List<WelcomeBed> queryDormitorys(Integer dormitory);
     List<WelcomeBed> queryDormitorys(Integer dormitory);
 
 
+    List<WelcomeBed> queryBeds(List<Integer> dormitoryIds);
+
 }
 }

+ 8 - 0
src/main/java/com/template/services/impl/WelcomeBedServiceImpl.java

@@ -145,4 +145,12 @@ public class WelcomeBedServiceImpl extends ServiceImpl<WelcomeBedMapper, Welcome
         return result;
         return result;
     }
     }
 
 
+    @Override
+    public List<WelcomeBed> queryBeds(List<Integer> dormitoryIds) {
+        QueryWrapper<WelcomeBed> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("dormitory_id", dormitoryIds);
+        List<WelcomeBed> result = welcomeBedMapper.selectList(queryWrapper);
+        return result;
+    }
+
 }
 }