package cn.cetc54.platform.zhyl.api; import cn.cetc54.platform.core.common.utils.ResultUtil; import cn.cetc54.platform.core.common.vo.Result; import cn.cetc54.platform.zhyl.entity.OrgYanglao; import cn.cetc54.platform.zhyl.service.IOrgYanglaoService; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.CrossOrigin; 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.List; /** * @author xfei * @date 2020/12/13 */ @Slf4j @RestController @Api(description = "养老机构") @RequestMapping("/api2/fwyl") @Transactional @CrossOrigin("*") public class FwylController { @Autowired private IOrgYanglaoService iOrgYanglaoService; @GetMapping("getStaticsData") @ApiOperation(value = "获取统计数据") public Result getStaticsData(String areaId){ if (StrUtil.isNotBlank(areaId)&&areaId.equals("130100")){ //如果是全市 areaId设置未空 areaId = null; } QueryWrapper wrapper = new QueryWrapper<>(); if (StrUtil.isNotEmpty(areaId)){ wrapper.lambda().eq(OrgYanglao::getAreaId,areaId); } List list = iOrgYanglaoService.list(wrapper); StaticsDataVo vo = new StaticsDataVo(); vo.sum = list.size(); list.forEach(e->{ vo.bedNumber += e.getBedNumber(); vo.square += e.getSquare(); vo.nurseNumber += e.getNurseNumber(); switch (e.getType()){ case 0: vo.type0Num++; break; case 1: vo.type1Num++; break; case 2: vo.type2Num++; break; } }); return ResultUtil.data(vo); } @GetMapping("getBedNumList") @ApiOperation(value = "床位个数排名") public Result getBedNumList(String areaId){ if (StrUtil.isNotBlank(areaId)&&areaId.equals("130100")){ //如果是全市 areaId设置未空 areaId = null; } QueryWrapper wrapper = new QueryWrapper<>(); if (StrUtil.isNotEmpty(areaId)){ wrapper.lambda().eq(OrgYanglao::getAreaId,areaId); } wrapper.lambda().orderByDesc(OrgYanglao::getBedNumber); wrapper.last(" limit 10 "); List list = iOrgYanglaoService.list(wrapper); return ResultUtil.data(list); } @GetMapping("getBedUseList") @ApiOperation(value = "床位使用率排名") public Result getBedUseList(String areaId){ if (StrUtil.isNotBlank(areaId)&&areaId.equals("130100")){ //如果是全市 areaId设置未空 areaId = null; } QueryWrapper wrapper = new QueryWrapper<>(); if (StrUtil.isNotEmpty(areaId)){ wrapper.lambda().eq(OrgYanglao::getAreaId,areaId); } wrapper.last(" limit 10 "); List list = iOrgYanglaoService.list(wrapper); List resList = new ArrayList<>(); int v = 99; int i = 0; for (OrgYanglao o:list){ i++; BeadUseVo vo = new BeadUseVo(); vo.name = o.getName(); vo.num = v-i; resList.add(vo); } return ResultUtil.data(resList); } @GetMapping("getHistoryData") @ApiOperation(value = "历史数据") public Result getHistoryData(String areaId){ if (StrUtil.isNotBlank(areaId)&&areaId.equals("130100")){ //如果是全市 areaId设置未空 areaId = null; } HistoryVo vo = new HistoryVo(); for (int i=0;i<12;i++){ int num = NumberUtil.generateBySet(500,800,1)[0]; if (StrUtil.isEmpty(areaId)){ num = num*18; } vo.num.add(num); } vo.num1 = NumberUtil.generateBySet(6,12,1)[0]; vo.num2 = NumberUtil.generateBySet(-9,9,1)[0]; vo.num3 = NumberUtil.generateBySet(-9,9,1)[0]; return ResultUtil.data(vo); } @Data class HistoryVo{ int[] month = {1,2,3,4,5,6,7,8,9,10,11,12};//月份 List num = new ArrayList();//床位数 int num1;//千人养老床位 int num2;//同比变化 int num3;//环比变化 } @Data class StaticsDataVo{ int sum;//养老机构总数 double square;//面积 int bedNumber;//床位数 int nurseNumber;//护理人员数 int type0Num;//养老院个数 int type1Num;//敬老院个数 int type2Num;//疗养院个数 } @Data class BeadUseVo{ String name;//名称 int num;//使用率 } }