Browse Source

增加设备筛选字段 +对外接口

吴世龙 3 years ago
parent
commit
9b19512db3

+ 4 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/DoctorMessageEndpoint.java

@ -107,9 +107,11 @@ public class DoctorMessageEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "getDeviceLostMessageList")
    @ApiOperation("获取设备离线通知列表")
    public ObjEnvelop getDeviceLostMessageList(@ApiParam(name="doctor",value = "医生ID,当前查看列表医生",required = true)
                                          @RequestParam(value = "doctor")String doctor){
                                          @RequestParam(value = "doctor")String doctor,
                                               @ApiParam(name = "deviceCode",value = "设备类型code",required = true)
                                               @RequestParam(value = "deviceCode")String deviceCode){
        try {
            return ObjEnvelop.getSuccess("查询成功",doctorMessageService.getDeviceLostMessageList(doctor));
            return ObjEnvelop.getSuccess("查询成功",doctorMessageService.getDeviceLostMessageList(doctor,deviceCode));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }

+ 2 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/StatisticsEndpoint.java

@ -15,8 +15,6 @@ import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Locale;
/**
 * Created by yeshijie on 2021/4/7.
 */
@ -250,11 +248,11 @@ public class StatisticsEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "getAllDeviceLostMessage")
    @ApiOperation("设备分析--异常消息通知")
    public PageEnvelop getAllDeviceLostMessage(@RequestParam(required = false) String area,
                                              @RequestParam(required = false) Integer level,
                                              @RequestParam(required = false) Integer deviceCode,
                                              @RequestParam(required = false) Integer page,
                                              @RequestParam(required = false) Integer size){
        try {
           return statisticsService.getAllDeviceLostMessage(area,page,size);
           return statisticsService.getAllDeviceLostMessage(area,deviceCode,page,size);
        }catch (Exception e){
            return failedPageEnvelopException2(e);
        }

+ 27 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/wlyygc/WlyygcDataEndpoint.java

@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
 * Created by yeshijie on 2022/1/18.
 */
@RestController
@RequestMapping(value = "open/gc/data")
@RequestMapping(value = "/gc/data")
@Api(value = "对外开放统计数据", tags = {"对外开放统计数据"})
public class WlyygcDataEndpoint extends EnvelopRestEndpoint {
@ -253,5 +253,31 @@ public class WlyygcDataEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "infantTotal")
    @ApiOperation(value = "幼儿信息计数统计")
    public ObjEnvelop infantTotal(@ApiParam(name = "date",value = "到达时间",required = true)
                                  @RequestParam(value = "date") String date){
        try {
            JSONObject jsonObject = wlyygcStatisticsService.infantTotal(date);
            return success(jsonObject);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "oldTotal")
    @ApiOperation(value = "老人信息计数统计")
    public ObjEnvelop oldTotal(@ApiParam(name = "date",value = "到达时间",required = false)
                                   @RequestParam(value = "date",required = false) String date){
        try {
            JSONObject jsonObject = wlyygcStatisticsService.oldTotal(date);
            return success(jsonObject);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
}

+ 9 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/DoctorMessageService.java

@ -14,7 +14,6 @@ import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.notice.UserNoticeDO;
import com.yihu.jw.entity.care.message.OrgNoticeDO;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.PageEnvelop;
@ -317,9 +316,15 @@ public class DoctorMessageService {
        return orgNoticeDao.findOne(noticeId);
    }
    public List<SystemMessageDO> getDeviceLostMessageList(String doctor){
        List<SystemMessageDO> systemMessageDOS = messageDao.getByReceiverAndType(doctor,"43");
        return systemMessageDOS;
    public  List<Map<String, Object>> getDeviceLostMessageList(String doctor,String deviceCode){
       // List<SystemMessageDO> systemMessageDOS = messageDao.getByReceiverAndType(doctor,"43");
        String sql =  "select DISTINCT GROUP_CONCAT(sm.id) id,sm.type AS type,sm.title AS title,sm.sender AS sender,sm.sender_name AS senderName,\n" +
                "  sm.receiver AS receiver,sm.receiver_name AS receiver_name,sm.relation_code AS relationCode,\n" +
                "  sm.data AS data,sm.is_read AS isRead,sm.create_time AS createTime,sm.sender_photo AS sender_photo\n" +
                "  from base_system_message sm LEFT JOIN wlyy_patient_device pd ON sm.relation_code = pd.device_sn where sm.receiver = '"+doctor+"' AND sm.type=43 and sm.del=1 AND pd.category_code = '"+deviceCode+"' GROUP BY sm.relation_code order by sm.create_time desc;\n";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        return maps;
    }
    public Integer todoworkTotal(String doctor){

+ 13 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java

@ -1451,12 +1451,20 @@ public class StatisticsService {
        return result;
    }
    public PageEnvelop getAllDeviceLostMessage(String area, Integer page, Integer size) {
    public PageEnvelop getAllDeviceLostMessage(String area, Integer deviceCode,Integer page, Integer size) {
        page = page > 0 ? page - 1 : 0;
        String sql = "select GROUP_CONCAT(id) id,type,title,sender,sender_name senderName,\n" +
                "receiver,receiver_name receiverName,relation_code relationCode,\n" +
                "data,is_read isRead,create_time createTime,sender_photo\n" +
                "from base_system_message where type=43 and del=1 GROUP BY relation_code order by createTime desc ";
        String sql = "";
        if (null == deviceCode) {
             sql = "select GROUP_CONCAT(id) id,type,title,sender,sender_name senderName,\n" +
                    "receiver,receiver_name receiverName,relation_code relationCode,\n" +
                    "data,is_read isRead,create_time createTime,sender_photo\n" +
                    "from base_system_message where type=43 and del=1 GROUP BY relation_code order by createTime desc ";
        }else {
             sql = "select DISTINCT GROUP_CONCAT(sm.id) id,sm.type AS type,sm.title AS title,sm.sender AS sender,sm.sender_name AS senderName,\n" +
                    " sm.receiver AS receiver,sm.receiver_name AS receiver_name,sm.relation_code AS relationCode,\n" +
                    " sm.data AS data,sm.is_read AS isRead,sm.create_time AS createTime,sm.sender_photo AS sender_photo\n" +
                    " from base_system_message sm LEFT JOIN wlyy_patient_device pd ON sm.relation_code = pd.device_sn where sm.type=43 and sm.del=1 AND pd.category_code = '"+deviceCode+"' GROUP BY sm.relation_code order by sm.create_time desc;\n";
        }
        Long count = jdbcTemplate.queryForObject(" select count(id) from (" + sql + ")A ", Long.class);
        sql += " limit " + page * size + "," + size;

+ 120 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/WlyygcStatisticsService.java

@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.security.BaseEmergencyWarnLogDao;
import com.yihu.jw.entity.care.securitymonitoring.BaseEmergencyWarnLogDO;
import com.yihu.jw.es.util.ElasticsearchUtil;
import com.yihu.jw.es.util.SaveModel;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.common.IdCardUtil;
import org.apache.commons.lang3.StringUtils;
@ -27,7 +29,14 @@ public class WlyygcStatisticsService {
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private BaseEmergencyWarnLogDao logDao;
    @Autowired
    private ElasticsearchUtil elasticsearchUtil;
    @Autowired
    private StatisticsService statisticsService;
    private static final String defalutArea = "330100";
    private static final Integer defalutLevel = 2;
    /***************************************************华联社区******************************************************/
    /**
@ -628,7 +637,8 @@ public class WlyygcStatisticsService {
                " o.address AS address," +
                " p. NAME AS `name`," +
                " t. STATUS AS `status`," +
                " o. NAME AS `orgName`" +
                " o. NAME AS `orgName`," +
                " p.idcard AS idcard" +
                " FROM" +
                " base_patient p" +
                " LEFT JOIN base_doctor_patient_tmp t ON t.patient = p.id" +
@ -688,6 +698,115 @@ public class WlyygcStatisticsService {
    }
    /**
     * 幼儿信息计数
     */
    public JSONObject infantTotal(String endDate) throws Exception {
        JSONObject res = new JSONObject();
        // 64 活动浏览数
        // 65 课程播放数
        // 66 活动报名数
        //28 新生儿-在线咨询总数
        //35 新生儿-上门辅导-服务工单数
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, defalutArea, defalutLevel, "64", SaveModel.timeLevel_DDL);
        res.put("activity_1", saveModel.getResult2().longValue());
        saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, defalutArea, defalutLevel, "65", SaveModel.timeLevel_DDL);
        res.put("activity_2", saveModel.getResult2().longValue());
        saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, defalutArea, defalutLevel, "66", SaveModel.timeLevel_DDL);
        res.put("activity_3", saveModel.getResult2().longValue());
        saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, defalutArea, defalutLevel, "28", SaveModel.timeLevel_DDL);
        res.put("index_28", saveModel.getResult2().longValue());
        saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, defalutArea, defalutLevel, "35", SaveModel.timeLevel_DDL);
        res.put("index_35", saveModel.getResult2().longValue());
        //托育机构
        String orgSql = "SELECT COUNT(id) FROM base_org WHERE type = 4 AND del = 1 AND `code` NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' and dict_code is not null)";
        List<Integer> totalList = jdbcTemplate.queryForList(orgSql, Integer.class);
        res.put("orgTotal",totalList.get(0));
        //教师
        String teacherSql = "SELECT COUNT(id) FROM base_doctor WHERE doctor_level = 3 AND del =1 AND id NOT IN(SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_teacher' and dict_code is not null)";
        totalList = jdbcTemplate.queryForList(teacherSql, Integer.class);
        res.put("teacherTotal",totalList.get(0));
        String infantSql = "SELECT COUNT(id) FROM base_patient WHERE archive_type = 2 AND del = 1 AND id NOT IN (SELECT DISTINCT dict_code FROM wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_child' and dict_code is not null)";
        //照护幼儿
        totalList = jdbcTemplate.queryForList(infantSql,Integer.class);
        res.put("zh_infantTotal",totalList.get(0));
        //幼儿总数
        String infantTotalSql = "SELECT infant_num FROM base_older_num ";
        totalList = jdbcTemplate.queryForList(infantTotalSql,Integer.class);
        res.put("infantTotal",totalList.get(0));
        //照护率
         res.put("zh_rate", (Float.parseFloat(res.get("zh_infantTotal").toString()) / (float) 1335 * 100) + "%");
        return res;
    }
    /**
     * 老人信息计数
     */
    public JSONObject oldTotal(String endDate) throws Exception {
        JSONObject res = new JSONObject();
        //老人总数
        String totalList = "SELECT lsqs_num+bss_num+jss_num+ybs_num AS total FROM base_older_num";
        List<Integer> integers = jdbcTemplate.queryForList(totalList, Integer.class);
        res.put("oldTotal",integers.get(0));
        //照护老人总数
        String zhTotalList = "SELECT COUNT(id) FROM base_patient where archive_type = 1 AND del = 1 AND id NOT IN(SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE  dict_name = 'jkzl_older'  and dict_code is not null) ";
        //设备总数
        String deviceSql ="SELECT COUNT(id) AS total, COUNT(IF(device_type = 0,device_type,NULL)) AS jk,COUNT(IF(device_type = 1,device_type,NULL)) AS af FROM wlyy_devices where 1=1 ";
        //医疗机构
        //养老机构
        String orgSql = "SELECT COUNT(IF(type = 2,type,null)) AS yl,COUNT(IF(type = 3,type,null)) AS yangl  FROM base_org WHERE del = 1 AND `code` NOT IN (SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' and dict_code is not null) ";
        //助老员
        //医护人员
        //社工
        String zlSql = "SELECT COUNT(IF(doctor_level = 1,doctor_level,null)) AS yh,COUNT(IF(doctor_level = 2,doctor_level,null)) AS sg,COUNT(IF(doctor_level = 4,doctor_level,null)) AS zly FROM base_doctor WHERE id NOT IN(SELECT DISTINCT dict_code from wlyy_hospital_sys_dict WHERE (dict_name = 'jkzl_user' or dict_name = 'jkzl_helper') and dict_code is not null) ";
        if (StringUtils.isNotBlank(endDate)) {
            zhTotalList += " and create_time <= '"+endDate+"'";
            orgSql += " and create_time <= '"+endDate+"'";
            zlSql += " and create_time <= '"+endDate+"'";
        }
        integers = jdbcTemplate.queryForList(zhTotalList,Integer.class);
        res.put("zh_oldTotal",integers.get(0));
        //照护率
        res.put("zh_rate", (Float.parseFloat(res.get("zh_oldTotal").toString()) / Float.parseFloat(res.get("oldTotal").toString()) * 100) + "%");
        List<Map<String, Object>> deviceList = jdbcTemplate.queryForList(deviceSql);
        res.put("deviceTotal",deviceList.get(0).get("total"));
        res.put("deviceJkTotal",deviceList.get(0).get("jk"));
        res.put("deviceAfTotal",deviceList.get(0).get("af"));
        List<Map<String, Object>> orgList = jdbcTemplate.queryForList(orgSql);
        res.put("yanglao",orgList.get(0).get("yangl"));
        res.put("yl",orgList.get(0).get("yl"));
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(zlSql);
        res.put("yl",maps.get(0).get("yh"));
        res.put("sg",maps.get(0).get("sg"));
        res.put("zly",maps.get(0).get("zly"));
        //指标
        JSONArray jsonArray = statisticsService.cloudCareForTheElderly(endDate, defalutArea, defalutLevel);
        res.put("label",jsonArray);
        JSONObject jsonObject = statisticsService.statisticsOrderServer("50", endDate, 2, "2");
        res.put("age",jsonObject);
        // 紧急预警
        String jjyjSql = "SELECT patient_name FROM base_emergency_assistance_order WHERE `status` = 1 ";
        if (StringUtils.isNotBlank(endDate)) {
            jjyjSql += "AND create_time <= '"+endDate+"'";
        }
        List<Map<String, Object>> jjyj = jdbcTemplate.queryForList(jjyjSql);
        res.put("emeName",jjyj);
        return res;
    }
    /**
     * 社区计数
     */
    /**
     * 排除测试数据