|  | @ -1,15 +1,18 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.care.service.message;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSON;
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSONArray;
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.serializer.SerializerFeature;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.dao.pushLog.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.service.device.PatientDeviceService;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.util.MessageUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.dict.service.BaseCopywritingService;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.patient.BasePatientDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.device.DevicePatientDevice;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.log.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.date.DateUtil;
 | 
	
		
			
				|  |  | import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | import org.slf4j.Logger;
 | 
	
		
			
				|  |  | import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
	
		
			
				|  | @ -55,6 +58,10 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |     private ZhaohuiDailySleepDao zhaohuiDailySleepDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private ZhaohuiDailyEmeDao zhaohuiDailyEmeDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private ZhaohuifireGasSecDao zhaohuifireGasSecDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BaseCopywritingService dictService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void allRound() {
 | 
	
	
		
			
				|  | @ -69,7 +76,7 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |                           //  AND id = '808080eb78d3ce030178edeb4346002b'
 | 
	
		
			
				|  |  |     //获取所有老人
 | 
	
		
			
				|  |  |     private List<BasePatientDO> olds() {
 | 
	
		
			
				|  |  |         String sql = "SELECT * FROM base_patient WHERE archive_type =1 AND sign_status =1  AND del = 1 NOT IN (SELECT dict_code FROM wlyy_hospital_sys_dict WHERE `dict_name` = 'jkzl_older')";
 | 
	
		
			
				|  |  |         String sql = "SELECT * FROM base_patient WHERE archive_type =1 AND sign_status =1  AND del = 1 and id NOT IN (SELECT dict_code FROM wlyy_hospital_sys_dict WHERE `dict_name` = 'jkzl_older')";
 | 
	
		
			
				|  |  |         List<BasePatientDO> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(BasePatientDO.class));
 | 
	
		
			
				|  |  |         return query;
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -87,6 +94,8 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private PadUseTimeDao padUseTimeDao;
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -97,13 +106,17 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |         List<ZhaohuiDailySleepEntity> zhaohuiDailySleepList = new ArrayList<>();
 | 
	
		
			
				|  |  |         List<ZhaohuiDailyVideoEntity> zhaohuiDailyVideoList = new ArrayList<>();
 | 
	
		
			
				|  |  |         List<ZhaohuiDailyEmeEntity> zhaohuiDailyEmeList = new ArrayList<>();
 | 
	
		
			
				|  |  |         List<ZhaohuifireGasSecEntity> zhaohuifireGasSecEntityList = new ArrayList<>();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String message = dictService.findCopywriting("zhaohui_dailyReport", "family_zhaohui_daily1");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String oldId = old.getId();
 | 
	
		
			
				|  |  |         String date = DateUtil.getStringDateShort();
 | 
	
		
			
				|  |  |         String stateDate = date + " 00:00:00";
 | 
	
		
			
				|  |  |         String endDate = date + " 23:59:59";
 | 
	
		
			
				|  |  |         Integer deviceTotal = 0;
 | 
	
		
			
				|  |  |         String deviceName = "";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sex = old.getSex()==1?"爷爷":"奶奶";
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -113,36 +126,44 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |         zhaohuiDailyEntity.setPhoto(old.getPhoto());
 | 
	
		
			
				|  |  |         zhaohuiDailyEntity.setCreateTime(new Date());
 | 
	
		
			
				|  |  |         zhaohuiDailyEntity.setFamilyCode(familyCode);
 | 
	
		
			
				|  |  |         zhaohuiDailyEntity.setUserType(1);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String message = "";
 | 
	
		
			
				|  |  |         String orgCodeSql = "SELECT t.id as orgId FROM base_service_package_sign_record r INNER JOIN base_team t ON r.sign_doctor= t.leader_code WHERE r.patient = '"+oldId+"' ";
 | 
	
		
			
				|  |  |         List<Map<String, Object>> orgCodeList = jdbcTemplate.queryForList(orgCodeSql);
 | 
	
		
			
				|  |  |         if (orgCodeList.size()>0) {
 | 
	
		
			
				|  |  |             zhaohuiDailyEntity.setOrgCode(orgCodeList.get(0).get("orgId").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String emeSql = "select count(id) from base_emergency_assistance_order where patient='"+oldId+"'  and create_time>='"+stateDate+"' and create_time<='"+endDate+"'";
 | 
	
		
			
				|  |  |         String emeSql = "select count(id) from base_emergency_assistance_order where patient='"+oldId+"'  and create_time>='"+stateDate+"' and create_time<='"+endDate+"' and status <> -1";
 | 
	
		
			
				|  |  |         Integer emeTotal = jdbcTemplate.queryForObject(emeSql, Integer.class);
 | 
	
		
			
				|  |  |         if (emeTotal>0){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         /*if (emeTotal>0){
 | 
	
		
			
				|  |  |             message += old.getName()+sex+"今日发起"+emeTotal+"次紧急呼叫";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         }*/
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String secSql ="select count(id) total,serve_desc from  base_security_monitoring_order where patient= '"+oldId+"' and create_time>='"+stateDate+"' and create_time<='"+endDate+"' ";
 | 
	
		
			
				|  |  |         String secSql ="select count(id) total,serve_desc from  base_security_monitoring_order where patient= '"+oldId+"' and create_time>='"+stateDate+"' and create_time<='"+endDate+"' and status <> -1 ";
 | 
	
		
			
				|  |  |         List<Map<String, Object>> list = jdbcTemplate.queryForList(secSql);
 | 
	
		
			
				|  |  |         if (list.size()>0&&0>Integer.parseInt(list.get(0).get("total").toString())) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         /*if (list.size()>0&&0>Integer.parseInt(list.get(0).get("total").toString())) {
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(message)) {
 | 
	
		
			
				|  |  |                 message += "\n 监护到"+old.getName()+sex+"今日存在安全预警:【"+list.get(0).get("serve_desc")+"】";
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 message = "监护到"+old.getName()+sex+"今日存在安全预警:【"+list.get(0).get("serve_desc")+"】";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         }*/
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         zhaohuiDailyEntity.setEmeNum(emeTotal+(list.size()>0?Integer.parseInt(list.get(0).get("total").toString()):0));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isBlank(message)) {
 | 
	
		
			
				|  |  |             message = old.getName()+sex+"今日状态正常,未发生异常情况";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         /*if (StringUtils.isBlank(message)) {
 | 
	
		
			
				|  |  |             message = old.getName()+sex+"今日状态正常,未发生异常情况,今日家中设备工作正常";
 | 
	
		
			
				|  |  |         }*/
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         zhaohuiDailyEntity.setMessage(message);
 | 
	
		
			
				|  |  |         zhaohuiDailyEntity.setMessage(old.getName()+sex+","+message);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String lifeSql = "select count(id) from base_life_care_order where patient = '" + oldId + "' and status = 1 and create_time>= '" + stateDate + "' and create_time<= '" + endDate + "'";
 | 
	
		
			
				|  |  |         String lifeSql = "select count(id) from base_life_care_order where patient = '" + oldId + "' and status = 1 and create_time>= '" + stateDate + "' and create_time<= '" + endDate + "' and status <> -1";
 | 
	
		
			
				|  |  |         String lifeInfoSql = "select d.name,d.create_time create_time from base_life_care_order o INNER JOIN base_life_care_fee_detail d ON o.id=d.order_id where o.patient = '" + oldId + "' and o.status = 1 and o.create_time>= '" + stateDate + "' and o.create_time<= '" + endDate + "' order by o.create_time DESC limit 1";
 | 
	
		
			
				|  |  |         List<Map<String, Object>> lifeList = jdbcTemplate.queryForList(lifeInfoSql);
 | 
	
		
			
				|  |  |         Integer lifeTotal = jdbcTemplate.queryForObject(lifeSql, Integer.class);
 | 
	
	
		
			
				|  | @ -176,9 +197,9 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |         zhaohuiDailyEntity = zhaohuiDailyDao.save(zhaohuiDailyEntity);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sql = "SELECT pd.device_sn,pd.category_code FROM base.wlyy_patient_device pd  where pd.del=0 AND  category_code in ('7','12','4','13') AND user = '" + oldId + "'  ";
 | 
	
		
			
				|  |  |         String sql = "SELECT pd.device_sn,pd.category_code FROM base.wlyy_patient_device pd  where pd.del=0 AND  category_code in ('7','12','4','13','14','15') AND user = '" + oldId + "'  ";
 | 
	
		
			
				|  |  |         List<Map<String, Object>> oldDeviceList = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String zhaohuiID = zhaohuiDailyEntity.getId().toString();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         for (Map<String, Object> device : oldDeviceList) {
 | 
	
		
			
				|  |  |             String deviceSn = device.get("device_sn").toString();
 | 
	
	
		
			
				|  | @ -187,7 +208,7 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |                 case 7: //居家报警器
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     ZhaohuiDailyEmeEntity zhaohuiDailyEmeEntity = new ZhaohuiDailyEmeEntity();
 | 
	
		
			
				|  |  |                     zhaohuiDailyEmeEntity.setDailyId(zhaohuiDailyEntity.getId().toString());
 | 
	
		
			
				|  |  |                     zhaohuiDailyEmeEntity.setDailyId(zhaohuiID);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     sql = "  select o.id,o.create_time from base_emergency_assistance_order o " +
 | 
	
		
			
				|  |  |                             " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1  and o.create_time >= '"+stateDate+"' and o.create_time <= '"+endDate+"'  ORDER BY create_time desc  limit 1 ";
 | 
	
	
		
			
				|  | @ -207,18 +228,22 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |                         //在线状态实时获取
 | 
	
		
			
				|  |  |                         if (!aqgDeviceInfo2.getBoolean("online")) {//设备在线状态
 | 
	
		
			
				|  |  |                             zhaohuiDailyEmeEntity.setOnline(0);
 | 
	
		
			
				|  |  |                             deviceTotal+=1;
 | 
	
		
			
				|  |  |                             deviceName +=",居家报警器离线";
 | 
	
		
			
				|  |  |                         } else {
 | 
	
		
			
				|  |  |                             zhaohuiDailyEmeEntity.setOnline(1);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else {
 | 
	
		
			
				|  |  |                         zhaohuiDailyEmeEntity.setOnline(0);
 | 
	
		
			
				|  |  |                         deviceTotal +=1;
 | 
	
		
			
				|  |  |                         deviceName +=",居家报警器离线";
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     zhaohuiDailyEmeList.add(zhaohuiDailyEmeEntity);
 | 
	
		
			
				|  |  |                     break;
 | 
	
		
			
				|  |  |                 case 4: //智能手表
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     ZhaohuiDailyWatchEntity zhaohuiDailyWatchEntity = new ZhaohuiDailyWatchEntity();
 | 
	
		
			
				|  |  |                     zhaohuiDailyWatchEntity.setDailyId(zhaohuiDailyEntity.getId().toString());
 | 
	
		
			
				|  |  |                     zhaohuiDailyWatchEntity.setDailyId(zhaohuiID);
 | 
	
		
			
				|  |  |                     JSONObject response = patientDeviceService.getAqgDeviceInfo2(deviceSn);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     if (null != response) {
 | 
	
	
		
			
				|  | @ -235,6 +260,8 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         //在线状态实时获取
 | 
	
		
			
				|  |  |                         if (!response.getBoolean("online")) {//设备在线状态
 | 
	
		
			
				|  |  |                             deviceTotal+=1;
 | 
	
		
			
				|  |  |                             deviceName+=",手表离线";
 | 
	
		
			
				|  |  |                             zhaohuiDailyWatchEntity.setOnline(0);
 | 
	
		
			
				|  |  |                         } else {
 | 
	
		
			
				|  |  |                             zhaohuiDailyWatchEntity.setOnline(1);
 | 
	
	
		
			
				|  | @ -277,6 +304,11 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |                         zhaohuiDailyWatchEntity.setServeDesc("无");
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     JSONArray x1Locations = getX1Locations(oldId, stateDate);
 | 
	
		
			
				|  |  |                     if (null!=x1Locations&&x1Locations.size()>0) {
 | 
	
		
			
				|  |  |                         zhaohuiDailyWatchEntity.setLocations(x1Locations.toJSONString());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     zhaohuiDailyWatchList.add(zhaohuiDailyWatchEntity);
 | 
	
		
			
				|  |  |                     break;
 | 
	
		
			
				|  |  |                 case 12: //防跌倒视频监测
 | 
	
	
		
			
				|  | @ -296,19 +328,21 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     zhaohuiDailyVideoEntity.setDeviceSn(deviceSn);
 | 
	
		
			
				|  |  |                     zhaohuiDailyVideoEntity.setDailyId(zhaohuiDailyEntity.getId().toString());
 | 
	
		
			
				|  |  |                     zhaohuiDailyVideoEntity.setDailyId(zhaohuiID);
 | 
	
		
			
				|  |  |                     zhaohuiDailyVideoEntity.setTime(stateDate + "," + endDate);
 | 
	
		
			
				|  |  |                     zhaohuiDailyVideoList.add(zhaohuiDailyVideoEntity);
 | 
	
		
			
				|  |  |                     break;
 | 
	
		
			
				|  |  |                 case 13: //睡眠带
 | 
	
		
			
				|  |  |                     ZhaohuiDailySleepEntity zhaohuiDailySleep = new ZhaohuiDailySleepEntity();
 | 
	
		
			
				|  |  |                     zhaohuiDailySleep.setDailyId(zhaohuiDailyEntity.getId().toString());
 | 
	
		
			
				|  |  |                     zhaohuiDailySleep.setDailyId(zhaohuiID);
 | 
	
		
			
				|  |  |                     JSONObject sleepDeviceInfo = patientDeviceService.getSleepDeviceInfo(deviceSn);
 | 
	
		
			
				|  |  |                     if (sleepDeviceInfo.getBooleanValue("success")) {
 | 
	
		
			
				|  |  |                         JSONArray objs = sleepDeviceInfo.getJSONArray("objs");
 | 
	
		
			
				|  |  |                         response = objs.getJSONObject(0);
 | 
	
		
			
				|  |  |                         if (!response.getBoolean("online")) {//设备在线状态
 | 
	
		
			
				|  |  |                             zhaohuiDailySleep.setStatus("0");
 | 
	
		
			
				|  |  |                             deviceTotal+=1;
 | 
	
		
			
				|  |  |                             deviceName+=",睡眠带离线";
 | 
	
		
			
				|  |  |                         } else {
 | 
	
		
			
				|  |  |                             zhaohuiDailySleep.setStatus("1");
 | 
	
		
			
				|  |  |                         }
 | 
	
	
		
			
				|  | @ -351,11 +385,76 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     zhaohuiDailySleepList.add(zhaohuiDailySleep);
 | 
	
		
			
				|  |  |                     break;
 | 
	
		
			
				|  |  |                 case 14: //烟感
 | 
	
		
			
				|  |  |                     ZhaohuifireGasSecEntity yg = new ZhaohuifireGasSecEntity();
 | 
	
		
			
				|  |  |                     sql = " select count(o.id) as total from base_security_monitoring_order o " +
 | 
	
		
			
				|  |  |                             " INNER JOIN base_patient p on p.id = o.patient where device_sn='" + deviceSn + "' and o.status=1 and o.create_time >= '" + stateDate + "' and o.create_time <= '" + endDate + "' ORDER BY create_time desc    ";
 | 
	
		
			
				|  |  |                     Integer ygTotal = jdbcTemplate.queryForObject(sql, Integer.class);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     sql = " select value, DATE_FORMAT( record_time, '%H:%i:%S' ) as record_time  from base_device_health_index where device_sn='" + deviceSn + "' and record_time >= '" + stateDate + "' and record_time <= '" + endDate + "' ORDER BY record_time desc";
 | 
	
		
			
				|  |  |                     List<Map<String, Object>> ygList = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |                     JSONArray ygJsonArray = JSONArray.parseArray(ygList.toString());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     yg.setDailyId(zhaohuiID);
 | 
	
		
			
				|  |  |                     yg.setOnline(1);
 | 
	
		
			
				|  |  |                     yg.setType(1);
 | 
	
		
			
				|  |  |                     if (ygTotal>0) {
 | 
	
		
			
				|  |  |                         yg.setSecStatus(1);
 | 
	
		
			
				|  |  |                     }else {
 | 
	
		
			
				|  |  |                         yg.setSecStatus(0);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     yg.setFireCurve(ygJsonArray.toJSONString());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     zhaohuifireGasSecEntityList.add(yg);
 | 
	
		
			
				|  |  |                     break;
 | 
	
		
			
				|  |  |                 case 15: //气感
 | 
	
		
			
				|  |  |                     sql = " select count(o.id) as total from base_security_monitoring_order o " +
 | 
	
		
			
				|  |  |                             " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1 and o.create_time >= '"+stateDate+"' and o.create_time <= '"+endDate+"' ORDER BY create_time desc  limit 1 ";
 | 
	
		
			
				|  |  |                     Integer qgTotal = jdbcTemplate.queryForObject(sql, Integer.class);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     ZhaohuifireGasSecEntity qg = new ZhaohuifireGasSecEntity();
 | 
	
		
			
				|  |  |                     qg.setDailyId(zhaohuiID);
 | 
	
		
			
				|  |  |                     qg.setOnline(1);
 | 
	
		
			
				|  |  |                     qg.setType(2);
 | 
	
		
			
				|  |  |                     if (qgTotal>0) {
 | 
	
		
			
				|  |  |                         qg.setSecStatus(1);
 | 
	
		
			
				|  |  |                     }else {
 | 
	
		
			
				|  |  |                         qg.setSecStatus(0);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     sql = " select value,DATE_FORMAT( record_time, '%H:%i:%S' ) as record_time  from base_device_health_index where device_sn='"+deviceSn+"' and record_time >='"+stateDate+"' and record_time <= '"+endDate+"'  ORDER BY record_time desc limit 1 ";
 | 
	
		
			
				|  |  |                     List<Map<String, Object>> qgList = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |                     JSONArray qgJsonArray = JSONArray.parseArray(qgList.toString());
 | 
	
		
			
				|  |  |                     qg.setFireCurve(qgJsonArray.toJSONString());
 | 
	
		
			
				|  |  |                     zhaohuifireGasSecEntityList.add(qg);
 | 
	
		
			
				|  |  |                     break;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         wxPush(old.getName(),familyCode, zhaohuiDailyEntity.getService(), emeTotal);
 | 
	
		
			
				|  |  |         String secMessage = "";
 | 
	
		
			
				|  |  |         String deviceMessage = "";
 | 
	
		
			
				|  |  |         //判断是否存在预警
 | 
	
		
			
				|  |  |         secSql = "select serve_desc,status total,serve_desc from  base_security_monitoring_order where patient= '" + oldId + "' and create_time>='" + stateDate + "' and create_time<='" + endDate + "' and status <> -1 order by create_time DESC  ";
 | 
	
		
			
				|  |  |         list = jdbcTemplate.queryForList(secSql);
 | 
	
		
			
				|  |  |         if (list.size() > 0) {
 | 
	
		
			
				|  |  |             secMessage = dictService.findCopywriting("zhaohui_dailyReport", "family_eme1");
 | 
	
		
			
				|  |  |             secMessage = secMessage.replace("<serve>",list.get(0).get("serve_desc").toString()).replace("<status>","");
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             secMessage = dictService.findCopywriting("zhaohui_dailyReport", "family_eme2");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (deviceTotal>0) {
 | 
	
		
			
				|  |  |             deviceMessage = dictService.findCopywriting("zhaohui_dailyReport", "family_device1");
 | 
	
		
			
				|  |  |             deviceMessage.replace("<deviceName>",deviceName.replace(",",""));
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             deviceMessage = dictService.findCopywriting("zhaohui_dailyReport", "family_device2");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         zhaohuiDailyEntity.setMessage(old.getName()+sex+secMessage+deviceMessage);
 | 
	
		
			
				|  |  |         zhaohuiDailyDao.save(zhaohuiDailyEntity);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -368,11 +467,13 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |         messageUtil.putTemplateWxMessage(wxId,"template_zhrb","zhrb","123456",first,null,null,1,null,"",key2+"",liftOlderTotal+"","【推送完成】",DateUtil.getStringDate());
 | 
	
		
			
				|  |  | */
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         wxPush(old.getName(),familyCode, zhaohuiDailyEntity.getService(), emeTotal);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         zhaohuiDailySleepDao.save(zhaohuiDailySleepList);
 | 
	
		
			
				|  |  |         zhaohuiDailyWatchDao.save(zhaohuiDailyWatchList);
 | 
	
		
			
				|  |  |         zhaohuiDailyVideoDao.save(zhaohuiDailyVideoList);
 | 
	
		
			
				|  |  |         zhaohuiDailyEmeDao.save(zhaohuiDailyEmeList);
 | 
	
		
			
				|  |  |         zhaohuifireGasSecDao.save(zhaohuifireGasSecEntityList);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -385,11 +486,140 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |                 String content = "紧急预警:" + eme + "\r\n生活照料:" + lift + "";
 | 
	
		
			
				|  |  |                 String url = "https://zhyzh.gongshu.gov.cn/medical-care-patient/message/daily";
 | 
	
		
			
				|  |  |                 //o_DJs59V7MKJ5ea-YW__LoccEn50
 | 
	
		
			
				|  |  |                 messageUtil.putTemplateWxMessage(wxId, "template_system_family", "jsxtxx", "o_DJs59V7MKJ5ea-YW__LoccEn50", first, url, null, 1, null, content, "【推送完成】", com.yihu.jw.util.date.DateUtil.getStringDate());
 | 
	
		
			
				|  |  |                 messageUtil.putTemplateWxMessage(wxId, "template_system_family", "jsxtxx", list.get(0).get("openid").toString(), first, url, null, 1, null, content, "【推送完成】", com.yihu.jw.util.date.DateUtil.getStringDate());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     //行动轨迹
 | 
	
		
			
				|  |  |     public JSONArray getX1Locations(String patient, String date){
 | 
	
		
			
				|  |  |         String sql = "select * from wlyy_patient_device where user = '"+patient+"' and category_code = '4' and del = 0";
 | 
	
		
			
				|  |  |         List<DevicePatientDevice> byUserAndCategoryCode = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(DevicePatientDevice.class));
 | 
	
		
			
				|  |  |         if (byUserAndCategoryCode.size()==0){
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         JSONArray x1Locations = JSON.parseArray(JSON.toJSONString(patientDeviceService.getX1Locations(byUserAndCategoryCode.get(0).getDeviceSn(), date), SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |         return x1Locations;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void doctorDaily(){
 | 
	
		
			
				|  |  |         String doctorSql ="select id from base_team where org_code = 'zdjsylfwyxgszhfgs' ";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String date = DateUtil.getStringDateShort();
 | 
	
		
			
				|  |  |         String stateDate = date + " 00:00:00";
 | 
	
		
			
				|  |  |         String endDate = date + " 23:59:59";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<Map<String, Object>> orgList = jdbcTemplate.queryForList(doctorSql);
 | 
	
		
			
				|  |  |         List<ZhaohuiDailyEntity> zhaohuiDailyEntityList = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (Map<String, Object> map : orgList) {
 | 
	
		
			
				|  |  |             ZhaohuiDailyEntity zhaohuiDailyEntity = new ZhaohuiDailyEntity();
 | 
	
		
			
				|  |  |             String dailySql = "SELECT count(d.id) as total ,GROUP_CONCAT(patient_name) as patientName,sum(eme_num) as  emeNum,SUM(service) as serviceNum FROM base_zhaohui_daily d INNER JOIN base_team t ON d.org_code = t.id where d.org_code = '"+map.get("id")+"' and d.user_type = 1  and d.create_time >= '"+stateDate+"' and d.create_time<= '"+endDate+"' GROUP BY d.org_code ";
 | 
	
		
			
				|  |  |             List<Map<String, Object>> list = jdbcTemplate.queryForList(dailySql);
 | 
	
		
			
				|  |  |             if (list.size()>0) {
 | 
	
		
			
				|  |  |                 String message = "";
 | 
	
		
			
				|  |  |                 Integer emeNum = Integer.parseInt(list.get(0).get("emeNum").toString());
 | 
	
		
			
				|  |  |                 String oldNUm = list.get(0).get("total").toString();
 | 
	
		
			
				|  |  |                 Boolean flag = true;
 | 
	
		
			
				|  |  |                 if (0<emeNum){
 | 
	
		
			
				|  |  |                     String oldNumMessage = dictService.findCopywriting("zhaohui_dailyReport", "doctor_oldnum");
 | 
	
		
			
				|  |  |                     message +=oldNumMessage.replace("<num>",oldNUm);
 | 
	
		
			
				|  |  |                     message += ","+dictService.findCopywriting("zhaohui_dailyReport", "doctor_emeNum").replace("<num>",emeNum.toString());
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     flag = false;
 | 
	
		
			
				|  |  |                     message = dictService.findCopywriting("zhaohui_dailyReport", "doctor_zhaohui_daily1").replace("<num>",oldNUm);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 String doctorInfoSql ="SELECT d.id,d.`name`,d.photo FROM base_team t INNER JOIN base_doctor d ON t.leader_code = d.id  WHERE t.id = '"+map.get("id")+"'";
 | 
	
		
			
				|  |  |                 List<Map<String, Object>> doctorInfoList = jdbcTemplate.queryForList(doctorInfoSql);
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setUserType(3);
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setEmeNum(Integer.parseInt(list.get(0).get("emeNum").toString()));
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setService(Integer.parseInt(list.get(0).get("serviceNum").toString()));
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setPatient(doctorInfoList.get(0).get("id").toString());
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setPatientName(doctorInfoList.get(0).get("name").toString());
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setFamilyCode(list.get(0).get("patientName").toString());
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setOrgCode(map.get("id").toString());
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setPhoto(doctorInfoList.get(0).get("photo").toString());
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setServiceTime(stateDate+","+endDate);
 | 
	
		
			
				|  |  |                 if (flag) {
 | 
	
		
			
				|  |  |                     String emeSecstatusSql = "SELECT count(a.total) total, a.`status` FROM (\n" +
 | 
	
		
			
				|  |  |                             "SELECT count(o.id) total ,o.`status` AS `status` FROM base_team t INNER JOIN base_service_package_sign_record r ON t.leader_code = r.sign_doctor INNER JOIN base_emergency_assistance_order o ON o.patient = r.patient WHERE t.id = '" + map.get("id") + "' and o.status <> -1 AND o.create_time >='" + stateDate + "' AND o.create_time<='" + endDate + "' GROUP BY o.`status`\n" +
 | 
	
		
			
				|  |  |                             "UNION ALL\n" +
 | 
	
		
			
				|  |  |                             "SELECT count(o.id) total ,o.`status` AS `status` FROM base_team t INNER JOIN base_service_package_sign_record r ON t.leader_code = r.sign_doctor INNER JOIN base_security_monitoring_order o ON o.patient = r.patient WHERE t.id = '" + map.get("id") + "' and o.status <> -1 AND o.create_time >='" + stateDate + "' AND o.create_time<='" + endDate + "'  GROUP BY o.`status`\n" +
 | 
	
		
			
				|  |  |                             ") a  GROUP BY a.`status`";
 | 
	
		
			
				|  |  |                     List<Map<String, Object>> emeSecStatusList = jdbcTemplate.queryForList(emeSecstatusSql);
 | 
	
		
			
				|  |  |                     Integer statusNUm = 0;
 | 
	
		
			
				|  |  |                     if (emeSecStatusList.size() > 0) {
 | 
	
		
			
				|  |  |                         for (Map<String, Object> stringObjectMap : emeSecStatusList) {
 | 
	
		
			
				|  |  |                             Integer.parseInt(stringObjectMap.get("status").toString());
 | 
	
		
			
				|  |  |                             if (0 == Integer.parseInt(stringObjectMap.get("status").toString())) {
 | 
	
		
			
				|  |  |                                 statusNUm = Integer.parseInt(stringObjectMap.get("total").toString());
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if (statusNUm == emeNum||statusNUm<emeNum) {
 | 
	
		
			
				|  |  |                         message += ","+dictService.findCopywriting("zhaohui_dailyReport", "doctor_emeStatus2");
 | 
	
		
			
				|  |  |                     }else {
 | 
	
		
			
				|  |  |                         message += ","+dictService.findCopywriting("zhaohui_dailyReport", "doctor_emeStatus1").replace("<num>",(emeNum-statusNUm)+"");
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntity.setMessage(message);
 | 
	
		
			
				|  |  |                 zhaohuiDailyEntityList.add(zhaohuiDailyEntity);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         zhaohuiDailyDao.save(zhaohuiDailyEntityList);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void child(){
 | 
	
		
			
				|  |  |         String sql = "select * from base_patient where archive_type = 2 and id not in (SELECT dict_code FROM wlyy_hospital_sys_dict WHERE `dict_name` = 'jkzl_child')";
 | 
	
		
			
				|  |  |         List<BasePatientDO> childEntityList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(BasePatientDO.class));
 | 
	
		
			
				|  |  |         List<ZhaohuiDailyEntity> zhaohuiDailyEntityList = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (BasePatientDO child : childEntityList) {
 | 
	
		
			
				|  |  |             sql = "select p.id from base_patient_family_member m inner join base_patient p on m.family_member = p.id where m.patient = '"+child.getId()+"' and p.del = 1 ";
 | 
	
		
			
				|  |  |             List<Map<String, Object>> familyList = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |             if (familyList.size() > 0) {
 | 
	
		
			
				|  |  |                 for (Map<String, Object> map : familyList) {
 | 
	
		
			
				|  |  |                     ZhaohuiDailyEntity zhaohuiDailyEntity = new ZhaohuiDailyEntity();
 | 
	
		
			
				|  |  |                     zhaohuiDailyEntity.setPhoto(child.getPhoto());
 | 
	
		
			
				|  |  |                     zhaohuiDailyEntity.setPatientName(child.getName());
 | 
	
		
			
				|  |  |                     zhaohuiDailyEntity.setPatient(child.getId());
 | 
	
		
			
				|  |  |                     zhaohuiDailyEntity.setUserType(2);
 | 
	
		
			
				|  |  |                     zhaohuiDailyEntity.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                     //上门辅导
 | 
	
		
			
				|  |  |                     String upDoorSql = "select count(id) from base_door_coach_order where patient = '" + child.getId() + "' and status<> -1 and create_time >= '' and create_time >= '' ";
 | 
	
		
			
				|  |  |                     Integer num = jdbcTemplate.queryForObject(upDoorSql, Integer.class);
 | 
	
		
			
				|  |  |                     zhaohuiDailyEntity.setService(num);
 | 
	
		
			
				|  |  |                     String activitySql = "select count(id) from base_child_activity_registration where patient = '" + child.getId() + "' and create_time >= '' and create_time >= '' ";
 | 
	
		
			
				|  |  |                     num = jdbcTemplate.queryForObject(activitySql, Integer.class);
 | 
	
		
			
				|  |  |                     zhaohuiDailyEntity.setEmeNum(num);
 | 
	
		
			
				|  |  |                     zhaohuiDailyEntity.setFamilyCode(map.get("id").toString());
 | 
	
		
			
				|  |  |                     zhaohuiDailyEntityList.add(zhaohuiDailyEntity);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         for (ZhaohuiDailyEntity zhaohuiDailyEntity : zhaohuiDailyEntityList) {
 | 
	
		
			
				|  |  |              sql = "select openid from base_patient where id = '" + zhaohuiDailyEntity.getFamilyCode() + "' and openid is not null ";
 | 
	
		
			
				|  |  |             List<Map<String, Object>> openidList = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |             if (openidList.size()>0) {
 | 
	
		
			
				|  |  |                 openidList.get(0).get("openid");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 String first = "您好,您的亲属【" + zhaohuiDailyEntity.getPatientName() + "】今日照护日报已生成";
 | 
	
		
			
				|  |  |                 String content = "上门辅导:" + zhaohuiDailyEntity.getService() + "\r\n在线教育:" + zhaohuiDailyEntity.getEmeNum() + "";
 | 
	
		
			
				|  |  |                 String url = "https://zhyzh.gongshu.gov.cn/medical-care-patient/message/daily?type=2";
 | 
	
		
			
				|  |  |                 //o_DJs59V7MKJ5ea-YW__LoccEn50
 | 
	
		
			
				|  |  |                 messageUtil.putTemplateWxMessage(wxId, "template_system_family", "jsxtxx", "o_DJs59V7MKJ5ea-YW__LoccEn50", first, url, null, 1, null, content, "【推送完成】", com.yihu.jw.util.date.DateUtil.getStringDate());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         zhaohuiDailyDao.save(zhaohuiDailyEntityList);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static void main(String[] args) {
 | 
	
		
			
				|  |  |         String abc = "[\"12:30-14:09\",\"22:00-04:06\",\"05:09-05:24\"]";
 | 
	
		
			
				|  |  |         String[] split = abc.split(",");
 | 
	
	
		
			
				|  | @ -401,4 +631,6 @@ public class ZhaohuiDailyService {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |