Jelajahi Sumber

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

liuwenbin 7 tahun lalu
induk
melakukan
ab1a040870
40 mengubah file dengan 1257 tambahan dan 214 penghapusan
  1. 12 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/patient/prescription/Prescription.java
  2. 3 0
      patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/dao/prescription/PrescriptionDao.java
  3. 5 1
      patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/LogService.java
  4. 3 9
      patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/prescription/PrescriptionService.java
  5. TEMPAT SAMPAH
      patient-co-service/wlyy_service/src/main/resources/libsehr.crypto.so
  6. 1 3
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java
  7. 40 39
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/wechat/process/WeiXinEventProcess.java
  8. 1 1
      patient-co/patient-co-wlyy-job/src/main/resources/system.properties
  9. 44 12
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/adapter/PresModeAdapter.java
  10. 2 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/interceptors/PatientInterceptor.java
  11. 10 6
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/message/MessageDao.java
  12. 3 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/organization/HospitalMappingDao.java
  13. 3 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/prescription/PrescriptionAdjustDao.java
  14. 2 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/prescription/PrescriptionDao.java
  15. 13 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyCommonDictDao.java
  16. 13 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvDeptDictDao.java
  17. 11 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvDeptStaffAllotDictDao.java
  18. 11 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvDiagnoseClassDictDao.java
  19. 12 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvDiagnoseDictDao.java
  20. 11 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvOrgPhysicAllotDictDao.java
  21. 11 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvPhysicDictDao.java
  22. 11 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvStaffDictDao.java
  23. 12 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvStaffRegTypeAllotDictDao.java
  24. 12 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvSubjectClassDictDao.java
  25. 482 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/ZyDictDataService.java
  26. 8 4
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/consult/ConsultTeamService.java
  27. 144 39
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PatientPrescriptionPayService.java
  28. 142 56
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionInfoService.java
  29. 14 5
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionService.java
  30. 1 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java
  31. 88 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/ZyDictService.java
  32. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/ImUtill.java
  33. 6 4
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/consult/DoctorConsultController.java
  34. 54 5
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prescription/PrescriptionInfoController.java
  35. 1 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/express/SFExpressApiController.java
  36. 3 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/prescription/PatientPrescriptionInfoController.java
  37. 22 4
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/prescription/PatientPrescriptionPayController.java
  38. 28 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/BookingController.java
  39. 16 16
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/wechat/process/WeiXinEventProcess.java
  40. 1 1
      patient-co/patient-co-wlyy/src/main/resources/system.properties

+ 12 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/patient/prescription/Prescription.java

