LAPTOP-KB9HII50\70708 преди 3 години
родител
ревизия
19b313ef91

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

@ -1,7 +1,9 @@
package com.yihu.jw.care.endpoint.wlyygc;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.service.statistics.WlyygcStatisticsService;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
@ -47,4 +49,32 @@ public class WlyygcDataEndpoint extends EnvelopRestEndpoint {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "emeAndSec")
    @ApiOperation(value = "安防/紧急呼叫总数")
    public ObjEnvelop emeAndSec(@ApiParam(name = "code", value = "社区编码")
                                 @RequestParam(value = "code", required = true) String code) {
        try {
            JSONObject result = wlyygcStatisticsService.emeAndSec(code);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "emeAndSecInfo")
    @ApiOperation(value = "安防/紧急呼叫概要")
    public ListEnvelop emeAndSecInfo(@ApiParam(name = "code", value = "社区编码")
                                    @RequestParam(value = "code", required = true) String code,
                                     @ApiParam(name = "page", value = "分页大小", required = true)
                                    @RequestParam(value = "page") Integer page,
                                     @ApiParam(name = "size", value = "页码", required = true)
                                    @RequestParam(value = "size") Integer size) {
        try {
            JSONArray result = wlyygcStatisticsService.emeAndSecInfo(page,size,code);
            return success(result);
        } catch (Exception e) {
            return failedListEnvelopException2(e);
        }
    }
}

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

