xuefei
2020-12-13 a0c41029992f7dc390c125247e84d0bfac972706
养老机构页面
1个文件已修改
1个文件已添加
401 ■■■■■ 已修改文件
api.md 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform-modules/platform-zhyl/src/main/java/cn/cetc54/platform/zhyl/api/FwylController.java 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api.md
@@ -1217,4 +1217,248 @@
        "count": 3
    }
}
、、、
```
<h3 id='6'>六、养老机构</h2>
<h4 id='6.1'>6.1获取统计数据</h4>
###### 接口功能
> 获取统计数据
###### URL
> /api/fwyl/getStaticsData
###### 支持格式
> JSON
###### HTTP请求方式
> GET
###### 请求参数
|参数|必选|类型|说明|
|:-----  |:-------|:-----|-----                               |
|  areaId  |  是  |String |     区域id                    |
###### 返回字段
|返回字段|字段类型|说明                              |
|:-----   |:------|:-----------------------------   |
| sum  |  int  |  养老机构总数 |
| square  |  int  |  面积 |
| bedNumber  |  int  |  床位数 |
| nurseNumber  |  int  |  护理人员数 |
| type0Num  |  int  |  养老院个数 |
| type1Num  |  int  |  敬老院个数 |
| type2Num  |  int  |  疗养院个数 |
###### 接口示例
``` java
{
    "success": true,
    "message": "success",
    "code": 200,
    "timestamp": 1607839952762,
    "result": {
        "sum": 3,
        "square": 10100,
        "bedNumber": 4020,
        "nurseNumber": 557,
        "type0Num": 3,
        "type1Num": 0,
        "type2Num": 0
    }
```
<h4 id='6.2'>6.2床位个数排名</h4>
###### 接口功能
> 床位个数排名
###### URL
> /api/fwyl/getBedNumList
###### 支持格式
> JSON
###### HTTP请求方式
> GET
###### 请求参数
|参数|必选|类型|说明|
|:-----  |:-------|:-----|-----                               |
|  areaId  |  是  |String |     区域id                    |
###### 返回字段
|返回字段|字段类型|说明                              |
|:-----   |:------|:-----------------------------   |
| name  |  String  |  养老机构名称 |
| bedNumber  |  int  |  床位数 |
###### 接口示例
``` java
{
    "success": true,
    "message": "success",
    "code": 200,
    "timestamp": 1607840268824,
    "result": [
        {
            "id": "3",
            "createBy": null,
            "createTime": null,
            "updateBy": null,
            "updateTime": null,
            "delFlag": 0,
            "name": "养老院3",
            "areaId": "1",
            "type": 0,
            "square": 5000,
            "bedNumber": 4000,
            "nurseNumber": 500,
            "duixiangNumber": 3000
        },
        {
            "id": "1",
            "createBy": null,
            "createTime": null,
            "updateBy": null,
            "updateTime": null,
            "delFlag": 0,
            "name": "养老院1",
            "areaId": "1",
            "type": 0,
            "square": 100,
            "bedNumber": 10,
            "nurseNumber": 13,
            "duixiangNumber": 12
        },
        {
            "id": "2",
            "createBy": null,
            "createTime": null,
            "updateBy": null,
            "updateTime": null,
            "delFlag": 0,
            "name": "养老院2",
            "areaId": "1",
            "type": 0,
            "square": 5000,
            "bedNumber": 10,
            "nurseNumber": 44,
            "duixiangNumber": 12
        }
    ]
```
<h4 id='6.3'>6.3床位使用率排名</h4>
###### 接口功能
> 床位使用率排名
###### URL
> /api/fwyl/getBedUseList
###### 支持格式
> JSON
###### HTTP请求方式
> GET
###### 请求参数
|参数|必选|类型|说明|
|:-----  |:-------|:-----|-----                               |
|  areaId  |  是  |String |     区域id                    |
###### 返回字段
|返回字段|字段类型|说明                              |
|:-----   |:------|:-----------------------------   |
| name  |  String  |  养老机构名称 |
| num  |  int  |  使用率(%) |
###### 接口示例
``` java
{
    "success": true,
    "message": "success",
    "code": 200,
    "timestamp": 1607840400599,
    "result": [
        {
            "name": "养老院1",
            "num": 98
        },
        {
            "name": "养老院2",
            "num": 97
        },
        {
            "name": "养老院3",
            "num": 96
        }
    ]
}
```
<h4 id='6.4'>6.4历史数据</h4>
###### 接口功能
> 历史数据
###### URL
> /api/fwyl/getHistoryData
###### 支持格式
> JSON
###### HTTP请求方式
> GET
###### 请求参数
|参数|必选|类型|说明|
|:-----  |:-------|:-----|-----                               |
|  areaId  |  是  |String |     区域id                    |
###### 返回字段
|返回字段|字段类型|说明                              |
|:-----   |:------|:-----------------------------   |
| month  |  int  |  月份 |
| num  |  int  |  使用床位数 |
| num1  |  int  |  千人养老床位 |
| num2 |  int  |  同比变化 |
| num3  |  int  |  环比变化 |
###### 接口示例
``` java
{
    "success": true,
    "message": "success",
    "code": 200,
    "timestamp": 1607840559733,
    "result": {
        "month": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12
        ],
        "num": [
            11898,
            9702,
            9954,
            12690,
            9270,
            10980,
            11466,
            14238,
            12492,
            14292,
            10584,
            9558
        ],
        "num1": 8,
        "num2": 1,
        "num3": -6
    }
}
```
platform-modules/platform-zhyl/src/main/java/cn/cetc54/platform/zhyl/api/FwylController.java
New file
@@ -0,0 +1,155 @@
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;//使用率
    }
}