|
@ -6,6 +6,12 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.yihu.jw.base.enums.SystemDictEnum;
|
|
|
import com.yihu.jw.base.service.org.BaseOrgService;
|
|
|
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
|
|
|
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
|
|
|
import com.yihu.jw.org.dao.BaseOrgDao;
|
|
|
import com.yihu.jw.util.common.IdCardUtil;
|
|
|
import com.yihu.jw.utils.StringUtil;
|
|
|
import com.yihu.jw.utils.hibernate.HibenateUtils;
|
|
|
import com.yihu.mysql.query.BaseJpaService;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@ -13,9 +19,8 @@ import org.springframework.data.domain.Pageable;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.yihu.jw.entity.base.dict.DictHospitalDeptDO;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
|
*
|
|
@ -40,6 +45,12 @@ public class DictHospitalDeptService extends BaseJpaService<DictHospitalDeptDO,
|
|
|
|
|
|
@Autowired
|
|
|
private BaseOrgService baseOrgService;
|
|
|
@Autowired
|
|
|
private BaseOrgDao baseOrgDao;
|
|
|
@Autowired
|
|
|
private HibenateUtils hibenateUtils;
|
|
|
@Autowired
|
|
|
private BaseDoctorHospitalDao baseDoctorHospitalDao;
|
|
|
/**
|
|
|
* 查询某一租户下的医院科室字典信息,如果saadId为空表示当前用户角色为超级管理员,超级管理员可以看到所有数据
|
|
|
* @param saasId
|
|
@ -102,5 +113,114 @@ public class DictHospitalDeptService extends BaseJpaService<DictHospitalDeptDO,
|
|
|
public void saveBatch(List<DictHospitalDeptDO> dictHospitalDeptDOS)throws Exception{
|
|
|
dictHospitalDeptDao.save(dictHospitalDeptDOS);
|
|
|
}
|
|
|
/**
|
|
|
* 查询单个科室信息 带医生
|
|
|
* @return
|
|
|
*/
|
|
|
public Map findSingleDept(Integer id,Integer page,Integer pageSize){
|
|
|
Map<String ,Object> returnMap = new HashMap<>();
|
|
|
DictHospitalDeptDO dictHospitalDeptDO = dictHospitalDeptDao.findOne(id);
|
|
|
if (dictHospitalDeptDO!=null){
|
|
|
String sql = "select b.name as \"name\",b.id as \"id\"" +
|
|
|
" b.sex as \"sex\"," +
|
|
|
" b.idcard as \"idcard\"," +
|
|
|
" b.mobile as \"mobile\"," +
|
|
|
" b.job_title_code as \"jobTitleCode\"," +
|
|
|
" b.job_title_name as \"jobTitleName\"" +
|
|
|
" from base_doctor_hospital d " +
|
|
|
" left join dict_hospital_dept p on d.dept_code = p.code" +
|
|
|
" left join base_doctor b on d.doctor_code = b.id" +
|
|
|
" where b p.dept_code = '"+dictHospitalDeptDO.getCode()+"'";
|
|
|
List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
|
|
|
List<Map<String,Object>> listCount = hibenateUtils.createSQLQuery(sql);
|
|
|
for (Map<String,Object> map:list){
|
|
|
if (map.get("idcard")!=null){
|
|
|
map.put("age", IdCardUtil.getAgeForIdcard(map.get("idcard").toString()));
|
|
|
}
|
|
|
}
|
|
|
returnMap.put("doctorList",list);
|
|
|
if (listCount!=null){
|
|
|
returnMap.put("doctorListCount",listCount.size());
|
|
|
}else {
|
|
|
returnMap.put("doctorListCount",0);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
returnMap.put("dept",dictHospitalDeptDO);
|
|
|
return returnMap;
|
|
|
}
|
|
|
/**
|
|
|
* 新增科室
|
|
|
* @return
|
|
|
*/
|
|
|
public DictHospitalDeptDO addDept(String jsonData,String doctorIds){
|
|
|
try {
|
|
|
DictHospitalDeptDO dictHospitalDeptDO = objectMapper.readValue(jsonData,DictHospitalDeptDO.class);
|
|
|
dictHospitalDeptDao.save(dictHospitalDeptDO);
|
|
|
if (StringUtils.isNotBlank(doctorIds)){
|
|
|
if (doctorIds.contains(",")){
|
|
|
String[] doctorId = doctorIds.split(",");
|
|
|
for (int i = 0;i<doctorId.length;i++){
|
|
|
BaseDoctorHospitalDO baseDoctorHospitalDO = new BaseDoctorHospitalDO();
|
|
|
baseDoctorHospitalDO.setDoctorCode(doctorId[i]);
|
|
|
baseDoctorHospitalDO.setDeptName(dictHospitalDeptDO.getName());
|
|
|
baseDoctorHospitalDO.setDeptCode(dictHospitalDeptDO.getCode());
|
|
|
baseDoctorHospitalDO.setOrgCode(dictHospitalDeptDO.getOrgCode());
|
|
|
baseDoctorHospitalDO.setOrgName(dictHospitalDeptDO.getOrgName());
|
|
|
baseDoctorHospitalDO.setDel("1");
|
|
|
baseDoctorHospitalDO.setCreateTime(new Date());
|
|
|
baseDoctorHospitalDao.save(baseDoctorHospitalDO);
|
|
|
}
|
|
|
}else {
|
|
|
BaseDoctorHospitalDO baseDoctorHospitalDO = new BaseDoctorHospitalDO();
|
|
|
baseDoctorHospitalDO.setDoctorCode(doctorIds);
|
|
|
baseDoctorHospitalDO.setDeptName(dictHospitalDeptDO.getName());
|
|
|
baseDoctorHospitalDO.setDeptCode(dictHospitalDeptDO.getCode());
|
|
|
baseDoctorHospitalDO.setOrgCode(dictHospitalDeptDO.getOrgCode());
|
|
|
baseDoctorHospitalDO.setOrgName(dictHospitalDeptDO.getOrgName());
|
|
|
baseDoctorHospitalDO.setDel("1");
|
|
|
baseDoctorHospitalDO.setCreateTime(new Date());
|
|
|
baseDoctorHospitalDao.save(baseDoctorHospitalDO);
|
|
|
}
|
|
|
}
|
|
|
return dictHospitalDeptDO;
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
public void saveDeptDoctor(String doctorIds ,String deptCode){
|
|
|
DictHospitalDeptDO dictHospitalDeptDO = dictHospitalDeptDao.findByCode(deptCode);
|
|
|
if (dictHospitalDeptDO!=null){
|
|
|
if (StringUtils.isNotBlank(doctorIds)) {
|
|
|
if (doctorIds.contains(",")) {
|
|
|
String[] doctorId = doctorIds.split(",");
|
|
|
for (int i = 0; i < doctorId.length; i++) {
|
|
|
BaseDoctorHospitalDO baseDoctorHospitalDO = new BaseDoctorHospitalDO();
|
|
|
baseDoctorHospitalDO.setDoctorCode(doctorId[i]);
|
|
|
baseDoctorHospitalDO.setDeptName(dictHospitalDeptDO.getName());
|
|
|
baseDoctorHospitalDO.setDeptCode(dictHospitalDeptDO.getCode());
|
|
|
baseDoctorHospitalDO.setOrgCode(dictHospitalDeptDO.getOrgCode());
|
|
|
baseDoctorHospitalDO.setOrgName(dictHospitalDeptDO.getOrgName());
|
|
|
baseDoctorHospitalDO.setDel("1");
|
|
|
baseDoctorHospitalDO.setCreateTime(new Date());
|
|
|
baseDoctorHospitalDao.save(baseDoctorHospitalDO);
|
|
|
}
|
|
|
} else {
|
|
|
BaseDoctorHospitalDO baseDoctorHospitalDO = new BaseDoctorHospitalDO();
|
|
|
baseDoctorHospitalDO.setDoctorCode(doctorIds);
|
|
|
baseDoctorHospitalDO.setDeptName(dictHospitalDeptDO.getName());
|
|
|
baseDoctorHospitalDO.setDeptCode(dictHospitalDeptDO.getCode());
|
|
|
baseDoctorHospitalDO.setOrgCode(dictHospitalDeptDO.getOrgCode());
|
|
|
baseDoctorHospitalDO.setOrgName(dictHospitalDeptDO.getOrgName());
|
|
|
baseDoctorHospitalDO.setDel("1");
|
|
|
baseDoctorHospitalDO.setCreateTime(new Date());
|
|
|
baseDoctorHospitalDao.save(baseDoctorHospitalDO);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
public void removeDeptDoctor(){
|
|
|
|
|
|
}
|
|
|
}
|