Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

LAPTOP-KB9HII50\70708 3 years ago
parent
commit
985bc05d83
16 changed files with 540 additions and 93 deletions
  1. 14 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/CommonEndpoint.java
  2. 37 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/DoctorBirthdayWishesEndpoint.java
  3. 3 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java
  4. 186 23
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/birthday/BirthdayWishesService.java
  5. 102 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/common/CommomService.java
  6. 62 5
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/common/PermissionService.java
  7. 3 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/MessageUtil.java
  8. 1 1
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceService.java
  9. 16 15
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceUploadService.java
  10. 3 0
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/MessageUtil.java
  11. 28 1
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/data/SaveDataPushJob.java
  12. 62 26
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/InitializeDataJobService.java
  13. 4 1
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/PressureGlucoseNotService.java
  14. 10 10
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/DeviceLostMessageUtil.java
  15. 3 3
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/web/JobController.java
  16. 6 5
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/zhylyjkglxt/entity/ZhDeviceDetail.java

+ 14 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/CommonEndpoint.java

@ -2,6 +2,7 @@ package com.yihu.jw.care.endpoint.admin;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.label.BaseCapacityLabelDao;
import com.yihu.jw.care.service.common.CommomService;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.label.BaseCapacityLabelDO;
import com.yihu.jw.patient.dao.BasePatientDao;
@ -44,6 +45,8 @@ public class CommonEndpoint extends EnvelopRestEndpoint {
    private BasePatientDao patientDao;
    @Autowired
    private StringRedisTemplate redisTemplate;
    @Autowired
    private CommomService commomService;
    @GetMapping(value = "open/health")
    @ApiOperation(value = "测试应用是否可用")
@ -143,4 +146,15 @@ public class CommonEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = "open/WXtempleateSendTest")
    @ApiOperation(value = "微信模板消息推送")
    public Envelop setRedisEnable() {
        try {
            commomService.WXtempleateSendTest();
            return success("success");
        } catch (Exception e) {
            return failedException2(e);
        }
    }
}

+ 37 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/DoctorBirthdayWishesEndpoint.java

@ -279,7 +279,12 @@ public class DoctorBirthdayWishesEndpoint extends BaseController {
                if (patients.size()>0){//发送生日祝福
                    Map<String,Object> tmp = patients.get(0);
                    com.alibaba.fastjson.JSONObject json = new com.alibaba.fastjson.JSONObject();
                    String first = "社工key1为您发送生日祝福,请点击查看。";
                    String first="";
                    if (2==one.getSendLevel()){
                        first = "社工key1为您发送生日祝福,请点击查看。";
                    }if (4==one.getSendLevel()){
                         first = "助老员key1为您发送生日祝福,请点击查看。";
                    }
                    first = first.replace("key1",one.getDoctorName());
                    json.put("id", one.getId());
//                    json.put("toUser", patient);
@ -326,4 +331,35 @@ public class DoctorBirthdayWishesEndpoint extends BaseController {
        });
    }
    /*******************************************助老员部分*********************************************************************/
    @ApiOperation("获取生日居民列表")
    @RequestMapping(value = "helper/getBirthdayPatientList", method = RequestMethod.GET)
    public String helperGetBirthdayPatientList(@ApiParam(name = "patientName", value = "居民姓名")
                                         @RequestParam(required = false) String patientName,
                                         @ApiParam(name = "signYear", value = "签约年度")
                                         @RequestParam(required = false) Integer signYear,
                                         @ApiParam(name = "startDate", value = "生日开始日期yyyy-MM-dd")
                                         @RequestParam String startDate,
                                         @ApiParam(name = "endDate", value = "生日截止日期yyyy-MM-dd")
                                         @RequestParam String endDate,
                                         @ApiParam(name = "status", value = "状态(1、已发送,2、未发送)")
                                         @RequestParam(required = false) Integer status,
                                         @ApiParam(name = "currentUserRole", value = "登录角色")
                                         @RequestParam(value = "currentUserRole", required = false) String currentUserRole,
                                         @ApiParam(name = "currentUserRoleLevel", value = "登录角色等级(1省2市3区4社区、机构)")
                                         @RequestParam(value = "currentUserRoleLevel", required = false)String currentUserRoleLevel,
                                         @ApiParam(name = "roleType", value = "1、普通医生,2、管理员")
                                         @RequestParam(value = "roleType",defaultValue = "1") Integer roleType,
                                         @ApiParam(name = "page", value = "第几页,从1开始")
                                         @RequestParam Integer page,
                                         @ApiParam(name = "pageSize", value = "页面大小")
                                         @RequestParam Integer pageSize){
        try {
            String uid = permissionService.getUID();
            return write(200, "查询成功", "data", birthdayWishesService.helperGetBirthdayPatientList(uid, patientName, signYear, startDate, endDate, status, currentUserRole, currentUserRoleLevel, roleType, page, pageSize));
        } catch (Exception e) {
            return errorResult(e);
        }
    }
}

+ 3 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java

@ -1353,17 +1353,18 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        }
        sql = "select ord.status,ord.serve_desc,count(distinct ord.id) count from base_security_monitoring_order ord INNER JOIN base_patient p on p.id = ord.patient " +
                " INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1  where ph.doctor='"+doctor+"'  ";
        String fliter = "  ";
        fliter += " group by ord.status";
        String fliter = " group by ord.status";
        sqlResult = jdbcTemplate.queryForList(sql + fliter);
        for (Map<String, Object> map : sqlResult) {
            secu.put("status_" + map.get("status"), secu.getInteger("status_" + map.get("status")) + Integer.parseInt(map.get("count").toString()));
            secu.put("status_all", secu.getInteger("status_all") + Integer.parseInt(map.get("count").toString()));
        }
        if (StringUtils.isNotBlank(status)){
            sql += " and ord.status='"+status+"' ";
        }
        fliter = " group by ord.status,ord.serve_desc ";
        sqlResult = jdbcTemplate.queryForList(sql + fliter);
        String pyCode = "";

+ 186 - 23
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/birthday/BirthdayWishesService.java

