TbFcltFailActService.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.its.op.service.its.facility;
  2. import com.its.op.dao.repository.its.facility.TbFcltFailActRepository;
  3. import com.its.op.dao.repository.its.facility.TbFcltFailRepository;
  4. import com.its.op.dto.its.common.NewIdLongDto;
  5. import com.its.op.dto.its.facility.TbFcltFailActDto;
  6. import com.its.op.entity.its.facility.TbFcltFailAct;
  7. import com.its.op.entity.its.facility.TbFcltFailActKey;
  8. import lombok.RequiredArgsConstructor;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.springframework.stereotype.Service;
  11. import org.springframework.transaction.annotation.Transactional;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. import java.util.NoSuchElementException;
  15. import java.util.Optional;
  16. @Slf4j
  17. @RequiredArgsConstructor
  18. @Service
  19. public class TbFcltFailActService {
  20. private final TbFcltFailActRepository repo;
  21. private final TbFcltFailRepository failRepo;
  22. // 데이터 1건 조회, 없으면 exception
  23. private TbFcltFailAct requireOne(TbFcltFailActKey failNo) throws NoSuchElementException {
  24. Optional<TbFcltFailAct> info = this.repo.findById(failNo);
  25. if (info.isPresent()) {
  26. return info.get();
  27. }
  28. else {
  29. throw new NoSuchElementException("데이터가 존재하지 않습니다: " + failNo);
  30. }
  31. }
  32. // 전체 데이터 조회
  33. @Transactional(readOnly = true)
  34. public List<TbFcltFailActDto> findAll() {
  35. List<TbFcltFailActDto> result = new ArrayList<>();
  36. List<TbFcltFailAct> data = this.repo.findAll();
  37. for (TbFcltFailAct entity : data) {
  38. result.add(entity.toDto());
  39. }
  40. return result;
  41. }
  42. // 전체 데이터 조회
  43. @Transactional(readOnly = true)
  44. public List<TbFcltFailActDto> findAllList() {
  45. List<TbFcltFailActDto> result = new ArrayList<>();
  46. List<TbFcltFailAct> data = this.repo.findAllList();
  47. for (TbFcltFailAct entity : data) {
  48. result.add(entity.toDto());
  49. }
  50. return result;
  51. }
  52. // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
  53. @Transactional
  54. public TbFcltFailActDto mergeInfo(TbFcltFailActDto.TbFcltFailActUpdReq req) {
  55. TbFcltFailAct obj = req.toEntity();
  56. this.repo.save(obj);
  57. if ("ACT2".equals(req.getStepCd())) {
  58. this.failRepo.updateComplete(req.getFailNo(), req.getActDt());
  59. }
  60. else {
  61. this.failRepo.updateStepCd(req.getFailNo(), req.getStepCd());
  62. }
  63. return obj.toDto();
  64. }
  65. // 정보 삭제-개별, 데이터 존재하지 않으면 Exception
  66. @Transactional
  67. public TbFcltFailActDto deleteById(TbFcltFailActKey failNo) {
  68. TbFcltFailAct entity = requireOne(failNo);
  69. this.repo.deleteById(failNo);
  70. return entity.toDto();
  71. }
  72. @Transactional(readOnly = true)
  73. public NewIdLongDto getNewActSeq(String failNo) {
  74. Long newId = this.repo.getNewActSeq(failNo);
  75. return NewIdLongDto.builder().newId(newId).build();
  76. }
  77. @Transactional(readOnly = true)
  78. public List<TbFcltFailActDto> findActListByFailNo(String failNo) {
  79. List<TbFcltFailActDto> result = new ArrayList<>();
  80. List<TbFcltFailAct> data = this.repo.findActListByFailNo(failNo);
  81. for (TbFcltFailAct entity : data) {
  82. result.add(entity.toDto());
  83. }
  84. return result;
  85. }
  86. }