123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- 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.service.impl.ServiceImpl;
- import com.imed.costaccount.common.exception.CostException;
- import com.imed.costaccount.mapper.ResponsibilityDepartmentMapper;
- import com.imed.costaccount.model.Responsibility;
- import com.imed.costaccount.model.ResponsibilityDepartment;
- import com.imed.costaccount.model.User;
- import com.imed.costaccount.model.dto.DepartDTO;
- import com.imed.costaccount.model.vo.CenterDepartmentVO;
- import com.imed.costaccount.model.vo.DepartVO;
- import com.imed.costaccount.service.ResponsibilityDepartmentService;
- import com.imed.costaccount.service.ResponsibilityService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Propagation;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Objects;
- import java.util.stream.Collectors;
- @Slf4j
- @Service("responsibilityDepartmentService")
- public class ResponsibilityDepartmentServiceImpl
- extends ServiceImpl<ResponsibilityDepartmentMapper, ResponsibilityDepartment> implements ResponsibilityDepartmentService {
- private ResponsibilityService responsibilityService;
- public ResponsibilityDepartmentServiceImpl(ResponsibilityService responsibilityService) {
- this.responsibilityService = responsibilityService;
- }
- /**
- * 获取责任中心对照列表
- *
- * @param user 当前登录用户
- * @return
- */
- @Override
- public List<CenterDepartmentVO> getCenterDepart(User user) {
- List<CenterDepartmentVO> list = responsibilityService.getParentSon(user);
- for (CenterDepartmentVO centerDepartmentVO : list) {
- if (centerDepartmentVO.getIsGatherCenter() == 2) {
- centerDepartmentVO.setDepartments(baseMapper.getDepartByCenterId(centerDepartmentVO.getResponsibilityId()));
- }
- List<CenterDepartmentVO> child = centerDepartmentVO.getChild();
- if (CollUtil.isEmpty(child)) {
- child = new ArrayList<>();
- }
- for (CenterDepartmentVO departmentVO : child) {
- List<DepartVO> departVOS = baseMapper.getDepartByCenterId(departmentVO.getResponsibilityId());
- departmentVO.setDepartments(departVOS);
- }
- }
- return list;
- }
- /**
- * 保存或修改责任中心对照
- *
- * @param departDTO
- * @param user
- */
- @Override
- @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
- public void saveCenterDepart(DepartDTO departDTO, User user) {
- Long responsibilityId = departDTO.getResponsibilityId();
- Long hospId = user.getHospId();
- List<ResponsibilityDepartment> list = this.list(
- new LambdaQueryWrapper<ResponsibilityDepartment>().select(ResponsibilityDepartment::getId)
- .eq(ResponsibilityDepartment::getResponsibilityId, responsibilityId)
- .eq(ResponsibilityDepartment::getHospId, hospId)
- );
- if (CollUtil.isNotEmpty(list)) {
- this.removeByIds(list.stream().map(ResponsibilityDepartment::getId).collect(Collectors.toList()));
- }
- List<Long> departmentIds = departDTO.getDepartmentIds();
- if (CollUtil.isEmpty(departmentIds)) {
- return ;
- }
- Responsibility byId = responsibilityService.getById(responsibilityId);
- if (Objects.isNull(byId)) {
- throw new CostException(500, "责任中心不存在或已被移除");
- }
- if (byId.getIsGatherCenter() == 1) {
- throw new CostException(500, "汇总中心不允许添加对照关系,请先修改");
- }
- List<ResponsibilityDepartment> data = departmentIds.stream().map(item -> {
- ResponsibilityDepartment centerDepart = new ResponsibilityDepartment();
- return centerDepart.setResponsibilityId(responsibilityId).setCreateTime(System.currentTimeMillis()).setHospId(hospId)
- .setDepartmentId(item);
- }).collect(Collectors.toList());
- this.saveBatch(data);
- }
- }
|