Procházet zdrojové kódy

海沧医保接口

wangzhinan před 2 roky
rodič
revize
3a366a11be

+ 31 - 22
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/HcyyPrescriptionService.java

@ -382,26 +382,35 @@ public class HcyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
     * @param spellCode 拼音码
     * @return
     */
    public JSONArray selectIcd10Dict(String spellCode) throws Exception {
    public JSONArray selectIcd10Dict(String spellCode,String flag) throws Exception {
        JSONArray jsonArray = new JSONArray();
        String obj = hcyyEntranceService.GetICD10Dict(spellCode);
        if (StringUtils.isNoneBlank(obj)){
        }
        JSONArray array = JSONArray.parseArray(obj).getJSONArray(0);
        for (int i=0;i<array.size();i++){
            JSONObject jsonObject = array.getJSONObject(i);
            JSONObject object1 = new JSONObject();
            object1.put("@action","select");
            object1.put("add_code","");
            object1.put("code",jsonObject.getString("ICD10_CODE"));
            object1.put("d_code",jsonObject.getString(""));
            object1.put("name",jsonObject.getString("ICD10_NAME"));
            object1.put("py_code",jsonObject.getString("SPELL_CODE"));
            object1.put("valid_flag",jsonObject.getString("VALID_FLAG"));
            object1.put("icd10_type",jsonObject.getString("ICD10_TYPE"));
            object1.put("icd10_class",jsonObject.getString("ICD10_CLASS"));
            jsonArray.add(object1);
        if (flag.equalsIgnoreCase("2")){
            String sql = "select code,name,py_code,d_code from dict_icd10 where 1=1 and flag ='"+flag+"' ";
            if (StringUtils.isNoneBlank(spellCode)){
                sql += " and (py_code like '%"+spellCode+"%' or name like '%"+spellCode+"%') ";
            }
            List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
            for (int i=0;i<mapList.size();i++){
                jsonArray.add(mapList.get(i));
            }
            logger.info("sql=="+sql);
        }else {
            String obj = hcyyEntranceService.GetICD10Dict(spellCode);
            JSONArray array = JSONArray.parseArray(obj).getJSONArray(0);
            for (int i=0;i<array.size();i++){
                JSONObject jsonObject = array.getJSONObject(i);
                JSONObject object1 = new JSONObject();
                object1.put("@action","select");
                object1.put("add_code","");
                object1.put("code",jsonObject.getString("ICD10_CODE"));
                object1.put("d_code",jsonObject.getString(""));
                object1.put("name",jsonObject.getString("ICD10_NAME"));
                object1.put("py_code",jsonObject.getString("SPELL_CODE"));
                object1.put("valid_flag",jsonObject.getString("VALID_FLAG"));
                object1.put("icd10_type",jsonObject.getString("ICD10_TYPE"));
                object1.put("icd10_class",jsonObject.getString("ICD10_CLASS"));
                jsonArray.add(object1);
            }
        }
        return jsonArray;
    }
@ -728,12 +737,12 @@ public class HcyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
                jsonObject.put("DEPT_NAME",object1.getString("DEPT_NAME"));
                jsonObject.put("TREAT_DATE_TIME",DateUtil.getYyyymmddhhmmss(DateUtil.strToDateLong(object1.getString("VISIT_TIME"))));
                jsonObject.put("OPID",object1.getString("EMR_ID"));
                String firstFlag = object1.getString("FIRST_FLAG");
               /* String firstFlag = object1.getString("FIRST_FLAG");
                if (firstFlag.equalsIgnoreCase("复诊")){
                    jsonObject.put("TREAT_DOCTOR_NAME",object1.getString("RETURN_DOC_SIGN"));
                }else if (firstFlag.equalsIgnoreCase("初诊")){
                }else if (firstFlag.equalsIgnoreCase("初诊")){*/
                    jsonObject.put("TREAT_DOCTOR_NAME",object1.getString("DOCTOR_SIGNATURE"));
                }
              /*  }*/
                jsonArray.add(jsonObject);
            }
            return jsonArray;

+ 3 - 3
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/HcyyEntranceService.java

