Bläddra i källkod

解决历史数据清洗重复数据问题

hurugang 4 år sedan
förälder
incheckning
e93112476b
1 ändrade filer med 15 tillägg och 6 borttagningar
  1. 15 6
      src/main/java/cn/hnthyy/thmz/controller/mz/ClinicController.java

+ 15 - 6
src/main/java/cn/hnthyy/thmz/controller/mz/ClinicController.java

@@ -303,13 +303,14 @@ public class ClinicController {
             calendar.set(Calendar.SECOND, 0);
             Date beginTime = calendar.getTime();
             Date now = DateUtil.getFirstSecond();
-            Date breakDay = DateUtil.pase("2021-02-24 00:00:00", "yyyy-MM-dd HH:mm:ss");
+            Date breakDay = DateUtil.pase("2021-09-14 00:00:00", "yyyy-MM-dd HH:mm:ss");
             List<Clinic> list = new ArrayList<>();
+            Set<String> set = new HashSet<>();
             while (beginTime.before(now)) {
                 calendar.add(Calendar.DAY_OF_YEAR, 1);
                 Date endTime = calendar.getTime();
                 try {
-                    process(beginTime, endTime, list);
+                    process(beginTime, endTime, list,set);
                 } catch (Exception e) {
                     e.printStackTrace();
                     log.error("当前日期没有抓取 beginTime=" + beginTime + "----endTime=" + endTime);
@@ -335,16 +336,24 @@ public class ClinicController {
     }
 
 
-    private void process(Date beginTime, Date endTime, List<Clinic> list) {
+    private void process(Date beginTime, Date endTime, List<Clinic> list,Set<String> set) {
         List<MzVisitTable> mzVisitTableList = mzVisitTableService.queryByDateRages(beginTime, endTime, "mz_visit_table_b");
-        setClinic(list, mzVisitTableList);
+        setClinic(list, mzVisitTableList,set);
         mzVisitTableList = mzVisitTableService.queryByDateRages(beginTime, endTime, "mz_visit_table");
-        setClinic(list, mzVisitTableList);
+        setClinic(list, mzVisitTableList,set);
     }
 
-    private void setClinic(List<Clinic> list, List<MzVisitTable> mzVisitTableList) {
+    private void setClinic(List<Clinic> list, List<MzVisitTable> mzVisitTableList,Set<String> set) {
         if (mzVisitTableList != null && mzVisitTableList.size() > 0) {
+            StringBuilder sbd = new StringBuilder();
             for (MzVisitTable mzVisitTable : mzVisitTableList) {
+                sbd.setLength(0);
+                sbd.append(mzVisitTable.getPatientId()).append("_").append(mzVisitTable.getTimes());
+                String key =sbd.toString();
+                if(set.contains(key)){
+                    continue;
+                }
+                set.add(key);
                 Clinic clinic = new Clinic();
                 clinic.setPatientId(mzVisitTable.getPatientId());
                 MzPatientMi mzPatientMi = mzPatientMiService.queryByPatientId(mzVisitTable.getPatientId());