Browse Source

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

wangzhinan 7 years ago
parent
commit
415ea64728
100 changed files with 3069 additions and 232 deletions
  1. BIN
      classes/production/JkEdu/com/yihu/jk/api/ArticleApi.class
  2. BIN
      classes/production/JkEdu/com/yihu/jk/dao/ArticleDao.class
  3. 100 17
      common/common-entity/src/main/java/com/yihu/device/entity/DeviceDetail.java
  4. 87 0
      common/common-entity/src/main/java/com/yihu/device/entity/DeviceManufacturer.java
  5. 10 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/device/DeviceDetail.java
  6. 84 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/device/DeviceWxMessage.java
  7. 38 1
      common/common-entity/src/main/java/com/yihu/wlyy/entity/device/PatientDevice.java
  8. 153 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/device/PatientDeviceLog.java
  9. 105 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/device/vo/DeviceWxMessageDTO.java
  10. 1 1
      common/common-entity/src/main/java/com/yihu/wlyy/entity/doctor/team/sign/SignPatientLabel.java
  11. 13 2
      common/common-entity/src/main/java/com/yihu/wlyy/entity/message/Message.java
  12. 10 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/patient/Patient.java
  13. 87 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/template/DoctorGuidanceTempLabel.java
  14. 19 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/template/DoctorTeamGuidanceTemplate.java
  15. BIN
      edu-article/JkEdu/WebRoot/WEB-INF/classes/com/yihu/jk/api/ArticleApi.class
  16. BIN
      edu-article/JkEdu/WebRoot/WEB-INF/classes/com/yihu/jk/api/ArticleApiTest.class
  17. BIN
      edu-article/JkEdu/WebRoot/WEB-INF/classes/com/yihu/jk/dao/ArticleDao.class
  18. 7 1
      edu-article/JkEdu/src/com/yihu/jk/api/ArticleApi.java
  19. 15 1
      edu-article/JkEdu/src/com/yihu/jk/api/ArticleApiTest.java
  20. 7 1
      edu-article/JkEdu/src/com/yihu/jk/dao/ArticleDao.java
  21. 0 0
      error
  22. 2 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/config/SpringSecurityConfig.java
  23. 1 1
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/BaseController.java
  24. 1 1
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/common/account/LoginController.java
  25. 40 2
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/datastatic/PrescriptionStaticController.java
  26. 7 6
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/device/DeviceHealthIndexController.java
  27. 127 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/device/DeviceManufacturerController.java
  28. 115 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/device/IotDeviceController.java
  29. 2 4
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/device/WlyyDeviceController.java
  30. 46 2
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/sign/SignFamilyController.java
  31. 10 1
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/device/entity/DeviceHealthIndexExportVO.java
  32. 88 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/device/entity/DeviceManufacturer.java
  33. 28 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/device/repository/DeviceManufacturerDao.java
  34. 11 1
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/Patient.java
  35. 1 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/filter/SessionOutTimeFilter.java
  36. 174 5
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/device/DeviceHealthIndexService.java
  37. 81 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/device/DeviceManufacturerService.java
  38. 15 15
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/device/WlyyDeviceService.java
  39. 9 0
      patient-co-manage/wlyy-manage/src/main/resources/application.yml
  40. 13 11
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/deviceHealthIndex_list_js.jsp
  41. 58 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/deviceManufacturer_list.jsp
  42. 209 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/deviceManufacturer_list_js.jsp
  43. 71 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/deviceManufacturer_modify.jsp
  44. 137 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/deviceManufacturer_modify_js.jsp
  45. 0 2
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/device_create.jsp
  46. 45 59
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/device_create_js.jsp
  47. 3 3
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/device_list_js.jsp
  48. 33 19
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/device_modify_js.jsp
  49. 1 1
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/hos/hospital_list_js.jsp
  50. 3 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/main.jsp
  51. 12 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/prescription/prescription_list_js.jsp
  52. 51 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/prescription/prescription_status.jsp
  53. 67 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/prescription/prescription_status_js.jsp
  54. 33 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/sign/patient_reservation_list.jsp
  55. 87 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/sign/patient_reservation_list_js.jsp
  56. 1 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/sign/sign_family_list_js.jsp
  57. 1 0
      patient-co-manage/wlyy-manage/src/main/webapp/static/js/menu.js
  58. 11 0
      patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/model/PatientHealthIndex.java
  59. 30 6
      patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/service/DeviceService.java
  60. 1 1
      patient-co-service/wlyy_service/src/main/resources/application.yml
  61. 17 2
      patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/task/PushMsgTask.java
  62. 4 1
      patient-co/patient-co-doctor-assistant/src/main/resources/application-dev.yml
  63. 4 0
      patient-co/patient-co-doctor-assistant/src/main/resources/application-devtest.yml
  64. 4 0
      patient-co/patient-co-doctor-assistant/src/main/resources/application-local.yml
  65. 4 0
      patient-co/patient-co-doctor-assistant/src/main/resources/application-localtest.yml
  66. 4 0
      patient-co/patient-co-doctor-assistant/src/main/resources/application-prod.yml
  67. 4 0
      patient-co/patient-co-doctor-assistant/src/main/resources/application-test.yml
  68. 48 17
      patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/compute/ComputeHelper.java
  69. 52 0
      patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/DeviceTypeConvert.java
  70. 66 0
      patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/UseDeviceTypeConvert.java
  71. 96 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/activemq/DeviceMeasureListener.java
  72. 17 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/activemq/StartListener.java
  73. 19 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/event/ApplicationEvent.java
  74. 34 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/PatientMedicareNumberJob.java
  75. 74 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/consult/ParticipantsCleanJob.java
  76. 3 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/organization/HospitalDao.java
  77. 1 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/patient/PatientDao.java
  78. 7 6
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/patient/SignFamilyDao.java
  79. 4 2
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/sign/PatientRemindService.java
  80. 49 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/third/jw/JwPatientMedicareNumberService.java
  81. 20 0
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/task/PushMsgTask.java
  82. 36 5
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/quota/JobController.java
  83. 3 1
      patient-co/patient-co-wlyy-job/src/main/resources/application-dev.yml
  84. 4 1
      patient-co/patient-co-wlyy-job/src/main/resources/application-devtest.yml
  85. 3 1
      patient-co/patient-co-wlyy-job/src/main/resources/application-prod.yml
  86. 2 0
      patient-co/patient-co-wlyy-job/src/main/resources/application-test.yml
  87. 6 0
      patient-co/patient-co-wlyy-job/src/main/resources/system.properties
  88. 1 1
      patient-co/patient-co-wlyy/pom.xml
  89. 15 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/health/repository/DeviceDetailDao.java
  90. 6 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/health/repository/DevicePatientHealthIndexDao.java
  91. 0 29
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/deviece/WlyyDeviceDetailDao.java
  92. 4 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/DoctorAdminTeamMemberDao.java
  93. 19 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/message/MessageDao.java
  94. 12 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/DeviceWxMessageDao.java
  95. 6 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/PatientDao.java
  96. 17 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/PatientDeviceLogDao.java
  97. 3 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/SignFamilyDao.java
  98. 2 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/prescription/PrescriptionDao.java
  99. 38 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/template/DoctorGuidanceTempLabelDao.java
  100. 0 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/template/DoctorTeamGuidanceTemplateDao.java

BIN
classes/production/JkEdu/com/yihu/jk/api/ArticleApi.class


BIN
classes/production/JkEdu/com/yihu/jk/dao/ArticleDao.class


+ 100 - 17
common/common-entity/src/main/java/com/yihu/device/entity/DeviceDetail.java

@ -5,30 +5,41 @@ import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by ysj on 2018/01/10.
 * 设备表
 */