@ -430,7 +430,7 @@ public class HcyyEntranceService {
                                List<BaseDoctorHospitalDO> hospitalDOs = doctorHospitalDao.findByDeptCodeAndDoctorCode(dept,doctor.getId());
                                if(hospitalDOs!=null&&hospitalDOs.size()>0){
                                    BaseDoctorHospitalDO hospitalDO = hospitalDOs.get(0);
                                    hospitalDO.setOrgCode("350211A5022");
                                    hospitalDO.setOrgCode("350211A1002");
                                    hospitalDO.setOrgName("海沧医院");
                                    hospitalDO.setDeptCode(doctorJson.getString("dept"));
                                    hospitalDO.setDeptName(doctorJson.getString("deptName"));
@ -515,7 +515,7 @@ public class HcyyEntranceService {
                            //机构信息部门信息
                            BaseDoctorHospitalDO hospitalDO = new BaseDoctorHospitalDO();
                            hospitalDO.setDoctorCode(temp.getId());
                            hospitalDO.setOrgCode("350211A5022");
                            hospitalDO.setOrgCode("350211A1002");
                            hospitalDO.setOrgName("海沧医院");
                            hospitalDO.setDeptCode(doctorJson.getString("dept"));
                            hospitalDO.setDeptName(doctorJson.getString("deptName"));
@ -531,7 +531,7 @@ public class HcyyEntranceService {
                            DoctorMappingDO mappingDO = new DoctorMappingDO();
                            mappingDO.setIdcard(idcard);
                            mappingDO.setDoctor(temp.getId());
                            mappingDO.setOrgCode("350211A5022");
                            mappingDO.setOrgCode("350211A1002");
                            mappingDO.setOrgName("海沧医院");
                            mappingDO.setMappingCode(doctorJson.getString("code"));
                            mappingDO.setMappingName(doctorJson.getString("name"));

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

@ -884,6 +884,61 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    }
    @RequestMapping(value = "/oauth/sendHCCaptcha", method = RequestMethod.GET)
    public ResponseEntity<Oauth2Envelop<Captcha>> sendHCCaptcha(@RequestParam Map<String, String> parameters) throws Exception {
        String client_id = parameters.get("client_id");
        String username = parameters.get("username");
        if (StringUtils.isEmpty(client_id)) {
            throw new InvalidRequestException("client_id");
        }
        if (StringUtils.isEmpty(username)) {
            throw new InvalidRequestException("username");
        }
        if (username.length()>12){
            throw new InvalidRequestException("请输入正确的手机号!");
        }
        //验证请求间隔超时,防止频繁获取验证码
        if (!wlyyRedisVerifyCodeService.isIntervalTimeout(client_id, username)) {
            throw new IllegalAccessException("SMS request frequency is too fast");
        }
        WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyhospitalSysdictDao.findDictById("isNeedSMS");
        if (wlyyHospitalSysDictDO!=null&&!StringUtils.isEmpty(wlyyHospitalSysDictDO.getDictValue())){
            String captcha = wlyyHospitalSysDictDO.getDictValue();
            Captcha _captcha = new Captcha();
            _captcha.setCode(captcha);
            _captcha.setExpiresIn(300);
            wlyyRedisVerifyCodeService.store(client_id, username, captcha, 300);
            Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>("success", 200);
            HttpHeaders headers = new HttpHeaders();
            headers.set("Cache-Control", "no-store");
            headers.set("Pragma", "no-cache");
            return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
        }else {
            //发送短信获取验证码
            String captcha = wlyyRedisVerifyCodeService.getCodeNumber();
            JSONObject jsonObject = new JSONObject();
            String content = "您好,你的手机登录短信验证码是:"+captcha+",5分钟内有效。";
            int result = hcyyService.sendSms(username,content);
            if (0 == result) {
                Captcha _captcha = new Captcha();
                _captcha.setCode(captcha);
                _captcha.setExpiresIn(300);
                wlyyRedisVerifyCodeService.store(client_id, username, captcha, 300);
                Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>("captcha", 200, null);
                HttpHeaders headers = new HttpHeaders();
                headers.set("Cache-Control", "no-store");
                headers.set("Pragma", "no-cache");
                return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
            }
        }
        throw new IllegalStateException("验证码发送失败!");
    }
    /**
     * 福州健康之路短信接口
     * @param parameters
@ -1028,6 +1083,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
            return sendZBCaptcha(parameters);
        }else if("hz_yyyzh_wx".equals(wxId)){
            return sendTXYCaptcha(parameters);
        }else if ("xm_hcyy_wx".equalsIgnoreCase(wxId)){
            return sendHCCaptcha(parameters);
        }
        throw new IllegalStateException("验证码发送失败");
    }

+ 44 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/service/HcyyService.java

@ -264,7 +264,51 @@ public class HcyyService {
    //=====================================CA认证==============================================
    //=====================================短信接口============================================
    /**
     * 短信平台 统一交互入口
     *
     * @return
     * @throws Exception
     */
    public Integer sendSms(String phone,String message) throws Exception {
        String api = "SMSReservation";
        String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
                "<root> " +
                "   <serverName>"+api+"</serverName>  " +
                "   <format>xml</format>" +
                "   <callOperator></callOperator> " +
                "   <certificate>"+caKey+"</certificate> " +
                "</root>";
        String condition ="<contents>\n" +
                "<content>\n" +
                "<phone>"+phone+"</phone>\n" +
                "<message>"+message+"</message>\n" +
                "</content>\n" +
                "</contents>";
        String msgBody ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<root>"+condition+"</root>";
        Map<String,String> params = new HashedMap();
        WlyyHttpLogDO wlyyHttpLogDO = new WlyyHttpLogDO();
        params.put("msgHeader",msgHeader);
        params.put("msgBody",msgBody);
        wlyyHttpLogDO.setRequest(params.toString());
        logger.info("短信平台 params:"+params.toString());
        String xml = getHcyyCAWebServiceInfo("CallInterface",params,getCaServiceUrl());
        wlyyHttpLogDO.setResponse(xml);
        wlyyHttpLogDO.setCreateTime(new Date());
        wlyyHttpLogDO.setCode("SMSReservation");
        wlyyHttpLogDO.setName("短信平台");
        wlyyHttpLogDao.save(wlyyHttpLogDO);
        logger.info("短信平台 json:"+xml);
        if(xml.startsWith("error")){
            return 1;
        }else {
            return 0;
        }
    }

+ 1 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

@ -636,7 +636,7 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
        } else if (wxId.equalsIgnoreCase("sd_tnzyy_wx")) {
            return success(tnPrescriptionService.getICD10(pyKey, false));
        } else if (wxId.equalsIgnoreCase("xm_hcyy_wx")) {
            return success(hcyyPrescriptionService.selectIcd10Dict(pyKey));
            return success(hcyyPrescriptionService.selectIcd10Dict(pyKey,flag));
        } else {
            return ListEnvelop.getError("尚未开发!");
        }