CostSurveyTemplateUploadDataManagerImpl.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package com.hotent.enterpriseDeclare.manager.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.hotent.base.manager.impl.BaseManagerImpl;
  4. import com.hotent.base.util.StringUtil;
  5. import com.hotent.enterpriseDeclare.dao.CostSurveyTemplateUploadDataDao;
  6. import com.hotent.enterpriseDeclare.manager.CostSurveyTemplateUploadDataManager;
  7. import com.hotent.enterpriseDeclare.model.CostSurveyTemplateUploadData;
  8. import com.hotent.surveyinfo.manager.CostSurveyTemplateUploadManager;
  9. import com.hotent.surveyinfo.model.CostSurveyTemplateUpload;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.transaction.annotation.Transactional;
  13. import java.time.LocalDateTime;
  14. import java.util.*;
  15. import java.util.stream.Collectors;
  16. /**
  17. * 成本调查表模板上传数据表 服务实现类
  18. *
  19. * @company 山西清众科技股份有限公司
  20. * @author 超级管理员
  21. * @since 2025-01-XX
  22. */
  23. @Service
  24. public class CostSurveyTemplateUploadDataManagerImpl extends BaseManagerImpl<CostSurveyTemplateUploadDataDao, CostSurveyTemplateUploadData> implements CostSurveyTemplateUploadDataManager {
  25. @Autowired
  26. private CostSurveyTemplateUploadDataDao costSurveyTemplateUploadDataDao;
  27. @Autowired
  28. private CostSurveyTemplateUploadManager costSurveyTemplateUploadManager;
  29. @Override
  30. public CostSurveyTemplateUploadData getDetail(String id) {
  31. CostSurveyTemplateUploadData data = this.get(id);
  32. return data;
  33. }
  34. @Override
  35. @Transactional
  36. public void createOrUpdate(CostSurveyTemplateUploadData costSurveyTemplateUploadData) {
  37. //新建或更新
  38. this.saveOrUpdate(costSurveyTemplateUploadData);
  39. }
  40. @Override
  41. public List<CostSurveyTemplateUploadData> listByUploadId(String uploadId) {
  42. return costSurveyTemplateUploadDataDao.selectByUploadId(uploadId);
  43. }
  44. @Override
  45. public List<CostSurveyTemplateUploadData> listByUploadIdAndAuditedUnitId(String uploadId, String periodRecordId) {
  46. return costSurveyTemplateUploadDataDao.selectByUploadIdAndAuditedUnitId(uploadId, periodRecordId);
  47. }
  48. @Override
  49. public List<CostSurveyTemplateUploadData> listByRowid(String rowid) {
  50. return costSurveyTemplateUploadDataDao.selectByRowid(rowid);
  51. }
  52. @Override
  53. @Transactional
  54. public void saveData(List<CostSurveyTemplateUploadData> dataList) {
  55. if (dataList == null || dataList.isEmpty()) {
  56. return;
  57. }
  58. // 从第一条数据中提取信息
  59. CostSurveyTemplateUploadData firstData = dataList.get(0);
  60. String refId = firstData.getUploadId();
  61. if(refId==null){
  62. refId = firstData.getRefId();
  63. }
  64. if (refId==null){
  65. refId = firstData.getTaskId();
  66. }
  67. String type = firstData.getType();
  68. String taskId = firstData.getTaskId();
  69. // 获取periodRecordId(动态表使用)
  70. String periodRecordId = firstData.getPeriodRecordId();
  71. // 先删除该refId下的数据
  72. if (StringUtil.isNotEmpty(periodRecordId)) {
  73. // 动态表:删除指定periodRecordId的数据
  74. deleteByRefIdAndPeriodRecordId(refId, type, periodRecordId);
  75. } else {
  76. // 固定表和单记录:删除所有数据
  77. deleteByRefId(refId, type);
  78. }
  79. // 设置公共字段并保存新数据
  80. List<CostSurveyTemplateUploadData> saveList = new ArrayList<>();
  81. for (CostSurveyTemplateUploadData data : dataList) {
  82. if (data.getRowid() == null || data.getRowid().isEmpty() ||
  83. data.getRkey() == null || data.getRkey().isEmpty()) {
  84. continue;
  85. }
  86. // 设置refId
  87. data.setRefId(refId);
  88. data.setTaskId(taskId);
  89. data.setType(type);
  90. if (StringUtil.isNotEmpty(periodRecordId)) {
  91. data.setPeriodRecordId(periodRecordId);
  92. }
  93. if (data.getIsDeleted() == null) {
  94. data.setIsDeleted("0");
  95. }
  96. if (data.getRvalue() == null) {
  97. data.setRvalue("");
  98. }
  99. saveList.add(data);
  100. }
  101. // 批量保存
  102. if (!saveList.isEmpty()) {
  103. this.saveBatch(saveList);
  104. }
  105. }
  106. @Override
  107. @Transactional
  108. public void deleteByUploadId(String uploadId) {
  109. deleteByRefId(uploadId, "1");
  110. }
  111. /**
  112. * 根据refId删除数据
  113. * @param refId 关联ID
  114. * @param type 类型
  115. */
  116. private void deleteByRefId(String refId, String type) {
  117. QueryWrapper<CostSurveyTemplateUploadData> wrapper = new QueryWrapper<>();
  118. wrapper.eq("ref_id", refId);
  119. wrapper.eq("type", type);
  120. wrapper.eq("is_deleted", "0");
  121. this.remove(wrapper);
  122. }
  123. /**
  124. * 根据refId和监审期间记录ID删除数据
  125. * @param refId 关联ID
  126. * @param type 类型
  127. * @param periodRecordId 监审期间记录ID
  128. */
  129. private void deleteByRefIdAndPeriodRecordId(String refId, String type, String periodRecordId) {
  130. QueryWrapper<CostSurveyTemplateUploadData> wrapper = new QueryWrapper<>();
  131. wrapper.eq("ref_id", refId);
  132. wrapper.eq("type", type);
  133. wrapper.eq("period_record_id", periodRecordId);
  134. wrapper.eq("is_deleted", "0");
  135. this.remove(wrapper);
  136. }
  137. }