|  | @ -0,0 +1,403 @@
 | 
												
													
														
															|  | 
 |  | 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.restmodel.web.PageEnvelop;
 | 
												
													
														
															|  | 
 |  | 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;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | import java.util.HashMap;
 | 
												
													
														
															|  | 
 |  | import java.util.List;
 | 
												
													
														
															|  | 
 |  | import java.util.Map;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | /**
 | 
												
													
														
															|  | 
 |  |  * Created by yeshijie on 2022/1/18.
 | 
												
													
														
															|  | 
 |  |  */
 | 
												
													
														
															|  | 
 |  | @Service
 | 
												
													
														
															|  | 
 |  | public class WlyygcStatisticsService {
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private JdbcTemplate jdbcTemplate;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private BaseEmergencyWarnLogDao logDao;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /**
 | 
												
													
														
															|  | 
 |  |      * 社区签约老人数量
 | 
												
													
														
															|  | 
 |  |      * @return
 | 
												
													
														
															|  | 
 |  |      */
 | 
												
													
														
															|  | 
 |  |     public Integer signOlderNum(String code){
 | 
												
													
														
															|  | 
 |  |         String sql = "select count(DISTINCT p.id) 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 "+
 | 
												
													
														
															|  | 
 |  |                 "WHERE p.del = 1 and p.archive_type =1  and r.patient = p.id";
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         if("1".equals(code)){
 | 
												
													
														
															|  | 
 |  |             //1华联社区
 | 
												
													
														
															|  | 
 |  |             sql += "  and r.team_code = '8a92aba97a9f6f49017ae4fdbdmqteam' ";
 | 
												
													
														
															|  | 
 |  |         }else {
 | 
												
													
														
															|  | 
 |  |             return 0;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         Integer res = jdbcTemplate.queryForObject(sql,Integer.class);
 | 
												
													
														
															|  | 
 |  |         return res;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /**
 | 
												
													
														
															|  | 
 |  |      * 绑定设备在线数量,绑定设备总数
 | 
												
													
														
															|  | 
 |  |      * @return
 | 
												
													
														
															|  | 
 |  |      */
 | 
												
													
														
															|  | 
 |  |     public JSONObject deviceInfo(String code){
 | 
												
													
														
															|  | 
 |  |         JSONObject json = new JSONObject();
 | 
												
													
														
															|  | 
 |  |         Integer total = 0;
 | 
												
													
														
															|  | 
 |  |         Integer online = 0;
 | 
												
													
														
															|  | 
 |  |         String sql = "select count(DISTINCT d.id) c, IFNULL(d.contact_status,0) contact_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, wlyy_patient_device pd ,wlyy_devices d  " +
 | 
												
													
														
															|  | 
 |  |                 "WHERE p.del = 1 and p.archive_type =1 and r.patient = p.id " +
 | 
												
													
														
															|  | 
 |  |                 "and p.id = pd.`user` and d.device_code = pd.device_sn ";
 | 
												
													
														
															|  | 
 |  |         if("1".equals(code)){
 | 
												
													
														
															|  | 
 |  |             //1华联社区
 | 
												
													
														
															|  | 
 |  |             sql += "  and r.team_code = '8a92aba97a9f6f49017ae4fdbdmqteam' ";
 | 
												
													
														
															|  | 
 |  |         }else {
 | 
												
													
														
															|  | 
 |  |             return json;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         sql += "  GROUP BY d.contact_status ";
 | 
												
													
														
															|  | 
 |  |         List<Map<String,Object>> res = jdbcTemplate.queryForList(sql);
 | 
												
													
														
															|  | 
 |  |         for (Map<String,Object> map : res){
 | 
												
													
														
															|  | 
 |  |             Integer num = Integer.valueOf(map.get("c").toString());
 | 
												
													
														
															|  | 
 |  |             Integer contact_status = Integer.valueOf(map.get("contact_status").toString());
 | 
												
													
														
															|  | 
 |  |             if(contact_status==1){
 | 
												
													
														
															|  | 
 |  |                 online = num;
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             total += num;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         json.put("total",total);
 | 
												
													
														
															|  | 
 |  |         json.put("online",online);
 | 
												
													
														
															|  | 
 |  |         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 PageEnvelop emeAndSecInfo(Integer page, Integer size, String code, Integer type, Integer status){
 | 
												
													
														
															|  | 
 |  |         JSONArray jsonArray = new JSONArray();
 | 
												
													
														
															|  | 
 |  |         String filter = "";
 | 
												
													
														
															|  | 
 |  |         if("1".equals(code)){
 | 
												
													
														
															|  | 
 |  |             filter = " and r.team_code = '8a92aba97a9f6f49017ae4fdbdmqteam' ";
 | 
												
													
														
															|  | 
 |  |         }else {
 | 
												
													
														
															|  | 
 |  |             return PageEnvelop.getSuccess("查询成功");
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         if(status!=null){
 | 
												
													
														
															|  | 
 |  |             filter += " and o.status = "+status;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         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 where 1=1 ";
 | 
												
													
														
															|  | 
 |  |         if(type!=null){
 | 
												
													
														
															|  | 
 |  |             sql += " and a.type = '"+type+"'";
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         sql += "ORDER BY a.create_time desc limit "+(page-1)*size+","+size;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         String sqlCount = "SELECT count(*) from ( " +
 | 
												
													
														
															|  | 
 |  |                 "select o.id,'1' type  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,'2' type 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 where 1=1 ";
 | 
												
													
														
															|  | 
 |  |         if(type!=null){
 | 
												
													
														
															|  | 
 |  |             sqlCount += " and a.type = '"+type+"'";
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         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);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         long total = jdbcTemplate.queryForObject(sqlCount,Long.class);
 | 
												
													
														
															|  | 
 |  |         return PageEnvelop.getSuccessListWithPage("查询成功",jsonArray,page,size,total);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public PageEnvelop signOldList(String code, Integer page, Integer size) {
 | 
												
													
														
															|  | 
 |  |         if (page == null) {
 | 
												
													
														
															|  | 
 |  |             page = 1;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         if (size == null) {
 | 
												
													
														
															|  | 
 |  |             size = 10;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         String sql = "SELECT DISTINCT p.`name`, p.mobile, p.idcard,(CASE WHEN p.sex = 1 THEN  '男' ELSE '女' END ) AS sex,p.address, TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) years,p.residential_area AS residentialArea" +
 | 
												
													
														
															|  | 
 |  |                 " FROM base_patient p INNER JOIN base_service_package_sign_record br ON p.id = br.patient, base_service_package_record r" +
 | 
												
													
														
															|  | 
 |  |                 " WHERE p.del = 1 AND br.`status` = 1 AND p.archive_type = 1 AND r.patient = p.id ";
 | 
												
													
														
															|  | 
 |  |         String sqlCount = "SELECT count(DISTINCT p.id) " +
 | 
												
													
														
															|  | 
 |  |                 " FROM base_patient p INNER JOIN base_service_package_sign_record br ON p.id = br.patient, base_service_package_record r" +
 | 
												
													
														
															|  | 
 |  |                 " WHERE p.del = 1 AND br.`status` = 1 AND p.archive_type = 1 AND r.patient = p.id ";
 | 
												
													
														
															|  | 
 |  |         if ("1".equals(code)) {
 | 
												
													
														
															|  | 
 |  |             //1华联社区
 | 
												
													
														
															|  | 
 |  |             sql += "  and r.team_code = '8a92aba97a9f6f49017ae4fdbdmqteam' ";
 | 
												
													
														
															|  | 
 |  |             sqlCount += "  and r.team_code = '8a92aba97a9f6f49017ae4fdbdmqteam' ";
 | 
												
													
														
															|  | 
 |  |         } else {
 | 
												
													
														
															|  | 
 |  |             return PageEnvelop.getSuccess("查询成功");
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         sql += "ORDER BY p.`name` desc limit " + (page - 1)*size + "," + size;
 | 
												
													
														
															|  | 
 |  |         List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
 | 
												
													
														
															|  | 
 |  |         long total = jdbcTemplate.queryForObject(sqlCount,Long.class);
 | 
												
													
														
															|  | 
 |  |         return PageEnvelop.getSuccessListWithPage("查询成功",maps,page,size,total);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public PageEnvelop securityEmergencyList(String code,Integer type,Integer page,Integer size) {
 | 
												
													
														
															|  | 
 |  |         String filter = "";
 | 
												
													
														
															|  | 
 |  |         if("1".equals(code)){
 | 
												
													
														
															|  | 
 |  |             filter = " and r.team_code = '8a92aba97a9f6f49017ae4fdbdmqteam' ";
 | 
												
													
														
															|  | 
 |  |         }else {
 | 
												
													
														
															|  | 
 |  |             return PageEnvelop.getSuccess("查询成功");
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         if(page==null){
 | 
												
													
														
															|  | 
 |  |             page =1;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         if(size==null){
 | 
												
													
														
															|  | 
 |  |             size = 10;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         String sql = "SELECT * from ( " +
 | 
												
													
														
															|  | 
 |  |                 "select p.name,'紧急呼叫' serveDesc,'1' type,o.create_time createTime 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 p.name,o.serve_desc serveDesc,'2' type,o.create_time createTime 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 where 1=1 ";
 | 
												
													
														
															|  | 
 |  |         if(type!=null){
 | 
												
													
														
															|  | 
 |  |             sql += " and a.type = '"+type+"'";
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         sql += "ORDER BY a.createTime desc limit "+(page-1)*size+","+size;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         String sqlCount = "SELECT count(*) from ( " +
 | 
												
													
														
															|  | 
 |  |                 "select o.id,'1' type  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,'2' type 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 where 1=1 ";
 | 
												
													
														
															|  | 
 |  |         if(type!=null){
 | 
												
													
														
															|  | 
 |  |             sqlCount += " and a.type = '"+type+"'";
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         List<Map<String,Object>> res = jdbcTemplate.queryForList(sql);
 | 
												
													
														
															|  | 
 |  |         for (Map<String,Object> map : res){
 | 
												
													
														
															|  | 
 |  |             map.put("createTime",map.get("createTime").toString().substring(0,19));
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         long total = jdbcTemplate.queryForObject(sqlCount,Long.class);
 | 
												
													
														
															|  | 
 |  |         return PageEnvelop.getSuccessListWithPage("查询成功",res,page,size,total);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     public PageEnvelop deviceList(String code,Integer page,Integer size){
 | 
												
													
														
															|  | 
 |  |         if (page == null) {
 | 
												
													
														
															|  | 
 |  |             page = 1;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         if (size == null) {
 | 
												
													
														
															|  | 
 |  |             size = 10;
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         String filter ="";
 | 
												
													
														
															|  | 
 |  |         if ("1".equals(code)){
 | 
												
													
														
															|  | 
 |  |             filter += "AND r.team_code = '8a92aba97a9f6f49017ae4fdbdmqteam'";
 | 
												
													
														
															|  | 
 |  |         }else {
 | 
												
													
														
															|  | 
 |  |             return PageEnvelop.getSuccess("查询成功");
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         String deviceSql = "SELECT DISTINCT" +
 | 
												
													
														
															|  | 
 |  |                 " pd.device_name as deviceName," +
 | 
												
													
														
															|  | 
 |  |                 "pd.device_type as deviceType," +
 | 
												
													
														
															|  | 
 |  |                 "IFNULL(wd.collect_num,0) as collectNum " +
 | 
												
													
														
															|  | 
 |  |                 "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," +
 | 
												
													
														
															|  | 
 |  |                 " wlyy_patient_device pd," +
 | 
												
													
														
															|  | 
 |  |                 " wlyy_devices wd " +
 | 
												
													
														
															|  | 
 |  |                 "WHERE " +
 | 
												
													
														
															|  | 
 |  |                 "p.del = 1 " +
 | 
												
													
														
															|  | 
 |  |                 "AND p.archive_type = 1 " +
 | 
												
													
														
															|  | 
 |  |                 "AND r.patient = p.id " +
 | 
												
													
														
															|  | 
 |  |                 "AND p.id = pd.`user` " +
 | 
												
													
														
															|  | 
 |  |                 "AND pd.del = 0 "+
 | 
												
													
														
															|  | 
 |  |                 "AND wd.device_code = pd.device_sn "+filter+" ORDER BY pd.device_name DESC limit " + (page - 1)*size + "," + size;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         List<Map<String, Object>> maps = jdbcTemplate.queryForList(deviceSql);
 | 
												
													
														
															|  | 
 |  |         String sqlCount = "SELECT count(DISTINCT pd.id) " +
 | 
												
													
														
															|  | 
 |  |                 "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," +
 | 
												
													
														
															|  | 
 |  |                 " wlyy_patient_device pd," +
 | 
												
													
														
															|  | 
 |  |                 " wlyy_devices wd " +
 | 
												
													
														
															|  | 
 |  |                 "WHERE " +
 | 
												
													
														
															|  | 
 |  |                 "p.del = 1 " +
 | 
												
													
														
															|  | 
 |  |                 "AND p.archive_type = 1 " +
 | 
												
													
														
															|  | 
 |  |                 "AND r.patient = p.id " +
 | 
												
													
														
															|  | 
 |  |                 "AND p.id = pd.`user` " +
 | 
												
													
														
															|  | 
 |  |                 "AND pd.del = 0 "+
 | 
												
													
														
															|  | 
 |  |                 "AND wd.device_code = pd.device_sn "+filter;
 | 
												
													
														
															|  | 
 |  |         long total = jdbcTemplate.queryForObject(sqlCount,Long.class);
 | 
												
													
														
															|  | 
 |  |         return PageEnvelop.getSuccessListWithPage("查询成功",maps,page,size,total);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | }
 |