|
@ -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);
|
|
|
}
|
|
|
}
|