@ -184,18 +184,37 @@ public class BirthdayWishesService {
        //获取当天0点
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
        String now = f.format(new Date());
        String sql = "SELECT DISTINCT p.id patient, p.`name`, " +
                "CASE p.sex WHEN 1 THEN '男' WHEN 2 THEN '女' END sex," +
                "p.idcard, p.photo," +
                " CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END date " +
                "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and a.sign_status = 1 and p.del=1 and EXISTS( " +
                "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r,base_service_package pack, " +
                "base_team_member m " +
                "WHERE  sr.id = r.sign_id and sr.patient = a.patient and r.service_package_id = pack.id  " +
                "and m.team_code = r.team_code and m.doctor_code = '"+doctor+"' ) "+
                " and (p.archive_status<>2 or p.archive_status is null) " +
                "AND CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END =  '" + dateString + "' " ;
        List<Map<String, Object>> patientInfos =  jdbcTemplate.queryForList(sql);
        BaseDoctorDO baseDoctorDO = doctorDao.findById(doctor);
        if(null==baseDoctorDO){
            return new ArrayList<>();
        }
        List<Map<String, Object>> patientInfos = new ArrayList<>();
        if (2==baseDoctorDO.getLevel()){
            String sql = "SELECT DISTINCT p.id patient, p.`name`, " +
                    "CASE p.sex WHEN 1 THEN '男' WHEN 2 THEN '女' END sex," +
                    "p.idcard, p.photo," +
                    " CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END date " +
                    "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and a.sign_status = 1 and p.del=1 and EXISTS( " +
                    "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r,base_service_package pack, " +
                    "base_team_member m " +
                    "WHERE  sr.id = r.sign_id and sr.patient = a.patient and r.service_package_id = pack.id  " +
                    "and m.team_code = r.team_code and m.doctor_code = '"+doctor+"' ) "+
                    " and (p.archive_status<>2 or p.archive_status is null) " +
                    "AND CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END =  '" + dateString + "' " ;
            patientInfos =  jdbcTemplate.queryForList(sql);
        }
        if (4==baseDoctorDO.getLevel()){
            String sql = "SELECT DISTINCT p.id patient, p.`name`, " +
                    "CASE p.sex WHEN 1 THEN '男' WHEN 2 THEN '女' END sex," +
                    "p.idcard, p.photo," +
                    " CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END date " +
                    " from  base_patient p INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1 " +
                    " WHERE ph.doctor='"+doctor+"'   " +
                    " AND CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END =  '"+dateString+"'";
            patientInfos =  jdbcTemplate.queryForList(sql);
        }
        //整理未发送居民信息
        Iterator<Map<String, Object>> iterator = patientInfos.iterator();
        while (iterator.hasNext()){
@ -233,15 +252,29 @@ public class BirthdayWishesService {
        //获取当天0点
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
        String now = f.format(new Date());
        String sql = "SELECT DISTINCT p.id " +
                "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and p.del=1 and a.sign_status = 1 and EXISTS( " +
                "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r, " +
                "base_team_member m " +
                "WHERE  sr.id = r.sign_id and sr.patient = a.patient and sr.id = r.sign_id " +
                "and m.team_code = r.team_code and m.doctor_code = '"+doctor+"' ) "+
                " and (p.archive_status<>2 or p.archive_status is null) " +
                "AND CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END =  '" + dateString + "'  " ;
        List<String> patientInfos =  jdbcTemplate.queryForList(sql,String.class);
        BaseDoctorDO baseDoctorDO = doctorDao.findById(doctor);
        if(null==baseDoctorDO){
            return 0;
        }
        String sql="";
        List<String> patientInfos = new ArrayList<>();
        if (2==baseDoctorDO.getLevel()){
            sql = "SELECT DISTINCT p.id " +
                    "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and p.del=1 and a.sign_status = 1 and EXISTS( " +
                    "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r, " +
                    "base_team_member m " +
                    "WHERE  sr.id = r.sign_id and sr.patient = a.patient and sr.id = r.sign_id " +
                    "and m.team_code = r.team_code and m.doctor_code = '"+doctor+"' ) "+
                    " and (p.archive_status<>2 or p.archive_status is null) " +
                    "AND CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END =  '" + dateString + "'  " ;
            patientInfos =  jdbcTemplate.queryForList(sql,String.class);
        }
        if (4==baseDoctorDO.getLevel()) {
            sql = "SELECT DISTINCT p.id from  base_patient p INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1 " +
                    " WHERE ph.doctor='"+doctor+"' " +
                    "AND CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END =  '" + dateString + "'  " ;
            patientInfos =  jdbcTemplate.queryForList(sql,String.class);
        }
        Integer count=0;
        for (String tmp:patientInfos){
            if (null == sendPatients){
@ -263,6 +296,7 @@ public class BirthdayWishesService {
        Map<String, Object> resultMap = new HashMap<>();
        List<Map<String, Object>> resultList = new ArrayList();
        Long allCount = 0l;
        String year = DateUtil.getNowYear()+"";
        //判断是否筛选推送条件,若未筛选则从数据库直接查生日居民,再进行匹配是否推送,若选择已推送则从推送记录查,若未发送则从未推送表查
        //社工签约患者
        String sql = " SELECT Distinct p.id patient,p.idcard,p.mobile,p.name,p.sex,p.id,p.photo," +
@ -324,7 +358,7 @@ public class BirthdayWishesService {
            }
        }
        whereSql += "and DATE_FORMAT(sr.create_time,'%m%d')< CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END ";
        whereSql += "and DATE_FORMAT(ph.create_time,'%Y%m%d')<= CONCAT('"+year+"',(CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END)) ";
        sql = sql + whereSql + " ) order by birthday limit "+(page-1)*pageSize + "," + pageSize;
        sqlCount = sqlCount + whereSql+")";
@ -394,6 +428,7 @@ public class BirthdayWishesService {
        List<BirthDayWishesToPatient> list = new ArrayList<>();
        List<BirthDayWishesToPatient> birthdayWishesList = new ArrayList<>();
        String p = json.get("patient") + "";
        p = "'"+p.replace(",","','")+"'";
        String doctorCode = json.get("doctorCode") + "";
        Integer sendType = (Integer) json.get("sendType");
        String currentUserRole = json.has("currentUserRole")?json.get("currentUserRole") + "":null;
@ -421,7 +456,7 @@ public class BirthdayWishesService {
        Set<String> openidSet = new HashSet<>();
        BaseDoctorDO doctor = doctorDao.findById(doctorCode);
        String sql = " select * from ( select p.id as patient,p.name,we.openid from base_patient p Left join  base_patient_wechat we on p.id = we.patient_id where p.id in ( "+p.toString()+") " +
        String sql = " select * from ( select p.id as patient,p.name,we.openid from base_patient p Left join  base_patient_wechat we on p.id = we.patient_id where p.id in ( "+p+") " +
                "  order by we.create_time desc )A group by A.patient  ";
        List<Map<String, Object>> patientInfos = jdbcTemplate.queryForList(sql);
@ -565,4 +600,132 @@ public class BirthdayWishesService {
        return count;
    }
    /*****************************************助老员部分********************************************************************/
    /**
     * 获取医生生日列表
     */
    public Map<String, Object> helperGetBirthdayPatientList(String doctorCode, String patientName, Integer signYear, String startDate, String endDate, Integer status, String currentUserRole, String currentUserRoleLevel,
                                                      Integer roleType, Integer page, Integer pageSize) throws Exception {
        String year = DateUtil.getNowYear()+"";
        Map<String, Object> resultMap = new HashMap<>();
        List<Map<String, Object>> resultList = new ArrayList();
        Long allCount = 0l;
        //判断是否筛选推送条件,若未筛选则从数据库直接查生日居民,再进行匹配是否推送,若选择已推送则从推送记录查,若未发送则从未推送表查
        //社工签约患者
        String sql = " SELECT Distinct p.id patient,p.idcard,p.mobile,p.name,p.sex,p.id,p.photo," +
                "CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END birthday  " ;
        String sqlCount = "SELECT count(distinct p.idcard) ";
        String whereSql = " from  base_patient p INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1 ";
        //根据权限获取生日居民列表
        if (roleType == 1) {
            whereSql += " WHERE ph.doctor='"+doctorCode+"' ";
        } else {//管理员
            switch (currentUserRoleLevel) {
                case "1": {//省
                    whereSql += " INNER JOIN base_doctor_hospital dh on ph.doctor = dh.doctor_code and dh.del=1 INNER JOIN base_org org on dh.org_code = org.code and org.del=1\n" +
                            " where org.province_code='"+currentUserRole+"'  ";
                    break;
                }
                case "2": {//市
                    whereSql += " INNER JOIN base_doctor_hospital dh on ph.doctor = dh.doctor_code and dh.del=1 INNER JOIN base_org org on dh.org_code = org.code and org.del=1\n" +
                            " where org.city_code='"+currentUserRole+"'  ";
                    break;
                }
                case "3": {//区
                    whereSql += " INNER JOIN base_doctor_hospital dh on ph.doctor = dh.doctor_code and dh.del=1 INNER JOIN base_org org on dh.org_code = org.code and org.del=1\n" +
                            " where org.town_code='"+currentUserRole+"'  ";
                    break;
                }
                case "4": {//社区机构
                    whereSql += " INNER JOIN base_doctor_hospital dh on ph.doctor = dh.doctor_code and dh.del=1 INNER JOIN base_org org on dh.org_code = org.code and org.del=1\n" +
                            " where org.code='"+currentUserRole+"' ";
                    break;
                }
            }
        }
        if (StringUtils.isNotBlank(patientName)) {
            whereSql += " and p.name like '%" + patientName + "%' ";
        }
        if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
            String start = startDate.substring(4).replace("-", "");
            String end = endDate.substring(4).replace("-", "");
            Integer birStart = Integer.parseInt(start);
            Integer birEnd = Integer.parseInt(end);
            //判断生日日期
            if(birEnd > birStart) {
                whereSql += " AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END >= '" + start + "' " +
                        " AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END <= '" + end + "' ";
            }else if(birEnd < birStart){
                whereSql += " AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END >= '" + end + "' " +
                        " AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END <= '" + start + "' ";
            }else {
                whereSql += " AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END = '" + end + "' ";
            }
        }
        whereSql += "and DATE_FORMAT(ph.create_time,'%Y%m%d')<= CONCAT('"+year+"',(CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END)) ";
        sql = sql + whereSql + "  order by birthday limit "+(page-1)*pageSize + "," + pageSize;
        sqlCount = sqlCount + whereSql ;
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        allCount = jdbcTemplate.queryForObject(sqlCount, Long.class);
        resultMap.put("total", allCount);
        //获取生日居民code
        String patientString = "";
        for (Map<String, Object> map : list) {
            patientString += "'"+ map.get("patient") + "',";
        }
        if(patientString.length() > 0) {
            //查询该居民是否有推送过
            String es = "SELECT patient_code patientCode,doctor_name doctorName,content,birthday,create_time createTime FROM birthday_wishes_to_patient where patient_code in (" + patientString.substring(0, patientString.length() - 1) + ") and user_type =1 and create_time > '" + startDate + " 00:00:00' and create_time < '" + endDate + " 23:59:59'";
            List<Map<String, Object>> sendPatientList = jdbcTemplate.queryForList(es);
            Set<String> patientSet = new HashSet<>();
            for (Map<String, Object> map : list) {
                String patientCode = map.get("patient") + "";
                //判断是否在推送记录里
                if( null == status || 1 == status  ) {
                    for (Map<String, Object> esMap : sendPatientList) {
                        if (patientCode.equals(esMap.get("patientCode") + "")) {
                            map.put("birthday", esMap.get("birthday") + "");
                            map.put("doctorName", esMap.get("doctorName") + "");
                            map.put("content", esMap.get("content") + "");
                            map.put("createTimeStr", (esMap.get("createTime") + "").replace("T", " ").replace("+0800", ""));
                            Date dateTmp = DateUtil.strToDate(esMap.get("createTime") + "");
                            map.put("createTime", (DateUtil.dateToChineseDate(dateTmp)));
                            map.put("status", "已发送");
                            BasePatientDO patientDO = patientDao.findById(map.get("patient") + "");
                            map.put("patientBirthday", IdCardUtil.getBirthdayForIdcardStr(patientDO.getIdcard()));
                            patientSet.add(patientCode);
                            resultList.add(map);
                        }
                    }
                }
            }
            if(null == status || 2 == status) {
                //存取未发送居民
                for (Map<String, Object> map : list) {
                    String patientCode = map.get("patient") + "";
                    if (!patientSet.contains(patientCode)) {
                        String birthday = map.get("birthday")+"日";
                        StringBuilder bir = new StringBuilder(birthday);
                        bir.insert(2, "月");
                        map.put("birthday", bir.toString());
                        map.put("status", "未发送");
                        BasePatientDO patientDO = patientDao.findById(map.get("patient") + "");
                        map.put("patientBirthday", IdCardUtil.getBirthdayForIdcardStr(patientDO.getIdcard()));
                        resultList.add(map);
                    }
                }
            }
        }
        resultMap.put("detailModelList", resultList);
        resultMap.put("total", allCount);
        resultMap.put("pageCount", allCount%pageSize == 0 ?allCount/pageSize : allCount/pageSize +1);
        return resultMap;
    }
}

+ 102 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/common/CommomService.java

@ -0,0 +1,102 @@
package com.yihu.jw.care.service.common;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * Created by Bing on 2022/3/18.
 */
@Service
public class CommomService {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private BasePatientDao basePatientDao;
    @Autowired
    private MessageUtil messageUtil;
    @Value("${wechat.id}")
    private String wxId;
    //模板消息测试
    public void WXtempleateSendTest(){
        String patient="808080eb78d3ce030178edeb4346002b";
        BasePatientDO patientDO = basePatientDao.findById(patient);
        //获取家属
        String  sql = " select  t2.id,t2.name,t2.openid,'family3' as 'user' from  base_patient_family_member t1,  base_patient t2 where  " +
                "t2.id in (select family_member from base_patient_family_member where patient = '"+patient+"' )  " +
                " and t1.patient = '"+patient+"'  and t1.family_member = t2.id  " +
                " and t2.archive_type=3 GROUP BY t2.id " ;
        List<Map<String,Object>> relatives = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> docTmp:relatives){
            if ("family3".equals(docTmp.get("user").toString())){//设备离线推送给家属
                if(null!=docTmp.get("openid")&& StringUtils.isNotBlank(docTmp.get("openid").toString())){
                    String first = patientDO.getName()+" 血糖仪设备疑似离线";
                    String keyword1 = "【"+ DateUtil.getStringDate()+"】";
                    String keyword2 = "【设备离线】";
                    String keyword3 = patientDO.getName()+" 血糖仪设备疑似离线,请及时跟进";
                    messageUtil.putTemplateWxMessage(wxId,"template_error_notice","sblxtz",
                            docTmp.get("openid").toString(),first,null,null,38,new JSONObject(),keyword1,keyword2,keyword3);
                    first=patientDO.getName()+"已离家";
                    keyword2="【离家提醒】";
                    keyword3 = patientDO.getName()+"已离家,请及时跟进";
                    boolean success = messageUtil.putTemplateWxMessage(wxId,"template_error_notice","lrjjztgxtz",docTmp.get("openid").toString(),first,null,null,3,new JSONObject(),DateUtil.getStringDate(),keyword2,keyword3);
                    first=patientDO.getName()+"已到家";
                    keyword2="【到家提醒】";
                    keyword3 = patientDO.getName()+"已到家,请知悉";
                    messageUtil.putTemplateWxMessage(wxId,"template_error_notice","lrjjztgxtz",docTmp.get("openid").toString(),first,null,null,3,new JSONObject(),DateUtil.getStringDate(),keyword2,keyword3);
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("patientId",patient);
                    first = patientDO.getName()+"血糖超7天未测量";
                    keyword2="【血糖测量】";
                    keyword3=patientDO.getName()+"血糖超7天未测量,请及时跟进";
                    jsonObject.put("type","1");
                    messageUtil.putTemplateWxMessage(wxId,"template_error_notice","xyxtwcltz",docTmp.get("openid").toString(),first,null,null,3,jsonObject,keyword1,keyword2,keyword3);
                    jsonObject = new JSONObject();
                    first = patientDO.getName()+"血压未测量";
                    keyword2="【血压测量】";
                    keyword3=patientDO.getName()+"昨日未测量血压,请及时跟进";
                    jsonObject.put("type","2");
                    messageUtil.putTemplateWxMessage(wxId,"template_error_notice","xyxtwcltz",docTmp.get("openid").toString(),first,null,null,3,jsonObject,keyword1,keyword2,keyword3);
                    first = patientDO.getName()+"最新测量血糖值反馈";
                    keyword1 = DateUtil.getStringDate();
                    keyword2 = "早餐前血糖";
                    keyword3 = "【5.5mmol/L】";
                    String keyword4 = "请注意日常饮食";
                    messageUtil.putTemplateWxMessage(wxId,"template_measure_result_notice","jktzcljgtz",patientDO.getOpenid(),first,null,null,3,new JSONObject(),keyword1,keyword2,keyword3,keyword4);
                    first= patientDO.getName()+" 最新测量血压值反馈";
                    keyword1 =  DateUtil.getStringDate();
                    keyword2 = "血压";
                    keyword3 = "【收缩压:106mmgh 舒张压:65mmgh】";
                    keyword4 = "请注意日常饮食";
                    messageUtil.putTemplateWxMessage(wxId,"template_measure_result_notice","jktzcljgtz",patientDO.getOpenid(),first,null,null,3,new JSONObject(),keyword1,keyword2,keyword3,keyword4);
                }
            }
        }
    }
}

+ 62 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/common/PermissionService.java

@ -1,5 +1,6 @@
package com.yihu.jw.care.service.common;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.common.BaseLoginLogDao;
import com.yihu.jw.care.dao.role.DoctorRoleDao;
@ -12,6 +13,7 @@ import com.yihu.jw.entity.base.login.BaseLoginLogDO;
import com.yihu.jw.entity.care.role.DoctorRole;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.sms.dao.HospitalSysDictDao;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -106,9 +108,20 @@ public class PermissionService {
            return true;
        }
        String userId = loginLogDO.getUserId();
        String userId = "";
        String LoginType=loginLogDO.getLoginType();
        //演示模式
        if(isObserver()){
            userId = getUID();
            BaseDoctorDO doctorDO = doctorDao.findById(userId);
            if (2==doctorDO.getLevel()||4==doctorDO.getLevel()){
                LoginType="2";
            }
        } else {
            userId = loginLogDO.getUserId();
        }
        //目前只判断医生端
        if("2".equals(loginLogDO.getLoginType())){
        if("2".equals(LoginType)){
            //是否管理员
            List<DoctorRole> roleList = doctorRoleDao.findUserRole(userId);
@ -135,9 +148,13 @@ public class PermissionService {
    }
    public String getUID(){
        BaseLoginLogDO loginLogDO = getLoginLog();
        if(loginLogDO != null){
            return loginLogDO.getUserId();
        if (isObserver()){
            return getAgentUID();
        }else {
            BaseLoginLogDO loginLogDO = getLoginLog();
            if(loginLogDO != null){
                return loginLogDO.getUserId();
            }
        }
        return null;
    }
@ -187,4 +204,44 @@ public class PermissionService {
        }
    }
    public org.json.JSONObject getAgent(HttpServletRequest request) {
        try {
            String userAgent = request.getHeader("userAgent");
            if (StringUtils.isEmpty(userAgent)) {
                userAgent = request.getHeader("User-Agent");
            }
            System.out.println("userAgent:" + userAgent);
            return new org.json.JSONObject(userAgent);
        } catch (Exception e) {
            return null;
        }
    }
    //是否为演示模式
    public boolean isObserver(){
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        org.json.JSONObject json = getAgent(request);
        String observer = json.has("observer") ? json.getString("observer") : "";
        //为演示模式
        if(StringUtils.isNotBlank(observer)&&"1".equals(observer)){
            return true;
        }
        return false;
    }
    public String getAgentUID() {
        try {
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            String userAgent = request.getHeader("userAgent");
            if (org.springframework.util.StringUtils.isEmpty(userAgent)) {
                userAgent = request.getHeader("User-Agent");
            }
            JSONObject json = JSON.parseObject(userAgent);
            return json.getString("uid");
        } catch (Exception e) {
            return null;
        }
    }
}

+ 3 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/MessageUtil.java

@ -279,6 +279,9 @@ public class MessageUtil {
            case 36://安防、救助工单详情地址
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&id="+json.getString("id")+"&OrderType="+json.getString("OrderType"));
                break;
            case 38://设备异常通知
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&type=43");
                break;
        }
        return wxTemplateConfigDO;
    }

+ 1 - 1
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceService.java

@ -408,7 +408,7 @@ public class DeviceService {
                                for (Map<String,Object>tmp:families){
                                    if (null!=tmp.get("openid")){
                                        if (StringUtils.isNotBlank(tmp.get("openid").toString())){
                                            boolean success = messageUtil.putTemplateWxMessage(wxId,"template_error_notice","lrjjztgxtz",tmp.get("openid").toString(),first,null,null,3,null,DateUtil.getStringDate(),keyword2,keyword3);
                                            boolean success = messageUtil.putTemplateWxMessage(wxId,"template_error_notice","lrjjztgxtz",tmp.get("openid").toString(),first,null,null,3,new JSONObject(),DateUtil.getStringDate(),keyword2,keyword3);
                                        }
                                    }
                                }

+ 16 - 15
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceUploadService.java

@ -210,39 +210,40 @@ public class DeviceUploadService {
                    //发送模板消息通知家属
                    List<Map<String,Object>> families = patientFamilyService.getPatientFamilyList(patientDO.getId(),"3");
                    if (families.size()>0){
                        String keyword1 = "";
                        String keyword1 = DateUtil.getStringDate();
                        String keyword2 = "";
                        String keyword3 = "";
                        String keyword4 = "请注意日常饮食";
                        String first ="";
                        com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
                        jsonObject.put("patientId",patientDO.getId());
                        jsonObject.put("type",result.getType()+"");
                        if ("1".equals(result.getType())){//血糖
                            first = patientDO.getName()+"最新测量血糖值反馈";
                            keyword1 = "【{key1}:"+result.getValue1()+"mmol/L】";
                            keyword3 = "【"+result.getValue1()+"mmol/L】";
                            String value2 = null==result.getValue2()?"1":result.getValue2();
                            switch (value2){
                                case "1":keyword1 = keyword1.replace("{key1}","早餐前血糖"); break;
                                case "2":keyword1 = keyword1.replace("{key1}","早餐后血糖"); break;
                                case "3":keyword1 = keyword1.replace("{key1}","午餐前血糖"); break;
                                case "4":keyword1 = keyword1.replace("{key1}","午餐后血糖"); break;
                                case "5":keyword1 = keyword1.replace("{key1}","晚餐前血糖"); break;
                                case "6":keyword1 = keyword1.replace("{key1}","晚餐后血糖"); break;
                                case "7":keyword1 = keyword1.replace("{key1}","睡前血糖"); break;
                                case "1":keyword2 = "早餐前血糖"; break;
                                case "2":keyword2 = "早餐后血糖"; break;
                                case "3":keyword2 = "午餐前血糖"; break;
                                case "4":keyword2 = "午餐后血糖"; break;
                                case "5":keyword2 = "晚餐前血糖"; break;
                                case "6":keyword2 = "晚餐后血糖"; break;
                                case "7":keyword2 = "睡前血糖";break;
                            }
                            for (Map<String,Object>tmp:families){
                                if (null!=tmp.get("openid")){
                                    if (org.apache.commons.lang.StringUtils.isNotBlank(tmp.get("openid").toString())){
                                        boolean success = messageUtil.putTemplateWxMessage(wxId,"template_measure_result_notice","jktzcljgtz",patientDO.getOpenid(),first,null,null,3,jsonObject,keyword1,"请注意日常饮食");
                                        boolean success = messageUtil.putTemplateWxMessage(wxId,"template_measure_result_notice","jktzcljgtz",patientDO.getOpenid(),first,null,null,3,new com.alibaba.fastjson.JSONObject(),keyword1,keyword2,keyword3,keyword4);
                                    }
                                }
                            }
                        }
                        if ("2".equals(result.getType())){//血压
                            first= patientDO.getName()+" 最新测量血压值反馈";
                            keyword1 = "【收缩压:"+result.getValue1()+"mmgh 舒张压:"+result.getValue2()+"mmgh】";
                            keyword2 = "血压";
                            keyword3 = "【收缩压:"+result.getValue1()+"mmgh 舒张压:"+result.getValue2()+"mmgh】";
                            for (Map<String,Object>tmp:families){
                                if (null!=tmp.get("openid")){
                                    if (org.apache.commons.lang.StringUtils.isNotBlank(tmp.get("openid").toString())){
                                        boolean success = messageUtil.putTemplateWxMessage(wxId,"template_measure_result_notice","jktzcljgtz",patientDO.getOpenid(),first,null,null,3,jsonObject,keyword1,"请注意日常饮食");
                                        boolean success = messageUtil.putTemplateWxMessage(wxId,"template_measure_result_notice","jktzcljgtz",patientDO.getOpenid(),first,null,null,3,new com.alibaba.fastjson.JSONObject(),keyword1,keyword2,keyword3,keyword4);
                                    }
                                }
                            }

+ 3 - 0
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/MessageUtil.java

@ -279,6 +279,9 @@ public class MessageUtil {
            case 36://安防、救助工单详情地址
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&id="+json.getString("id")+"&OrderType="+json.getString("OrderType"));
                break;
            case 38://设备异常通知
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&type=43");
                break;
        }
        return wxTemplateConfigDO;
    }

+ 28 - 1
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/data/SaveDataPushJob.java

@ -151,6 +151,7 @@ public class SaveDataPushJob implements Job {
        if(query.size()>0){
            zhSecurityMonitoringOrderDao.save(query);
        }
        query = null;
    }
    //紧急救助工单
@ -167,6 +168,7 @@ public class SaveDataPushJob implements Job {
        if(query.size()>0){
            zhEmergencyAssistanceDao.save(query);
        }
        query = null;
    }
    //上门辅导工单
@ -185,6 +187,7 @@ public class SaveDataPushJob implements Job {
        if(query.size()>0){
            zhBaseDoorCoachOrderDao.save(query);
        }
        query = null;
    }
    //上门辅导 服务工单价格
@ -208,6 +211,7 @@ public class SaveDataPushJob implements Job {
        if(query.size()>0){
            zhLifeCareOrderDao.save(query);
        }
        query = null;
    }
    //生活照料 价格
@ -215,6 +219,7 @@ public class SaveDataPushJob implements Job {
        String lifeCareFeeDetail="SELECT id,order_id,type,`name`,fee,fee_discount,`status`,pay_status,create_time,update_time FROM base_life_care_fee_detail WHERE create_time >= '"+date+"'";
        List<ZhLifeCareFeeDetailDO> query = jdbcTemplate.query(lifeCareFeeDetail, new BeanPropertyRowMapper<>(ZhLifeCareFeeDetailDO.class));
        zhLifeCareFeeDetailDao.save(query);
        query = null;
    }
    //老人居民信息
@ -239,6 +244,10 @@ public class SaveDataPushJob implements Job {
        String labelSql = "SELECT * FROM wlyy_patient_label WHERE czrq >= '"+date+"'";
        List<ZhWlyyPatientLabel> labelList = jdbcTemplate.query(labelSql, new BeanPropertyRowMapper<>(ZhWlyyPatientLabel.class));
        zhWlyyPatientLabelDao.save(labelList);
        query = null;
        labelList = null;
    }
    //老人签约信息
@ -247,6 +256,7 @@ public class SaveDataPushJob implements Job {
                "create_time ,`status` FROM base_service_package_sign_record  WHERE create_time >= '"+date+"' ";
        List<ZhBaseServicePackageSignRecordDO> query = jdbcTemplate.query(signOlderSql, new BeanPropertyRowMapper<>(ZhBaseServicePackageSignRecordDO.class));
        zhBaseServicePackageSignRecordDao.save(query);
        query = null;
    }
    //幼儿基本信息
@ -278,12 +288,14 @@ public class SaveDataPushJob implements Job {
            list.add(zhBaseInfantInfoDO);
        }
        zhBaseInfantInfoDao.save(list);
        list = null;
    }
    //服务项
    public void saveServicePackageItem(String date){
        String servicePackageItemSql= "SELECT id,`name`,price,fee_type,org_name,introduce,del from base_service_package_item WHERE create_time >= '"+date+"'";
        List<ZhServicePackageItemDO> query = jdbcTemplate.query(servicePackageItemSql, new BeanPropertyRowMapper<>(ZhServicePackageItemDO.class));
        zhServicePackageItemDao.save(query);
        query = null;
    }
    // 居民设备表
@ -302,7 +314,7 @@ public class SaveDataPushJob implements Job {
        if (query.size()>0) {
            zhDevicePatientDeviceDao.save(query);
        }
        query = null;
    }
    //居民设备采集信息
@ -327,6 +339,12 @@ public class SaveDataPushJob implements Job {
        String sleepX1Sql ="SELECT * FROM base_sleep_x1device WHERE create_time >= '"+date+"'";
        List<ZhBaseSleepX1deviceDO> sleepX1List = jdbcTemplate.query(sleepX1Sql, new BeanPropertyRowMapper<>(ZhBaseSleepX1deviceDO.class));
        zhBaseSleepX1deviceDao.save(sleepX1List);
        sleepX1List = null;
        sleepList = null;
        yxIndexList = null;
        deviceHealthIndexList = null;
        devicePushLogList = null;
    }
    //设备表
@ -334,6 +352,7 @@ public class SaveDataPushJob implements Job {
        String deviceSql = "SELECT id,apply_date,org_name,linkman,tel,server_ip,device_name,manufacturer,applicant_name,applicant_identity,applicant_tel,applicant_mail,grant_org_code,grant_time,grant_doctor_name,device_type,contact_status_time,contact_status,iccid FROM wlyy_devices WHERE apply_date >= '"+date+"'";
        List<ZhDeviceDetail> query = jdbcTemplate.query(deviceSql, new BeanPropertyRowMapper<>(ZhDeviceDetail.class));
        zhDeviceDetailDao.save(query);
        query = null;
    }
    /************************************机构 start******************************************/
@ -354,6 +373,8 @@ public class SaveDataPushJob implements Job {
        zhBaseOrgDao.save(query);
        query = null;
    }
    //养老机构
@ -370,6 +391,7 @@ public class SaveDataPushJob implements Job {
            }
        }
        zhBaseOrgDao.save(query);
        query = null;
    }
@ -385,6 +407,7 @@ public class SaveDataPushJob implements Job {
            }
        }
        zhBaseOrgDao.save(query);
        query = null;
    }
    //教师信息
@ -409,6 +432,8 @@ public class SaveDataPushJob implements Job {
            }
        }
        zhTeacherInfoDao.save(listDO);
        listDO = null;
    }
    //幼儿 活动 公艺 报名
