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<OrgYanglao> wrapper = new QueryWrapper<>();
|
if (StrUtil.isNotEmpty(areaId)){
|
wrapper.lambda().eq(OrgYanglao::getAreaId,areaId);
|
}
|
List<OrgYanglao> 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<OrgYanglao> wrapper = new QueryWrapper<>();
|
if (StrUtil.isNotEmpty(areaId)){
|
wrapper.lambda().eq(OrgYanglao::getAreaId,areaId);
|
}
|
wrapper.lambda().orderByDesc(OrgYanglao::getBedNumber);
|
wrapper.last(" limit 10 ");
|
List<OrgYanglao> 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<OrgYanglao> wrapper = new QueryWrapper<>();
|
if (StrUtil.isNotEmpty(areaId)){
|
wrapper.lambda().eq(OrgYanglao::getAreaId,areaId);
|
}
|
wrapper.last(" limit 10 ");
|
List<OrgYanglao> list = iOrgYanglaoService.list(wrapper);
|
List<BeadUseVo> 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;//使用率
|
}
|
}
|