| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.kidgrow.common.model.PageResult; |
| | | import com.kidgrow.common.model.ResultBody; |
| | | import com.kidgrow.common.model.SysOrganization; |
| | | import com.kidgrow.common.model.SysUser; |
| | | import com.kidgrow.common.service.impl.SuperServiceImpl; |
| | | import com.kidgrow.common.utils.StringUtils; |
| | | import com.kidgrow.usercenter.mapper.SysDepartmentMapper; |
| | | import com.kidgrow.usercenter.mapper.SysHospitalMapper; |
| | | import com.kidgrow.usercenter.mapper.SysOrganizationMapper; |
| | | import com.kidgrow.usercenter.model.SysDepartment; |
| | | import com.kidgrow.usercenter.model.SysHospital; |
| | | import com.kidgrow.usercenter.service.ISysHospitalService; |
| | | import com.kidgrow.usercenter.vo.HospitalListVo; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.MapUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | public class SysHospitalServiceImpl extends SuperServiceImpl<SysHospitalMapper, SysHospital> implements ISysHospitalService { |
| | | @Resource |
| | | private SysDepartmentMapper departmentMapper; |
| | | @Autowired |
| | | private SysRoleOrganizationServiceImpl SysRoleOrganizationServiceImpl; |
| | | @Autowired |
| | | private SysOrganizationMapper sysOrganizationMapper; |
| | | /** |
| | | * 列表 |
| | | * @param params |
| | |
| | | @Override |
| | | public PageResult<SysHospital> findList(Map<String, Object> params){ |
| | | Page<SysHospital> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); |
| | | |
| | | List<SysHospital> list = baseMapper.findList(page, params); |
| | | return PageResult.<SysHospital>builder().data(list).code(0).count(page.getTotal()).build(); |
| | | } |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public PageResult<HospitalListVo> findHospitalList(Map<String, Object> params) { |
| | | public PageResult<HospitalListVo> findHospitalList(Map<String, Object> params, SysUser user) { |
| | | Page<HospitalListVo> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); |
| | | SysRoleOrganizationServiceImpl.getRoleOrg(params, user); |
| | | if(params.get("roleOrg")==null){ |
| | | return PageResult.<HospitalListVo>builder().data(null).code(0).count(page.getTotal()).build(); |
| | | } |
| | | List<HospitalListVo> list = baseMapper.findHospitalList(page, params); |
| | | return PageResult.<HospitalListVo>builder().data(list).code(0).count(page.getTotal()).build(); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public ResultBody<SysHospital> findAll(Map<String, Object> params) { |
| | | params.put("is_del",0); |
| | | params.put("enabled",1); |
| | | List<SysHospital> sysHospitals = baseMapper.selectByMap(params); |
| | | return ResultBody.ok().data(sysHospitals).msg("查询成功"); |
| | | } |
| | | /** |
| | | * 根据医院名称模糊查询医院数据列表 |
| | | * @param hospitalName |
| | | * @return |
| | | */ |
| | | public ResultBody<SysHospital> findByName(String hospitalName){ |
| | | return ResultBody.ok().data(baseMapper.findByName(hospitalName)).msg("查询成功"); |
| | | } |
| | | /** |
| | | * 根据id和启用禁用值更新数据 |
| | |
| | | SysHospital sysHospital = baseMapper.selectById(id); |
| | | //医院下的所有数据 |
| | | Map<String,Object> columnMap=new HashMap<String,Object>(); |
| | | columnMap.put("hospital_id",id); |
| | | columnMap.put("is_del",(boolean)false); |
| | | columnMap.put("enabled",!enabled); |
| | | List<SysDepartment> sysDepartmentList=departmentMapper.selectByMap(columnMap); |
| | | columnMap.put("is_del",0); |
| | | columnMap.put("enabled",(enabled)?0:1); |
| | | columnMap.put("org_parent_id",sysHospital.getOrgId()); |
| | | List<SysOrganization> sysOrganizationList=sysOrganizationMapper.selectByMap(columnMap); |
| | | if (sysHospital == null) { |
| | | return ResultBody.failed("医院数据不存在!"); |
| | | } |
| | |
| | | return ResultBody.failed("科室数据不存在!"); |
| | | } |
| | | //如果这个医院下有多个科室,禁用只对当前科室有效,否则也要禁用医院 |
| | | if(sysDepartmentList.size()==1) |
| | | if(sysOrganizationList.size()==1) |
| | | { |
| | | sysHospital.setEnabled(enabled); |
| | | int i =baseMapper.updateById(sysHospital); |
| | | //Log.info("修改医院状态为:{}",enabled+" "+i); |
| | | baseMapper.updateById(sysHospital); |
| | | SysOrganization sysOrganizationH=sysOrganizationMapper.selectById(sysHospital.getOrgId()); |
| | | if (sysOrganizationH != null) { |
| | | sysOrganizationH.setEnabled(enabled); |
| | | sysOrganizationMapper.updateById(sysOrganizationH); |
| | | } |
| | | } |
| | | sysDepartment.setEnabled(enabled); |
| | | int j=departmentMapper.updateById(sysDepartment); |
| | | //更新组织数据 |
| | | SysOrganization sysOrganizationD=sysOrganizationMapper.selectById(sysDepartment.getOrgId()); |
| | | if (sysOrganizationD != null) { |
| | | sysOrganizationD.setEnabled(enabled); |
| | | sysOrganizationMapper.updateById(sysOrganizationD); |
| | | } |
| | | return (j > 0) ? ResultBody.ok().data(sysHospital).msg("更新成功") : ResultBody.failed("更新失败"); |
| | | } |
| | | |
| | |
| | | SysDepartment sysDepartment=departmentMapper.selectById(departmentId); |
| | | //医院数据 |
| | | SysHospital sysHospital = baseMapper.selectById(id); |
| | | //医院下的所有数据 |
| | | Map<String,Object> columnMap=new HashMap<String,Object>(); |
| | | columnMap.put("hospital_id",id); |
| | | List<SysDepartment> sysDepartmentList=departmentMapper.selectByMap(columnMap); |
| | | if (sysHospital == null) { |
| | | return ResultBody.failed("医院数据不存在!"); |
| | | } |
| | | if (sysDepartment == null) { |
| | | return ResultBody.failed("科室数据不存在!"); |
| | | } |
| | | //医院下的所有科室数据 |
| | | Map<String,Object> columnMap=new HashMap<String,Object>(); |
| | | columnMap.put("org_parent_id",sysHospital.getOrgId()); |
| | | columnMap.put("is_del",0); |
| | | columnMap.put("enabled",1); |
| | | List<SysOrganization> sysOrganizationList=sysOrganizationMapper.selectByMap(columnMap); |
| | | //如果这个医院下有多个科室,禁用只对当前科室有效,否则也要禁用医院 |
| | | if(sysDepartmentList.size()==1) |
| | | if(sysOrganizationList.size()==1) |
| | | { |
| | | sysHospital.setIsDel(true); |
| | | int i =baseMapper.updateById(sysHospital); |
| | | //Log.info("修改医院状态为:{}",enabled+" "+i); |
| | | baseMapper.updateById(sysHospital); |
| | | SysOrganization sysOrganizationH=sysOrganizationMapper.selectById(sysHospital.getOrgId()); |
| | | if (sysOrganizationH != null) { |
| | | sysOrganizationH.setIsDel(true); |
| | | sysOrganizationMapper.updateById(sysOrganizationH); |
| | | } |
| | | } |
| | | sysDepartment.setIsDel(true); |
| | | int j=departmentMapper.updateById(sysDepartment); |
| | | return (j > 0) ? ResultBody.ok().data(sysHospital).msg("删除成功") : ResultBody.failed("删除失败"); |
| | | //删除组织数据 |
| | | SysOrganization sysOrganizationD=sysOrganizationMapper.selectById(sysDepartment.getOrgId()); |
| | | if (sysOrganizationD != null) { |
| | | sysOrganizationD.setIsDel(true); |
| | | sysOrganizationMapper.updateById(sysOrganizationD); |
| | | } |
| | | return (j>0) ? ResultBody.ok().data(sysHospital).msg("删除成功") : ResultBody.failed("删除失败"); |
| | | } |
| | | |
| | | /** |
| | | * 更新医院logo |
| | | * @param params |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ResultBody updateLogo(Map<String, Object> params) { |
| | | Long hospitalId = MapUtils.getLong(params, "hospitalId"); |
| | | String hospitalLogo=MapUtils.getString(params, "hospitalLogo"); |
| | | String hospitalLitLogo=MapUtils.getString(params, "hospitalLitLogo"); |
| | | if (StringUtils.isNotBlank(hospitalId.toString())&&StringUtils.isNotBlank(hospitalLogo)&&StringUtils.isNotBlank(hospitalLitLogo)) { |
| | | SysHospital sysHospital=baseMapper.selectById(hospitalId); |
| | | if (sysHospital != null) { |
| | | sysHospital.setHospitalLogo(hospitalLogo); |
| | | sysHospital.setHospitalLitLogo(hospitalLitLogo); |
| | | int u=baseMapper.updateById(sysHospital); |
| | | return ResultBody.ok().data(u>0); |
| | | } |
| | | else |
| | | { |
| | | return ResultBody.failed("医院数据有误!"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return ResultBody.failed("修改数据有误!"); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 统计医院数量 |
| | | * @param datatype 医院类型 |
| | | * 0 试用医院 |
| | | * 1 正式医院 |
| | | * 11 筛查医院 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ResultBody chartHospital(int datatype) { |
| | | int hospitalCount=baseMapper.chartHospital(datatype); |
| | | return ResultBody.ok().data(hospitalCount).msg("获取数据成功"); |
| | | } |
| | | } |