@Entity
@Table(name = "wlyy_devices")
public class DeviceDetail extends IdEntity{
    private String deviceName;
    private String deviceModel;
    private String deviceCode;
    private String manufacturer;
    private String applyDate;;
    private String orgName;
    private String linkman;
    private String tel;
    private String serverIp;
    private String manufacturerCode;
    private String address;
    private String representative;
    private String applicantName;
    private String applicantIdentity;
    private String applicantTel;
    private String applicantMail;
    private String deviceName;//设备名称
    private String deviceModel;//型号
    private String deviceCode;//设备唯一标识
    private String manufacturer;//厂家名称
    private String applyDate;//申请日期
    private String orgName;//(居民)机构名称
    private String linkman;//联系人(居民)
    private String tel;//联系人(居民)电话
    private String serverIp;//服务IP地址
    private String manufacturerCode;//厂商代码threeNod:三诺 urion:优瑞恩 bioland:爱奥乐 comvee:康为
    private String address;//厂家地址
    private String representative;//法人代表
    private String applicantName;//申请注册人(发放人/医生)
    private String applicantIdentity;//申请人(发放人/医生)身份证号
    private String applicantTel;//申请人(发放人/医生)手机
    private String applicantMail;//申请人(发放人/医生)邮箱
    //1.4.8版本新增字段
    private String sim;//SIM卡
    private String manufacturerId;//厂商表的业务关联code
    private Integer isGrant;//是否发放(0否1是)
    private String grantAdminTeam;//发放的患者所在团队
    private String grantOrgCode;//发放所在机构
    private Integer isBinding;//是否绑定(0否 1 绑定单端口 2 绑定双端口)
    private String bindingCount;//绑定次数({"1":"0", "2":"0"})
    private Date grantTime;//发放时间
    /** default constructor */
    public DeviceDetail() {
@ -199,4 +210,76 @@ public class DeviceDetail extends IdEntity{
    public void setApplicantMail(String applicantMail) {
        this.applicantMail = applicantMail;
    }
    @Column(name = "manufacturer_id")
    public String getManufacturerId() {
        return manufacturerId;
    }
    public void setManufacturerId(String manufacturerId) {
        this.manufacturerId = manufacturerId;
    }
    @Column(name = "sim")
    public String getSim() {
        return sim;
    }
    public void setSim(String sim) {
        this.sim = sim;
    }
    @Column(name = "is_grant")
    public Integer getIsGrant() {
        return isGrant;
    }
    public void setIsGrant(Integer grant) {
        isGrant = grant;
    }
    @Column(name = "grant_admin_team")
    public String getGrantAdminTeam() {
        return grantAdminTeam;
    }
    public void setGrantAdminTeam(String grantAdminTeam) {
        this.grantAdminTeam = grantAdminTeam;
    }
    @Column(name = "grant_org_code")
    public String getGrantOrgCode() {
        return grantOrgCode;
    }
    public void setGrantOrgCode(String grantOrgCode) {
        this.grantOrgCode = grantOrgCode;
    }
    @Column(name = "is_binding")
    public Integer getIsBinding() {
        return isBinding;
    }
    public void setIsBinding(Integer isBinding) {
        this.isBinding = isBinding;
    }
    @Column(name = "binding_count")
    public String getBindingCount() {
        return bindingCount;
    }
    public void setBindingCount(String bindingCount) {
        this.bindingCount = bindingCount;
    }
    @Column(name = "grant_time")
    public Date getGrantTime() {
        return grantTime;
    }
    public void setGrantTime(Date grantTime) {
        this.grantTime = grantTime;
    }
}

+ 87 - 0
common/common-entity/src/main/java/com/yihu/device/entity/DeviceManufacturer.java

@ -0,0 +1,87 @@
package com.yihu.device.entity;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by 刘文彬 on 2018/6/5.
 * 设备厂商表
 */
@Entity
@Table(name = "wlyy_manufacturer")
public class DeviceManufacturer extends IdEntity {
    private String code;//关联标识
    private String manufacturerCode;//厂商代码
    private String manufacturerName;//厂商名称
    private String address;//厂商地址
    private String representative;//法人代表
    private Date czrq;//创建时间
    private Integer del;//逻辑删除(1删除 0保留)
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "manufacturer_code")
    public String getManufacturerCode() {
        return manufacturerCode;
    }
    public void setManufacturerCode(String manufacturerCode) {
        this.manufacturerCode = manufacturerCode;
    }
    @Column(name = "manufacturer_name")
    public String getManufacturerName() {
        return manufacturerName;
    }
    public void setManufacturerName(String manufacturerName) {
        this.manufacturerName = manufacturerName;
    }
    @Column(name = "address")
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Column(name = "representative")
    public String getRepresentative() {
        return representative;
    }
    public void setRepresentative(String representative) {
        this.representative = representative;
    }
    @Column(name = "czrq")
    public Date getCzrq() {
        return czrq;
    }
    public void setCzrq(Date czrq) {
        this.czrq = czrq;
    }
    @Column(name = "del")
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
}

+ 10 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/device/DeviceDetail.java

@ -34,6 +34,7 @@ public class DeviceDetail extends IdEntity{
    private String grantHospital;
    private String bindingCount;
    private Date grantTime;
    private String deviceActivityType;
    /** default constructor */
@ -250,4 +251,13 @@ public class DeviceDetail extends IdEntity{
    public void setGrantTime(Date grantTime) {
        this.grantTime = grantTime;
    }
    @Column(name = "device_activity_type")
    public String getDeviceActivityType() {
        return deviceActivityType;
    }
    public void setDeviceActivityType(String deviceActivityType) {
        this.deviceActivityType = deviceActivityType;
    }
}

+ 84 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/device/DeviceWxMessage.java

@ -0,0 +1,84 @@
package com.yihu.wlyy.entity.device;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by zd on 2018/01/10.
 */
@Entity
@Table(name = "wlyy_device_wx_message")
public class DeviceWxMessage extends IdEntity{
    private String patient;
    private String deviceName;
    private String deviceSn;
    //设备类型(1血糖仪 2血压计)
    private String categoryCode;
    private Date czrq;
    /** default constructor */
    public DeviceWxMessage() {
    }
    /** full constructor */
    public DeviceWxMessage(String patient, String deviceName, String deviceSn, String categoryCode, Date czrq) {
        this.patient = patient;
        this.deviceName = deviceName;
        this.deviceSn = deviceSn;
        this.categoryCode = categoryCode;
        this.czrq = czrq;
    }
    @Column(name = "device_name")
    public String getDeviceName() {
        return deviceName;
    }
    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }
    @Column(name = "device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @Column(name = "category_code")
    public String getCategoryCode() {
        return categoryCode;
    }
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    @Column(name = "czrq")
    public Date getCzrq() {
        return czrq;
    }
    public void setCzrq(Date czrq) {
        this.czrq = czrq;
    }
}

+ 38 - 1
common/common-entity/src/main/java/com/yihu/wlyy/entity/device/PatientDevice.java

@ -31,7 +31,12 @@ public class PatientDevice extends IdEntity {
    private String userIdcard;
    // 操作医生代码
    private String doctor;
    private String agent;//代绑人代码(家人)
    //操作医生姓名
    private String doctorName;
    //代绑人代码(家人)
    private String agent;
    //代绑人姓名
    private String agentName;
    // 操作时间
    private Date czrq;
@ -42,6 +47,9 @@ public class PatientDevice extends IdEntity {
    //设备活动类型
    private String deviceActivityType;
    //上传的协议图片地址
    private String agreementPhoto;
    //========================非表字段======================
    //患者居住地址
    private String address;
@ -166,6 +174,15 @@ public class PatientDevice extends IdEntity {
        this.doctor = doctor;
    }
    @Column(name = "doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Column(name = "agent")
    public String getAgent() {
        return agent;
@ -175,6 +192,15 @@ public class PatientDevice extends IdEntity {
        this.agent = agent;
    }
    @Column(name = "agent_name")
    public String getAgentName() {
        return agentName;
    }
    public void setAgentName(String agentName) {
        this.agentName = agentName;
    }
    @Column(name = "del_user")
    public String getDelUser() {
        return delUser;
@ -202,6 +228,17 @@ public class PatientDevice extends IdEntity {
        this.deviceActivityType = deviceActivityType;
    }
    @Column(name = "agreement_photo")
    public String getAgreementPhoto() {
        return agreementPhoto;
    }
    public void setAgreementPhoto(String agreementPhoto) {
        this.agreementPhoto = agreementPhoto;
    }
    @Transient
    public String getAddress() {
        return address;

+ 153 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/device/PatientDeviceLog.java

@ -0,0 +1,153 @@
package com.yihu.wlyy.entity.device;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
@Entity
@Table(name = "wlyy_patient_device_log")
public class PatientDeviceLog extends IdEntity {
    //dm_device表主键
    private long deviceId;
    //患者id
    private String patient;
    //设备sn码
    private String deviceSn;
    //设备名称
    private String deviceName;
    // 设备类型标识
    private String categoryCode;
    //操作人code
    private String operator;
    //操作人姓名
    private String operatorName;
    // 医生或者患者(1医生 2患者)
    private Integer role;
    //操作动作(1绑定 2解绑)
    private Integer operateCode;
    // 创建时间
    private Date createTime;
    //是否有效(0无效1有效)
    private int isDel;
    //上传的协议图片地址
    private String agreementPhoto;
    @Column(name = "device_id")
    public long getDeviceId() {
        return deviceId;
    }
    public void setDeviceId(long deviceId) {
        this.deviceId = deviceId;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @Column(name = "device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name = "device_name")
    public String getDeviceName() {
        return deviceName;
    }
    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }
    @Column(name = "category_code")
    public String getCategoryCode() {
        return categoryCode;
    }
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    @Column(name = "operator")
    public String getOperator() {
        return operator;
    }
    public void setOperator(String operator) {
        this.operator = operator;
    }
    @Column(name = "operator_name")
    public String getOperatorName() {
        return operatorName;
    }
    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }
    @Column(name = "role")
    public Integer getRole() {
        return role;
    }
    public void setRole(Integer role) {
        this.role = role;
    }
    @Column(name = "operate_code")
    public Integer getOperateCode() {
        return operateCode;
    }
    public void setOperateCode(Integer operateCode) {
        this.operateCode = operateCode;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "is_del")
    public int getIsDel() {
        return isDel;
    }
    public void setIsDel(int isDel) {
        this.isDel = isDel;
    }
    @Column(name = "agreement_photo")
    public String getAgreementPhoto() {
        return agreementPhoto;
    }
    public void setAgreementPhoto(String agreementPhoto) {
        this.agreementPhoto = agreementPhoto;
    }
    public PatientDeviceLog() {
    }
}

+ 105 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/device/vo/DeviceWxMessageDTO.java

@ -0,0 +1,105 @@
package com.yihu.wlyy.entity.device.vo;
import java.util.Date;
/**
 * Created by zd on 2018/06/13.
 */
public class DeviceWxMessageDTO{
    private long id;
    //患者openId
    private String openId;
    //患者code
    private String patient;
    //患者名字
    private String patientName;
    //医生code
    private String doctor;
    //医生名称
    private String doctorName;
    //1血糖仪 2血压计
    private int deviceType;
    //创建时间
    private String czrq;
    /** default constructor */
    public DeviceWxMessageDTO() {
    }
    /** full constructor */
    public DeviceWxMessageDTO(long id, String openId, String patient, String patientName, String doctor, String doctorName, int deviceType, String czrq) {
        this.id = id;
        this.openId = openId;
        this.patient = patient;
        this.patientName = patientName;
        this.doctor = doctor;
        this.doctorName = doctorName;
        this.deviceType = deviceType;
        this.czrq = czrq;
    }
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getOpenId() {
        return openId;
    }
    public void setOpenId(String openId) {
        this.openId = openId;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public int getDeviceType() {
        return deviceType;
    }
    public void setDeviceType(int deviceType) {
        this.deviceType = deviceType;
    }
    public String getCzrq() {
        return czrq;
    }
    public void setCzrq(String czrq) {
        this.czrq = czrq;
    }
}

+ 1 - 1
common/common-entity/src/main/java/com/yihu/wlyy/entity/doctor/team/sign/SignPatientLabel.java

@ -16,7 +16,7 @@ public class SignPatientLabel extends IdEntity {
    private String labelCode;
    // 标签名称
    private String labelName;
    // 标签类型 1:服务类型 2:健康情况 3:疾病类型 4:自定义
    // 标签类型 1:服务类型 2:健康情况 3:疾病类型 4:自定义,5.周月标签 6.老年人标识 7.专病类型,8.健康情况
    private String labelType;
    // 是否系统标签
    private Integer isSystem;

File diff suppressed because it is too large
+ 13 - 2
common/common-entity/src/main/java/com/yihu/wlyy/entity/message/Message.java


+ 10 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/patient/Patient.java

@ -104,6 +104,8 @@ public class Patient extends IdEntity implements Serializable {
    private Integer standardStatus;
    //医疗保险号
    private String medicareNumber;
    //微信开发平台唯一标识
    private String unionid;
    public String getPrincipalCode() {
        return principalCode;
@ -467,4 +469,12 @@ public class Patient extends IdEntity implements Serializable {
    public void setMedicareNumber(String medicareNumber) {
        this.medicareNumber = medicareNumber;
    }
    public String getUnionid() {
        return unionid;
    }
    public void setUnionid(String unionid) {
        this.unionid = unionid;
    }
}

+ 87 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/template/DoctorGuidanceTempLabel.java

@ -0,0 +1,87 @@
package com.yihu.wlyy.entity.template;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by 刘文彬 on 2018/5/17.
 */
@Entity
@Table(name = "wlyy_doctor_guidance_temp_label")
public class DoctorGuidanceTempLabel extends IdEntity {
    private String code;//业务编码
    private String name;//标签名称
    private Date createTime;// 创建时间
    private String doctorCode;//创建人code
    private Integer del;//作废标识1、正常 ,0、作废
    private Integer teamId;//医生团队Id
    @Column(name = "code", length = 50)
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "name", length = 100)
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "doctor_code", length = 50)
    public String getDoctorCode() {
        return doctorCode;
    }
    public void setDoctorCode(String doctorCode) {
        this.doctorCode = doctorCode;
    }
    @Column(name = "del", length = 2)
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    @Column(name = "team_id", length = 11)
    public Integer getTeamId() {
        return teamId;
    }
    public void setTeamId(Integer teamId) {
        this.teamId = teamId;
    }
    public DoctorGuidanceTempLabel(String code, String name) {
        this.code = code;
        this.name = name;
    }
    public DoctorGuidanceTempLabel() {
    }
}

+ 19 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/template/DoctorTeamGuidanceTemplate.java

@ -33,6 +33,9 @@ public class DoctorTeamGuidanceTemplate extends IdEntity {
    private Date czrq;
    //        团队内的团队模板状态  0删除  1正常
    private int del;
    private String labelCode;//指导标签code
    private String labelName;//指导标签name
    public String getTeamName() {
        return teamName;
@ -109,4 +112,20 @@ public class DoctorTeamGuidanceTemplate extends IdEntity {
    public void setDel(int del) {
        this.del = del;
    }
    public String getLabelCode() {
        return labelCode;
    }
    public void setLabelCode(String labelCode) {
        this.labelCode = labelCode;
    }
    public String getLabelName() {
        return labelName;
    }
    public void setLabelName(String labelName) {
        this.labelName = labelName;
    }
}

BIN
edu-article/JkEdu/WebRoot/WEB-INF/classes/com/yihu/jk/api/ArticleApi.class


BIN
edu-article/JkEdu/WebRoot/WEB-INF/classes/com/yihu/jk/api/ArticleApiTest.class


BIN
edu-article/JkEdu/WebRoot/WEB-INF/classes/com/yihu/jk/dao/ArticleDao.class


+ 7 - 1
edu-article/JkEdu/src/com/yihu/jk/api/ArticleApi.java

@ -228,6 +228,9 @@ public class ArticleApi {
					jsonObj.put("authenticationId", StringUtil.getJSONValue(vbo.getAuthenticationId()));
					jsonObj.put("articleType", StringUtil.getJSONValue(vbo.getArticleType()));
					jsonObj.put("isAuthentication", StringUtil.getJSONValue(vbo.getIsAuthentication()));
					jsonObj.put("roleType", StringUtil.getJSONValue(vbo.getRoleType()));
					jsonObj.put("operatorRoleCode", StringUtil.getJSONValue(vbo.getOperatorRoleCode()));
					jsonObj.put("operatorRoleLevel", StringUtil.getJSONValue(vbo.getOperatorRoleLevel()));
					jsonObj.put("articleCover", StringUtil.getJSONValue(vbo.getArticleCover()));
					jsonObj.put("browseNumber", StringUtil.getJSONValue(vbo.getBrowseNumber()));
					jsonObj.put("pointNumber", StringUtil.getJSONValue(vbo.getPointNumber()));
@ -553,6 +556,7 @@ public class ArticleApi {
		Timestamp nowTime = DateOper.getNowDateTime();//插入和更新时间一样
		orgArticleVo.setUpdateTime(nowTime);
		Integer isAuthentication = StringUtil.isEmpty(json.get("isAuthentication")) ? null : json.getInt("isAuthentication");//是否认证
		if(StringUtil.isEmpty(articleId)) {
			String userCode = StringUtil.isEmpty(json.get("userCode")) ? null : json.getString("userCode");
			String orgName = StringUtil.isEmpty(json.get("orgName")) ? null : json.getString("orgName");//组织名称
@ -564,7 +568,6 @@ public class ArticleApi {
			String articleType = StringUtil.isEmpty(json.get("articleType")) ? null : json.getString("articleType");//类型
			String operatorRoleCode = StringUtil.isEmpty(json.get("operatorRoleCode")) ? null : json.getString("operatorRoleCode");//操作人角色code
			String opertorRoleLevel = StringUtil.isEmpty(json.get("opertorRoleLevel")) ? null : json.getString("opertorRoleLevel");//操作人角色级别
			Integer isAuthentication = StringUtil.isEmpty(json.get("isAuthentication")) ? null : json.getInt("isAuthentication");//是否认证
			String authentication = StringUtil.isEmpty(json.get("authentication")) ? null : json.getString("authentication");//认证单位
			String authenticationId = StringUtil.isEmpty(json.get("authenticationId")) ? null : json.getString("authenticationId");//认证单位ID
			articleId = StringUtil.createUUID();
@ -603,9 +606,12 @@ public class ArticleApi {
//			statistic.setArticleId(articleId);
//			dao.insertArticleInitStatistic(statistic);
			dao.insertArticleStatistic(articleId);
			System.out.println("saveArticle===============");
			return dao.saveArticle(orgArticleVo).toString();
		}else{
			orgArticleVo.setIsAuthentication(isAuthentication);
			orgArticleVo.setArticleId(articleId);
			System.out.println("updateArticle==============="+orgArticleVo);
			return dao.updateArticle(orgArticleVo).toString();
		}
	}

+ 15 - 1
edu-article/JkEdu/src/com/yihu/jk/api/ArticleApiTest.java

@ -12,6 +12,9 @@ import com.coreframework.util.AppConfig;
import com.yihu.jk.utils.SecretUtil;
import com.yihu.wsgw.api.InterfaceMessage;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class ArticleApiTest {
	public static void main(String[] args) throws JSONException {
		// TODO Auto-generated method stub
@ -34,8 +37,9 @@ public class ArticleApiTest {
		// System.out.println(api.getCollectionArticalList(im));
		// System.out.println(api.getArticalById(im));
        saveBehavior();
//        saveBehavior();
//		System.out.printf("350200".substring(0,3));
		aa();
	}
	public static void initDB() {
@ -135,4 +139,14 @@ public class ArticleApiTest {
		}
	}
	public static void aa() {
		SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
		Calendar c = Calendar.getInstance();
		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
		if (day_of_week == 0)
			day_of_week = 7;
		c.add(Calendar.DATE, -day_of_week + 1);
		System.out.println(df2.format(c.getTime()));
	}
}

+ 7 - 1
edu-article/JkEdu/src/com/yihu/jk/dao/ArticleDao.java

@ -460,6 +460,7 @@ public class ArticleDao {
			DB.me().insert(MyDatabaseEnum.JkEduDB, sql);
			json.put("Code", 10000);
			json.put("Message", "添加成功");
			json.put("Data", orgArticleVo.getArticleId());
			return json;
		} catch (Exception e) {
			return new JSONObject(StringUtil.jsonResult(-1, Utils.getException(e)));
@ -509,7 +510,7 @@ public class ArticleDao {
		}
		if(!StringUtils.isEmpty(vo.getUserScope())){
			behaviorParam += ",UserScope="+vo.getUserScope();
			sql.addVar("@behaviorParam"," UserScope="+vo.getUserScope());
//			sql.addVar("@behaviorParam"," UserScope="+vo.getUserScope());
		}
		if(!StringUtils.isEmpty(vo.getArticleContent())){
			behaviorParam += ",ArticleContent='"+vo.getArticleContent()+"'";
@ -519,6 +520,9 @@ public class ArticleDao {
			behaviorParam += ",UpdateTime='"+vo.getUpdateTime()+"'";
//			sql.addVar("@behaviorParam"," UpdateTime='"+vo.getUpdateTime()+"'");
		}
		if(!StringUtils.isEmpty(vo.getIsAuthentication())){
			behaviorParam += ",IsAuthentication="+vo.getIsAuthentication();
		}
		if(!StringUtils.isEmpty(behaviorParam)){
			sql.addVar("@behaviorParam",behaviorParam.substring(1));
		}
@ -528,6 +532,8 @@ public class ArticleDao {
			JSONObject json = new JSONObject();
			json.put("Code", 10000);
			json.put("Message", "更新成功");
			json.put("Data", vo.getArticleId());
			System.out.println("json:----->"+json);
			return json;
		} catch (JSONException | SQLException e) {
			// TODO Auto-generated catch block

+ 0 - 0
error


+ 2 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/config/SpringSecurityConfig.java

@ -29,6 +29,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
                "/common/**",
                "/login/**",
                "/yueren/**",
                "/svr-iot/**",
                "/customer/**",
                "/third/**",
                "/admin/hos/doctor/importFromExcel",
@ -62,6 +63,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
                .accessDecisionManager(accessDecisionManager())
                .expressionHandler(webSecurityExpressionHandler())
                .antMatchers("/yueren/**").permitAll()
                .antMatchers("/svr-iot/device/**").permitAll()//物联网平台没有做登录(这里添加免登录验证)
//                .antMatchers("/admin/main").permitAll()
//                .antMatchers("/login/**").permitAll()
//                .antMatchers("/admin/**").authenticated()

+ 1 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/BaseController.java

@ -630,7 +630,7 @@ public class BaseController {
            // 总条数
            map.put("totalCount", total);
            // 总页数
            map.put("totalPage", 1);
            map.put("totalPage", Math.ceil((double)total/(rows)));
            // 结果集
            map.put("detailModelList", list);
            return mapper.writeValueAsString(map);

+ 1 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/common/account/LoginController.java

@ -111,7 +111,7 @@ public class LoginController extends BaseController {
            req.getSession().setAttribute("token", featureUrlList);
            //根据用户类型,获取跳转的url
            String url = userService.getValueByDictId(curUser.getType() + "");
//            resp.sendRedirect(req.getContextPath()+"/admin/main");
            resp.sendRedirect(req.getContextPath()+"/admin/main");
            resp.sendRedirect(url);
        }
    }

+ 40 - 2
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/datastatic/PrescriptionStaticController.java

@ -1,19 +1,24 @@
package com.yihu.wlyy.controller.manager.datastatic;
import com.alibaba.fastjson.JSONObject;
import com.yihu.wlyy.controller.BaseController;
import com.yihu.wlyy.entity.prescription.PrescriptionVO;
import com.yihu.wlyy.service.prescription.PrescriptionService;
import io.swagger.annotations.ApiOperation;
import com.yihu.wlyy.util.HttpClientUtil;
import io.swagger.annotations.ApiParam;
import jxl.Workbook;
import jxl.write.*;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
/**
@ -24,9 +29,13 @@ import java.util.List;
@Controller
@RequestMapping(value="/admin/static/prescription")
public class PrescriptionStaticController extends BaseController {
	
	@Value("${reservation.zyurl}")
	private String baseUrl;
	@Autowired
	private PrescriptionService prescriptionService;
	@Autowired
	private HttpClientUtil httpClientUtil;
	
	//长处方统计管理*******************************
	@RequestMapping(value = "initial", method = RequestMethod.GET)
@ -170,4 +179,33 @@ public class PrescriptionStaticController extends BaseController {
		}
		ws.addCell(label);
	}
	//获取长处方状态
	@RequestMapping(value = "getDataStatus/{prescription_code}",method = RequestMethod.GET)
	public String DataStatus(@PathVariable(value = "prescription_code") String prescription_code){
		return "prescription/prescription_status";
	}
	@RequestMapping(value = "getDataStatus")
	@ResponseBody
	public String getDataStatus(
			@ApiParam(name = "prescriptionCode", value = "长处方单号")
			@RequestParam(value = "prescriptionCode") String prescriptionCode){
		try {
			String url = baseUrl + "/third/prescription/getDataStatus";
			List<NameValuePair> params = new ArrayList<>();
			params.add(new BasicNameValuePair("prescriptionCode", prescriptionCode));
			params.add(new BasicNameValuePair("type", "2"));
			String response = httpClientUtil.post(url, params, "UTF-8");
//            String response = "{\"status\":200,\"msg\":\"查询成功!\",\"data\":\"{\\\"CODE\\\":\\\"1\\\",\\\"returnData\\\":[[{\\\"RECIPE_NO\\\":43861978,\\\"RECIPE_STATUS_CODE\\\":5,\\\"RECIPE_STATUS_NAME\\\":\\\"已执行\\\",\\\"CHARGE_STATUS_CODE\\\":5,\\\"CHARGE_STATUS_NAME\\\":\\\"已扣费\\\"}]],\\\"byRefParaData\\\":[]}\"}";
            JSONObject res = JSONObject.parseObject(response);
			//从JSONObject对象里取出key是data的对象
			JSONObject data = res.getJSONObject("data").getJSONArray("returnData").getJSONArray(0).getJSONObject(0);
			return write(200,"success","data",data);
		}catch (Exception e){
			error(e);
			return error(-1,"操作失败!");
		}
	}
}

+ 7 - 6
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/device/DeviceHealthIndexController.java

@ -1,8 +1,6 @@
package com.yihu.wlyy.controller.manager.device;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.controller.BaseController;
import com.yihu.wlyy.device.entity.DeviceHealthIndex;
import com.yihu.wlyy.device.entity.DeviceHealthIndexExportVO;
import com.yihu.wlyy.device.entity.DeviceHealthIndexVO;
import com.yihu.wlyy.service.manager.device.DeviceHealthIndexService;
@ -11,15 +9,16 @@ import jxl.write.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
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.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by Administrator on 2016/12/5.
@ -112,7 +111,7 @@ public class DeviceHealthIndexController extends BaseController{
    
    public void addHeader(WritableSheet ws) throws WriteException {
        
        String[] header = {"居民姓名","手机号","身份证","设备码","设备名称","签约医生", "地址"};
        String[] header = {"居民姓名","手机号","身份证","设备码","设备名称","签约医生", "地址", "记录时间", "上传次数"};
        int i = 0;
        for (String h : header) {
            addCell(ws, 0, i, h);//表名,行,列,header
@ -144,6 +143,8 @@ public class DeviceHealthIndexController extends BaseController{
                addCell(ws, i, 4, m.getDevice_name(),"");
                addCell(ws, i, 5, m.getDoctor_name(),"");
                addCell(ws, i, 6, m.getAddress(),"");
                addCell(ws, i, 7, m.getRecord_date(),"");
                addCell(ws, i, 8, m.getAmount(),"");
                i++;
            }
            wwb.write();

+ 127 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/device/DeviceManufacturerController.java

@ -0,0 +1,127 @@
package com.yihu.wlyy.controller.manager.device;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.controller.BaseController;
import com.yihu.wlyy.device.entity.DeviceManufacturer;
import com.yihu.wlyy.service.manager.device.DeviceManufacturerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
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.ResponseBody;
import java.util.List;
/**
 * Created by humingfen on 2018/6/6.
 * 设备管理
 */
@Controller
@RequestMapping("admin/manufacturer")
public class DeviceManufacturerController extends BaseController {
    @Autowired
    private DeviceManufacturerService deviceManufacturerService;
    @Autowired
    private ObjectMapper objectMapper;
    @RequestMapping(value = "initial", method = RequestMethod.GET)
    public String initListPage(){
        return "device/deviceManufacturer_list";
    }
    @RequestMapping(value = "infoInit")
    public String initInfoPage(@RequestParam(value = "id") Integer id,String type){
        request.setAttribute("id",id);
        request.setAttribute("type",type);
        return "device/deviceManufacturer_modify";
    }
    @RequestMapping(value ="list",method = RequestMethod.POST)
    @ResponseBody
    public String searchList(
            @RequestParam(value = "manufacturerName",required = false) String manufacturerName,
            @RequestParam(value = "manufacturerCode",required = false) String manufacturerCode,
            @RequestParam(value = "address",required = false) String address,
            @RequestParam(value = "page",required = false) Integer page,
            @RequestParam(value = "rows",required = false) Integer pageSize){
        try{
            Page<DeviceManufacturer> deviceManufacturer = deviceManufacturerService.searchList(manufacturerName,manufacturerCode, address, page, pageSize);
            return write(200,"操作成功",page,pageSize,deviceManufacturer);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    @RequestMapping(value = "findById", method = RequestMethod.POST)
    @ResponseBody
    public String getManufacturer(@RequestParam(value = "id") Long id){
        try {
            DeviceManufacturer manufacturer = deviceManufacturerService.findById(id);
            return  write(200,"操作成功","data",manufacturer);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    @RequestMapping(value = "create")
    @ResponseBody
    public String createManufacturer(String jsonData, String code){
        try{
            DeviceManufacturer manufacturer = objectMapper.readValue(jsonData, DeviceManufacturer.class);
            // 判断是否存在code,存在直接
            Boolean b = deviceManufacturerService.existCode(code);
            if(b){
                return error(-1,"厂商标识已存在");
            }
            deviceManufacturerService.createManufacturer(manufacturer);
            return write(200,"操作成功");
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败");
        }
    }
    @RequestMapping(value = "update")
    @ResponseBody
    public String updateManufacturer(String jsonData){
        try{
            DeviceManufacturer manufacturer = objectMapper.readValue(jsonData, DeviceManufacturer.class);
            deviceManufacturerService.updateManufacturer(manufacturer);
            return write(200,"操作成功");
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败");
        }
    }
    @RequestMapping(value = "delete")
    @ResponseBody
    public String deleteDevice(Long id){
        try{
            deviceManufacturerService.deleteManufacturer(id);
            return write(200,"操作成功");
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败");
        }
    }
    @RequestMapping(value = "findAll")
    @ResponseBody
    public String findAll(){
        try{
            List<DeviceManufacturer> manufacturer = deviceManufacturerService.findAll();
            return write(200,"操作成功","data",manufacturer);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败");
        }
    }
}

+ 115 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/device/IotDeviceController.java

@ -0,0 +1,115 @@
package com.yihu.wlyy.controller.manager.device;
import com.yihu.wlyy.controller.BaseController;
import com.yihu.wlyy.device.entity.DeviceHealthIndexVO;
import com.yihu.wlyy.device.entity.WlyyDevice;
import com.yihu.wlyy.device.entity.WlyyPatientDeviceVO;
import com.yihu.wlyy.service.doctor.DoctorService;
import com.yihu.wlyy.service.manager.device.DeviceHealthIndexService;
import com.yihu.wlyy.service.manager.device.WlyyDeviceService;
import com.yihu.wlyy.service.manager.device.WlyyPatientDeviceService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 提供物联网查询
 * @author yeshijie on 2018/5/24.
 */
@RestController
@RequestMapping(value = "/svr-iot/device/",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class IotDeviceController extends BaseController {
    @Autowired
    private WlyyDeviceService deviceService;
    @Autowired
    private DeviceHealthIndexService healthIndexService;
    @Autowired
    private WlyyPatientDeviceService patientDeviceService;
    @Autowired
    private DoctorService doctorService;
    //列表查询
    @RequestMapping(value="deviceList",method = RequestMethod.GET)
    @ApiOperation("设备管理")
    public String searchList(
            @RequestParam(value = "deviceName",required = false)String deviceName,
            @RequestParam(value = "deviceCode",required = false) String deviceCode,
            @RequestParam(value = "orgName",required = false)String orgName,
            @RequestParam(value = "linkman",required = false) String linkman,
            @RequestParam(value = "page",required = false)Integer page,
            @RequestParam(value = "pageSize",required = false)Integer pageSize){
        try {
            Page<WlyyDevice> wlyyDevices = deviceService.searchDeviceList(deviceName,deviceCode,orgName,linkman, page, pageSize);
            return write(200,"操作成功",page,pageSize,wlyyDevices);
        }catch (Exception ex){
            error(ex);
            return error(-1, "操作失败!");
        }
    }
    @RequestMapping(value = "findDeviceById",method = RequestMethod.GET)
    @ApiOperation("根据设备id查找设备管理")
    public String getDevice(@RequestParam(value = "id") Integer id){
        try {
            WlyyDevice device = deviceService.findById(id);
            return  write(200,"操作成功","data",device);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    @RequestMapping(value ="healthlist",method = RequestMethod.GET)
    @ApiOperation("体征数据查询")
    public String searchList(
            @RequestParam(value = "deviceSn",required = false) String deviceSn,
            @RequestParam(value = "date",required = false) String date,
            @RequestParam(value = "idcard",required = false) String idcard,
            @RequestParam(value = "userName",required = false) String userName,
            @RequestParam(value = "indexType",required = false) String indexType,
            @RequestParam(value = "indexTypeMin1",required = false) Double indexTypeMin1,
            @RequestParam(value = "indexTypeMax1",required = false) Double indexTypeMax1,
            @RequestParam(value = "indexTypeMin2",required = false) Double indexTypeMin2,
            @RequestParam(value = "indexTypeMax2",required = false) Double indexTypeMax2,
            @RequestParam(value = "doctorName",required = false) String doctorName,
            @RequestParam(value = "page",required = false) Integer page,
            @RequestParam(value = "pageSize",required = false) Integer pageSize){
        try{
            Page<DeviceHealthIndexVO> deviceHealthIndexes = healthIndexService.searchList2(deviceSn,date, idcard, userName, indexType,page, pageSize,indexTypeMin1, indexTypeMax1, indexTypeMin2,indexTypeMax2,doctorName);
            return write(200,"操作成功",page,pageSize,deviceHealthIndexes);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    @RequestMapping(value = "patientDeviceList",method = RequestMethod.GET)
    @ApiOperation("居民设备查询")
    public String searchList(
            @RequestParam(value = "deviceName",required = false) String deviceName,
            @RequestParam(value = "categoryCode",required = false) String categoryCode,
            @RequestParam(value = "deviceSn",required = false) String deviceSn,
            @RequestParam(value = "userName",required = false) String userName,
            @RequestParam(value = "doctorName",required = false) String doctorName,
            @RequestParam(value = "hospitalName",required = false) String hospitalName,
            @RequestParam(value = "page") Integer page,
            @RequestParam(value = "pageSize") Integer pageSize){
        try {
            String hospitalCode = "";
            List<WlyyPatientDeviceVO> patientDevices = patientDeviceService.searchListNew(deviceName,categoryCode, deviceSn, userName, doctorName,hospitalName,hospitalCode,page, pageSize);
            Long totalcount = patientDeviceService.getCountSearchListNew(deviceName,categoryCode, deviceSn, userName, doctorName,hospitalName,hospitalCode);
            return write(200,"操作成功",page,pageSize,totalcount,patientDevices);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
}

+ 2 - 4
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/device/WlyyDeviceController.java

@ -1,6 +1,5 @@
package com.yihu.wlyy.controller.manager.device;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.controller.BaseController;
import com.yihu.wlyy.device.entity.WlyyDevice;
@ -18,7 +17,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
/**
@ -47,8 +45,8 @@ public class WlyyDeviceController extends BaseController {
    }
    @RequestMapping(value = "createInit")
    public String initCreatePage(@RequestParam(value = "id",required = false) Integer id){
        request.setAttribute("id",id);
    public String initCreatePage(){
//        request.setAttribute("id",id);
        return  "device/device_create";
    }

File diff suppressed because it is too large
+ 46 - 2
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/sign/SignFamilyController.java


+ 10 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/device/entity/DeviceHealthIndexExportVO.java

@ -15,7 +15,8 @@ public class DeviceHealthIndexExportVO {
	private String statusName;
	private String doctor_name;
	private String address;
	
	private String amount;
	public String getPatient() {
		return patient;
	}
@ -95,4 +96,12 @@ public class DeviceHealthIndexExportVO {
	public void setDevice_name(String device_name) {
		this.device_name = device_name;
	}
	public String getAmount() {
		return amount;
	}
	public void setAmount(String amount) {
		this.amount = amount;
	}
}

+ 88 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/device/entity/DeviceManufacturer.java

@ -0,0 +1,88 @@
package com.yihu.wlyy.device.entity;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * create by humingfen on 2018/6/6
 * 设备厂商表
 */
@Entity
@Table(name = "wlyy_manufacturer")
public class DeviceManufacturer extends IdEntity {
    private String code;//关联标识
    private String manufacturerCode;//厂商代码
    private String manufacturerName;//厂商名称
    private String address;//厂商地址
    private String representative;//法人代表
    private Date czrq;//创建时间
    private Integer del;//逻辑删除(1删除 0保留)
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "manufacturer_code")
    public String getManufacturerCode() {
        return manufacturerCode;
    }
    public void setManufacturerCode(String manufacturerCode) {
        this.manufacturerCode = manufacturerCode;
    }
    @Column(name = "manufacturer_name")
    public String getManufacturerName() {
        return manufacturerName;
    }
    public void setManufacturerName(String manufacturerName) {
        this.manufacturerName = manufacturerName;
    }
    @Column(name = "address")
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Column(name = "representative")
    public String getRepresentative() {
        return representative;
    }
    public void setRepresentative(String representative) {
        this.representative = representative;
    }
    @Column(name = "czrq")
    public Date getCzrq() {
        return czrq;
    }
    public void setCzrq(Date czrq) {
        this.czrq = czrq;
    }
    @Column(name = "del")
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
}

+ 28 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/device/repository/DeviceManufacturerDao.java

@ -0,0 +1,28 @@
package com.yihu.wlyy.device.repository;
import com.yihu.wlyy.device.entity.DeviceManufacturer;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.transaction.annotation.Transactional;
/**
 * Created by humingfen on 2018/6/6.
 */
public interface DeviceManufacturerDao extends PagingAndSortingRepository<DeviceManufacturer, Integer>, JpaSpecificationExecutor<DeviceManufacturer> {
    @Query("select dm from DeviceManufacturer dm where dm.id = ?1")
    DeviceManufacturer findById(Long id);
    @Transactional
    @Modifying
    @Query("update DeviceManufacturer dm set dm.manufacturerName = ?1, dm.manufacturerCode = ?2, dm.address = ?3, dm.representative = ?4, dm.del = ?5 where dm.id = ?6")
    void updateManufacturer(String manufacturerName, String manufacturerCode, String address, String representative, Integer del, Long id);
    DeviceManufacturer findByCode(String code);
    @Transactional
    @Modifying
    @Query("delete from DeviceManufacturer dm where dm.id = ?1")
    void delete(Long id);
}

+ 11 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/Patient.java

@ -80,6 +80,8 @@ public class Patient extends IdEntity implements Serializable {
	private Integer status;
    //联系方式备注【基卫】mobile_remarks
    private String mobileRemarks;
	//微信开放平台主键
	private String unionId;
	public Patient() {
	}
@ -325,7 +327,15 @@ public class Patient extends IdEntity implements Serializable {
        this.mobileRemarks = mobileRemarks;
    }
    @Transient
	public void setUnionId(String unionId) {
		this.unionId = unionId;
	}
	public String getUnionId() {
		return unionId;
	}
	@Transient
	public String getDiseaseName() {//0健康,1高血压,2糖尿病,3高血压+糖尿病
		if(disease==null){
			this.diseaseName = "";

+ 1 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/filter/SessionOutTimeFilter.java

@ -24,6 +24,7 @@ public class SessionOutTimeFilter extends OncePerRequestFilter {
                || path.indexOf("/yueren") != -1
                || path.indexOf("/out") != -1
                || path.indexOf("/error") != -1
                || path.indexOf("/svr-iot") != -1
                || path.indexOf(httpServletRequest.getContextPath() + "/static") != -1
                || path.indexOf("swagger") != -1
                || path.indexOf(httpServletRequest.getContextPath() + "/v2/api-docs") != -1) {

+ 174 - 5
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/device/DeviceHealthIndexService.java

@ -17,9 +17,11 @@ import com.yihu.wlyy.util.SystemConf;
import com.yihu.wlyy.util.query.BaseDeviceJpaService;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.*;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -27,7 +29,6 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.*;
/**
@ -139,7 +140,146 @@ public class DeviceHealthIndexService extends BaseDeviceJpaService<DeviceHealthI
//        }
        String f = filter.toString();
//        System.out.println("sql:"+sql+f+" order by i.czrq desc "+" limit "+(page-1)+","+pageSize);
        List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql+f+" order by i.czrq desc "+" limit "+(page-1)+","+pageSize);
        List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql+f+" order by i.czrq desc "+" limit "+(page-1)*pageSize+","+pageSize);
        if(resultList.size()<=0){
            return new PageImpl<DeviceHealthIndexVO>(new ArrayList<>(), pageRequest, 0);
        }
        long count = 0;
        String regex = "(\\w{3})(\\w+)(\\w{3})";
        List<DeviceHealthIndexVO> listTemp = new ArrayList<>();
        if(resultList !=null && resultList.size()>0){
//            count = getCount(filter.toString());
            count = jdbcTemplate.queryForObject(countSql+filter.toString(),Long.class);
            for (Map<String, Object> info : resultList){
                DeviceHealthIndexVO bean = new DeviceHealthIndexVO();
                bean.setId(Long.getLong(info.get("id")+""));
                bean.setCzrq(info.get("czrq")!=null?(Date)info.get("czrq"):null);
                bean.setDel(info.get("del")!=null?info.get("del")+"":null);
                bean.setDeviceSn(info.get("device_sn")!=null?info.get("device_sn")+"":null);
                bean.setIdcard(info.get("idcard")!=null?info.get("idcard")+"":null);
                bean.setIntervene(info.get("intervene")!=null?info.get("intervene")+"":null);
                bean.setRecordDate(info.get("record_date")!=null?(Date)info.get("record_date"):null);
                bean.setSortDate(info.get("sort_date")!=null?(Date)info.get("sort_date"):null);
                bean.setStatus(info.get("status")!=null?(Integer)info.get("status"):null);
                bean.setType(info.get("type")!=null?(Integer)info.get("type"):0);
                bean.setUser(info.get("user")!=null?info.get("user")+"":null);
                bean.setUserName(info.get("userName")!=null?info.get("userName")+"":null);
                bean.setValue1(info.get("value1")!=null?info.get("value1")+"":null);
                bean.setValue2(info.get("value2")!=null?info.get("value2")+"":null);
                bean.setValue3(info.get("value3")!=null?info.get("value3")+"":null);
                bean.setValue4(info.get("value4")!=null?info.get("value4")+"":null);
                bean.setValue5(info.get("value5")!=null?info.get("value5")+"":null);
                bean.setValue6(info.get("value6")!=null?info.get("value6")+"":null);
                bean.setValue7(info.get("value7")!=null?info.get("value7")+"":null);
//                BeanUtils.copyProperties(info, bean);
//                Patient patient = findPatient(bean.getUser());
//                bean.setUserName(patient== null?"":patient.getName());
                if(StringUtils.isNotBlank(bean.getIdcard())){
                    bean.setIdcard(bean.getIdcard().replaceAll(regex, "$1****$3"));
                }
                bean.setHealthStandard(gethealthStandard(bean.getType(),bean.getUser()).toString());
                listTemp.add(bean);
            }
        }
        return new PageImpl<DeviceHealthIndexVO>(listTemp,pageRequest,count);
    }
    /**
     * 无需登录
     * @param deviceSn
     * @param date
     * @param idcard
     * @param userName
     * @param indexType
     * @param page
     * @param pageSize
     * @param indexTypeMin1
     * @param indexTypeMax1
     * @param indexTypeMin2
     * @param indexTypeMax2
     * @param doctorName
     * @return
     * @throws Exception
     */
    public Page<DeviceHealthIndexVO> searchList2(String deviceSn,String date,String idcard,String userName,String indexType,Integer page,Integer pageSize,
                                                Double indexTypeMin1,Double indexTypeMax1,Double indexTypeMin2,Double indexTypeMax2,String doctorName)throws Exception{
        if (page == null){
            page = 1;
        }
        if(pageSize == null){
            pageSize = 15;
        }
        Pageable pageRequest = new PageRequest(page-1,pageSize);
        StringBuilder filter = new StringBuilder();
        String sql =" SELECT i.* ,s.name userName FROM device.wlyy_patient_health_index i , wlyy.wlyy_sign_family s WHERE s. STATUS > 0  and i.user=s.patient ";
        String countSql =" SELECT count(1) as num FROM device.wlyy_patient_health_index i, wlyy.wlyy_sign_family s WHERE s. STATUS > 0  and i.user=s.patient ";
        //根据患者名称过滤
        if(!StringUtils.isEmpty(userName)){
            filter.append(" AND s.NAME LIKE '%"+userName+"%' ");
        }
        //根据健管师或医生名称过滤
        if(!StringUtils.isEmpty(doctorName)){
            filter.append(" and (s.doctor_name like '%"+doctorName+"%' or s.doctor_health_name like '%"+doctorName+"%') ");
        }
        if(!StringUtils.isEmpty(deviceSn)){
            filter.append(" and i.device_sn='"+deviceSn+"' ");
        }
        if(!StringUtils.isEmpty(idcard)){
            filter.append(" and i.idcard='"+idcard+"' ");
        }
        //体征数据创建时间
        if(!StringUtils.isEmpty(date)){
            Date startTimeTemp  =  DateTimeUtil.simpleDateParse(date);
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(startTimeTemp);
            calendar.set(Calendar.HOUR,23);
            calendar.set(Calendar.MINUTE,59);
            calendar.set(Calendar.SECOND,59);
            calendar.set(Calendar.MILLISECOND,999);
            Date endTimeTemp = calendar.getTime();
            filter.append(" and i.czrq>='" + DateTimeUtil.simpleDateTimeFormat(startTimeTemp)+"'");
            filter.append(" and i.czrq<='" + DateTimeUtil.simpleDateTimeFormat(endTimeTemp)+"'");
        }
        //指标类型
        if(!StringUtils.isEmpty(indexType)){
            filter.append(" and i.type="+indexType);
        }
        //体征数据
//        if("1".equals(indexType)||"2".equals(indexType)||"4".equals(indexType)){
        if(indexTypeMin1!=null){
            filter.append(" and value1>="+indexTypeMin1);
        }
        if(indexTypeMax1!=null){
            filter.append(" and value1<="+indexTypeMax1);
        }
        if(indexTypeMin2!=null){
            filter.append(" and value2>="+indexTypeMin2);
        }
        if(indexTypeMax2!=null){
            filter.append(" and value2<="+indexTypeMax2);
        }
//        }else{
//            if(indexTypeMin1!=null){
//                filter.append(" and value3>="+indexTypeMin1);
//            }
//            if(indexTypeMax1!=null){
//                filter.append(" and value3<="+indexTypeMax1);
//            }
//            if(indexTypeMin2!=null){
//                filter.append(" and value4>="+indexTypeMin2);
//            }
//            if(indexTypeMax2!=null){
//                filter.append(" and value4<="+indexTypeMax2);
//            }
//        }
        String f = filter.toString();
//        System.out.println("sql:"+sql+f+" order by i.czrq desc "+" limit "+(page-1)+","+pageSize);
        List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql+f+" order by i.czrq desc "+" limit "+(page-1)*pageSize+","+pageSize);
        if(resultList.size()<=0){
            return new PageImpl<DeviceHealthIndexVO>(new ArrayList<>(), pageRequest, 0);
        }
@ -291,7 +431,7 @@ public class DeviceHealthIndexService extends BaseDeviceJpaService<DeviceHealthI
       return patientDao.findByCode(patientCode);
    }
	
	public List<DeviceHealthIndexExportVO> exportDeviceHealthIndexList(String town, String hospital) {
	/*public List<DeviceHealthIndexExportVO> exportDeviceHealthIndexList(String town, String hospital) {
        List<DeviceHealthIndexExportVO> list = new ArrayList<>();
        String sql  = "SELECT " +
                "s.patient," +
@ -306,6 +446,35 @@ public class DeviceHealthIndexService extends BaseDeviceJpaService<DeviceHealthI
                "SELECT `user`,device_sn,type,max(record_date) record_date FROM device.wlyy_patient_health_index WHERE device_sn IS NOT NULL AND del=1 GROUP BY `user`,device_sn,type) d WHERE s.patient=d.`user` AND s.hospital='"+hospital+"' AND s.`status`> 0) ORDER BY patient";
        list =  jdbcTemplate.query(sql,new BeanPropertyRowMapper(DeviceHealthIndexExportVO.class));
        return list ;
	}*/
    /**
     * 导出体征上传明细
     * @param town
     * @param hospital
     * @return
     */
    public List<DeviceHealthIndexExportVO> exportDeviceHealthIndexList(String town, String hospital) {
        List<DeviceHealthIndexExportVO> list = new ArrayList<>();
        String sql  = "SELECT " +
                "s.patient," +
                "s.`name`," +
                "s.mobile," +
                "s.idcard," +
                "d.device_sn," +
                "d.device_name," +
                "d.record_date," +
                "d.amount,"+
                "CASE d.type WHEN 1 THEN '血糖' WHEN 2 THEN '血压' WHEN 3 THEN '体重' WHEN 4 THEN '腰围' END statusName,"+
                "s.doctor_name," +
                "p.address FROM wlyy_sign_family s,wlyy_patient p,(" +
                "SELECT i.`user`,i.device_sn, i.type, max(i.record_date) record_date, count(i.id) amount, w.device_name " +
                "FROM device.wlyy_patient_health_index i,wlyy_patient_device w "+
                "WHERE i.device_sn = w.device_sn AND i.del=1 GROUP BY i.`user`,i.device_sn,i.type) d "+
                "WHERE s.patient = d.`user` AND s.hospital='"+hospital+"' AND s.`status`> 0 AND s.patient=p.code AND d.`type` in (1,2) ORDER BY d.record_date desc ";
        list =  jdbcTemplate.query(sql,new BeanPropertyRowMapper(DeviceHealthIndexExportVO.class));
        return list ;
	}
    public JSONObject gethealthStandard(Integer type, String patientCode) {

+ 81 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/device/DeviceManufacturerService.java

@ -0,0 +1,81 @@
package com.yihu.wlyy.service.manager.device;
import com.yihu.wlyy.device.entity.DeviceManufacturer;
import com.yihu.wlyy.device.repository.DeviceManufacturerDao;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springside.modules.persistence.DynamicSpecifications;
import org.springside.modules.persistence.SearchFilter;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by humingfen on 2018/6/6.
 * manufacturer数据库
 */
@Service
public class DeviceManufacturerService  {
    @Autowired
    private DeviceManufacturerDao deviceManufacturerDao;
    public Page<DeviceManufacturer> searchList(String manufacturerName, String manufacturerCode, String address, Integer page, Integer pageSize){
        if(page == null){
            page = 1;
        }
        if(pageSize == null){
            pageSize = 15;
        }
        PageRequest pageRequest = new PageRequest(page - 1, pageSize);
        Map<String,SearchFilter> filter = new HashMap<>();
        if(!StringUtils.isEmpty(manufacturerName)){
            filter.put("manufacturerName",new SearchFilter("manufacturerName", SearchFilter.Operator.LIKE,manufacturerName));
        }
        if(!StringUtils.isEmpty(manufacturerCode)){
            filter.put("manufacturerCode",new SearchFilter("manufacturerCode",SearchFilter.Operator.LIKE,manufacturerCode));
        }
        if(!StringUtils.isEmpty(address)){
            filter.put("address",new SearchFilter("address",SearchFilter.Operator.LIKE,address));
        }
        Specification<DeviceManufacturer> spec = DynamicSpecifications.bySearchFilter(filter.values(), DeviceManufacturer.class);
        return deviceManufacturerDao.findAll(spec,pageRequest);
    }
    public DeviceManufacturer findById(Long id) {
        return deviceManufacturerDao.findById(id);
    }
    public void  updateManufacturer(DeviceManufacturer manufacturer) {
        deviceManufacturerDao.updateManufacturer(manufacturer.getManufacturerName(), manufacturer.getManufacturerCode(), manufacturer.getAddress(), manufacturer.getRepresentative(), manufacturer.getDel(), manufacturer.getId());
    }
    public void createManufacturer(DeviceManufacturer manufacturer) {
        manufacturer.setCzrq(new Date());
        deviceManufacturerDao.save(manufacturer);
    }
    public Boolean existCode(String code) {
        DeviceManufacturer manufacturer = deviceManufacturerDao.findByCode(code);
        if(manufacturer == null){
            return false;
        }
        return true;
    }
    public void deleteManufacturer(Long id) {
        deviceManufacturerDao.delete(id);
    }
    public List<DeviceManufacturer> findAll() {
        List<DeviceManufacturer> deviceManufacturer = (List<DeviceManufacturer>) deviceManufacturerDao.findAll();
        return deviceManufacturer;
    }
}

+ 15 - 15
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/device/WlyyDeviceService.java

@ -1,22 +1,21 @@
package com.yihu.wlyy.service.manager.device;
        import com.yihu.wlyy.device.entity.WlyyDevice;
        import com.yihu.wlyy.device.repository.WlyyDeviceDao;
        import org.apache.commons.lang3.StringUtils;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.data.domain.Page;
        import org.springframework.data.domain.PageRequest;
        import org.springframework.data.jpa.domain.Specification;
        import org.springframework.stereotype.Service;
        import org.springframework.transaction.annotation.Transactional;
        import org.springside.modules.persistence.DynamicSpecifications;
        import org.springside.modules.persistence.SearchFilter;
import com.yihu.wlyy.device.repository.WlyyDeviceDao;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.persistence.DynamicSpecifications;
import org.springside.modules.persistence.SearchFilter;
        import javax.persistence.EntityManager;
        import java.util.Date;
        import java.util.HashMap;
        import java.util.List;
        import java.util.Map;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by yww on 2016/12/1.
@ -86,6 +85,7 @@ public class WlyyDeviceService {
        deviceNew.setApplicantIdentity(device.getApplicantIdentity());
        deviceNew.setApplicantTel(device.getApplicantTel());
        deviceNew.setApplicantMail(device.getApplicantMail());
        deviceNew.setSim(device.getSim());
        return deviceDao.save(deviceNew);
    }

+ 9 - 0
patient-co-manage/wlyy-manage/src/main/resources/application.yml

@ -97,6 +97,9 @@ sign:
  check_upload: http://172.19.103.87:8011/wlyy_service
server:
  server_url: http://weixin.xmtyw.cn/wlyy-dev/
#智业预约记录接口
reservation:
  zyurl: http://59.61.92.90:8072/wlyy_service
wechat:
  appId: wxd03f859efdf0873d
  appSecret: 2935b54b53a957d9516c920a544f2537
@ -198,6 +201,9 @@ sign:
  check_upload: http://172.19.103.88:8011/wlyy_service
server:
  server_url: http://ehr.yihu.com/wlyy/
#智业预约记录接口
reservation:
  zyurl: http://59.61.92.90:8072/wlyy_service
wechat:
  appId: wx1f129f7b51701428
  appSecret: 988f005d8309ed1795939e0f042431fb
@ -299,6 +305,9 @@ sign:
  #check_upload: http://59.61.92.90:8072/wlyy_service
server:
  server_url: http://www.xmtyw.cn/wlyy/
#智业预约记录接口
reservation:
  zyurl: http://59.61.92.90:8072/wlyy_service
wechat:
  appId: wxad04e9c4c5255acf
  appSecret: ae77c48ccf1af5d07069f5153d1ac8d3

+ 13 - 11
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/deviceHealthIndex_list_js.jsp

@ -199,14 +199,21 @@
                                render: function (row) {
                                    var standard = typeof(row.healthStandard)=='object'?row.healthStandard:JSON.parse(row.healthStandard)
                                    if(row.type==1){
                                        if(row.value1>standard.minValueBefore&&row.value1<standard.maxValueBefore){
                                            return row.value1;
                                        if(row.value2 == 1 || row.value2 == 3 || row.value2 == 5 || row.value2 == 7) {
                                            if (row.value1 > standard.minValueBefore && row.value1 < standard.maxValueBefore) {
                                                return row.value1;
                                            } else {
                                                return "<span style='color:red;'>" + row.value1 + "</span>";
                                            }
                                        }else {
                                            return "<span style='color:red;'>"+row.value1+"</span>";
                                            if (row.value1 > standard.minValueAfter && row.value1 < standard.maxValueAfter) {
                                                return row.value1;
                                            } else {
                                                return "<span style='color:red;'>" + row.value1 + "</span>";
                                            }
                                        }
                                    }else if(row.type==2){
                                        if(row.value1>standard.minValueSSY&&row.value1<standard.maxValueSSY){
                                        if(row.value1 > standard.minValueSSY && row.value1 < standard.maxValueSSY){
                                            return row.value1;
                                        }else {
                                            return "<span style='color:red;'>"+row.value1+"</span>";
@ -220,12 +227,7 @@
                                render: function (row) {
                                    var standard = typeof(row.healthStandard)=='object'?row.healthStandard:JSON.parse(row.healthStandard)
                                    if(row.type==1){
                                        if(row.value2>standard.minValueAfter&&row.value2<standard.maxValueAfter){
                                            return row.value2;
                                        }else {
                                            return "<span style='color:red;'>"+row.value2+"</span>";
                                        }
                                        return row.value2;
                                    }else if(row.type==2){
                                        if(row.value2>standard.minValueSZY&&row.value2<standard.maxValueSZY){

+ 58 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/deviceManufacturer_list.jsp

@ -0,0 +1,58 @@
<%--
  Created by IntelliJ IDEA.
  User: hmf
  Date: 2018/6/6
  Time: 10:19
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html; charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <%@ include file="../head/page_head.jsp" %>
    <title>设备厂商管理</title>
</head>
<body>
<div id="div_wrapper">
    <!-- 检索条件 -->
    <div class="m-retrieve-area f-h50 f-dn f-pr m-form-inline" data-role-form style='display: block;'>
        <div class="m-form-group f-mt10">
            <div class="m-form-control f-ml15">
                <input type="text" id="inp_manufacturer_name" placeholder="请输入设备厂商名称" class="f-ml10" data-attr-scan="manufacturerName"/>
            </div>
            <div class="m-form-control f-ml15">
                <input type="text" id="inp_manufacturer_code" placeholder="请输入设备厂商代码" class="f-ml10" data-attr-scan="manufacturerCode"/>
            </div>
            <div class="m-form-control f-ml15">
                <input type="text" id="inp_address" placeholder="请输入厂商地址" class="f-ml10" data-attr-scan="address"/>
            </div>
            <sec:authorize url="/admin/manufacturer/list">
            <div id="btn_search" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam  f-ml10" >
                <span>查询</span>
            </div>
            </sec:authorize>
            <sec:authorize url="/admin/manufacturer/create">
                <div id="btn_add" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam  f-ml10" >
                    <span>新增</span>
                </div>
            </sec:authorize>
            <%--<sec:authorize url="/admin/device/toExcel">
                <div class="m-form-control m-form-control-fr">
                    <div id="btn_export" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam">
                        <span>导出</span>
                    </div>
                </div>
            </sec:authorize>--%>
        </div>
    </div>
        <!-- 列表 -->
    <div id="div_manufacturer_list">
    </div>
</div>
</body>
<%@ include file="../head/page_foot.jsp" %>
<%@ include file="deviceManufacturer_list_js.jsp" %>
</html>

+ 209 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/deviceManufacturer_list_js.jsp

@ -0,0 +1,209 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<script>
	(function ($, win) {
		$(function () {
			/* ************************** 变量定义 ******************************** */
			// 通用工具类库
			var Util = $.Util;
			var retrieve = null;
			var master = null;
			var isFirstPage = false;
			/* *************************** 函数定义 ******************************* */
			function pageInit() {
				retrieve.init();
				master.init();
			}
			function reloadGrid(params) {
				if (isFirstPage) {
					this.grid.options.newPage = 1;
				}
				this.grid.setOptions({parms: params});
				this.grid.loadData(true);
			}
			/* *************************** 模块初始化 ***************************** */
			retrieve = {
				$element: $('.m-retrieve-area'),
				$searchBtn: $('#btn_search'),
				$addBtn: $('#btn_add'),
                $manufacturerName: $("#inp_manufacturer_name"),//设备厂商名称
                $manufacturerCode: $("#inp_manufacturer_code"),
                $address: $("#inp_address"),
                init: function () {
                    this.$element.show();
                    this.$element.attrScan();
                    window.form = this.$element;
                    this.$manufacturerName.ligerTextBox({width: 200});
                    this.$manufacturerCode.ligerTextBox({width: 200});
                    this.$address.ligerTextBox({width: 150});
                    this.bindEvents();
                },
                bindEvents: function () {
                    var self = this;
                    self.$searchBtn.click(function () {
                        master.grid.options.newPage = 1;
                        master.reloadGrid();
                    });
                    self.$addBtn.click(function () {
                        $.publish("manufacturer:info:create", [0]);
                    });
                    //导出
                    //生成Excel表
                    /*self.$exportBtn.click(function () {
                        //定义一个form表单
                        var myform = $("<form></form>");
                        myform.attr('method','post')
                        myform.attr('action',ctx + '/admin/device/toExcel');
                        //设备名称
                        var deviceName = $("<input type='hidden' name='deviceName' />")
                        deviceName.attr('value',$("#inp_device_name").val());
                        //设备编号
                        var deviceCode = $("<input type='hidden' name='deviceCode' />")
                        deviceCode.attr('value',$("#inp_device_code").val());
                        //社区名称
                        var orgName = $("<input type='hidden' name='orgName' />")
                        orgName.attr('value',$("#inp_org_name").val());
                        //联系人
                        var linkman = $("<input type='hidden' name='linkman' />")
                        linkman.attr('value',$("#inp_linkman").val());
                        myform.append(deviceName);
                        myform.append(deviceCode);
                        myform.append(orgName);
                        myform.append(linkman);
                        myform.appendTo('body').submit(); //must add this line for higher html spec
                    })*/
                }
            };
            master = {
                deviceManufacturerInfoDialog: null,
                grid: null,
                init: function () {
                    this.grid = $("#div_manufacturer_list").ligerGrid($.LigerGridEx.config({
                        url: ctx + '/admin/manufacturer/list',
                        parms: {},
                        ajaxHeader: ajaxHeaderName,
                        ajaxHeaderValue: ajaxHeaderValue,
                        columns: [
                            {display: 'id', name: 'id', hide: true},
                            {display: '厂商标识', name: 'code', width: '10%', align: "left"},
                            {display: '厂商代码', name: 'manufacturerCode', width: '10%', align: "left"},
                            {display: '厂商名称', name: 'manufacturerName', width: '10%', align: "left"},
                            {display: '厂家地址', name: 'address', width: '10%', align: "left"},
                            {display: '法人代表', name: 'representative', width: '10%', align: "left"},
                            {
                                display: '是否有效', name: 'del', width: '10%', align: "left",
                                render: function (row) {
                                    if (row.del == 0) {
                                        return "有效"
                                    }
                                    if (row.del == 1) {
                                        return "无效"
                                    }
                                }
                            },
                            {display: '创建时间', name: 'czrq', width: '10%', align: "left"},
                            {
                                display: '操作', name: 'operator', width: '10%', align: "center", isSort: false,
                                render: function (row) {
                                    var html = '';
                                    <sec:authorize url="/admin/manufacturer/update">
                                    html += '<a  style="margin-left:10px;"href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "manufacturer:info:edit", row.id) + '">编辑</a>';
                                    </sec:authorize>
                                    <sec:authorize url="/admin/manufacturer/delete">
                                    html += '<a  style="margin-left:10px;"href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "manufacturer:info:del", row.id) + '">删除</a>';
                                    </sec:authorize>
                                    <%--<sec:authorize url="/admin/manufacturer/create">
                                    html += '<a  style="margin-left:10px;"href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "manufacturer:info:create", row.id) + '">新增</a>';
                                    </sec:authorize>--%>
                                    return html;
                                }
                            }
                        ],
                    }));
                    // 自适应宽度
                    this.grid.adjustToWidth();
                    this.bindEvents();
                },
                reloadGrid: function (msg) {
                    retrieve.$element.attrScan();
                    var values = retrieve.$element.Fields.getValues();
                    reloadGrid.call(this, values);
                },
                delRecord: function (id, code) {
                    var self = this;
                    $.ajax({
                        url: ctx + "/admin/manufacturer/delete",
                        data: {"id": id},
                        method: "post",
                        dataType: "json",
                        success: function (result) {
                            if (result.status == '200') {
                                window.reloadMasterGrid(result.msg);
                            } else {
                                $.Notice.error(result.msg);
                            }
                        },
                        error: function (data) {
                            $.Notice.error("系统异常,请联系管理员!");
                        }
                    })
                },
                bindEvents: function () {
                    var self = this;
                    $.subscribe('manufacturer:info:edit', function (event, id) {
                        var title = '编辑信息';
                        self.deviceManufacturerInfoDialog = $.ligerDialog.open({
                            height: 600,
                            width: 560,
                            urlParms: {"id": id, "type": "edit"},
                            title: title,
                            url: ctx + '/admin/manufacturer/infoInit'
                        })
                    });
                    $.subscribe('manufacturer:info:create', function (event, id) {
                        var title = '新增设备厂商';
                        self.deviceManufacturerInfoDialog = $.ligerDialog.open({
                            height: 600,
                            width: 560,
                            urlParms: {"id": id, "type": "create"},
                            title: title,
                            url: ctx + '/admin/manufacturer/infoInit'
                        })
                    });
                    $.subscribe('manufacturer:info:del', function (event, id, code) {
                        $.ligerDialog.confirm('确认删除该行信息?<br>如果是请点击确认按钮,否则请点击取消。', function (yes) {
                            if (yes) {
                                self.delRecord(id, code);
                            }
                        });
                    })
                }
            };
            /* ************************* Dialog页面回调接口 ************************** */
            win.reloadMasterGrid = function (msg) {
                if (isNoEmpty(msg)) {
                    $.Notice.success(msg);
                }
                master.reloadGrid(msg);
            };
            win.closeDeviceManufacturerInfoDialog = function () {
                master.deviceManufacturerInfoDialog.close();
            };
            /* *************************** 页面初始化 **************************** */
            pageInit();
        });
    })(jQuery, window);
</script>

+ 71 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/deviceManufacturer_modify.jsp

@ -0,0 +1,71 @@
<%--
  Created by IntelliJ IDEA.
  User: hmf
  Date: 2018/6/7 0007
  Time: 下午 3:43
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html; charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
    <%@ include file="../head/page_head.jsp"%>
    <title>设备厂商详情</title>
    <style type="text/css">
        .m-form-group label.label_title{width: 100px}
    </style>
</head>
<body>
<div id="div_manufacturer_info_form" data-role-form class="m-form-inline f-mt20 f-ml30" data-role-form>
    <input type="hidden" id="id" value='${id}' data-attr-scan="id"/>
    <input type="hidden" id="type" value='${type}'/>
    <div class="m-form-group" style="padding:10 0 10 0">
        <label class="label_title" style="width:120px">厂商标识</label>
        <div class="l-text-wrapper m-form-control essential">
            <input type="text"  id="inp_code" class="required useTitle f-w240 validate-special-char"  required-title="厂商标识不能为空"  data-attr-scan="code"/>
        </div>
    </div>
    <div class="m-form-group" style="padding:10 0 10 0">
        <label class="label_title" style="width:120px">厂商代码</label>
        <div class="l-text-wrapper m-form-control essential">
            <input type="text"  id="inp_manufacturer_code" class="required useTitle f-w240 validate-special-char"  required-title="厂商代码不能为空"  data-attr-scan="manufacturerCode"/>
        </div>
    </div>
    <div class="m-form-group">
        <label class="label_title" style="width:120px">厂商名称</label>
        <div class="l-text-wrapper m-form-control essential">
            <input type="text"  id="inp_manufacturer_name" class="required useTitle f-w240 validate-special-char"  required-title="厂商名称不能为空"  data-attr-scan="manufacturerName"/>
        </div>
    </div>
    <div class="m-form-group">
        <label class="label_title" style="width:120px">厂商地址</label>
        <div class="l-text-wrapper m-form-control essential">
            <input type="text"  id="inp_address" class="required useTitle ajax f-w240 validate-special-char"  required-title="厂商地址不能为空"  data-attr-scan="address"/>
        </div>
    </div>
    <div class="m-form-group">
        <label class="label_title" style="width:120px">法人代表</label>
        <div class="l-text-wrapper m-form-control">
            <input type="text"  id="inp_representative" class="useTitle ajax f-w240 validate-special-char" required-title="法人代表不能为空" data-attr-scan="representative"/>
        </div>
    </div>
    <div class="m-form-group">
        <label class="label_title" style="width:120px">是否有效</label>
        <div class="l-text-wrapper m-form-control essential">
            <input type="text"  id="inp_del" data_type='select' class="required useTitle f-w240 validate-special-char" data-attr-scan="del"/>
        </div>
    </div>
    <div class="m-form-group f-pa" id="btn_save_close" style="right: 10px;bottom: 0;">
        <div class="m-form-control">
            <input type="button" value="保存" id="btn_save" class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam" />
            <div id="btn_cancel" class="l-button u-btn u-btn-cancel u-btn-large f-ib f-vam" >
                <span>关闭</span>
            </div>
        </div>
    </div>
</div>
</body>
<%@ include file="../head/page_foot.jsp"%>
<%@ include file="deviceManufacturer_modify_js.jsp" %>
<%--<script src="${ctx}/static/js/device/device_modify.js"></script>--%>
</html>

+ 137 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/deviceManufacturer_modify_js.jsp

@ -0,0 +1,137 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<script>
    (function ($, win) {
        $(function () {
            var Util = $.Util;
            var type = $('#type').val();
            var id = $('#id').val();
            var manufacturerInfo = "";
            var jValidation = $.jValidation;
            function pageInit() {
                manufacturerInfo.init();
                if(type == "edit") {
                    manufacturerInfo.initForm();
                }
            }
            manufacturerInfo = {
                //变量
                $form: $("#div_manufacturer_info_form"),
                init: function () {
                    this.$form.attrScan();
                    $("#inp_code").ligerTextBox({width: 240})//厂家标识
                    $("#inp_manufacturer_code").ligerTextBox({width: 240})//厂家代码
                    $("#inp_manufacturer_name").ligerTextBox({width: 240})//厂家名称
                    $("#inp_address").ligerTextBox({width: 240})//厂家地址
                    $("#inp_representative").ligerTextBox({width: 240})//法人代表
                    $("#inp_del").ligerComboBox({
                        width: 240,
                        data: [
                            {text: '有效', id: '0'},
                            {text: '无效', id: '1'},
                        ]
                    })//是否有效
                    this.bindEvents();
                },
                initForm: function () {
                    var _this = this;
                    //修改、查看
                    $.ajax({
                        url: ctx + "/admin/manufacturer/findById",
                        method: "post",
                        dataType: "json",
                        async: false,
                        data: {id: id},
                        success: function (result) {
                            if (result.status == '200') {
                                var data = result.data;
                                _this.$form.Fields.fillValues({
                                    code: data.code,
                                    manufacturerCode: data.manufacturerCode,
                                    manufacturerName: data.manufacturerName,
                                    address: data.address,
                                    representative: data.representative,
                                });
                                //填值
                                $("#inp_del").ligerComboBox("selectValue",data.del);
                            } else {
                                $.Notice.error(result.msg);
                            }
                        },
                        error: function (data) {
                            $.Notice.error("系统异常,请联系管理员!");
                        }
                    });
                    this.$form.show();
                },
                //绑定事件
                bindEvents: function () {
                    var validator = new jValidation.Validation(this.$form, {
                        immediate: true, onSubmit: false,
                        onElementValidateForAjax: function (elm) {
                            /*if (Util.isStrEquals($(elm).attr("id"), 'inp_code')) {
                                var result = new jValidation.ajax.Result();
                                var codeNew = $('#inp_code').val();
                                $.ajax({
                                    url: ctx + "/admin/manufacturer/isCodeExist",
                                    async: false,
                                    method: "post",
                                    dataType: "json",
                                    data: {code: codeNew},
                                    success: function (data) {
                                        if (data == true) {
                                            result.setResult(false);
                                            result.setErrorMsg("厂商标识已注册过");
                                        } else {
                                            result.setResult(true);
                                        }
                                    }
                                });
                                return result;
                            };*/
                        }
                    });
                    var self = this;
                    $("#btn_save").click(function () {
                        var values = self.$form.Fields.getValues();
                        values.del = $("#inp_del").ligerComboBox("getValue");
                        if (!validator.validate()) {
                            return;
                        }
                        update(values);
                    });
                    function update(values) {
                        var dataModel = $.DataModel.init();
                        var url = "update";
                        if (type == "create") {
                            url = "create";
                        }
                        dataModel.updateRemote(ctx + "/admin/manufacturer/" + url, {
                            data: {jsonData: JSON.stringify(values), code: values.code},
                            success: function (data) {
                                if (data.status == 200) {
                                    parent.window.reloadMasterGrid(data.msg);
                                    parent.window.closeDeviceManufacturerInfoDialog();
                                } else {
                                    $.Notice.error(data.msg);
                                }
                            }
                        });
                    }
                    $("#btn_cancel").click(function () {
                        parent.window.closeDeviceManufacturerInfoDialog();
                    });
                }
            }
            pageInit();
        });
    })(jQuery, window)
</script>

+ 0 - 2
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/device_create.jsp

@ -9,7 +9,6 @@
</head>
<body>
<div id="div_patient_info_form" data-role-form class="m-form-inline f-mt20 f-ml30" data-role-form>
	<input type="hidden" id="inp_id" value='${id}'/>
	<div class="m-form-group" style="padding:10 0 10 0">
		<label class="label_title" style="width:120px">设备名称</label>
		<div class="l-text-wrapper m-form-control essential">
@ -115,5 +114,4 @@
</body>
<%@ include file="../head/page_foot.jsp"%>
<%@ include file="device_create_js.jsp" %>
<%--<script src="${ctx}/static/js/device/device_create.js"></script>--%>
</html>

+ 45 - 59
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/device_create_js.jsp

@ -4,22 +4,26 @@
	(function ($, win) {
		$(function () {
			var Util = $.Util;
			var id = $('#inp_id').val();
			var deviceInfo = "";
			var jValidation = $.jValidation;
			var deviceCodeOld = '';
			function pageInit() {
				deviceInfo.init();
				if (id) {
					deviceInfo.initForm();
				}
			}
			deviceInfo = {
				//变量
				$form: $("#div_patient_info_form"),
                url: {
				    /*
				     *设备厂商列表
				     */
				    manufacturerList: '/admin/manufacturer/findAll'
                },
				init: function () {
                    this.initComboBox();
					this.$form.attrScan();
					$("#inp_applyDate").ligerTextBox({width: 240}) //申请日期
					$("#inp_orgName").ligerTextBox({width: 240})//机构名称
@ -30,69 +34,36 @@
					$("#inp_deviceModel").ligerTextBox({width: 240})//设备型号
					$("#inp_deviceCode").ligerTextBox({width: 240})//设备唯一标识
					$("#inp_sim").ligerTextBox({width: 240})//设备sim码
					$("#inp_manufacturer").ligerTextBox({width: 240})//厂家名称
					//$("#inp_manufacturer").ligerTextBox({width: 240})//厂家名称
					$("#inp_address").ligerTextBox({width: 240})//厂家地址
					$("#inp_representative").ligerTextBox({width: 240})//法人代表
					$("#inp_applicantName").ligerTextBox({width: 240})//申请注册人
					$("#inp_applicantIdentity").ligerTextBox({width: 240})//申请人身份证号
					$("#inp_applicantTel").ligerTextBox({width: 240})//申请人手机
					$("#inp_applicantMail").ligerTextBox({width: 240})//申请人邮箱
					$("#sel_manufacturer").ligerComboBox({
						data: [
							{text: '三诺生物传感股份有限公司', id: 'threeNod'},
							{text: '深圳市优瑞恩科技有限公司', id: 'urion'},
							{text: '爱奥乐医疗器械(深圳)有限公司', id: 'bioland'} ,
							{text: '中兴云湃*脉搏波', id: 'yunpai'} ,
							{text: '康为血糖仪', id: 'comvee'}
						]
					});
					this.bindEvents();
				},
				initForm: function () {
					var _this = this;
					//修改、查看
					$.ajax({
						url: ctx + "/admin/device/device",
						method: "post",
						dataType: "json",
						async: false,
						data: {id: id},
						success: function (result) {
							if (result.status == '200') {
								var data = result.data;
								deviceCodeOld = data.deviceCode;
								_this.$form.Fields.fillValues({
									applyDate: data.applyDate,
									orgName: data.orgName,
									linkman: data.linkman,
									tel: data.tel,
									serverIp: data.serverIp,
									deviceName: data.deviceName,
									sim: data.sim,
									deviceModel: data.deviceModel,
									address: data.address,
									representative: data.representative,
									applicantName: data.applicantName,
									applicantIdentity: data.applicantIdentity,
									applicantTel: data.applicantTel,
									applicantMail: data.applicantMail
								});
								//填值
								$("#sel_manufacturer").ligerComboBox("selectValue",data.manufacturerCode);
							} else {
								$.Notice.error(result.msg);
							}
						},
						error: function (data) {
							$.Notice.error("系统异常,请联系管理员!");
						}
					});
					this.$form.show();
				},
                //请求初始化设备厂商
                initComboBox: function () {
				    var that = this;
                    this.rAjax( this.url.manufacturerList,{} ,function (data) {
                        var d = [];
                        for (var i = 0; i < data.data.length; i++) {
                            d.push({
                                text: data.data[i].manufacturerName,
                                id: data.data[i].manufacturerCode
                            });
                        }
                        that.initInpCat( d, that);
                    })
                },
                //设备厂商下拉框
                initInpCat: function ( d, me) {
                    $("#sel_manufacturer").ligerComboBox({
                        data: d,
                    });
                },
				//绑定事件
				bindEvents: function () {
@ -149,7 +120,22 @@
					$("#btn_cancel").click(function () {
						parent.window.closeDeviceInfoDialog();
					});
				}
				},
                rAjax: function ( url, d, cb) {
                    $.ajax({
                        url: ctx + url,
                        data: d,
                        type: 'POST',
                        dataType: 'json',
                        success: function (data) {
                            if (data.status == 200) {
                                cb && cb.call( this, data);
                            } else {
                                $.Notice.error(data.msg);
                            }
                        }
                    });
                },
			}
			pageInit();
		});

+ 3 - 3
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/device_list_js.jsp

@ -165,7 +165,7 @@
					var self = this;
					//状态修改
					$.subscribe('device:info:view', function (event, id) {
						var title = '查看查看信息';
						var title = '查看信息';
						self.deviceInfoDialog = $.ligerDialog.open({
							height: 770,
							width: 560,
@ -175,7 +175,7 @@
						})
					});
					$.subscribe('device:info:edit', function (event, id) {
						var title = '编辑编辑信息';
						var title = '编辑信息';
						self.deviceInfoDialog = $.ligerDialog.open({
							height: 770,
							width: 560,
@ -190,7 +190,7 @@
						self.deviceInfoDialog = $.ligerDialog.open({
							height: 770,
							width: 560,
							urlParms: {"id": id},
							// urlParms: {"id": id},
							title: title,
							url: ctx + '/admin/device/createInit'
						})

+ 33 - 19
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/device/device_modify_js.jsp

@ -18,8 +18,11 @@
			deviceInfo = {
				//变量
				$form: $("#div_patient_info_form"),
                $manufacturer: $("#sel_manufacturer"),
				init: function () {
					this.$form.attrScan();
                    _this = this;
                    this.$form.attrScan();
					$("#inp_applyDate").ligerTextBox({width: 240}) //申请日期
					$("#inp_orgName").ligerTextBox({width: 240})//机构名称
					$("#inp_linkman").ligerTextBox({width: 240})//联系人
@ -29,26 +32,37 @@
					$("#inp_deviceModel").ligerTextBox({width: 240})//设备型号
					$("#inp_deviceCode").ligerTextBox({width: 240})//设备唯一标识
					$("#inp_sim").ligerTextBox({width: 240})//设备sim
					$("#inp_manufacturer").ligerTextBox({width: 240})//厂家名称
					// $("#inp_manufacturer").ligerTextBox({width: 240})//厂家名称
					$("#inp_address").ligerTextBox({width: 240})//厂家地址
					$("#inp_representative").ligerTextBox({width: 240})//法人代表
					$("#inp_applicantName").ligerTextBox({width: 240})//申请注册人
					$("#inp_applicantIdentity").ligerTextBox({width: 240})//申请人身份证号
					$("#inp_applicantTel").ligerTextBox({width: 240})//申请人手机
					$("#inp_applicantMail").ligerTextBox({width: 240})//申请人邮箱
				},
				initForm: function () {
					var _this = this;
					_this.manufacturerBox = $("#sel_manufacturer").ligerComboBox({
						data: [
							{text: '三诺生物传感股份有限公司', id: 'threeNod'},
							{text: '深圳市优瑞恩科技有限公司', id: 'urion'},
							{text: '爱奥乐医疗器械(深圳)有限公司', id: 'bioland'} ,
                            {text: '中兴云湃*脉搏波', id: 'yunpai'} ,
							{text: '康为血糖仪', id: 'comvee'}
						]
					});
                    //厂商下拉框
                    _this.manufacturerBox = _this.$manufacturer.ligerComboBox({
                        url: ctx + "/admin/manufacturer/findAll",
                        parms: {},
                        dataParmName: "data",
                        textField: "manufacturerName",
                        valueField: "manufacturerCode",
                        isMultiSelect: false,
                        ajaxBeforeSend: function (xhr) {
                            if (ajaxHeaderName) {
                                xhr.setRequestHeader(ajaxHeaderName, ajaxHeaderValue);
                            }
                        },
                    });
                    //厂商下拉框刷新
                    _this.reloadManufacturerBox = function () {
                        deviceInfo.manufacturerBox.reload();
                    };
                },
				initForm: function () {
                    _this = this;
					//修改、查看
					$.ajax({
@ -76,11 +90,10 @@
									applicantName: data.applicantName,
									applicantIdentity: data.applicantIdentity,
									applicantTel: data.applicantTel,
									applicantMail: data.applicantMail
									applicantMail: data.applicantMail,
								});
								//填值
								_this.manufacturerBox.selectValue(data.manufacturerCode);
							} else {
								$.Notice.error(result.msg);
							}
@ -144,8 +157,9 @@
					$("#btn_save").click(function () {
						var values = self.$form.Fields.getValues();
						//厂家代码
						values.manufacturerCode = $("#sel_manufacturer").ligerComboBox("getValue");
						//厂家名称
						values.manufacturerCode = self.manufacturerBox.getValue();
                        values.manufacturer = self.manufacturerBox.getText();
						if (!validator.validate()) {
							return;
						}
@ -173,7 +187,7 @@
					$("#btn_cancel").click(function () {
						parent.window.closeDeviceInfoDialog();
					});
				}
				},
			}
			pageInit();
		});

+ 1 - 1
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/hos/hospital_list_js.jsp

@ -191,7 +191,7 @@
									method: "post",
									dataType: "json",
									success: function (result) {
										debugger
										// debugger
										if (result.status == '200') {
											window.reloadMasterGrid(result.msg);
										} else {

+ 3 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/main.jsp

@ -111,6 +111,9 @@
							<sec:authorize url="/admin/patientDevice/initial">
							<li><a href="javascript:locationMenu('patientDevice');">居民设备查询</a></li>
							</sec:authorize>
							<sec:authorize url="/admin/manufacturer/initial">
							<li><a href="javascript:locationMenu('manufacturer');">设备厂商查询</a></li>
							</sec:authorize>
							<sec:authorize url="/admin/device/center">
						</ul>
					</div>

+ 12 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/prescription/prescription_list_js.jsp

@ -225,6 +225,8 @@
                                    var html = '';
                                    html += '<a  href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "prescription:info:view", row.prescription_code) + '">续方详情</a>';
                                    html += '<a  style="margin-left:10px;" href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "prescription:order:view", row.prescription_code) + '">订单跟踪</a>';
                                    html += '<a  style="margin-left:10px;" href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "prescription:status:view", row.prescription_code) + '">长处方状态</a>';
                                    // html += '<a  style="margin-left:10px;" href="' + ctx + '/admin/static/prescription/getDataStatus/' + row.prescription_code +  '" target="centerFrame">长处方状态</a>';
                                    return html;
                                }
                            }
@ -322,6 +324,16 @@
                        })
                    });
                    $.subscribe('prescription:status:view', function (event, code) {
                        var title = '长处方状态';
                        me.prescriptionOrderDialog = $.ligerDialog.open({
                            height: 500,
                            width: 700,
                            title: title,
                            url: ctx + '/admin/static/prescription/getDataStatus/' + code
                        })
                    });
                    //城市下拉
                    me.$inpDeviceName.on( 'change', function () {
                        me.setCityFun(me);

+ 51 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/prescription/prescription_status.jsp

@ -0,0 +1,51 @@
<%@ page contentType="text/html; charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <%@ include file="../head/page_head.jsp"%>
    <title>长处方相关数据状态</title>
    <style type="text/css">
        .m-form-group label.label_title{width: 100px}
    </style>
</head>
<body>
<div id="div_status_info_form" data-role-form class="m-form-inline f-mt20 f-ml30" data-role-form style="overflow-y: scroll;height: 450px">
    <input type="hidden" id="prescriptionCode" value='${prescription_code}' data-attr-scan="id"/>
    <div id="div_base_info">
        <div class="m-form-group" style="">
            <label class="label_title" style="width:220px">基卫处方号</label>
            <div class="l-text-wrapper m-form-control">
                <input type="text"  id="inp_recipe_no" class="f-w240" data-attr-scan="recipe_no"/>
            </div>
        </div>
        <div class="m-form-group" style="">
            <label class="label_title" style="width:220px">基卫处方状态码</label>
            <div class="l-text-wrapper m-form-control">
                <input type="text"  id="inp_recipe_status_code" class="f-w240" data-attr-scan="recipe_status_code"/>
            </div>
        </div>
        <div class="m-form-group" style="">
            <label class="label_title" style="width:220px">基卫方状态说明</label>
            <div class="l-text-wrapper m-form-control">
                <input type="text"  id="inp_recipe_status_name" class="f-w240" data-attr-scan="recipe_status_name"/>
            </div>
        </div>
        <div class="m-form-group" style="">
            <label class="label_title" style="width:220px">基卫处方状态扣费状态码</label>
            <div class="l-text-wrapper m-form-control">
                <input type="text"  id="inp_charge_status_code" class="f-w240" data-attr-scan="charge_status_code"/>
            </div>
        </div>
        <div class="m-form-group" style="">
            <label class="label_title" style="width:220px">基卫处方状态扣费说明</label>
            <div class="l-text-wrapper m-form-control">
                <input type="text"  id="inp_charge_status_name" class="f-w240" data-attr-scan="charge_status_name"/>
            </div>
        </div>
    </div>
</div>
</body>
<%@ include file="../head/page_foot.jsp"%>
<%@ include file="prescription_status_js.jsp" %>
</html>

+ 67 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/prescription/prescription_status_js.jsp

@ -0,0 +1,67 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<script>
    (function ($, win) {
        $(function () {
            /* ************************** 变量定义 ******************************** */
            var Util = $.Util;
            var statusInfo = null;
            var prescriptionCode = $("#prescriptionCode").val();
            /* *************************** 函数定义 ******************************* */
            function pageInit() {
                statusInfo.init();
                statusInfo.initForm();
            }
            /* *************************** 模块初始化 ***************************** */
            statusInfo = {
                //变量
                $form: $("#div_status_info_form"),
                init: function () {
                    this.$form.attrScan();
                    $("#inp_recipe_no").ligerTextBox({width: 240});
                    $("#inp_recipe_status_code").ligerTextBox({width: 240});
                    $("#inp_recipe_status_name").ligerTextBox({width: 240});
                    $("#inp_charge_status_code").ligerTextBox({width: 240});
                    $("#inp_charge_status_name").ligerTextBox({width: 240});
                    this.$form.show();
                },
                initForm: function () {
                    if (isNoEmpty(prescriptionCode) && prescriptionCode != 0) {
                        $.ajax({
                            url: ctx + "/admin/static/prescription/getDataStatus",
                            method: "post",
                            dataType: "json",
                            async: "false",
                            data: {prescriptionCode: prescriptionCode},
                            success: function (result) {
                                if (result.status == '200') {
                                    var data = result.data;
                                    //填值
                                    statusInfo.$form.Fields.fillValues({
                                        recipe_no: data.RECIPE_NO,
                                        recipe_status_code: data.RECIPE_STATUS_CODE,
                                        recipe_status_name: data.RECIPE_STATUS_NAME,
                                        charge_status_code: data.CHARGE_STATUS_CODE,
                                        charge_status_name: data.CHARGE_STATUS_NAME,
                                    });
                                } else {
                                    $.Notice.error(result.msg);
                                }
                            },
                            error: function (data) {
                                $.Notice.error("系统异常,请联系管理员!");
                            }
                        })
                    }
                },
            }
            /* *************************** 页面初始化 **************************** */
            pageInit();
        })
    })(jQuery, window);
</script>

+ 33 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/sign/patient_reservation_list.jsp

@ -0,0 +1,33 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
    <%@ include file="../head/page_head.jsp"%>
    <title>预约记录</title>
    <style type="text/css">
        .input {
            height: 30px;
            width: 90px;
        }
        li {width: 100px; }
    </style>
</head>
<body>
<div id="div_wrapper">
	<input type="hidden" id="patient" value="${patient}"/>
	<div class="m-retrieve-area f-h50 f-dn f-pr m-form-inline" data-role-form style='display: block;'>
		<div class="m-form-group f-mt10">
			<div class="m-form-control f-ml10 f-h30">
			</div>
		</div>
	</div>
	<!--######预约记录表######-->
	<div id="div_patient_reservation_grid"></div>
</div>
</body>
<%@ include file="../head/page_foot.jsp"%>
<%@ include file="patient_reservation_list_js.jsp" %>
<%--<script src="${ctx}/static/js/team/doctor/team_member_list.js"></script>--%>
</html>

+ 87 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/sign/patient_reservation_list_js.jsp

@ -0,0 +1,87 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<script>
	(function ($, win) {
		$(function () {
			/* ************************** 变量定义 ******************************** */
			// 通用工具类库
			var Util = $.Util;
			var master = null;
			var patient = $('#patient').val();
			/* *************************** 函数定义 ******************************* */
			function pageInit() {
				master.init();
			}
			/* *************************** 模块初始化 ***************************** */
			master = {
				grid: null,
				init: function () {
					this.grid = $("#div_patient_reservation_grid").ligerGrid($.LigerGridEx.config(
							{
								url: ctx + "/admin/sign/reservationInfo",
								parms: {patient: patient},
								ajaxHeader: ajaxHeaderName,
								ajaxHeaderValue: ajaxHeaderValue,
								root: "data",
								columns: [
                                    {display: '预约号', name: 'code', width: '20%', align: "left"},
                                    {
                                        display: '预约时间段',
                                        name: 'sectionType',
                                        width: '5%',
                                        minColumnWidth: 20,
                                        render: function (row) {
                                            if (Util.isStrEquals(row.sectionType, "a")) {
                                                return "上午";
                                            } else if (Util.isStrEquals(row.available, "p")) {
                                                return "下午";
                                            }
                                            return "";
                                        }
                                    },
									{display: '开始时间', name: 'startTime', width: '12%', align: "left"},
									{display: '结束时间', name: 'endTime', width: '12%', align: "center"},
									{display: '医院名称', name: 'orgName', width: '10%', align: "left"},
									{display: '预约科室', name: 'deptName', width: '10%', align: "center"},
									{display: '专家名称', name: 'doctorName', width: '10%', align: "center"},
									{display: '专家职位', name: 'doctorJob', width: '10%', align: "left"},
                                    {
                                        display: '状态',
                                        name: 'status',
                                        width: '10%',
                                        minColumnWidth: 20,
                                        render: function (row) {
                                            if (Util.isStrEquals(row.status, "0")) {
                                                return "取消预约";
                                            } else if (Util.isStrEquals(row.status, "1")) {
                                                return "预约成功";
                                            } else if (Util.isStrEquals(row.status, "2")) {
                                                return "已诊";
                                            } else if (Util.isStrEquals(row.status, "3")) {
                                                return "停诊";
                                            }
                                            return "";
                                        }
                                    },
                                ],
                                enabledEdit: true,
                                validate: true,
                                unSetValidateAttr: false,
                                usePager: false, //是否分页
                                rownumbers: true, //是否显示行号
                                alternatingRow: false, //是否附加奇偶行效果行
                            }));
                    // 自适应宽度
                    this.grid.adjustToWidth();
                },
            };
            /* *************************** 页面初始化 **************************** */
            pageInit();
        });
    })(jQuery, window);
</script>

+ 1 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/sign/sign_family_list_js.jsp

@ -152,6 +152,7 @@
								render: function (row) {
									var html = '';
									html += '<a  href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "sign:info:view", row.id) + '">明细</a>';
									html += '<a style="margin-left:10px;" href="' + ctx + '/admin/sign/reservation/' + row.patient + '" target="centerFrame" >预约记录</a>';
									//html += '<a  style="margin-left:10px;"href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "patient:info:edit", row.id) + '">编辑</a>';
									//html += '<a  style="margin-left:10px;" title="删除" href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}','{2}'])", "patient:info:del", row.id,row.code) + '">删除</a>';
									if (row.adminTeamId) {

+ 1 - 0
patient-co-manage/wlyy-manage/src/main/webapp/static/js/menu.js

@ -20,6 +20,7 @@ var menu = {
    "device": "/admin/device/initial",//设备管理界面
    "deviceHealthIndex": "/admin/healthIndex/initial",//健康体征数据查询页面
    "patientDevice": "/admin/patientDevice/initial",//居民设备查询页面
    "manufacturer": "/admin/manufacturer/initial",//设备厂商页面
    //数据统计
    "static": "/admin/static/center",//数据统计

+ 11 - 0
patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/model/PatientHealthIndex.java

@ -50,6 +50,8 @@ public class PatientHealthIndex extends IdEntity {
	private Integer status;//状态:0为标准,1为异常
	private Integer manageResult;//异常数据处理 0未干预 1异常有效干预 2异常无效干预
	public String getUser() {
		return user;
	}
@ -192,4 +194,13 @@ public class PatientHealthIndex extends IdEntity {
	public void setStatus(Integer status) {
		this.status = status;
	}
	@Column(name = "manage_result")
	public Integer getManageResult() {
		return manageResult;
	}
	public void setManageResult(Integer manageResult) {
		this.manageResult = manageResult;
	}
}

+ 30 - 6
patient-co-service/wlyy_device/src/main/java/com/yihu/hos/device/service/DeviceService.java

@ -216,6 +216,17 @@ public class DeviceService extends BaseService{
        }
        return true;
    }
    /**
     * 判断当前指标偏高或偏低
     */
    private int checkHealthIndexDetail(Double current, Double max, Double min) {
        if (current > max ) {
            return 1;
        }else if(current < min || current < 0){
            return 2;
        }
        return 0;
    }
    /**************************************************************************************************************/
    /**
     * 设备数据查询接口
@ -835,6 +846,7 @@ public class DeviceService extends BaseService{
            obj.setDel("1");
            obj.setRecordDate(time);    //记录时间
            obj.setSortDate(time);      //排序时间
            obj.setManageResult(0);//默认数据是医生未干预状态
            String user = device.getUser();
            obj.setUser(user);
@ -996,8 +1008,12 @@ public class DeviceService extends BaseService{
            // 餐后
            if (index % 2 == 0) {
                if (!checkHealthIndex(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter )) {
                    msgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L),请处理";
//                    msgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L),请处理";
                    if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==1){
                        msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血糖偏高</span>";
                    }else if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==2){
                        msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血糖偏低</span>";
                    }
                    //体征异常,更新体征数据状态
//                    data.setStatus(1);
//                    patientHealthIndexDao.save(data);
@ -1005,8 +1021,12 @@ public class DeviceService extends BaseService{
                }
            } else { //餐前
                if (!checkHealthIndex(NumberUtils.toDouble(value1), maxValueBefore, minValueBefore)) {
                    msgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L),请处理";
//                    msgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L),请处理";
                    if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==1){
                        msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血糖偏高</span>";
                    }else if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==2){
                        msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血糖偏低</span>";
                    }
                    //体征异常,更新体征数据状态
//                    data.setStatus(1);
//                    patientHealthIndexDao.save(data);
@ -1040,8 +1060,12 @@ public class DeviceService extends BaseService{
            }
            // 收缩压/舒张压校验
            if (!checkHealthIndex(NumberUtils.toDouble(value1), maxValueSSY, minValueSSY) || !checkHealthIndex(NumberUtils.toDouble(value2), maxValueSZY, minValueSZY)) {
                msgContent = patient.getName() + "血压异常(舒张压 " + value2 + "mmHg、收缩压 " + value1 + "mmHg),请处理";
//                msgContent = patient.getName() + "血压异常(舒张压 " + value2 + "mmHg、收缩压 " + value1 + "mmHg),请处理";
                if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueSSY, minValueSSY)==1||checkHealthIndexDetail(NumberUtils.toDouble(value2), maxValueSZY, minValueSZY)==1){
                    msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血压偏高</span>";
                }else if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueSSY, minValueSSY)==2||checkHealthIndexDetail(NumberUtils.toDouble(value2), maxValueSZY, minValueSZY)==2){
                    msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血压偏低</span>";
                }
                //体征异常,更新体征数据状态
//                data.setStatus(1);
//                patientHealthIndexDao.save(data);

+ 1 - 1
patient-co-service/wlyy_service/src/main/resources/application.yml

@ -165,4 +165,4 @@ zyapi:
  openCrypto: true
#    i健康项目地址
wlyy:
  api: http://www.xmtyw.cn/wlyy
  api: http://www.xmtyw.cn/wlyy

+ 17 - 2
patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/task/PushMsgTask.java

@ -52,6 +52,10 @@ public class PushMsgTask {
    private String template_service_remind;
    @Value("${wechat.message.template_callserver_remind}")
    private String template_callserver_remind;
    @Value("${wechat.message.template_article_check_result}")
    private String template_article_check_result;
    @Value("${wechat.message.template_article_authen}")
    private String template_article_authen;
    @Value("${pushMes.method}")
    private String putMesMethod;
    @Value("${pushMes.redis_prescription_title}")
@ -209,7 +213,7 @@ public class PushMsgTask {
    /**
     * 直接发送微信模板消息
     *
     * @param type 1:处方待处理提醒  2:服务状态提醒  3:居民体征异常提醒  4:咨询请求通知  5:签约申请通知  6:随访提醒  7:处理结果通知 8 咨询回复提醒 9 代办事项提醒
     * @param type 1:处方待处理提醒  2:服务状态提醒  3:居民体征异常提醒  4:咨询请求通知  5:签约申请通知  6:随访提醒  7:处理结果通知 8 咨询回复提醒 9 代办事项提醒 12 文章审核结果提醒
     * @return
     */
    public boolean sendWeixinMessage(String access_token, int type, String openid, String url, JSONObject data) {
@ -253,7 +257,12 @@ public class PushMsgTask {
     */
    public String typeMsg(int type, String openid, String url, JSONObject data) {
        try {
            url = server_url + "wx_doctor/html/" + url;
            if(StringUtils.isNotEmpty(url)){
                url = server_url + "wx_doctor/html/" + url;
            }else{
                url="";
            }
            String temp_id = getTemplateId(type);
            JSONObject temp = new JSONObject();
            temp.put("touser", openid);
@ -340,6 +349,12 @@ public class PushMsgTask {
            case 11:
                templateId = template_callserver_remind;
                break;
            case 12:
                templateId = template_article_check_result;
                break;
            case 13:
                templateId = template_article_authen;
                break;
        }
        return templateId;
    }

+ 4 - 1
patient-co/patient-co-doctor-assistant/src/main/resources/application-dev.yml

@ -54,7 +54,10 @@ wechat:
   template_service_remind:  v2iqCHvqNLiU0PBBMIEPkB40xi8eUtdpsjwyxw-euo4
   #协同服务提醒
   template_callserver_remind: Fsnt5YUDBCNOREMKifZbr51XhNRyop6VAEV8mIuFYuc
   #健康文章审核提醒
   template_article_check_result: qiYuHVB20unKW2Yd9qIB7rVZyWfeSGR2WmkSXzCtFuQ
   #健康文章认证处理提醒
   template_article_authen: X3m6jEg9hNGJqn4dnfPpnetxQh63ktu0SRvTRFxcqhI
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/
  yihu_OpenPlatform_appId: 9000276

+ 4 - 0
patient-co/patient-co-doctor-assistant/src/main/resources/application-devtest.yml

@ -54,6 +54,10 @@ wechat:
   template_service_remind:  v2iqCHvqNLiU0PBBMIEPkB40xi8eUtdpsjwyxw-euo4
   #协同服务提醒
   template_callserver_remind: Fsnt5YUDBCNOREMKifZbr51XhNRyop6VAEV8mIuFYuc
   #健康文章审核提醒
   template_article_check_result: qiYuHVB20unKW2Yd9qIB7rVZyWfeSGR2WmkSXzCtFuQ
   #健康文章认证处理提醒
   template_article_authen: X3m6jEg9hNGJqn4dnfPpnetxQh63ktu0SRvTRFxcqhI
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/

+ 4 - 0
patient-co/patient-co-doctor-assistant/src/main/resources/application-local.yml

@ -54,6 +54,10 @@ wechat:
   template_service_remind:  v2iqCHvqNLiU0PBBMIEPkB40xi8eUtdpsjwyxw-euo4
   #协同服务提醒
   template_callserver_remind: Fsnt5YUDBCNOREMKifZbr51XhNRyop6VAEV8mIuFYuc
   #健康文章审核提醒
   template_article_check_result: qiYuHVB20unKW2Yd9qIB7rVZyWfeSGR2WmkSXzCtFuQ
   #健康文章认证处理提醒
   template_article_authen: X3m6jEg9hNGJqn4dnfPpnetxQh63ktu0SRvTRFxcqhI
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/

+ 4 - 0
patient-co/patient-co-doctor-assistant/src/main/resources/application-localtest.yml

@ -54,6 +54,10 @@ wechat:
   template_service_remind:  v2iqCHvqNLiU0PBBMIEPkB40xi8eUtdpsjwyxw-euo4
   #协同服务提醒
   template_callserver_remind: Fsnt5YUDBCNOREMKifZbr51XhNRyop6VAEV8mIuFYuc
   #健康文章审核提醒
   template_article_check_result: qiYuHVB20unKW2Yd9qIB7rVZyWfeSGR2WmkSXzCtFuQ
   #健康文章认证处理提醒
   template_article_authen: X3m6jEg9hNGJqn4dnfPpnetxQh63ktu0SRvTRFxcqhI
yihu:

+ 4 - 0
patient-co/patient-co-doctor-assistant/src/main/resources/application-prod.yml

@ -53,6 +53,10 @@ wechat:
   template_service_remind:  v2iqCHvqNLiU0PBBMIEPkB40xi8eUtdpsjwyxw-euo4
   #协同服务提醒
   template_callserver_remind: Fsnt5YUDBCNOREMKifZbr51XhNRyop6VAEV8mIuFYuc
   #健康文章审核提醒
   template_article_check_result: qiYuHVB20unKW2Yd9qIB7rVZyWfeSGR2WmkSXzCtFuQ
   #健康文章认证处理提醒
   template_article_authen: X3m6jEg9hNGJqn4dnfPpnetxQh63ktu0SRvTRFxcqhI
yihu:
  yihu_OpenPlatform_url: http://api.yihu.com.cn/OpenPlatform/cgiBin/1.0/

+ 4 - 0
patient-co/patient-co-doctor-assistant/src/main/resources/application-test.yml

@ -53,6 +53,10 @@ wechat:
   template_service_remind:  v2iqCHvqNLiU0PBBMIEPkB40xi8eUtdpsjwyxw-euo4
   #协同服务提醒
   template_callserver_remind: Fsnt5YUDBCNOREMKifZbr51XhNRyop6VAEV8mIuFYuc
   #健康文章审核提醒
   template_article_check_result: qiYuHVB20unKW2Yd9qIB7rVZyWfeSGR2WmkSXzCtFuQ
   #健康文章认证处理提醒
   template_article_authen: X3m6jEg9hNGJqn4dnfPpnetxQh63ktu0SRvTRFxcqhI
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/

+ 48 - 17
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/compute/ComputeHelper.java

@ -4,6 +4,7 @@ import com.yihu.wlyy.entity.dimension.WlyyDimensionQuota;
import com.yihu.wlyy.entity.doctor.team.admin.AdminTeam;
import com.yihu.wlyy.statistics.util.DateUtil;
import com.yihu.wlyy.statistics.vo.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -158,29 +159,53 @@ public class ComputeHelper {
        }
        //根据维度初始化数据
        for (int i = 0; i < dimensionQuotas.size(); i++) {
            Map<String, SaveModel> mapTemp = new HashMap<>();
            WlyyDimensionQuota dimensionQuota = dimensionQuotas.get(i);
            List<DictModel> dictModels = jdbcTemplate.query(dimensionQuota.getDictSql(), new BeanPropertyRowMapper(DictModel.class));
            for (Map.Entry<String, SaveModel> oneSaveModel : lastMaps.entrySet()) {
                for (int j = 0; j < dictModels.size(); j++) {
                    SaveModel saveModelTemp = new SaveModel();
                    DictModel dictModel = dictModels.get(j);
                    BeanUtils.copyProperties(oneSaveModel.getValue(), saveModelTemp);
                    SaveModel.class.getMethod("setSlaveKey" + (i + 1) + "Name", String.class).invoke(saveModelTemp, dictModel.getName());
                    SaveModel.class.getMethod("setSlaveKey" + (i + 1), String.class).invoke(saveModelTemp, dictModel.getCode());
                    //根据维度生成新的key
                    StringBuffer strKey = new StringBuffer(oneSaveModel.getKey() + "-" + dictModel.getCode());
                    mapTemp.put(strKey.toString(), saveModelTemp);
            for (int i = 0; i < dimensionQuotas.size(); i++) {
                Map<String, SaveModel> mapTemp = new HashMap<>();
                WlyyDimensionQuota dimensionQuota = dimensionQuotas.get(i);
//                List<DictModel> dictModels = jdbcTemplate.query(dimensionQuota.getDictSql(), new BeanPropertyRowMapper(DictModel.class));
                List<Map<String, Object>> listMap = jdbcTemplate.queryForList(dimensionQuota.getDictSql());
                for (Map.Entry<String, SaveModel> oneSaveModel : lastMaps.entrySet()) {
                    for (int j = 0; j < listMap.size(); j++) {
                        SaveModel saveModelTemp = new SaveModel();
                        Map<String, Object> dictModel = listMap.get(j);
                        BeanUtils.copyProperties(oneSaveModel.getValue(), saveModelTemp);
                        SaveModel.class.getMethod("setSlaveKey" + (i + 1) + "Name", String.class).invoke(saveModelTemp, dictModel.get("name"));
                        SaveModel.class.getMethod("setSlaveKey" + (i + 1), String.class).invoke(saveModelTemp, dictModel.get("code"));
                        //根据维度生成新的key
                        StringBuffer strKey = new StringBuffer(oneSaveModel.getKey() + "-" + dictModel.get("code"));
                        mapTemp.put(strKey.toString(), saveModelTemp);
                    }
                }
            }
            //如果字典长度是0 抛出异常
            if (dictModels.size() == 0) {
            if (listMap.size() == 0) {
                throw new Exception("dict size:0,sql:" + dimensionQuota.getDictSql());
            }
            lastMaps = mapTemp;
        }
//        for (int i = 0; i < dimensionQuotas.size(); i++) {
//            Map<String, SaveModel> mapTemp = new HashMap<>();
//            WlyyDimensionQuota dimensionQuota = dimensionQuotas.get(i);
//            List<DictModel> dictModels = jdbcTemplate.query(dimensionQuota.getDictSql(), new BeanPropertyRowMapper(DictModel.class));
//            for (Map.Entry<String, SaveModel> oneSaveModel : lastMaps.entrySet()) {
//                for (int j = 0; j < dictModels.size(); j++) {
//                    SaveModel saveModelTemp = new SaveModel();
//                    DictModel dictModel = dictModels.get(j);
//
//                    BeanUtils.copyProperties(oneSaveModel.getValue(), saveModelTemp);
//                    SaveModel.class.getMethod("setSlaveKey" + (i + 1) + "Name", String.class).invoke(saveModelTemp, dictModel.getName());
//                    SaveModel.class.getMethod("setSlaveKey" + (i + 1), String.class).invoke(saveModelTemp, dictModel.getCode());
//                    //根据维度生成新的key
//                    StringBuffer strKey = new StringBuffer(oneSaveModel.getKey() + "-" + dictModel.getCode());
//                    mapTemp.put(strKey.toString(), saveModelTemp);
//                }
//            }
//            //如果字典长度是0 抛出异常
//            if (dictModels.size() == 0) {
//                throw new Exception("dict size:0,sql:" + dimensionQuota.getDictSql());
//            }
//            lastMaps = mapTemp;
//        }
        //设置值
        for (Map.Entry<String, SaveModel> one : lastMaps.entrySet()) {
@ -196,6 +221,12 @@ public class ComputeHelper {
                SaveModel saveModel = one.getValue();
                saveModel.setResult1(result1);
                saveModel.setResult2(result2);
                if(dataModels.size()>0&& StringUtils.isNotEmpty(dataModels.get(0).getSlaveKey1())&&!StringUtils.isNotEmpty(saveModel.getSlaveKey1())){
                    saveModel.setSlaveKey1(dataModels.get(0).getSlaveKey1());
                }
                if(dataModels.size()>0&& StringUtils.isNotEmpty(dataModels.get(0).getSlaveKey2())&&!StringUtils.isNotEmpty(saveModel.getSlaveKey2())){
                    saveModel.setSlaveKey2(dataModels.get(0).getSlaveKey2());
                }
                returnList.add(saveModel);
            } else {
                returnList.add(one.getValue());

+ 52 - 0
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/DeviceTypeConvert.java

@ -0,0 +1,52 @@
package com.yihu.wlyy.statistics.etl.convert.wlyy;
import com.yihu.wlyy.entity.dimension.WlyyDimensionQuota;
import com.yihu.wlyy.statistics.etl.convert.Convert;
import com.yihu.wlyy.statistics.util.Contant;
import com.yihu.wlyy.statistics.util.IdCardUtil;
import com.yihu.wlyy.statistics.vo.DataModel;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by chenweida on 2017/6/5.
 */
public class DeviceTypeConvert implements Convert {
    /**
     * @param oneList    数据
     * @param slaveLevel 从1开始
     * @return
     */
    @Override
    public List<DataModel> convert(JdbcTemplate jdbcTemplate,List<DataModel> oneList, String slaveLevel, WlyyDimensionQuota temp) {
        String sql = temp.getDictSql();
        List<Map<String,Object>> result = jdbcTemplate.queryForList(sql);
        for(DataModel one:oneList) {
            try {
                String key = getKey(one,result);
                DataModel.class.getMethod("setSlaveKey" + slaveLevel, String.class).invoke(one, key);
            } catch (Exception e) {
                e.printStackTrace();
            }
        };
        return oneList;
    }
    public String getKey(DataModel dataModel,List<Map<String,Object>> dict){
        for (Map<String,Object> one : dict){
            String result = one.get("name")+"";
            if(dataModel.getServerType().equals(result)||dataModel.getServerType().indexOf(result)>0){
                return one.get("code")+"";
            }
        }
        return "";
    }
}

+ 66 - 0
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/UseDeviceTypeConvert.java

@ -0,0 +1,66 @@
package com.yihu.wlyy.statistics.etl.convert.wlyy;
import com.yihu.wlyy.entity.dimension.WlyyDimensionQuota;
import com.yihu.wlyy.statistics.etl.convert.Convert;
import com.yihu.wlyy.statistics.vo.DataModel;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
/**
 * Created by chenweida on 2017/6/5.
 */
public class UseDeviceTypeConvert implements Convert {
    /**
     * @param oneList    数据
     * @param slaveLevel 从1开始
     * @return
     */
    @Override
    public List<DataModel> convert(JdbcTemplate jdbcTemplate,List<DataModel> oneList, String slaveLevel, WlyyDimensionQuota temp) {
        String sql = temp.getDictSql();
        List<Map<String,Object>> result = jdbcTemplate.queryForList(sql);
        Map<String,Object> map = null;
        for(DataModel one:oneList) {
            try {
                map = getTeam(one,jdbcTemplate);
                if(map!=null){
                    one.setTeam(map.get("grant_admin_team")+"");
                    one.setServerType(map.get("device_name")+"");
                }else{
                    continue;
                }
                String key = getKey(one,result);
                DataModel.class.getMethod("setSlaveKey" + slaveLevel, String.class).invoke(one, key);
            } catch (Exception e) {
                e.printStackTrace();
            }
        };
        return oneList;
    }
    public String getKey(DataModel dataModel,List<Map<String,Object>> dict){
        for (Map<String,Object> one : dict){
            String result = one.get("name")+"";
            if(dataModel.getServerType().equals(result)||dataModel.getServerType().indexOf(result)>0){
                return one.get("code")+"";
            }
        }
        return "";
    }
    public Map<String,Object> getTeam(DataModel dataModel,JdbcTemplate jdbcTemplate){
        String deviceCode =  dataModel.getHealthProblem();
        String sql = " select * from device.wlyy_devices d where d.device_code ='"+deviceCode+"' and is_grant=1";
        List<Map<String,Object>> result = jdbcTemplate.queryForList(sql);
        if(result.size()>0){
            return result.get(0);
        }
        return null;
    }
}

+ 96 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/activemq/DeviceMeasureListener.java

@ -0,0 +1,96 @@
package com.yihu.wlyy.activemq;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.common.account.PatientService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import java.util.Date;
/**
 * Created by zhangdan on 2018/06/13.
 * 设备测量监听
 */
@Component
public class DeviceMeasureListener implements MessageListener {
    private Logger logger = LoggerFactory.getLogger(DeviceMeasureListener.class);
    @Autowired
    private PushMsgTask pushMsgTask;
    @Autowired
    private PatientService patientService;
    @Autowired
    private WeiXinAccessTokenUtils weiXinAccessTokenUtils;
    @Autowired
    private SignFamilyDao signFamilyDao;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    @Override
    public void onMessage(Message message) {
        try {
            TextMessage textMessage = (TextMessage) message;
            JSONObject obj = JSONObject.fromObject(textMessage.getText());
            if(obj.get("patient")==null){
                return;
            }
            String patientCode = obj.get("patient")!=null?obj.get("patient").toString():null;
            Integer devcieType = obj.get("deviceType")!=null?(Integer)obj.get("deviceType"):null;
            String czrq = obj.get("czrq")!=null?(String)obj.get("czrq"):DateUtil.dateToStrLong(new Date());
            Patient patient = patientService.findByCode(patientCode);
            SignFamily signFamily = signFamilyDao.findByPatient(patientCode);
            String doctorName = "";
            String name = "";
            String openId="";
            if (signFamily!=null){
                doctorName = signFamily.getDoctorName();
            }
            if (patient!=null){
                name = patient.getName();
                openId = patient.getOpenid();
            }
            org.json.JSONObject sendJson = new org.json.JSONObject();
            String first = "";
            String remark = "";
            WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_device_measure_notice","sbsltx");
            first = templateConfig.getFirst();
            first = first.replace("key1",(doctorName==null?"":doctorName+"(全科)"));
            remark = templateConfig.getRemark();
            sendJson.put("keyword1", name);
            sendJson.put("keyword2", czrq);
            if (devcieType==1){
                //血糖
                sendJson.put("keyword3", "血糖未测量");
                sendJson.put("keyword4","签约居民多采用社区发放的设备测量血糖,医生指导更准确!");
            }else if (devcieType==2){
                //血压
                sendJson.put("keyword3", "血压未测量");
                sendJson.put("keyword4","签约居民多采用社区发放的设备测量血压,医生指导更准确!");
            }
            sendJson.put("first", first);
            sendJson.put("remark", remark);
            System.out.println(sendJson.toString());
            pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 21, openId, name, sendJson);
            //返回服务器表示消息消费成功
            message.acknowledge();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

+ 17 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/activemq/StartListener.java

@ -26,16 +26,21 @@ public class StartListener {
    @Value("${activemq.queue.healtHarticleQueue}")
    private String healtHarticleQueue;
    @Value("${activemq.queue.deviceMeasurementRemindingQueue}")
    private String deviceMeasurementRemindingQueue;
    @Value("${activemq.consumers.count}")
    private Integer count;
    @Autowired
    private HealthArtListener healthArtListener;
    @Autowired
    private CachingConnectionFactory cachingConnectionFactory;
    @Autowired
    private DeviceMeasureListener deviceMeasureListener;
    @PostConstruct
    public void startListener() {
        startHealthArticQueueListener();
        startDeviceMeasureQueueListener();
    }
    /**
@ -51,6 +56,18 @@ public class StartListener {
        }
    }
    /**
     * 启动设备测量提醒监听
     */
    private void startDeviceMeasureQueueListener(){
        try {
            startReceiverByQueueName(deviceMeasureListener,deviceMeasurementRemindingQueue);
            logger.info("start deviceMeasureListener success");
        }catch (Exception e){
            logger.error("start deviceMeasureListener error");
        }
    }
    /**
     * 启动
     *

+ 19 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/event/ApplicationEvent.java

@ -3,6 +3,7 @@ package com.yihu.wlyy.event;
import com.yihu.wlyy.job.*;
import com.yihu.wlyy.job.consult.EvaluateScoreJob;
import com.yihu.wlyy.job.consult.FinishConsultJob;
import com.yihu.wlyy.job.consult.ParticipantsCleanJob;
import com.yihu.wlyy.redis.RedisThread;
import com.yihu.wlyy.util.SystemConf;
import org.slf4j.Logger;
@ -187,6 +188,15 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
            } else {
                logger.info("patient_followup_syb_job  job exist");
            }
            //同步imgroup成员,每天凌晨3点30分执行一次
            if (!quartzHelper.isExistJob("participants_clean_job")) {
                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("participants_clean_job");
                quartzHelper.addJob(ParticipantsCleanJob.class, trigger, "participants_clean_job", new HashMap<String, Object>());
                logger.info("participants_clean_job  job success");
            } else {
                logger.info("participants_clean_job  job exist");
            }
    
            //居民随访信息上传基卫,每天凌晨4点执行一次
            if (!quartzHelper.isExistJob("patient_followup_upload_job")) {
@ -245,6 +255,15 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
            new Thread(redisThread).start();
            logger.info("redis message end");
            //慢病患者医疗保险号同步,每天6点执行一次
            if (!quartzHelper.isExistJob("patient_medicare_number_job")) {
                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("patient_medicare_number_job");
                quartzHelper.addJob(PatientMedicareNumberJob.class, trigger, "patient_medicare_number_job", new HashMap<String, Object>());
                logger.info("patient_medicare_number_job  job success");
            } else {
                logger.info("patient_medicare_number_job  job exist");
            }
        } catch (Exception e) {
            logger.info("sign end job start failed");
        }

+ 34 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/PatientMedicareNumberJob.java

@ -0,0 +1,34 @@
package com.yihu.wlyy.job;
import com.yihu.wlyy.service.third.jw.JwPatientMedicareNumberService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
 * 慢病患者医疗保险号同步JOB
 * @author humingfen
 * @date 2018/5/22
 */
public class PatientMedicareNumberJob implements Job {
    private static final Logger logger = LoggerFactory.getLogger(PatientMedicareNumberJob.class);
    @Autowired
    private JwPatientMedicareNumberService jwPatientMedicareNumberService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException
    {
        logger.info("START=====开始更新慢病患者医疗保险号的JOB");
        try {
            jwPatientMedicareNumberService.getEffectiveSignFamily();
        }catch (Exception e) {
            e.printStackTrace();
            logger.info("END===ERROR===开始更新慢病混着医疗保险号JOB,message:" +
                    e.getMessage());
        }
    }
}

+ 74 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/consult/ParticipantsCleanJob.java

@ -0,0 +1,74 @@
package com.yihu.wlyy.job.consult;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamMemberDao;
import com.yihu.wlyy.util.ImUtill;
import org.json.JSONObject;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
import java.util.List;
import java.util.Map;
/**
 * 每天同步一次im group团队成员
 * @author yeshijie on 2018/5/18.
 */
public class ParticipantsCleanJob implements Job {
    private static Logger logger = LoggerFactory.getLogger(ParticipantsCleanJob.class);
    @Value("${im.data_base_name}")
    private String imDb;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private ImUtill imUtill;
    @Autowired
    private DoctorAdminTeamMemberDao doctorAdminTeamMemberDao;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        try{
            logger.info("ParticipantsCleanJob start.....");
            SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
            //查询会话列表找出type=3的group会话
            StringBuffer sql1 = new StringBuffer();
            sql1.append("SELECT s.id,name FROM ").append(imDb).append(".sessions s ").append("WHERE s.type= 3 ");
            List<Map<String,Object>> list = jdbcTemplate.queryForList(sql1.toString());
            list.stream().forEach(one->{
                String sessionId = one.get("id").toString();
                String sessionName = one.get("name").toString();
                //删除不在团队的成员
                StringBuffer sql2 = new StringBuffer();
                sql2.append("delete from ").append(imDb).append(".participants WHERE session_id = '")
                        .append(sessionId).append("' and participant_id not in (")
                        .append("SELECT doctor_code from wlyy_admin_team_member WHERE team_id = ")
                        .append(sessionId).append(" and available =1)");
                jdbcTemplate.execute(sql2.toString());
                //新增团队成员直接调用im接口
                List<Doctor> doctors = doctorAdminTeamMemberDao.findAllMembers(Long.parseLong(sessionId));
                if(doctors!=null&&doctors.size()>0){
                    JSONObject participants = new JSONObject();
                    doctors.forEach(doctor -> {
                        participants.put(doctor.getCode(),0);
                    });
                    imUtill.createSession(participants,"3",sessionName,sessionId);
                }
            });
            logger.info("ParticipantsCleanJob end.....");
        }catch (Exception e){
            e.printStackTrace();
            logger.error("ParticipantsCleanJob error....."+e.getMessage());
        }
    }
}

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

@ -43,4 +43,7 @@ public interface HospitalDao extends PagingAndSortingRepository<Hospital, Long>,
	@Query("select p from Hospital p where p.city = ?1 and p.del='1' and p.level =2 and p.centerSite='00'")
	List<Hospital> findByCity(String city);
	@Query("select distinct p.code from Hospital p")
	List<String> findCode();
}

+ 1 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/patient/PatientDao.java

@ -79,4 +79,5 @@ public interface PatientDao extends PagingAndSortingRepository<Patient, Long> {
    @Query(value = "SELECT DISTINCT openid FROM `wlyy_patient` WHERE `openid` IS NOT NULL AND `openid` <> ' ' AND `openid` <> 'undefined' " +
            " AND `sicard_status` IS NULL AND `sicard_time` >= ?1 ORDER BY `sicard_time`",nativeQuery = true)
    List<String> listNotupdatedByDate(String beginTime);
}

+ 7 - 6
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/patient/SignFamilyDao.java

@ -5,20 +5,17 @@
 *******************************************************************************/
package com.yihu.wlyy.repository.patient;
import java.util.Date;
import java.util.List;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.SignFamilyRenew;
import com.yihu.wlyy.entity.patient.SignFamily;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.yihu.wlyy.entity.patient.SignFamily;
import java.util.Date;
import java.util.List;
public interface SignFamilyDao extends PagingAndSortingRepository<SignFamily, Long>, JpaSpecificationExecutor<SignFamily> {
@ -431,4 +428,8 @@ public interface SignFamilyDao extends PagingAndSortingRepository<SignFamily, Lo
    @Query(value = "SELECT f.* FROM wlyy_sign_family f WHERE f.idcard = ?1 and f.`status` = -4 ORDER BY sign_year desc LIMIT 0,1 ",nativeQuery = true)
    SignFamily findLatelyRenew(String idcard);
    //查询wlyy_sign_family有效签约且居民的医疗保险号为空的数据
    @Query(value = "select a.idcard from wlyy_sign_family a left join wlyy_patient b on a.idcard = b.idcard where a.hospital = ?1 and (a.type = 2 or a.type = 1) " +
            "and a.status = 1 and a.expenses_status = 1 and (b.medicare_number is null or b.medicare_number = '')", nativeQuery = true)
    List<String> findIdcardByStatus(String hospital);
}

+ 4 - 2
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/sign/PatientRemindService.java

@ -205,7 +205,8 @@ public class PatientRemindService extends BaseService {
            if (StringUtils.isNotEmpty(p.getMobile())) {
                isMobileExist = true;
                JSONObject result = smsService.sendMsg(p.getMobile(), doc.getName() + "医生提醒您:为完成家庭医生签约," +
                        "尽早为您提供家庭医生服务,请尽快到" + hos.getName() + "(地址:" + hos.getAddress() + ")缴费");
                        "尽早为您提供家庭医生服务,您可登录\"厦门i健康\"微信公众号/家庭医生/签约管理,选择申请的家庭签约进行签约确认(缴费)。" +
                        "如需线下办理,请尽快到" + hos.getName() + "(地址:" + hos.getAddress() + ")缴费");
                if (result != null && result.getInt("result") == 0) {
                    mFlag = true;
                }
@ -267,7 +268,8 @@ public class PatientRemindService extends BaseService {
//            }
            //发送IM
            consultService.sendMucMessageBySingnType(doc.getCode(), doc.getName(), p.getCode(), doc.getName() + "医生提醒您:为完成家庭医生签约," +
                    "尽早为您提供家庭医生服务,请尽快到" + hos.getName() + "(地址:" + hos.getAddress() + ")缴费", "1",p.getName());
                    "尽早为您提供家庭医生服务,您可登录\"厦门i健康\"微信公众号/家庭医生/签约管理,选择申请的家庭签约进行签约确认(缴费)。" +
                    "如需线下办理,请尽快到" + hos.getName() + "(地址:" + hos.getAddress() + ")缴费", "1",p.getName());
            if (wFlag || mFlag) {
                reObj.put("status", 200);

+ 49 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/third/jw/JwPatientMedicareNumberService.java

@ -0,0 +1,49 @@
package com.yihu.wlyy.service.third.jw;
import com.yihu.wlyy.repository.organization.HospitalDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.util.HttpClientUtil;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
 * 基位签约信息接口
 * Created by humingfen on 2018/5/22.
 */
@Service
public class JwPatientMedicareNumberService {
    private static final Logger logger = LoggerFactory.getLogger(JwPatientMedicareNumberService.class);
    //基卫服务地址
    @Value("${sign.zysoft}")
    private String jwUrl;
    @Autowired
    private HospitalDao hospitalDao;
    @Autowired
    private SignFamilyDao signFamilyDao;
    @Autowired
    private HttpClientUtil httpClientUtil;
    /**
     * 根据社区查找有效签约居民的签约信息,并同步到本地数据库
     */
    public void getEffectiveSignFamily () throws Exception {
        List<String> hospitals = hospitalDao.findCode();
        for(String hospital : hospitals) {
            List<String> idcards = signFamilyDao.findIdcardByStatus(hospital);
            String url = jwUrl + "/third/zysoftservice/getSickCurrnetFamilySignInfo";
            for (String idcard : idcards) {
                List<NameValuePair> params = new ArrayList<>();
                params.add(new BasicNameValuePair("idcard", idcard));
                httpClientUtil.post(url, params, "UTF-8");
            }
        }
    }
}

+ 20 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/task/PushMsgTask.java

@ -58,6 +58,8 @@ public class PushMsgTask {
    private String template_doctor_audit;//审核结果通知
    @Value("${wechat.message.template_doctor_service}")
    private String template_doctor_service;//服务结果通知
    @Value("${wechat.message.template_device_measure_notice}")
    private String template_device_measure_notice;//设备测量提醒
    @Autowired
    private WechatPushLogDao wechatPushLogDao;
@ -650,6 +652,24 @@ public class PushMsgTask {
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("keyword3"));
                m.put("keyword3", keyword3);
            }else if (type==21){//设备测量提醒
                temp.setTemplate_id(template_device_measure_notice);
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("keyword1"));
                m.put("keyword1", keyword1);
                WechatTemplateData keyword2 = new WechatTemplateData();
                keyword2.setColor("#000000");
                keyword2.setValue(json.getString("keyword2"));
                m.put("keyword2", keyword2);
                WechatTemplateData keyword3 = new WechatTemplateData();
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("keyword3"));
                m.put("keyword3", keyword3);
                WechatTemplateData keyword4 = new WechatTemplateData();
                keyword4.setColor("#000000");
                keyword4.setValue(json.getString("keyword4"));
                m.put("keyword4", keyword4);
            }
            temp.setData(m);

+ 36 - 5
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/quota/JobController.java

@ -1,16 +1,12 @@
package com.yihu.wlyy.web.quota;
import com.yihu.wlyy.job.*;
import com.yihu.wlyy.job.consult.ConsultCleanerJob;
import com.yihu.wlyy.job.consult.EvaluateScoreJob;
import com.yihu.wlyy.job.consult.FamousConsultTimesJob;
import com.yihu.wlyy.job.consult.FinishConsultJob;
import com.yihu.wlyy.job.consult.*;
import com.yihu.wlyy.service.app.disease.PatientDiseaseService;
import com.yihu.wlyy.service.app.scheduling.DoctorWorkTimeService;
import com.yihu.wlyy.service.app.statistics.StatisticsService;
import com.yihu.wlyy.service.quota.JobService;
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -430,6 +426,25 @@ public class JobController extends BaseController {
        }
    }
    /**
     * 每天同步一次im group团队成员
     * @author ysj
     * @date 2018/5/18 14:16
     */
    @RequestMapping(value = "/executeParticipantsCleanJob", method = RequestMethod.POST)
    @ApiOperation("每天同步一次im group团队成员")
    public String executeParticipantsCleanJob() {
        try {
            quartzHelper.startNow(ParticipantsCleanJob.class, UUID.randomUUID().toString(), null);
            return write(200, "启动成功");
        } catch (Exception e) {
            error(e);
            return error(-1, e.getMessage());
        }
    }
    /**
     * 产检提醒
     * @author ysj
@ -762,4 +777,20 @@ public class JobController extends BaseController {
        }
    }
    /**
     *立即执行慢病患者医疗保险号同步
     *@author humingfen
     *@date 2018/5/23
     */
    @RequestMapping(value = "/executePatientMedicareNumberJob", method = RequestMethod.POST)
    @ApiOperation("立即执行前一天的慢病患者医疗保险号同步")
    public String executePatientMedicareNumberJob() {
        try {
            quartzHelper.startNow(PatientMedicareNumberJob.class, UUID.randomUUID().toString(), null);
            return write(200, "启动成功");
        } catch (Exception e) {
            error(e);
            return error(-1, e.getMessage());
        }
    }
}

+ 3 - 1
patient-co/patient-co-wlyy-job/src/main/resources/application-dev.yml

@ -69,6 +69,8 @@ wechat:
   template_doctor_audit:  OFyLUeBW3r9trWw-i6pbB1sPSTD4J2recCv_mc-gKxA
   #服务结果通知
   template_doctor_service:  ezr5RlX0nvh7bGU9aVsGDMJbjKDp1uMKP-AGGYXwI5g
   #设备测量提醒
   template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/
@ -90,7 +92,7 @@ images:
sign:
  check_upload: http://172.19.103.88:8011/wlyy_service
  zysoft: http://59.61.92.90:8072/wlyy_sign
quartz:
  name: schedulerFactoryBean_dev

+ 4 - 1
patient-co/patient-co-wlyy-job/src/main/resources/application-devtest.yml

@ -69,6 +69,8 @@ wechat:
    template_doctor_audit:  lCtOgJgL1tBJbAytqN7cn-FgCH_Usg99FENEy2TrC08
    #服务结果通知
    template_doctor_service: i34rq3xFLnpf_VN2Jor9n2YlQqJMM7oXyYvuctriISw
    #设备测量提醒
    template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/
@ -86,7 +88,7 @@ images:
sign:
  check_upload: http://172.19.103.88:8011/wlyy_service
  zysoft: http://59.61.92.90:8072/wlyy_sign
quartz:
  name: schedulerFactoryBean_test_dev
@ -105,6 +107,7 @@ activemq:
  url: tcp://172.19.103.87:61616
  queue:
    healtHarticleQueue: healthArticleChannel_devtest
    deviceMeasurementRemindingQueue : deviceMeasurementChannel_test #设备测量提醒
  consumers:
    count: 10 #消费者集群数

+ 3 - 1
patient-co/patient-co-wlyy-job/src/main/resources/application-prod.yml

@ -71,6 +71,8 @@ wechat:
   template_doctor_audit:  egrX5Larpkv8opQW67_hwsZoT0OHwwUpE1v7HeU_Jnw
   #服务结果通知
   template_doctor_service:  xhi1LEudiZwJfZylOHuZNo8EiA73GtSshPQv5XOt9Lk
   #设备测量提醒
   template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
yihu:
  yihu_OpenPlatform_url: http://api.yihu.com.cn/OpenPlatform/cgiBin/1.0/
@ -88,7 +90,7 @@ images:
sign:
  check_upload: http://59.61.92.90:8087/wlyy_service
  zysoft: http://59.61.92.90:8072/wlyy_sign
quartz:

+ 2 - 0
patient-co/patient-co-wlyy-job/src/main/resources/application-test.yml

@ -70,6 +70,8 @@ wechat:
   template_doctor_audit:  lCtOgJgL1tBJbAytqN7cn-FgCH_Usg99FENEy2TrC08
   #服务结果通知
   template_doctor_service:  i34rq3xFLnpf_VN2Jor9n2YlQqJMM7oXyYvuctriISw
   #设备测量提醒
   template_device_measure_notice: bzwLOFFPSe2vq74IljvVIPmvjP-C4ebEUAFORyq-2dY
yihu:
  yihu_OpenPlatform_url: http://ssotest.yihu.cn/OpenPlatform/cgiBin/1.0/

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

@ -104,6 +104,9 @@ doctor_feldsher_template_job=0 */30 * * * ?
# 病患者定标情况同步JOB (每天2点一次)
patient_disease_contion_syn_job=0 0 2 * * ?
# 同步im group成员JOB (每天3点30一次)
participants_clean_job=0 30 3 * * ?
#查询家庭签约支付结果,补更新医保签约号,3分钟跑一次
sign_family_pay_result_migisterno_job=0 0/3 * * * ?
@ -131,6 +134,9 @@ doctor_prenatal_inspector_job=0 0 10 ? * MON-FRI
#续方订单自动确认job
patient_confirm_receipt_job=00 0 8,12,18,21 * * ?
# 病患者医疗保险号同步JOB (每天6点执行一次)
patient_medicare_number_job=0 0 6 * * ?
#统一支付平台支付成功后页面跳转地址
return_url={server}/wx/html/qygl/html/pay_result.html
#统一支付平台支付接口地址

+ 1 - 1
patient-co/patient-co-wlyy/pom.xml

@ -491,7 +491,7 @@
        <dependency>
            <groupId>com.ylz</groupId>
            <artifactId>ehc-empi-java-sdk</artifactId>
            <version>20180522</version>
            <version>20180528</version>
        </dependency>
    </dependencies>
    <build>

+ 15 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/health/repository/DeviceDetailDao.java

@ -2,9 +2,12 @@ package com.yihu.wlyy.health.repository;
import com.yihu.device.entity.DeviceDetail;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
/**
 * @author yeshijie on 2018/1/10.
 */
@ -12,4 +15,16 @@ public interface DeviceDetailDao extends PagingAndSortingRepository<DeviceDetail
    @Query(value = "select a.* from device.wlyy_devices a where a.device_code=?1 limit 0,1",nativeQuery = true)
    DeviceDetail findBySn(String sn);
    @Modifying
    @Query("update DeviceDetail dd set dd.isGrant=1,dd.grantAdminTeam=?1,dd.grantOrgCode=?2,dd.bindingCount=?3,dd.grantTime = ?4,dd.isBinding=1 where dd.deviceCode=?5")
    void updateAfterBindingFirst(String adminTeam, String hospital, String isFirstBinding, Date grantTime, String deviceSn);
    @Modifying
    @Query("update DeviceDetail dd set dd.isGrant=1,dd.grantAdminTeam=?1,dd.grantOrgCode=?2,dd.bindingCount=?3,dd.isBinding=1 where dd.deviceCode=?4")
    void updateAfterBinding(String adminTeam, String hospital, String isFirstBinding,String deviceSn,int isBinding);
    @Modifying
    @Query("update DeviceDetail dd set dd.isBinding=?1 where dd.deviceCode=?2")
    void updateUnbindAll(int isbinding,String deviceSn);
}

+ 6 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/health/repository/DevicePatientHealthIndexDao.java

@ -74,6 +74,12 @@ public interface DevicePatientHealthIndexDao
	@Query(value = "select a.* from device.wlyy_patient_health_index a where a.user=?1 and a.type=?2 and a.del='1' order by a.record_date desc limit 0,1",nativeQuery = true)
	DevicePatientHealthIndex findLastData(String patient, Integer type);
	/**
	 * 获取患者一天的具体某个类型的数据
	 */
	@Query("select a from DevicePatientHealthIndex a where a.type=?1 and a.user = ?2 and DATE_FORMAT(a.recordDate,'%Y-%m-%d') = ?3 and a.deviceSn = ?4 and a.del = '1' order by a.recordDate,a.id")
	List<DevicePatientHealthIndex> findByDateAndType(int type,String patient, String date,String devicesn);
	/**
	 * 上次血糖值
	 */

+ 0 - 29
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/deviece/WlyyDeviceDetailDao.java

@ -1,29 +0,0 @@
/*******************************************************************************
 * Copyright (c) 2005, 2014 springside.github.io
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *******************************************************************************/
package com.yihu.wlyy.repository.deviece;
import com.yihu.wlyy.entity.device.Device;
import com.yihu.wlyy.entity.device.DeviceDetail;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
public interface WlyyDeviceDetailDao extends PagingAndSortingRepository<DeviceDetail, Long> {
	@Query("select dd from DeviceDetail dd where dd.deviceCode=?1")
	DeviceDetail findByDeviceSn(String devicrSn);
	@Modifying
	@Query("update DeviceDetail dd set dd.isGrant=1,dd.grantAdminTeam=?1,dd.grantHospital=?2,dd.bindingCount=?3,dd.grantTime = ?4 where dd.deviceCode=?5")
	void updateAfterBindingFirst(String adminTeam, String hospital, String isFirstBinding, Date grantTime,String deviceSn);
	@Modifying
	@Query("update DeviceDetail dd set dd.isGrant=1,dd.grantAdminTeam=?1,dd.grantHospital=?2,dd.bindingCount=?3 where dd.deviceCode=?4")
	void updateAfterBinding(String adminTeam, String hospital, String isFirstBinding,String deviceSn);
}

+ 4 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/DoctorAdminTeamMemberDao.java

@ -28,6 +28,10 @@ public interface DoctorAdminTeamMemberDao extends
            "AND t.id = m.teamId AND t.available = true AND m.available = true")
    List<AdminTeam> findDoctorTeams(@Param(value = "doctorCode") String doctorCode);
    @Query("SELECT t FROM  AdminTeam t WHERE t.leaderCode = :doctorCode " +
            " AND t.available = true ")
    List<AdminTeam> findDoctorLeaderTeam(@Param(value = "doctorCode") String doctorCode);
    @Query("SELECT d FROM AdminTeamMember m, AdminTeam t, Doctor d WHERE t.id = :teamId AND t.id = m.teamId " +
            "AND m.doctorCode = d.code AND t.available = true AND m.available = true ORDER BY d.level")
    List<Doctor> findAllMembers(@Param(value = "teamId") long teamId);

+ 19 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/message/MessageDao.java

@ -36,6 +36,10 @@ public interface MessageDao extends PagingAndSortingRepository<Message, Long>, J
    @Query("update Message a set a.read = 0,a.over='0' where a.id = ?1")
    int read(long msgid);
    @Modifying
    @Query("update Message a set a.read = 0,a.over='0' where a.code = ?1")
    int read(String msgCode);
    @Query("SELECT a FROM Message a WHERE a.sender=?1 AND a.receiver = ?2 and a.signStatus = ?3 and a.read=1 ORDER BY czrq DESC")
    List<Message> findUnreadSign(String sender, String receiver, String signStatus);
@ -56,13 +60,13 @@ public interface MessageDao extends PagingAndSortingRepository<Message, Long>, J
    @Query("update Message a set a.read = 0 where a.receiver = ?1 and a.sender=?2 and a.tzType=?3")
    int updateHealthIndexMessageByPatient(String doctor, String patient, String type);
    @Query("select a from Message a where a.read= 1 and a.receiver = ?1 and a.type not in (1,2,6,7,12,101) order by a.czrq desc")
    @Query("select a from Message a where a.read= 1 and a.receiver = ?1 and a.type not in (1,2,6,7,12,101,14,15) order by a.czrq desc")
    List<Message> getSystemMessageUnread(String doctor);
    @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,7,12,101) and (a.del = '1' or a.del is null) ")
    @Query("select a from Message a where a.receiver = ?1 and a.type not in (1,2,6,7,12,101,14,15) and (a.del = '1' or a.del is null) ")
    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' ")
@ -106,4 +110,17 @@ public interface MessageDao extends PagingAndSortingRepository<Message, Long>, J
    @Query("from Message a where a.type = 12 and a.del='1' and a.over='1' and relationCode = ?1  ")
    List<Message> findByCallServiceRelationCode(String relationCode);
    @Query(" select a from Message a where a.type=?2 and a.del='1' and a.read=1 and a.receiver=?1 and a.over='1' order by a.createTime desc ")
    List<Message> findEduArticle(String receiver,Integer type);
    @Query(" select a from Message a where a.type=?2 and a.del='1'  and a.receiver=?1 ")
    List<Message> findEduArticle(String receiver,Integer type, Pageable pageRequest);
    @Modifying
    @Query("delete from Message a   where a.receiver = ?1 and a.data = ?2 and a.type in (14,15) ")
    int setMessageDel(String doctor, String articleCode);
    @Query(" select a from Message a where a.type=?2 and a.del='1' and a.read=1 and a.receiver=?1 and a.over='1' order by a.createTime desc ")
    List<Message> findUnReadByReceiverAndType(String receiver,Integer type);
}

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

@ -0,0 +1,12 @@
package com.yihu.wlyy.repository.patient;
import com.yihu.wlyy.entity.device.DeviceWxMessage;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface DeviceWxMessageDao extends PagingAndSortingRepository<DeviceWxMessage, Long>, JpaSpecificationExecutor<DeviceWxMessage> {
}

+ 6 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/PatientDao.java

@ -78,4 +78,10 @@ public interface PatientDao extends PagingAndSortingRepository<Patient, Long> {
            " AND t1.idcard NOT IN(SELECT DISTINCT s.idcard FROM wlyy_sign_family s,wlyy_old_people_physical_examination o WHERE s.admin_team_code=?1 AND s.`status`>0 AND s.idcard=o.id_card " +
            " AND o.medical_time>?2 )ORDER BY t1.openid DESC,CONVERT(t1.NAME USING gbk)",nativeQuery = true)
    List<Patient> findExaminationRemind(long teamcode, Date medicalTime);
    //根据code获取地址
    @Query("select p.address from Patient p where p.code = ?1")
    String getAddress(String patient);
    Patient findByUnionid(String unionid);
}

+ 17 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/PatientDeviceLogDao.java

@ -0,0 +1,17 @@
package com.yihu.wlyy.repository.patient;
import com.yihu.wlyy.entity.device.PatientDevice;
import com.yihu.wlyy.entity.device.PatientDeviceLog;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface PatientDeviceLogDao extends PagingAndSortingRepository<PatientDeviceLog, Long>, JpaSpecificationExecutor<PatientDeviceLog> {
    @Query("select pdl from PatientDeviceLog pdl where pdl.patient=?1 and pdl.categoryCode=?2")
    List<PatientDeviceLog> findByPatientAndCategoryCode(String patient,String categoryCode);
}

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

@ -430,4 +430,7 @@ public interface SignFamilyDao extends PagingAndSortingRepository<SignFamily, Lo
    @Query("select count(1) from SignFamily a where a.idcard=?1 and a.status>0 and a.type=2")
    int hasSignCount(String idcard);
    //根据patient查找有效签约的hospital
    @Query("select a.hospital from SignFamily a where a.patient = ?1 and (a.status = 1 or a.status = 2)")
    String getHospital(String patient);
}

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

@ -38,4 +38,6 @@ public interface PrescriptionDao extends PagingAndSortingRepository<Prescription
    @Modifying
    @Query("update Prescription p set p.jwPayStatus=1 where p.code=?1")
    void updatejwPayStatus(String prescriptionCode);
    List<Prescription> findByPatient(String patient);
}

+ 38 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/template/DoctorGuidanceTempLabelDao.java

@ -0,0 +1,38 @@
package com.yihu.wlyy.repository.template;
import com.yihu.wlyy.entity.template.DoctorGuidanceTempLabel;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by 刘文彬 on 2018/5/18.
 */
public interface DoctorGuidanceTempLabelDao extends PagingAndSortingRepository<DoctorGuidanceTempLabel, Long> {
    @Query("select t from DoctorGuidanceTempLabel t where t.teamId = ?1 and t.del=1")
    Page<DoctorGuidanceTempLabel> findByTeamId(Integer teamId, Pageable pageRequest);
    @Query("select t from DoctorGuidanceTempLabel t where t.teamId = ?1 and t.del=1 order by t.createTime desc ")
    List<DoctorGuidanceTempLabel> findByTeamId(Integer teamId);
    @Query("select t from DoctorGuidanceTempLabel t where t.teamId=?1 and  t.name = ?2 and t.del=1 ")
    DoctorGuidanceTempLabel findByNameWithDel(Integer teamId,String name);
    @Query("select t from DoctorGuidanceTempLabel t where t.code = ?1 ")
    DoctorGuidanceTempLabel findByCode(String code);
    @Modifying
    @Query(value = "update DoctorGuidanceTempLabel p set p.del=?1 where p.code=?2 ")
    int updateDel(int del,String code);
    @Modifying
    @Query(value = "update DoctorGuidanceTempLabel p set p.name=?1 where p.code=?2 ")
    int updateName(String name,String code);
}

+ 0 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/template/DoctorTeamGuidanceTemplateDao.java


Some files were not shown because too many files changed in this diff