|
@@ -18,6 +18,10 @@ import com.template.model.result.CommonResult;
|
|
|
import com.template.model.result.Wx_user;
|
|
import com.template.model.result.Wx_user;
|
|
|
import com.template.model.vo.*;
|
|
import com.template.model.vo.*;
|
|
|
import com.template.services.*;
|
|
import com.template.services.*;
|
|
|
|
|
+import org.apache.poi.ss.usermodel.Row;
|
|
|
|
|
+import org.apache.poi.ss.usermodel.Sheet;
|
|
|
|
|
+import org.apache.poi.ss.usermodel.Workbook;
|
|
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -95,6 +99,67 @@ public class CensusController implements CensusControllerAPI {
|
|
|
return CommonResult.ok(result);
|
|
return CommonResult.ok(result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void bedTotalExport(HttpServletResponse response, Integer collegeId, String sex) {
|
|
|
|
|
+ List<BedTotalVo> result = new ArrayList<>();
|
|
|
|
|
+ List<WelcomeOrg> orgs = welcomeOrgService.queryColleges();
|
|
|
|
|
+ List<BedSqlTotalVo> sqlDatas = welcomeBedService.queryBedSqlList(collegeId, sex);
|
|
|
|
|
+ List<String> sexs = new ArrayList<>();
|
|
|
|
|
+ sexs.add("男");
|
|
|
|
|
+ sexs.add("女");
|
|
|
|
|
+ for (WelcomeOrg org : orgs) {
|
|
|
|
|
+ for (String sexStr :sexs){
|
|
|
|
|
+ BedTotalVo btv = new BedTotalVo();
|
|
|
|
|
+ btv.setCollege(org.getName());
|
|
|
|
|
+ btv.setSex(sexStr);
|
|
|
|
|
+ List<BedSqlTotalVo> sqlDataCs = sqlDatas.stream().filter(e -> e.getCollege().equals(org.getName()) && e.getSex().equals(sexStr)).collect(Collectors.toList());
|
|
|
|
|
+ if(sqlDataCs != null && sqlDataCs.size() > 0){
|
|
|
|
|
+ int totalData = sqlDataCs.get(0).getTotalData() == null ? 0 : sqlDataCs.get(0).getTotalData();
|
|
|
|
|
+ btv.setTotal(totalData);//总人数
|
|
|
|
|
+ int bedTotals = 0;
|
|
|
|
|
+ for (BedSqlTotalVo d:sqlDataCs) {
|
|
|
|
|
+ bedTotals = bedTotals + d.getTotalBed();
|
|
|
|
|
+ }
|
|
|
|
|
+ btv.setAssignedBed(bedTotals);//已分配床
|
|
|
|
|
+ btv.setAssignedDormitory(sqlDataCs.size());//已分配寝室
|
|
|
|
|
+ int buildCount = (int)sqlDataCs.stream().map(BedSqlTotalVo::getBuild).distinct().count();
|
|
|
|
|
+ btv.setAssignedBuild(buildCount);//已分配楼栋
|
|
|
|
|
+ }else{
|
|
|
|
|
+ btv.setTotal(0);
|
|
|
|
|
+ btv.setAssignedBed(0);//已分配床
|
|
|
|
|
+ btv.setAssignedDormitory(0);//已分配寝室
|
|
|
|
|
+ btv.setAssignedBuild(0);//已分配楼栋
|
|
|
|
|
+ }
|
|
|
|
|
+ result.add(btv);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //导出
|
|
|
|
|
+ Workbook workbook = new XSSFWorkbook();
|
|
|
|
|
+ Sheet sheet = workbook.createSheet("床位分配统计");
|
|
|
|
|
+
|
|
|
|
|
+ Row headerRow = sheet.createRow(0);
|
|
|
|
|
+ headerRow.createCell(0).setCellValue("序号");
|
|
|
|
|
+ headerRow.createCell(1).setCellValue("学院名称");
|
|
|
|
|
+ headerRow.createCell(2).setCellValue("性别");
|
|
|
|
|
+ headerRow.createCell(3).setCellValue("总人数");
|
|
|
|
|
+ headerRow.createCell(4).setCellValue("已分配床位数");
|
|
|
|
|
+ headerRow.createCell(5).setCellValue("已分配寝室数");
|
|
|
|
|
+ headerRow.createCell(6).setCellValue("已分配楼栋数");
|
|
|
|
|
+ for (int i = 0; i < result.size(); i++) {
|
|
|
|
|
+ BedTotalVo bedData = result.get(i);
|
|
|
|
|
+ Row dataRow = sheet.createRow(i + 1);
|
|
|
|
|
+ dataRow.createCell(0).setCellValue(i + 1);
|
|
|
|
|
+ dataRow.createCell(1).setCellValue(bedData.getCollege());
|
|
|
|
|
+ dataRow.createCell(2).setCellValue(bedData.getSex());
|
|
|
|
|
+ dataRow.createCell(3).setCellValue(bedData.getTotal());
|
|
|
|
|
+ dataRow.createCell(4).setCellValue(bedData.getAssignedBed());
|
|
|
|
|
+ dataRow.createCell(5).setCellValue(bedData.getAssignedDormitory());
|
|
|
|
|
+ dataRow.createCell(6).setCellValue(bedData.getAssignedBuild());
|
|
|
|
|
+ }
|
|
|
|
|
+ // 将工作簿写入文件
|
|
|
|
|
+ ExcelUtils.excelDownload(workbook, "床位分配统计.xlsx", response);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// #总人数 totalData
|
|
// #总人数 totalData
|
|
|
// #已入住人数 sleeper
|
|
// #已入住人数 sleeper
|
|
|
// #未入住人数 = 总人数 - 已入住人数
|
|
// #未入住人数 = 总人数 - 已入住人数
|
|
@@ -126,21 +191,87 @@ public class CensusController implements CensusControllerAPI {
|
|
|
int totalBed = sqlDataCs.get(0).getTotalBed() == null ? 0 : sqlDataCs.get(0).getTotalBed();
|
|
int totalBed = sqlDataCs.get(0).getTotalBed() == null ? 0 : sqlDataCs.get(0).getTotalBed();
|
|
|
btv.setTotalData(toalData);//总人数
|
|
btv.setTotalData(toalData);//总人数
|
|
|
btv.setSleeper(sleeper);//已入住人数
|
|
btv.setSleeper(sleeper);//已入住人数
|
|
|
- btv.setUnSleeper(toalData - sleeper);//未入住人数
|
|
|
|
|
- btv.setSleeper(totalBed);//总床数
|
|
|
|
|
- btv.setSleeper(sleeper);//已入住床位数
|
|
|
|
|
- btv.setSleeper(totalBed - sleeper);//未入住床位数
|
|
|
|
|
|
|
+ btv.setUnSleeper((toalData - sleeper) < 0 ? 0 : (toalData - sleeper));//未入住人数
|
|
|
|
|
+ btv.setTotalBed(totalBed);//总床数
|
|
|
|
|
+ btv.setSleepBed(sleeper);//已入住床位数
|
|
|
|
|
+ btv.setUnSleepBed((totalBed - sleeper) < 0 ? 0 : (totalBed - sleeper));//未入住床位数
|
|
|
}else{
|
|
}else{
|
|
|
btv.setTotalData(0);//总人数
|
|
btv.setTotalData(0);//总人数
|
|
|
btv.setSleeper(0);//已入住人数
|
|
btv.setSleeper(0);//已入住人数
|
|
|
btv.setUnSleeper(0);//未入住人数
|
|
btv.setUnSleeper(0);//未入住人数
|
|
|
- btv.setSleeper(0);//总床数
|
|
|
|
|
- btv.setSleeper(0);//已入住床位数
|
|
|
|
|
- btv.setSleeper(0);//未入住床位数
|
|
|
|
|
|
|
+ btv.setTotalBed(0);//总床数
|
|
|
|
|
+ btv.setSleepBed(0);//已入住床位数
|
|
|
|
|
+ btv.setUnSleepBed(0);//未入住床位数
|
|
|
}
|
|
}
|
|
|
result.add(btv);
|
|
result.add(btv);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return CommonResult.ok(result);
|
|
return CommonResult.ok(result);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void checkTotalExport(HttpServletResponse response, Integer collegeId, String sex) {
|
|
|
|
|
+ List<SleepTotalVo> result = new ArrayList<>();
|
|
|
|
|
+ List<WelcomeOrg> orgs = welcomeOrgService.queryColleges();
|
|
|
|
|
+ List<SleepSqlTotalVo> sqlDatas = welcomeBedService.queryTotalSqlList(collegeId, sex);
|
|
|
|
|
+ List<String> sexs = new ArrayList<>();
|
|
|
|
|
+ sexs.add("男");
|
|
|
|
|
+ sexs.add("女");
|
|
|
|
|
+ for (WelcomeOrg org : orgs) {
|
|
|
|
|
+ for (String sexStr :sexs){
|
|
|
|
|
+ SleepTotalVo btv = new SleepTotalVo();
|
|
|
|
|
+ btv.setCollege(org.getName());
|
|
|
|
|
+ btv.setSex(sexStr);
|
|
|
|
|
+ List<SleepSqlTotalVo> sqlDataCs = sqlDatas.stream().filter(e -> e.getCollege().equals(org.getName()) && e.getSex().equals(sexStr)).collect(Collectors.toList());
|
|
|
|
|
+ if(sqlDataCs != null && sqlDataCs.size() > 0){
|
|
|
|
|
+ int toalData =sqlDataCs.get(0).getTotalData() == null ? 0 : sqlDataCs.get(0).getTotalData();
|
|
|
|
|
+ int sleeper = sqlDataCs.get(0).getSleeper() == null ? 0 : sqlDataCs.get(0).getSleeper();
|
|
|
|
|
+ int totalBed = sqlDataCs.get(0).getTotalBed() == null ? 0 : sqlDataCs.get(0).getTotalBed();
|
|
|
|
|
+ btv.setTotalData(toalData);//总人数
|
|
|
|
|
+ btv.setSleeper(sleeper);//已入住人数
|
|
|
|
|
+ btv.setUnSleeper((toalData - sleeper) < 0 ? 0 : (toalData - sleeper));//未入住人数
|
|
|
|
|
+ btv.setTotalBed(totalBed);//总床数
|
|
|
|
|
+ btv.setSleepBed(sleeper);//已入住床位数
|
|
|
|
|
+ btv.setUnSleepBed((totalBed - sleeper) < 0 ? 0 : (totalBed - sleeper));//未入住床位数
|
|
|
|
|
+ }else{
|
|
|
|
|
+ btv.setTotalData(0);//总人数
|
|
|
|
|
+ btv.setSleeper(0);//已入住人数
|
|
|
|
|
+ btv.setUnSleeper(0);//未入住人数
|
|
|
|
|
+ btv.setTotalBed(0);//总床数
|
|
|
|
|
+ btv.setSleepBed(0);//已入住床位数
|
|
|
|
|
+ btv.setUnSleepBed(0);//未入住床位数
|
|
|
|
|
+ }
|
|
|
|
|
+ result.add(btv);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //导出
|
|
|
|
|
+ Workbook workbook = new XSSFWorkbook();
|
|
|
|
|
+ Sheet sheet = workbook.createSheet("床位入住统计");
|
|
|
|
|
+
|
|
|
|
|
+ Row headerRow = sheet.createRow(0);
|
|
|
|
|
+ headerRow.createCell(0).setCellValue("序号");
|
|
|
|
|
+ headerRow.createCell(1).setCellValue("学院名称");
|
|
|
|
|
+ headerRow.createCell(2).setCellValue("性别");
|
|
|
|
|
+ headerRow.createCell(3).setCellValue("总人数");
|
|
|
|
|
+ headerRow.createCell(4).setCellValue("已入住人数");
|
|
|
|
|
+ headerRow.createCell(5).setCellValue("未入住人数");
|
|
|
|
|
+ headerRow.createCell(6).setCellValue("总床位数");
|
|
|
|
|
+ headerRow.createCell(7).setCellValue("已入住床位数");
|
|
|
|
|
+ headerRow.createCell(8).setCellValue("未入住床位数");
|
|
|
|
|
+ for (int i = 0; i < result.size(); i++) {
|
|
|
|
|
+ SleepTotalVo bedData = result.get(i);
|
|
|
|
|
+ Row dataRow = sheet.createRow(i + 1);
|
|
|
|
|
+ dataRow.createCell(0).setCellValue(i + 1);
|
|
|
|
|
+ dataRow.createCell(1).setCellValue(bedData.getCollege());
|
|
|
|
|
+ dataRow.createCell(2).setCellValue(bedData.getSex());
|
|
|
|
|
+ dataRow.createCell(3).setCellValue(bedData.getTotalData());
|
|
|
|
|
+ dataRow.createCell(4).setCellValue(bedData.getSleeper());
|
|
|
|
|
+ dataRow.createCell(5).setCellValue(bedData.getUnSleeper());
|
|
|
|
|
+ dataRow.createCell(6).setCellValue(bedData.getTotalBed());
|
|
|
|
|
+ dataRow.createCell(7).setCellValue(bedData.getSleepBed());
|
|
|
|
|
+ dataRow.createCell(8).setCellValue(bedData.getUnSleepBed());
|
|
|
|
|
+ }
|
|
|
|
|
+ // 将工作簿写入文件
|
|
|
|
|
+ ExcelUtils.excelDownload(workbook, "床位入住统计.xlsx", response);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|