Browse Source

三院专病中心

wangzhinan 1 year ago
parent
commit
721ffc4ae4

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

@ -0,0 +1,14 @@
package com.yihu.jw.hospital.disease.dao;
import com.yihu.jw.entity.knowledge.BaseKnowledgeQuestion;
import com.yihu.jw.entity.specialist.BaseDiseaseHospitalDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
public interface BaseDiseaseHospitalDao extends JpaRepository<BaseDiseaseHospitalDO, String>, JpaSpecificationExecutor<BaseDiseaseHospitalDO> {
    @Query("from BaseDiseaseHospitalDO p where p.sort = ?1 ")
    BaseDiseaseHospitalDO selectBySort(Integer sort);
}

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

@ -0,0 +1,233 @@
package com.yihu.jw.hospital.disease.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.knowledge.BaseKnowledgeQuestion;
import com.yihu.jw.entity.specialist.BaseDiseaseHospitalDO;
import com.yihu.jw.hospital.disease.dao.BaseDiseaseHospitalDao;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.network.HttpResponse;
import com.yihu.jw.util.network.HttpUtils;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.wlyy.service.WlyyBusinessService;
import jdk.nashorn.internal.scripts.JS;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.security.PublicKey;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
public class BaseDiseaseHospitalService extends BaseJpaService<BaseDiseaseHospitalDO, BaseDiseaseHospitalDao> {
    @Autowired
    private BaseDiseaseHospitalDao diseaseHospitalDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private WlyyBusinessService wlyyBusinessService;
    /**
     * 新增和修改专病配置
     * @param diseaseHospitalDO
     * @return
     */
    public BaseDiseaseHospitalDO insertAndUpdate(BaseDiseaseHospitalDO diseaseHospitalDO){
        if (StringUtils.isNoneBlank(diseaseHospitalDO.getId())) {
            diseaseHospitalDO.setUpdateTime(new Date());
            return diseaseHospitalDao.save(diseaseHospitalDO);
        }else {
            diseaseHospitalDO.setCreateTime(new Date());
            diseaseHospitalDO.setSort(maxSort("base_disease_hospital")+1);
            return diseaseHospitalDao.save(diseaseHospitalDO);
        }
    }
    /**
     * 获取排序的序号
     *
     * @param tableName
     * @return
     */
    public  Integer maxSort(String tableName){
        String sql = "SELECT MAX(sort) as sort from "+tableName+" ";
        List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(sql);
        Integer count = 0;
        if (rstotal != null && rstotal.size() > 0) {
            if (rstotal.get(0).get("sort")!=null){
                count = Integer.parseInt(rstotal.get(0).get("sort").toString());
            }
        }
        return count;
    }
    /**
     * 根据id获取专病配置详情
     * @param id
     * @return
     */
    public BaseDiseaseHospitalDO findById(String id){
        return diseaseHospitalDao.findById(id).get();
    }
    /**
     * 查询专病中心列表
     */
    public MixEnvelop selectByCondition(String name, String status, Integer page, Integer size){
        String orderBy = "  order by sort asc,create_time desc  ";
        String condition = " ";
        String sql = "SELECT\n" +
                "\tid,\n" +
                "\tNAME,\n" +
                "\tphoto,\n" +
                "\tbanner,\n" +
                "\tdescription,\n" +
                "\tSTATUS,\n" +
                "\tdept,\n" +
                "\tdept_name AS deptName,\n" +
                "\tdiagnosis,\n" +
                "\tdiagnosis_name AS diagnosisName,\n" +
                "\tis_disease AS isDisease,\n" +
                "\tarticle_relation as articleRelation,\n" +
                "\tis_family as isFamily,\n" +
                "\tcreate_time as createTime,\n" +
                "\tupdate_time as updateTime\n" +
                "FROM\n" +
                "\tbase_disease_hospital dh where 1=1 ";
        if (StringUtils.isNoneBlank(name)){
            condition +=" and name like '%"+name+"%' ";
        }
        if (StringUtils.isNoneBlank(status)){
            condition +=" and status ='"+status+"' ";
        }
        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);
        Long count = 0L;
        if (rstotal != null && rstotal.size() > 0) {
            count = Long.parseLong(rstotal.get(0).get("total").toString());
        }
        return MixEnvelop.getSuccessListWithPage("success", list, page, size, count);
    }
    /**
     * 根据id删除专病详情
     * @param id
     */
    public void deleteById(String id){
        diseaseHospitalDao.deleteById(id);
    }
    /**
     * 更新启动状态或者上移下移置顶
     * @param id 专病配置id
     * @param status 1启动0禁止
     * @param flag  1上移2下移3置顶
     * @return
     */
    public BaseDiseaseHospitalDO updateStatusOrSort(String id,Integer status,Integer flag){
        BaseDiseaseHospitalDO diseaseHospitalDO = diseaseHospitalDao.findById(id).get();
        if (flag!=null){
            int sort = 0;
            if (flag==1){
                String sql = "select sort from base_disease_hospital where sort<'"+diseaseHospitalDO.getSort()+"' and del=1 order by sort desc limit 1";
                List<Map<String,Object>> mapList = hibenateUtils.createSQLQuery(sql);
                Integer count = 0;
                if (mapList != null && mapList.size() > 0) {
                    count = Integer.parseInt(mapList.get(0).get("sort").toString());
                }
                if (count==0){
                    sort = 0;
                }else {
                    sort=count;
                }
                BaseDiseaseHospitalDO diseaseHospitalDO1= diseaseHospitalDao.selectBySort(sort);
                if (diseaseHospitalDO1!=null){
                    diseaseHospitalDO1.setSort(diseaseHospitalDO.getSort());
                    diseaseHospitalDao.save(diseaseHospitalDO1);
                }
            }else if (flag==2){
                String sql = "select sort from base_disease_hospital where sort>'"+diseaseHospitalDO.getSort()+"' and del=1 order by sort asc limit 1";
                List<Map<String,Object>> mapList = hibenateUtils.createSQLQuery(sql);
                Integer count = 0;
                if (mapList != null && mapList.size() > 0) {
                    count = Integer.parseInt(mapList.get(0).get("sort").toString());
                }
                if (count==0){
                    sort = 0;
                }else {
                    sort=count;
                }
                BaseDiseaseHospitalDO diseaseHospitalDO1= diseaseHospitalDao.selectBySort(sort);
                if (diseaseHospitalDO1!=null){
                    diseaseHospitalDO1.setSort(diseaseHospitalDO.getSort());
                    diseaseHospitalDao.save(diseaseHospitalDO1);
                }
            }else if (flag==3){
                sort = 1;
                BaseDiseaseHospitalDO diseaseHospitalDO1= diseaseHospitalDao.selectBySort(sort);
                if (diseaseHospitalDO1!=null){
                    diseaseHospitalDO1.setSort(diseaseHospitalDO.getSort());
                    diseaseHospitalDao.save(diseaseHospitalDO1);
                }
            }
            if (sort!=0){
                diseaseHospitalDO.setSort(sort);
            }
            return diseaseHospitalDao.save(diseaseHospitalDO);
        }else {
            diseaseHospitalDO.setStatus(status);
            diseaseHospitalDO.setUpdateTime(new Date());
            return diseaseHospitalDao.save(diseaseHospitalDO);
        }
    }
    /**
     * 获取十大专病列表
     * @return
     */
    public JSONObject getSpecialList(){
        return wlyyBusinessService.getSpecialList();
    }
    /**
     * 获取诊断
     *
     * @param pyKey
     * @param page
     * @param size
     * @return
     * @throws Exception
     */
    public MixEnvelop getICD10(String pyKey,Integer page,Integer size) throws Exception {
        String sql = "select code,name,py_code,d_code from dict_icd10 where 1=1 ";
        if (StringUtils.isNoneBlank(pyKey)){
            sql += " and (py_code like '%"+pyKey+"%' or name like '%"+pyKey+"%') ";
        }
        List<Map<String,Object>> mapList = hibenateUtils.createSQLQuery (sql,page,size);
        String sqlCount ="select COUNT(1) as total from dict_icd10 where 1=1 ";
        List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(sqlCount);
        Long count = 0L;
        if (rstotal != null && rstotal.size() > 0) {
            count = Long.parseLong(rstotal.get(0).get("total").toString());
        }
        return MixEnvelop.getSuccessListWithPage("success", mapList, page, size, count);
    }
}

