package org.springblade.modules.information.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.modules.information.service.IInformationService; import org.springblade.modules.information.vo.InformationVO; import org.springblade.modules.information.vo.ResponseVo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 组织机构详情控制层 2 * @author zhongrj * @time 2021-09-14 */ @RestController @RequestMapping("/information") @AllArgsConstructor public class InformationsController { private final IInformationService informationService; /** * 获取保安公司信息(本市保安公司,分公司)包含经纬度 * @return */ @GetMapping("/getSecurityUnitPositionInfo") public R getSecurityUnitPositionInfo(){ return R.data(informationService.getSecurityUnitPositionInfo()); } /** * 根据辖区查询保安公司分页信息(本市保安公司,分公司) * @param query 分页条件 * @param information 查询条件 * @return */ @GetMapping("/getSecurityUnitInfoPage") public R> getSecurityUnitInfoPage(InformationVO information, Query query){ return R.data(informationService.getSecurityUnitInfoPage(Condition.getPage(query), information)); } /** * 根据辖区查询统计保安公司持证情况分页信息(本市保安公司,分公司) * @param query 分页条件 * @param information 查询条件 * @return */ @GetMapping("/getSecurityUnitHoldInfoPage") public R> getSecurityUnitHoldInfoPage(InformationVO information, Query query){ return R.data(informationService.getSecurityUnitHoldInfoPage(Condition.getPage(query), information)); } /** * 根据辖区查询统计保安公司持证率低于50%的保安公司个数及保安公司分页信息(本市保安公司,分公司) * @param query 分页条件 * @param information 查询条件 * @return */ @GetMapping("/getSecurityUnitHoldLessPage") public R> getSecurityUnitHoldLessPage(InformationVO information, Query query){ return R.data(informationService.getSecurityUnitHoldLess50Page(Condition.getPage(query), information)); } /** * 根据辖区查询统计保安公司派遣率低于50%的保安公司个数及保安公司分页信息(本市保安公司,分公司) * @param query 分页条件 * @param information 查询条件 * @return */ @GetMapping("/getSecurityUnitDispatcherLessPage") public R> getSecurityUnitDispatcherLessPage(InformationVO information, Query query){ return R.data(informationService.getSecurityUnitDispatcherLess50Page(Condition.getPage(query), information)); } /** * 根据辖区查询统计保安公司社保缴纳率低于50%的保安公司个数及保安公司分页信息(本市保安公司,分公司) * @param query 分页条件 * @param information 查询条件 * @return */ @GetMapping("/getSecurityUnitSoilLessPage") public R> getSecurityUnitSoilLessPage(InformationVO information, Query query){ return R.data(informationService.getSecurityUnitSoilLess50Page(Condition.getPage(query), information)); } /** * 根据辖区查询统计保安公司保险缴纳率低于90%的保安公司个数及保安公司分页信息(本市保安公司,分公司) * @param query 分页条件 * @param information 查询条件 * @return */ @GetMapping("/getSecurityUnitInsuranceLessPage") public R> getSecurityUnitInsuranceLessPage(InformationVO information, Query query){ return R.data(informationService.getSecurityUnitInsuranceLessPage(Condition.getPage(query), information)); } /** * 根据辖区查询统计保安公司考试通过率低于50%的保安公司个数及保安公司分页信息(本市保安公司,分公司) * @param query 分页条件 * @param information 查询条件 * @return */ @GetMapping("/getSecurityUnitExamLessPage") public R> getSecurityUnitExamLessPage(InformationVO information, Query query){ return R.data(informationService.getSecurityUnitExamLess50Page(Condition.getPage(query), information)); } /** * 根据辖区查询统计当前辖区下的保安公司(本市保安公司,分公司)预警信息,包含(未持证,现实表现差,未缴纳社保,资格审查异常) * @param query 分页条件 * @param information 查询条件 * @return */ @GetMapping("/getSubstationWarnInfoPage") public R> getSubstationWarnInfoPage(InformationVO information, Query query){ return R.data(informationService.getSubstationWarnInfoPage(Condition.getPage(query), information)); } /** * 根据辖区查询统计当前辖区下的保安公司(本市保安公司,分公司))服务对象小于2家的公司数量的分页信息 * @param query 分页条件 * @param information 查询条件 * @return */ @GetMapping("/getSecurityUnitServerLessPage") public R> getSecurityUnitServerLessPage(InformationVO information, Query query){ return R.data(informationService.getSecurityUnitServerLess2Page(Condition.getPage(query), information)); } /** * 首页分局预警统计(保安员预警(表现差,审查异常),保安公司预警(考试通过率低于50%,持证率低于50%,社保缴纳率低于50%,派遣率低于50%)) * @return */ @GetMapping("/selectSubstationWarnInfo") public R selectSubstationWarnInfo() { //辖区信息 List> list = informationService.selectJur(); List> lists = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { int count = 0; Map map = new HashMap(); //辖区id String id = list.get(i).get("id").toString(); //辖区名称 String jurname = list.get(i).get("dept_name").toString(); //1.保安员表现差预警数量 List performanceGroupCountList = informationService.getSecurityPerformanceGroupCountList(); //遍历计算总数 for (ResponseVo responseVo : performanceGroupCountList) { //辖区id相同则数量相加 if (responseVo.getId().equals(id)){ count += performanceGroupCountList.get(i).getNum(); } } //2.保安员资格异常的数量 List examinationGroupCountList = informationService.getSecurityExaminationGroupCountList(); //遍历计算总数 for (ResponseVo responseVo : examinationGroupCountList) { //辖区id相同则数量相加 if (responseVo.getId().equals(id)){ count += examinationGroupCountList.get(i).getNum(); } } //3.考试通过率低于50% List examPassingGroupCountList = informationService.getSecurityExamPassingGroupCountList(); //遍历计算总数 for (ResponseVo responseVo : examPassingGroupCountList) { //辖区id相同则数量相加 if (responseVo.getId().equals(id)){ count += examPassingGroupCountList.get(i).getNum(); } } //4.持证率低于50% List holdGroupCountList = informationService.getSecurityHoldAndSoidAndDispatchGroupCountList(1); //遍历计算总数 for (ResponseVo responseVo : holdGroupCountList) { //辖区id相同则数量相加 if (responseVo.getId().equals(id)){ count += holdGroupCountList.get(i).getNum(); } } //5.社保缴纳率低于50% List soidGroupCountList = informationService.getSecurityHoldAndSoidAndDispatchGroupCountList(2); //遍历计算总数 for (ResponseVo responseVo : soidGroupCountList) { //辖区id相同则数量相加 if (responseVo.getId().equals(id)){ count += soidGroupCountList.get(i).getNum(); } } //6.派遣率低于50% List dispatchGroupCountList = informationService.getSecurityHoldAndSoidAndDispatchGroupCountList(3); //遍历计算总数 for (ResponseVo responseVo : dispatchGroupCountList) { //辖区id相同则数量相加 if (responseVo.getId().equals(id)){ count += dispatchGroupCountList.get(i).getNum(); } } //封装数据 map.put("Count", count); map.put("jurname", jurname); map.put("id", id); lists.add(map); } return R.data(lists); } }