@ -9,6 +9,7 @@ import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
/**
 * Created by Administrator on 2017/7/21.
@ -72,6 +73,8 @@ public class Prescription extends IdEntity {
    private String strOriginalData; //CA原文数据
    private List<PrescriptionInfo> prescriptionInfo;
    @Column(name = "code", unique = true, nullable = false)
    public String getCode() {
        return code;
@ -543,4 +546,13 @@ public class Prescription extends IdEntity {
    public void setStrOriginalData(String strOriginalData) {
        this.strOriginalData = strOriginalData;
    }
    @Transient
    public List<PrescriptionInfo> getPrescriptionInfo() {
        return prescriptionInfo;
    }
    public void setPrescriptionInfo(List<PrescriptionInfo> prescriptionInfo) {
        this.prescriptionInfo = prescriptionInfo;
    }
}

+ 3 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/dao/prescription/PrescriptionDao.java

@ -15,6 +15,9 @@ public interface PrescriptionDao extends PagingAndSortingRepository<Prescription
    @Query("from Prescription p where p.code=?1")
    Prescription findByCode(String prescriptionCode);
    @Query("from Prescription p where p.recipeNo=?1")
    Prescription findByRecipeNo(String recipeNo);
    @Modifying
    @Query("update Prescription p set p.status=?2 where p.code=?1")
    void updateStatus(String prescriptionCode, Integer status);

+ 5 - 1
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/LogService.java

@ -77,7 +77,11 @@ public class LogService {
                log.setHeader(header);
                log.setParams(params);
                log.setCreateTime(new Date());
                log.setResponse(response);
                if(response.length()>10652261){
                    log.setResponse("超过longtext限制");
                }else {
                    log.setResponse(response);
                }
                log.setError(error);
                log.setStatus(isSuccess?"1":"0");
                httpLogDao.save(log);

+ 3 - 9
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/prescription/PrescriptionService.java

@ -1,11 +1,6 @@
package com.yihu.wlyy.service.service.prescription;
import com.yihu.wlyy.service.common.model.Result;
import com.yihu.wlyy.service.common.util.StringUtil;
import com.yihu.wlyy.service.dao.DoctorMappingDao;
import com.yihu.wlyy.service.dao.HospitalDao;
import com.yihu.wlyy.service.dao.PatientDao;
import com.yihu.wlyy.service.dao.SignFamilyDao;
import com.yihu.wlyy.service.dao.*;
import com.yihu.wlyy.service.dao.prescription.*;
import com.yihu.wlyy.service.entity.Doctor;
@ -107,8 +102,8 @@ public class PrescriptionService extends ZysoftBaseService{
            Integer CODE= json.getInt("CODE");
            JSONObject pre = json.getJSONObject("Data");
            String prescriptionCode = pre.getString("PRESCRIPTION_CODE");
            Prescription prescription = prescriptionDao.findByCode(prescriptionCode);
            String recipeNo = pre.getString("RECIPE_NO");
            Prescription prescription = prescriptionDao.findByRecipeNo(recipeNo);
            if(prescription.getStatus()==PrescriptionLog.PrescriptionLogStatus.changeing.getValue()||prescription.getStatus()==PrescriptionLog.PrescriptionLogStatus.change_error.getValue()){
                if(CODE==1){
                    prescription.setStatus(PrescriptionLog.PrescriptionLogStatus.change_success.getValue());
@ -156,7 +151,7 @@ public class PrescriptionService extends ZysoftBaseService{
                    JSONObject message = new JSONObject();
                    message.put("title","adjustPrescription");
                    message.put("state",1);
                    message.put("prescription",prescriptionCode);
                    message.put("prescription",prescription.getCode());
                    message.put("mes","调整处方完成");
                    redisTemplate.convertAndSend(channelTopic,message.toString());
                }else {
@ -491,7 +486,6 @@ public class PrescriptionService extends ZysoftBaseService{
    /**
     * 7.6 院内结算确认接口
     * @param json
     * @param hospital
     * @param licence
     * @return

TEMPAT SAMPAH
patient-co-service/wlyy_service/src/main/resources/libsehr.crypto.so


+ 1 - 3
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java

@ -26,15 +26,13 @@ public class JwPrescriptionService {
    /**
     * 获取字典列表
     * @param dictName 字典名称
     * @param hospital 药品code
     * @return
     * @throws Exception
     */
    public String getDictForI(String dictName,String hospital) throws Exception{
    public String getDictForI(String dictName) throws Exception{
        String url = jwUrl + "/third/prescription/getDictForI";
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("dictName", dictName));
        params.add(new BasicNameValuePair("hospital", hospital));
        String response = httpClientUtil.post(url, params, "UTF-8");

+ 40 - 39
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/wechat/process/WeiXinEventProcess.java

@ -23,13 +23,14 @@ public class WeiXinEventProcess {
    private String appId;
    @Value("${server.server_url}")
    private String serverUrl;
    /**
     * 微信推送事件处理
     *
     * @param message
     * @return
     */
    public  String eventProcess(Map<String, String> message) throws Exception {
    public String eventProcess(Map<String, String> message) throws Exception {
        String result = "";
        String event = message.get("Event");
@ -60,7 +61,7 @@ public class WeiXinEventProcess {
     * @param message
     * @return
     */
    public  String clickProcess(Map<String, String> message) throws Exception {
    public String clickProcess(Map<String, String> message) throws Exception {
        String result = "";
        if (message.get("EventKey").equals("caozuoshuoming")) {
@ -84,7 +85,7 @@ public class WeiXinEventProcess {
     * @return
     * @throws Exception
     */
    private  String clickEventProcess(Map<String, String> message) throws Exception {
    private String clickEventProcess(Map<String, String> message) throws Exception {
        String result = "";
        // 配置信息
        Properties systemConf = SystemConf.getInstance().getSystemProperties();
@ -98,7 +99,7 @@ public class WeiXinEventProcess {
        // 图文消息图片URL
        String picUrlConsult = systemConf.getProperty("patient_operatinginstrutions_pic_url");
        // URL设置服务器URL、AppId
        urlConsult = urlConsult.replace("{server}",wechat_base_url)
        urlConsult = urlConsult.replace("{server}", wechat_base_url)
                .replace("{appId}", appId);
        //图片地址
        picUrlConsult = picUrlConsult.replace("{server}", serverUrl);
@ -134,7 +135,7 @@ public class WeiXinEventProcess {
        // 图文消息图片URL
        String picUrlDevice = systemConf.getProperty("patient_device_pic_url");
        // URL设置服务器URL、AppId
        urlDevice = urlDevice.replace("{server}",wechat_base_url)
        urlDevice = urlDevice.replace("{server}", wechat_base_url)
                .replace("{appId}", appId);
        //图片地址
        picUrlDevice = picUrlDevice.replace("{server}", serverUrl);
@ -153,7 +154,7 @@ public class WeiXinEventProcess {
        String picUrlFamily = systemConf.getProperty("patient_family_pic_url");
        // URL设置服务器URL、AppId
        urlFamily = urlFamily.replace("{server}", wechat_base_url)
                .replace("{appId}",appId);
                .replace("{appId}", appId);
        //图片地址
        picUrlFamily = picUrlFamily.replace("{server}", serverUrl);
@ -178,7 +179,7 @@ public class WeiXinEventProcess {
     * @return
     * @throws Exception
     */
    private  String clickEventProcessMenu(Map<String, String> message) throws Exception {
    private String clickEventProcessMenu(Map<String, String> message) throws Exception {
        String result = "";
        // 配置信息
        Properties systemConf = SystemConf.getInstance().getSystemProperties();
@ -208,8 +209,8 @@ public class WeiXinEventProcess {
        // 图文消息图片URL
        String inspect_pic = systemConf.getProperty("patient_inspect_pic");
        // URL设置服务器URL、AppId
        inspect = inspect.replace("{server}",wechat_base_url)
                .replace("{appId}",appId);
        inspect = inspect.replace("{server}", wechat_base_url)
                .replace("{appId}", appId);
        //图片地址
        inspect_pic = inspect_pic.replace("{server}", serverUrl);
@ -225,10 +226,10 @@ public class WeiXinEventProcess {
        // 图文消息图片URL
        String examination_pic = systemConf.getProperty("patient_examination_pic");
        // URL设置服务器URL、AppId
        examination = examination.replace("{server}",wechat_base_url)
        examination = examination.replace("{server}", wechat_base_url)
                .replace("{appId}", appId);
        //图片地址
        examination_pic = examination_pic.replace("{server}",serverUrl);
        examination_pic = examination_pic.replace("{server}", serverUrl);
        articleExamination.put("Url", examination);
        articleExamination.put("Title", "社区体检");
@ -237,22 +238,22 @@ public class WeiXinEventProcess {
        articles.add(articleExamination);
//        新增处方记录图文消息
//        Map<String, String> articlePrescription = new HashMap<>();
//        // 图文URL
//        String prescription = systemConf.getProperty("patient_prescription_url");
//        // 图文消息图片URL
//        String prescription_pic = systemConf.getProperty("patient_prescription_pic");
//        // URL设置服务器URL、AppId
//        prescription = prescription.replace("{server}",wechat_base_url)
//                .replace("{appId}",appId);
//        //图片地址
//        prescription_pic = prescription_pic.replace("{server}",serverUrl);
//
//        articlePrescription.put("Url", prescription);
//        articlePrescription.put("Title", "处方记录");
//        articlePrescription.put("Description", "处方记录");
//        articlePrescription.put("PicUrl", prescription_pic);
//        articles.add(articlePrescription);
        Map<String, String> articlePrescription = new HashMap<>();
        // 图文URL
        String prescription = systemConf.getProperty("patient_prescription_url");
        // 图文消息图片URL
        String prescription_pic = systemConf.getProperty("patient_prescription_pic");
        // URL设置服务器URL、AppId
        prescription = prescription.replace("{server}", wechat_base_url)
                .replace("{appId}", appId);
        //图片地址
        prescription_pic = prescription_pic.replace("{server}", serverUrl);
        articlePrescription.put("Url", prescription);
        articlePrescription.put("Title", "处方记录");
        articlePrescription.put("Description", "处方记录");
        articlePrescription.put("PicUrl", prescription_pic);
        articles.add(articlePrescription);
        // 构建回复消息XML
        result = WeiXinMessageReplyUtils.replyNewsMessage(message.get("FromUserName"), message.get("ToUserName"), articles);
@ -268,7 +269,7 @@ public class WeiXinEventProcess {
     * @return
     * @throws Exception
     */
    private  String subscribeEventProcess(Map<String, String> message) throws Exception {
    private String subscribeEventProcess(Map<String, String> message) throws Exception {
        String result = "";
        // 配置信息
        Properties systemConf = SystemConf.getInstance().getSystemProperties();
@ -307,7 +308,7 @@ public class WeiXinEventProcess {
     *
     * @param articles
     */
    public  void setUrlItems(List<Map<String, String>> articles, Properties systemConf) {
    public void setUrlItems(List<Map<String, String>> articles, Properties systemConf) {
        Map<String, String> articleConsult = new HashMap<>();
        // 图文URL
        String urlConsult = systemConf.getProperty("patient_consult_url");
@ -335,7 +336,7 @@ public class WeiXinEventProcess {
        urlBooking = urlBooking.replace("{server}", wechat_base_url)
                .replace("{appId}", appId);
        //图片地址
        picUrlBooking = picUrlBooking.replace("{server}",serverUrl);
        picUrlBooking = picUrlBooking.replace("{server}", serverUrl);
        articleBooking.put("Url", urlBooking);
        articleBooking.put("Title", "预约挂号功能使用说明");
@ -369,9 +370,9 @@ public class WeiXinEventProcess {
        String picUrlFamily = systemConf.getProperty("patient_family_pic_url");
        // URL设置服务器URL、AppId
        urlFamily = urlFamily.replace("{server}", wechat_base_url)
                .replace("{appId}",appId);
                .replace("{appId}", appId);
        //图片地址
        picUrlFamily = picUrlFamily.replace("{server}",serverUrl);
        picUrlFamily = picUrlFamily.replace("{server}", serverUrl);
        articleFamily.put("Url", urlFamily);
        articleFamily.put("Title", "我的家庭功能使用说明");
@ -388,7 +389,7 @@ public class WeiXinEventProcess {
     * @return
     * @throws Exception
     */
    private  String scanEventProcess(Map<String, String> message) throws Exception {
    private String scanEventProcess(Map<String, String> message) throws Exception {
        String result = "";
        // 场景值
        String eventKey = message.get("EventKey");
@ -443,7 +444,7 @@ public class WeiXinEventProcess {
            String[] keys = eventKey.replace("qrscene_hs_", "").replace("hs_", "").split("_");
            // 图文消息URL
            url = url.replace("{server}",wechat_base_url)
            url = url.replace("{server}", wechat_base_url)
                    .replace("{appId}", appId)
                    .replace("{hospital}", keys[0] + ":" + keys[1]);
            //图片地址
@ -478,7 +479,7 @@ public class WeiXinEventProcess {
            // 图文消息URL
            url = url.replace("{server}", wechat_base_url)
                    .replace("{appId}",appId)
                    .replace("{appId}", appId)
                    .replace("{town}", keys[0]);
            //图片地址
            picUrl = picUrl.replace("{server}", serverUrl);
@ -510,7 +511,7 @@ public class WeiXinEventProcess {
     * @param description 图文描述
     * @return
     */
    public  Map getNews(String url, String picUrl, String title, String description) {
    public Map getNews(String url, String picUrl, String title, String description) {
        Properties systemConf = SystemConf.getInstance().getSystemProperties();
        Map<String, String> news = new HashMap<>();
        // 图文URL
@ -518,8 +519,8 @@ public class WeiXinEventProcess {
        // 图文消息图片URL
        String pictureUrl = systemConf.getProperty(picUrl);
        // URL设置服务器URL、AppId
        targetUrl = targetUrl.replace("{server}",wechat_base_url)
                .replace("{appId}",appId);
        targetUrl = targetUrl.replace("{server}", wechat_base_url)
                .replace("{appId}", appId);
        //图片地址
        pictureUrl = pictureUrl.replace("{server}", serverUrl);
        System.out.println("url ====> " + targetUrl);
@ -541,7 +542,7 @@ public class WeiXinEventProcess {
     * @param message
     * @return
     */
    public  String replyKeyword(Map<String, String> message) throws Exception {
    public String replyKeyword(Map<String, String> message) throws Exception {
        String result = "";
        String description = "您的家庭医生签约将于6月30日到期,为了能继续给您提供健康服务,诚邀您续签家庭医生。";
        String description1 = "为了能给您提供健康服务,诚邀您签签约家庭医生。";

+ 1 - 1
patient-co/patient-co-wlyy-job/src/main/resources/system.properties

@ -25,7 +25,7 @@ patient_inspect_url =https://open.weixin.qq.com/connect/oauth2/authorize?appid={
#社区体检
patient_examination_url=https://open.weixin.qq.com/connect/oauth2/authorize?appid={appId}&amp;redirect_uri={server}%2fwx%2fhtml%2fjkda%2fhtml%2fjiankangtijian.html&amp;response_type=code&amp;scope=snsapi_base&amp;state=STATE#wechat_redirect
#处方记录
patient_prescription_url=https://open.weixin.qq.com/connect/oauth2/authorize?appid={appId}&amp;redirect_uri={server}%2fwx%2fhtml%2fjkda%2fhtml%2fjiankangtijian.html&amp;response_type=code&amp;scope=snsapi_base&amp;state=STATE#wechat_redirect
patient_prescription_url=https://open.weixin.qq.com/connect/oauth2/authorize?appid={appId}&amp;redirect_uri={server}%2fwx%2fhtml%2fprescription%2fhtml%2fprescription_records.html&amp;response_type=code&amp;scope=snsapi_base&amp;state=STATE#wechat_redirect
#就诊记录
patient_visit_pic ={server}/images/visit.png

+ 44 - 12
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/adapter/PresModeAdapter.java

@ -2,12 +2,19 @@ package com.yihu.wlyy.adapter;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.patient.prescription.Prescription;
import com.yihu.wlyy.entity.patient.prescription.PrescriptionDiagnosis;
import com.yihu.wlyy.entity.patient.prescription.PrescriptionInfo;
import com.yihu.wlyy.service.system.Icd10DictServcie;
import com.yihu.wlyy.service.third.jw.ZyDictService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
 * Created by Trick on 2017/8/10.
@ -15,6 +22,11 @@ import java.util.Iterator;
@Component
public class PresModeAdapter {
    @Autowired
    private Icd10DictServcie icd10DictServcie;
    @Autowired
    private ZyDictService zyDictService;
    /**
     * 续方模板适配器
     * @param json
@ -87,10 +99,15 @@ public class PresModeAdapter {
        return null;
    }
    public JSONArray ModeToPrescription(String json)throws Exception{
    /**
     * 处方列表解析
     * @param json
     * @return
     * @throws Exception
     */
    public JSONArray modeToPrescription(String json)throws Exception{
        JSONObject oldJson = JSONObject.parseObject(json);
        String dataStr = oldJson.getString("data");
        JSONObject data = JSONObject.parseObject(dataStr);
        JSONObject data = oldJson.getJSONObject("data");
        JSONArray returnData = data.getJSONArray("returnData");
        String code = data.getString("CODE");
        if(StringUtils.isNotBlank(code)&&"1".equals(code)){
@ -102,15 +119,30 @@ public class PresModeAdapter {
                Prescription p  = new Prescription();
                p.setCode(mode.getInteger("RECIPE_NO")+"");
                p.setCreateTime(mode.getDate("APPLY_TIME"));
                //     "APPLY_OPERATOR_NAME": "开单医生姓名",
//                "HEALTH_ORG_CODE": "开单机构编码",
//                        "DIAGNOSE_CODE": "诊断代码",
//                        "DIAGNOSE_NAME": "诊断名称",
                Doctor doctor =  zyDictService.getDoctByJw(mode.getString("APPLY_OPERATOR"),mode.getString("HEALTH_ORG_CODE"));
                // "APPLY_OPERATOR_NAME": 开单医生姓名","HEALTH_ORG_CODE": "开单机构编码",
                p.setDoctor(doctor.getCode());
                p.setDoctorName(doctor.getName());
                p.setHospitalName(doctor.getHospitalName());
                p.setHospital(doctor.getHospital());
                JSONArray infos = mode.getJSONArray("TEMPLATE_DETAIL");
                PrescriptionDiagnosis diagnosis = new PrescriptionDiagnosis();
                diagnosis.setCode(mode.getString("DIAGNOSE_CODE"));//诊断代码
                diagnosis.setName(mode.getString("DIAGNOSE_NAME"));//诊断名称
                String icd10 = icd10DictServcie.getHealthProblemsByIcd10Code(mode.getString("DIAGNOSE_CODE"));
                if(!StringUtils.isEmpty(icd10)){
                    JSONObject icd = JSONObject.parseObject(icd10);
                    diagnosis.setHealthProblemName(icd.getString("value"));//诊断名称
                    diagnosis.setHealthProblem(icd.getString("key"));//诊断代码
                }else{
                    diagnosis.setHealthProblemName(mode.getString("DIAGNOSE_CODE"));//诊断名称
                    diagnosis.setHealthProblem(mode.getString("DIAGNOSE_NAME"));//诊断代码
                }
                JSONArray infos = mode.getJSONArray("RECIPE_DETAIL");
                Iterator infoIt = infos.iterator();
                JSONArray is = new JSONArray();
                List<PrescriptionInfo> prescriptionInfos = new ArrayList<>();
                while (infoIt.hasNext()){
                    JSONObject info = (JSONObject) infoIt.next();
                    PrescriptionInfo prescriptionInfo = new PrescriptionInfo();
@ -143,10 +175,10 @@ public class PresModeAdapter {
                    prescriptionInfo.setPhysicInjectPlaceName("");//注射地点名称
                    prescriptionInfo.setPhysicSkinTest(info.getString("PHYSIC_SKIN_TEST"));//皮试类型名称
                    prescriptionInfo.setPhysicSkinTestName(info.getString("PHYSIC_SKIN_TEST_NAME"));//皮试类型名称
                    is.add(prescriptionInfo);
                    prescriptionInfos.add(prescriptionInfo);
                }
//                m.put("prescriptionInfo",is);
//                rs.add(m);
                p.setPrescriptionInfo(prescriptionInfos);
                rs.add(p);
            }
            return rs;
        }

+ 2 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/interceptors/PatientInterceptor.java

@ -31,7 +31,7 @@ public class PatientInterceptor extends BaseInterceptor {
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		boolean flag = true;
		/*try {
		try {
			request.setCharacterEncoding("UTF-8");
			request.setAttribute("log-start", new Date().getTime());
			if(request.getRequestURI().contains("/patient/hosptail/getHositalByTownCode")||request.getRequestURI().contains("/patient/feedback/saveAppeal")){
@ -101,7 +101,7 @@ public class PatientInterceptor extends BaseInterceptor {
			}
		} catch (Exception e) {
			e.printStackTrace();
		}*/
		}
		return flag;
	}

+ 10 - 6
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/message/MessageDao.java

@ -58,7 +58,7 @@ public interface MessageDao extends PagingAndSortingRepository<Message, Long>, J
    @Query("select a from Message a where a.receiver = ?1 and a.prescriptionStatus=?2 and a.type in (6,7) order by a.createTime desc")
    List<Message> getSysTemMessageByPrescription(String doctor, String prescriptionStatus);
    @Query("select a from Message a where a.receiver = ?1 and a.type not in (1,2,6)")
    @Query("select a from Message a where a.receiver = ?1 and a.type not in (1,2,6,7)")
    List<Message> getSystemMessage(String doctor,Pageable pageRequest);
    @Query("select a from Message a where a.receiver = ?1 and a.type=?2 and a.prescriptionStatus='0' ")
@ -67,18 +67,22 @@ public interface MessageDao extends PagingAndSortingRepository<Message, Long>, J
    @Query("select count(a) from Message a where a.read = 0 and a.over ='0'  and a.receiver=?1 and a.type=?2 ")
    int findMessageNum(String doctor, Integer type);
    @Query("update Message a set a.prescriptionStatus=?2 where a.relationCode = ?1 and a.type=6 ")
    int updatePreScriptionMessage(String relateCode,String prescriptionStatus);
    @Query("update Message a set a.prescriptionStatus=?2 where a.relationCode = ?1 and a.type=?3 ")
    int updatePreScriptionMessage(String relateCode,String prescriptionStatus,Integer type);
    @Query("update Message a set a.read = 0,a.over = '0' where a.receiver = ?1 and a.type = ?2")
    @Modifying
    int setMessageReaded(String doctor,Integer type);
    int setMessageReaded(String doctor, Integer type);
    @Query("update Message a set a.read = 0,a.over = '0' where a.receiver = ?1 and a.type not in (1,2,6)")
    @Query("update Message a set a.read = 0,a.over = '0' where a.receiver = ?1 and a.type not in (1,2,6,7)")
    @Modifying
    int setSysMessageReaded(String doctor);
    //查询患者最近7天的体征异常记录
    @Query(value = "SELECT COUNT(1) FROM wlyy_message WHERE type = '2' and sender = ?1 and create_time>=date_add(now(),interval -7 day) ",nativeQuery = true)
    @Query(value = "SELECT COUNT(1) FROM wlyy_message WHERE type = '2' and sender = ?1 and create_time>=date_add(now(),interval -7 day) ", nativeQuery = true)
    int findTzMessage(String patient);
    //根据续方关联code查询团队长分配健管师消息
    @Query("from Message a where a.type = 3 and a.state=0 and a.del='1' and a.over='0' and relationCode = ?1  ")
    Message findByRelationCode(String relationCode);
}

+ 3 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/organization/HospitalMappingDao.java

@ -24,6 +24,9 @@ public interface HospitalMappingDao extends PagingAndSortingRepository<HospitalM
	@Query("select a.code from HospitalMapping a where a.mappingCode=?1 and a.type=?2")
	String getCodeByMapping(String mappingCode,String type);
	@Query("select a.name from HospitalMapping a where a.mappingCode=?1 and a.type=?2")
	String getNameByMapping(String mappingCode,String type);
	@Query("select a from HospitalMapping a where a.appId=?1 ")
	HospitalMapping findByAppId(String appId);

+ 3 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/prescription/PrescriptionAdjustDao.java

@ -2,6 +2,7 @@ package com.yihu.wlyy.repository.prescription;
import com.yihu.wlyy.entity.patient.prescription.PrescriptionAdjust;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
@ -12,4 +13,6 @@ import java.util.List;
public interface PrescriptionAdjustDao extends PagingAndSortingRepository<PrescriptionAdjust, Long>,JpaSpecificationExecutor<PrescriptionAdjust> {
    List<PrescriptionAdjust> findByPrescriptionCode(String code);
    List<PrescriptionAdjust> findByPrescriptionCodeOrderByIdDesc(String code);
}

+ 2 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/prescription/PrescriptionDao.java

@ -21,8 +21,8 @@ public interface PrescriptionDao extends PagingAndSortingRepository<Prescription
    @Query("update Prescription p set p.status=?2 where p.code=?1")
    void updateStatus(String prescriptionCode,Integer status);
    @Query("select p from Prescription p where p.jwCode=?1 and p.status=?2 ")
    List<Prescription> fingdByJwCodeAndStatus(String jwcode,Integer status);
    @Query("select p from Prescription p where p.jwCode=?1 and p.status=?2 and p.patient=?3 ")
    List<Prescription> fingdByJwCodeAndStatus(String jwcode,Integer status,String patient);
    //根据处方code得到患者信息
    @Query("select p from Prescription pt,Patient p where p.code=pt.patient  and pt.code=?1")
    Patient findPatientByPrescriptionCode(String prescriptionCode);

+ 13 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyCommonDictDao.java

@ -0,0 +1,13 @@
package com.yihu.wlyy.repository.zydict;
import com.yihu.wlyy.entity.zydict.ZyCommonDict;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2017/8/11.
 */
public interface ZyCommonDictDao extends PagingAndSortingRepository<ZyCommonDict, Long>, JpaSpecificationExecutor<ZyCommonDict> {
}

+ 13 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvDeptDictDao.java

@ -0,0 +1,13 @@
package com.yihu.wlyy.repository.zydict;
import com.yihu.wlyy.entity.zydict.ZyIvDeptDict;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2017/8/11.
 */
public interface ZyIvDeptDictDao extends PagingAndSortingRepository<ZyIvDeptDict, Long>, JpaSpecificationExecutor<ZyIvDeptDict> {
}

+ 11 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvDeptStaffAllotDictDao.java

@ -0,0 +1,11 @@
package com.yihu.wlyy.repository.zydict;
import com.yihu.wlyy.entity.zydict.ZyIvDeptStaffAllotDict;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2017/8/11.
 */
public interface ZyIvDeptStaffAllotDictDao extends PagingAndSortingRepository<ZyIvDeptStaffAllotDict, Long>, JpaSpecificationExecutor<ZyIvDeptStaffAllotDict> {
}

+ 11 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvDiagnoseClassDictDao.java

@ -0,0 +1,11 @@
package com.yihu.wlyy.repository.zydict;
import com.yihu.wlyy.entity.zydict.ZyIvDiagnoseClassDict;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2017/8/11.
 */
public interface ZyIvDiagnoseClassDictDao extends PagingAndSortingRepository<ZyIvDiagnoseClassDict, Long>, JpaSpecificationExecutor<ZyIvDiagnoseClassDict> {
}

+ 12 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvDiagnoseDictDao.java

@ -0,0 +1,12 @@
package com.yihu.wlyy.repository.zydict;
import com.yihu.wlyy.entity.zydict.ZyIvDiagnoseDict;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2017/8/11.
 */
public interface ZyIvDiagnoseDictDao extends PagingAndSortingRepository<ZyIvDiagnoseDict, Long>, JpaSpecificationExecutor<ZyIvDiagnoseDict> {
}

+ 11 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvOrgPhysicAllotDictDao.java

@ -0,0 +1,11 @@
package com.yihu.wlyy.repository.zydict;
import com.yihu.wlyy.entity.zydict.ZyIvOrgPhysicAllotDict;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2017/8/11.
 */
public interface ZyIvOrgPhysicAllotDictDao extends PagingAndSortingRepository<ZyIvOrgPhysicAllotDict, Long>, JpaSpecificationExecutor<ZyIvOrgPhysicAllotDict> {
}

+ 11 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvPhysicDictDao.java

@ -0,0 +1,11 @@
package com.yihu.wlyy.repository.zydict;
import com.yihu.wlyy.entity.zydict.ZyIvPhysicDict;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2017/8/11.
 */
public interface ZyIvPhysicDictDao extends PagingAndSortingRepository<ZyIvPhysicDict, Long>, JpaSpecificationExecutor<ZyIvPhysicDict> {
}

+ 11 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvStaffDictDao.java

@ -0,0 +1,11 @@
package com.yihu.wlyy.repository.zydict;
import com.yihu.wlyy.entity.zydict.ZyIvStaffDict;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2017/8/11.
 */
public interface ZyIvStaffDictDao extends PagingAndSortingRepository<ZyIvStaffDict, Long>, JpaSpecificationExecutor<ZyIvStaffDict> {
}

+ 12 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvStaffRegTypeAllotDictDao.java

@ -0,0 +1,12 @@
package com.yihu.wlyy.repository.zydict;
import com.yihu.wlyy.entity.zydict.ZyIvStaffRegTypeAllotDict;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2017/8/11.
 */
public interface ZyIvStaffRegTypeAllotDictDao extends PagingAndSortingRepository<ZyIvStaffRegTypeAllotDict, Long>, JpaSpecificationExecutor<ZyIvStaffRegTypeAllotDict> {
}

+ 12 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/zydict/ZyIvSubjectClassDictDao.java

@ -0,0 +1,12 @@
package com.yihu.wlyy.repository.zydict;
import com.yihu.wlyy.entity.zydict.ZyIvSubjectClassDict;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2017/8/11.
 */
public interface ZyIvSubjectClassDictDao extends PagingAndSortingRepository<ZyIvSubjectClassDict, Long>, JpaSpecificationExecutor<ZyIvSubjectClassDict> {
}

+ 482 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/ZyDictDataService.java

@ -0,0 +1,482 @@
package com.yihu.wlyy.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.wlyy.repository.organization.HospitalDao;
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * Created by chenweida on 2017/8/10.
 * 每天1点同步 智业的字典数据
 */
@Service
public class ZyDictDataService extends BaseService {
    @Autowired
    private JwPrescriptionService jwPrescriptionService;
    @Autowired
    private HospitalDao hospitalDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public void synchronizeZy_iv_subject_class_dict() {
        try{
            String re = jwPrescriptionService.getDictForI(IV_SUBJECT_CLASS_DICT);
            JSONObject jsonObject = JSONObject.parseObject(re);
            if(jsonObject.getInteger("status")==200){
                JSONObject data = jsonObject.getJSONObject("data");
                if("1".equals(data.getString("CODE"))){
                    JSONArray returnData = data.getJSONArray("returnData");
                    System.out.println("returnData="+returnData.toString());
                    if(returnData.size()==0){
                        return;
                    }
                    JSONArray dictArray = returnData.getJSONArray(0);
                    for(int i=0;i<dictArray.size();i++){
                        JSONObject dict = dictArray.getJSONObject(i);
                        StringBuffer sql = new StringBuffer("insert into ");
                        sql.append(TableName.zy_iv_subject_class_dict.getDict()).append(" (class_code,class_name,upper_class,spell_code,wbzx_code) " );
                        sql.append("values('").append(dict.getString("CLASS_CODE")).append("','");
                        sql.append(dict.getString("CLASS_NAME")).append("','");
                        sql.append(dict.getString("UPPER_CLASS")).append("','");
                        sql.append(dict.getString("SPELL_CODE")).append("','");
                        sql.append(dict.getString("WBZX_CODE")).append("')");
                        System.out.println("sql="+sql.toString());
                        jdbcTemplate.execute(sql.toString());
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void synchronizeZy_iv_staff_reg_type_allot_dict() {
        try{
            String re = jwPrescriptionService.getDictForI(IV_STAFF_REG_TYPE_ALLOT_DICT);
            JSONObject jsonObject = JSONObject.parseObject(re);
            if(jsonObject.getInteger("status")==200){
                JSONObject data = jsonObject.getJSONObject("data");
                if("1".equals(data.getString("CODE"))){
                    JSONArray returnData = data.getJSONArray("returnData");
                    System.out.println("returnData="+returnData.toString());
                    if(returnData.size()==0){
                        return;
                    }
                    JSONArray dictArray = returnData.getJSONArray(0);
                    for(int i=0;i<dictArray.size();i++){
                        JSONObject dict = dictArray.getJSONObject(i);
                        StringBuffer sql = new StringBuffer("insert into ");
                        sql.append(TableName.zy_iv_staff_reg_type_allot_dict.getDict()).append(" (org_code,staff_code,register_type,register_type_name,register_fee) " );
                        sql.append("values('").append(dict.getString("ORG_CODE")).append("','");
                        sql.append(dict.getString("STAFF_CODE")).append("','");
                        sql.append(dict.getString("REGISTER_TYPE")).append("','");
                        sql.append(dict.getString("REGISTER_TYPE_NAME")).append("','");
                        sql.append(dict.getString("REGISTER_FEE")).append("')");
                        System.out.println("sql="+sql.toString());
                        jdbcTemplate.execute(sql.toString());
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void synchronizeZ_iv_staff_dict() {
        try{
            String re = jwPrescriptionService.getDictForI(IV_STAFF_DICT);
            JSONObject jsonObject = JSONObject.parseObject(re);
            if(jsonObject.getInteger("status")==200){
                JSONObject data = jsonObject.getJSONObject("data");
                if("1".equals(data.getString("CODE"))){
                    JSONArray returnData = data.getJSONArray("returnData");
                    System.out.println("returnData="+returnData.toString());
                    if(returnData.size()==0){
                        return;
                    }
                    JSONArray dictArray = returnData.getJSONArray(0);
                    for(int i=0;i<dictArray.size();i++){
                        JSONObject dict = dictArray.getJSONObject(i);
                        StringBuffer sql = new StringBuffer("insert into ");
                        sql.append(TableName.zy_iv_staff_dict.getDict()).append(" (org_code,staff_code,staff_name,work_code,birthday,sex,spell_code,wbzx_code,identity_no,certificate_no) " );
                        sql.append("values('").append(dict.getString("ORG_CODE")).append("','");
                        sql.append(dict.getString("STAFF_CODE")).append("','");
                        sql.append(dict.getString("STAFF_NAME")).append("','");
                        sql.append(dict.getString("WORK_CODE")).append("','");
                        sql.append(dict.getString("BIRTHDAY")).append("','");
                        sql.append(dict.getString("SEX")).append("','");
                        sql.append(dict.getString("SPELL_CODE")).append("','");
                        sql.append(dict.getString("WBZX_CODE")).append("','");
                        sql.append(dict.getString("IDENTITY_NO")).append("','");
                        sql.append(dict.getString("CERTIFICATE_NO")).append("')");
                        System.out.println("sql="+sql.toString());
                        jdbcTemplate.execute(sql.toString());
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    private String changDate(String date){
        String str=date.replace("/Date(","").replace(")/","");
        String time = str.substring(0,str.length()-5);
        Date data = new Date(Long.parseLong(time));
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return format.format(data);
    }
    public void synchronizeZy_iv_physic_dict() {
        try{
            String re = jwPrescriptionService.getDictForI(IV_PHYSIC_DICT);
            JSONObject jsonObject = JSONObject.parseObject(re);
            if(jsonObject.getInteger("status")==200){
                JSONObject data = jsonObject.getJSONObject("data");
                if("1".equals(data.getString("CODE"))){
                    JSONArray returnData = data.getJSONArray("returnData");
                    System.out.println("returnData="+returnData.toString());
                    if(returnData.size()==0){
                        return;
                    }
                    JSONArray dictArray = returnData.getJSONArray(0);
                    for(int i=0;i<dictArray.size();i++){
                        JSONObject dict = dictArray.getJSONObject(i);
                        StringBuffer sql = new StringBuffer("insert into ");
                        sql.append(TableName.zy_iv_physic_dict.getDict()).append(" (physic_code,physic_name,physic_spec,subject_class,dose_unit,quantity_unit,pack_unit,min_dose,pack_spec, " );
                        sql.append("retail_price,physic_from,toxicology_type,basic_flag,valid_flag,spell_code,wbzx_code,sequence)");
                        sql.append("values('").append(dict.getString("PHYSIC_CODE")).append("','");//药品代码
                        sql.append(dict.getString("PHYSIC_NAME")).append("','");//'药品名称'
                        sql.append(dict.getString("PHYSIC_SPEC")).append("','");//'药品规格'
                        sql.append(dict.getString("SUBJECT_CLASS")).append("','");//'药品科目  科目类别字典中定义'
                        sql.append(dict.getString("DOSE_UNIT")).append("','");//'剂量单位 计量单位字典中定义'
                        sql.append(dict.getString("QUANTITY_UNIT")).append("','");///'数量单位  计量单位字典中定义'
                        sql.append(dict.getString("PACK_UNIT")).append("',");//'包装单位   计量单位字典中定义'
                        sql.append(dict.getDouble("MIN_DOSE")).append(",");//'最小剂量'
                        sql.append(dict.getDouble("PACK_SPEC")).append(",");//
                        sql.append(dict.getDouble("RETAIL_PRICE")).append(",'");//'零售价'
                        sql.append(dict.getString("PHYSIC_FROM")).append("','");//'药品剂型  药品剂型字典中定义'
                        sql.append(dict.getString("TOXICOLOGY_TYPE")).append("','");//'毒理分类  药品毒理分类字典中定义'
                        sql.append(dict.getString("BASIC_FLAG")).append("','");//'基本药物标志  0:否;1:是'
                        sql.append(dict.getString("VALID_FLAG")).append("','");//'有效标志 0:无效;1:有效'
                        sql.append(dict.getString("SPELL_CODE")).append("','");//'拼音首码'
                        sql.append(dict.getString("WBZX_CODE")).append("',");//'五笔首码'
                        if(dict.getInteger("SEQUENCE")==null){
                            sql.append(dict.getInteger("SEQUENCE")).append(")");//'排序号'
                        }else {
                            sql.append(dict.getString("SEQUENCE")).append(")");//'排序号'
                        }
                        System.out.println("sql="+sql.toString());
                        jdbcTemplate.execute(sql.toString());
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void synchronizeZy_iv_org_physic_allot_dict() {
        try{
            String re = jwPrescriptionService.getDictForI(IV_ORG_PHYSIC_ALLOT_DICT);
            JSONObject jsonObject = JSONObject.parseObject(re);
            if(jsonObject.getInteger("status")==200){
                JSONObject data = jsonObject.getJSONObject("data");
                if("1".equals(data.getString("CODE"))){
                    JSONArray returnData = data.getJSONArray("returnData");
                    System.out.println("returnData="+returnData.toString());
                    if(returnData.size()==0){
                        return;
                    }
                    JSONArray dictArray = returnData.getJSONArray(0);
                    for(int i=0;i<dictArray.size();i++){
                        JSONObject dict = dictArray.getJSONObject(i);
                        StringBuffer sql = new StringBuffer("insert into ");
                        sql.append(TableName.zy_iv_org_physic_allot_dict.getDict()).append(" (org_code,physic_code) " );
                        sql.append("values('").append(dict.getString("ORG_CODE")).append("','");//'机构编码'
                        sql.append(dict.getString("PHYSIC_CODE")).append("')");//'药品代码'
                        System.out.println("sql="+sql.toString());
                        jdbcTemplate.execute(sql.toString());
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void synchronizeZy_iv_diagnose_class_dict() {
        try{
            String re = jwPrescriptionService.getDictForI(IV_DIAGNOSE_CLASS_DICT);
            JSONObject jsonObject = JSONObject.parseObject(re);
            if(jsonObject.getInteger("status")==200){
                JSONObject data = jsonObject.getJSONObject("data");
                if("1".equals(data.getString("CODE"))){
                    JSONArray returnData = data.getJSONArray("returnData");
                    System.out.println("returnData="+returnData.toString());
                    if(returnData.size()==0){
                        return;
                    }
                    JSONArray dictArray = returnData.getJSONArray(0);
                    for(int i=0;i<dictArray.size();i++){
                        JSONObject dict = dictArray.getJSONObject(i);
                        StringBuffer sql = new StringBuffer("insert into ");
                        sql.append(TableName.zy_iv_diagnose_class_dict.getDict()).append(" (class_sub_no,class_code,class_name,upper_class,valid_flag,spell_code,wbzx_code) " );
                        sql.append("values('").append(dict.getString("CLASS_SUB_NO")).append("','");//''类别子序号''
                        sql.append(dict.getString("CLASS_CODE")).append("','");//'类别代码'
                        sql.append(dict.getString("CLASS_NAME")).append("','");//'类别名称'
                        sql.append(dict.getString("UPPER_CLASS")).append("','");//'上级类别'
                        sql.append(dict.getString("VALID_FLAG")).append("','");//'有效标志  0 :无效;1:有效'
                        sql.append(dict.getString("SPELL_CODE")).append("','");//'拼音首码'
                        sql.append(dict.getString("WBZX_CODE")).append("')");//''五笔首码''
                        System.out.println("sql="+sql.toString());
                        jdbcTemplate.execute(sql.toString());
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void synchronizeZy_iv_dept_staff_allot_dict() {
        try{
            String re = jwPrescriptionService.getDictForI(IV_DEPT_STAFF_ALLOT_DICT);
            JSONObject jsonObject = JSONObject.parseObject(re);
            if(jsonObject.getInteger("status")==200){
                JSONObject data = jsonObject.getJSONObject("data");
                if("1".equals(data.getString("CODE"))){
                    JSONArray returnData = data.getJSONArray("returnData");
                    System.out.println("returnData="+returnData.toString());
                    if(returnData.size()==0){
                        return;
                    }
                    JSONArray dictArray = returnData.getJSONArray(0);
                    for(int i=0;i<dictArray.size();i++){
                        JSONObject dict = dictArray.getJSONObject(i);
                        StringBuffer sql = new StringBuffer("insert into ");
                        sql.append(TableName.zy_iv_dept_staff_allot_dict.getDict()).append(" (org_code,dept_code,staff_code) " );
                        sql.append("values('").append(dict.getString("ORG_CODE")).append("','");//'''机构编码'''
                        sql.append(dict.getString("DEPT_CODE")).append("','");//''科室编码''
                        sql.append(dict.getString("STAFF_CODE")).append("')");//'''员工编码'''
                        System.out.println("sql="+sql.toString());
                        jdbcTemplate.execute(sql.toString());
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void synchronizeZyCommonDict() {
        String[] dictNames = new String[]{
                this.IV_PHYSIC_FORM_DICT, this.IV_PHYSIC_INJECT_PLACE_DICT, this.IV_PHYSIC_SKIN_TEST_DICT,
                this.IV_RATE_TYPE_DICT, this.IV_RECIPE_FREQUENCY_DICT, this.IV_RECIPE_USAGE_DICT,
                this.IV_SEX_DICT, this.IV_PHYSIC_TOXICOLOGY_TYPE_DICT, this.IV_MEASURE_UNIT_DICT,
                this.IV_DEPT_TYPE_DICT};
        try{
            for (String dictName : dictNames) {
                String re = jwPrescriptionService.getDictForI(dictName);
                JSONObject jsonObject = JSONObject.parseObject(re);
                if(jsonObject.getInteger("status")==200){
                    JSONObject data = jsonObject.getJSONObject("data");
                    if("1".equals(data.getString("CODE"))){
                        JSONArray returnData = data.getJSONArray("returnData");
                        System.out.println("returnData="+returnData.toString());
                        if(returnData.size()==0){
                            continue;
                        }
                        JSONArray dictArray = returnData.getJSONArray(0);
                        for(int i=0;i<dictArray.size();i++){
                            JSONObject dict = dictArray.getJSONObject(i);
                            StringBuffer sql = new StringBuffer("insert into ");
                            sql.append(TableName.zy_common_dict.getDict()).append(" (dict_name,code,name) " );
                            sql.append("values('").append(dict.getString("DICT_NAME")).append("','");
                            sql.append(dict.getString("CODE")).append("','");
                            sql.append(dict.getString("NAME")).append("')");
                            System.out.println("sql="+sql.toString());
                            jdbcTemplate.execute(sql.toString());
                        }
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void synchronizeZy_iv_dept_dict() {
        try{
            String re = jwPrescriptionService.getDictForI(IV_DEPT_DICT);
            JSONObject jsonObject = JSONObject.parseObject(re);
            if(jsonObject.getInteger("status")==200){
                JSONObject data = jsonObject.getJSONObject("data");
                if("1".equals(data.getString("CODE"))){
                    JSONArray returnData = data.getJSONArray("returnData");
                    System.out.println("returnData="+returnData.toString());
                    if(returnData.size()==0){
                        return;
                    }
                    JSONArray dictArray = returnData.getJSONArray(0);
                    for(int i=0;i<dictArray.size();i++){
                        JSONObject dict = dictArray.getJSONObject(i);
                        StringBuffer sql = new StringBuffer("insert into ");
                        sql.append(TableName.zy_iv_dept_dict.getDict()).append(" (org_code,dept_code,dept_name,dept_type,upper_dept) " );
                        sql.append("values('").append(dict.getString("ORG_CODE")).append("','");//机构编码
                        sql.append(dict.getString("DEPT_CODE")).append("','");//'科室编码
                        sql.append(dict.getString("DEPT_NAME")).append("','");//'科室名称
                        sql.append(dict.getString("DEPT_TYPE")).append("','");//'科室类型  详见科室类型字典中定义
                        sql.append(dict.getString("UPPER_DEPT")).append("')");//'上级科室
                        System.out.println("sql="+sql.toString());
                        jdbcTemplate.execute(sql.toString());
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    /**
     * 智业的字典
     */
    public static final String IV_MEASURE_UNIT_DICT = "IV_MEASURE_UNIT_DICT";//("计量单位字典", "IV_MEASURE_UNIT_DICT"),
    public static final String IV_PHYSIC_FORM_DICT = "IV_PHYSIC_FORM_DICT";//("药品剂型字典", "IV_PHYSIC_FORM_DICT"),
    public static final String IV_PHYSIC_INJECT_PLACE_DICT = "IV_PHYSIC_INJECT_PLACE_DICT";//"计量单位字典", "IV_PHYSIC_INJECT_PLACE_DICT"),
    public static final String IV_PHYSIC_SKIN_TEST_DICT = "IV_PHYSIC_SKIN_TEST_DICT";//("皮试类型字典", "IV_PHYSIC_SKIN_TEST_DICT"),
    public static final String IV_RATE_TYPE_DICT = "IV_RATE_TYPE_DICT";//("费别字典", "IV_RATE_TYPE_DICT"),
    public static final String IV_RECIPE_FREQUENCY_DICT = "IV_RECIPE_FREQUENCY_DICT";//("频次字典", "IV_RECIPE_FREQUENCY_DICT"),
    public static final String IV_RECIPE_USAGE_DICT = "IV_RECIPE_USAGE_DICT";//("用药方法字典", "IV_RECIPE_USAGE_DICT"),
    public static final String IV_SEX_DICT = "IV_SEX_DICT";//("性别字典", "IV_SEX_DICT"),
    public static final String IV_PHYSIC_DICT = "IV_PHYSIC_DICT";//("药品字典", "IV_PHYSIC_DICT"),
    public static final String IV_ORG_PHYSIC_ALLOT_DICT = "IV_ORG_PHYSIC_ALLOT_DICT";//("机构药品分发字典", "IV_ORG_PHYSIC_ALLOT_DICT "),
    public static final String IV_SUBJECT_CLASS_DICT = "IV_SUBJECT_CLASS_DICT";//("科目类别字典", "IV_SUBJECT_CLASS_DICT"),
    public static final String IV_PHYSIC_TOXICOLOGY_TYPE_DICT = "IV_PHYSIC_TOXICOLOGY_TYPE_DICT";//("药品毒理分类字典", "IV_PHYSIC_TOXICOLOGY_TYPE_DICT"),
    public static final String IV_DEPT_DICT = "IV_DEPT_DICT";//("科室字典", "IV_DEPT_DICT"),
    public static final String IV_DEPT_TYPE_DICT = "IV_DEPT_TYPE_DICT";//("科室类型字典", "IV_DEPT_TYPE_DICT"),
    public static final String IV_DIAGNOSE_DICT = "IV_DIAGNOSE_DICT";//("诊断字典", "IV_DIAGNOSE_DICT"),
    public static final String IV_DIAGNOSE_CLASS_DICT = "IV_DIAGNOSE_CLASS_DICT";//("诊断类别字典", "IV_DIAGNOSE_CLASS_DICT"),
    public static final String IV_STAFF_DICT = "IV_STAFF_DICT";//("员工字典", "IV_STAFF_DICT"),
    public static final String IV_STAFF_REG_TYPE_ALLOT_DICT = "IV_STAFF_REG_TYPE_ALLOT_DICT";//("员工挂号类型配置字典", "IV_STAFF_REG_TYPE_ALLOT_DICT"),
    public static final String IV_DEPT_STAFF_ALLOT_DICT = "IV_DEPT_STAFF_ALLOT_DICT";//("科室员工配置字典", "IV_DEPT_STAFF_ALLOT_DICT");
    public enum TableName {
        zy_common_dict("通用字典", "zy_common_dict"),
        zy_iv_dept_dict("科室字典", "zy_iv_dept_dict"),
        zy_iv_dept_staff_allot_dict("科室员工配置字典", "zy_iv_dept_staff_allot_dict"),
        zy_iv_diagnose_class_dict("诊断类别字典", "zy_iv_diagnose_class_dict"),
        zy_iv_diagnose_dict("诊断字典表", "zy_iv_diagnose_dict"),
        zy_iv_org_physic_allot_dict("机构药品分发字典", "zy_iv_org_physic_allot_dict"),
        zy_iv_physic_dict("药品字典", "zy_iv_physic_dict"),
        zy_iv_staff_dict("员工字典", "zy_iv_staff_dict"),
        zy_iv_staff_reg_type_allot_dict("员工挂号类型配置字典", "zy_iv_staff_reg_type_allot_dict"),
        zy_iv_subject_class_dict("科目类别字典", "zy_iv_subject_class_dict");
        TableName(String name, String dict) {
            this.name = name;
            this.dict = dict;
        }
        private String name;
        private String dict;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getDict() {
            return dict;
        }
        public void setDict(String dict) {
            this.dict = dict;
        }
    }
    /**
     * 根据字典获取表名
     *
     * @param dictName
     * @return
     */
    public String getTableName(String dictName) {
        switch (dictName) {
            case IV_PHYSIC_FORM_DICT: {
                return TableName.zy_common_dict.getDict();
            }
            case IV_PHYSIC_INJECT_PLACE_DICT: {
                return TableName.zy_common_dict.getDict();
            }
            case IV_PHYSIC_SKIN_TEST_DICT: {
                return TableName.zy_common_dict.getDict();
            }
            case IV_RATE_TYPE_DICT: {
                return TableName.zy_common_dict.getDict();
            }
            case IV_RECIPE_FREQUENCY_DICT: {
                return TableName.zy_common_dict.getDict();
            }
            case IV_RECIPE_USAGE_DICT: {
                return TableName.zy_common_dict.getDict();
            }
            case IV_SEX_DICT: {
                return TableName.zy_common_dict.getDict();
            }
            case IV_PHYSIC_TOXICOLOGY_TYPE_DICT: {
                return TableName.zy_common_dict.getDict();
            }
            case IV_MEASURE_UNIT_DICT: {
                return TableName.zy_common_dict.getDict();
            }
            case IV_DEPT_TYPE_DICT: {
                return TableName.zy_common_dict.getDict();
            }
            case IV_PHYSIC_DICT: {
                return TableName.zy_iv_physic_dict.getDict();
            }
            case IV_ORG_PHYSIC_ALLOT_DICT: {
                return TableName.zy_iv_org_physic_allot_dict.getDict();
            }
            case IV_SUBJECT_CLASS_DICT: {
                return TableName.zy_iv_subject_class_dict.getDict();
            }
            case IV_DIAGNOSE_DICT: {
                return TableName.zy_iv_diagnose_dict.getDict();
            }
            case IV_DIAGNOSE_CLASS_DICT: {
                return TableName.zy_iv_diagnose_class_dict.getDict();
            }
            case IV_STAFF_DICT: {
                return TableName.zy_iv_staff_dict.getDict();
            }
            case IV_STAFF_REG_TYPE_ALLOT_DICT: {
                return TableName.zy_iv_staff_reg_type_allot_dict.getDict();
            }
            case IV_DEPT_STAFF_ALLOT_DICT: {
                return TableName.zy_iv_dept_staff_allot_dict.getDict();
            }
            case IV_DEPT_DICT: {
                return TableName.zy_iv_dept_dict.getDict();
            }
        }
        return "";
    }
}

+ 8 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/consult/ConsultTeamService.java

@ -878,7 +878,7 @@ public class ConsultTeamService extends ConsultService {
        synchronized (jwCode.intern()){
//            PrescriptionReviewed p = prescriptionReviewedDao.findByPrescriptionCodeAndStatus()
            List<Prescription> prescriptionList = prescriptionDao.fingdByJwCodeAndStatus(jwCode,0);
            List<Prescription> prescriptionList = prescriptionDao.fingdByJwCodeAndStatus(jwCode,0,patient);
            if(prescriptionList!=null&&prescriptionList.size()>0){//存在未审核的续方
                return -1;
            }
@ -948,7 +948,7 @@ public class ConsultTeamService extends ConsultService {
            JSONObject messages = ImUtill.getCreateTopicMessage(patient, p.getName(), consult.getTitle(), content, consult.getImages(),agent);
            //5、(im创建咨询) 续方咨询的sessionid为居民code+续方code+咨询类型
            JSONObject obj = ImUtill.createTopics(patient + "_" + prescription.getCode() + "_" + ct.getType(), consult.getCode(), p.getName(), users, messages, ImUtill.SESSION_TYPE_PRESCRIPTION);
            JSONObject obj = ImUtill.createTopics(patient + "_" + consult.getCode() + "_" + ct.getType(), consult.getCode(), p.getName(), users, messages, ImUtill.SESSION_TYPE_PRESCRIPTION);
            if (obj == null) {
                throw new RuntimeException("IM消息发送异常!");
            }
@ -959,6 +959,10 @@ public class ConsultTeamService extends ConsultService {
            consultTeamDao.save(ct);
            consultDao.save(consult);
            //设置咨询code
            prescription.setConsult(consult.getCode());
            prescriptionDao.save(prescription);
            //6、记录咨询的医生详情
            ConsultTeamDoctor cd = new ConsultTeamDoctor();
            cd.setConsult(consult.getCode());
@ -1016,7 +1020,7 @@ public class ConsultTeamService extends ConsultService {
    public String savePrescription(Prescription prescription,String jwCode,Doctor doctor,Patient p,ConsultTeam ct,String reason) throws Exception{
        String re = "";
        //获取智业处方详细
        String response = jwPrescriptionService.getLastRecipe(p.getSsc(),jwCode,null,null);
//        String response = jwPrescriptionService.getLastRecipe(p.getSsc(),jwCode,null,null);
        //续方主表
        prescription.setCode(getCode());
@ -1087,7 +1091,7 @@ public class ConsultTeamService extends ConsultService {
        PrescriptionReviewed reviewed = new PrescriptionReviewed();
        reviewed.setPrescriptionCode(prescription.getCode());
        reviewed.setCode(getCode());
        reviewed.setStatus(0);
        reviewed.setStatus(PrescriptionReviewed.PrescriptionReviewedStatus.reviewed_wait.getValue());
        reviewed.setCreateTime(new Date());
        reviewed.setDoctor(prescription.getDoctor());
        reviewed.setDoctorName(prescription.getDoctorName());

File diff ditekan karena terlalu besar
+ 144 - 39
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PatientPrescriptionPayService.java


File diff ditekan karena terlalu besar
+ 142 - 56
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionInfoService.java


+ 14 - 5
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionService.java

@ -146,10 +146,12 @@ public class PrescriptionService extends BaseService {
        // "bcghcs":"本次挂号次数","ghksmc":"挂号科室名称","cfxms0":"明细上传数量","mzlsh0":"医保挂号流水号 如果为空,将自动医保挂号并收费","ghfy00":"挂号费用",
        // "yszjdj":"医师诊金级别","bqbm00":"病情编码","sfygwd":"是否医改网点"}
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("yyksbm","医生科室编号");//医生科室编号-------------------------待处理
        jsonObject.put("yyksbm","医生科室编码");//医生科室编号-------------------------待处理
        jsonObject.put("bcsfcs",1);//本次收费次数
        jsonObject.put("yszjhm",doctorMapping.getJwDocotrIdcard());//医生证件号码
//        jsonObject.put("yszjhm","350681876766545567");//医生证件号码
        jsonObject.put("ysxm00",doctorMapping.getJwDoctorName());//医生姓名
//        jsonObject.put("ysxm00","林金城");//医生姓名
        jsonObject.put("mzlb00",101);//门诊类别---普通门诊默认为101
        jsonObject.put("sfydgh","N");//是否药店挂号,默认为N,不是药店挂号
        jsonObject.put("bcghcs",1);//本次挂号次数
@ -174,9 +176,16 @@ public class PrescriptionService extends BaseService {
            }
        }
        if(StringUtils.isNotBlank(result)){
            JSONObject zyCfinfo =  JSON.parseObject(result);
//        JSONArray zdInfo = new JSONArray();
//        JSONObject j1 = new JSONObject();
//        j1.put("zdms00","高血压");//诊断或症状描述
//        j1.put("zdbh00","1212121");//诊断或症状编码
//        zdInfo.add(j1);
//        json.put("zdlist",zdInfo);
        if(StringUtils.isNotBlank(result)){
            JSONObject jwobj =  JSON.parseObject(result);
            JSONObject zyCfinfo = jwobj.getJSONObject("data");
            Integer code = zyCfinfo.getInteger("CODE");
            if( 1 == code){
@ -201,7 +210,7 @@ public class PrescriptionService extends BaseService {
                    j2.put("xmgg00",zyCfinfoObj.getString("INSUR_ITEM_SPEC"));//项目规格(医保)
                    j2.put("xmsl00",zyCfinfoObj.getString("ITEM_QUANTITY"));//项目数量
                    j2.put("xmje00",zyCfinfoObj.getString("COST"));//项目金额
                    j2.put("ysxm00",doctorMapping.getJwDoctorName());//医生姓名
                    j2.put("ysxm00",zyCfinfoObj.getString("APPLY_OPERATOR_NAME"));//医生姓名
                    j2.put("sptxbm","");//商品条形编码
                    j2.put("yppl00",zyCfinfoObj.getString("FREQUENCY"));//药品频率
                    j2.put("ypyl00",zyCfinfoObj.getString("PHYSIC_DOSE"));//药品用量
@ -222,7 +231,7 @@ public class PrescriptionService extends BaseService {
        }
//        String aa = json.toString();
        return json;
    }
}

+ 1 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java

@ -73,6 +73,7 @@ public class JwPrescriptionService {
        params.add(new BasicNameValuePair("applyTimeFrom", applyTimeFrom));
        params.add(new BasicNameValuePair("applyTimeEnd", applyTimeEnd));
        String response = httpClientUtil.post(url, params, "UTF-8");
        return response;

+ 88 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/ZyDictService.java

@ -1,12 +1,18 @@
package com.yihu.wlyy.service.third.jw;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.organization.Hospital;
import com.yihu.wlyy.repository.doctor.DoctorMappingDao;
import com.yihu.wlyy.repository.organization.HospitalDao;
import com.yihu.wlyy.repository.organization.HospitalMappingDao;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
 * Created by chenweida on 2017/8/10.
@ -17,10 +23,92 @@ public class ZyDictService {
    private JwPrescriptionService jwPrescriptionService;
    @Autowired
    private HospitalDao hospitalDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private DoctorMappingDao doctorMappingDao;
    @Autowired
    private HospitalMappingDao hospitalMappingDao;
    @Transactional
    public void synchronousDict(String dictName) {
        //得到全部的机构医院
        List<Hospital> hospitals = hospitalDao.findAllHospital();
    }
    /**
     * 判断字符串是否是英文
     * @param charaString
     * @return
     */
    public boolean isEnglish(String charaString){
        return charaString.matches("^[a-zA-Z]*");
    }
    /**
     * 根据基位code返回医院名称
     * @param jwHospital
     * @return
     */
    public String findByHospital(String jwHospital){
        return hospitalMappingDao.getNameByMapping(jwHospital,"1");
    }
    /**
     * 根据基位code 获取医生
     * @param jwDoctor
     * @param jwHospital
     * @return
     */
    public Doctor getDoctByJw(String jwDoctor,String jwHospital){
        return doctorMappingDao.getDoctorByJw(jwHospital,jwDoctor);
    }
    /**
     * 获取药品字典
     * @param doctor
     * @param name
     * @return
     */
    public List<Map<String, Object>> findDictByDoctorAndName(String doctor,String name){
        String sql = "select " +
                        "p.physic_code drugCode," +
                        "p.physic_name drugName," +
                        "p.physic_spec drugFormat" +
                        " from zy_iv_physic_dict p," +
                        " (SELECT o.physic_code" +
                        "   ,o.org_code " +
                        "   from " +
                        "       wlyy_doctor_mapping h," +
                        "       zy_iv_org_physic_allot_dict o" +
                        "   WHERE o.org_code = h.jw_doctor_hospital " +
                        "   and h.doctor_code = ?) ho" +
                        " WHERE ho.physic_code = p.physic_code";
        if(StringUtils.isNotBlank(name)){
            if(isEnglish(name)){
                sql += " and p.spell_code like '%"+name.toUpperCase()+"%'";
            }else{
                sql += " and p.physic_name like '%"+name+"%'";
            }
        }
//        subjectClass
//        drugNumUnit":"224","drugNumUnitName":"支",
//        physicDoseUnit":"224","physicDoseUnitName":"支",
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql,doctor);
        return list;
    }
    /**
     * 根据智业
     * @param jwHospital
     * @return
     */
    public String getHospitalNameByZy(String jwHospital){
        return hospitalMappingDao.getNameByMapping(jwHospital,"1");
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/ImUtill.java

@ -442,7 +442,7 @@ public class ImUtill {
    public static final String SESSION_TYPE_P2P = "2";
    public static final String SESSION_TYPE_GROUP = "3";
    public static final String SESSION_TYPE_SYSTEM = "0";
    public static final String SESSION_TYPE_PRESCRIPTION = "5";//续方
    public static final String SESSION_TYPE_PRESCRIPTION = "8";//续方
    public static final String SESSION_STATUS_PROCEEDINGS = "0";
    public static final String SESSION_STATUS_END = "1";

+ 6 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/consult/DoctorConsultController.java

@ -1061,7 +1061,7 @@ public class DoctorConsultController extends WeixinBaseController {
    public String finishConsult(@RequestParam(required = false) String consult) {
        try {
            int flag = consultTeamService.finishConsult(consult, getUID(), 2);
            //int flag = consultTeamService.finishConsult(consult, "test00000000005", 2);
//            int flag = consultTeamService.finishConsult(consult, "admin", 2);
            if (flag > 0) {
                return success("咨询已关闭");
            } else if(flag == -1) {
@ -1107,12 +1107,12 @@ public class DoctorConsultController extends WeixinBaseController {
    @RequestMapping(value = "prescriptionDetail",method = RequestMethod.GET)
    @ResponseBody
    @ApiOperation("获取续方信息")
    public String prescriptionDetail(@RequestParam(required = true) String consult){
    public String prescriptionDetail(@ApiParam(name = "consult", value = "咨询code", defaultValue = "1")
                                     @RequestParam(value = "consult", required = true) String consult){
        try {
            JSONObject json = new JSONObject();
            Consult consult1 = consultDao.findByCode(consult);
            String prescriptionCode = consult1.getRelationCode();
            Prescription prescription = prescriptionDao.findByCode(prescriptionCode);
            json.put("status",prescription.getStatus());//状态 (-1 审核不通过 , 0 审核中, 10 审核通过/待支付 ,21支付失败  20 配药中/支付成功, 21 等待领药 ,30 配送中 ,100配送成功/已完成)
@ -1132,8 +1132,10 @@ public class DoctorConsultController extends WeixinBaseController {
            }
            json.put("signFamilyServer",jsonArray);
            json.put("symptoms",consult1.getSymptoms());//咨询类型--- 1高血压,2糖尿病
            json.put("jwCode",prescription.getJwCode());//基位处方code
            json.put("code",prescription.getCode());//续方code
            return write(200, "查询成功!", "list", json);
            return write(200, "查询成功!", "data", json);
        }catch (Exception e){
            error(e);
            return error(-1, "查询失败!");

+ 54 - 5
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prescription/PrescriptionInfoController.java

@ -11,16 +11,14 @@ import com.yihu.wlyy.service.app.prescription.PrescriptionInfoService;
import com.yihu.wlyy.service.app.prescription.PrescriptionPayService;
import com.yihu.wlyy.service.app.prescription.PrescriptionService;
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
import com.yihu.wlyy.service.third.jw.ZyDictService;
import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -44,6 +42,8 @@ public class PrescriptionInfoController extends BaseController{
    private JwPrescriptionService jwPrescriptionService;
    @Autowired
    private PresModeAdapter adapter;
    @Autowired
    private ZyDictService zyDictService;
    @RequestMapping(value = "/getPrescriptionFilter", method = RequestMethod.GET)
@ -116,6 +116,19 @@ public class PrescriptionInfoController extends BaseController{
        }
    }
    @RequestMapping(value = "/findDictByName", method = RequestMethod.GET)
    @ApiOperation(value = "药品列表")
    public String findDictByName(@ApiParam(name = "name", value = "药品名称(中文或拼音首字母查询)", defaultValue = "胰岛素")
                                 @RequestParam(value = "name", required = false) String name){
        try {
//            return write(200, "操作成功!", "data",zyDictService.findDictByDoctorAndName("e3b3bfb3644011e69616fa163e424525",name));
            return write(200, "操作成功!", "data",zyDictService.findDictByDoctorAndName(getUID(),name));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败!");
        }
    }
    @RequestMapping(value = "/getInfoTitle", method = RequestMethod.POST)
    @ApiOperation(value = "调整处方-药品分类及种类数目")
    public String getInfoTitle(){
@ -228,7 +241,7 @@ public class PrescriptionInfoController extends BaseController{
    @RequestMapping(value = "/getDoctorPrescriptionExpressage", method = RequestMethod.GET)
    @ApiOperation(value = "获取全科医生续方订单列表")
    public String getDoctorPrescriptionExpressage(@RequestParam(required = false) @ApiParam(value = "团队Code", name = "teamCode")String teamCode,
    public String getDoctorPrescriptionExpressage(@RequestParam(required = false) @ApiParam(value = "团队Code", name = "teamCode")Integer teamCode,
                                                  @RequestParam(required = false) @ApiParam(value = "居民搜素关键字", name = "nameKey")String nameKey,
                                                  @RequestParam(required = false) @ApiParam(value = "开始时间", name = "startDate")String startDate,
                                                  @RequestParam(required = false) @ApiParam(value = "结束时间", name = "endDate")String endDate,
@ -338,4 +351,40 @@ public class PrescriptionInfoController extends BaseController{
            return error(-1, "查询失败!");
        }
    }
    @RequestMapping(value = "/initDrugData", method = RequestMethod.GET)
    @ApiOperation(value = "刷入redis平次数据")
    public String initDrugData(){
        try {
            return write(200, "操作成功!", "data",prescriptionInfoService.initDrugData());
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败!");
        }
    }
    @RequestMapping(value = "/drugToRate", method = RequestMethod.GET)
    @ApiOperation(value ="频次翻译")
    public String drugToRate(String code){
        try {
            return write(200, "操作成功!", "data",prescriptionInfoService.drugToRate(code));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败!");
        }
    }
    @RequestMapping(value = "/getPrescription" ,method = RequestMethod.GET)
    @ResponseBody
    @ApiOperation(value = "获取长处方详细信息")
    public String getPrescription(@RequestParam(required = true)@ApiParam(name="code",value="处方CODE")String code){
        try {
            //return write(200, "查询成功!", "data", prescriptionInfoService.getPrescription(code));
            return write(200, "查询成功!", "data", prescriptionInfoService.getContinuedPrescription("69d11d6aa5254acd859a23a281d11910"));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败!");
        }
    }
}

+ 1 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/express/SFExpressApiController.java

@ -39,9 +39,8 @@ public class SFExpressApiController extends BaseController {
    public String SFRoutePushService (
            @ApiParam(name="content", value="入参报文") @RequestParam(value = "content",required = true) String content){
        try {
            logger.info("顺丰路由信息推送,xml="+content);
            content = URLDecoder.decode(content,"utf-8");
            logger.info("顺丰路由信息推送,xml="+content);
            sfexpressService.SFRoutePushService(content);
            return successxml;
        }catch (Exception e){

+ 3 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/prescription/PatientPrescriptionInfoController.java

@ -43,7 +43,7 @@ public class PatientPrescriptionInfoController extends BaseController {
                                       @RequestParam(required = false)@ApiParam(name="page",value="起始页")Integer page,
                                       @RequestParam(required = false)@ApiParam(name="size",value="每页条数")Integer size){
        try {
            return write(200, "查询成功!", "data", prescriptionInfoService.getPrescriptionInfos(type,diagnosisCode,startDate,endDate,getRepUID(),isRenewal,page,size));
            return write(200, "查询成功!", "data", prescriptionInfoService.getPrescriptionInfos(type,diagnosisCode,startDate,endDate,"915cc7da-5b1d-11e6-8344-fa163e8aee56",isRenewal,page,size));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败!");
@ -56,7 +56,8 @@ public class PatientPrescriptionInfoController extends BaseController {
    public String getPrescription(@RequestParam(required = true)@ApiParam(name="code",value="处方CODE")String code){
        try {
            return write(200, "查询成功!", "data", prescriptionInfoService.getPrescription(code));
            //return write(200, "查询成功!", "data", prescriptionInfoService.getPrescription(code));
            return write(200, "查询成功!", "data", prescriptionInfoService.getContinuedPrescription("69d11d6aa5254acd859a23a281d11910"));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败!");

+ 22 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/prescription/PatientPrescriptionPayController.java

@ -28,6 +28,9 @@ public class PatientPrescriptionPayController extends WeixinBaseController {
    @Autowired
    private PatientPrescriptionPayService payService;
    @Autowired
    private PrescriptionService prescriptionService;
    /**
     * 患者长处方支付接口 可配送方式查询
     *
@ -70,11 +73,12 @@ public class PatientPrescriptionPayController extends WeixinBaseController {
            @RequestParam(required = true) @ApiParam(value = "配送地址json", name = "addressJson",defaultValue = "{\"townName\":\"海沧区\",\"code\":\"3502050100\",\"address\":" +
                    "\"冰岛\",\"cityName\":\"厦门市\",\"townCode\":\"350205\",\"provinceCode\":\"350000\",\"cityCode\":\"350200\",\"name\":\"海沧区嵩屿街道社区卫生服务中心\"," +
                    "\"provinceName\":\"福建省\",\"streeCode\":\"35020501\",\"streeName\":\"皇后大道东\",\"phone\":\"13253541190\"}") String addressJson,
            @RequestParam(required = true) @ApiParam(value = "页面回调地址", name = "returnUrl") String returnUrl,
            @RequestParam(required = true) @ApiParam(value = "订单总金额", name = "totalAmount") int totalAmount) throws Exception {
        try {
            String accessToken = getAccessToken();
            String patient = getUID();
            payService.charge(type,addressJson,orgCode, prescriptionCode, totalAmount, patient, accessToken);
            payService.charge(type,addressJson,orgCode, prescriptionCode, totalAmount, patient, accessToken,returnUrl);
            return write(200, "支付成功!");
        } catch (Exception e) {
            return error(-1, "支付失败!");
@ -125,12 +129,26 @@ public class PatientPrescriptionPayController extends WeixinBaseController {
     */
    @RequestMapping(value = "/receiveRecipeNotify", method = RequestMethod.POST)
    @ApiOperation(value = "对接方异步回调接口")
    public String receiveRecipeNotify(HttpServletRequest request, HttpServletResponse response) throws Exception {
    public void receiveRecipeNotify(HttpServletRequest request, HttpServletResponse response) throws Exception {
        try {
            payService.receiveRecipeNotify(request, response);
            return write(200, "回调成功!");
        } catch (Exception e) {
            return error(-1, "回调失败!");
            error(e);
        }
    }
    @RequestMapping(value = "/testJWgetPayInfo", method = RequestMethod.GET)
    @ApiOperation(value = "测试待结算接口返回信息")
    public String testJWgetPayInfo(
            @ApiParam(name = "cardNo", value = "社保卡号", defaultValue = "D21085562")
            @RequestParam(value = "cardNo", required = true) String cardNo,
            @ApiParam(name = "visitNo", value = "挂号号", defaultValue = "3277865")
            @RequestParam(value = "visitNo", required = true) String visitNo){
        try {
            com.alibaba.fastjson.JSONObject jsonParams = prescriptionService.getPayInfo(cardNo,visitNo);
            return write(200, "获取成功!","data",jsonParams);
        } catch (Exception e) {
            return error(-1, "获取失败!");
        }
    }

+ 28 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/BookingController.java

@ -5,6 +5,7 @@ import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.PatientReservation;
import com.yihu.wlyy.logs.BusinessLogs;
import com.yihu.wlyy.repository.message.SMSDao;
import com.yihu.wlyy.service.ZyDictDataService;
import com.yihu.wlyy.service.app.consult.ConsultService;
import com.yihu.wlyy.service.app.reservation.PatientReservationService;
import com.yihu.wlyy.service.common.SMSService;
@ -75,6 +76,33 @@ public class BookingController extends WeixinBaseController {
    private HttpClientUtil HttpClientUtil;
    @Autowired
    private PushMsgTask pushMsgTask;
    @Autowired
    ZyDictDataService zyDictJob;
    /**
     * 启动任务
     * @return
     */
    @RequestMapping(value = "test", method = RequestMethod.GET)
    @ApiOperation("获取智业字典列表")
    @ResponseBody
    public String test() {
        try {
//            zyDictJob.synchronizeZyCommonDict();
//            zyDictJob.synchronizeZ_iv_staff_dict();
//            zyDictJob.synchronizeZy_iv_dept_staff_allot_dict();
//            zyDictJob.synchronizeZy_iv_diagnose_class_dict();
//            zyDictJob.synchronizeZy_iv_org_physic_allot_dict();
//            zyDictJob.synchronizeZy_iv_physic_dict();
//            zyDictJob.synchronizeZy_iv_staff_reg_type_allot_dict();//
//            zyDictJob.synchronizeZy_iv_subject_class_dict();
            zyDictJob.synchronizeZy_iv_dept_dict();
            return success("获取智业字典列表成功!");
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "获取智业字典列表失败:" + e.getMessage());
        }
    }
    /**
     * 根据城市编码获取相应挂号服务

+ 16 - 16
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/wechat/process/WeiXinEventProcess.java

@ -237,22 +237,22 @@ public class WeiXinEventProcess {
        articles.add(articleExamination);
//        新增处方记录图文消息
//        Map<String, String> articlePrescription = new HashMap<>();
//        // 图文URL
//        String prescription = systemConf.getProperty("patient_prescription_url");
//        // 图文消息图片URL
//        String prescription_pic = systemConf.getProperty("patient_prescription_pic");
//        // URL设置服务器URL、AppId
//        prescription = prescription.replace("{server}",wechat_base_url)
//                .replace("{appId}",appId);
//        //图片地址
//        prescription_pic = prescription_pic.replace("{server}",serverUrl);
//
//        articlePrescription.put("Url", prescription);
//        articlePrescription.put("Title", "处方记录");
//        articlePrescription.put("Description", "处方记录");
//        articlePrescription.put("PicUrl", prescription_pic);
//        articles.add(articlePrescription);
        Map<String, String> articlePrescription = new HashMap<>();
        // 图文URL
        String prescription = systemConf.getProperty("patient_prescription_url");
        // 图文消息图片URL
        String prescription_pic = systemConf.getProperty("patient_prescription_pic");
        // URL设置服务器URL、AppId
        prescription = prescription.replace("{server}",wechat_base_url)
                .replace("{appId}",appId);
        //图片地址
        prescription_pic = prescription_pic.replace("{server}",serverUrl);
        articlePrescription.put("Url", prescription);
        articlePrescription.put("Title", "处方记录");
        articlePrescription.put("Description", "处方记录");
        articlePrescription.put("PicUrl", prescription_pic);
        articles.add(articlePrescription);
        // 构建回复消息XML
        result = WeiXinMessageReplyUtils.replyNewsMessage(message.get("FromUserName"), message.get("ToUserName"), articles);

+ 1 - 1
patient-co/patient-co-wlyy/src/main/resources/system.properties

@ -25,7 +25,7 @@ patient_inspect_url =https://open.weixin.qq.com/connect/oauth2/authorize?appid={
#社区体检
patient_examination_url=https://open.weixin.qq.com/connect/oauth2/authorize?appid={appId}&amp;redirect_uri={server}%2fwx%2fhtml%2fjkda%2fhtml%2fjiankangtijian.html&amp;response_type=code&amp;scope=snsapi_base&amp;state=STATE#wechat_redirect
#处方记录
patient_prescription_url=https://open.weixin.qq.com/connect/oauth2/authorize?appid={appId}&amp;redirect_uri={server}%2fwx%2fhtml%2fjkda%2fhtml%2fjiankangtijian.html&amp;response_type=code&amp;scope=snsapi_base&amp;state=STATE#wechat_redirect
patient_prescription_url=https://open.weixin.qq.com/connect/oauth2/authorize?appid={appId}&amp;redirect_uri={server}%2fwx%2fhtml%2fprescription%2fhtml%2fprescription_records.html&amp;response_type=code&amp;scope=snsapi_base&amp;state=STATE#wechat_redirect
#就诊记录