wanghongzhi 1 рік тому
батько
коміт
17f3578478

+ 52 - 0
easydo-chengfa/src/main/java/easydo/technology/controller/TestController.java

@@ -4,6 +4,7 @@ import java.sql.Connection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -15,6 +16,7 @@ import easydo.technology.exception.BizException;
 import easydo.technology.model.*;
 import easydo.technology.model.vo.GLDContract;
 import easydo.technology.service.GLDCostService;
+import easydo.technology.system.domain.SysDept;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.web.bind.annotation.*;
 
@@ -102,7 +104,57 @@ public class TestController {
     @WebLog
     @RequestMapping(value = "/getPage")
     public Object getPage() throws Exception {
+        Connection connection = null;
+        try {
+            connection = dataSource.getConnection();
+            connection.setAutoCommit(false);
 
+            List<GldMdmProject> existGLDList = jdbcClient.getJdbcList(new HashMap<>(), GldMdmProject.class, connection);
+            List<ProjectInfo> existProjList = jdbcClient.getJdbcList(new HashMap<>(), ProjectInfo.class, connection);
+            List<GldMdmProject> list = gldMasterService.getGetMDMProject();
+            for (GldMdmProject model : list) {
+                List<GldMdmProject> filterList = existGLDList.stream().filter(exist -> model.getId().equals(exist.getId()))
+                        .collect(Collectors.toList());
+                if (filterList.size() > 0) {
+                    jdbcClient.jdbcUpdateById(model, connection);
+                } else {
+                    jdbcClient.jdbcInsert(model, connection);
+                }
+                List<ProjectInfo> filterProjList = existProjList.stream()
+                        .filter(exist -> model.getId().equals(exist.getId())).collect(Collectors.toList());
+                ProjectInfo info = new ProjectInfo();
+                info.setId(model.getId());
+                info.setProjectName(model.getProjectName());
+                info.setProjectNo(model.getProjectCode());
+                if (StringUtil.isNotEmpty(model.getStatus()) && "1".equals(model.getStatus())) {
+                    info.setProjectStatus("active");
+                } else {
+                    info.setProjectStatus("inactive");
+                }
+                info.setGldProjectId(model.getGlodonProjectId());
+
+                SysDept dept = new SysDept();
+                dept.setCode(model.getProjectBelongingUnit());
+                dept = jdbcClient.getJdbcModel(dept, connection);
+                if (StringUtil.isEmpty(dept.getDeptId())) {
+                    info.setDeptId((long) 1);
+                } else {
+                    info.setDeptId(dept.getDeptId());
+                }
+
+                if (filterProjList.size() > 0) {
+                    jdbcClient.jdbcUpdateById(info, connection);
+                } else {
+                    jdbcClient.jdbcInsert(info, connection);
+                }
+            }
+            connection.commit();
+        } catch (Exception e) {
+            connection.rollback();
+            throw e;
+        } finally {
+            jdbcClient.finallyExecute(connection);
+        }
         return "success";
     }
 

+ 38 - 0
easydo-chengfa/src/main/java/easydo/technology/model/GldMdmProject.java

@@ -0,0 +1,38 @@
+package easydo.technology.model;
+
+import lombok.Data;
+
+@Data
+public class GldMdmProject {
+    private Long id;
+    //资金来源
+    private String sourceOfFunds;
+    //总投资额(万元)
+    private String reserveProjects;
+    //项目来源系统
+    private String sourceSystem;
+    //项目名称
+    private String projectName;
+    //项目编号
+    private String projectCode;
+    //是否储备项目
+    private String storeProject;
+    //项目所属单位
+    private String projectBelongingUnit;
+    //面积(平方米)
+    private String size;
+    //项目分类名称
+    private String projectCategorizationName;
+    //来源系统项目编码
+    private String sourceSystemCode;
+    //是否纳入新区固投计划
+     private String yesOrNo;
+    //数据状态
+    private String status;
+    //项目分类代码
+    private String projectCategorizationCode;
+    //广联达系统项目id
+    private Long glodonProjectId;
+
+    private String createTime;
+}

+ 1 - 1
easydo-chengfa/src/main/java/easydo/technology/model/ProjectInfo.java

@@ -16,7 +16,7 @@ public class ProjectInfo {
     private String licenceAuthority;
     private String projectStatus;
     private String projectScale;
-    private Integer projectMoney;
+    private String projectMoney;
     private String remark;
     private Long gldProjectId;
 }

+ 52 - 58
easydo-chengfa/src/main/java/easydo/technology/quartz/task/JobTask.java

@@ -108,65 +108,59 @@ public class JobTask {
         }
     }
 
