Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	venders-dp.iml
Jxing 6 years ago
parent
commit
0df4db5cf5

+ 1 - 0
.gitignore

@@ -5,3 +5,4 @@ src/main/resources/.DS_Store
 log/*
 src/test/java/com/sagacloud/Test.java
 target/*
+*.iml

+ 17 - 4
src/main/java/com/sagacloud/route/Route.java

@@ -7,17 +7,14 @@ import com.github.rjeschke.txtmark.Processor;
 import com.sagacloud.Exceptions.InvalidPostException;
 import com.sagacloud.cache.ProPasCache;
 import com.sagacloud.pojos.DPSelectPropertyResult;
-import com.sagacloud.route.processors.GetEquipmentByPjProcessor;
-import com.sagacloud.route.processors.GetNameByProjectIds;
+import com.sagacloud.route.processors.*;
 import com.sagacloud.route.processors.Insurance.*;
-import com.sagacloud.route.processors.GetPropByPjProcessor;
 import com.sagacloud.route.processors.Maintainance.FilterPropertyProcessor;
 import com.sagacloud.route.processors.Maintainance.QueryPropertyProcesspr;
 import com.sagacloud.route.processors.Manufacturer.MaunfacturerFilter;
 import com.sagacloud.route.processors.Manufacturer.GetVenderBySpecProcessor;
 import com.sagacloud.route.processors.PeriodTask.OnTimeTaskProcessor;
 import com.sagacloud.route.processors.PeriodTask.StatisticsProcessor;
-import com.sagacloud.route.processors.VenderMapProcessor;
 import com.sagacloud.route.processors.supplier.SupplierFilter;
 import com.sagacloud.route.processors.supplier.SupplyContractProcessor;
 import com.sagacloud.utils.Const;
@@ -265,6 +262,22 @@ public class Route extends ExceptionHandlerBaseRoute {
                     log.info(InitEnvRoute.venders+"/auxiliary/project/create?method=POST");
                 })
                 .to(InitEnvRoute.venders+"/auxiliary/project/create");
+
+        rest("/getInsuranceNum").post()
+                .produces(MediaType.APPLICATION_JSON)
+                .route()
+                .process(ContractMethods :: validateDPInsurerID)
+                .process(ContractMethods :: preQueryEq)
+                .to(InitEnvRoute.dataPlatform + "/object/subset_query?bridgeEndpoint=true")
+                .process(ContractMethods :: extractInsuranceNum);
+
+        rest("/getSupplierContractID").post()
+                .produces(MediaType.APPLICATION_JSON)
+                .route()
+                .process(ContractMethods :: validateDPSupplierID)
+                .process(ContractMethods :: preQueryEq)
+                .to(InitEnvRoute.dataPlatform + "/object/subset_query?bridgeEndpoint=true")
+                .process(ContractMethods :: extractSupplierContractIds);
     }
 
 

+ 76 - 0
src/main/java/com/sagacloud/route/processors/ContractMethods.java

@@ -0,0 +1,76 @@
+package com.sagacloud.route.processors;
+
+import com.sagacloud.Exceptions.InvalidPostException;
+import org.apache.camel.Exchange;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Created by wo on 9/4/18.
+ */
+public class ContractMethods {
+    public static void preQueryEq(Exchange exchange) {
+        exchange.getIn().setBody("{\"customInfo\":false,\"linkInfos\":false,\"criteria\":{\"type\":[\"Eq\"]}}");
+    }
+
+    public static void extractSupplierContractIds(Exchange exchange) {
+        extract(exchange, "SupplierContractID", "DPSupplierID", exchange.getProperty("DPSupplierID", String.class));
+    }
+
+    public static void extractInsuranceNum(Exchange exchange) {
+        extract(exchange, "InsuranceNum", "DPInsurerID", exchange.getProperty("DPInsurerID", String.class));
+    }
+
+    private static void extract(Exchange exchange, String info, String venderInfo, String venderId){
+        String inStr = exchange.getIn().getBody(String.class);
+        JSONObject json = new JSONObject(inStr);
+        if(!json.getString("Result").equalsIgnoreCase("success")){
+            return;
+        }
+        List<JSONObject> contents = new ArrayList<>();
+        Set<String> contractIds = new HashSet<>();
+        json.getJSONArray("Content").forEach(obj ->{
+            JSONObject item = (JSONObject) obj;
+            JSONObject infos = item.getJSONObject("infos");
+            if(infos.has(venderInfo) && infos.getString(venderInfo).trim().equalsIgnoreCase(venderId) && infos.has(info)){
+                if(contractIds.contains(infos.getString(info))){
+                    return;
+                }
+                JSONObject content = new JSONObject();
+                content.put(info, infos.getString(info));
+                if(info.equalsIgnoreCase("InsuranceNum")){
+                    if(infos.has("InsuranceFile")){
+                        content.put("InsuranceFile", infos.get("InsuranceFile"));
+                    }
+                }
+                contents.add(content);
+                contractIds.add(infos.getString(info));
+            }
+        });
+        JSONObject result = new JSONObject("{\"result\":\"success\",\"resultMsg\":\"\"}");
+        result.put("content", contents);
+        exchange.getOut().setBody(result);
+    }
+
+    public static void validateDPSupplierID(Exchange exchange) throws InvalidPostException {
+        String inStr = exchange.getIn().getBody(String.class);
+        JSONObject json = new JSONObject(inStr);
+        if(!json.has("DPSupplierID")){
+            throw new InvalidPostException("Need DPSupplierID");
+        }
+        exchange.setProperty("DPSupplierID", json.getString("DPSupplierID"));
+    }
+
+    public static void validateDPInsurerID(Exchange exchange) throws InvalidPostException {
+        String inStr = exchange.getIn().getBody(String.class);
+        JSONObject json = new JSONObject(inStr);
+        if(!json.has("DPInsurerID")){
+            throw new InvalidPostException("Need DPInsurerID");
+        }
+        exchange.setProperty("DPInsurerID", json.getString("DPInsurerID").trim());
+    }
+}

