ResponsibilityDepartmentServiceImpl.java 3.5 KB

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