-    // TODO: 2024-9-25 从广联达获取mdm项目
     protected void pullProjectFromGldMaster() throws Exception {
-//        Connection connection = null;
-//        try {
-//            connection = dataSource.getConnection();
-//            connection.setAutoCommit(false);
-//
-//            List<GldProject> existGLDList = jdbcClient.getJdbcList(new HashMap<>(), GldProject.class, connection);
-//            List<ProjectInfo> existProjList = jdbcClient.getJdbcList(new HashMap<>(), ProjectInfo.class, connection);
-//            List<GldProject> list = gldMasterService.getGetProject();
-//            for (GldProject model : list) {
-//                List<GldProject> filterList = existGLDList.stream().filter(exist -> model.getId().equals(exist.getId()))
-//                        .collect(Collectors.toList());
-//                if (filterList.size() > 0) {
-//                    jdbcClient.jdbcUpdateById(model, connection);
-//                } else {
-//                    jdbcClient.jdbcInsert(model, connection);
-//                }
-//                List<ProjectInfo> filterProjList = existProjList.stream()
-//                        .filter(exist -> model.getId().equals(exist.getId())).collect(Collectors.toList());
-//                ProjectInfo info = new ProjectInfo();
-//                info.setId(model.getId());
-//                info.setProjectAddr(model.getAddress());
-//                info.setProjectName(model.getProjectName());
-//                info.setProjectNo(model.getCode());
-//                if (model.getActive()) {
-//                    info.setProjectStatus("active");
-//                } else {
-//                    info.setProjectStatus("inactive");
-//                }
-//                info.setGldProjectId(null);
-//                GldDept gldDept = new GldDept();
-//                gldDept.setId(model.getDeptId());
-//                gldDept = jdbcClient.getJdbcModel(gldDept, connection);
-//                if (StringUtil.isEmpty(gldDept.getCode())) {
-//                    continue;
-//                }
-//                SysDept dept = new SysDept();
-//                dept.setCode(gldDept.getCode());
-//                dept = jdbcClient.getJdbcModel(dept, connection);
-//                if (StringUtil.isEmpty(dept.getDeptId())) {
-//                    info.setDeptId((long) 1);
-//                } else {
-//                    info.setDeptId(dept.getDeptId());
-//                }
-//
-//                if (filterProjList.size() > 0) {
-//                    jdbcClient.jdbcUpdateById(info, connection);
-//                } else {
-//                    jdbcClient.jdbcInsert(info, connection);
-//                }
-//            }
-//            connection.commit();
-//        } catch (Exception e) {
-//            connection.rollback();
-//            throw e;
-//        } finally {
-//            jdbcClient.finallyExecute(connection);
-//        }
+        Connection connection = null;
+        try {
+            connection = dataSource.getConnection();
+            connection.setAutoCommit(false);
+
+            List<GldMdmProject> existGLDList = jdbcClient.getJdbcList(new HashMap<>(), GldMdmProject.class, connection);
+            List<ProjectInfo> existProjList = jdbcClient.getJdbcList(new HashMap<>(), ProjectInfo.class, connection);
+            List<GldMdmProject> list = gldMasterService.getGetMDMProject();
+            for (GldMdmProject model : list) {
+                List<GldMdmProject> filterList = existGLDList.stream().filter(exist -> model.getId().equals(exist.getId()))
+                        .collect(Collectors.toList());
+                if (filterList.size() > 0) {
+                    jdbcClient.jdbcUpdateById(model, connection);
+                } else {
+                    jdbcClient.jdbcInsert(model, connection);
+                }
+                List<ProjectInfo> filterProjList = existProjList.stream()
+                        .filter(exist -> model.getProjectCode().equals(exist.getProjectNo())).collect(Collectors.toList());
+                ProjectInfo info = new ProjectInfo();
+                info.setProjectName(model.getProjectName());
+                info.setProjectNo(model.getProjectCode());
+                if (StringUtil.isNotEmpty(model.getStatus())&&"1".equals(model.getStatus())) {
+                    info.setProjectStatus("active");
+                } else {
+                    info.setProjectStatus("inactive");
+                }
+                info.setGldProjectId(model.getGlodonProjectId());
+
+                SysDept dept = new SysDept();
+                dept.setCode(model.getProjectBelongingUnit());
+                dept = jdbcClient.getJdbcModel(dept, connection);
+                if (StringUtil.isEmpty(dept.getDeptId())) {
+                    info.setDeptId((long) 1);
+                } else {
+                    info.setDeptId(dept.getDeptId());
+                }
+
+                if (filterProjList.size() > 0) {
+                    info.setId(filterProjList.get(0).getId());
+                    jdbcClient.jdbcUpdateById(info, connection);
+                } else {
+                    info.setId((long)0);
+                    jdbcClient.jdbcInsert(info, connection);
+                }
+            }
+            connection.commit();
+        } catch (Exception e) {
+            connection.rollback();
+            throw e;
+        } finally {
+            jdbcClient.finallyExecute(connection);
+        }
     }
 
     protected void pullTenantFromGldMaster() throws Exception {

+ 26 - 4
easydo-chengfa/src/main/java/easydo/technology/service/GLDMasterService.java

@@ -10,6 +10,7 @@ import java.util.concurrent.TimeUnit;
 
 import javax.annotation.Resource;
 
+import easydo.technology.model.*;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
@@ -18,10 +19,6 @@ import com.alibaba.fastjson.JSONObject;
 
 import easydo.technology.enums.RedisKeyEnum;
 import easydo.technology.exception.BizException;
-import easydo.technology.model.GldDept;
-import easydo.technology.model.GldMember;
-import easydo.technology.model.GldProject;
-import easydo.technology.model.GldTenant;
 import easydo.technology.util.HttpClientUtil;
 import easydo.technology.utils.RedisUtils;
 import easydo.technology.utils.StringUtil;
@@ -42,6 +39,8 @@ public class GLDMasterService {
     private String masterGetProject;
     @Value("${GLD.MASTER.getTenant}")
     private String masterGetTenant;
+    @Value("${GLD.MASTER.getMDMProject}")
+    private String masterGetMDMProject;
     @Value("${GLD.MASTER.authorization}")
     private String masterAuthorization;
     @Value("${tenantId_gld_master}")
@@ -116,6 +115,7 @@ public class GLDMasterService {
         return list;
     }
 
+    @Deprecated
     public List<GldProject> getGetProject() throws Exception {
         String token = getGetToken();
         if (StringUtil.isEmpty(token)) {
@@ -138,6 +138,28 @@ public class GLDMasterService {
         return list;
     }
 
+    public List<GldMdmProject> getGetMDMProject() throws Exception {
+        String token = getGetToken();
+        if (StringUtil.isEmpty(token)) {
+            throw new BizException("获取gld_token异常");
+        }
+        String url = masterHost + masterGetMDMProject;
+        Map<String, String> header = new HashMap<>();
+        header.put("Authorization", "Bearer " + token);
+        header.put("X-CORAL-TENANT", tenantId);
+        JSONObject resObj = HttpClientUtil.sendGETWithHeader_Obj(url, header);
+        log.info("查询广联达主数据项目的res======>" + resObj.toJSONString());
+        List<GldMdmProject> list = new ArrayList<>();
+        for (Object obj : resObj.getJSONArray("data")) {
+            JSONObject object = (JSONObject) obj;
+            formatTime(object);
+
+            GldMdmProject project = JSONObject.parseObject(object.toJSONString(), GldMdmProject.class);
+            list.add(project);
+        }
+        return list;
+    }
+
     public List<GldTenant> getGetTenant() throws Exception {
         String token = getGetToken();
         if (StringUtil.isEmpty(token)) {

+ 1 - 0
easydo-chengfa/src/main/resources/config/application-dev.yml

@@ -183,6 +183,7 @@ GLD:
     getMember: "/admin/depts/memberslist?allTreePath=true&includeExternal=true"
     getProject: "/pmbasic/projects/list"
     getTenant: "/tenant/v2/tenants?size=20000"
+    getMDMProject: "/qdchf-integration/query/project"
     authorization: "Basic YlFvc0tIeWJkSlZUZGtMcXA0U1VIMlE0ejNZQjc5eVA6b1ZmaU5zR1c1NVZzSW5ITTlDOVI3c2g0SHlpVGMxY2w="
   APPROVE:
     mgtGroupId: "11200297"

+ 1 - 0
easydo-chengfa/src/main/resources/config/application-prod.yml

@@ -181,6 +181,7 @@ GLD:
     getMember: "/admin/depts/memberslist?allTreePath=true&includeExternal=true"
     getProject: "/pmbasic/projects/list"
     getTenant: "/tenant/v2/tenants?size=20000"
+    getMDMProject: "/qdchf-integration/query/project"
     authorization: "Basic YlFvc0tIeWJkSlZUZGtMcXA0U1VIMlE0ejNZQjc5eVA6b1ZmaU5zR1c1NVZzSW5ITTlDOVI3c2g0SHlpVGMxY2w="
   APPROVE:
     mgtGroupId: "11200297"

+ 1 - 0
easydo-chengfa/src/main/resources/config/application-test.yml

@@ -181,6 +181,7 @@ GLD:
     getMember: "/admin/depts/memberslist?allTreePath=true&includeExternal=true"
     getProject: "/pmbasic/projects/list"
     getTenant: "/tenant/v2/tenants?size=20000"
+    getMDMProject: "/qdchf-integration/query/project"
     authorization: "Basic YlFvc0tIeWJkSlZUZGtMcXA0U1VIMlE0ejNZQjc5eVA6b1ZmaU5zR1c1NVZzSW5ITTlDOVI3c2g0SHlpVGMxY2w="
   APPROVE:
     mgtGroupId: "11200297"