Browse Source

代码修改

LAPTOP-KB9HII50\70708 2 years ago
parent
commit
3c5d7e8bef
27 changed files with 1404 additions and 16 deletions
  1. 13 0
      business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseCopywritingDao.java
  2. 76 0
      business/base-service/src/main/java/com/yihu/jw/dict/service/BaseCopywritingService.java
  3. 13 2
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/DrugsPlanService.java
  4. 12 0
      business/base-service/src/main/java/com/yihu/jw/hospital/record/dao/HospitalPatientInpatientRecordDao.java
  5. 14 0
      business/base-service/src/main/java/com/yihu/jw/hospital/record/dao/HospitalPatientOutpatientRecordDao.java
  6. 14 0
      business/base-service/src/main/java/com/yihu/jw/hospital/record/service/HospitalPatientInpatientRecordService.java
  7. 13 0
      business/base-service/src/main/java/com/yihu/jw/login/dao/BaseLoginAppDao.java
  8. 16 0
      business/base-service/src/main/java/com/yihu/jw/login/dao/BaseLoginComponentDao.java
  9. 71 0
      business/base-service/src/main/java/com/yihu/jw/login/service/BaseLoginAppService.java
  10. 13 0
      business/base-service/src/main/java/com/yihu/jw/patient/dao/BaseIdcardRecordDao.java
  11. 56 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseCopywritingDO.java
  12. 67 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/login/BaseLoginAppDO.java
  13. 77 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/login/BaseLoginComponentDO.java
  14. 97 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BaseIdcardRecordDO.java
  15. 198 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/record/HospitalPatientInpatientRecordDO.java
  16. 177 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/record/HospitalPatientOutpatientRecordDO.java
  17. 30 0
      server/svr-authentication/src/main/java/com/yihu/jw/security/dao/patient/WxAppletsAccessTokenDao.java
  18. 20 1
      server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java
  19. 125 0
      server/svr-authentication/src/main/java/com/yihu/jw/security/service/WechatService.java
  20. 15 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/WlyyHospitalSysDictEndpoint.java
  21. 143 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/login/LoginAppEndpoint.java
  22. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/voluntary/VoluntaryRecruitmentEndpoint.java
  23. 6 3
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/voluntary/VoluntaryRecruitmentPeopleEndpoint.java
  24. 108 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/archives/MedicalRecordCopyingEndpoint.java
  25. 7 2
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/expressage/WlyyPatientExpressageAddrEndpoint.java
  26. 19 3
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/DrugsPlanEndpoint.java
  27. 2 2
      svr/svr-internet-hospital/src/main/resources/application.yml

+ 13 - 0
business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseCopywritingDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.dict.dao;
import com.yihu.jw.entity.base.dict.BaseCopywritingDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/11/28.
 */
public interface BaseCopywritingDao extends JpaRepository<BaseCopywritingDO, String>, JpaSpecificationExecutor<BaseCopywritingDO> {
    BaseCopywritingDO findByModularAndScene(String modular,String scene);
}

+ 76 - 0
business/base-service/src/main/java/com/yihu/jw/dict/service/BaseCopywritingService.java

@ -0,0 +1,76 @@
package com.yihu.jw.dict.service;
import com.yihu.jw.dict.dao.BaseCopywritingDao;
import com.yihu.jw.entity.base.dict.BaseCopywritingDO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
 * Created by yeshijie on 2022/11/28.
 */
@Service
public class BaseCopywritingService {
    @Autowired
    private BaseCopywritingDao copywritingDao;
    @Autowired
    private StringRedisTemplate redisTemplate;
    public BaseCopywritingDO create(BaseCopywritingDO copywritingDO){
        copywritingDO.setCreateTime(new Date());
        return copywritingDao.save(copywritingDO);
    }
    public BaseCopywritingDO findByModularAndScene(String modular,String scene){
        return copywritingDao.findByModularAndScene(modular, scene);
    }
    /**
     * 获取文案-缓存
     * @return
     */
    public String findCopywriting(String modular,String scene){
        String key = "copywriting:"+modular+":"+scene;
        String content = redisTemplate.opsForValue().get(key);
        if(StringUtils.isBlank(content)){
            content = findCopywritingNoRedis(modular, scene);
            if(StringUtils.isNotBlank(content)){
                redisTemplate.opsForValue().set(key,content);
            }
        }
        return content;
    }
    /**
     * 获取文案-无缓存
     * @return
     */
    public String findCopywritingNoRedis(String modular,String scene){
        BaseCopywritingDO copywritingDO = copywritingDao.findByModularAndScene(modular, scene);
        if(copywritingDO!=null){
            return copywritingDO.getContent();
        }
        return null;
    }
    /**
     * 把文案设置到缓存
     */
    public String setCopywritingToRedis(BaseCopywritingDO copywritingDO,String modular,String scene){
        String content = null;
        if(copywritingDO==null){
            copywritingDO = copywritingDao.findByModularAndScene(modular, scene);
        }
        if(copywritingDO!=null){
            String key = "copywriting:"+copywritingDO.getModular()+":"+copywritingDO.getScene();
            content = copywritingDO.getContent();
            redisTemplate.opsForValue().set(key,content);
        }
        return content;
    }
}

+ 13 - 2
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/DrugsPlanService.java