+ 52 - 0
src/main/resources/documentation.md

@@ -271,4 +271,56 @@ post体:
     {
         "result":"failure",
         "resultMsg":"***"
+    }
+    
+ 
+# 查询数据平台数据
+
+##查询项目下所有设备包含的保单
+
+    http://<host>:<port>/venders-dp/getInsuranceNum?projectId=Pj110108****&secret=***
+    
+post体:
+
+    {
+    	"DPInsurerID":"V0a6a643c9c6311e8b4acf9fa5a3bd22f"
+    }
+
+返回:
+ 
+    {
+        "result": "success",
+        "content": [
+            {
+                "InsuranceNum": "1234",
+                "InsuranceFile": {
+                    "name": "",
+                    "type": "image",
+                    "key": ""
+                }
+            }
+        ],
+        "resultMsg": ""
+    }
+    
+##查询项目下所有设备包含供应合同号
+
+    http://<host>:<port>/venders-dp/getSupplierContractID?projectId=Pj110108****&secret=***
+    
+post体:
+
+    {
+    	"DPSupplierID":"V5593c8928a2d11e8a8c0b5b15b013d50"
+    }
+
+返回:
+ 
+    {
+        "result": "success",
+        "content": [
+            {
+                "SupplierContractID": "hhhh"
+            }
+        ],
+        "resultMsg": ""
     }

+ 0 - 69
venders-dp.iml

@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="web" name="Web">
-      <configuration>
-        <descriptors>
-          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
-        </descriptors>
-        <webroots>
-          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
-        </webroots>
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.47" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jersey.containers:jersey-container-servlet-core:2.25.1" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.hk2.external:javax.inject:2.5.0-b32" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jersey.core:jersey-common:2.25.1" level="project" />
-    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jersey.bundles.repackaged:jersey-guava:2.25.1" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.hk2:hk2-api:2.5.0-b32" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.hk2:hk2-utils:2.5.0-b32" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.hk2.external:aopalliance-repackaged:2.5.0-b32" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.hk2:hk2-locator:2.5.0-b32" level="project" />
-    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.hk2:osgi-resource-locator:1.0.1" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jersey.core:jersey-server:2.25.1" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jersey.core:jersey-client:2.25.1" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jersey.media:jersey-media-jaxb:2.25.1" level="project" />
-    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: javax.ws.rs:javax.ws.rs-api:2.0.1" level="project" />
-    <orderEntry type="library" name="Maven: com.doctusoft:json-schema-java7:1.4.1" level="project" />
-    <orderEntry type="library" name="Maven: org.json:json:20160810" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:guava:19.0" level="project" />
-    <orderEntry type="library" name="Maven: org.threeten:threetenbp:1.3.3" level="project" />
-    <orderEntry type="library" name="Maven: commons-validator:commons-validator:1.5.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
-    <orderEntry type="library" name="Maven: commons-digester:commons-digester:1.8.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.camel:camel-core:2.19.0" level="project" />
-    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
-    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.camel:camel-http4:2.19.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.camel:camel-http-common:2.19.0" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.camel:camel-http:2.19.0" level="project" />
-    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.camel:camel-servlet:2.19.0" level="project" />
-    <orderEntry type="library" name="Maven: com.github.rjeschke:txtmark:0.13" level="project" />
-    <orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.5" level="project" />
-    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.3" level="project" />
-    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
-  </component>
-</module>