yaozhixue 1 年之前
父节点
当前提交
9b15907c80
共有 2 个文件被更改,包括 115 次插入82 次删除
  1. 二进制
      1688833954559303681.jpeg
  2. 115 82
      src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPLeiBieServiceImpl.java

二进制
1688833954559303681.jpeg


+ 115 - 82
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPLeiBieServiceImpl.java

@@ -986,11 +986,11 @@ public class GLPPLeiBieServiceImpl implements GLPPLeiBieService {
     }
 
     private void extractedLoaclRefPPXLAddOrUpdate(List<ItfTblSplbXilieDownload> addRec, List<ItfTblSplbXilieDownload> updateRec, Brand brandRec) {
-        Boolean flag = Boolean.FALSE;
         List<SysDictRef> addSysDictRef = new ArrayList<>();
         List<SysDictRef> updateSysDictRef = new ArrayList<>();
         List<SysDictRef> oldSysDictRefRec = new ArrayList<>();
         Map<String, List<SysDictRef>> oldSysDictRefRecMap = new HashMap<>();
+        List<String> xiids = new ArrayList<>();
 
         // 提取字典对应关系
         oldSysDictRefRec =  sysDictRefService.lambdaQuery()
@@ -1003,48 +1003,20 @@ public class GLPPLeiBieServiceImpl implements GLPPLeiBieService {
         // 获取新增的
         if (addRec.size()>0){
             for (ItfTblSplbXilieDownload item : addRec){
-                SysDictRef v = new SysDictRef();
-                v.setId(UUID.randomUUID().toString());
-                v.setDictType(DictTypeEnum.DICT_TYPE_SERIES.getCode());
-                v.setDictCode(String.valueOf(item.getXiid()));
-                v.setDictValue(item.getXimc());
-                v.setSortNum(item.getPxdj());
-                v.setBrandId(brandRec.getBrandId());
-                v.setRefDictCode(String.valueOf(item.getXiid()));
-                v.setRefDictName(item.getXimc());
-                v.setCreateTime(new Date());
-                v.setCreateBy("system");
-                addSysDictRef.add(v);
+                if (oldSysDictRefRecMap.containsKey(String.valueOf(item.getXiid())) ||
+                        xiids.contains(String.valueOf(item.getXiid()))){
+                    upSysDictRef(updateSysDictRef, oldSysDictRefRecMap, item);
+                } else {
+                    addSysDictRef(brandRec, addSysDictRef, item);
+                }
+                xiids.add(String.valueOf(item.getXiid()));
             }
         }
+
         // 获取修改的
         if (updateRec.size()>0){
             for (ItfTblSplbXilieDownload item : updateRec){
-                flag = Boolean.FALSE;
-                SysDictRef v = oldSysDictRefRecMap.get(String.valueOf(item.getXiid())).get(0);
-                if (!v.getDictValue().equals(item.getXimc())){
-                    v.setDictValue(item.getXimc());
-                    flag = Boolean.TRUE;
-                }
-                if (!v.getRefDictName().equals(item.getXimc())){
-                    v.setRefDictName(item.getXimc());
-                    flag = Boolean.TRUE;
-                }
-                if (v.getSortNum() != item.getPxdj()){
-                    v.setSortNum(item.getPxdj());
-                    flag = Boolean.TRUE;
-                }
-                if (flag){
-                    v.setUpdateBy("system");
-                    v.setUpdateTime(new Date());
-                    if (item.getLastModifiedBy()!=null){
-                        v.setUpdateBy(item.getLastModifiedBy());
-                    }
-                    if (item.getLastModifiedDate()!=null){
-                        v.setUpdateTime(item.getLastModifiedDate());
-                    }
-                    updateSysDictRef.add(v);
-                }
+                upSysDictRef(updateSysDictRef, oldSysDictRefRecMap, item);
             }
         }
 
@@ -1062,12 +1034,56 @@ public class GLPPLeiBieServiceImpl implements GLPPLeiBieService {
         }
     }
 
-    private void extractedLocalPPXLAddOrUpdate(List<ItfTblSplbXilieDownload> addRec, List<ItfTblSplbXilieDownload> updateRec) {
+    private void addSysDictRef(Brand brandRec, List<SysDictRef> addSysDictRef, ItfTblSplbXilieDownload item) {
+        SysDictRef v = new SysDictRef();
+        v.setId(UUID.randomUUID().toString());
+        v.setDictType(DictTypeEnum.DICT_TYPE_SERIES.getCode());
+        v.setDictCode(String.valueOf(item.getXiid()));
+        v.setDictValue(item.getXimc());
+        v.setSortNum(item.getPxdj());
+        v.setBrandId(brandRec.getBrandId());
+        v.setRefDictCode(String.valueOf(item.getXiid()));
+        v.setRefDictName(item.getXimc());
+        v.setCreateTime(new Date());
+        v.setCreateBy("system");
+        addSysDictRef.add(v);
+    }
+
+    private void upSysDictRef(List<SysDictRef> updateSysDictRef, Map<String, List<SysDictRef>> oldSysDictRefRecMap, ItfTblSplbXilieDownload item) {
         Boolean flag = Boolean.FALSE;
+        flag = Boolean.FALSE;
+        SysDictRef v = oldSysDictRefRecMap.get(String.valueOf(item.getXiid())).get(0);
+        if (!v.getDictValue().equals(item.getXimc())){
+            v.setDictValue(item.getXimc());
+            flag = Boolean.TRUE;
+        }
+        if (!v.getRefDictName().equals(item.getXimc())){
+            v.setRefDictName(item.getXimc());
+            flag = Boolean.TRUE;
+        }
+        if (v.getSortNum() != item.getPxdj()){
+            v.setSortNum(item.getPxdj());
+            flag = Boolean.TRUE;
+        }
+        if (flag){
+            v.setUpdateBy("system");
+            v.setUpdateTime(new Date());
+            if (item.getLastModifiedBy()!=null){
+                v.setUpdateBy(item.getLastModifiedBy());
+            }
+            if (item.getLastModifiedDate()!=null){
+                v.setUpdateTime(item.getLastModifiedDate());
+            }
+            updateSysDictRef.add(v);
+        }
+    }
+
+    private void extractedLocalPPXLAddOrUpdate(List<ItfTblSplbXilieDownload> addRec, List<ItfTblSplbXilieDownload> updateRec) {
         List<SysDict> addSysDict = new ArrayList<>();
         List<SysDict> updateSysDict = new ArrayList<>();
         List<SysDict> oldSysDictRec = new ArrayList<>();
         Map<String, List<SysDict>> oldSysDictRecMap = new HashMap<>();
+        List<String> xiids = new ArrayList<>();
 
         // 提取系列字典数据  sysDictService
         oldSysDictRec =  sysDictService.lambdaQuery().eq(SysDict::getDictType,DictTypeEnum.DICT_TYPE_SERIES.getCode()).list();
@@ -1078,55 +1094,21 @@ public class GLPPLeiBieServiceImpl implements GLPPLeiBieService {
         // 获取新增的
         if (addRec.size()>0){
             for (ItfTblSplbXilieDownload item : addRec){
-                SysDict v = new SysDict();
-                v.setSysDictId(UUID.randomUUID().toString());
-                v.setDictType(DictTypeEnum.DICT_TYPE_SERIES.getCode());
-                v.setDictCode(String.valueOf(item.getXiid()));
-                v.setDictValue(item.getXimc());
-                v.setStatus(DictTypeEnum.DICT_TYPE_OFF.getCode());
-                if (item.getFlag().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
-                    v.setStatus(DictTypeEnum.DICT_TYPE_ON.getCode());
+                // oldSysDictRecMap.get(String.valueOf(item.getXiid())).get(0);
+                if (oldSysDictRecMap.containsKey(String.valueOf(item.getXiid())) ||
+                        xiids.contains(String.valueOf(item.getXiid()))){
+                    upSysDict(updateSysDict, oldSysDictRecMap, item);
+                } else {
+                    addSysDict(addSysDict, item);
                 }
-                v.setSortNum(item.getPxdj());
-                v.setParentDictCode(String.valueOf(item.getXlid()));
-                v.setParentDictType(DictTypeEnum.DICT_TYPE_SMALL_TYPE.getCode());
-                v.setCreateTime(new Date());
-                v.setFlag(DictTypeEnum.DICT_TYPE_FLAG_JY.getCode());
-                addSysDict.add(v);
+
+                xiids.add(String.valueOf(item.getXiid()));
             }
         }
         // 获取修改的
         if (updateRec.size()>0){
             for (ItfTblSplbXilieDownload item : updateRec){
-                flag = Boolean.FALSE;
-                SysDict v = oldSysDictRecMap.get(String.valueOf(item.getXiid())).get(0);
-                if (!v.getDictValue().equals(item.getXimc())){
-                    v.setDictValue(item.getXimc());
-                    flag = Boolean.TRUE;
-                }
-                // 修改的为有效
-                if (item.getFlag().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
-                    if (v.getStatus().equals(DictTypeEnum.DICT_TYPE_OFF.getCode())){
-                        v.setStatus(DictTypeEnum.DICT_TYPE_ON.getCode());
-                        flag = Boolean.TRUE;
-                    }
-                } else {
-                    if (v.getStatus().equals(DictTypeEnum.DICT_TYPE_ON.getCode())){
-                        v.setStatus(DictTypeEnum.DICT_TYPE_OFF.getCode());
-                        flag = Boolean.TRUE;
-                    }
-                }
-                if (v.getSortNum() != item.getPxdj()){
-                    v.setSortNum(item.getPxdj());
-                    flag = Boolean.TRUE;
-                }
-                if (v.getParentDictCode().equals(String.valueOf(item.getXlid()))){
-                    v.setParentDictCode(String.valueOf(item.getXlid()));
-                    flag = Boolean.TRUE;
-                }
-                if (flag){
-                    updateSysDict.add(v);
-                }
+                upSysDict(updateSysDict, oldSysDictRecMap, item);
             }
         }
 
@@ -1142,6 +1124,57 @@ public class GLPPLeiBieServiceImpl implements GLPPLeiBieService {
         }
     }
 
+    private void addSysDict(List<SysDict> addSysDict, ItfTblSplbXilieDownload item) {
+        SysDict v = new SysDict();
+        v.setSysDictId(UUID.randomUUID().toString());
+        v.setDictType(DictTypeEnum.DICT_TYPE_SERIES.getCode());
+        v.setDictCode(String.valueOf(item.getXiid()));
+        v.setDictValue(item.getXimc());
+        v.setStatus(DictTypeEnum.DICT_TYPE_OFF.getCode());
+        if (item.getFlag().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
+            v.setStatus(DictTypeEnum.DICT_TYPE_ON.getCode());
+        }
+        v.setSortNum(item.getPxdj());
+        v.setParentDictCode(String.valueOf(item.getXlid()));
+        v.setParentDictType(DictTypeEnum.DICT_TYPE_SMALL_TYPE.getCode());
+        v.setCreateTime(new Date());
+        v.setFlag(DictTypeEnum.DICT_TYPE_FLAG_JY.getCode());
+        addSysDict.add(v);
+    }
+
+    private void upSysDict(List<SysDict> updateSysDict, Map<String, List<SysDict>> oldSysDictRecMap, ItfTblSplbXilieDownload item) {
+        Boolean flag = Boolean.FALSE;
+        flag = Boolean.FALSE;
+        SysDict v = oldSysDictRecMap.get(String.valueOf(item.getXiid())).get(0);
+        if (!v.getDictValue().equals(item.getXimc())){
+            v.setDictValue(item.getXimc());
+            flag = Boolean.TRUE;
+        }
+        // 修改的为有效
+        if (item.getFlag().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
+            if (v.getStatus().equals(DictTypeEnum.DICT_TYPE_OFF.getCode())){
+                v.setStatus(DictTypeEnum.DICT_TYPE_ON.getCode());
+                flag = Boolean.TRUE;
+            }
+        } else {
+            if (v.getStatus().equals(DictTypeEnum.DICT_TYPE_ON.getCode())){
+                v.setStatus(DictTypeEnum.DICT_TYPE_OFF.getCode());
+                flag = Boolean.TRUE;
+            }
+        }
+        if (v.getSortNum() != item.getPxdj()){
+            v.setSortNum(item.getPxdj());
+            flag = Boolean.TRUE;
+        }
+        if (v.getParentDictCode().equals(String.valueOf(item.getXlid()))){
+            v.setParentDictCode(String.valueOf(item.getXlid()));
+            flag = Boolean.TRUE;
+        }
+        if (flag){
+            updateSysDict.add(v);
+        }
+    }
+
     private void extractedPPXLAddOrUpdate(List<ItfTblSplbXilieDownload> addRec, List<ItfTblSplbXilieDownload> updateRec, JSONArray jsonArray, String synTaskNo) {
         Boolean flag = Boolean.FALSE;
         List<ItfTblSplbXilieDownload> oldRec = new ArrayList<>();