yaozhixue 1 年之前
父節點
當前提交
0aa16310af
共有 1 個文件被更改,包括 35 次插入36 次删除
  1. 35 36
      src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPGFWebsitWorkerServiceImpl.java

+ 35 - 36
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPGFWebsitWorkerServiceImpl.java

@@ -1071,19 +1071,24 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
     }
 
 
-    private void extractedAddOrUpdatebak(JSONArray jsonArray) {
+    private void extractedAddOrUpdate(JSONArray jsonArray) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String synTaskNo = publicService.getUUID();
         List<ItfTblWangdianWxgDownload> add = new ArrayList<>();
         List<ItfTblWangdianWxgDownload> update = new ArrayList<>();
         List<Long> oldRecWxgId = new ArrayList<>();
-        Map<Long, List<ItfTblWangdianWxgDownload>> oldRecMap = new HashMap<>();
+        Map<Long, ItfTblWangdianWxgDownload> oldRecMap = new HashMap<>();
         List<ItfTblWangdianWxgDownload> oldRec = new ArrayList<>();
+        String newdate = "";
+        String olddate = "";
 
         // 提取现有的数据信息
         oldRec =  itfTblWangdianWxgDownloadService.lambdaQuery().list();
         if (CollectionUtils.isNotEmpty(oldRec)){
             oldRecWxgId = oldRec.stream().map(ItfTblWangdianWxgDownload::getWxgid).collect(Collectors.toList());
-            oldRecMap = oldRec.stream().collect(Collectors.groupingBy(ItfTblWangdianWxgDownload::getWxgid));
+            oldRec.stream().forEach(event->{
+                oldRecMap.put(event.getWxgid(),event);
+            });
         }
 
         for (int i = 0; i < jsonArray.size(); i++) {
@@ -1092,9 +1097,26 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
             // 新增或修改数据
             // 修改
             if (oldRecWxgId.contains(item.getWxgid())){
-                ItfTblWangdianWxgDownload old = oldRecMap.get(item.getWxgid()).get(0);
-                MyBeanUtils.copyProperties(item,old);
-                update.add(old);
+                ItfTblWangdianWxgDownload old = oldRecMap.get(item.getWxgid());
+                // 时间比较
+                if (item.getLastModifiedDate() != null){
+                    newdate = sdf.format(item.getLastModifiedDate());
+                    olddate = sdf.format(old.getLastModifiedDate());
+                    if (newdate.compareTo(olddate)<=0){
+                        continue;
+                    }
+                } else {
+                    item.setLastModifiedDate(new Date());
+                }
+
+                item.setSynTaskNo(synTaskNo);
+                item.setSynReqTime(new Date());
+                item.setSynStatus(0);
+                item.setSynTime(new Date());
+                item.setSynTimes(0);
+                item.setSynReqId(old.getSynReqId());
+
+                update.add(item);
                 if (update.size()>1000){
                     itfTblWangdianWxgDownloadService.updateBatchById(update);
                     log.info("网点维修工基础资料信息同步更新修改了{}条数据", update.size());
@@ -1104,11 +1126,17 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
                 // 新增
                 item.setSynTaskNo(synTaskNo);
                 item.setSynReqTime(new Date());
-                item.setSynStatus(1);
+                item.setSynStatus(0);
                 item.setSynTime(new Date());
                 item.setSynTimes(0);
+                if (item.getLastModifiedDate() == null){
+                    item.setLastModifiedDate(new Date());
+                }
                 add.add(item);
 
+                oldRecWxgId.add(item.getWxgid());
+                oldRecMap.put(item.getWxgid(),item);
+
                 if (add.size()>1000){
                     itfTblWangdianWxgDownloadService.saveBatch(add);
                     log.info("网点维修工基础资料信息同步新增插入了{}条数据", add.size());
@@ -1131,33 +1159,4 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         }
     }
 
-    private void extractedAddOrUpdate(JSONArray jsonArray) {
-        String synTaskNo = publicService.getUUID();
-        List<ItfTblWangdianWxgDownload> add = new ArrayList<>();
-
-        for (int i = 0; i < jsonArray.size(); i++) {
-            JSONObject aData = jsonArray.getJSONObject(i);
-            ItfTblWangdianWxgDownload item = JSON.toJavaObject(aData,ItfTblWangdianWxgDownload.class);
-            // 新增
-            item.setSynTaskNo(synTaskNo);
-            item.setSynReqTime(new Date());
-            item.setSynStatus(0);
-            item.setSynTime(new Date());
-            item.setSynTimes(0);
-            add.add(item);
-
-            if (add.size()>1000){
-                itfTblWangdianWxgDownloadService.saveBatch(add);
-                log.info("网点维修工基础资料信息同步新增插入了{}条数据", add.size());
-                add.clear();
-            }
-        }
-
-        // 新增的插入到表
-        if (add.size()>0){
-            itfTblWangdianWxgDownloadService.saveBatch(add);
-            log.info("网点维修工基础资料信息同步新增插入了{}条数据", add.size());
-            add.clear();
-        }
-    }
 }