Selaa lähdekoodia

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

# Conflicts:
#	common/common-entity/src/main/java/com/yihu/jw/entity/IntegerIdentityEntity.java
wangzhinan 4 vuotta sitten
vanhempi
commit
6073bc1af1
21 muutettua tiedostoa jossa 2489 lisäystä ja 75 poistoa
  1. 3 3
      business/base-service/src/main/java/com/yihu/jw/hospital/survey/service/SurveyService.java
  2. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/IntegerIdentityEntity.java
  3. 358 0
      common/common-entity/src/main/java/com/yihu/jw/entity/patient/Message.java
  4. 541 0
      common/common-entity/src/main/java/com/yihu/jw/entity/patient/Patient.java
  5. 327 0
      common/common-entity/src/main/java/com/yihu/jw/entity/patient/PatientDevice.java
  6. 187 0
      common/common-entity/src/main/java/com/yihu/jw/entity/patient/PatientDeviceLog.java
  7. 611 0
      common/common-entity/src/main/java/com/yihu/jw/entity/patient/SignFamily.java
  8. 1 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java
  9. 41 2
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/user/UserEndpoint.java
  10. 65 6
      svr/svr-base/src/main/java/com/yihu/jw/base/service/user/UserService.java
  11. 12 0
      svr/svr-base/src/main/resources/application.yml
  12. 7 5
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/QrcodeService.java
  13. 20 1
      svr/svr-iot/src/main/java/com/yihu/iot/controller/common/BaseController.java
  14. 75 4
      svr/svr-iot/src/main/java/com/yihu/iot/controller/device/WlyyDeviceController.java
  15. 1 1
      svr/svr-iot/src/main/java/com/yihu/iot/service/common/OrgUserService.java
  16. 23 19
      svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceOrderService.java
  17. 43 27
      svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceService.java
  18. 4 4
      svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceSimService.java
  19. 1 1
      svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceTransfersService.java
  20. 167 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotPatientDeviceService.java
  21. 1 1
      svr/svr-iot/src/main/java/com/yihu/iot/service/dict/IotHospitalService.java

+ 3 - 3
business/base-service/src/main/java/com/yihu/jw/hospital/survey/service/SurveyService.java