@ -1,6 +1,10 @@
package com.yihu.jw.care.service.statistics;
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.util.common.IdCardUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -17,7 +21,8 @@ public class WlyygcStatisticsService {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private BaseEmergencyWarnLogDao logDao;
    /**
     * 社区签约老人数量
@ -72,4 +77,163 @@ public class WlyygcStatisticsService {
        return json;
    }
    /**
     * 紧急救助和安防监控数量
     * @param code
     * @return
     */
    public JSONObject emeAndSec(String code){
        JSONObject json = new JSONObject();
        String sqlEme = "select count(DISTINCT o.id) c,o.status FROM   " +
                "base_patient p INNER JOIN base_service_package_sign_record sr on p.id = sr.patient and sr.`status`=1 " +
                ", base_service_package_record r, base_emergency_assistance_order o   " +
                "WHERE p.del = 1 and p.archive_type =1 and r.patient = p.id " +
                "and p.id = o.patient ";
        String sqlSec = "select count(DISTINCT o.id) c,o.status FROM   " +
                "base_patient p INNER JOIN base_service_package_sign_record sr on p.id = sr.patient and sr.`status`=1 " +
                ", base_service_package_record r, base_security_monitoring_order o  " +
                "WHERE p.del = 1 and p.archive_type =1 and r.patient = p.id " +
                "and p.id = o.patient ";
        String filter = "";
        if("1".equals(code)){
            filter += "  and r.team_code = '8a92aba97a9f6f49017ae4fdbdmqteam' ";
        }else {
            return json;
        }
        filter += " GROUP BY o.status";
        Integer emeTotla = 0;
        Integer emeErrorWarning = 0;
        Integer emeCancel = 0;
        Integer emeComplete = 0;
        Integer emeApply = 0;
        Integer secTotla = 0;
        Integer secErrorWarning = 0;
        Integer secCancel = 0;
        Integer secComplete = 0;
        Integer secApply = 0;
        List<Map<String,Object>> res1 = jdbcTemplate.queryForList(sqlEme + filter);
        for (Map<String,Object> map : res1){
            Integer num = Integer.valueOf(map.get("c").toString());
            String status = map.get("status")+"";
            emeTotla += num;
            if("1".equals(status)){
                emeApply = num;
                continue;
            }
            if("0".equals(status)){
                emeComplete = num;
                continue;
            }
            if("-1".equals(status)){
                emeCancel = num;
                continue;
            }
            if("-2".equals(status)){
                emeErrorWarning = num;
                continue;
            }
        }
        List<Map<String,Object>> res2 = jdbcTemplate.queryForList(sqlSec + filter);
        for (Map<String,Object> map : res2){
            Integer num = Integer.valueOf(map.get("c").toString());
            String status = map.get("status")+"";
            secTotla += num;
            if("1".equals(status)){
                secApply = num;
                continue;
            }
            if("0".equals(status)){
                secComplete = num;
                continue;
            }
            if("-1".equals(status)){
                secCancel = num;
                continue;
            }
            if("-2".equals(status)){
                secErrorWarning = num;
                continue;
            }
        }
        json.put("secTotla",secTotla);
        json.put("secApply",secApply);
        json.put("secComplete",secComplete);
        json.put("secCancel",secCancel);
        json.put("secErrorWarning",secErrorWarning);
        json.put("emeTotla",emeTotla);
        json.put("emeApply",emeApply);
        json.put("emeComplete",emeComplete);
        json.put("emeCancel",emeCancel);
        json.put("emeErrorWarning",emeErrorWarning);
        return json;
    }
    /**
     * 安防/紧急呼叫概要
     * @param page
     * @param size
     * @param code
     * @return
     */
    public JSONArray emeAndSecInfo(Integer page, Integer size,String code){
        JSONArray jsonArray = new JSONArray();
        String filter = "";
        if("1".equals(code)){
            filter = " and r.team_code = '8a92aba97a9f6f49017ae4fdbdmqteam' ";
        }else {
            return jsonArray;
        }
        if(page==null){
            page =1;
        }
        if(size==null){
            size = 10;
        }
        Map<String,String> statusMap = new HashMap<>();
        statusMap.put("-1","已取消");
        statusMap.put("-2","误报警");
        statusMap.put("0","已完成");
        statusMap.put("1","申请中");
        String sql = "SELECT * from ( " +
                "select o.id,p.name,p.idcard,p.residential_area,'1' type,o.serve_address,'紧急呼叫' serve_desc,o.status,o.create_time  FROM  " +
                "base_patient p INNER JOIN base_service_package_sign_record sr on p.id = sr.patient and sr.`status`=1 " +
                ", base_service_package_record r, base_emergency_assistance_order o    " +
                "WHERE p.del = 1 and p.archive_type =1 and r.patient = p.id " +
                "and p.id = o.patient " + filter +
                "UNION ALL " +
                "select o.id,p.name,p.idcard,p.residential_area,'2' type,o.serve_address,o.serve_desc,o.status,o.create_time FROM  " +
                "base_patient p INNER JOIN base_service_package_sign_record sr on p.id = sr.patient and sr.`status`=1 " +
                ", base_service_package_record r, base_security_monitoring_order o " +
                "WHERE p.del = 1 and p.archive_type =1 and r.patient = p.id " +
                "and p.id = o.patient " + filter +
                " ) a ORDER BY a.create_time desc limit "+(page*size)+","+size;
        List<Map<String,Object>> res = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map : res){
            JSONObject json = new JSONObject();
            json.put("name",map.get("name"));
            json.put("age", IdCardUtil.getAgeForIdcard(map.get("idcard")+""));
            json.put("residentialArea",map.get("residential_area"));
            json.put("type",map.get("type"));
            json.put("serveAddress",map.get("serve_address"));
            json.put("serveDesc",map.get("serve_desc"));
            json.put("status",statusMap.get(map.get("status")+""));
            json.put("createTime",map.get("create_time").toString().substring(0,19));
            String orderLogInfo = "";
            List<BaseEmergencyWarnLogDO> logDOS = logDao.findByOrderIdOrderByCreateTimeDesc(map.get("id")+"");
            if(logDOS.size()>0){
                BaseEmergencyWarnLogDO warnLogDO = logDOS.get(0);
                orderLogInfo = warnLogDO.getUserName()+":"+warnLogDO.getContent();
            }
            json.put("orderLogInfo",orderLogInfo);
            jsonArray.add(json);
        }
        return jsonArray;
    }
}