HosptailServiceImpl.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.imed.costaccount.service.impl;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.imed.costaccount.common.exception.CostException;
  6. import com.imed.costaccount.common.util.PageUtils;
  7. import com.imed.costaccount.mapper.HosptailMapper;
  8. import com.imed.costaccount.model.Hosptail;
  9. import com.imed.costaccount.model.dto.HosptailDto;
  10. import com.imed.costaccount.model.vo.CommonVO;
  11. import com.imed.costaccount.model.vo.HosptailVO;
  12. import com.imed.costaccount.service.HosptailService;
  13. import com.imed.costaccount.utils.BeanUtil;
  14. import org.springframework.stereotype.Service;
  15. import java.util.*;
  16. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  17. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  18. import org.springframework.util.StringUtils;
  19. @Service("hosptailService")
  20. public class HosptailServiceImpl extends ServiceImpl<HosptailMapper, Hosptail> implements HosptailService {
  21. /**
  22. * 分页查询所有的医院信息
  23. *
  24. * @param page
  25. * @param pageSize
  26. * @return
  27. */
  28. @Override
  29. public PageUtils queryList(Integer page, Integer pageSize,String name) {
  30. Page<Hosptail> hosptailPage = new Page<>(page, pageSize);
  31. Page<Hosptail> pages = this.page(hosptailPage,new QueryWrapper<Hosptail>()
  32. .lambda().like(!StringUtils.isEmpty(name),Hosptail::getName,name));
  33. List<Hosptail> records = pages.getRecords();
  34. List<HosptailVO> hosptailVOList = BeanUtil.convertList(records, HosptailVO.class);
  35. PageUtils pageUtils = new PageUtils(pages);
  36. pageUtils.setList(hosptailVOList);
  37. return pageUtils;
  38. }
  39. /**
  40. * 添加医院信息
  41. *
  42. * @param hosptailDto
  43. */
  44. @Override
  45. public void saveHosptail(HosptailDto hosptailDto) {
  46. // TODO 可能需要补充没有传递的数据
  47. Hosptail hosptail = BeanUtil.convertObj(hosptailDto, Hosptail.class);
  48. hosptail.setCreateTime(System.currentTimeMillis());
  49. baseMapper.insert(hosptail);
  50. }
  51. /**
  52. * 修改医院信息
  53. *
  54. * @param hosptailDto
  55. */
  56. @Override
  57. public void updateByHosptail(HosptailDto hosptailDto) {
  58. Hosptail hosptail = baseMapper.selectOne(new QueryWrapper<Hosptail>().lambda().
  59. eq(!StringUtils.isEmpty(hosptailDto.getId()), Hosptail::getId, hosptailDto.getId()));
  60. if (Objects.isNull(hosptail)) {
  61. throw new CostException("不存在相关医院信息");
  62. }
  63. baseMapper.deleteById(hosptail.getId());
  64. Hosptail hosptailRequest = BeanUtil.convertObj(hosptailDto, Hosptail.class);
  65. hosptailRequest.setId(null);
  66. baseMapper.insert(hosptailRequest);
  67. }
  68. /**
  69. * 通过医院标识获取院区列表
  70. * @param sign
  71. * @return
  72. */
  73. @Override
  74. public List<CommonVO> getHospArea(String sign) {
  75. Hosptail one = this.getBySign(sign);
  76. // 获取下面所有院区
  77. List<Hosptail> list = this.list(
  78. new LambdaQueryWrapper<Hosptail>()
  79. .select(Hosptail::getId)
  80. .eq(Hosptail::getIsHosptail, 1)
  81. .eq(Hosptail::getParentId, one.getId())
  82. );
  83. // 如果不存在院区
  84. if (CollUtil.isEmpty(list)) {
  85. return Collections.emptyList();
  86. }
  87. return BeanUtil.convertList(list, CommonVO.class);
  88. }
  89. /**
  90. * 通过医院sign获取医院信息
  91. * @param hospSign 医院唯一标识
  92. * @return
  93. */
  94. @Override
  95. public Hosptail getBySign(String hospSign) {
  96. Hosptail one = this.getOne(
  97. new LambdaQueryWrapper<Hosptail>()
  98. .select(Hosptail::getId,Hosptail::getName)
  99. .eq(Hosptail::getIsHosptail, 0)
  100. .eq(Hosptail::getSign, hospSign)
  101. .last("limit 1")
  102. );
  103. if (Objects.isNull(one)) {
  104. throw new CostException("当前医院不存在");
  105. }
  106. return one;
  107. }
  108. }