1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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.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.Date;
- import java.util.List;
- 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) {
- 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) {
- Integer responsibilityId = departDTO.getResponsibilityId();
- Integer 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<Integer> departmentIds = departDTO.getDepartmentIds();
- if (CollUtil.isEmpty(departmentIds)) {
- return ;
- }
- List<ResponsibilityDepartment> data = departmentIds.stream().map(item -> {
- ResponsibilityDepartment centerDepart = new ResponsibilityDepartment();
- return centerDepart.setResponsibilityId(responsibilityId).setCreateTime(new Date().getTime()).setHospId(hospId)
- .setDepartmentId(item);
- }).collect(Collectors.toList());
- this.saveBatch(data);
- }
- }
|