@ -103,12 +103,23 @@ public class DrugsPlanService {
        }
    }
    /**
     * 按月查询居民每天的用药计划数
     */
    public List<Map<String,Object>> findHaveDrugPlan(String patient,String month){
        String sql = "SELECT DATE_FORMAT(create_time,'%e') day,count(*) num from base_drugs_plan where patient ='"+patient+"' and type=1 ";
        sql += " and create_time>='"+month+"-01' and create_time<='"+month+"-30' GROUP BY day";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        return list;
    }
    /**
     * 获取居民的今日用药计划
     * @return
     */
    public List<BaseDrugsPlanDO> findDrugsPlan(String patient){
        String sql = "select * from base_drugs_plan where patient ='"+patient+"' and type=1 and create_time>='"+ DateUtil.getStringDateShort() +" 00:00:00'";
    public List<BaseDrugsPlanDO> findDrugsPlan(String patient,String date){
        String sql = "select * from base_drugs_plan where patient ='"+patient+"' and type=1 ";
        sql += " and create_time>='"+date+" 00:00:00' and create_time<='"+date+" 23:59:59'";
        List<BaseDrugsPlanDO> planDOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(BaseDrugsPlanDO.class));
        for (BaseDrugsPlanDO planDO:planDOList){
            planDO.setDetailList(drugsPlanDetailDao.findByPlanId(planDO.getId()));

+ 12 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/record/dao/HospitalPatientInpatientRecordDao.java

@ -0,0 +1,12 @@
package com.yihu.jw.hospital.record.dao;
import com.yihu.jw.entity.hospital.record.HospitalPatientInpatientRecordDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/11/28.
 */
public interface HospitalPatientInpatientRecordDao extends JpaRepository<HospitalPatientInpatientRecordDO, String>,
        JpaSpecificationExecutor<HospitalPatientInpatientRecordDO> {
}

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/record/dao/HospitalPatientOutpatientRecordDao.java

@ -0,0 +1,14 @@
package com.yihu.jw.hospital.record.dao;
import com.yihu.jw.entity.hospital.record.HospitalPatientOutpatientRecordDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/11/28.
 */
public interface HospitalPatientOutpatientRecordDao extends JpaRepository<HospitalPatientOutpatientRecordDO, String>,
        JpaSpecificationExecutor<HospitalPatientOutpatientRecordDO> {
}

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/record/service/HospitalPatientInpatientRecordService.java

@ -0,0 +1,14 @@
package com.yihu.jw.hospital.record.service;
import com.yihu.jw.entity.hospital.record.HospitalPatientInpatientRecordDO;
import com.yihu.jw.hospital.record.dao.HospitalPatientInpatientRecordDao;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
/**
 * Created by yeshijie on 2022/11/28.
 */
@Service
public class HospitalPatientInpatientRecordService extends BaseJpaService<HospitalPatientInpatientRecordDO, HospitalPatientInpatientRecordDao> {
}

+ 13 - 0
business/base-service/src/main/java/com/yihu/jw/login/dao/BaseLoginAppDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.login.dao;
import com.yihu.jw.entity.base.login.BaseLoginAppDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/11/28.
 */
public interface BaseLoginAppDao extends JpaRepository<BaseLoginAppDO, String>, JpaSpecificationExecutor<BaseLoginAppDO> {
}

+ 16 - 0
business/base-service/src/main/java/com/yihu/jw/login/dao/BaseLoginComponentDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.login.dao;
import com.yihu.jw.entity.base.login.BaseLoginComponentDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
 * Created by yeshijie on 2022/11/28.
 */
public interface BaseLoginComponentDao extends JpaRepository<BaseLoginComponentDO, String>, JpaSpecificationExecutor<BaseLoginComponentDO> {
    List<BaseLoginComponentDO> findByLoginAppId(String loginAppId);
}

+ 71 - 0
business/base-service/src/main/java/com/yihu/jw/login/service/BaseLoginAppService.java

@ -0,0 +1,71 @@
package com.yihu.jw.login.service;
import com.yihu.jw.entity.base.login.BaseLoginAppDO;
import com.yihu.jw.entity.base.login.BaseLoginComponentDO;
import com.yihu.jw.login.dao.BaseLoginAppDao;
import com.yihu.jw.login.dao.BaseLoginComponentDao;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
 * Created by yeshijie on 2022/11/28.
 */
@Service
public class BaseLoginAppService extends BaseJpaService<BaseLoginAppDO, BaseLoginAppDao> {
    @Autowired
    private BaseLoginComponentDao logingComponentDao;
    @Autowired
    private BaseLoginAppDao loginAppDao;
    public List<BaseLoginComponentDO> findByLoginAppId(String loginAppId){
        return logingComponentDao.findByLoginAppId(loginAppId);
    }
    public BaseLoginAppDO createLoginApp(BaseLoginAppDO loginAppDO){
        if(StringUtils.isNotBlank(loginAppDO.getId())){
            BaseLoginAppDO old = loginAppDao.findById(loginAppDO.getId()).orElse(null);
            if(old!=null){
                loginAppDO.setCreateTime(old.getCreateTime());
            }
        }else {
            loginAppDO.setCreateTime(new Date());
        }
        return loginAppDao.save(loginAppDO);
    }
    public BaseLoginAppDO loginAppStatus(String id,Integer del){
        BaseLoginAppDO baseLoginAppDO = loginAppDao.findById(id).orElse(null);
        if(baseLoginAppDO!=null){
            baseLoginAppDO.setDel(del);
            loginAppDao.save(baseLoginAppDO);
        }
        return baseLoginAppDO;
    }
    public void loginAppDelete(String id){
        loginAppDao.deleteById(id);
    }
    public void loginComponentDelete(String id){
        logingComponentDao.deleteById(id);
    }
    public BaseLoginComponentDO createLoginCompoent(BaseLoginComponentDO loginAppDO){
        if(StringUtils.isNotBlank(loginAppDO.getId())){
            BaseLoginComponentDO old = logingComponentDao.findById(loginAppDO.getId()).orElse(null);
            if(old!=null){
                loginAppDO.setCreateTime(old.getCreateTime());
            }
        }else {
            loginAppDO.setCreateTime(new Date());
        }
        return logingComponentDao.save(loginAppDO);
    }
}

+ 13 - 0
business/base-service/src/main/java/com/yihu/jw/patient/dao/BaseIdcardRecordDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.patient.dao;
import com.yihu.jw.entity.base.patient.BaseIdcardRecordDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/11/28.
 */
public interface BaseIdcardRecordDao extends JpaRepository<BaseIdcardRecordDO, String>, JpaSpecificationExecutor<BaseIdcardRecordDO> {
    BaseIdcardRecordDO findByPatient(String patient);
}

+ 56 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseCopywritingDO.java

@ -0,0 +1,56 @@
package com.yihu.jw.entity.base.dict;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by yeshijie on 2022/11/28.
 */
@Entity
@Table(name = "base_copywriting")
public class BaseCopywritingDO extends UuidIdentityEntityWithCreateTime {
    private String content;//文案
    private String modular;//模块
    private String scene;//场景
    private String remark;//备注说明
    @Column(name = "content")
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    @Column(name = "modular")
    public String getModular() {
        return modular;
    }
    public void setModular(String modular) {
        this.modular = modular;
    }
    @Column(name = "scene")
    public String getScene() {
        return scene;
    }
    public void setScene(String scene) {
        this.scene = scene;
    }
    @Column(name = "remark")
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

+ 67 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/login/BaseLoginAppDO.java

@ -0,0 +1,67 @@
package com.yihu.jw.entity.base.login;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 登录应用表
 * Created by yeshijie on 2022/11/28.
 */
@Entity
@Table(name = "base_login_app")
public class BaseLoginAppDO extends UuidIdentityEntityWithCreateTime {
    private String code;//应用id
    private String ip;//ip端口
    private String name;//应用名称
    private String customerName;//客户名称
    private Integer del;//是否生效 1生效 0失效
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "ip")
    public String getIp() {
        return ip;
    }
    public void setIp(String ip) {
        this.ip = ip;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "customer_name")
    public String getCustomerName() {
        return customerName;
    }
    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }
    @Column(name = "del")
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
}

+ 77 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/login/BaseLoginComponentDO.java

@ -0,0 +1,77 @@
package com.yihu.jw.entity.base.login;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 *  登录终端表
 * Created by yeshijie on 2022/11/28.
 */
@Entity
@Table(name = "base_login_component")
public class BaseLoginComponentDO extends UuidIdentityEntityWithCreateTime {
    private String loginAppId;//登录应用id
    private String name;//终端角色名称
    private String type;//登录终端类型(字典 login_compont_type)
    private String loginType;//登录类型(字典 login_type)
    private String registField;//注册字段(字典 regist_field)
    private String backgroudImg;//背景图
    @Column(name = "login_app_id")
    public String getLoginAppId() {
        return loginAppId;
    }
    public void setLoginAppId(String loginAppId) {
        this.loginAppId = loginAppId;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Column(name = "login_type")
    public String getLoginType() {
        return loginType;
    }
    public void setLoginType(String loginType) {
        this.loginType = loginType;
    }
    @Column(name = "regist_field")
    public String getRegistField() {
        return registField;
    }
    public void setRegistField(String registField) {
        this.registField = registField;
    }
    @Column(name = "backgroud_img")
    public String getBackgroudImg() {
        return backgroudImg;
    }
    public void setBackgroudImg(String backgroudImg) {
        this.backgroudImg = backgroudImg;
    }
}

+ 97 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BaseIdcardRecordDO.java

@ -0,0 +1,97 @@
package com.yihu.jw.entity.base.patient;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 居民证件记录
 * Created by yeshijie on 2022/11/28.
 */
@Entity
@Table(name = "base_idcard_record")
public class BaseIdcardRecordDO extends UuidIdentityEntityWithCreateTime {
    private String patient;
    private String name;//姓名
    private String idcard;//卡号
    private String idcardFront;//证件正面
    private String idcardBack;//证件反面
    private String headImage;//手持证件照
    private String type;//身份证类型 1身份证 见字典表idcard_type
    private String status;//状态 1已验证 0未验证
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "idcard")
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    @Column(name = "idcard_front")
    public String getIdcardFront() {
        return idcardFront;
    }
    public void setIdcardFront(String idcardFront) {
        this.idcardFront = idcardFront;
    }
    @Column(name = "idcard_back")
    public String getIdcardBack() {
        return idcardBack;
    }
    public void setIdcardBack(String idcardBack) {
        this.idcardBack = idcardBack;
    }
    @Column(name = "head_image")
    public String getHeadImage() {
        return headImage;
    }
    public void setHeadImage(String headImage) {
        this.headImage = headImage;
    }
    @Column(name = "type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
}

+ 198 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/record/HospitalPatientInpatientRecordDO.java

@ -0,0 +1,198 @@
package com.yihu.jw.entity.hospital.record;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 居民医院住院记录
 * Created by yeshijie on 2022/11/28.
 */
@Entity
@Table(name = "hospital_patient_inpatient_record")
public class HospitalPatientInpatientRecordDO extends UuidIdentityEntityWithCreateTime {
    private String idcard;//身份证
    private String name;//居民姓名
    private Integer age;//年龄
    private String birthday;
    private String sex;//性别
    private String marriage;//婚姻状况
    private String patient;
    private String doctor;//主治医生
    private String doctorName;
    private String dept;//科室
    private String deptName;
    private String org;//医院
    private String orgName;
    private String visitTime;//就诊时间
    private String diagnosis;//主诊断编码
    private String diagnosisName;//主诊断
    private String admissionDiagnosis;//入院诊断
    private String dischargeDiagnosis;//出院诊断
    @Column(name = "idcard")
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "age")
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Column(name = "birthday")
    public String getBirthday() {
        return birthday;
    }
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
    @Column(name = "sex")
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    @Column(name = "marriage")
    public String getMarriage() {
        return marriage;
    }
    public void setMarriage(String marriage) {
        this.marriage = marriage;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @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 = "dept")
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    @Column(name = "dept_name")
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    @Column(name = "org")
    public String getOrg() {
        return org;
    }
    public void setOrg(String org) {
        this.org = org;
    }
    @Column(name = "org_name")
    public String getOrgName() {
        return orgName;
    }
    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }
    @Column(name = "visit_time")
    public String getVisitTime() {
        return visitTime;
    }
    public void setVisitTime(String visitTime) {
        this.visitTime = visitTime;
    }
    @Column(name = "diagnosis")
    public String getDiagnosis() {
        return diagnosis;
    }
    public void setDiagnosis(String diagnosis) {
        this.diagnosis = diagnosis;
    }
    @Column(name = "diagnosis_name")
    public String getDiagnosisName() {
        return diagnosisName;
    }
    public void setDiagnosisName(String diagnosisName) {
        this.diagnosisName = diagnosisName;
    }
    @Column(name = "admission_diagnosis")
    public String getAdmissionDiagnosis() {
        return admissionDiagnosis;
    }
    public void setAdmissionDiagnosis(String admissionDiagnosis) {
        this.admissionDiagnosis = admissionDiagnosis;
    }
    @Column(name = "discharge_diagnosis")
    public String getDischargeDiagnosis() {
        return dischargeDiagnosis;
    }
    public void setDischargeDiagnosis(String dischargeDiagnosis) {
        this.dischargeDiagnosis = dischargeDiagnosis;
    }
}

