From fa81637f502d2b5ec775eeb49aabb610cb830fb1 Mon Sep 17 00:00:00 2001
From: hecan <1718492867@qq.com>
Date: Tue, 11 Jun 2024 09:55:44 +0800
Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=95=B0=E6=8D=AE=E6=9D=A5?=
 =?UTF-8?q?=E6=BA=90=E6=8F=92=E4=BB=B6=E7=BC=96=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../masterData/dao/IMasterDataDao.java        |  23 +++
 .../dao/impl/MasterDataDaoImpl.java           |  31 ++++
 .../service/IMasterDataOrgsService.java       |  19 +++
 .../service/IMasterDataProjectService.java    |  19 +++
 .../impl/MasterDataOrgsServiceImpl.java       | 138 ++++++++++++++++++
 .../impl/MasterDataProjectServiceImpl.java    | 132 +++++++++++++++++
 6 files changed, 362 insertions(+)
 create mode 100644 service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/IMasterDataDao.java
 create mode 100644 service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/impl/MasterDataDaoImpl.java
 create mode 100644 service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/IMasterDataOrgsService.java
 create mode 100644 service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/IMasterDataProjectService.java
 create mode 100644 service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/impl/MasterDataOrgsServiceImpl.java
 create mode 100644 service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/impl/MasterDataProjectServiceImpl.java

diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/IMasterDataDao.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/IMasterDataDao.java
new file mode 100644
index 00000000..8fb8ce73
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/IMasterDataDao.java
@@ -0,0 +1,23 @@
+package com.hzya.frame.sysnew.comparison.masterData.dao;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.hzya.frame.basedao.service.IBaseService;
+import com.hzya.frame.sysnew.comparison.entity.ComparisonEntity;
+
+import java.util.HashMap;
+import java.util.List;
+
+public interface IMasterDataDao extends IBaseService<ComparisonEntity, String> {
+
+
+    /**
+     *
+     * @content 查询U8C档案
+     * @Param
+     * @Return
+     * @Author hecan
+     * @Date 2024/6/6 11:56
+     * **/
+    @DS("swu8c")
+    List<HashMap<String, Object>> queryArchives(String str);
+}
diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/impl/MasterDataDaoImpl.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/impl/MasterDataDaoImpl.java
new file mode 100644
index 00000000..ad9f3588
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/impl/MasterDataDaoImpl.java
@@ -0,0 +1,31 @@
+package com.hzya.frame.sysnew.comparison.masterData.dao.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.hzya.frame.basedao.service.impl.BaseService;
+import com.hzya.frame.execsql.service.IExecSqlService;
+import com.hzya.frame.sysnew.comparison.entity.ComparisonEntity;
+import com.hzya.frame.sysnew.comparison.masterData.dao.IMasterDataDao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+import java.util.HashMap;
+import java.util.List;
+
+@Repository(value = "masterDataDaoImpl")
+public class MasterDataDaoImpl extends BaseService<ComparisonEntity, String> implements IMasterDataDao {
+
+    @Autowired
+    private IExecSqlService execSqlService;
+
+    @DS("swu8c")
+    @Override
+    public List<HashMap<String, Object>> queryArchives(String str) {
+        try {
+            List<HashMap<String, Object>> hashMaps = execSqlService.execSelectSql(str, "");
+            return hashMaps;
+        }catch (Exception e){
+            logger.info("U8C主数据档案用户档案没有需要同步中台的数据");
+            return null;
+        }
+    }
+}
diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/IMasterDataOrgsService.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/IMasterDataOrgsService.java
new file mode 100644
index 00000000..1e08f408
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/IMasterDataOrgsService.java
@@ -0,0 +1,19 @@
+package com.hzya.frame.sysnew.comparison.masterData.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.hzya.frame.basedao.service.IBaseService;
+import com.hzya.frame.sysnew.comparison.entity.ComparisonEntity;
+import com.hzya.frame.web.entity.JsonResultEntity;
+
+public interface IMasterDataOrgsService extends IBaseService<ComparisonEntity, String> {
+      /**
+       * 
+       * @content 查询组织档案
+       * @Param 
+       * @Return 
+       * @Author hecan 
+       * @Date 2024/6/4 16:57
+       * **/
+        JsonResultEntity queryOrgsArchives(JSONObject jsonObject);
+
+}
diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/IMasterDataProjectService.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/IMasterDataProjectService.java
new file mode 100644
index 00000000..6b6799c1
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/IMasterDataProjectService.java
@@ -0,0 +1,19 @@
+package com.hzya.frame.sysnew.comparison.masterData.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.hzya.frame.basedao.service.IBaseService;
+import com.hzya.frame.sysnew.comparison.entity.ComparisonEntity;
+import com.hzya.frame.web.entity.JsonResultEntity;
+
+public interface IMasterDataProjectService extends IBaseService<ComparisonEntity, String> {
+
+        /**
+         *
+         * @content 查询项目档案
+         * @Param
+         * @Return
+         * @Author hecan
+         * @Date 2024/6/6 16:10
+         * **/
+        JsonResultEntity queryProjectArchives(JSONObject jsonObject);
+}
diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/impl/MasterDataOrgsServiceImpl.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/impl/MasterDataOrgsServiceImpl.java
new file mode 100644
index 00000000..c6fe35a5
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/impl/MasterDataOrgsServiceImpl.java
@@ -0,0 +1,138 @@
+package com.hzya.frame.sysnew.comparison.masterData.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.hzya.frame.basedao.service.impl.BaseService;
+import com.hzya.frame.dateutil.DateUtil;
+import com.hzya.frame.mdm.mdmModuleSource.dao.impl.MdmModuleSourceDaoImpl;
+import com.hzya.frame.mdm.mdmModuleSource.entity.MdmModuleSourceEntity;
+import com.hzya.frame.sysnew.comparison.entity.ComparisonEntity;
+import com.hzya.frame.sysnew.comparison.masterData.dao.impl.MasterDataDaoImpl;
+import com.hzya.frame.sysnew.comparison.masterData.service.IMasterDataOrgsService;
+import com.hzya.frame.sysnew.comparison.masterData.service.IMasterDataProjectService;
+import com.hzya.frame.sysnew.comparison.service.impl.ComparisonServiceImpl;
+import com.hzya.frame.web.entity.BaseResult;
+import com.hzya.frame.web.entity.JsonResultEntity;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+@Service("masterDataOrgsServiceImpl")
+public class MasterDataOrgsServiceImpl extends BaseService<ComparisonEntity, String>  implements IMasterDataOrgsService {
+
+   @Autowired
+    private MasterDataDaoImpl masterDataDaoImpl;
+   @Autowired
+   private ComparisonServiceImpl comparisonServiceimpl;
+   @Autowired
+   private MdmModuleSourceDaoImpl mdmModuleSourceDaoImpl;
+
+    private String ts = "";
+    //查询用户档案并同步中台
+    @Override
+    public JsonResultEntity queryOrgsArchives(JSONObject json) {
+        JSONObject jsonObject = json.getJSONObject("jsonStr");
+        //查询主数据来源表,根据来源类型为插件得进行分类,获取来源名称和编码
+        List<MdmModuleSourceEntity> list = mdmModuleSourceDaoImpl.MdmModuleSourceentityGroupByType();
+        if (CollectionUtils.isEmpty(list)) {
+            logger.info("数据来源表中没有类型为插件得数据,无法获取来源名称和来源编码");
+            return BaseResult.getFailureMessageEntity("数据来源表无插件类型");
+        }
+        for (MdmModuleSourceEntity mdmModuleSourceEntity : list) {
+            //此处应该根据来源编码进行case ,暂时测试使用U8C
+        switch (mdmModuleSourceEntity.getPluginCode()) {
+            case "MdmOrgPlugin":
+                if (null == ts || "".equals(ts)) {
+                    ts = DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss");
+                }
+                ts = "'" + ts + "'";
+                StringBuffer stringBuffer = new StringBuffer();
+                stringBuffer.append("select pk_corp as id,unitcode as org_code,unitname as org_name,");
+                stringBuffer.append("saleaddr as org_address,countryarea as org_countryzone,memo as org_memo,");
+                stringBuffer.append("industry as org_ncindustry,fathercorp as org_fatherorg,legalbodycode as org_principal,");
+                stringBuffer.append("phone1 as org_tel from bd_corp where dr='0' and ts>"+ts);
+                try {
+                    List<HashMap<String, Object>> hashMaps = masterDataDaoImpl.queryArchives(stringBuffer.toString());
+                    logger.info("查询出来的值为:{}",hashMaps);
+                    if (null != hashMaps && hashMaps.size() > 0) {
+                        ParametricAssembly(mdmModuleSourceEntity,hashMaps,"10001");
+                    } else {
+                        logger.info("U8C主数据档案组织档案没有需要同步中台的数据");
+                        return null;
+                    }
+                } catch (Exception e) {
+                    logger.info("查询主数据档案组织档案错误:{}", e.getMessage());
+                }
+                break;
+            default:
+                break;
+        }
+    }
+            return BaseResult.getSuccessMessageEntity("组织档案同步成功");
+        }
+
+
+
+
+
+    //查询档案参数组装
+    private void ParametricAssembly(MdmModuleSourceEntity mdmModuleSourceEntity,List<HashMap<String, Object>>  hashMaps,String mdmCode){
+            for (HashMap<String, Object> hashMap : hashMaps) {
+                JSONObject jsonObjectUser = new JSONObject();
+                JSONObject jsonStr = new JSONObject();
+                jsonObjectUser.put("id", hashMap.get("id"));
+                jsonObjectUser.put("mdmCode", mdmCode);
+                jsonStr.put("jsonStr", jsonObjectUser);
+                //先查询编码和名称查询是否存在
+                JsonResultEntity jsonResultEntity = comparisonServiceimpl.queryEntityPage(jsonStr);
+                Object attribute = jsonResultEntity.getAttribute();
+                logger.info("得到的attribute值为:{}", attribute);
+                JSONObject jsonObjectAttribute = (JSONObject) JSON.toJSON(attribute);
+                JSONArray jsonArrayList = jsonObjectAttribute.getJSONArray("list");
+                //如果jsonArrayList为null,说明没有值,在表中不存在
+                if (jsonArrayList == null || jsonArrayList.size() == 0) {
+                    //将查询出来得数据调用通用接口新增,保存到表中
+                    JSONObject main = new JSONObject();
+                    for(String key:hashMap.keySet()) {
+                        main.put(key, hashMap.get(key));
+                    }
+                    jsonObjectUser.put("main", main);
+                    jsonObjectUser.put("sourceName",mdmModuleSourceEntity.getSourceName());
+                    jsonObjectUser.put("code",mdmModuleSourceEntity.getSourceCode());
+                    jsonObjectUser.put("optionName", "数智中台");
+                    jsonStr.put("jsonStr", jsonObjectUser);
+                    try {
+                         comparisonServiceimpl.saveEntity(jsonStr);
+                    } catch (Exception e) {
+                        logger.info("U8C主数据档案新增档案失败,失败原因:{}",e.getMessage());
+                    }
+                } else {
+                    for (Object o : jsonArrayList) {
+                        JSONObject jsonObjectUpdate = JSON.parseObject(String.valueOf(o));
+                        String id = jsonObjectUpdate.getString("id");
+                        JSONObject main = new JSONObject();
+                        for(String key:hashMap.keySet()) {
+                            main.put(key, hashMap.get(key));
+                            main.put("id",id);
+                        }
+                        jsonObjectUser.put("main", main);
+                        jsonObjectUser.put("sourceName",mdmModuleSourceEntity.getSourceName());
+                        jsonObjectUser.put("code",mdmModuleSourceEntity.getSourceCode());
+                        jsonObjectUser.put("optionName", "数智中台");
+                        jsonStr.put("jsonStr", jsonObjectUser);
+                        try {
+                            comparisonServiceimpl.updateEntity(jsonStr);
+                        } catch (Exception e) {
+                            logger.info("U8C主数据档案更新档案失败,失败原因:{}", e.getMessage());
+                        }
+                    }
+                }
+            }
+    }
+
+}
diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/impl/MasterDataProjectServiceImpl.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/impl/MasterDataProjectServiceImpl.java
new file mode 100644
index 00000000..a0f39bd0
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/service/impl/MasterDataProjectServiceImpl.java
@@ -0,0 +1,132 @@
+package com.hzya.frame.sysnew.comparison.masterData.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.hzya.frame.basedao.service.impl.BaseService;
+import com.hzya.frame.dateutil.DateUtil;
+import com.hzya.frame.mdm.mdmModuleSource.dao.impl.MdmModuleSourceDaoImpl;
+import com.hzya.frame.mdm.mdmModuleSource.entity.MdmModuleSourceEntity;
+import com.hzya.frame.sysnew.comparison.entity.ComparisonEntity;
+import com.hzya.frame.sysnew.comparison.masterData.dao.impl.MasterDataDaoImpl;
+import com.hzya.frame.sysnew.comparison.masterData.service.IMasterDataProjectService;
+import com.hzya.frame.sysnew.comparison.service.impl.ComparisonServiceImpl;
+import com.hzya.frame.web.entity.BaseResult;
+import com.hzya.frame.web.entity.JsonResultEntity;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+@Service("masterDataProjectServiceImpl")
+public class MasterDataProjectServiceImpl extends BaseService<ComparisonEntity, String>  implements IMasterDataProjectService {
+
+   @Autowired
+    private MasterDataDaoImpl masterDataDaoImpl;
+   @Autowired
+   private ComparisonServiceImpl comparisonServiceimpl;
+   @Autowired
+   private MdmModuleSourceDaoImpl mdmModuleSourceDaoImpl;
+
+    private String ts = "";
+
+    //同步项目档案
+    public JsonResultEntity queryProjectArchives(JSONObject json){
+        JSONObject jsonObject = json.getJSONObject("jsonStr");
+        //查询主数据来源表,根据来源类型为插件得进行分类,获取来源名称和编码
+        List<MdmModuleSourceEntity> list = mdmModuleSourceDaoImpl.MdmModuleSourceentityGroupByType();
+        if (CollectionUtils.isEmpty(list)) {
+            logger.info("数据来源表中没有类型为插件得数据,无法获取来源名称和来源编码");
+            return BaseResult.getFailureMessageEntity("数据来源表无插件类型");
+        }
+        for (MdmModuleSourceEntity mdmModuleSourceEntity : list) {
+            //此处应该根据来源编码进行case ,暂时测试使用U8C
+            switch (mdmModuleSourceEntity.getPluginCode()) {
+                case "MdmProjectPlugin":
+                    if (null == ts || "".equals(ts)) {
+                        ts = DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss");
+                    }
+                    ts = "'" + ts + "'";
+                    StringBuffer stringBuffer = new StringBuffer();
+                    stringBuffer.append("select pk_jobbasfil as id,jobcode as project_code, jobname as project_name from bd_jobbasfil where dr='0' and ts>" + ts);
+                    try {
+                        List<HashMap<String, Object>> hashMaps = masterDataDaoImpl.queryArchives(stringBuffer.toString());
+                        logger.info("查询出来的值为:{}",hashMaps);
+                        if (null != hashMaps && hashMaps.size() > 0) {
+                          ParametricAssembly(mdmModuleSourceEntity,hashMaps,"10002");
+                        } else {
+                            logger.info("U8C主数据档案项目档案没有需要同步中台的数据");
+                            return null;
+                        }
+                    } catch (Exception e) {
+                        logger.info("查询主数据档案项目档案错误:{}", e.getMessage());
+                    }
+                    break;
+                default:
+                    break;
+            }
+        }
+        return BaseResult.getSuccessMessageEntity("项目档案同步成功");
+    }
+
+
+    //查询档案参数组装
+    public JsonResultEntity ParametricAssembly(MdmModuleSourceEntity mdmModuleSourceEntity,List<HashMap<String, Object>>  hashMaps,String mdmCode){
+            for (HashMap<String, Object> hashMap : hashMaps) {
+                JSONObject jsonObjectUser = new JSONObject();
+                JSONObject jsonStr = new JSONObject();
+                jsonObjectUser.put("id", hashMap.get("id"));
+                jsonObjectUser.put("mdmCode", mdmCode);
+                jsonStr.put("jsonStr", jsonObjectUser);
+                //先查询编码和名称查询是否存在
+                JsonResultEntity jsonResultEntity = comparisonServiceimpl.queryEntityPage(jsonStr);
+                Object attribute = jsonResultEntity.getAttribute();
+                logger.info("得到的attribute值为:{}", attribute);
+                JSONObject jsonObjectAttribute = (JSONObject) JSON.toJSON(attribute);
+                JSONArray jsonArrayList = jsonObjectAttribute.getJSONArray("list");
+                //如果jsonArrayList为null,说明没有值,在表中不存在
+                if (jsonArrayList == null || jsonArrayList.size() == 0) {
+                    //将查询出来得数据调用通用接口新增,保存到表中
+                    JSONObject main = new JSONObject();
+                    for(String key:hashMap.keySet()) {
+                        main.put(key, hashMap.get(key));
+                    }
+                    jsonObjectUser.put("main", main);
+                    jsonObjectUser.put("sourceName",mdmModuleSourceEntity.getSourceName());
+                    jsonObjectUser.put("code",mdmModuleSourceEntity.getSourceCode());
+                    jsonObjectUser.put("optionName", "数智中台");
+                    jsonStr.put("jsonStr", jsonObjectUser);
+                    try {
+                         comparisonServiceimpl.saveEntity(jsonStr);
+                    } catch (Exception e) {
+                        logger.info("U8C主数据档案新增用户档案失败,失败原因:{}",e.getMessage());
+                    }
+                } else {
+                    for (Object o : jsonArrayList) {
+                        JSONObject jsonObjectUpdate = JSON.parseObject(String.valueOf(o));
+                        String id = jsonObjectUpdate.getString("id");
+                        JSONObject main = new JSONObject();
+                        for(String key:hashMap.keySet()) {
+                            main.put(key, hashMap.get(key));
+                            main.put("id",id);
+                        }
+                        jsonObjectUser.put("main", main);
+                        jsonObjectUser.put("sourceName",mdmModuleSourceEntity.getSourceName());
+                        jsonObjectUser.put("code",mdmModuleSourceEntity.getSourceCode());
+                        jsonObjectUser.put("optionName", "数智中台");
+                        jsonStr.put("jsonStr", jsonObjectUser);
+                        try {
+                             comparisonServiceimpl.updateEntity(jsonStr);
+                        } catch (Exception e) {
+                            logger.info("U8C主数据档案更新用户档案失败,失败原因:{}", e.getMessage());
+                        }
+                    }
+                }
+            }
+            return null;
+    }
+
+}