@ -461,6 +486,7 @@ public class SaveDataPushJob implements Job {
            }
        }
        zhInfantActivityDao.save(list);
        list = null;
    }
    //日常走访
@ -470,6 +496,7 @@ public class SaveDataPushJob implements Job {
        if (query.size() > 0) {
            zhBaseVisitDao.save(query);
        }
        query = null;
    }

+ 62 - 26
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/InitializeDataJobService.java

@ -20,7 +20,7 @@ public class InitializeDataJobService {
    SaveDataPushJob saveDataPushJob;
    public Object initialize(String date){
    public Object initialize(String date,String type){
        String filterOrg = "";//排除的测试机构
        String sqlOgr = "SELECT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' and dict_code is not null ";
@ -53,27 +53,62 @@ public class InitializeDataJobService {
        /**********************push start**************************/
        saveDataPushJob.saveDevicePushLog(date);
        saveDataPushJob.saveSecurityMonitoringOrder(date,signOlderMap);
        saveDataPushJob.saveEmergencyAssistanceOrder(date,signOlderMap);
        saveDataPushJob.saveDoorCoachOrder(date,jkzlUserMap);
        saveDataPushJob.saveDoorCoachFeeDetail(date);
        saveDataPushJob.saveLifeCareOrder(date,signOlderMap);
        saveDataPushJob.saveLifeCareFeeDetail(date);
        saveDataPushJob.saveOlderInfo(date,signOlderMap);
        saveDataPushJob.saveInfantInfo(date);
        saveDataPushJob.saveServicePackageItem(date);
        saveDataPushJob.savePatientDevice(date,signOlderMap);
        saveDataPushJob.saveWlyyDevice(date);
        saveDataPushJob.saveDevicePushLog(date); //"2022-01-07"
        saveDataPushJob.saveSignOlderInfo(date);
        saveDataPushJob.saveHospitalOrg(date,jkzlOrgMap);
        saveDataPushJob.saveOldOrg(date,jkzlOrgMap);
        saveDataPushJob.saveInfantOrg(date,jkzlOrgMap);
        saveDataPushJob.saveTeacherInfo(date);
        saveDataPushJob.saveActivity(date);
        saveDataPushJob.saveVisit(date);
        switch(type){
            case "1":
                //安防监护工单
                saveDataPushJob.saveSecurityMonitoringOrder(date,signOlderMap);
                break;
            case "2":
                //上门辅导工单
                saveDataPushJob.saveDoorCoachOrder(date,jkzlUserMap);
                //上门辅导 服务工单价格
                saveDataPushJob.saveDoorCoachFeeDetail(date);
                break;
            case "3":
                // 生活照料 工单
                saveDataPushJob.saveLifeCareOrder(date,signOlderMap);
                //生活照料 价格
                saveDataPushJob.saveLifeCareFeeDetail(date);
                break;
            case "4":
                //紧急救助工单
                saveDataPushJob.saveEmergencyAssistanceOrder(date,signOlderMap);
                break;
            case "5":
                //老人居民信息
                saveDataPushJob.saveOlderInfo(date,signOlderMap);
                //幼儿基本信息
                saveDataPushJob.saveInfantInfo(date);
                //服务项
                saveDataPushJob.saveServicePackageItem(date);
                break;
            case "6":
                //设备表
                saveDataPushJob.saveWlyyDevice(date);
                //老人签约信息
                saveDataPushJob.saveSignOlderInfo(date);
                //教师信息
                saveDataPushJob.saveTeacherInfo(date);
                break;
            case "7":
                //居民设备采集信息
                saveDataPushJob.saveDevicePushLog(date); //"2022-01-07"
                break;
            case "8":
                //机构
                saveDataPushJob.saveOldOrg(date,jkzlOrgMap);
                saveDataPushJob.saveHospitalOrg(date,jkzlOrgMap);
                saveDataPushJob.saveInfantOrg(date,jkzlOrgMap);
                break;
            case "9":
                //幼儿 活动 公艺 报名
                saveDataPushJob.saveActivity(date);
                //日常走访
                saveDataPushJob.saveVisit(date);
                break;
        }
        /**********************push end****************************/
        System.gc();
        return 1;
    }
@ -88,10 +123,7 @@ public class InitializeDataJobService {
        InitializeDataJobService initializeDataJobService = new InitializeDataJobService();
        /**********************del start*****************************/
        String[] sql = new String[20];
        sql[0]  = "DELETE from gsq_zhjd_zhylyjkglxt.wlyy_patient_device";
        sql[1] = "DELETE from gsq_zhjd_zhylyjkglxt.base_life_care_order";
       /* //患者设备表
        //患者设备表
        //厦门设备信息表
        sql[1] = "DELETE from gsq_zhjd_zhylyjkglxt.wlyy_devices";
        //服务项
@ -125,7 +157,11 @@ public class InitializeDataJobService {
        //设备项目推送数据日志
        sql[16] ="DELETE from gsq_zhjd_zhylyjkglxt.device_data_push_log";
        //居民标签类别表
        sql[17] ="DELETE from gsq_zhjd_zhylyjkglxt.wlyy_patient_label";*/
        sql[17] ="DELETE from gsq_zhjd_zhylyjkglxt.wlyy_patient_label";
        sql[18]  = "DELETE from gsq_zhjd_zhylyjkglxt.wlyy_patient_device";
        sql[19] = "DELETE from gsq_zhjd_zhylyjkglxt.base_life_care_order";
        initializeDataJobService.executeList(sql);
        /**********************del end*****************************/
    }

+ 4 - 1
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/PressureGlucoseNotService.java

@ -57,6 +57,7 @@ public class PressureGlucoseNotService {
                    String first = "";
                    String keyword2="";
                    String keyword3="";
                    String remark = "";
                    String patientName = null==tmp.get("name")?"":tmp.get("name").toString();
                    String category_code = tmp.get("category_code").toString();
                    JSONObject jsonObject = new JSONObject();
@ -67,15 +68,17 @@ public class PressureGlucoseNotService {
                            keyword2="【血糖测量】";
                            keyword3=patientName+"血糖超7天未测量,请及时跟进";
                            jsonObject.put("type","1");
                            remark="血糖未测量通知";
                            break;
                        case "2":
                            first = patientName+"血压未测量";
                            keyword2="【血压测量】";
                            keyword3=patientName+"昨日未测量血压,请及时跟进";
                            jsonObject.put("type","2");
                            remark="血压未测量通知";
                            break;
                    }
                    messageUtil.putTemplateWxMessage(wxId,"template_error_notice","xyxtwcltz",familyTmo.get("openid").toString(),first,null,null,3,jsonObject,keyword1,keyword2,keyword3);
                    messageUtil.putTemplateWxMessage(wxId,"template_error_notice","xyxtwcltz",familyTmo.get("openid").toString(),first,null,remark,3,jsonObject,keyword1,keyword2,keyword3);
                }
            }
        }

+ 10 - 10
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/DeviceLostMessageUtil.java

@ -119,16 +119,16 @@ public class DeviceLostMessageUtil {
                    messageDO.setCreateTime(new Date());
                    messageDO.setSenderPhoto(patientDO.getPhoto());
                    messageDOS.add(messageDO);
                    if ("family3".equals(docTmp.get("user").toString())){//设备离线推送给家属
                        if(null!=docTmp.get("openid")&& StringUtils.isNotBlank(docTmp.get("openid").toString())){
                            String first = patientDO.getName()+" "+deviceName+"设备疑似离线";
                            String keyword1 = "【"+DateUtil.getStringDate()+"】";
                            String keyword2 = "【设备离线】";
                            String keyword3 = patientDO.getName()+" "+deviceName+"设备疑似离线,请及时跟进";
                            messageUtil.putTemplateWxMessage(wxId,"template_error_notice","sblxtz",
                                    docTmp.get("openid").toString(),first,null,null,38,new JSONObject(),keyword1,keyword2,keyword3);
                        }
                    }
//                    if ("family3".equals(docTmp.get("user").toString())){//设备离线推送给家属
//                        if(null!=docTmp.get("openid")&& StringUtils.isNotBlank(docTmp.get("openid").toString())){
//                            String first = patientDO.getName()+" "+deviceName+"设备疑似离线";
//                            String keyword1 = "【"+DateUtil.getStringDate()+"】";
//                            String keyword2 = "【设备离线】";
//                            String keyword3 = patientDO.getName()+" "+deviceName+"设备疑似离线,请及时跟进";
//                            messageUtil.putTemplateWxMessage(wxId,"template_error_notice","sblxtz",
//                                    docTmp.get("openid").toString(),first,null,null,38,new JSONObject(),keyword1,keyword2,keyword3);
//                        }
//                    }
                }
            }

