123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package com.imed.costaccount.service.impl;
- import cn.hutool.core.collection.CollUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.imed.costaccount.common.exception.CostException;
- import com.imed.costaccount.common.util.PageUtils;
- import com.imed.costaccount.mapper.HosptailMapper;
- import com.imed.costaccount.model.Hosptail;
- import com.imed.costaccount.model.dto.HosptailDto;
- import com.imed.costaccount.model.vo.CommonVO;
- import com.imed.costaccount.model.vo.HosptailVO;
- import com.imed.costaccount.service.HosptailService;
- import com.imed.costaccount.utils.BeanUtil;
- import org.springframework.stereotype.Service;
- import java.util.*;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import org.springframework.util.StringUtils;
- @Service("hosptailService")
- public class HosptailServiceImpl extends ServiceImpl<HosptailMapper, Hosptail> implements HosptailService {
- /**
- * 分页查询所有的医院信息
- *
- * @param page
- * @param pageSize
- * @return
- */
- @Override
- public PageUtils queryList(Integer page, Integer pageSize,String name) {
- Page<Hosptail> hosptailPage = new Page<>(page, pageSize);
- Page<Hosptail> pages = this.page(hosptailPage,new QueryWrapper<Hosptail>()
- .lambda().like(!StringUtils.isEmpty(name),Hosptail::getName,name));
- List<Hosptail> records = pages.getRecords();
- List<HosptailVO> hosptailVOList = BeanUtil.convertList(records, HosptailVO.class);
- PageUtils pageUtils = new PageUtils(pages);
- pageUtils.setList(hosptailVOList);
- return pageUtils;
- }
- /**
- * 添加医院信息
- *
- * @param hosptailDto
- */
- @Override
- public void saveHosptail(HosptailDto hosptailDto) {
- // TODO 可能需要补充没有传递的数据
- Hosptail hosptail = BeanUtil.convertObj(hosptailDto, Hosptail.class);
- hosptail.setCreateTime(System.currentTimeMillis());
- baseMapper.insert(hosptail);
- }
- /**
- * 修改医院信息
- *
- * @param hosptailDto
- */
- @Override
- public void updateByHosptail(HosptailDto hosptailDto) {
- Hosptail hosptail = baseMapper.selectOne(new QueryWrapper<Hosptail>().lambda().
- eq(!StringUtils.isEmpty(hosptailDto.getId()), Hosptail::getId, hosptailDto.getId()));
- if (Objects.isNull(hosptail)) {
- throw new CostException("不存在相关医院信息");
- }
- baseMapper.deleteById(hosptail.getId());
- Hosptail hosptailRequest = BeanUtil.convertObj(hosptailDto, Hosptail.class);
- hosptailRequest.setId(null);
- baseMapper.insert(hosptailRequest);
- }
- /**
- * 通过医院标识获取院区列表
- * @param sign
- * @return
- */
- @Override
- public List<CommonVO> getHospArea(String sign) {
- Hosptail one = this.getBySign(sign);
- // 获取下面所有院区
- List<Hosptail> list = this.list(
- new LambdaQueryWrapper<Hosptail>()
- .select(Hosptail::getId)
- .eq(Hosptail::getIsHosptail, 1)
- .eq(Hosptail::getParentId, one.getId())
- );
- // 如果不存在院区
- if (CollUtil.isEmpty(list)) {
- return Collections.emptyList();
- }
- return BeanUtil.convertList(list, CommonVO.class);
- }
- /**
- * 通过医院sign获取医院信息
- * @param hospSign 医院唯一标识
- * @return
- */
- @Override
- public Hosptail getBySign(String hospSign) {
- Hosptail one = this.getOne(
- new LambdaQueryWrapper<Hosptail>()
- .select(Hosptail::getId,Hosptail::getName)
- .eq(Hosptail::getIsHosptail, 0)
- .eq(Hosptail::getSign, hospSign)
- .last("limit 1")
- );
- if (Objects.isNull(one)) {
- throw new CostException("当前医院不存在");
- }
- return one;
- }
- }
|