Browse Source

feature(人员和机构数据同步): 人员和机构数据同步

人员和机构数据同步
mazq 4 years ago
parent
commit
f6f4e738f9

+ 42 - 4
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/facade/DataResourceFacade.java

@@ -22,6 +22,7 @@ import com.dragonsoft.duceap.commons.util.UUIDUtils;
 import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
 import com.google.common.base.Joiner;
 import com.google.common.collect.Lists;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -34,6 +35,7 @@ import java.util.stream.Collectors;
 /**
  * Created by lidr on 2021/4/14
  */
+@Slf4j
 @RestController
 @RequestMapping(value = "/dcuc/app/dataResourceFacade")
 public class DataResourceFacade implements IDataResourceFacade {
@@ -292,27 +294,63 @@ public class DataResourceFacade implements IDataResourceFacade {
 
     @Override
     public ResponseStatus dataLevelSync() {
-        CompletableFuture.supplyAsync(this::getDataLevelListFromRemote).thenAccept((list)->dataLevelService.sync(list));
+        CompletableFuture
+                .supplyAsync(this::getDataLevelListFromRemote)
+                .exceptionally(e->{
+                    log.error("getDataLevelListFromRemote error.",e);
+                    return new ArrayList<>();
+                })
+                .thenAccept((list)->dataLevelService.sync(list))
+                .exceptionally(e->{
+                    log.error("sync error.",e);
+                    return null;
+                });
         return ResponseStatus.success();
     }
 
     @Override
     public ResponseStatus dataSecSync() {
-        CompletableFuture.supplyAsync(this::getSecurityLevelListFromRemote).thenAccept((list)->dataSecService.sync(list));
+        CompletableFuture
+                .supplyAsync(this::getSecurityLevelListFromRemote)
+                .exceptionally(e->{
+                    log.error("getSecurityLevelListFromRemote error.",e);
+                    return new ArrayList<>();
+                })
+                .thenAccept((list)->dataSecService.sync(list))
+                .exceptionally(e->{
+                            log.error("sync error.",e);
+                            return null;
+                        });
         return ResponseStatus.success();
     }
 
     @Override
     public ResponseStatus dataClaSync() {
         CompletableFuture.supplyAsync(this::getDataClassifyTreeFromRemote)
-                .thenAccept((nodes)-> dataClaService.sync(nodes, null));
+                .exceptionally(e->{
+                    log.error("getDataClassifyTreeFromRemote error.",e);
+                    return new ArrayList<>();
+                })
+                .thenAccept((nodes)-> dataClaService.sync(nodes, null))
+                .exceptionally(e->{
+                    log.error("sync error.",e);
+                    return null;
+                });
         return ResponseStatus.success();
     }
 
     @Override
     public ResponseStatus fieldClaSync() {
         CompletableFuture.supplyAsync(this::getFieldClassifyTreeFromRemote)
-                .thenAccept((nodes)-> fieldClaService.sync(nodes, null));
+                .exceptionally(e->{
+                    log.error("getFieldClassifyTreeFromRemote error.",e);
+                    return new ArrayList<>();
+                })
+                .thenAccept((nodes)-> fieldClaService.sync(nodes, null))
+                .exceptionally(e->{
+                    log.error("sync error.",e);
+                    return null;
+                });
         return ResponseStatus.success();
     }
 

+ 4 - 8
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/sub/service/impl/DataClaServiceImpl.java

@@ -172,11 +172,7 @@ public class DataClaServiceImpl implements IDataClaService {
 
         }
         queryWrapper.eq(DataCla::getLevel, dataClaTypeEnum.getLevel());
-        DataCla dataCla = dataClaMapper.selectOne(queryWrapper);
-        if(null == dataCla) {
-            return new DataCla();
-        }
-        return dataCla;
+        return dataClaMapper.selectOne(queryWrapper);
     }
 
     @Override
@@ -376,13 +372,13 @@ public class DataClaServiceImpl implements IDataClaService {
         if(StringUtils.isNotBlank(path)) {
             String[] idArr = path.split(CommonCons.PATH_SEP);
             length = idArr.length + 1;
-            if(length >= CommonCons.PATH_LEVEL_THIR) {
+            if(length > CommonCons.PATH_LEVEL_THIR) {
                 dataCla.setLabClaId(idArr[2]);
             }
-            if(length >= CommonCons.PATH_LEVEL_SEC) {
+            if(length > CommonCons.PATH_LEVEL_SEC) {
                 dataCla.setSecId(idArr[1]);
             }
-            if(length >= CommonCons.PATH_LEVEL_FIR) {
+            if(length > CommonCons.PATH_LEVEL_FIR) {
                 dataCla.setFirId(idArr[0]);
             }
         }

+ 8 - 4
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/sub/service/impl/DataLevelServiceImpl.java

@@ -133,17 +133,21 @@ public class DataLevelServiceImpl implements IDataLevelService {
 
     @Override
     public void sync(List<DataLevelVo> list) {
+        if(CollectionUtils.isEmpty(list)) {
+            return;
+        }
         //根据code去重
         Map<String, DataLevelVo> collect = Optional.ofNullable(list).orElse(new ArrayList<>())
                 .stream()
                 .collect(Collectors.toMap(DataLevelVo::getLevelCode, item -> item, (old, last) -> last));
         List<DataLevelVo> vos = new ArrayList<>(collect.values());
-        vos.forEach(item->{
+        for (DataLevelVo vo : vos) {
             DataLevel dataLevel = new DataLevel();
-            BeanUtils.copyProperties(item, dataLevel);
-            dataLevel.setDataType(item.getTypeCode());
+            BeanUtils.copyProperties(vo, dataLevel);
+            dataLevel.setDataType(vo.getTypeCode());
             saveByCode(dataLevel);
-        });
+        }
+
     }
 
     @Override

+ 9 - 5
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/sub/service/impl/DataSecServiceImpl.java

@@ -136,18 +136,22 @@ public class DataSecServiceImpl implements IDataSecService {
 
     @Override
     public void sync(List<DataLevelVo> list) {
+        if(CollectionUtils.isEmpty(list)) {
+            return;
+        }
         //根据code去重
         Map<String, DataLevelVo> collect = Optional.ofNullable(list).orElse(new ArrayList<>())
                 .stream()
                 .collect(Collectors.toMap(DataLevelVo::getLevelCode, item -> item, (old, last) -> last));
         List<DataLevelVo> vos = new ArrayList<>(collect.values());
-        vos.forEach(item -> {
+        for (DataLevelVo vo : vos) {
             DataSec dataSec = new DataSec();
-            dataSec.setSecCode(item.getLevelCode());
-            dataSec.setSecName(item.getLevelName());
-            dataSec.setDataType(item.getTypeCode());
+            dataSec.setSecCode(vo.getLevelCode());
+            dataSec.setSecName(vo.getLevelName());
+            dataSec.setDataType(vo.getTypeCode());
             saveByCode(dataSec);
-        });
+        }
+
     }
 
     @Override

+ 0 - 3
dcuc-app-service/src/main/java/com/dragoninfo/dcuc/app/sub/service/impl/FieldClaServiceImpl.java

@@ -131,9 +131,6 @@ public class FieldClaServiceImpl implements IFieldClaService {
         }
         queryWrapper.eq(FieldCla::getLevel, fieldClaTypeEnum.getLevel());
         FieldCla fieldCla = fieldClaMapper.selectOne(queryWrapper);
-        if(null == fieldCla) {
-            return  new FieldCla();
-        }
         return fieldCla;
     }