+ 3 - 3
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/web/JobController.java

@ -323,9 +323,9 @@ public class JobController extends BaseController {
    }
    @RequestMapping(value = "/initialize",method = RequestMethod.POST)
    public String initializeDataJob(String date){
    public String initializeDataJob(String date,String type){
        try {
            initializeDataJobService.initialize(date);
            initializeDataJobService.initialize(date,type);
            return write(200,"成功");
        } catch (Exception e) {
            error(e);
@ -333,7 +333,7 @@ public class JobController extends BaseController {
        }
    }
    @RequestMapping(value = "/deletePushData",method = RequestMethod.POST)
    //@RequestMapping(value = "/deletePushData",method = RequestMethod.POST)
    public String deletePushData(){
        try {
            initializeDataJobService.deletePushData();

+ 6 - 5
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/zhylyjkglxt/entity/ZhDeviceDetail.java

@ -1,12 +1,13 @@
package com.yihu.jw.care.zhylyjkglxt.entity;
import com.yihu.jw.entity.iot.gateway.IdEntity;
import com.yihu.jw.entity.AssignedIdentityEntity;
import javax.persistence.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by ysj on 2018/01/10.
@ -15,7 +16,7 @@ import java.util.Map;
@Entity
@Table(name = "wlyy_devices")
@SequenceGenerator(name="id_generated", sequenceName="wlyy_devices")
public class ZhDeviceDetail extends IdEntity {
public class ZhDeviceDetail extends AssignedIdentityEntity {
    private String deviceName;//设备名称
    private String deviceModel;//型号
    private String deviceCode;//设备唯一标识