浏览代码

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

吴世龙 3 年之前
父节点
当前提交
390c5c1d68
共有 21 个文件被更改,包括 298 次插入133 次删除
  1. 8 8
      business/base-service/src/main/java/com/yihu/jw/patient/service/BasePatientService.java
  2. 127 7
      gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/BasicZuulFilter.java
  3. 16 8
      gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/CsrfFilter.java
  4. 10 10
      server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java
  5. 3 3
      svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java
  6. 14 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/CommonEndpoint.java
  7. 5 5
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/assistance/EmergencyAssistanceEndpoint.java
  8. 4 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/DoctorBirthdayWishesEndpoint.java
  9. 80 63
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java
  10. 4 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/birthday/BirthdayWishesService.java
  11. 14 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/common/PermissionService.java
  12. 2 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/consult/ConsultTeamService.java
  13. 3 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doctor/CareDoctorService.java
  14. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java
  15. 0 3
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/MessageUtil.java
  16. 1 1
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceService.java
  17. 2 2
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceUploadService.java
  18. 0 3
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/MessageUtil.java
  19. 1 1
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/PressureGlucoseNotService.java
  20. 1 1
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/DeviceLostMessageUtil.java
  21. 2 2
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/MessageUtil.java

+ 8 - 8
business/base-service/src/main/java/com/yihu/jw/patient/service/BasePatientService.java