+ 12 - 0
business/base-service/src/main/java/com/yihu/jw/wlyy/service/WlyyBusinessService.java

@ -829,4 +829,16 @@ public class WlyyBusinessService {
    }
    /**
     * 获取十大专病信息
     * @return
     */
    public JSONObject getSpecialList(){
        JSONObject re = wlyyHttpService.sendWlyyMesGet("getSpecialList","");
        return re;
    }
}

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

@ -0,0 +1,156 @@
package com.yihu.jw.entity.specialist;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * @author wangzhinan
 * @create 2023-05-15
 * @desc 专病中心
 **/
@Entity
@Table(name = "base_disease_hospital")
public class BaseDiseaseHospitalDO extends UuidIdentityEntityWithOperator {
    private String name;//专病名称
    private String photo;//专病图标
    private String banner;//专病主图
    private String description;//专病描述
    private Integer status;//1启动0禁止
    private String dept;//关联科室逗号隔开
    private String deptName;//关联科室名称逗号隔开
    private String diagnosis;//诊断编码逗号隔开
    private String diagnosisName;//诊断名称逗号隔开
    private Integer isDisease;//是否开通专病教育频道(0未开通1开通)
    private String articleRelation;//文章关联
    private Integer isFamily;//是否关联三师共管专病(1是0否)
    private String familyRelation;//关联专病code
    private Integer sort;//排序
    @Override
    public String getId() {
        return id;
    }
    @Override
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhoto() {
        return photo;
    }
    public void setPhoto(String photo) {
        this.photo = photo;
    }
    public String getBanner() {
        return banner;
    }
    public void setBanner(String banner) {
        this.banner = banner;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public String getDiagnosis() {
        return diagnosis;
    }
    public void setDiagnosis(String diagnosis) {
        this.diagnosis = diagnosis;
    }
    public String getDiagnosisName() {
        return diagnosisName;
    }
    public void setDiagnosisName(String diagnosisName) {
        this.diagnosisName = diagnosisName;
    }
    public Integer getIsDisease() {
        return isDisease;
    }
    public void setIsDisease(Integer isDisease) {
        this.isDisease = isDisease;
    }
    public String getArticleRelation() {
        return articleRelation;
    }
    public void setArticleRelation(String articleRelation) {
        this.articleRelation = articleRelation;
    }
    public Integer getIsFamily() {
        return isFamily;
    }
    public void setIsFamily(Integer isFamily) {
        this.isFamily = isFamily;
    }
    public String getFamilyRelation() {
        return familyRelation;
    }
    public void setFamilyRelation(String familyRelation) {
        this.familyRelation = familyRelation;
    }
    public Integer getSort() {
        return sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
}

+ 13 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -1,6 +1,8 @@
package com.yihu.jw.rm.hospital;
import org.omg.CORBA.PUBLIC_MEMBER;
/**
 * Created by Trick on 2019/5/16.
 */
@ -1605,6 +1607,17 @@ public class BaseHospitalRequestMapping {
    }
    public static class BaseDiseaseHospital extends  Basic{
        public static final String PREFIX="/baseDiseaseHospital";
        public static final String insertAndUpdate = "/insertAndUpdate";
        public static final String findById="/findById";
        public static final String selectByCondition="/selectByCondition";
        public static final String deleteById = "/deleteById";
        public static final String updateStatusOrSort="/updateStatusOrSort";
        public static final String getSpecialList="/getSpecialList";
        public static final String getICD10="/getICD10";
    }
    /**
     * 知识库-字典
     */

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

@ -0,0 +1,127 @@
package com.yihu.jw.hospital.endpoint.specialist;
import com.yihu.jw.entity.specialist.BaseDiseaseHospitalDO;
import com.yihu.jw.hospital.disease.service.BaseDiseaseHospitalService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
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.*;
@RestController
@RequestMapping(value = BaseHospitalRequestMapping.BaseDiseaseHospital.PREFIX)
@Api(value = "专病中心-专病配置", description = "专病中心-专病配置", tags = {"专病中心-专病配置"})
public class BaseDiseaseHospitalController extends EnvelopRestEndpoint {
    @Autowired
    private BaseDiseaseHospitalService baseDiseaseHospitalService;
    @ApiOperation("新增/修改专病配置")
    @PostMapping(value= BaseHospitalRequestMapping.BaseDiseaseHospital.insertAndUpdate)
    public Envelop insertAndUpdateQuestion(@ApiParam(name = "json", value = "专病配置实体类json", required = true)
                                       @RequestParam(value = "json", required = true)String json){
        try {
            BaseDiseaseHospitalDO diseaseHospitalDO = toEntity(json,BaseDiseaseHospitalDO.class);
            return success(baseDiseaseHospitalService.insertAndUpdate(diseaseHospitalDO));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("根据id获取专病配置详情")
    @GetMapping(value= BaseHospitalRequestMapping.BaseDiseaseHospital.findById)
    public Envelop findById(@ApiParam(name = "id", value = "专病配置id", required = true)
                              @RequestParam(value = "id", required = true)String id){
        try {
            return success(baseDiseaseHospitalService.findById(id));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("查询专病中心列表")
    @GetMapping(value= BaseHospitalRequestMapping.BaseDiseaseHospital.selectByCondition)
    public Envelop selectQuestionList(@ApiParam(name = "name", value = "专病名称", required = false)
                                  @RequestParam(value = "name", required = false)String name,
                                  @ApiParam(name = "status", value = "1开启0关闭", required = false)
                                  @RequestParam(value = "status", required = false)String status,
                                  @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));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("根据id删除专病详情")
    @PostMapping(value= BaseHospitalRequestMapping.BaseDiseaseHospital.deleteById)
    public Envelop deleteById(@ApiParam(name = "id", value = "专病配置id", required = true)
                                           @RequestParam(value = "id", required = true)String id){
        try {
            baseDiseaseHospitalService.deleteById(id);
            return success();
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("更新启动状态或者上移下移置顶")
    @PostMapping(value= BaseHospitalRequestMapping.BaseDiseaseHospital.updateStatusOrSort)
    public Envelop deleteById(@ApiParam(name = "id", value = "专病配置id", required = true)
                              @RequestParam(value = "id", required = true)String id,
                              @ApiParam(name = "status", value = "1启动0禁止", required = false)
                              @RequestParam(value = "status", required = false)Integer status,
                              @ApiParam(name = "flag", value = "1上移2下移3置顶", required = false)
                                  @RequestParam(value = "flag", required = false)Integer flag){
        try {
            return success(baseDiseaseHospitalService.updateStatusOrSort(id,status,flag));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("获取诊断")
    @GetMapping(value= BaseHospitalRequestMapping.BaseDiseaseHospital.getICD10)
    public Envelop getICD10(@ApiParam(name = "pyKey", value = "拼音码或者诊断名称", required = false)
                                      @RequestParam(value = "pyKey", required = false)String pyKey,
                                      @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.getICD10(pyKey,page,size));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("获取十大专病")
    @GetMapping(value= BaseHospitalRequestMapping.BaseDiseaseHospital.getSpecialList)
    public Envelop getSpecialList(){
        try {
            return success(baseDiseaseHospitalService.getSpecialList());
        }catch (Exception e){
            return failedException(e);
        }
    }
}