HandleData.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package com.jyxt.getdatabyview;
  2. import com.jyxt.getdatabyview.view.repository.IBPSRepository;
  3. import com.jyxt.getdatabyview.view.repository.LISViewRepository;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Component;
  8. import java.sql.Timestamp;
  9. import java.time.LocalDateTime;
  10. import java.time.format.DateTimeFormatter;
  11. import java.util.*;
  12. @Component
  13. public class HandleData {
  14. private static final Logger log = LoggerFactory.getLogger(GetDataByViewApplication.class);
  15. @Autowired
  16. private LISViewRepository lisViewRepository;
  17. @Autowired
  18. private IBPSRepository ibpsRepository;
  19. public static final Map<String, String> RerunSampleField = new HashMap<>();
  20. static {
  21. // 静态初始化块中填充数据
  22. RerunSampleField.put("CREATEBY", "bian_zhi_ren_");
  23. RerunSampleField.put("CREATETIME", "bian_zhi_shi_jian");
  24. RerunSampleField.put("SAMPLECODE", "biao_ben_bian_hao");
  25. // RerunSampleField.put("TESTCODE", "xiang_mu_id_");
  26. RerunSampleField.put("TESTCODENAME", "fu_jian_xiang_mu_");
  27. RerunSampleField.put("INITIALRESULT", "ce_ding_zhi_chu_j");
  28. RerunSampleField.put("RERUNRESULT", "ce_ding_zhi_fu_ji");
  29. RerunSampleField.put("REPORTRESULT", "bao_gao_zhi_");
  30. RerunSampleField.put("AUDITUSER", "jian_yan_zhe_");
  31. RerunSampleField.put("REPORTTIME", "bao_gao_shi_jian_");
  32. RerunSampleField.put("RERUNMETHODNOTE", "bei_zhu_fu_jian_f");
  33. RerunSampleField.put("PATNAME", "xing_ming_");
  34. RerunSampleField.put("RERUNMETHOD", "fu_jian_fang_shi_");
  35. RerunSampleField.put("UNIT", "dan_wei_");
  36. }
  37. public void startHandleData(List<Map<String, Object>> rerunTestList) {
  38. List<Map<String, Object>> existList = ibpsRepository.qryExistData();
  39. rerunTestList = cleanExistData(rerunTestList,existList);
  40. if (rerunTestList.size() > 0) {
  41. String fieldName = null;
  42. String fieldValue = null;
  43. List<Map<String, Object>> insertList = new ArrayList<Map<String, Object>>();
  44. for (Map entityMap : rerunTestList) {
  45. Map<String, Object> insertMap = new HashMap<>();
  46. for (Object entry : entityMap.keySet()) {
  47. fieldName = null;
  48. fieldValue = null;
  49. fieldName = RerunSampleField.get(entry.toString());
  50. Object value = entityMap.get(entry.toString());
  51. fieldValue = value != null ? value.toString() : null;
  52. if (fieldName != null) {
  53. insertMap.put(fieldName, fieldValue);
  54. }
  55. }
  56. //补充其他字段信息
  57. insertMap.put("id_", entityMap.get("SAMPLECODE")+"_"+entityMap.get("ITEMCODE"));
  58. insertMap.put("shi_fou_guo_shen_", "已完成");
  59. String userInfo = ibpsRepository.getUserInfoByName(String.valueOf(entityMap.get("CREATEBY")));
  60. if (userInfo.split("\\^")[0].equals("-1")) {
  61. continue;
  62. }
  63. LocalDateTime currentDateTime = LocalDateTime.now();
  64. DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  65. String formattedDateTime = currentDateTime.format(formatter2);
  66. insertMap.put("create_by_", userInfo.split("@")[0]);
  67. insertMap.put("create_time_", Timestamp.valueOf(String.valueOf(formattedDateTime)));
  68. insertMap.put("ri_qi_", String.valueOf(entityMap.get("CREATETIME")).split(" ")[0]);
  69. insertMap.put("bian_zhi_bu_men_", userInfo.split("@")[1]);
  70. insertList.add(insertMap);
  71. }
  72. //ibpsRepository.saveToTable(insertList, "t_fjbbjlb");
  73. }
  74. }
  75. public List<Map<String, Object>> cleanExistData(List<Map<String, Object>> rerunTestList, List<Map<String, Object>> existList) {
  76. // 1. 创建Set存储existList中所有id_的值(转换为字符串形式)
  77. Set<String> existIdSet = new HashSet<>();
  78. for (Map<String, Object> existMap : existList) {
  79. Object idObj = existMap.get("id_");
  80. existIdSet.add(idObj == null ? null : idObj.toString());
  81. }
  82. // 2. 过滤rerunTestList:只保留id不在existIdSet中的元素
  83. List<Map<String, Object>> resultList = new ArrayList<>();
  84. for (Map<String, Object> testMap : rerunTestList) {
  85. Object idObj = testMap.get("SAMPLECODE")+"_"+testMap.get("ITEMCODE");
  86. String idStr = idObj == null ? null : idObj.toString();
  87. // 如果当前id不在existIdSet中,则保留
  88. if (!existIdSet.contains(idStr)) {
  89. resultList.add(testMap);
  90. }
  91. }
  92. return resultList;
  93. }
  94. }