+ 177 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/record/HospitalPatientOutpatientRecordDO.java

@ -0,0 +1,177 @@
package com.yihu.jw.entity.hospital.record;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 居民医院门诊记录
 * Created by yeshijie on 2022/11/28.
 */
@Entity
@Table(name = "hospital_patient_outpatient_record")
public class HospitalPatientOutpatientRecordDO extends UuidIdentityEntityWithCreateTime {
    private String idcard;//身份证
    private String name;//居民姓名
    private Integer age;//年龄
    private String birthday;
    private String sex;//性别
    private String marriage;//婚姻状况
    private String patient;
    private String doctor;//主治医生
    private String doctorName;
    private String dept;//科室
    private String deptName;
    private String org;//医院
    private String orgName;
    private String visitTime;//就诊时间
    private String diagnosis;//主诊断编码
    private String diagnosisName;//主诊断
    @Column(name = "idcard")
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "age")
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Column(name = "birthday")
    public String getBirthday() {
        return birthday;
    }
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
    @Column(name = "sex")
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    @Column(name = "marriage")
    public String getMarriage() {
        return marriage;
    }
    public void setMarriage(String marriage) {
        this.marriage = marriage;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @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 = "dept")
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    @Column(name = "dept_name")
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    @Column(name = "org")
    public String getOrg() {
        return org;
    }
    public void setOrg(String org) {
        this.org = org;
    }
    @Column(name = "org_name")
    public String getOrgName() {
        return orgName;
    }
    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }
    @Column(name = "visit_time")
    public String getVisitTime() {
        return visitTime;
    }
    public void setVisitTime(String visitTime) {
        this.visitTime = visitTime;
    }
    @Column(name = "diagnosis")
    public String getDiagnosis() {
        return diagnosis;
    }
    public void setDiagnosis(String diagnosis) {
        this.diagnosis = diagnosis;
    }
    @Column(name = "diagnosis_name")
    public String getDiagnosisName() {
        return diagnosisName;
    }
    public void setDiagnosisName(String diagnosisName) {
        this.diagnosisName = diagnosisName;
    }
}

