LAPTOP-KB9HII50\70708 7 месяцев назад
Родитель
Сommit
47a55df961

+ 7 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/disease/service/BaseDiseaseHospitalService.java

@ -601,7 +601,7 @@ public class BaseDiseaseHospitalService extends BaseJpaService<BaseDiseaseHospit
    /**
     * 查询专病中心列表
     */
    public MixEnvelop selectByCondition(String name, String status, Integer page, Integer size){
    public MixEnvelop selectByCondition(String name, String status,String distributionType, Integer page, Integer size){
        String orderBy = "  order by sort asc,create_time desc  ";
        String condition = " ";
        String sql = "SELECT\n" +
@ -626,6 +626,9 @@ public class BaseDiseaseHospitalService extends BaseJpaService<BaseDiseaseHospit
                "\tfamily_relation_name as familyRelationName,\n" +
                "\tdate_format(create_time ,'%Y-%m-%d %H:%i:%S' ) as createTime,\n" +
                "\tdate_format(update_time ,'%Y-%m-%d %H:%i:%S' ) as updateTime ," +
                "\tturn_down_range 'turnDownRange'," +
                "\tdistribution_type 'distributionType'," +
                "\tdistribution_to 'distributionTo'," +
                "\trehabilitation_type 'rehabilitationType'," +
                "\trehabilitation_down_type 'rehabilitationDownType'," +
                "\trehabilitation_template_id 'rehabilitationTemplateId'\n" +
@ -637,6 +640,9 @@ public class BaseDiseaseHospitalService extends BaseJpaService<BaseDiseaseHospit
        if (StringUtils.isNoneBlank(status)){
            condition +=" and status ='"+status+"' ";
        }
        if(StringUtils.isNotBlank(distributionType)){
            condition +=" and distribution_type ='"+distributionType+"' and turn_down_range in ('2','3') ";
        }
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderBy, page, size);
        String sqlCount ="select COUNT(1) as total from base_disease_hospital where 1=1 ";
        List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(sqlCount+condition+orderBy);

+ 11 - 0
common/common-entity/src/db/2024.sql

@ -489,4 +489,15 @@ INSERT INTO `wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`,
    ('followup_businessSource', NULL, 'followup_businessSource', '1', '诊后康复', NULL, '1', '350211A1002', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '随访业务来源');
-- 2024-12-04 ysj
ALTER TABLE `base`.`wlyy_rehabilitation_plan_template`
    ADD COLUMN `plan_doctor_type` varchar (1) NULL COMMENT '康复计划负责人类型 1手动获取,2自动获取' ;
UPDATE wlyy_rehabilitation_plan_template set plan_doctor_type='1';
ALTER TABLE `base`.`base_disease_hospital`
    ADD COLUMN `turn_down_range` varchar (1) NULL COMMENT '下转范围 1出院患者 2门诊患者 3出院+门诊患者' ;
ALTER TABLE `base`.`base_disease_hospital`
    ADD COLUMN `distribution_type` varchar (1) NULL COMMENT '分配方式 1手动分配 2自动分配' ;
ALTER TABLE `base`.`base_disease_hospital`
    ADD COLUMN `distribution_to` varchar (1) NULL COMMENT '分配对象 1主管医生 2主治医生' ;

+ 27 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/BaseDiseaseHospitalDO.java

@ -46,6 +46,9 @@ public class BaseDiseaseHospitalDO extends UuidIdentityEntityWithOperator {
    private String rehabilitationType;// '是否开通诊后康复 0否 1是'
    private String rehabilitationDownType;//康复下转 0自动 1手动
    private String rehabilitationTemplateId;//康复计划模板id
    private String turnDownRange;//下转范围 1出院患者 2门诊患者 3出院+门诊患者
    private String distributionType;//分配方式 1手动分配 2自动分配
    private String distributionTo;//分配对象 1主管医生 2主治医生
    public String getRehabilitationType() {
        return rehabilitationType;
@ -217,4 +220,28 @@ public class BaseDiseaseHospitalDO extends UuidIdentityEntityWithOperator {
    public void setFamilyRelationName(String familyRelationName) {
        this.familyRelationName = familyRelationName;
    }
    public String getTurnDownRange() {
        return turnDownRange;
    }
    public void setTurnDownRange(String turnDownRange) {
        this.turnDownRange = turnDownRange;
    }
    public String getDistributionType() {
        return distributionType;
    }
    public void setDistributionType(String distributionType) {
        this.distributionType = distributionType;
    }
    public String getDistributionTo() {
        return distributionTo;
    }
    public void setDistributionTo(String distributionTo) {
        this.distributionTo = distributionTo;
    }
}

+ 12 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/rehabilitation/RehabilitationPlanTemplateDO.java

@ -49,8 +49,10 @@ public class RehabilitationPlanTemplateDO extends UuidIdentityEntityWithOperator
    @Column(name = "type")
    private String type;//1表示模板,2表示计划
    @Column(name = "plan_doctor_type")
    private String planDoctorType;//康复计划负责人类型 1手动获取,2自动获取
    @Column(name = "plan_doctor")
    private String planDoctor;//康复计划负责人
    private String planDoctor;//类型=1康复计划负责人,类型2  1主管医生 2主治医生
    @Column(name = "plan_doctor_name")
    private String planDoctorName;//康复计划负责人姓名
    //---------------------------------
@ -168,6 +170,15 @@ public class RehabilitationPlanTemplateDO extends UuidIdentityEntityWithOperator
        this.planDoctorName = planDoctorName;
    }
    @Column(name = "plan_doctor_type")
    public String getPlanDoctorType() {
        return planDoctorType;
    }
    public void setPlanDoctorType(String planDoctorType) {
        this.planDoctorType = planDoctorType;
    }
    @Transient
    public Integer getIsFamily() {
        return isFamily;

+ 18 - 7
server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java

@ -138,6 +138,14 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
        if (users == null || users.size() == 0) {
            throw new UsernameNotFoundException(username);
        }
        String loginType = getLogintype();
        if("8".equals(loginType)){
            int num = this.getJdbcTemplate().queryForObject("SELECT COUNT(*) from base_doctor_role WHERE doctor_code='"+users.get(0).getId()+"' and role_code in ('admin','hospitalAdmin')",Integer.class);
            if(num == 0){
                throw new UsernameNotFoundException(username);
            }
        }
        if (null != users.get(0).isLocked() && users.get(0).isLocked()) {
            Date date = users.get(0).getLockedDate();
            if (new Date().after(DateUtils.addMinutes(date, autoUnlockTime))) {
@ -164,7 +172,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
        if (StringUtils.isBlank(loginType) || "1".equals(loginType)) { //1或默认查找user表,为平台管理员账号
            //解除锁定
            this.getJdbcTemplate().update("update base_user u set login_failure_count = 0, u.locked = 0 where u.username = ? or u.mobile = ? or u.idcard = ?", username, username, username);
        } else if ("2".equals(loginType)) {//2.为医生账号
        } else if ("2".equals(loginType)||"8".equals(loginType)) {//2.为医生账号
            //解除锁定
            this.getJdbcTemplate().update("update base_doctor d set d.login_failure_count = 0, d.locked = 0 where d.mobile = ? or d.idcard = ?", username, username);
        } else if ("3".equals(loginType)) { //3.患者账号
@ -194,7 +202,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
     * 用户登录判读接口
     * 判断loginType查找用户信息
     * 用户类型 1或默认为user,2:医生登录,3:患者登录,4:i健康系统-患者登录(i健康患者可以不注册直接登录互联网系统,首次使用,根据i健康居民code去i健康查询居民信息,然后保存到base.base_patient)
     * 用户类型 5 中山医院支付宝-患者登录(可以不注册直接登录) 6医养项目家人登录
     * 用户类型 5 中山医院支付宝-患者登录(可以不注册直接登录) 6医养项目家人登录 8医生管理员登录
     * @param username
     * @return
     */
@ -209,9 +217,12 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
            users = this.getJdbcTemplate().query(DEFAULT_USER_DETAILS_STATEMENT, new BeanPropertyRowMapper(WlyyUserDetails.class), username, username, username);
            //2.为医生登录账号
        } else if ("2".equals(loginType)) {
            users = this.getJdbcTemplate().query(DEFAULT_DOCTOR_DETAILS_STATEMENT, new BeanPropertyRowMapper(WlyyUserDetails.class), username, username);
            //8.为医生管理员登录账号
        }else if ("8".equals(loginType)) {
            users = this.getJdbcTemplate().query(DEFAULT_DOCTOR_DETAILS_STATEMENT, new BeanPropertyRowMapper(WlyyUserDetails.class), username, username);
            //3.患者登录
        } else if ("3".equals(loginType)) {
        }  else if ("3".equals(loginType)) {
            //查找是否存在预注册 用户
            String userName = redisTemplate.opsForValue().get(BespeakRegist + username);
            if (StringUtils.isNotBlank(userName)) {
@ -635,7 +646,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
        String loginType = getLogintype();
        if (StringUtils.isBlank(loginType) || "1".equals(loginType)) { //1或默认查找user表,为平台管理员账号
            result = this.getJdbcTemplate().queryForMap("select u.login_failure_count,u.last_login_failure_time from base_user u where u.username = ? or u.mobile = ? or u.idcard = ?", username, username, username);
        } else if ("2".equals(loginType)) {//2.为医生账号
        } else if ("2".equals(loginType)||"8".equals(loginType)) {//2.为医生账号
            result = this.getJdbcTemplate().queryForMap("select d.login_failure_count,d.last_login_failure_time from base_doctor d where d.mobile = ? or d.idcard = ? and d.del='1' limit 1", username, username);
        } else if ("3".equals(loginType)) { //3.患者账号
            result = this.getJdbcTemplate().queryForMap("select p.login_failure_count,p.last_login_failure_time from base_patient p where p.mobile = ? or p.idcard = ? limit 1", username, username);
@ -655,7 +666,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
        if (StringUtils.isBlank(loginType) || "1".equals(loginType)) { //1或默认查找user表,为平台管理员账号
            //账号锁定
            this.getJdbcTemplate().update("update base_user u set u.login_failure_count = 5, u.locked = 1, u.locked_date = ? where u.username = ? or u.mobile = ? or u.idcard = ?", new Date(), username, username, username);
        } else if ("2".equals(loginType)) {//2.为医生账号
        } else if ("2".equals(loginType)||"8".equals(loginType)) {//2.为医生账号
            //账号锁定
            this.getJdbcTemplate().update("update base_doctor d set d.login_failure_count = 5, d.locked = 1, d.locked_date = ? where d.mobile = ? or d.idcard = ?", new Date(), username, username);
        } else if ("3".equals(loginType)) { //3.患者账号
@ -678,7 +689,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
        if (StringUtils.isBlank(loginType) || "1".equals(loginType)) { //1或默认查找user表,为平台管理员账号
            //更新失败次数
            this.getJdbcTemplate().update("update base_user u set u.login_failure_count = ? ,u.last_login_failure_time = ? where u.username = ? or u.mobile = ? or u.idcard = ?", loginFailureCount, new Date(), username, username, username);
        } else if ("2".equals(loginType)) {//2.为医生账号
        } else if ("2".equals(loginType)||"8".equals(loginType)) {//2.为医生账号
            //更新失败次数
            this.getJdbcTemplate().update("update base_doctor d set d.login_failure_count = ?, d.last_login_failure_time = ?  where d.mobile = ? or d.idcard = ?", loginFailureCount, new Date(), username, username);
        } else if ("3".equals(loginType)) { //3.患者账号
@ -826,7 +837,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
            this.getJdbcTemplate().update("update base_user u set u.login_failure_count = 0, u.login_date = ? where u.username = ? or u.mobile = ? or u.idcard = ?", new Date(), username, username, username);
            users = this.getJdbcTemplate().query(DEFAULT_USER_DETAILS_STATEMENT, new BeanPropertyRowMapper(WlyyUserSimple.class), username, username, username);
            //2.为医生登录账号
        } else if ("2".equals(loginType)) {
        } else if ("2".equals(loginType)||"8".equals(loginType)) {
            //更新登录时间
            this.getJdbcTemplate().update("update base_doctor d set d.login_failure_count = 0, d.login_date = ? where d.mobile = ? or d.idcard = ?", new Date(), username, username);
            users = this.getJdbcTemplate().query(DEFAULT_DOCTOR_DETAILS_STATEMENT, new BeanPropertyRowMapper(WlyyUserSimple.class), username, username);

+ 3 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/specialist/BaseDiseaseHospitalController.java

@ -339,13 +339,15 @@ public class BaseDiseaseHospitalController extends EnvelopRestEndpoint {
                                      @RequestParam(value = "name", required = false) String name,
                                      @ApiParam(name = "status", value = "1开启0关闭", required = false)
                                      @RequestParam(value = "status", required = false) String status,
                                      @ApiParam(name = "distributionType", value = "分配方式 1手动分配 2自动分配", required = false)
                                      @RequestParam(value = "distributionType", required = false) String distributionType,
                                      @ApiParam(name = "page", value = "页码", required = false)
                                      @RequestParam(value = "page", required = false) Integer page,
                                      @ApiParam(name = "size", value = "大小", required = false)
                                      @RequestParam(value = "size", required = false) Integer size) {
        try {
            return success(baseDiseaseHospitalService.selectByCondition(name, status, page, size));
            return success(baseDiseaseHospitalService.selectByCondition(name, status, distributionType, page, size));
        } catch (Exception e) {
            return failedException(e);
        }