@ -154,7 +154,7 @@ public class SurveyService extends BaseJpaService<WlyySurveyQuestionDO, SurveyQu
        }
        sql += " ORDER BY q.create_time DESC  ";
        if ("xm_ykyy_wx".equals(wxId)) {
            if (flag){
            if (!flag){
                sql ="SELECT * FROM\n" +
                        "( SELECT A.*, ROWNUM RN FROM\n" +
                        "    ("+sql+") A \n" +
@ -867,7 +867,7 @@ public class SurveyService extends BaseJpaService<WlyySurveyQuestionDO, SurveyQu
        }
        sql += " ORDER BY t.create_time DESC  ";
        if ("xm_ykyy_wx".equals(wxId)) {
            if (flag){
            if (!flag){
                sql ="SELECT * FROM\n" +
                        "( SELECT A.*, ROWNUM RN FROM\n" +
                        "    ("+sql+") A \n" +
@ -954,7 +954,7 @@ public class SurveyService extends BaseJpaService<WlyySurveyQuestionDO, SurveyQu
        sql += " ORDER BY t.create_time DESC " ;
        if ("xm_ykyy_wx".equals(wxId)) {
            if (flag){
            if (!flag){
                sql ="SELECT * FROM\n" +
                        "( SELECT A.*, ROWNUM RN FROM\n" +
                        "    ("+sql+") A \n" +

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/IntegerIdentityEntity.java

@ -25,7 +25,7 @@ public abstract class IntegerIdentityEntity implements Serializable {
//==========mysql 环境 id策略 end======================================================
//==========Oracle 环境id策略 =========================================================
/*   @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="id_generated")*/
//   @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="id_generated")
//==========Oracle 环境id策略 =========================================================
    public Integer getId() {
        return id;

+ 358 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/patient/Message.java

@ -0,0 +1,358 @@
package com.yihu.jw.entity.patient;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.iot.gateway.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * 系统消息
 *
 * @author George
 */
@Entity
@Table(name = "wlyy_message")
public class Message extends IdEntity {
    private static final long serialVersionUID = -9034295139612066823L;
    private String code;// 消息标识
    private String receiver;// 消息接收人(微信平台为患者标识,医生APP平台为医生标识)
    private String receiverName;
    private String sender;// 消息发送人标识
    private String senderName;
    private String senderPhoto;
    private String data;// 群组标识\网络咨询标识\问卷随访标识\type=7时,data=teamCode
    private String title;// 消息标题
    private String content;// 消息内容
    /** type
     *  消息类型(1.是家庭签约信息  2.体征消息  3分配健管师 4.随访提醒 5.咨询回复提醒,6.续方咨询待审核提醒,7.续方消息待取药
     *  8.续方支付成功后团队长分配健管师,9线下调整完成,10意见反馈 11账号申诉,12.协同服务 13.孕检提醒 14.文章提交审核消息  15、健康文章审核结果
     *  16.专科医生申请签约消息,17、家庭医生转诊预约消息,18、专科医生共管通知,:19 受理提醒,20 待办工作提醒 21 服务进展提醒-已完成 22 服务进展提醒-未完成
     *  23 服务进展提醒-待完成 24 收到协同任务 25 在线助手已接收 26 在线助手已退回 27 协同服务已完成  28 居民生日提醒 29 康复计划-中止消息 30 健康文章审核不通过
     *  31 在线复诊咨询待审核提醒 33 续方支付完成提醒医生 34 远程协诊提醒医生 35疾病筛查通知
     *  101患者申请取消签约、102患者同意取消签约、103患者拒绝取消签约、104患者填写了血糖记录、105患者填写了血压记录、106患者填写了体重记录、
     *  107患者填写了腰围记录、108患者填写了运动记录、109患者填写了用药记录、110患者填写了饮食记录、111患者提交了问卷随访、112请求添加好友消息、
     *  113入群消息、114群解散消息、115踢出群消息、116新的网络咨询、117网络咨询追问、
     *  201医生拒绝签约、202医生同意签约、203医生申请取消签约、204医生同意取消签约、205医生拒绝取消签约、206新的问卷随访、207新的健康干预、
     *  208请求添加好友消息、209入群消息、210群解散消息、211踢出群消息、212聊天消息提醒、213群聊天消息、214医生回复了网络咨询、215请求添加为家人)
     *	301解绑消息 302解绑审核消息
     * 	401居民资质审核-调度员
     * 上门服务工单- 首页 -调度员:
     * 			402 服务工单派单(新增预约)403 代预约服务工单重新派单
     * 			404 服务工单拒单待重新派单
     * 上门服务工单-医生:
     * 			407 服务工单待接单
     * 上门服务工单-派单-实时工单消息-调度员:
     *          430 居民提交工单申请                -- 张三提交了服务工单12345678申请
     *          431 调度员派单(派给本社区医生)      -- 李四已将服务工单12345678指派给王五医生
     *          432 调度员拒单                      -- 李四拒绝了张三的服务工单12345678
     *          433 调度员派单(转给其他机构)        -- 李四已将服务工单12345678]转给中山医院
     *          434 医生接单                        -- 王五接受了服务工单12345678
     *          435 医生拒单                        -- 王五拒绝了服务工单12345678
     *          408居民资质审核-家医
     *          409 ca认证消息
     *  500 发起协同门诊
     *  600 病情跟踪
     */
    private Integer type;
    private Integer platform;// 消息平台,1微信端/患者端,2医生APP端
    private Integer state;// 消息状态,1已发送,0待发送,-1发送失败
    private Integer read;// 查看状态,1未读,0已读
    private Integer readonly;// 只读消息:1否,0是
    private Integer consultNum;//待回复咨询数
    private String sessionId;//im会话id
    private String sessionName;//im会话名称
    private Date czrq;// 消息时间
    private Date createTime;//创建时间,czrq会自动更新
    private String del;// 是否作废,1正常,0作废
    private String signStatus;//签约状态 如果是签约 1新的签约,2签约成功,3签约失败,4解约申请,5解约成功,6解约失败,7签约到期,8咨询提醒
    private String reason;
    private String over;//是否操作结束 是否操作结束 1否,0是
    private Double value1;// 当前值/收缩压,正数为高,负数为低
    private Double value2;// 上次值/舒张压,正数为高,负数为低
    //(type=14、15的时候,即健康文章消息类型,tzType表示健康文章发送给同个医生哪个角色下等同roleType)
    private String tzType;//体征类别
    private String tzCode;//体征code
    private Integer sex;//患者性别
    //业务关联code,type=6时为咨询code,type=7、8、9时为续方code type = 10\11时为申诉和反馈ID 12.协同服务code,14和15是文章审核功能是(0未认证1已认证2未通过)16.专科医生申请签约消息 301.为患者code 21.wlyy_specialist里的wlyy_rehabilitation_plan_detail的id
    //type=29时为wlyy_patient_rehabilitation_plan的id
    private String relationCode;
    private String prescriptionStatus;//type=6续方审核状态 0待审核,1审核通过,2审核失败,3居民取消|type=7续方状态 0待取药,1已取药
    private Integer isRefinementConsult;//是否为精选问答 0不是 1是
    private Integer refinementStatus;//精选问答认证结果 0未认证 1认证通过 2认证不通过
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getReceiver() {
        return receiver;
    }
    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }
    public String getSender() {
        return sender;
    }
    public void setSender(String sender) {
        this.sender = sender;
    }
    public String getData() {
        return data;
    }
    public void setData(String data) {
        this.data = data;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public Integer getPlatform() {
        return platform;
    }
    public void setPlatform(Integer platform) {
        this.platform = platform;
    }
    @Column(name="consult_num")
    public Integer getConsultNum() {
        return consultNum;
    }
    public void setConsultNum(Integer consultNum) {
        this.consultNum = consultNum;
    }
    @Column(name="session_id")
    public String getSessionId() {
        return sessionId;
    }
    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }
    @Column(name="session_name")
    public String getSessionName() {
        return sessionName;
    }
    public void setSessionName(String sessionName) {
        this.sessionName = sessionName;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    @Column(name="has_read")
    public Integer getRead() {
        return read;
    }
    public void setRead(Integer read) {
        this.read = read;
    }
    public Integer getReadonly() {
        return readonly;
    }
    public void setReadonly(Integer readonly) {
        this.readonly = readonly;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCzrq() {
        return czrq;
    }
    public void setCzrq(Date czrq) {
        this.czrq = czrq;
    }
    @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;
    }
    public String getDel() {
        return del;
    }
    public void setDel(String del) {
        this.del = del;
    }
    @Column(name = "receiver_name", length = 200)
    public String getReceiverName() {
        return receiverName;
    }
    public void setReceiverName(String receiverName) {
        this.receiverName = receiverName;
    }
    @Column(name = "sender_name", length = 200)
    public String getSenderName() {
        return senderName;
    }
    public void setSenderName(String senderName) {
        this.senderName = senderName;
    }
    @Column(name = "sender_photo", length = 1000)
    public String getSenderPhoto() {
        return senderPhoto;
    }
    public void setSenderPhoto(String senderPhoto) {
        this.senderPhoto = senderPhoto;
    }
    @Column(name = "sign_status", length = 1000)
    public String getSignStatus() {
        return signStatus;
    }
    public void setSignStatus(String signStatus) {
        this.signStatus = signStatus;
    }
    public String getReason() {
        return reason;
    }
    public void setReason(String reason) {
        this.reason = reason;
    }
    public String getOver() {
        return over;
    }
    public void setOver(String over) {
        this.over = over;
    }
    public Double getValue1() {
        return value1;
    }
    public void setValue1(Double value1) {
        this.value1 = value1;
    }
    public Double getValue2() {
        return value2;
    }
    public void setValue2(Double value2) {
        this.value2 = value2;
    }
    @Column(name = "tz_type", length = 10)
    public String getTzType() {
        return tzType;
    }
    public void setTzType(String tzType) {
        this.tzType = tzType;
    }
    @Column(name = "tz_code", length = 100)
    public String getTzCode() {
        return tzCode;
    }
    public void setTzCode(String tzCode) {
        this.tzCode = tzCode;
    }
    public Integer getSex() {
        return sex;
    }
    public void setSex(Integer sex) {
        this.sex = sex;
    }
    public String getRelationCode() {
        return relationCode;
    }
    public void setRelationCode(String relationCode) {
        this.relationCode = relationCode;
    }
    public String getPrescriptionStatus() {
        return prescriptionStatus;
    }
    public void setPrescriptionStatus(String prescriptionStatus) {
        this.prescriptionStatus = prescriptionStatus;
    }
    public Integer getIsRefinementConsult() {
        return isRefinementConsult;
    }
    public void setIsRefinementConsult(Integer isRefinementConsult) {
        this.isRefinementConsult = isRefinementConsult;
    }
    public Integer getRefinementStatus() {
        return refinementStatus;
    }
    public void setRefinementStatus(Integer refinementStatus) {
        this.refinementStatus = refinementStatus;
    }
}

+ 541 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/patient/Patient.java

@ -0,0 +1,541 @@
package com.yihu.jw.entity.patient;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.iot.gateway.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * 患者信息
 *
 * @author George
 */
@Entity
@Table(name = "wlyy_patient")
public class Patient extends IdEntity implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 8358924836164389434L;
    // 业务主键
    private String code;
    // 身份证号
    private String idcard;
    // 登录密码
    private String password;
    private String salt;
    // 姓名
    private String name;
    // 生日
    private Date birthday;
    // 性別,1男,2女
    private Integer sex;
    // 手機號
    private String mobile;
    // (基卫)手機號
    private String mobileRemarks;
    // 聯繫電話
    private String phone;
    // 社保卡號
    private String ssc;
    // 頭像HTTP地址
    private String photo;
    // 省代碼
    private String province;
    // 城市代碼
    private String city;
    // 區縣代碼
    private String town;
    // 街道代码
    private String street;
    // 省名
    private String provinceName;
    // 市名
    private String cityName;
    // 區縣名
    private String townName;
    // 街道名称
    private String streetName;
    // 地址
    private String address;
    // 疾病类型,0健康,1高血压,2糖尿病,3高血压+糖尿病
    private Integer disease;
    // 病情:0绿标,1黄标,2红标
    private Integer diseaseCondition;
    // 病历记录总数
    private Integer recordAmount;
    // 總積分
    private Integer points;
    // 更新時間
    private Date czrq;
    // 微信编号
    private String openid;
    //微信时间
    private Date openidTime;
    // 用户状态:1正常,0禁用,-1恶意注册,2审核中
    private Integer status;
    // 居委会字段id
    private String sickVillage;
    // 居委会字段名称
    private String sickVillageName;
    //	绑定电子社保卡主体(本人为本人code,共济为操作人code)
    private String principalCode;
    //	是否绑定电子社保卡
    private Integer sicardStatus;
    //	绑定电子社保卡时间
    private Date sicardTime;
    //是否分配过微信标签  1分配过 0或者空没有
    private Integer isWxtag;
    //微信iagId
    private Integer wxtagid;
    //居民预警状态:0为标准,1为预警状态
    private Integer standardStatus;
    //医疗保险号
    private String medicareNumber;
    //微信开发平台唯一标识
    private String unionid;
    //统一身份认证状态
    private Integer isCertified;//0否,1 是
    //档案状态(-2冻结 1未管理 2死亡3 正常4 高危)
    private Integer archiveStatus;
    private String shopUserId;
    //是否为游客 1是,0否
    private Integer isVisitor;
    //外部数据-年龄数据
    private Integer age;
    private Integer isRehabilition;//
    @Transient
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getPrincipalCode() {
        return principalCode;
    }
    public void setPrincipalCode(String principalCode) {
        this.principalCode = principalCode;
    }
    public Integer getSicardStatus() {
        return sicardStatus;
    }
    public void setSicardStatus(Integer sicardStatus) {
        this.sicardStatus = sicardStatus;
    }
    public Date getSicardTime() {
        return sicardTime;
    }
    public void setSicardTime(Date sicardTime) {
        this.sicardTime = sicardTime;
    }
//    private List<SignPatientLabelInfo> labelInfos = new ArrayList<>();//患者的疾病标签list
    public Patient() {
    }
    public Patient(Long id) {
        this.id = id;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getSalt() {
        return salt;
    }
    public void setSalt(String salt) {
        this.salt = salt;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public Integer getSex() {
        return sex;
    }
    public void setSex(Integer sex) {
        this.sex = sex;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getSsc() {
        return ssc;
    }
    public void setSsc(String ssc) {
        this.ssc = ssc;
    }
    @Column(name = "photo", insertable = false)
    public String getPhoto() {
        return photo;
    }
    public void setPhoto(String photo) {
        this.photo = photo;
    }
    public String getProvince() {
        return province;
    }
    public void setProvince(String province) {
        this.province = province;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getTown() {
        return town;
    }
    public void setTown(String town) {
        this.town = town;
    }
    public String getStreet() {
        return street;
    }
    public void setStreet(String street) {
        this.street = street;
    }
    @Column(name = "province_name")
    public String getProvinceName() {
        return provinceName;
    }
    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }
    @Column(name = "city_name")
    public String getCityName() {
        return cityName;
    }
    public void setCityName(String cityName) {
        this.cityName = cityName;
    }
    @Column(name = "town_name")
    public String getTownName() {
        return townName;
    }
    public void setTownName(String townName) {
        this.townName = townName;
    }
    @Column(name = "street_name")
    public String getStreetName() {
        return streetName;
    }
    public void setStreetName(String streetName) {
        this.streetName = streetName;
    }
    public static long getSerialversionuid() {
        return serialVersionUID;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public Integer getDisease() {
        return disease;
    }
    public void setDisease(Integer disease) {
        this.disease = disease;
    }
    @Column(name = "disease_condition")
    public Integer getDiseaseCondition() {
        return diseaseCondition;
    }
    public void setDiseaseCondition(Integer diseaseCondition) {
        this.diseaseCondition = diseaseCondition;
    }
    @Column(name = "record_amount")
    public Integer getRecordAmount() {
        return recordAmount;
    }
    public void setRecordAmount(Integer recordAmount) {
        this.recordAmount = recordAmount;
    }
    public Integer getPoints() {
        return points;
    }
    public void setPoints(Integer points) {
        this.points = points;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCzrq() {
        return czrq;
    }
    public void setCzrq(Date czrq) {
        this.czrq = czrq;
    }
    public String getOpenid() {
        return openid;
    }
    public void setOpenid(String openid) {
        this.openid = openid;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
//    @Transient
//    public List<SignPatientLabelInfo> getLabelInfos() {
//        return labelInfos;
//    }
//
//    public void setLabelInfos(List<SignPatientLabelInfo> labelInfos) {
//        this.labelInfos = labelInfos;
//    }
    public String getMobileRemarks() {
        return mobileRemarks;
    }
    public void setMobileRemarks(String mobileRemarks) {
        this.mobileRemarks = mobileRemarks;
    }
    public Date getOpenidTime() {
        return openidTime;
    }
    public void setOpenidTime(Date openidTime) {
        this.openidTime = openidTime;
    }
    public String getSickVillage() {
        return sickVillage;
    }
    public void setSickVillage(String sickVillage) {
        this.sickVillage = sickVillage;
    }
    public String getSickVillageName() {
        return sickVillageName;
    }
    public void setSickVillageName(String sickVillageName) {
        this.sickVillageName = sickVillageName;
    }
    public Integer getIsWxtag() {
        return isWxtag;
    }
    public void setIsWxtag(Integer isWxtag) {
        this.isWxtag = isWxtag;
    }
    public Integer getWxtagid() {
        return wxtagid;
    }
    public void setWxtagid(Integer wxtagid) {
        this.wxtagid = wxtagid;
    }
    @Column(name = "is_visitor")
    public Integer getIsVisitor() {
        return isVisitor;
    }
    public void setIsVisitor(Integer isVisitor) {
        this.isVisitor = isVisitor;
    }
    public Integer getIsRehabilition() {
        return isRehabilition;
    }
    public void setIsRehabilition(Integer isRehabilition) {
        this.isRehabilition = isRehabilition;
    }
    //---------------------------常量----------------------------
    public enum isWchatTage {
        yes(1), no(0);
        isWchatTage(Integer value) {
            this.value = value;
        }
        private Integer value;
        public Integer getValue() {
            return value;
        }
        public void setValue(Integer value) {
            this.value = value;
        }
    }
    public Integer getStandardStatus() {
        return standardStatus;
    }
    public void setStandardStatus(Integer standardStatus) {
        this.standardStatus = standardStatus;
    }
    public Patient(String code, String name) {
        this.code = code;
        this.name = name;
    }
    public Patient(String code) {
        this.code = code;
    }
    public String getMedicareNumber() {
        return medicareNumber;
    }
    public void setMedicareNumber(String medicareNumber) {
        this.medicareNumber = medicareNumber;
    }
    public String getUnionid() {
        return unionid;
    }
    public void setUnionid(String unionid) {
        this.unionid = unionid;
    }
    public Integer getIsCertified() {
        return isCertified;
    }
    public void setIsCertified(Integer isCertified) {
        this.isCertified = isCertified;
    }
    public Integer getArchiveStatus() {
        return archiveStatus;
    }
    public void setArchiveStatus(Integer archiveStatus) {
        this.archiveStatus = archiveStatus;
    }
    public String getShopUserId() {
        return shopUserId;
    }
    public void setShopUserId(String shopUserId) {
        this.shopUserId = shopUserId;
    }
}

+ 327 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/patient/PatientDevice.java

@ -0,0 +1,327 @@
package com.yihu.jw.entity.patient;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.iot.gateway.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")
public class PatientDevice extends IdEntity {
    // 设备ID
    private Long deviceId;
    // 设备标识
    private String deviceSn;
    //sim卡号
    private String sim;
    // 设备名称
    private String deviceName;
    // 用户code
    private String user;
    // 设备类型标识 1血糖仪,2.血压计,3药盒,4智能手表
    private String categoryCode;
    // 用户类型标准 -1代表单用户
    private String userType;
    // 用户身份证
    private String userIdcard;
    // 操作医生代码
    private String doctor;
    //操作医生姓名
    private String doctorName;
    //代绑人代码(家人)
    private String agent;
    //代绑人姓名
    private String agentName;
    // 操作时间
    private Date czrq;
    //解绑人
    private String delUser;
    //1-解绑,0-绑定
    private Integer del;
    //设备活动类型
    private String deviceActivityType;
    //上传的协议图片地址
    private String agreementPhoto;
    //居民签约所在社区
    private String hospital;
    //居民签约所在社区名字
    private String hospitalName;
    //登记医生名字
    private String checkDoctorName;
    //0未申请 1审核中 2被拒绝
    private Integer applyStatus;
    //申请原因
    private String applyReason;
    //医生拒绝原因
    private String refuseReason;
    //========================非表字段======================
    //患者居住地址
    private String address;
    ///**
    // * 是否有效
    // * 1-已删除绑定
    // * 0-正常绑定
    // */
    //private int del;
    ///**
    // * 删除人CODE
    // */
    //private String delUser;
    //
    //@Column(name="del_user")
    //public String getDelUser() {
    //	return delUser;
    //}
    //
    //public void setDelUser(String delUser) {
    //	this.delUser = delUser;
    //}
    //
    //public int getDel() {
    //	return del;
    //}
    //
    //public void setDel(int del) {
    //	this.del = del;
    //}
    @Column(name = "device_id")
    public Long getDeviceId() {
        return deviceId;
    }
    public void setDeviceId(Long deviceId) {
        this.deviceId = deviceId;
    }
    @Column(name = "device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name = "sim")
    public String getSim() {
        return sim;
    }
    public void setSim(String sim) {
        this.sim = sim;
    }
    @Column(name = "device_name")
    public String getDeviceName() {
        return deviceName;
    }
    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }
    @Column(name = "user")
    public String getUser() {
        return user;
    }
    public void setUser(String user) {
        this.user = user;
    }
    @Column(name = "category_code")
    public String getCategoryCode() {
        return categoryCode;
    }
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    @Column(name = "user_type")
    public String getUserType() {
        return userType;
    }
    public void setUserType(String userType) {
        this.userType = userType;
    }
    @Column(name = "user_idcard")
    public String getUserIdcard() {
        return userIdcard;
    }
    public void setUserIdcard(String userIdcard) {
        this.userIdcard = userIdcard;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "czrq")
    public Date getCzrq() {
        return czrq;
    }
    public void setCzrq(Date czrq) {
        this.czrq = czrq;
    }
    @Column(name = "doctor")
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        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;
    }
    public void setAgent(String agent) {
        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;
    }
    public void setDelUser(String delUser) {
        this.delUser = delUser;
    }
    @Column(name = "del")
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    @Column(name = "device_activity_type")
    public String getDeviceActivityType() {
        return deviceActivityType;
    }
    public void setDeviceActivityType(String deviceActivityType) {
        this.deviceActivityType = deviceActivityType;
    }
    @Column(name = "agreement_photo")
    public String getAgreementPhoto() {
        return agreementPhoto;
    }
    public void setAgreementPhoto(String agreementPhoto) {
        this.agreementPhoto = agreementPhoto;
    }
    @Column(name = "hospital")
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    @Column(name = "hospital_name")
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    @Column(name = "check_doctor_name")
    public String getCheckDoctorName() {
        return checkDoctorName;
    }
    public void setCheckDoctorName(String checkDoctorName) {
        this.checkDoctorName = checkDoctorName;
    }
    @Transient
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public PatientDevice(String address, Date czrq, String userIdcard, String deviceSn, Long deviceId) {
        this.address = address;
        this.czrq = czrq;
        this.userIdcard = userIdcard;
        this.deviceSn = deviceSn;
        this.deviceId = deviceId;
    }
    public PatientDevice() {
    }
    public Integer getApplyStatus() {
        return applyStatus;
    }
    public void setApplyStatus(Integer applyStatus) {
        this.applyStatus = applyStatus;
    }
    public String getApplyReason() {
        return applyReason;
    }
    public void setApplyReason(String applyReason) {
        this.applyReason = applyReason;
    }
    public String getRefuseReason() {
        return refuseReason;
    }
    public void setRefuseReason(String refuseReason) {
        this.refuseReason = refuseReason;
    }
}

+ 187 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/patient/PatientDeviceLog.java

@ -0,0 +1,187 @@
package com.yihu.jw.entity.patient;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.iot.gateway.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;
    //居民签约所在社区
    private String hospital;
    //居民签约所在社区名字
    private String hospitalName;
    //登记医生名字
    private String checkDoctorName;
    @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;
    }
    @Column(name = "hospital")
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    @Column(name = "hospital_name")
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    @Column(name = "check_doctor_name")
    public String getCheckDoctorName() {
        return checkDoctorName;
    }
    public void setCheckDoctorName(String checkDoctorName) {
        this.checkDoctorName = checkDoctorName;
    }
    public PatientDeviceLog() {
    }
}

+ 611 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/patient/SignFamily.java

@ -0,0 +1,611 @@
package com.yihu.jw.entity.patient;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.iot.gateway.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
/**
 * 家庭签约
 *
 * @author George
 */
@Entity
@Table(name = "wlyy_sign_family")
public class SignFamily extends IdEntity {
    private static final long serialVersionUID = 364799142991631092L;
    private String code;        // 签约标识
    private String lwCode;      // 两网标识
    private Integer type;       // 签约类型:1三师签约,2网络签约
    private String patient;     // 患者标识
    private String openid;      // 微信OPENID
    private String name;        // 患者姓名
    private String idcard;      // 身份证号
    private String ssc;         // 社保卡号
    private String mobile;      // 手机号
    private String emerMobile;  // 紧急联系人手机号
    private String hospital;    // 签约医院标识
    private String hospitalName;    // 签约医院名称
    private String doctor;      // 全科医生
    private String doctorName;  // 全科医生姓名
    private String doctorHealth;    // 健康管理师
    private String doctorHealthName;    // 健康管理师姓名
    private Date begin;         // 签约开始日期
    private Date end;           // 签约结束日期
    private Integer status;     // 签约状态(-1患者已取消,-2已拒绝,-3已解约,-4已到期 -5超过1500同步智业不成功 -6智业返回不成功 未建档,0待签约,1已签约,2患者申请取消签约
    private String images;      // 签约图片附件URL,多图以逗号分隔
    private String reason;      // 解约原因
    private Date czrq;          // 操作时间
    private String teamCode;
    private Date applyDate;     //签约时间
    private Date applyUnsignDate;//解约时间
    private Date patientApplyDate;//患者发起签约时间
    private Date patientApplyUnsignDate;//患者发起解约时间
    private String signType;//1 用户自己申请  2医生手工带签  3.医生发起邀请
    private String familyCode;//签约code
    private Double expenses;//签约费用
    private String expensesStatus;//扣费状态【0未扣费 1已扣费 2已退费 3医保取消】
    private String signSource;// 签约来源【1 社区签约 2 移动签约】
    private String signDoctorCode;//簽約人code
    private String signDoctorName;//簽約人銘
    private String signDoctorLevel;//簽約人等级
    private String expensesType;//补贴类型(4种类型:01无补贴,02全部贴,03补个人承担部分(20),04补统筹基金(70))
    private String signYear;//签约年度
    private String medicalInsuranceNum;//医保流水号
    private String agentDoctorCode;//代理簽約人code
    private String agentDoctorName;//代理簽約人銘
    private String agentDoctorLevel;//代理簽約人等级
    private Long adminTeamId;//行政团队ID
    private Date expensesTime;//缴费时间
    private Integer num;//签约数
    //1.3.3.2新增字段
    //基卫服务类型
    private String serverType;
    //基卫服务类型名称
    private String serverTypeName;
    //基卫特殊人群类别
    private String specialPopulation;
    //基卫特殊人群类别名称
    private String specialPopulationName;
    //续签标志 1 医生续签 2 医生改签续签
    private String renewFlag;
    //转签原因
    private String renewChangeReason;
    //1.3.5新增居委会字段
    // 居委会字段id
    private String sickVillage;
    // 居委会字段名称
    private String sickVillageName;
    private Integer signPaySource;//签约支付渠道: 1线下 2线上
    //1.4.3新增医生拒签原因
    private String refuseSpeak;//医生拒签原因
    // add by hmf on 2019.6.19
    private String specialist;//专科医生code
    private String specialistName;//专科医生名字
    public static long getSerialVersionUID() {
        return serialVersionUID;
    }
    public String getRefuseSpeak() {
        return refuseSpeak;
    }
    public void setRefuseSpeak(String refuseSpeak) {
        this.refuseSpeak = refuseSpeak;
    }
    public Integer getSignPaySource() {
        return signPaySource;
    }
    public void setSignPaySource(Integer signPaySource) {
        this.signPaySource = signPaySource;
    }
    public String getRenewFlag() {
        return renewFlag;
    }
    public void setRenewFlag(String renewFlag) {
        this.renewFlag = renewFlag;
    }
    public String getRenewChangeReason() {
        return renewChangeReason;
    }
    public void setRenewChangeReason(String renewChangeReason) {
        this.renewChangeReason = renewChangeReason;
    }
    public String getServerType() {
        return serverType;
    }
    public void setServerType(String serverType) {
        this.serverType = serverType;
    }
    public String getServerTypeName() {
        return serverTypeName;
    }
    public void setServerTypeName(String serverTypeName) {
        this.serverTypeName = serverTypeName;
    }
    public String getSpecialPopulation() {
        return specialPopulation;
    }
    public void setSpecialPopulation(String specialPopulation) {
        this.specialPopulation = specialPopulation;
    }
    public String getSpecialPopulationName() {
        return specialPopulationName;
    }
    public void setSpecialPopulationName(String specialPopulationName) {
        this.specialPopulationName = specialPopulationName;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getLwCode() {
        return lwCode;
    }
    public void setLwCode(String lwCode) {
        this.lwCode = lwCode;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getOpenid() {
        return openid;
    }
    public void setOpenid(String openid) {
        this.openid = openid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    public String getSsc() {
        return ssc;
    }
    public void setSsc(String ssc) {
        this.ssc = ssc;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    @Column(name = "emer_mobile")
    public String getEmerMobile() {
        return emerMobile;
    }
    public void setEmerMobile(String emerMobile) {
        this.emerMobile = emerMobile;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    @Column(name = "hospital_name")
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    @Column(name = "doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Column(name = "doctor_health")
    public String getDoctorHealth() {
        return doctorHealth;
    }
    public void setDoctorHealth(String doctorHealth) {
        this.doctorHealth = doctorHealth;
    }
    @Column(name = "doctor_health_name")
    public String getDoctorHealthName() {
        return doctorHealthName;
    }
    public void setDoctorHealthName(String doctorHealthName) {
        this.doctorHealthName = doctorHealthName;
    }
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    public Date getBegin() {
        return begin;
    }
    public void setBegin(Date begin) {
        this.begin = begin;
    }
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    public Date getEnd() {
        return end;
    }
    public void setEnd(Date end) {
        this.end = end;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getImages() {
        return images;
    }
    public void setImages(String images) {
        this.images = images;
    }
    public String getReason() {
        return reason;
    }
    public void setReason(String reason) {
        this.reason = reason;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCzrq() {
        return czrq;
    }
    public void setCzrq(Date czrq) {
        this.czrq = czrq;
    }
    @Column(name = "team_code")
    public String getTeamCode() {
        return teamCode;
    }
    public void setTeamCode(String teamCode) {
        this.teamCode = teamCode;
    }
    @Column(name = "sign_type")
    public String getSignType() {
        return signType;
    }
    public void setSignType(String signType) {
        this.signType = signType;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "apply_date")
    public Date getApplyDate() {
        return applyDate;
    }
    public void setApplyDate(Date applyDate) {
        this.applyDate = applyDate;
    }
    @Column(name = "patient_apply_date")
    public Date getPatientApplyDate() {
        return patientApplyDate;
    }
    public void setPatientApplyDate(Date patientApplyDate) {
        this.patientApplyDate = patientApplyDate;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "patient_apply_unsgin_date")
    public Date getPatientApplyUnsignDate() {
        return patientApplyUnsignDate;
    }
    public void setPatientApplyUnsignDate(Date patientApplyUnsignDate) {
        this.patientApplyUnsignDate = patientApplyUnsignDate;
    }
    @Column(name = "family_code")
    public String getFamilyCode() {
        return familyCode;
    }
    public void setFamilyCode(String familyCode) {
        this.familyCode = familyCode;
    }
    @Column(name = "expenses")
    public Double getExpenses() {
        return expenses;
    }
    public void setExpenses(Double expenses) {
        this.expenses = expenses;
    }
    @Column(name = "sign_doctor_code")
    public String getSignDoctorCode() {
        return signDoctorCode;
    }
    public void setSignDoctorCode(String signDoctorCode) {
        this.signDoctorCode = signDoctorCode;
    }
    @Column(name = "sign_doctor_name")
    public String getSignDoctorName() {
        return signDoctorName;
    }
    public void setSignDoctorName(String signDoctorName) {
        this.signDoctorName = signDoctorName;
    }
    @Column(name = "sign_doctor_level")
    public String getSignDoctorLevel() {
        return signDoctorLevel;
    }
    public void setSignDoctorLevel(String signDoctorLevel) {
        this.signDoctorLevel = signDoctorLevel;
    }
    @Column(name = "apply_unsign_date")
    public Date getApplyUnsignDate() {
        return applyUnsignDate;
    }
    public void setApplyUnsignDate(Date applyUnsignDate) {
        this.applyUnsignDate = applyUnsignDate;
    }
    @Column(name = "expenses_type")
    public String getExpensesType() {
        return expensesType;
    }
    public void setExpensesType(String expensesType) {
        this.expensesType = expensesType;
    }
    @Column(name = "sign_year")
    public String getSignYear() {
        return signYear;
    }
    public void setSignYear(String signYear) {
        this.signYear = signYear;
    }
    @Column(name = "medical_insurance_num")
    public String getMedicalInsuranceNum() {
        return medicalInsuranceNum;
    }
    public void setMedicalInsuranceNum(String medicalInsuranceNum) {
        this.medicalInsuranceNum = medicalInsuranceNum;
    }
    @Column(name = "agent_doctor_code")
    public String getAgentDoctorCode() {
        return agentDoctorCode;
    }
    public void setAgentDoctorCode(String agentDoctorCode) {
        this.agentDoctorCode = agentDoctorCode;
    }
    @Column(name = "agent_doctor_name")
    public String getAgentDoctorName() {
        return agentDoctorName;
    }
    public void setAgentDoctorName(String agentDoctorName) {
        this.agentDoctorName = agentDoctorName;
    }
    @Column(name = "agent_doctor_level")
    public String getAgentDoctorLevel() {
        return agentDoctorLevel;
    }
    public void setAgentDoctorLevel(String agentDoctorLevel) {
        this.agentDoctorLevel = agentDoctorLevel;
    }
    @Column(name = "expenses_status")
    public String getExpensesStatus() {
        return expensesStatus;
    }
    public void setExpensesStatus(String expensesStatus) {
        this.expensesStatus = expensesStatus;
    }
    @Column(name = "sign_source")
    public String getSignSource() {
        return signSource;
    }
    public void setSignSource(String signSource) {
        this.signSource = signSource;
    }
    @Column(name = "admin_team_code")
    public Long getAdminTeamId() {
        return adminTeamId;
    }
    public void setAdminTeamId(Long adminTeamId) {
        this.adminTeamId = adminTeamId;
    }
    @Override
    public String toString() {
        return "SignFamily{" +
                "code='" + code + '\'' +
                ", lwCode='" + lwCode + '\'' +
                ", type=" + type +
                ", patient='" + patient + '\'' +
                ", openid='" + openid + '\'' +
                ", name='" + name + '\'' +
                ", idcard='" + idcard + '\'' +
                ", ssc='" + ssc + '\'' +
                ", mobile='" + mobile + '\'' +
                ", emerMobile='" + emerMobile + '\'' +
                ", hospital='" + hospital + '\'' +
                ", hospitalName='" + hospitalName + '\'' +
                ", doctor='" + doctor + '\'' +
                ", doctorName='" + doctorName + '\'' +
                ", doctorHealth='" + doctorHealth + '\'' +
                ", doctorHealthName='" + doctorHealthName + '\'' +
                ", begin=" + begin +
                ", end=" + end +
                ", status=" + status +
                ", images='" + images + '\'' +
                ", reason='" + reason + '\'' +
                ", czrq=" + czrq +
                ", teamCode='" + teamCode + '\'' +
                ", applyDate=" + applyDate +
                ", signType='" + signType + '\'' +
                ", familyCode='" + familyCode + '\'' +
                '}';
    }
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
//    public Date getExpensesTime() {
//        return expensesTime;
//    }
//
//    public void setExpensesTime(Date expensesTime) {
//        this.expensesTime = expensesTime;
//    }
    public String getSickVillage() {
        return sickVillage;
    }
    public void setSickVillage(String sickVillage) {
        this.sickVillage = sickVillage;
    }
    public String getSickVillageName() {
        return sickVillageName;
    }
    public void setSickVillageName(String sickVillageName) {
        this.sickVillageName = sickVillageName;
    }
    @Transient
    public Integer getNum() {
        return num;
    }
    public void setNum(Integer num) {
        this.num = num;
    }
    public String getSpecialist() {
        return specialist;
    }
    public void setSpecialist(String specialist) {
        this.specialist = specialist;
    }
    public String getSpecialistName() {
        return specialistName;
    }
    public void setSpecialistName(String specialistName) {
        this.specialistName = specialistName;
    }
}

+ 1 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -166,6 +166,7 @@ public class BaseRequestMapping {
        public static final String orgTreeInfo = "/orgTreeInfo";
        public static final String userInfoList = "/userInfoList";
        public static final String lockOrUnlock = "/lockOrUnlock";
        public static final String orgChoiceInfo = "/orgChoiceInfo";
    }
    /**

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 41 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/user/UserEndpoint.java


+ 65 - 6
svr/svr-base/src/main/java/com/yihu/jw/base/service/user/UserService.java

@ -8,10 +8,7 @@ import com.yihu.jw.base.dao.role.BaseRoleMenuDao;
import com.yihu.jw.base.dao.role.RoleDao;
import com.yihu.jw.base.dao.saas.SaasDao;
import com.yihu.jw.base.dao.user.UserDao;
import com.yihu.jw.base.service.org.BaseOrgSaasService;
import com.yihu.jw.base.service.org.BaseOrgUserService;
import com.yihu.jw.base.service.org.OrgTree;
import com.yihu.jw.base.service.org.OrgTreeService;
import com.yihu.jw.base.service.org.*;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.base.util.JavaBeanUtils;
import com.yihu.jw.entity.base.org.BaseOrgUserDO;
@ -296,7 +293,7 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        JSONArray org = jsonObject.getJSONArray("org");
        //归属租户为默认租户,表示用户为超级管理员,不需要机构
        if (null == user || CollectionUtils.isEmpty(org) && !user.getString("saasId").equalsIgnoreCase(defaultSaasId)) {
            result.put("msg", "parameter user or org of jsonData is null");
            result.put("msg", "请点击机构管理选择所在机构");
            result.put("response", ConstantUtils.FAIL);
            return result;
        }
@ -354,7 +351,7 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        JSONObject user = jsonObject.getJSONObject("user");
        JSONArray org = jsonObject.getJSONArray("org");
        if (null == user ||  CollectionUtils.isEmpty(org) && !user.getString("saasId").equalsIgnoreCase(defaultSaasId)) {
            result.put("msg", "parameter user or org of jsonData is null");
            result.put("msg", "请点击机构管理选择所在机构");
            result.put("response", ConstantUtils.FAIL);
            return result;
        }
@ -486,6 +483,42 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        return result;
    }
    /**
     * 租户只能给用户归属到自己租户底下的机构
     * 机构管理员只能属于一个租户,增加社区树
     * @param saasid
     * @param userId
     * @return
     */
    public JSONObject orgChoiceInfo(String saasid,String userId,String roleId) throws IOException {
        JSONObject result = new JSONObject();
        List<OrgTree> orgList = new ArrayList<>();
        // 有归属租户加载saas底下的所有机构树列表,角色为机构管理员时不需要选管理机构
        if(!StringUtils.isEmpty(saasid) && !StringUtils.endsWithIgnoreCase(RoleDO.BaseRoleType.admin.toString(),roleId)){
            StringBuilder sql = new StringBuilder("SELECT tree.*  FROM org_tree tree, base_org org, base_org_saas saas WHERE org.code = saas.org_code and 'null'= '{saasid}';");
 //           StringBuilder sql = new StringBuilder("SELECT tree.* FROM base_org base , org_tree tree WHERE base.`code` = tree.code ");
            orgList = jdbcTemplate.query(sql.toString().replace("{saasid}","null"),new BeanPropertyRowMapper(OrgTree.class));
        }
        if(!StringUtils.isEmpty(userId)){// 用户不为空表示修改,需要筛选出用户已经选择过的机构,设置checked为true
            Set<String> codeSet = baseOrgUserService.findorgCodeListByUserId(userId);
            orgList.forEach( one -> {
                if(codeSet.contains(one.getCode())){
                    one.setChecked(true);
                }
            });
        }
        if(!CollectionUtils.isEmpty(orgList)){
            String tree = orgTreeService.makeTree(orgList,false,true);
            result.put("msg",objectMapper.readValue(tree,JSONArray.class));
        }else{
            result.put("msg",orgList);
        }
        result.put("response", ConstantUtils.SUCCESS);
        return result;
    }
    /**
     * 用户修改密码
     * @param userId
@ -620,6 +653,32 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        return result;
    }
    /**
     * 生效或失效单个用户
     * @param userId
     * @param lock
     * @return
     */
    public JSONObject enableOrDisable(String userId,boolean lock){
        JSONObject result = new JSONObject();
        if(StringUtils.isEmpty(userId) || StringUtils.isEmpty(lock)){
            result.put("msg","parameter id or del is null");
            result.put("response",ConstantUtils.FAIL);
            return result;
        }
        UserDO user = userDao.findOne(userId);
        if( null == user ){
            result.put("msg","user not exist for id:" + userId);
            result.put("response",ConstantUtils.FAIL);
            return result;
        }
        user.setEnabled(lock);
        this.save(user);
        result.put("response",ConstantUtils.SUCCESS);
        return result;
    }
    /**
     * 用户信息列表
     * @param name

+ 12 - 0
svr/svr-base/src/main/resources/application.yml

@ -209,6 +209,12 @@ wlyy:
  url: http://ehr.yihu.com/wlyy/
wechat:
  id: d24d1367-7f4f-43af-910e-a0a43799e040
  flag: false
im:
  im_list_get: http://172.26.0.105:3000/
  data_base_name: im_internet_hospital
pay:
  flag: false
#文件服务器上传配置 0本地,1.I健康,2.内网调用
testPattern:
  sign: 0
@ -435,6 +441,12 @@ wlyy:
  url: http://ehr.yihu.com/wlyy/
wechat:
  id: d24d1367-7f4f-43af-910e-a0a43799e040
  flag: false
im:
  im_list_get: http://172.26.0.105:3000/
  data_base_name: im_internet_hospital
pay:
  flag: false
#文件服务器上传配置 0本地,1.I健康,2.内网调用
testPattern:
  sign: 1

+ 7 - 5
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/QrcodeService.java

@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import sun.plugin2.message.Message;
import javax.transaction.Transactional;
import java.io.InputStream;
@ -161,7 +162,7 @@ public class QrcodeService {
     * @param token
     * @throws
     */
    public String makeQrcodeFromWeiXin(String content, String fileName, String token) throws Exception {
    public String makeQrcodeFromWeiXin(String content, String fileName, String token)  {
        try {
            String token_url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + token;
            String params = "{\"action_name\": \"QR_LIMIT_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \"" + content + "\"}}}";
@ -204,15 +205,16 @@ public class QrcodeService {
                    return uploadVO.getFullUri();
                } else {
                    throw new Exception("请求微信生成二维码失败!");
            }
                    System.out.println("请求微信生成二维码失败!");
                }
            } else {
                throw new Exception("请求微信生成二维码失败!");
                System.out.println("请求微信生成二维码失败!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception(e.getMessage());
            System.out.println(e.getMessage());
        }
        return content;
    }
}

+ 20 - 1
svr/svr-iot/src/main/java/com/yihu/iot/controller/common/BaseController.java

@ -1,6 +1,7 @@
package com.yihu.iot.controller.common;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
@ -510,5 +511,23 @@ public class BaseController {
        }
    }
	/**
	 * 获取被代理人code,若没有则返回当前登录者
	 * @return
	 */
	public String getRepUID(){
		try {
			String userAgent = request.getHeader("userAgent");
			if (StringUtils.isEmpty(userAgent)) {
				userAgent = request.getHeader("User-Agent");
			}
			JSONObject json = new JSONObject(userAgent);
			if(json.isNull("represented")){
				return json.getString("uid");
			}
			return json.getString("represented");
		} catch (Exception e) {
			return null;
		}
	}
}

+ 75 - 4
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/WlyyDeviceController.java

@ -1,21 +1,29 @@
package com.yihu.iot.controller.device;
import com.yihu.iot.controller.common.BaseController;
import com.yihu.iot.dao.message.IotMessageDao;
import com.yihu.iot.service.device.IotPatientDeviceService;
import com.yihu.iot.service.device.WlyyDeviceService;
import com.yihu.jw.entity.iot.device.IotPatientDeviceDO;
import com.yihu.jw.entity.patient.Message;
import com.yihu.jw.entity.patient.Patient;
import com.yihu.jw.entity.patient.PatientDevice;
import com.yihu.jw.entity.patient.SignFamily;
import com.yihu.jw.restmodel.iot.device.DeviceHealthIndexVO;
import com.yihu.jw.restmodel.iot.device.WlyyDeviceVO;
import com.yihu.jw.restmodel.iot.device.WlyyPatientDeviceVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
 * Created by yeshijie on 2020/7/29.
@ -108,4 +116,67 @@ public class WlyyDeviceController extends BaseController {
            return error(-1, "操作失败!");
        }
    }
    @Autowired
    private IotPatientDeviceService iotPatientDeviceService;
    /**
     * 设备删除
     */
    @ApiOperation("设备删除")
    @RequestMapping(value = "DeletePatientDevice",method = {RequestMethod.GET,RequestMethod.POST})
    @ResponseBody
    public String delete(@ApiParam(name = "id", value = "删除设备关联ID")
                         @RequestParam(value = "id", required = true) String id) {
        try {
            PatientDevice pd = iotPatientDeviceService.findId(id);
            if (pd != null) {
                if (!StringUtils.equals(pd.getUser(), getRepUID())) {
                    return error(1,"只允许删除自己的设备!");
                }
                iotPatientDeviceService.deleteDevice(id, getRepUID());
                //居民自主解绑设备时发送消息给医生
                Patient patient = iotPatientDeviceService.findByCode(pd.getUser());   //getRepUID()
                SignFamily signFamily = iotPatientDeviceService.findDoctor(patient.getCode());
                String messageContent =  "您的居民"+patient.getName()+"解绑了";
                if ("1".equals(pd.getCategoryCode())){
                    messageContent +="血糖仪,点击下方查看居民详情";
                }else if ("2".equals(pd.getCategoryCode())){
                    messageContent +="血压计,点击下方查看居民详情";
                }else if ("4".equals(pd.getCategoryCode())){
                    messageContent +="智能手表,点击下方查看居民详情";
                }
                Message message = new Message();
                message.setCzrq(new Date());
                message.setCreateTime(new Date());
                message.setContent(messageContent);
                message.setRead(1);//设置未读
                message.setReceiver(signFamily.getDoctor());//设置接受医生的code
                message.setSender("admin");//设置发送的用户
                message.setSenderName("系统");
                message.setCode(UUID.randomUUID().toString().replaceAll("-", ""));
                message.setSenderPhoto("");
                message.setTitle("解绑设备消息");
                message.setType(301);//解绑设备消息
                message.setReadonly(1);//是否只读消息
                message.setSex(1);
                message.setRelationCode(patient.getCode());
                message.setOver("1");//未处理
                message.setData("");
                message.setDel("1");
                iotPatientDeviceService.saveMessage(message);
                //全部解绑后去判断就更新设备表中是否绑定字段
                iotPatientDeviceService.savePatientDeviceLog(pd,pd.getDeviceSn(),2,2);
                iotPatientDeviceService.unBindUpdateIsBinding(pd.getDeviceSn());
                return success("设备已删除!");
            } else {
                return error(-1, "不存在该设备!");
            }
        } catch (Exception ex) {
            error(ex);
            return invalidUserException(ex, -1, ex.getMessage());
        }
    }
}

+ 1 - 1
svr/svr-iot/src/main/java/com/yihu/iot/service/common/OrgUserService.java

@ -47,7 +47,7 @@ public class OrgUserService {
        if(res.length()==1){
            res +="'";
        }else{
            res = res.substring(0,res.length()-3);
            res = res.substring(0,res.length()-2);
        }
        return res;
    }

+ 23 - 19
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceOrderService.java

@ -234,34 +234,39 @@ public class IotDeviceOrderService extends BaseJpaService<IotDeviceOrderDO,IotDe
     * @throws ParseException
     */
    public MixEnvelop<IotDeviceOrderVO, IotDeviceOrderVO> queryPage(Integer page, Integer size, String name) throws ParseException {
        String filters = "";
        String semicolon = "";
        if(StringUtils.isNotBlank(name)){
            filters = "supplierName?"+name+" g1;purchaserName?"+name+" g1";
            semicolon = ";";
        }
        if(StringUtils.isBlank(filters)){
            filters+= semicolon + "del=1";
        }
        StringBuffer sql = new StringBuffer("SELECT c.* from iot_device_order c  WHERE c.del=1 ");
        StringBuffer sqlCount = new StringBuffer("SELECT COUNT(c.id) count from iot_device_order c  WHERE c.del=1 ");
        List<Object> args = new ArrayList<>();
        if("company".equals(userAgent.getROLEID())){
            //仅展示本商家的订单数据
            IotCompanyDO companyDO = iotCompanyDao.findByEhrUserId(userAgent.getUID());
            if(companyDO!=null){
                filters+= ";supplier_id="+companyDO.getId();
                sql.append(" and c.supplier_id = ? ");
                sqlCount.append(" and c.supplier_id = '").append(companyDO.getId()).append("'");
                args.add(companyDO.getId());
            }
        }
        if(StringUtils.isNotBlank(name)){
            name = "%"+name+"%";
            sql.append(" and (c.supplier_name like ? or c.purchaser_name like ?)");
            sqlCount.append(" and (c.supplier_name like '").append(name).append("' or c.purchaser_name like '").append(name).append("')");
            args.add(name);
            args.add(name);
        }
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            filters += " ;purchaseUnitCode ="+orgUserService.getUserOrg2(orgList);
            sql.append(" and c.purchase_unit_code in (").append(orgUserService.getUserOrg(orgList)).append(") ");
            sqlCount.append(" and c.purchase_unit_code in (").append(orgUserService.getUserOrg(orgList)).append(") ");
        }
        sql.append("order by c.update_time desc limit ").append((page-1)*size).append(",").append(size);
        String sorts = "-updateTime";
        //得到list数据
        List<IotDeviceOrderDO> list = search(null, filters, sorts, page, size);
        //获取总数
        long count = getCount(filters);
        List<IotDeviceOrderDO> list = jdbcTempalte.query(sql.toString(),args.toArray(),new BeanPropertyRowMapper(IotDeviceOrderDO.class));
        List<Map<String,Object>> countList = jdbcTempalte.queryForList(sqlCount.toString());
        long count = Long.valueOf(countList.get(0).get("count").toString());
        //DO转VO
        List<IotDeviceOrderVO> iotDeviceOrderVOList = new ArrayList<>();
@ -326,9 +331,8 @@ public class IotDeviceOrderService extends BaseJpaService<IotDeviceOrderDO,IotDe
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            sql.append(" and c.purchase_unit_code in (?) ");
            sql.append(" and c.purchase_unit_code in(").append(orgUserService.getUserOrg(orgList)).append(") ");
            sqlCount.append(" and c.purchase_unit_code in(").append(orgUserService.getUserOrg(orgList)).append(") ");
            args.add(orgUserService.getUserOrg(orgList));
        }
        sql.append("order by c.update_time desc limit ").append((page-1)*size).append(",").append(size);

+ 43 - 27
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceService.java

@ -218,56 +218,72 @@ public class IotDeviceService extends BaseJpaService<IotDeviceDO,IotDeviceDao> {
     * @return
     */
    public MixEnvelop<IotDeviceVO, IotDeviceVO> queryPage(String sn, String hospital, String hospitalName,String orderId, String purcharseId, String productId, String name, String categoryCode, String manufacturerId, Integer page, Integer size) throws Exception{
        String filters = "del=1;";
        String semicolon = "";
        StringBuffer sql = new StringBuffer("SELECT DISTINCT c.* from iot_device c  WHERE c.del=1 ");
        StringBuffer sqlCount = new StringBuffer("SELECT COUNT(DISTINCT c.id) count from iot_device c  WHERE c.del=1 ");
        List<Object> args = new ArrayList<>();
        if(StringUtils.isNotBlank(orderId)){
            filters += semicolon +"orderId="+orderId;
            semicolon = ";";
            sql.append(" and c.order_id = ? ");
            sqlCount.append(" and c.order_id = '").append(orderId).append("'");
            args.add(orderId);
        }
        if(StringUtils.isNotBlank(purcharseId)){
            filters += semicolon +"purchaseId="+purcharseId;
            semicolon = ";";
            sql.append(" and c.purchase_id = ? ");
            sqlCount.append(" and c.purchase_id = '").append(purcharseId).append("'");
            args.add(purcharseId);
        }
        if(StringUtils.isNotBlank(hospital)){
            filters += semicolon +"hospital="+hospital;
            semicolon = ";";
            sql.append(" and c.hospital = ? ");
            sqlCount.append(" and c.hospital = '").append(hospital).append("'");
            args.add(hospital);
        }
        if(StringUtils.isNotBlank(sn)){
            filters += semicolon + "deviceSn?"+sn+" g1;simNo?" + sn + " g1";
            semicolon = ";";
            sn = "%"+sn+"%";
            sql.append(" and (c.device_sn like ? or c.sim_no like ?)");
            sqlCount.append(" and (c.device_sn like '").append(sn).append("' or c.sim_no like '").append(sn).append("')");
            args.add(sn);
            args.add(sn);
        }
        if(StringUtils.isNotBlank(productId)){
            filters += semicolon +"productId="+productId;
            semicolon = ";";
            sql.append(" and c.product_id = ? ");
            sqlCount.append(" and c.product_id = '").append(productId).append("'");
            args.add(productId);
        }
        if(StringUtils.isNotBlank(name)){
            filters += semicolon + "name?"+name+"";
            semicolon = ";";
            name = "%"+name+"%";
            sql.append(" and c.name like ?");
            sqlCount.append(" and c.name like '").append(name).append("'");
            args.add(name);
        }
        if(StringUtils.isNotBlank(categoryCode)){
            filters += semicolon +"categoryCode="+categoryCode;
            semicolon = ";";
            sql.append(" and c.category_code = ? ");
            sqlCount.append(" and c.category_code = '").append(categoryCode).append("'");
            args.add(categoryCode);
        }
        if(StringUtils.isNotBlank(manufacturerId)){
            filters += semicolon +"manufacturerId="+manufacturerId;
            semicolon = ";";
            sql.append(" and c.manufacturer_id = ? ");
            sqlCount.append(" and c.manufacturer_id = '").append(manufacturerId).append("'");
            args.add(manufacturerId);
        }
        if(StringUtils.isNotBlank(hospitalName)){
            filters += semicolon + "hospitalName?"+hospitalName+"";
            semicolon = ";";
            hospitalName = "%"+hospitalName+"%";
            sql.append(" and c.hospital_name like ?");
            sqlCount.append(" and c.hospital_name like '").append(hospitalName).append("'");
            args.add(hospitalName);
        }
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            filters +=  semicolon +" hospital ="+orgUserService.getUserOrg2(orgList);
            semicolon = ";";
            sql.append(" and c.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
            sqlCount.append(" and c.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
        }
        String sorts = "-updateTime";
        //得到list数据
        List<IotDeviceDO> list = search(null, filters, sorts, page, size);
        //获取总数
        long count = getCount(filters);
        sql.append("order by c.update_time desc limit ").append((page-1)*size).append(",").append(size);
        List<IotDeviceDO> list = jdbcTempalte.query(sql.toString(),args.toArray(),new BeanPropertyRowMapper(IotDeviceDO.class));
        List<Map<String,Object>> countList = jdbcTempalte.queryForList(sqlCount.toString());
        long count = Long.valueOf(countList.get(0).get("count").toString());
        //DO转VO
        List<IotDeviceVO> iotDeviceVOList = convertToModels(list,new ArrayList<>(list.size()),IotDeviceVO.class);

+ 4 - 4
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceSimService.java

@ -126,10 +126,10 @@ public class IotDeviceSimService  extends BaseJpaService<IotDeviceSimDO, IotDevi
//        StringBuffer sql = new StringBuffer("SELECT c.* from iot_device_sim c WHERE del=0 ");
        StringBuffer sql = new StringBuffer("SELECT c.* FROM " +
                " (SELECT c.*,d.patient_name,d.mobile,w.device_sn sn,w.name   FROM iot_device_sim c LEFT JOIN iot_patient_device d ON c.del=0 AND d.del=1 AND c.sim=d.sim LEFT JOIN iot_device w ON c.del = 0 AND w.del = 1 AND c.sim=w.sim_no) c" +
                " (SELECT c.*,d.patient_name,d.mobile,w.device_sn sn,w.name,d.hospital   FROM iot_device_sim c LEFT JOIN iot_patient_device d ON c.del=0 AND d.del=1 AND c.sim=d.sim LEFT JOIN iot_device w ON c.del = 0 AND w.del = 1 AND c.sim=w.sim_no) c" +
                " WHERE  c.del=0 ");
        StringBuffer sqlCount = new StringBuffer("SELECT  COUNT(c.id) count FROM " +
                " (SELECT c.*,d.patient_name,d.mobile,w.device_sn sn,w.name   FROM iot_device_sim c LEFT JOIN iot_patient_device d ON c.del=0 AND d.del=1 AND c.sim=d.sim LEFT JOIN iot_device w ON c.del = 0 AND w.del = 1 AND c.sim=w.sim_no) c" +
                " (SELECT c.*,d.patient_name,d.mobile,w.device_sn sn,w.name,d.hospital   FROM iot_device_sim c LEFT JOIN iot_patient_device d ON c.del=0 AND d.del=1 AND c.sim=d.sim LEFT JOIN iot_device w ON c.del = 0 AND w.del = 1 AND c.sim=w.sim_no) c" +
                " WHERE  c.del=0 ");
        List<Object> args = new ArrayList<>();
        if(StringUtils.isNotBlank(status)){
@ -149,8 +149,8 @@ public class IotDeviceSimService  extends BaseJpaService<IotDeviceSimDO, IotDevi
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            sql.append(" and d.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
            sqlCount.append(" and d.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
            sql.append(" and c.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
            sqlCount.append(" and c.hospital in (").append(orgUserService.getUserOrg(orgList)).append(")");
        }
        sql.append(" order by c.update_time desc limit ").append((page-1)*size).append(",").append(size);

+ 1 - 1
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceTransfersService.java

@ -56,7 +56,7 @@ public class IotDeviceTransfersService extends BaseJpaService<IotDeviceTransfers
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            sql += " and d.hospital in ("+orgUserService.getUserOrg(orgList)+") ";
            sql += " and t.hospital in ("+orgUserService.getUserOrg(orgList)+") ";
        }
        sql += "ORDER BY t.update_time desc ";

+ 167 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotPatientDeviceService.java

@ -9,6 +9,7 @@ import com.yihu.iot.dao.device.IotDeviceSimDao;
import com.yihu.iot.dao.device.IotPatientDeviceDao;
import com.yihu.iot.datainput.util.ConstantUtils;
import com.yihu.iot.service.common.ElasticSearchQueryGenerator;
import com.yihu.iot.service.common.MyJdbcTemplate;
import com.yihu.iot.service.common.OrgUserService;
import com.yihu.iot.service.dict.IotSystemDictService;
import com.yihu.iot.service.useragent.UserAgent;
@ -18,6 +19,7 @@ import com.yihu.jw.entity.iot.device.IotDeviceDO;
import com.yihu.jw.entity.iot.device.IotDeviceOverhaulDO;
import com.yihu.jw.entity.iot.device.IotPatientDeviceDO;
import com.yihu.jw.entity.iot.dict.IotSystemDictDO;
import com.yihu.jw.entity.patient.*;
import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.iot.IotRequestMapping;
@ -34,10 +36,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@ -608,4 +612,167 @@ public class IotPatientDeviceService extends BaseJpaService<IotPatientDeviceDO,
    public void deleteDelPatientDevice(String id) {
        iotPatientDeviceDao.delete(id);
    }
    /**
     * 删除患者设备
     */
    public List<com.alibaba.fastjson.JSONObject> deleteDevice(String id, String uuid) {
        String sql = "select * from wlyy.wlyy_patient_device where id="+id;
        PatientDevice device = jdbcTempalte.queryForObject(sql, new BeanPropertyRowMapper<>(PatientDevice.class));
        String sqlDel = "delete from wlyy.wlyy_patient_device where id="+id ;
        jdbcTempalte.execute(sqlDel);
        String sqlFind = "select * from wlyy.wlyy_patient_device where device_sn="+device.getDeviceSn() +" and category_code="+device.getCategoryCode();
        List<PatientDevice> patientDevices = jdbcTempalte.query(sqlFind , new BeanPropertyRowMapper<>(PatientDevice.class));
        List<com.alibaba.fastjson.JSONObject> objects = new ArrayList<>();
        for (PatientDevice patientDevice : patientDevices) {
            String json = com.alibaba.fastjson.JSONObject.toJSONString(patientDevice) ;
            com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(json) ;
            String sqlFindCode = "select p from wlyy.wlyy_patient p where p.status=1 and p.code ="+patientDevice.getUser();
            Patient patient = jdbcTempalte.queryForObject(sqlFindCode, new BeanPropertyRowMapper<>(Patient.class));
            if (patient != null) {
                object.put("userName", patient.getName());
            }
            objects.add(object);
        }
        return objects;
    }
    public Patient findByCode(String code) {
        String sql = "select * from wlyy.wlyy_patient p where p.status=1 and p.code='" + code +"'" ;
        Patient patient = jdbcTempalte.queryForObject(sql, new BeanPropertyRowMapper<>(Patient.class));
        return patient;
    }
    public SignFamily findDoctor(String code){
        String sql = "select * from wlyy.wlyy_sign_family a where a.type =2 and a.status >= 0 and a.patient = '" + code +"'";
        SignFamily family = jdbcTempalte.queryForObject(sql, new BeanPropertyRowMapper<>(SignFamily.class));
        return family;
    }
    public void saveMessage(Message message){
        Date czrq = message.getCzrq();
        Date createTime = message.getCreateTime();
        String content = message.getContent();
        Integer read = message.getRead();
        String receiver = message.getReceiver();
        String sender = message.getSender();
        String senderName = message.getSenderName();
        String code = message.getCode();
        String senderPhoto = message.getSenderPhoto();
        String title = message.getTitle();
        Integer type = message.getType();
        Integer readonly = message.getReadonly();
        Integer sex = message.getSex();
        String relationCode = message.getRelationCode();
        String over = message.getOver();
        String data = message.getData();
        String del = message.getDel();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str=sdf.format(czrq);
        String str1=sdf.format(createTime);
        String sql = "INSERT INTO wlyy.wlyy_message values (null , '"+code+"', '"+receiver+"', '"+sender+"', '"+data+"', '"+title+"', '"+content+"', '"+type+"', platform, state, '"+read+"', '"+readonly+"', '"+str+"', '"+del+"', '"+over+"', value1, value2, sign_status, receiver_name, '"+senderPhoto+"', '"+senderName+"', reason, tz_type, tz_code, '"+sex+"', prescription_status, '"+relationCode+"', is_refinement_consult, refinement_status, consult_num, session_id, session_name, '"+str1+"') ";
        jdbcTempalte.execute(sql);
    }
    /**
     * 按id查找
     * @param id
     * @return
     */
    public PatientDevice findId(String id) {
        String sql = "select * from wlyy.wlyy_patient_device where id="+id;
        try {
            return  jdbcTempalte.queryForObject(sql, new BeanPropertyRowMapper<>(PatientDevice.class));
        }catch (Exception e){
            return null;
        }
    }
    /**
     * 绑定和解绑的时候会保存一条数据
     * @param patientDevice
     * @param role
     * @param operateCode
     * @throws Exception
     */
    @Transactional
    public void savePatientDeviceLog(PatientDevice patientDevice, String deviceSn, int role, int operateCode)throws Exception{
        if (patientDevice==null){
            String sql = "select * from wlyy.wlyy_patient_device pd where pd.del=0 and pd.device_sn = '"+deviceSn+"'";
            patientDevice = jdbcTempalte.queryForObject(sql, new BeanPropertyRowMapper<>(PatientDevice.class));
        }
        PatientDeviceLog patientDeviceLog = new PatientDeviceLog();
        patientDeviceLog.setDeviceId(patientDevice.getDeviceId());
        patientDeviceLog.setPatient(patientDevice.getUser());
        patientDeviceLog.setCategoryCode(patientDevice.getCategoryCode());
        patientDeviceLog.setDeviceName(patientDevice.getDeviceName());
        patientDeviceLog.setDeviceSn(patientDevice.getDeviceSn());
        patientDeviceLog.setRole(role);
        patientDeviceLog.setOperateCode(operateCode);
        patientDeviceLog.setAgreementPhoto(patientDevice.getAgreementPhoto());
        patientDeviceLog.setHospital(patientDevice.getHospital());
        patientDeviceLog.setHospitalName(patientDevice.getHospitalName());
        patientDeviceLog.setCheckDoctorName(patientDevice.getCheckDoctorName());
        String operatorName = null;
        String operator = null;
        if (role==1){
            operatorName = patientDevice.getDoctorName();
            operator = patientDevice.getDoctor();
            patientDeviceLog.setOperatorName(patientDevice.getDoctorName());
            patientDeviceLog.setOperator(patientDevice.getDoctor());
        }else if (role==2){
            if(StringUtils.isEmpty(patientDevice.getAgent())){
                String sql = "select * from wlyy.wlyy_patient p where p.status=1 and p.code='" + patientDevice.getUser()+"'" ;
                Patient patient = (Patient) jdbcTempalte.queryForObject(sql, new BeanPropertyRowMapper<>(Patient.class));
                if (patient!=null){
                    operatorName = patient.getName();
                    operator = patient.getCode();
                    patientDeviceLog.setOperatorName(patient.getName());
                    patientDeviceLog.setOperator(patient.getCode());
                }
            }else {
                operatorName = patientDevice.getAgentName();
                operator = patientDevice.getAgent();
                patientDeviceLog.setOperatorName(patientDevice.getAgentName());
                patientDeviceLog.setOperator(patientDevice.getAgent());
            }
        }
        patientDeviceLog.setCreateTime(new Date());
        patientDeviceLog.setIsDel(1);
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str=sdf.format(new Date());
        String sql = "INSERT INTO wlyy.wlyy_patient_device_log values(null, '"+patientDevice.getDeviceId()+"', '"+patientDevice.getUser()+"','"+patientDevice.getDeviceSn()+"', '"+patientDevice.getDeviceName()+"', '"+patientDevice.getCategoryCode()+"', '"+operator+"', '"+operatorName+"', '"+role+"', " +
                " '"+operateCode+"', '"+str+"' , 1, '"+patientDevice.getAgreementPhoto()+"', '"+patientDevice.getHospital()+"', '"+patientDevice.getHospitalName()+"', '"+patientDevice.getCheckDoctorName()+"')";//wlyy_patient_device_log
        jdbcTempalte.execute(sql);
    }
    /**
     * 全部解绑后设备表更新为未绑定
     * @param deviceSn
     */
    public void unBindUpdateIsBinding(String deviceSn)throws Exception{
        String sql1 = "select * from wlyy.wlyy_patient_device pd where pd.del=0 and pd.device_sn ='"+deviceSn+"'";
        List<PatientDevice> patientDeviceList = jdbcTempalte.query(sql1 , new BeanPropertyRowMapper<>(PatientDevice.class));
        String sql;
        if (patientDeviceList.size()==0){
            sql = "update device.wlyy_devices dd set dd.is_binding=0 where dd.device_code='"+deviceSn+"'";
            jdbcTemplate.update(sql);
            //deviceDetailDao.updateUnbindAll(0,deviceSn);
        }
        if (patientDeviceList.size()==1){
            sql = "update device.wlyy_devices dd set dd.is_binding=1 where dd.device_code='"+deviceSn+"'";
            jdbcTemplate.update(sql);
            //deviceDetailDao.updateUnbindAll(1,deviceSn);
        }
        if (patientDeviceList.size()>1){
            sql = "update device.wlyy_devices dd set dd.is_binding=2 where dd.device_code='"+deviceSn+"'";
            jdbcTemplate.update(sql);
            //deviceDetailDao.updateUnbindAll(2,deviceSn);
        }
    }
}

+ 1 - 1
svr/svr-iot/src/main/java/com/yihu/iot/service/dict/IotHospitalService.java

@ -53,7 +53,7 @@ public class IotHospitalService extends BaseJpaService<IotHospitalDO, IotHospita
        //数据权限过滤
        List<String> orgList = orgUserService.getUserOrgById(userAgent.getUID());
        if(!orgList.contains(userAgent.commonHospital)){
            sql += " h.hospital in ("+orgUserService.getUserOrg(orgList)+")";
            sql += " and h.saas_id in ("+orgUserService.getUserOrg(orgList)+")";
        }
        if(page != null && pageSize != null){