|
@@ -31,6 +31,7 @@ import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.net.URLEncoder;
|
|
import java.net.URLEncoder;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @Author: binguo
|
|
* @Author: binguo
|
|
@@ -41,11 +42,57 @@ import java.util.*;
|
|
|
@RestController
|
|
@RestController
|
|
|
public class CensusController implements CensusControllerAPI {
|
|
public class CensusController implements CensusControllerAPI {
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private WelcomeBedService welcomeBedService;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private WelcomeOrgService welcomeOrgService;
|
|
|
|
|
+
|
|
|
|
|
+ // #分配
|
|
|
|
|
+ // #总人数 totalData
|
|
|
|
|
+ // #已分配床位数 根据性别、学院求和的 totalBed
|
|
|
|
|
+ // #已分配寝室数
|
|
|
|
|
+ // select (select sum(1) as total from welcome_student where deleted = 0 and college = wb.college and iden_type = 1) as totalData,
|
|
|
|
|
+ // SUM(1) as totalBed,college,sex,build,dormitory
|
|
|
|
|
+ // from welcome_bed wb
|
|
|
|
|
+ // where wb.deleted = 0 and wb.college is not null and wb.college != ''
|
|
|
|
|
+ // group by wb.college,wb.sex,wb.build,wb.dormitory
|
|
|
@Override
|
|
@Override
|
|
|
- public CommonResult payResult(Integer collegeId, String sex) {
|
|
|
|
|
|
|
+ public CommonResult queryBedTotal(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);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- return null;
|
|
|
|
|
|
|
+ return CommonResult.ok(result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// #总人数 totalData
|
|
// #总人数 totalData
|
|
@@ -61,6 +108,39 @@ public class CensusController implements CensusControllerAPI {
|
|
|
// group by wb.college,wb.sex
|
|
// group by wb.college,wb.sex
|
|
|
@Override
|
|
@Override
|
|
|
public CommonResult queryCheckTotal(Integer collegeId, String sex) {
|
|
public CommonResult queryCheckTotal(Integer collegeId, String sex) {
|
|
|
- return null;
|
|
|
|
|
|
|
+ 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);//未入住人数
|
|
|
|
|
+ btv.setSleeper(totalBed);//总床数
|
|
|
|
|
+ btv.setSleeper(sleeper);//已入住床位数
|
|
|
|
|
+ btv.setSleeper(totalBed - sleeper);//未入住床位数
|
|
|
|
|
+ }else{
|
|
|
|
|
+ btv.setTotalData(0);//总人数
|
|
|
|
|
+ btv.setSleeper(0);//已入住人数
|
|
|
|
|
+ btv.setUnSleeper(0);//未入住人数
|
|
|
|
|
+ btv.setSleeper(0);//总床数
|
|
|
|
|
+ btv.setSleeper(0);//已入住床位数
|
|
|
|
|
+ btv.setSleeper(0);//未入住床位数
|
|
|
|
|
+ }
|
|
|
|
|
+ result.add(btv);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return CommonResult.ok(result);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|