ResponsibilityDepartmentServiceImpl.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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.service.impl.ServiceImpl;
  5. import com.imed.costaccount.mapper.ResponsibilityDepartmentMapper;
  6. import com.imed.costaccount.model.ResponsibilityDepartment;
  7. import com.imed.costaccount.model.User;
  8. import com.imed.costaccount.model.dto.DepartDTO;
  9. import com.imed.costaccount.model.vo.CenterDepartmentVO;
  10. import com.imed.costaccount.model.vo.DepartVO;
  11. import com.imed.costaccount.service.ResponsibilityDepartmentService;
  12. import com.imed.costaccount.service.ResponsibilityService;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.transaction.annotation.Propagation;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.util.ArrayList;
  18. import java.util.List;
  19. import java.util.stream.Collectors;
  20. @Slf4j
  21. @Service("responsibilityDepartmentService")
  22. public class ResponsibilityDepartmentServiceImpl
  23. extends ServiceImpl<ResponsibilityDepartmentMapper, ResponsibilityDepartment> implements ResponsibilityDepartmentService {
  24. private ResponsibilityService responsibilityService;
  25. public ResponsibilityDepartmentServiceImpl(ResponsibilityService responsibilityService) {
  26. this.responsibilityService = responsibilityService;
  27. }
  28. /**
  29. * 获取责任中心对照列表
  30. *
  31. * @param user 当前登录用户
  32. * @return
  33. */
  34. @Override
  35. public List<CenterDepartmentVO> getCenterDepart(User user) {
  36. List<CenterDepartmentVO> list = responsibilityService.getParentSon(user);
  37. for (CenterDepartmentVO centerDepartmentVO : list) {
  38. if (centerDepartmentVO.getIsGatherCenter() == 2) {
  39. centerDepartmentVO.setDepartments(new ArrayList<>());
  40. }
  41. List<CenterDepartmentVO> child = centerDepartmentVO.getChild();
  42. if (CollUtil.isEmpty(child)) {
  43. child = new ArrayList<>();
  44. }
  45. for (CenterDepartmentVO departmentVO : child) {
  46. List<DepartVO> departVOS = baseMapper.getDepartByCenterId(departmentVO.getResponsibilityId());
  47. departmentVO.setDepartments(departVOS);
  48. }
  49. }
  50. return list;
  51. }
  52. /**
  53. * 保存或修改责任中心对照
  54. *
  55. * @param departDTO
  56. * @param user
  57. */
  58. @Override
  59. @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
  60. public void saveCenterDepart(DepartDTO departDTO, User user) {
  61. Integer responsibilityId = departDTO.getResponsibilityId();
  62. Integer hospId = user.getHospId();
  63. List<ResponsibilityDepartment> list = this.list(
  64. new LambdaQueryWrapper<ResponsibilityDepartment>().select(ResponsibilityDepartment::getId)
  65. .eq(ResponsibilityDepartment::getResponsibilityId, responsibilityId)
  66. .eq(ResponsibilityDepartment::getHospId, hospId)
  67. );
  68. if (CollUtil.isNotEmpty(list)) {
  69. this.removeByIds(list.stream().map(ResponsibilityDepartment::getId).collect(Collectors.toList()));
  70. }
  71. List<Integer> departmentIds = departDTO.getDepartmentIds();
  72. if (CollUtil.isEmpty(departmentIds)) {
  73. return ;
  74. }
  75. List<ResponsibilityDepartment> data = departmentIds.stream().map(item -> {
  76. ResponsibilityDepartment centerDepart = new ResponsibilityDepartment();
  77. return centerDepart.setResponsibilityId(responsibilityId).setCreateTime(System.currentTimeMillis()).setHospId(hospId)
  78. .setDepartmentId(item);
  79. }).collect(Collectors.toList());
  80. this.saveBatch(data);
  81. }
  82. }