InvalidRequestFileService.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package cn.cslg.pas.service.business;
  2. import cn.cslg.pas.common.dto.business.ReportAffairDTO;
  3. import cn.cslg.pas.common.dto.invalidDTO.AddInvalidRequestFileDTO;
  4. import cn.cslg.pas.common.dto.invalidDTO.UpdateInvalidRequestFileDTO;
  5. import cn.cslg.pas.common.vo.invalidVO.InvalidRequestFileVO;
  6. import cn.cslg.pas.domain.business.AssoReportAffairFile;
  7. import cn.cslg.pas.domain.business.InvalidRequestFile;
  8. import cn.cslg.pas.domain.business.ReportAffair;
  9. import cn.cslg.pas.exception.XiaoShiException;
  10. import cn.cslg.pas.mapper.InvalidRequestFileMapper;
  11. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  12. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.beans.BeanUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.context.annotation.Lazy;
  17. import org.springframework.stereotype.Service;
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. import java.util.stream.Collectors;
  21. /**
  22. * 无效请求书的Service层
  23. * @Author xiexiang
  24. * @Date 2023/12/23
  25. */
  26. @Service
  27. @Slf4j
  28. public class InvalidRequestFileService extends ServiceImpl<InvalidRequestFileMapper, InvalidRequestFile> {
  29. @Autowired
  30. @Lazy
  31. private ReportAffairService reportAffairService;
  32. @Autowired
  33. private AssoReportAffairFileService assoReportAffairFileService;
  34. /**
  35. * 上传无效请求书
  36. * @param addInvalidRequestFileDTO
  37. */
  38. public Integer add(AddInvalidRequestFileDTO addInvalidRequestFileDTO){
  39. if (addInvalidRequestFileDTO == null) {
  40. throw new XiaoShiException("入参为空");
  41. }
  42. Integer projectId = addInvalidRequestFileDTO.getProjectId();
  43. if (projectId == null) {
  44. throw new XiaoShiException("报告id为空");
  45. }
  46. //1. 首先上传报告事务,拿到报告事务id
  47. ReportAffairDTO reportAffairDTO = new ReportAffairDTO();
  48. reportAffairDTO.setProjectId(projectId);
  49. //无效请求书 1
  50. reportAffairDTO.setAffairType(1);
  51. //发生时间是无效请求日
  52. reportAffairDTO.setOccurredTime(addInvalidRequestFileDTO.getInvalidRequestDate());
  53. //备注
  54. reportAffairDTO.setDescription(addInvalidRequestFileDTO.getDescription());
  55. Integer reportAffairId = reportAffairService.addReportAffair(reportAffairDTO);
  56. if (reportAffairId == null) {
  57. throw new XiaoShiException("上传报告事务失败");
  58. }
  59. //2. 上传无效请求书
  60. InvalidRequestFile invalidRequestFile = new InvalidRequestFile();
  61. BeanUtils.copyProperties(addInvalidRequestFileDTO, invalidRequestFile);
  62. invalidRequestFile.setReportAffairId(reportAffairId);
  63. invalidRequestFile.insert();
  64. //3. 添加报告事务与文件关联
  65. List<String> fileGuids = addInvalidRequestFileDTO.getFileGuids();
  66. if (fileGuids != null && !fileGuids.isEmpty()) {
  67. List<AssoReportAffairFile> assoReportAffairFiles = new ArrayList<>();
  68. fileGuids.forEach(item -> {
  69. AssoReportAffairFile assoReportAffairFile = new AssoReportAffairFile();
  70. assoReportAffairFile.setReportAffairId(reportAffairId);
  71. assoReportAffairFile.setFileGuid(item);
  72. assoReportAffairFiles.add(assoReportAffairFile);
  73. });
  74. assoReportAffairFileService.saveBatch(assoReportAffairFiles);
  75. }
  76. return reportAffairId;
  77. }
  78. public InvalidRequestFileVO getInvalidRequestFileVO(Integer reportAffairId) {
  79. LambdaQueryWrapper<InvalidRequestFile> queryWrapper = new LambdaQueryWrapper<>();
  80. queryWrapper.eq(InvalidRequestFile::getReportAffairId, reportAffairId);
  81. InvalidRequestFile invalidRequestFile = this.getOne(queryWrapper, false);
  82. InvalidRequestFileVO invalidRequestFileVO = new InvalidRequestFileVO();
  83. if (invalidRequestFile != null) {
  84. BeanUtils.copyProperties(invalidRequestFile, invalidRequestFileVO);
  85. invalidRequestFileVO.setInvalidRequestFileId(invalidRequestFile.getId());
  86. }
  87. return invalidRequestFileVO;
  88. }
  89. /**
  90. * 更新无效请求书
  91. * @param updateInvalidRequestFileDTO
  92. * @return
  93. */
  94. public Integer update(UpdateInvalidRequestFileDTO updateInvalidRequestFileDTO){
  95. if (updateInvalidRequestFileDTO == null) {
  96. throw new XiaoShiException("入参为空");
  97. }
  98. Integer projectId = updateInvalidRequestFileDTO.getProjectId();
  99. Integer id = updateInvalidRequestFileDTO.getInvalidRequestFileId();
  100. if (id == null) {
  101. throw new XiaoShiException("id为空");
  102. }
  103. if (projectId == null) {
  104. throw new XiaoShiException("报告id为空");
  105. }
  106. //1. 根据id查出无效请求书
  107. InvalidRequestFile invalidRequestFile = this.getById(id);
  108. if (invalidRequestFile == null) {
  109. throw new XiaoShiException("invalidRequestFile查询错误");
  110. }
  111. BeanUtils.copyProperties(updateInvalidRequestFileDTO, invalidRequestFile);
  112. invalidRequestFile.updateById();
  113. Integer reportAffairId = invalidRequestFile.getReportAffairId();
  114. //2. 拿到报告事务id,获取报告事务
  115. ReportAffair reportAffair = reportAffairService.getById(reportAffairId);
  116. reportAffair.setProjectId(projectId);
  117. //发生时间是无效请求日
  118. reportAffair.setOccurredTime(updateInvalidRequestFileDTO.getInvalidRequestDate());
  119. //备注
  120. reportAffair.setDescription(updateInvalidRequestFileDTO.getDescription());
  121. reportAffair.updateById();
  122. //3. 更新报告事务与文件关联
  123. List<String> fileGuids = updateInvalidRequestFileDTO.getFileGuids();
  124. assoReportAffairFileService.updateAffairFile(reportAffairId, fileGuids);
  125. return reportAffairId;
  126. }
  127. }