@ -750,24 +750,24 @@ public class BasePatientService<T, R extends CrudRepository> extends BaseJpaServ
        if (org.apache.commons.lang3.StringUtils.isBlank(sex)&& org.apache.commons.lang3.StringUtils.isNotBlank(idcard)){
            sex = IdCardUtil.getSexForIdcard_new(idcard);
        }
        if ("1".equals(user)){
        if (1==user){
            if (org.apache.commons.lang3.StringUtils.isNotBlank(archiveType)){
                flag = "1"+"_"+archiveType;
                flag = "1"+"-"+archiveType;
            }
            if (org.apache.commons.lang3.StringUtils.isNotBlank(sex)&&!"3".equals(sex)){
                flag += "_"+sex;
                flag += "-"+sex;
            }else {
                flag += "_1";
                flag += "-1";
            }
        }
        else if ("2".equals(user)){
        else if (2==user){
            if (org.apache.commons.lang3.StringUtils.isNotBlank(doctorLevel)){
                flag = "2"+"_"+doctorLevel;
                flag = "2"+"-"+doctorLevel;
            }
            if (org.apache.commons.lang3.StringUtils.isNotBlank(sex)&&!"3".equals(sex)){
                flag += "_"+sex;
                flag += "-"+sex;
            }else {
                flag += "_1";
                flag += "-1";
            }
        }
        String dictName="";

+ 127 - 7
gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/BasicZuulFilter.java

@ -33,6 +33,8 @@ import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
@ -125,8 +127,6 @@ public class BasicZuulFilter extends ZuulFilter {
        //保存操作日志
        baseMethodLogService.saveMethodLog(request);
        //内部微服务有不需要认证的地址请在URL上追加/open/来进行过滤,如/api/v1.0/open/**,不要在此继续追加!!!
        if (url.contains("/auth/")//验证服务
                || url.contains("/authgw/")//验证服务
@ -157,14 +157,16 @@ public class BasicZuulFilter extends ZuulFilter {
            Map<String, List<String>> map = ctx.getRequestQueryParams();
            String aes_decodedStr = AesEncryptUtils.decrypt(map.get("object").toString());
            JSONObject object = JSONObject.parseObject(aes_decodedStr);
            for(String str:object.keySet()){
                List<String> arrayList = new ArrayList<>();
                String value = object.getString(str);
            if(object!=null){
                for(String str:object.keySet()){
                    List<String> arrayList = new ArrayList<>();
                    String value = object.getString(str);
              /*  if (sqlValidate(value)){
                    throw new Exception("Illegal parameter");
                }*/
                arrayList.add(value);
                map.put(str,arrayList);
                    arrayList.add(value);
                    map.put(str,arrayList);
                }
            }
            map.remove("object");
            ctx.setRequestQueryParams(map);
@ -437,4 +439,122 @@ public class BasicZuulFilter extends ZuulFilter {
        }flag=false;
        return flag;
    }
    public final static Map<String, String> FILE_TYPE_MAP = new HashMap<String, String>();
    static {
            getAllFileType(); // 初始化文件类型信息
       }
    /**
      * 常用文件格式,不能上传的文件类型
      */
     private static void getAllFileType() {
//         FILE_TYPE_MAP.put("ffd8ffe000104a464946", "jpg"); // JPEG (jpg)
//         FILE_TYPE_MAP.put("89504e470d0a1a0a0000", "png"); // PNG (png)
//         FILE_TYPE_MAP.put("47494638396126026f01", "gif"); // GIF (gif)
//         FILE_TYPE_MAP.put("49492a00227105008037", "tif"); // TIFF (tif)
//         FILE_TYPE_MAP.put("424d228c010000000000", "bmp"); // 16色位图(bmp)
//         FILE_TYPE_MAP.put("424d8240090000000000", "bmp"); // 24位位图(bmp)
//         FILE_TYPE_MAP.put("424d8e1b030000000000", "bmp"); // 256色位图(bmp)
         FILE_TYPE_MAP.put("41433130313500000000", "dwg"); // CAD (dwg)
         FILE_TYPE_MAP.put("3c21444f435459504520", "html"); // HTML (html)
         FILE_TYPE_MAP.put("3c21646f637479706520", "htm"); // HTM (htm)
         FILE_TYPE_MAP.put("48544d4c207b0d0a0942", "css"); // css
         FILE_TYPE_MAP.put("696b2e71623d696b2e71", "js"); // js
//         FILE_TYPE_MAP.put("7b5c727466315c616e73", "rtf"); // Rich Text Format (rtf)
//         FILE_TYPE_MAP.put("38425053000100000000", "psd"); // Photoshop (psd)
//         FILE_TYPE_MAP.put("46726f6d3a203d3f6762", "eml"); // Email [Outlook Express 6] (eml)
//         FILE_TYPE_MAP.put("d0cf11e0a1b11ae10000", "doc"); // MS Excel 注意:word、msi 和 excel的文件头一样
//         FILE_TYPE_MAP.put("d0cf11e0a1b11ae10000", "vsd"); // Visio 绘图
//         FILE_TYPE_MAP.put("5374616E64617264204A", "mdb"); // MS Access (mdb)
//         FILE_TYPE_MAP.put("252150532D41646F6265", "ps");
//         FILE_TYPE_MAP.put("255044462d312e350d0a", "pdf"); // Adobe Acrobat (pdf)
//         FILE_TYPE_MAP.put("2e524d46000000120001", "rmvb"); // rmvb/rm相同
//         FILE_TYPE_MAP.put("464c5601050000000900", "flv"); // flv与f4v相同
//         FILE_TYPE_MAP.put("00000020667479706d70", "mp4");
//         FILE_TYPE_MAP.put("49443303000000002176", "mp3");
//         FILE_TYPE_MAP.put("000001ba210001000180", "mpg"); //
//         FILE_TYPE_MAP.put("3026b2758e66cf11a6d9", "wmv"); // wmv与asf相同
//         FILE_TYPE_MAP.put("52494646e27807005741", "wav"); // Wave (wav)
//         FILE_TYPE_MAP.put("52494646d07d60074156", "avi");
//         FILE_TYPE_MAP.put("4d546864000000060001", "mid"); // MIDI (mid)
//         FILE_TYPE_MAP.put("504b0304140000000800", "zip");
//         FILE_TYPE_MAP.put("526172211a0700cf9073", "rar");
//         FILE_TYPE_MAP.put("235468697320636f6e66", "ini");
         FILE_TYPE_MAP.put("504b03040a0000000000", "jar");
         FILE_TYPE_MAP.put("4d5a9000030000000400", "exe");// 可执行文件
         FILE_TYPE_MAP.put("3c25402070616765206c", "jsp");// jsp文件
         FILE_TYPE_MAP.put("4d616e69666573742d56", "mf");// MF文件
         FILE_TYPE_MAP.put("3c3f786d6c2076657273", "xml");// xml文件
         FILE_TYPE_MAP.put("494e5345525420494e54", "sql");// xml文件
         FILE_TYPE_MAP.put("7061636b616765207765", "java");// java文件
         FILE_TYPE_MAP.put("406563686f206f66660d", "bat");// bat文件
         FILE_TYPE_MAP.put("1f8b0800000000000000", "gz");// gz文件
         FILE_TYPE_MAP.put("6c6f67346a2e726f6f74", "properties");// bat文件
         FILE_TYPE_MAP.put("cafebabe0000002e0041", "class");// bat文件
         FILE_TYPE_MAP.put("49545346030000006000", "chm");// bat文件
         FILE_TYPE_MAP.put("04000000010000001300", "mxp");// bat文件
//         FILE_TYPE_MAP.put("504b0304140006000800", "docx");// docx文件
         FILE_TYPE_MAP.put("d0cf11e0a1b11ae10000", "wps");// WPS文字wps、表格et、演示dps都是一样的
         FILE_TYPE_MAP.put("6431303a637265617465", "torrent");
//         FILE_TYPE_MAP.put("6D6F6F76", "mov"); // Quicktime (mov)
//         FILE_TYPE_MAP.put("FF575043", "wpd"); // WordPerfect (wpd)
//         FILE_TYPE_MAP.put("CFAD12FEC5FD746F", "dbx"); // Outlook Express (dbx)
//         FILE_TYPE_MAP.put("2142444E", "pst"); // Outlook (pst)
//         FILE_TYPE_MAP.put("AC9EBD8F", "qdf"); // Quicken (qdf)
//         FILE_TYPE_MAP.put("E3828596", "pwl"); // Windows Password (pwl)
//         FILE_TYPE_MAP.put("2E7261FD", "ram"); // Real Audio (ram)
//         FILE_TYPE_MAP.put("null", null); // null
     }
    /**
     * 文件头比较
     * @param filePaht
     * @return
     */
    public static String getFileType(String filePaht) {
        String res = null;
        try {
            FileInputStream is = new FileInputStream(filePaht);
            byte[] b = new byte[10];
            is.read(b, 0, b.length);
            String fileCode = bytesToHexString(b);
            Iterator<String> keyIter = FILE_TYPE_MAP.keySet().iterator();
            while (keyIter.hasNext()) {
            String key = keyIter.next();
            // 验证前5个字符比较
            if (key.toLowerCase().startsWith(fileCode.toLowerCase().substring(0, 5))
                    || fileCode.toLowerCase().substring(0, 5).startsWith(key.toLowerCase())) {
                    res = FILE_TYPE_MAP.get(key);
                    break;
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return res;
    }
    /**
      * 得到上传文件的文件头
      * @param src
      * @return
     */
    public static String bytesToHexString(byte[] src) {
        StringBuilder stringBuilder = new StringBuilder();
        if (src == null || src.length <= 0) {
            return null;
        }
        for (int i = 0; i < src.length; i++) {
            int v = src[i] & 0xFF;
            String hv = Integer.toHexString(v);
            if (hv.length() < 2) {
                stringBuilder.append(0);
             }
            stringBuilder.append(hv);
        }
        return stringBuilder.toString();
    }
}

+ 16 - 8
gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/CsrfFilter.java

@ -1,8 +1,11 @@
package com.yihu.jw.gateway.filter;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import javax.servlet.*;
@ -20,19 +23,24 @@ import java.util.regex.Pattern;
 */
@Component
public class CsrfFilter implements Filter {
    @Autowired
    private StringRedisTemplate redisTemplate;
    private Logger log = LoggerFactory.getLogger(CsrfFilter.class);
    /**
     * 过滤器配置对象
     */
    FilterConfig filterConfig = null;
    /**
     * 是否启用
     */
    @Value("${security.csrf.enable}")
    private boolean enable;
    private boolean getEnable(){
        String strEnable = redisTemplate.opsForValue().get("security:csrf:enable");
        if(StringUtils.isNotBlank(strEnable)){
            return "1".equals(strEnable);
        }
        redisTemplate.opsForValue().set("security:csrf:enable","0");
        return false;
    }
    /**
     * 忽略的URL
@ -63,7 +71,7 @@ public class CsrfFilter implements Filter {
        String referer = request.getHeader("Referer");
        String host = request.getServerName();
        // 不启用或者已忽略的URL不拦截
        if(!enable ||referer == null||referer.indexOf("http://ehr.yihu.com")==0
        if(!getEnable() ||referer == null||referer.indexOf("http://ehr.yihu.com")==0
                ||referer.indexOf("https://zhyzh.gongshu.gov.cn")==0
                ||referer.indexOf("27.154.233.186")>0
                ||referer.indexOf(host)>0){

+ 10 - 10
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -331,8 +331,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        /*如果是移动端登陆则移除之前的token,
        在网关处通过HTTP状态码告知前端是过期(402)还是账号在别处登陆(403),
        实现同一账号只能在一处登陆*/
           /* if("1".equals(kickEachOther)){
                logger.info("");
            if("1".equals(kickEachOther)){
                HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
                if (request.getHeader("login-device") != null && (request.getHeader("login-device").equalsIgnoreCase("mobile")||request.getHeader("login-device").equalsIgnoreCase("pc"))) {
                    if (tokenStore.readAccessToken(token.getValue())!=null){
@ -345,7 +344,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
                if (token == null) {
                    throw new UnsupportedGrantTypeException("Unsupported grant type: " + tokenRequest.getGrantType());
                }
            }*/
            }
            WlyyUserSimple wlyyUserSimple = userDetailsService.authSuccess(parameters.get("username"));
            if ("pad".equals(parameters.get("clientType"))&&!("1".equals(wlyyUserSimple.getArchiveType())) ){//医养平板端登录限制
@ -391,16 +390,17 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
            baseLoginLogDO.setLoginType(loginType);
            baseLoginLogDO.setName(wlyyUserSimple.getName());
            baseLoginLogDO.setClientType(clientType);
            baseLoginLogDO.setToken(token.getValue());
            baseLoginLogService.save(baseLoginLogDO);
            logger.info("login:登录进入10");
                  /*  //个推 clientId
                    String clientId = parameters.get("getuiClientId");
                    String getuiClientType = parameters.get("getuiClientType");
                    String padImei = parameters.get("padImei");
                    //客户端类型 app,wx,pad,pc
                    userDetailsService.updateInfo(clientId,getuiClientType,padImei,loginType,wlyyUserSimple.getId(),baseLoginLogDO);
            */
            //个推 clientId
            String clientId = parameters.get("getuiClientId");
            String getuiClientType = parameters.get("getuiClientType");
            String padImei = parameters.get("padImei");
            //客户端类型 app,wx,pad,pc
            userDetailsService.updateInfo(clientId,getuiClientType,padImei,loginType,wlyyUserSimple.getId(),baseLoginLogDO);
            return getResponse(wlyyUserSimple);
        }catch (Exception e){
            e.printStackTrace();

+ 3 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java

@ -478,13 +478,13 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
                baseDoctorvo.setPassword(MD5.md5Hex(baseDoctorvo.getIdcard().substring(12, 18) + "{" + baseDoctorvo.getSalt() + "}"));
                if("hz_yyyzh_wx".equalsIgnoreCase(wxId)){//杭州医养头像初始化
                  if (org.apache.commons.lang3.StringUtils.isBlank(baseDoctorvo.getPhoto())){
                      String hzPhoto= basePatientService.getHzAvatar(2,baseDoctorDO.getLevel()+"",null,null==baseDoctorDO.getSex()?"":baseDoctorDO.getSex()+"",baseDoctorDO.getIdcard());
                      String hzPhoto= basePatientService.getHzAvatar(2,baseDoctorvo.getLevel()+"",null,null==baseDoctorvo.getSex()?"":baseDoctorvo.getSex()+"",baseDoctorvo.getIdcard());
                      baseDoctorvo.setPhoto(hzPhoto);
                  }else{
                      String sql = " select count(id) from wlyy_hospital_sys_dict where dict_name='hz_default_avatar' and dict_value='"+baseDoctorDO.getPhoto()+"' ";
                      String sql = " select count(id) from wlyy_hospital_sys_dict where dict_name='hz_default_avatar' and dict_value='"+baseDoctorvo.getPhoto()+"' ";
                      Integer defaultAvatar =  jdbcTemplate.queryForObject(sql,Integer.class);
                      if (defaultAvatar>0){
                          String hzPhoto= basePatientService.getHzAvatar(2,baseDoctorDO.getLevel()+"",null,null==baseDoctorDO.getSex()?"":baseDoctorDO.getSex()+"",baseDoctorDO.getIdcard());
                          String hzPhoto= basePatientService.getHzAvatar(2,baseDoctorvo.getLevel()+"",null,null==baseDoctorvo.getSex()?"":baseDoctorvo.getSex()+"",baseDoctorvo.getIdcard());
                          baseDoctorvo.setPhoto(hzPhoto);
                      }
                  }

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

@ -15,6 +15,7 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.MediaType;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
@ -35,13 +36,25 @@ public class CommonEndpoint extends EnvelopRestEndpoint {
    private static final Logger logger = LoggerFactory.getLogger(CommonEndpoint.class);
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private BaseCapacityLabelDao baseCapacityLabelDao;
    @Autowired
    private BasePatientDao patientDao;
    @Autowired
    private StringRedisTemplate redisTemplate;
    @GetMapping(value = "open/setRedisEnable")
    @ApiOperation(value = "设置是否开启拦截security:csrf:enable 1拦截")
    public Envelop setRedisEnable(String str) {
        try {
            redisTemplate.opsForValue().set("security:csrf:enable",str);
            return success("导入成功");
        } catch (Exception e) {
            return failedException2(e);
        }
    }
    @GetMapping(value = "open/importCapLabel")
    @ApiOperation(value = "导入居民能力状况")

+ 5 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/assistance/EmergencyAssistanceEndpoint.java

@ -417,12 +417,12 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "helper/getEmeAndSecuOrderTab")
    @ApiOperation(value = "助老员获取安防与紧急呼叫工单Tab")
    public ObjEnvelop getEmeAndSecuOrderTab(@ApiParam(name="orderType",value = "工单类型,20紧急呼叫22安防工单")
                                             @RequestParam(value = "orderType",required = true)String orderType,
                                             @ApiParam(name="doctor",value = "查看医生")
                                             @RequestParam(value = "doctor",required = true) String doctor){
    public ObjEnvelop getEmeAndSecuOrderTab(@ApiParam(name="doctor",value = "查看医生")
                                            @RequestParam(value = "doctor",required = true) String doctor,
                                            @ApiParam(name="status",value = "工单状态")
                                            @RequestParam(value = "status",required =false) String status){
        try {
            return ObjEnvelop.getSuccess( "查询成功",assistanceService.getEmeAndSecuOrderTab(orderType,doctor));
            return ObjEnvelop.getSuccess( "查询成功",assistanceService.getEmeAndSecuOrderTab(doctor,status));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }

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

@ -56,6 +56,8 @@ public class DoctorBirthdayWishesEndpoint extends BaseController {
    private ImUtil imUtil;
    @Autowired
    private PermissionService permissionService;
    @Value("${demo.flag}")
    private Boolean demoFlag;
    @RequestMapping(value = "/createTemplate", method = RequestMethod.POST)
    @ApiOperation(value = "创建模板")
@ -192,7 +194,7 @@ public class DoctorBirthdayWishesEndpoint extends BaseController {
                                         @ApiParam(name = "currentUserRoleLevel", value = "登录角色等级(1省2市3区4社区、机构)")
                                         @RequestParam(value = "currentUserRoleLevel", required = false)String currentUserRoleLevel,
                                         @ApiParam(name = "roleType", value = "1、普通医生,2、管理员")
                                         @RequestParam(value = "roleType") Integer roleType,
                                         @RequestParam(value = "roleType",defaultValue = "1") Integer roleType,
                                         @ApiParam(name = "teamId", value = "医生所在团队")
                                         @RequestParam(value = "teamId", required = false) Integer teamId,
                                         @ApiParam(name = "isLeader", value = "是否是团队长,0不是、1是")
@ -292,7 +294,7 @@ public class DoctorBirthdayWishesEndpoint extends BaseController {
                    }else {
                        success=true;
                    }
                    if (success){
                    if (success||demoFlag){
                        SystemMessageDO messageDO = new SystemMessageDO();
                        messageDO.setTitle("收到来自"+one.getDoctorName()+"的关怀祝福:祝您"+tmp.get("name").toString()+"节日快乐!");
                        messageDO.setType("41");//41人文关怀

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

@ -902,7 +902,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            return result;
        }
        //紧急救助编辑服务小结前不会有医生
        if(!permissionService.isOlderServerDoctor(doctor,assistanceDO.getPatient())){
        if(permissionService.isOlderServerDoctor(doctor,assistanceDO.getPatient())){
            String failMsg = "该操作没有权限";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg,failMsg);
@ -1285,7 +1285,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            if (orderTypes.contains("20")){
                sql += "select '20' as OrderType,ord.id,ord.patient,ord.patient_name patientName,ord.doctor,ord.status,ord.doctor_name," +
                        "'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time ,case p.sex when 1 then '男' when 2 then '女' else p.sex end as sex," +
                        " TIMESTAMPDIFF(YEAR,p.birthday,now()) as age,ord.order_source orderSource,p.mobile,p.photo " +
                        " TIMESTAMPDIFF(YEAR,p.birthday,now()) as age,ord.order_source orderSource,p.mobile,p.photo,ord.session_id sessionId " +
                        "from base_emergency_assistance_order ord  INNER JOIN base_patient p on ord.patient = p.id  INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1  " +
                        " where ph.doctor='"+doctor+"' "+filter;
            }
@ -1295,7 +1295,8 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            if (orderTypes.contains("22")){
                sql += " select  '22' as 'OrderType',ord.id,ord.patient,ord.patient_name patientName,ord.doctor,ord.status,ord.doctor_name," +
                        "ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time ,case p.sex when 1 then '男' when 2 then '女' else p.sex end as sex, " +
                        "TIMESTAMPDIFF(YEAR,p.birthday,now()) as age,ord.order_source orderSource,p.mobile,p.photo  from base_security_monitoring_order ord " +
                        "TIMESTAMPDIFF(YEAR,p.birthday,now()) as age,ord.order_source orderSource,p.mobile,p.photo,CONCAT(ord.patient,'_22') sessionId  " +
                        " from base_security_monitoring_order ord " +
                        " INNER JOIN base_patient p on ord.patient = p.id INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1 " +
                        " where ph.doctor='"+doctor+"'  "+filter;
                if(StringUtils.isNotBlank(svrDesc)){
@ -1308,69 +1309,85 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        return result;
    }
    public JSONObject getEmeAndSecuOrderTab(String orderType,String doctor){
    public JSONObject getEmeAndSecuOrderTab(String doctor,String status){
        JSONObject result = new JSONObject();
        if ("20".equals(orderType)){
            result.put("status_-2",0);//误报警
            result.put("status_-1",0);//已取消
            result.put("status_0",0);//已完成
            result.put("status_1",0);//预警中
            String sql = " select ord.status,count(distinct ord.id) count from base_emergency_assistance_order ord INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1 " +
                    "  where ph.doctor='"+doctor+"' group by ord.status  " ;
            List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
            for (Map<String,Object> map:sqlResult){
                result.put("status_"+map.get("status"),map.get("count"));
            }
            Integer All = 0;
            Set<String> keySet = result.keySet();
            for (String key : keySet){
                All+=result.getInteger(key);
            }
            result.put("all",All);
        }
        else if("22".equals(orderType)){
            result.put("status_-2", 0);//误报警
            result.put("status_-1", 0);//已取消
            result.put("status_0", 0);//已完成
            result.put("status_1", 0);//预警中
            result.put("status_all", 0);//
            result.put("svr_all", 0);//
            Map<String, String> serverTmp = new HashMap<>();
            String sql = " select py_code,dict_value from wlyy_hospital_sys_dict where dict_name='security_server_dict' ";
            List<Map<String, Object>> servers = jdbcTemplate.queryForList(sql);
            for (Map<String, Object> server : servers) {
                result.put("svr_" + server.get("py_code").toString(), 0);
                serverTmp.put(server.get("dict_value").toString(), server.get("py_code").toString());
            }
            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,ord.serve_desc ";
            List<Map<String, Object>> sqlResult = jdbcTemplate.queryForList(sql + fliter);
            String pyCode = "";
            for (Map<String, Object> map : sqlResult) {
                result.put("status_" + map.get("status"), result.getInteger("status_" + map.get("status")) + Integer.parseInt(map.get("count").toString()));
                pyCode = serverTmp.get(map.get("serve_desc")) == null ? null : serverTmp.get(map.get("serve_desc")).toString();
                if (StringUtils.isNotBlank(pyCode)) {
                    result.put("svr_" + pyCode, result.getInteger("svr_" + pyCode) + Integer.parseInt(map.get("count").toString()));
                    result.put("status_all", result.getInteger("status_all") + Integer.parseInt(map.get("count").toString()));
                    result.put("svr_all", result.getInteger("svr_all") + Integer.parseInt(map.get("count").toString()));
                }
        JSONObject eme = new JSONObject();
        JSONObject secu = new JSONObject();
        JSONObject emeAndSecu = new JSONObject();
        /************************紧急********/
        eme.put("status_-2",0);//误报警
        eme.put("status_-1",0);//已取消
        eme.put("status_0",0);//已完成
        eme.put("status_1",0);//预警中
        String sql = " select ord.status,count(distinct ord.id) count from base_emergency_assistance_order ord INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1 " ;
        if (StringUtils.isNotBlank(status)){
            sql += " and ord.status='"+status+"' ";
        }
        sql +=  "  where ph.doctor='"+doctor+"' group by ord.status  " ;
        List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:sqlResult){
            eme.put("status_"+map.get("status"),map.get("count"));
        }
        Integer All = 0;
        Set<String> keySet = eme.keySet();
        for (String key : keySet){
            All+=eme.getInteger(key);
        }
        eme.put("all",All);
        result.put("eme",eme);
        /************************ 安防********/
        secu.put("status_-2", 0);//误报警
        secu.put("status_-1", 0);//已取消
        secu.put("status_0", 0);//已完成
        secu.put("status_1", 0);//预警中
        secu.put("status_all", 0);//
        secu.put("svr_all", 0);//
        Map<String, String> serverTmp = new HashMap<>();
        sql = " select py_code,dict_value from wlyy_hospital_sys_dict where dict_name='security_server_dict' ";
        List<Map<String, Object>> servers = jdbcTemplate.queryForList(sql);
        for (Map<String, Object> server : servers) {
            secu.put("svr_" + server.get("py_code").toString(), 0);
            serverTmp.put(server.get("dict_value").toString(), server.get("py_code").toString());
        }
        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 = " 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 = "";
        for (Map<String, Object> map : sqlResult) {
            pyCode = serverTmp.get(map.get("serve_desc")) == null ? null : serverTmp.get(map.get("serve_desc")).toString();
            if (StringUtils.isNotBlank(pyCode)) {
                secu.put("svr_" + pyCode, secu.getInteger("svr_" + pyCode) + Integer.parseInt(map.get("count").toString()));
                secu.put("svr_all", secu.getInteger("svr_all") + Integer.parseInt(map.get("count").toString()));
            }
            return result;
        }else {
            String sql = " select count(distinct ord.id)  from base_emergency_assistance_order ord INNER JOIN base_patient p on ord.patient = p.id and p.del=1 INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1 " +
                    "  where ph.doctor='"+doctor+"' " ;
            Long emeCount = jdbcTemplate.queryForObject(sql,Long.class);
            result.put("emeAll",emeCount);
            sql = "select count(distinct ord.id) count from base_security_monitoring_order ord INNER JOIN base_patient p on ord.patient = p.id and p.del=1 " +
                    " INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1  where ph.doctor='"+doctor+"'  ";
            String fliter = "  ";
            Long secuCount = jdbcTemplate.queryForObject(sql,Long.class);
            result.put("secuAll",secuCount);
        }
        result.put("secu",secu);
        /************************ 安防、紧急总数********/
        sql = " select count(distinct ord.id)  from base_emergency_assistance_order ord INNER JOIN base_patient p on ord.patient = p.id and p.del=1 INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1 " +
                "  where ph.doctor='"+doctor+"' " ;
        Long emeCount = jdbcTemplate.queryForObject(sql,Long.class);
        emeAndSecu.put("emeAll",emeCount);
        sql = "select count(distinct ord.id) count from base_security_monitoring_order ord INNER JOIN base_patient p on ord.patient = p.id and p.del=1 " +
                " INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1  where ph.doctor='"+doctor+"'  ";
        fliter = "  ";
        Long secuCount = jdbcTemplate.queryForObject(sql,Long.class);
        emeAndSecu.put("secuAll",secuCount);
        result.put("emeAndSecu",emeAndSecu);
        return result;
    }

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

@ -302,11 +302,11 @@ public class BirthdayWishesService {
            whereSql += "and p.name like '%" + patientName + "%' ";
        }
        //根据签约年限来获取生日居民
        if ( null==  signYear|| signYear == DateUtil.getNowYear()) {//当前年度
//        if ( null==  signYear|| signYear == DateUtil.getNowYear()) {//当前年度
            whereSql += " and sr.status=1 ";
        } else {//
            whereSql += " and sr.status=-1 and sr.start_time >='" + signYear+" 01-01:00:00:00" + "' and sr.start_time <='" + signYear+" 12-31:23:59:59" + "'  ";
        }
//        } else {//
//            whereSql += " and sr.status=1 and sr.start_time >='" + signYear+" 01-01:00:00:00" + "' and sr.start_time <='" + signYear+" 12-31:23:59:59" + "'  ";
//        }
        if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
            String start = startDate.substring(4).replace("-", "");
            String end = endDate.substring(4).replace("-", "");

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

@ -108,7 +108,7 @@ public class PermissionService {
        String userId = loginLogDO.getUserId();
        //目前只判断医生端
        if("3".equals(loginLogDO.getLoginType())){
        if("2".equals(loginLogDO.getLoginType())){
            //是否管理员
            List<DoctorRole> roleList = doctorRoleDao.findUserRole(userId);
@ -160,9 +160,19 @@ public class PermissionService {
        return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
    }
    //判断社工/助老员是否为患者的服务医生 true是 false否
    //判断社工/助老员是否为患者的服务医生
    public boolean isOlderServerDoctor(String doctor,String patient){
        try {
            WlyyHospitalSysDictDO wlyyHospitalSysDictDO = hospitalSysDictDao.findById("noPermission");
            if(wlyyHospitalSysDictDO==null||"0".equals(wlyyHospitalSysDictDO.getDictCode())){
                return false;
            }
            //先判断医生信息是否有问题
            JSONObject param = new JSONObject();
            param.put("doctorId",doctor);
            if (noPermission(1,param)){
                return true;
            }
            String sql = " SELECT sum(total) from ( " +
                    "select count(id) as total from base_patient_helper ph where ph.doctor = '"+doctor+"' and patient='"+patient+"' and del=1 " +
                    "UNION all " +
@ -170,10 +180,10 @@ public class PermissionService {
                    " WHERE sr.status=1 and m.team_code = r.team_code and sr.id=r.sign_id and m.doctor_code = d.id  " +
                    "and m.del = '1' and sr.patient = '"+patient+"' and d.id='"+doctor+"' and d.del=1)A ";
            Integer total = jdbcTemplate.queryForObject(sql,Integer.class);
            return total>0?true:false;
            return total>0?false:true;
        }catch (Exception e){
            e.printStackTrace();
            return false;
            return true;
        }
    }

+ 2 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/consult/ConsultTeamService.java

@ -241,7 +241,7 @@ public class ConsultTeamService {
                BasePatientDO family3 = patientDao.findById(patientId);
                messageUtil.putTemplateWxMessage(wxId,"template_error_notice","jjhjyctz",family3.getOpenid(),patientDO.getName()+"发起紧急呼叫",null,null,36,templateJson, DateUtil.getStringDate(),"紧急呼叫",title+",请及时核实处理");
                messageUtil.putTemplateWxMessage(wxId,"template_error_notice","jjhjyctz",family3.getOpenid(),patientDO.getName()+"发起紧急呼叫",null,null,3,templateJson, DateUtil.getStringDate(),"紧急呼叫",title+",请及时核实处理");
            }
        }
@ -466,7 +466,7 @@ public class ConsultTeamService {
                BasePatientDO family3 = patientDao.findById(patientId);
                messageUtil.putTemplateWxMessage(wxId,"template_error_notice","afjhyctz",family3.getOpenid(),title,null,null,36,templateJson, DateUtil.getStringDate(),"安防监护",title+",请及时核实处理");
                messageUtil.putTemplateWxMessage(wxId,"template_error_notice","afjhyctz",family3.getOpenid(),title,null,null,3,templateJson, DateUtil.getStringDate(),"安防监护",title+",请及时核实处理");
            }
        }

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

@ -187,10 +187,11 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
            if (org.apache.commons.lang3.StringUtils.isBlank(doctorDO.getPhoto())){
                String hzPhoto= basePatientService.getHzAvatar(2,doctorDO.getLevel()+"",null,null==doctorDO.getSex()?"":doctorDO.getSex()+"",doctorDO.getIdcard());
                doctorDO.setPhoto(hzPhoto);
            }else {
                String sql = " select count(id) from wlyy_hospital_sys_dict where dict_name='hz_default_avatar' and dict_value='"+doctorDO.getPhoto()+"' ";
                Integer defaultAvatar =  jdbcTemplate.queryForObject(sql,Integer.class);
                if (defaultAvatar>0){
                    hzPhoto= basePatientService.getHzAvatar(2,doctorDO.getLevel()+"",null,null==doctorDO.getSex()?"":doctorDO.getSex()+"",doctorDO.getIdcard());
                    String hzPhoto= basePatientService.getHzAvatar(2,doctorDO.getLevel()+"",null,null==doctorDO.getSex()?"":doctorDO.getSex()+"",doctorDO.getIdcard());
                    doctorDO.setPhoto(hzPhoto);
                }
            }
@ -586,7 +587,7 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
                "   base_life_care_order o  " +
                " LEFT JOIN base_patient p ON o.patient = p.id " +
                " WHERE  " +
                "  o.hospital = 'hospital' "+
                "  o.hospital = '"+hospital+"' "+
                " AND o.status = 1 and o.pay_status>0  ";
        Long count = jdbcTemplate.queryForObject(countSql,Long.class);
        if (count>0){

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java

@ -1326,7 +1326,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            }
        }
        //安防救助编辑服务小结前不会有医生
        if(!permissionService.isOlderServerDoctor(doctor,one.getPatient())){
        if(permissionService.isOlderServerDoctor(doctor,one.getPatient())){
            String failMsg = "该操作没有权限";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg,failMsg);

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

@ -279,9 +279,6 @@ public class MessageUtil {
            case 36://安防、救助工单详情地址
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&id="+json.getString("id")+"&OrderType="+json.getString("OrderType"));
                break;
            case 37://居民血压血糖列表详情
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&patientId="+json.getString("patientId")+"&type="+json.getString("type"));
                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,null,null,DateUtil.getStringDate(),keyword2,keyword3);
                                            boolean success = messageUtil.putTemplateWxMessage(wxId,"template_error_notice","lrjjztgxtz",tmp.get("openid").toString(),first,null,null,3,null,DateUtil.getStringDate(),keyword2,keyword3);
                                        }
                                    }
                                }

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

@ -231,7 +231,7 @@ public class DeviceUploadService {
                            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,37,jsonObject,keyword1,"请注意日常饮食");
                                        boolean success = messageUtil.putTemplateWxMessage(wxId,"template_measure_result_notice","jktzcljgtz",patientDO.getOpenid(),first,null,null,3,jsonObject,keyword1,"请注意日常饮食");
                                    }
                                }
                            }
@ -242,7 +242,7 @@ public class DeviceUploadService {
                            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,37,jsonObject,keyword1,"请注意日常饮食");
                                        boolean success = messageUtil.putTemplateWxMessage(wxId,"template_measure_result_notice","jktzcljgtz",patientDO.getOpenid(),first,null,null,3,jsonObject,keyword1,"请注意日常饮食");
                                    }
                                }
                            }

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

@ -279,9 +279,6 @@ public class MessageUtil {
            case 36://安防、救助工单详情地址
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&id="+json.getString("id")+"&OrderType="+json.getString("OrderType"));
                break;
            case 37://居民血压血糖列表详情
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&patientId="+json.getString("patientId")+"&type="+json.getString("type"));
                break;
        }
        return wxTemplateConfigDO;
    }

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

@ -75,7 +75,7 @@ public class PressureGlucoseNotService {
                            jsonObject.put("type","2");
                            break;
                    }
                    messageUtil.putTemplateWxMessage(wxId,"template_error_notice","xyxtwcltz",familyTmo.get("openid").toString(),first,null,null,37,jsonObject,keyword1,keyword2,keyword3);
                    messageUtil.putTemplateWxMessage(wxId,"template_error_notice","xyxtwcltz",familyTmo.get("openid").toString(),first,null,null,3,jsonObject,keyword1,keyword2,keyword3);
                }
            }
        }

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

@ -126,7 +126,7 @@ public class DeviceLostMessageUtil {
                            String keyword2 = "【设备离线】";
                            String keyword3 = patientDO.getName()+" "+deviceName+"设备疑似离线,请及时跟进";
                            messageUtil.putTemplateWxMessage(wxId,"template_error_notice","sblxtz",
                                    docTmp.get("openid").toString(),first,null,null,3,new JSONObject(),keyword1,keyword2,keyword3);
                                    docTmp.get("openid").toString(),first,null,null,38,new JSONObject(),keyword1,keyword2,keyword3);
                        }
                    }

+ 2 - 2
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/MessageUtil.java

@ -160,8 +160,8 @@ public class MessageUtil {
            case 3:
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl() + "?openid=" + openid);
                break;
            case 37://居民血压血糖列表详情
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&patientId="+json.getString("patientId")+"&type="+json.getString("type"));
            case 38://设备异常通知
                wxTemplateConfigDO.setUrl(wxTemplateConfigDO.getUrl()+"?openid=" + openid+"&type=43");
                break;
        }
        return wxTemplateConfigDO;