DrugRepository.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package com.kcim.dao.repository;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.kcim.common.constants.NumberConstant;
  6. import com.kcim.common.util.UserContext;
  7. import com.kcim.dao.mapper.DrugMapper;
  8. import com.kcim.dao.model.Drug;
  9. import com.kcim.vo.SessionUserVO;
  10. import org.springframework.stereotype.Repository;
  11. import org.springframework.util.CollectionUtils;
  12. import org.springframework.util.StringUtils;
  13. import java.math.BigDecimal;
  14. import java.util.*;
  15. import java.util.stream.Collectors;
  16. /**
  17. * @program: CostAccount
  18. * @description: 药品成本数据库交互
  19. * @author: Wang.YS
  20. * @create: 2023-10-25 16:13
  21. **/
  22. @Repository
  23. public class DrugRepository extends ServiceImpl<DrugMapper, Drug> {
  24. public List<Drug> getList() {
  25. LambdaQueryWrapper<Drug> queryWrapper = new LambdaQueryWrapper<>();
  26. queryWrapper.eq(Drug::getHospId, UserContext.getHospId());
  27. return this.list(queryWrapper);
  28. }
  29. public Map<String, BigDecimal> getCostMap() {
  30. List<Drug> list = getList();
  31. if(!CollectionUtils.isEmpty(list)){
  32. return list.stream().collect(Collectors.toMap(Drug::getCode, Drug::getCost, (a, b) -> b));
  33. }
  34. return new HashMap<>();
  35. }
  36. public Page<Drug> getPage(Integer current, Integer pageSize, String name, Integer stop) {
  37. Page<Drug> page = new Page<>(current,pageSize);
  38. LambdaQueryWrapper<Drug> queryWrapper = new LambdaQueryWrapper<>();
  39. queryWrapper.eq(Drug::getHospId, UserContext.getHospId());
  40. if(!stop.equals(NumberConstant.ONE)){
  41. queryWrapper.eq(Drug::getStatus,stop);
  42. }
  43. if(!StringUtils.isEmpty(name)){
  44. queryWrapper.like(Drug::getName,name);
  45. }
  46. return this.page(page,queryWrapper);
  47. }
  48. public void deleteDrug(Integer id) {
  49. Drug drug = this.getById(id);
  50. if(Objects.nonNull(drug)){
  51. drug.setDeleteTime(new Date());
  52. drug.setDeleteUser(String.valueOf(UserContext.getCurrentUser().getId()));
  53. this.updateById(drug);
  54. this.removeById(id);
  55. }
  56. }
  57. public void removeList(List<Drug> list) {
  58. for (Drug drug : list) {
  59. drug.setDeleteTime(new Date());
  60. drug.setDeleteUser(String.valueOf(UserContext.getCurrentUser().getId()));
  61. }
  62. this.updateBatchById(list);
  63. List<Integer> collect = list.stream().map(Drug::getId).collect(Collectors.toList());
  64. this.removeBatchByIds(collect);
  65. }
  66. public List<Drug> getByCode(String code) {
  67. LambdaQueryWrapper<Drug> queryWrapper = new LambdaQueryWrapper<>();
  68. queryWrapper.eq(Drug::getHospId, UserContext.getHospId());
  69. queryWrapper.eq(Drug::getCode,code);
  70. return this.list(queryWrapper);
  71. }
  72. public Drug getOneByCode(String code) {
  73. LambdaQueryWrapper<Drug> queryWrapper = new LambdaQueryWrapper<>();
  74. queryWrapper.eq(Drug::getHospId, UserContext.getHospId());
  75. queryWrapper.eq(Drug::getCode,code);
  76. return this.getOne(queryWrapper);
  77. }
  78. public List<Drug> getList(String name) {
  79. LambdaQueryWrapper<Drug> queryWrapper = new LambdaQueryWrapper<>();
  80. queryWrapper.eq(Drug::getHospId, UserContext.getHospId());
  81. if(!StringUtils.isEmpty(name)){
  82. queryWrapper.like(Drug::getName, name);
  83. }
  84. return this.list(queryWrapper);
  85. }
  86. public Map<String, BigDecimal> getCostMap(SessionUserVO currentUser) {
  87. LambdaQueryWrapper<Drug> queryWrapper = new LambdaQueryWrapper<>();
  88. queryWrapper.eq(Drug::getHospId, currentUser.getHospId());
  89. List<Drug> list = this.list(queryWrapper);
  90. if(!CollectionUtils.isEmpty(list)){
  91. return list.stream().collect(Collectors.toMap(Drug::getCode, Drug::getCost, (a, b) -> b));
  92. }
  93. return new HashMap<>();
  94. }
  95. }