56 lines
2.2 KiB
Java
56 lines
2.2 KiB
Java
package com.waterquality.projectmanagement.service;
|
|
|
|
import com.waterquality.projectmanagement.dto.DepartmentDTO;
|
|
import com.waterquality.projectmanagement.entity.department.Department;
|
|
import com.waterquality.projectmanagement.entity.employee.Employee;
|
|
import com.waterquality.projectmanagement.exception.ResourceNotFoundException;
|
|
import com.waterquality.projectmanagement.repository.DepartmentRepository;
|
|
import com.waterquality.projectmanagement.repository.EmployeeRepository;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
public class DepartmentService {
|
|
|
|
private final DepartmentRepository departmentRepository;
|
|
private final EmployeeRepository employeeRepository;
|
|
|
|
@Transactional
|
|
public Department createWithParent(DepartmentDTO dto) {
|
|
Department parent = dto.getParentId() != null ?
|
|
departmentRepository.findById(dto.getParentId())
|
|
.orElseThrow(() -> new ResourceNotFoundException("父部门不存在")) :
|
|
null;
|
|
|
|
Employee manager = dto.getManagerId() != null ?
|
|
employeeRepository.findById(dto.getManagerId())
|
|
.orElseThrow(() -> new ResourceNotFoundException("负责人不存在")) :
|
|
null;
|
|
|
|
Department dept = new Department();
|
|
dept.setDepartmentName(dto.getName());
|
|
dept.setParent(parent);
|
|
dept.setManager(manager);
|
|
dept.setArea(dto.getArea());
|
|
return departmentRepository.save(dept);
|
|
}
|
|
|
|
public String getDepartmentNameById(Integer id) {
|
|
return departmentRepository.findById(id)
|
|
.map(Department::getDepartmentName)
|
|
.orElseThrow(() -> new ResourceNotFoundException("部门不存在"));
|
|
}
|
|
public List<Department> getAllDepartment() {
|
|
return departmentRepository.findAll();
|
|
}
|
|
|
|
public Department getDepartmentDetailsById(Integer id) {
|
|
return departmentRepository.findById(id)
|
|
.orElseThrow(() -> new ResourceNotFoundException("部门不存在"));
|
|
}
|
|
} |