+ 30 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/dao/patient/WxAppletsAccessTokenDao.java

@ -0,0 +1,30 @@
package com.yihu.jw.security.dao.patient;
import com.yihu.jw.entity.base.wx.WxAppletsAccessTokenDO;
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;
/**
 * Created by Administrator on 2017/5/18 0018.
 */
public interface WxAppletsAccessTokenDao extends PagingAndSortingRepository<WxAppletsAccessTokenDO, String>, JpaSpecificationExecutor<WxAppletsAccessTokenDO> {
    @Query("from WxAppletsAccessTokenDO w where w.wechatId =?1 order by w.addTimestamp desc")
    List<WxAppletsAccessTokenDO> getWxAccessTokenById(String wechatId);
    
    @Modifying
    @Query("delete from WxAppletsAccessTokenDO p where p.wechatId=?1 ")
    void deleteByWechatId(String wechatId);
    @Query("select p from WxAppletsAccessTokenDO p where p.code = ?1 order by p.addTimestamp desc")
    Iterable<WxAppletsAccessTokenDO> findAccessToken(String accId);
    @Modifying
    @Query("delete from WxAppletsAccessTokenDO p where p.code=?1 ")
    void deleteByAccId(String accId);
}

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

@ -39,10 +39,10 @@ import com.yihu.jw.sms.service.ZhongShanSMSService;
import com.yihu.jw.sms.util.ykyy.vo.ResultMsg;
import com.yihu.jw.util.common.NetworkUtil;
import com.yihu.jw.util.common.RSAUtils;
import com.yihu.jw.util.encrypt.MD5;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.util.network.HttpResponse;
import com.yihu.jw.util.network.HttpUtils;
import com.yihu.jw.util.encrypt.MD5;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -182,6 +182,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    private BaseSmsDao baseSmsDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private WechatService wechatService;
    @PostConstruct
    private void init() {
@ -376,6 +378,23 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
                    Oauth2Envelop<WlyyUserSimple> oauth2Envelop = new Oauth2Envelop<>(jsonObject.getString("message"), -1, null);
                    return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
                }
            }else if("wxApplets".equals(flag)){
                //微信小程序登录
                parameters.put("grant_type", "dingTalk");
                String authCode = parameters.get("authCode");
                if(org.apache.commons.lang3.StringUtils.isBlank(authCode)){
                    throw new InvalidRequestException("请求参数错误");
                }
                String userPhone = wechatService.getUserPhoneByApplets(authCode);
                if (!StringUtils.isEmpty(userPhone)){
                    parameters.put("username", userPhone);
                }else{
                    HttpHeaders headers = new HttpHeaders();
                    headers.set("Cache-Control", "no-store");
                    headers.set("Pragma", "no-cache");
                    Oauth2Envelop<WlyyUserSimple> oauth2Envelop = new Oauth2Envelop<>("获取用户手机号失败", -1, null);
                    return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
                }
            }else if (StringUtils.isEmpty(parameters.get("captcha"))) {
                parameters.put("grant_type", "password");
                //解密密码

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

@ -0,0 +1,125 @@
package com.yihu.jw.security.service;
import com.yihu.jw.entity.base.wx.WxAppletsAccessTokenDO;
import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.exception.code.ExceptionCode;
import com.yihu.jw.security.dao.patient.WechatDao;
import com.yihu.jw.security.dao.patient.WxAppletsAccessTokenDao;
import com.yihu.jw.util.network.HttpUtils;
import com.yihu.jw.util.wechat.wxhttp.HttpUtil;
import org.json.JSONObject;
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 org.springframework.util.StringUtils;
import java.util.*;
/**
 * Created by yeshijie on 2022/11/2.
 */
@Service
public class WechatService {
    private static Logger logger = LoggerFactory.getLogger(WechatService.class);
    @Value("${wechat.id}")
    private String wxId;
    @Autowired
    private WechatDao wechatDao;
    @Autowired
    private WxAppletsAccessTokenDao wxAppletsAccessTokenDao;
    /**
     * 根据小程序获取用户手机号
     *
     * @param code
     * @return
     * @throws Exception
     */
    public String getUserPhoneByApplets(String code) throws Exception {
        String token = getWxAppletsAccessTokenById(wxId).getAccessToken();
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(code)){
            String token_url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + token;
            String params = "{\"code\": \""+code+"\"}";
            logger.info("参数:"+params);
            String result = HttpUtil.sendPost(token_url, params);
            logger.info("步骤1:"+result);
            if (org.apache.commons.lang3.StringUtils.isNoneBlank(result)){
                com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(result);
                if (object.getString("errcode").equalsIgnoreCase("0")){
                    com.alibaba.fastjson.JSONObject jsonObject= object.getJSONObject("phone_info");
                    return jsonObject.getString("phoneNumber");
                }
            }
            return null;
        }else {
            return null;
        }
    }
    /**
     * 生成小程序token
     * @param wechatId
     * @return
     */
    public WxAppletsAccessTokenDO getWxAppletsAccessTokenById(String wechatId) {
        try {
            //根据wechatCode查找出appid和appSecret
            WxWechatDO wxWechat = wechatDao.findById(wechatId).orElse(null);
            List<WxAppletsAccessTokenDO> wxAccessTokens =  wxAppletsAccessTokenDao.getWxAccessTokenById(wechatId);
            if(wxWechat==null){
                throw new ApiException("wxWechat is not exist", ExceptionCode.common_error_params_code);
            }
            if(wxAccessTokens!=null&&wxAccessTokens.size()>0){
                for (WxAppletsAccessTokenDO accessToken : wxAccessTokens) {
                    if ((System.currentTimeMillis() - accessToken.getAddTimestamp()) < (accessToken.getExpiresIn() * 500)) {
                        return accessToken;
                    } else {
                        wxAppletsAccessTokenDao.delete(accessToken);
                        break;
                    }
                }
            }
            String token_url = "https://api.weixin.qq.com/cgi-bin/token";
            String appId="";
            String appSecret="";
            appId = wxWechat.getApplets();
            appSecret = wxWechat.getAppletsSecret();
            if (StringUtils.isEmpty(appId)){
                throw new ApiException("appId is null", ExceptionCode.common_error_params_code);
            }
            if (StringUtils.isEmpty(appSecret)){
                throw new ApiException("appSecret is null", ExceptionCode.common_error_params_code);
            }
            Map<String, Object> params = new HashMap<>();
            params.put("grant_type", "client_credential");
            params.put("appid", appId);
            params.put("secret", appSecret);
            String result = HttpUtils.doGet(token_url, params).getContent();
            logger.info("--------------wechat token return:"+result+"---------------");
            JSONObject json = new JSONObject(result);
            if (json.has("access_token")) {
                String token = json.get("access_token").toString();
                String expires_in = json.get("expires_in").toString();
                WxAppletsAccessTokenDO newaccessToken = new WxAppletsAccessTokenDO();
                newaccessToken.setAccessToken(token);
                newaccessToken.setExpiresIn(Long.parseLong(expires_in));
                newaccessToken.setAddTimestamp(System.currentTimeMillis());
                newaccessToken.setCzrq(new Date());
                newaccessToken.setCode(UUID.randomUUID().toString().replace("-",""));
                newaccessToken.setWechatId(wechatId);
                wxAppletsAccessTokenDao.save(newaccessToken);
                return newaccessToken;
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

+ 15 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/WlyyHospitalSysDictEndpoint.java

@ -1,10 +1,11 @@
package com.yihu.jw.base.endpoint.dict;
import com.yihu.jw.dict.service.BaseCopywritingService;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.service.WlyyHospitalSysDictService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
@ -23,6 +24,19 @@ public class WlyyHospitalSysDictEndpoint extends EnvelopRestEndpoint {
    private static Logger logger = LoggerFactory.getLogger(WlyyHospitalSysDictEndpoint.class);
    @Autowired
    private WlyyHospitalSysDictService wlyyHospitalSysDictService;
    @Autowired
    private BaseCopywritingService copywritingService;
    @ApiOperation("把文案设置到缓存")
    @GetMapping(value= "open/nologin/setCopywritingToRedis")
    public Envelop setCopywritingToRedis(@ApiParam(name = "modular", value = "name", required = true)
                               @RequestParam(value = "modular")String modular,
                               @ApiParam(name = "scene", value = "modelName", required = true)
                               @RequestParam(value = "scene")String scene){
        return ObjEnvelop.getSuccess("success",copywritingService.setCopywritingToRedis(null,modular,scene));
    }
    @ApiOperation("查询字典")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.findDict)
    public MixEnvelop findDict(@ApiParam(name = "name", value = "name", required = false)

+ 143 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/login/LoginAppEndpoint.java

@ -0,0 +1,143 @@
package com.yihu.jw.base.endpoint.login;
import com.yihu.jw.entity.base.login.BaseLoginAppDO;
import com.yihu.jw.entity.base.login.BaseLoginComponentDO;
import com.yihu.jw.login.service.BaseLoginAppService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * Created by yeshijie on 2022/11/28.
 */
@RestController
@RequestMapping(value = "loginApp")
@Api(value = "统一登录组件", tags = {"统一登录组件"})
public class LoginAppEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private BaseLoginAppService loginAppService;
    @PostMapping(value = "createLoginApp")
    @ApiOperation(value = "新增/修改登录应用")
    public ObjEnvelop createLoginApp (
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData){
        try {
            BaseLoginAppDO loginAppDO = toEntity(jsonData, BaseLoginAppDO.class);
            return ObjEnvelop.getSuccess("保存成功",loginAppService.createLoginApp(loginAppDO));
        }catch (Exception e){
            e.printStackTrace();
        }
        return ObjEnvelop.getError("保存失败");
    }
    @PostMapping(value = "loginAppStatus")
    @ApiOperation(value = "生效/失效")
    public Envelop loginAppStatus(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id,
            @ApiParam(name = "del", value = "1生效,0失效", required = true)
            @RequestParam(value = "del") Integer del) {
        try {
            return ObjEnvelop.getSuccess("修改成功",loginAppService.loginAppStatus(id,del));
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("修改失败");
    }
    @PostMapping(value = "loginAppDelete")
    @ApiOperation(value = "删除登录应用")
    public Envelop loginAppDelete(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            loginAppService.loginAppDelete(id);
            return Envelop.getSuccess("删除成功");
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("删除失败");
    }
    @GetMapping(value = "loginAppPage")
    @ApiOperation(value = "获取分页")
    public Envelop loginAppPage (
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size){
        try {
            List<BaseLoginAppDO> loginAppDOS = loginAppService.search(fields, filters, sorts, page, size);
            long count = loginAppService.getCount(filters);
            return PageEnvelop.getSuccessListWithPage("获取成功",loginAppDOS,page,size,count);
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("获取失败");
    }
    @GetMapping(value = "findLoginCompoentList")
    @ApiOperation(value = "获取登录终端列表")
    public Envelop findLoginCompoentList (
            @ApiParam(name = "loginAppId", value = "登录应用id")
            @RequestParam(value = "loginAppId", required = true) String loginAppId){
        try {
            String filters = "loginAppId="+loginAppId;
            List<BaseLoginComponentDO> componentDOList =loginAppService.findByLoginAppId(loginAppId);
            return ListEnvelop.getSuccess("获取成功", componentDOList);
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("获取失败");
    }
    @PostMapping(value = "createLoginCompoent")
    @ApiOperation(value = "新增/修改登录终端")
    public ObjEnvelop createLoginCompoent (
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData){
        try {
            BaseLoginComponentDO loginAppDO = toEntity(jsonData, BaseLoginComponentDO.class);
            return ObjEnvelop.getSuccess("保存成功",loginAppService.createLoginCompoent(loginAppDO));
        }catch (Exception e){
            e.printStackTrace();
        }
        return ObjEnvelop.getError("保存失败");
    }
    @PostMapping(value = "loginComponentDelete")
    @ApiOperation(value = "删除登录终端")
    public Envelop loginComponentDelete(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            loginAppService.loginComponentDelete(id);
            return Envelop.getSuccess("删除成功");
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("删除失败");
    }
}

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/voluntary/VoluntaryRecruitmentEndpoint.java

@ -212,12 +212,12 @@ public class VoluntaryRecruitmentEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) {
        String[] idsTmp = ids.split(",");
        List<VoluntaryRecruitmentPeopleDO> List = peopleService.getRepository().queryByIdIn(idsTmp);
        List<VoluntaryRecruitmentPeopleDO> List = peopleDao.queryByIdIn(idsTmp);
        peopleService.delete(ids.split(","));
        for (VoluntaryRecruitmentPeopleDO tmp:List){
            VoluntaryRecruitmentCompanyDO companyDO = companyDao.findById(tmp.getCompanyId()).orElse(null);;
            if (null !=companyDO ){
                Integer count = peopleService.getRepository().findByCompanyId(tmp.getCompanyId());
                Integer count = peopleDao.findByCompanyId(tmp.getCompanyId());
                companyDO.setNum(count);
                companyDao.save(companyDO);
            }

+ 6 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/voluntary/VoluntaryRecruitmentPeopleEndpoint.java

@ -1,6 +1,7 @@
package com.yihu.jw.base.endpoint.voluntary;
import com.yihu.jw.base.dao.voluntary.VoluntaryRecruitmentCompanyDao;
import com.yihu.jw.base.dao.voluntary.VoluntaryRecruitmentPeopleDao;
import com.yihu.jw.base.service.voluntary.VoluntaryRecruitmentPeopleService;
import com.yihu.jw.entity.voluntary.VoluntaryRecruitmentCompanyDO;
import com.yihu.jw.entity.voluntary.VoluntaryRecruitmentPeopleDO;
@ -32,6 +33,8 @@ public class VoluntaryRecruitmentPeopleEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private VoluntaryRecruitmentPeopleService peopleService;
    @Autowired
    private VoluntaryRecruitmentPeopleDao peopleDao;
    @Autowired
    private VoluntaryRecruitmentCompanyDao companyDao;
    @PostMapping(value = "delete")
@ -40,12 +43,12 @@ public class VoluntaryRecruitmentPeopleEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) {
        String[] idsTmp = ids.split(",");
        List<VoluntaryRecruitmentPeopleDO> List = peopleService.getRepository().queryByIdIn(idsTmp);
        List<VoluntaryRecruitmentPeopleDO> List = peopleDao.queryByIdIn(idsTmp);
        peopleService.delete(ids.split(","));
        for (VoluntaryRecruitmentPeopleDO tmp:List){
            VoluntaryRecruitmentCompanyDO companyDO = companyDao.findById(tmp.getCompanyId()).orElse(null);;
            if (null !=companyDO ){
                Integer count = peopleService.getRepository().findByCompanyId(tmp.getCompanyId());
                Integer count = peopleDao.findByCompanyId(tmp.getCompanyId());
                companyDO.setNum(count);
                companyDao.save(companyDO);
            }
@ -65,7 +68,7 @@ public class VoluntaryRecruitmentPeopleEndpoint extends EnvelopRestEndpoint {
        appVersion = peopleService.save(appVersion);
        VoluntaryRecruitmentCompanyDO companyDO = companyDao.findById(appVersion.getCompanyId()).orElse(null);;
        if (null !=companyDO ){
            Integer count = peopleService.getRepository().findByCompanyId(appVersion.getCompanyId());
            Integer count = peopleDao.findByCompanyId(appVersion.getCompanyId());
            companyDO.setNum(count);
            companyDao.save(companyDO);
        }

+ 108 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/archives/MedicalRecordCopyingEndpoint.java

@ -0,0 +1,108 @@
package com.yihu.jw.hospital.endpoint.archives;
import com.yihu.jw.entity.base.patient.BaseIdcardRecordDO;
import com.yihu.jw.entity.hospital.record.HospitalPatientInpatientRecordDO;
import com.yihu.jw.hospital.record.service.HospitalPatientInpatientRecordService;
import com.yihu.jw.patient.dao.BaseIdcardRecordDao;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
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.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
/**
 * Created by yeshijie on 2022/11/28.
 */
@RestController
@RequestMapping(value = "medicalRecordCopying")
@Api(value = "病案复印",  tags = {"病案复印"})
public class MedicalRecordCopyingEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private HospitalPatientInpatientRecordService inpatientRecordService;
    @Autowired
    private BaseIdcardRecordDao idcardRecordDao;
    @GetMapping(value = "page")
    @ApiOperation(value = "获取病例分页")
    public PageEnvelop page (
            @ApiParam(name = "patient", value = "居民id")
            @RequestParam(value = "patient", required = true) String patient,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) {
        try {
            String filters = "patient="+patient;
            List<HospitalPatientInpatientRecordDO> recordDOS = inpatientRecordService.search(null, filters, "-visitTime", page, size);
            long count = inpatientRecordService.getCount(filters);
            return PageEnvelop.getSuccessListWithPage("获取成功",recordDOS,page,size,count);
        }catch (Exception e){
            e.printStackTrace();
        }
        return PageEnvelop.getError("获取失败");
    }
    @GetMapping(value = "findHaveIdcardRecord")
    @ApiOperation(value = "查找居民有是否身份验证信息")
    public ObjEnvelop findHasIdcardRecord(@ApiParam(name = "patient",required = true, value = "居民id")
                                      @RequestParam(value = "patient") String patient) {
        try {
            BaseIdcardRecordDO idcardRecordDO = idcardRecordDao.findByPatient(patient);
            return ObjEnvelop.getSuccess("查询成功",idcardRecordDO!=null);
        }catch (Exception e){
            e.printStackTrace();
        }
        return ObjEnvelop.getError("查询失败");
    }
    @GetMapping(value = "findIdcardRecord")
    @ApiOperation(value = "查找居民身份验证信息")
    public ObjEnvelop findIdcardRecord(@ApiParam(name = "patient",required = true, value = "居民id")
                                          @RequestParam(value = "patient") String patient) {
        try {
            BaseIdcardRecordDO idcardRecordDO = idcardRecordDao.findByPatient(patient);
            return ObjEnvelop.getSuccess("查询成功",idcardRecordDO);
        }catch (Exception e){
            e.printStackTrace();
        }
        return ObjEnvelop.getError("查询失败");
    }
    @PostMapping(value = "createIdcardRecord")
    @ApiOperation(value = "创建")
    public ObjEnvelop create (
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) {
        try {
            BaseIdcardRecordDO idcardRecordDO = toEntity(jsonData, BaseIdcardRecordDO.class);
            String patient = idcardRecordDO.getPatient();
            synchronized (patient.intern()){
                BaseIdcardRecordDO old = idcardRecordDao.findByPatient(patient);
                if(old!=null){
                    return ObjEnvelop.getError("您已提交过身份验证,请勿重复提交");
                }
                if(StringUtils.isBlank(idcardRecordDO.getType())){
                    idcardRecordDO.setType("1");
                }
                idcardRecordDO.setCreateTime(new Date());
                idcardRecordDO.setStatus("0");
                idcardRecordDao.save(idcardRecordDO);
            }
            return ObjEnvelop.getSuccess("创建成功",idcardRecordDO);
        }catch (Exception e){
            e.printStackTrace();
        }
        return ObjEnvelop.getError("创建失败");
    }
}

+ 7 - 2
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/expressage/WlyyPatientExpressageAddrEndpoint.java

@ -1,6 +1,7 @@
package com.yihu.jw.hospital.endpoint.expressage;
import com.yihu.jw.entity.hospital.prescription.WlyyPatientExpressageAddrDO;
import com.yihu.jw.hospital.dao.consult.WlyyPatientExpressageAddrDao;
import com.yihu.jw.hospital.service.consult.WlyyPatientExpressageAddrService;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPatientExpressageAddrVO;
import com.yihu.jw.restmodel.web.Envelop;
@ -11,7 +12,6 @@ import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
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.web.bind.annotation.*;
@ -34,6 +34,8 @@ public class WlyyPatientExpressageAddrEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private WlyyPatientExpressageAddrService wlyyPatientExpressageAddrService;
    @Autowired
    private WlyyPatientExpressageAddrDao patientExpressageAddrDao;
    @PostMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.CREATE)
    @ApiOperation(value = "新增地址")
@ -54,7 +56,10 @@ public class WlyyPatientExpressageAddrEndpoint extends EnvelopRestEndpoint {
    public Envelop delete(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) {
        wlyyPatientExpressageAddrService.delete(ids.split(","));
        String idstr[] = ids.split(",");
        for (String id:idstr){
            patientExpressageAddrDao.deleteById(id);
        }
        return success("删除成功");
    }

+ 19 - 3
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/DrugsPlanEndpoint.java

@ -34,13 +34,29 @@ public class DrugsPlanEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "findHaveDrugPlan")
    @ApiOperation(value = "按月查询居民每天的用药计划数")
    public Envelop findHaveDrugPlan(
            @ApiParam(name = "patient", value = "居民id")
            @RequestParam(value = "patient", required = true) String patient,
            @ApiParam(name = "month", value = "日期,yyyy-MM")
            @RequestParam(value = "month", required = true) String month) {
        try {
            return ListEnvelop.getSuccess("获取成功",drugsPlanService.findHaveDrugPlan(patient,month));
        } catch (Exception e) {
            return failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "findDrugsPlan")
    @ApiOperation(value = "获取居民今日的服药计划")
    @ApiOperation(value = "获取居民某天的服药计划")
    public Envelop findDrugsPlan(
            @ApiParam(name = "patient", value = "居民id")
            @RequestParam(value = "patient", required = true) String patient) {
            @RequestParam(value = "patient", required = true) String patient,
            @ApiParam(name = "date", value = "日期,yyyy-MM-dd")
            @RequestParam(value = "date", required = true) String date) {
        try {
            return ListEnvelop.getSuccess("获取成功",drugsPlanService.findDrugsPlan(patient));
            return ListEnvelop.getSuccess("获取成功",drugsPlanService.findDrugsPlan(patient,date));
        } catch (Exception e) {
            return failedListEnvelopException(e);
        }

+ 2 - 2
svr/svr-internet-hospital/src/main/resources/application.yml

@ -1413,9 +1413,9 @@ spring:
    port: 6390 # Redis server port.
    password: Kb6wKDQP1W4
fastDFS:
  fastdfs_file_url: http://127.0.0.1:8888/
  fastdfs_file_url: http://172.26.0.110:8888/
fast-dfs:
  tracker-server: 127.0.0.1:22122 #服务器地址
  tracker-server: 172.26.0.110:22122 #服务器地址
wechat:
  id: xm_mlwyy_wx  # base库中,wx_wechat 的id字段
  flag: false #演示环境  true走Mysql数据库  false走Oracle