소스 검색

添加DMS批量更新和批量导入的接口

ximinghao 4 달 전
부모
커밋
936e2757bd

+ 11 - 8
src/main/java/com/skyversation/xjcy/dms/DMSColumn.java

@@ -3,16 +3,19 @@ package com.skyversation.xjcy.dms;
 import lombok.Getter;
 
 public enum DMSColumn {
-    INDUSTRIAL_PARK("1580"),
-    ENTERPRISE("1593"),
-    ENTERPRISE_ECONOMIC("1594"),
-    ORDER("1587"),
-    LEASE_DETAIL("1574");
+    INDUSTRIAL_PARK("1580","1525"),
+    ENTERPRISE("1593","1537"),
+    ENTERPRISE_ECONOMIC("1594","1538"),
+    ORDER("1587","1531"),
+    LEASE_DETAIL("1574","1520");
     @Getter
-    private String id;
+    private final String id;
+    @Getter
+    private final String modelId;
 
-    DMSColumn(String id) {
-        id = id;
+    DMSColumn(String id , String modelId) {
+        this.id = id;
+        this.modelId = modelId;
     }
 
 }

+ 23 - 0
src/main/java/com/skyversation/xjcy/dms/DMSImport.java

@@ -0,0 +1,23 @@
+package com.skyversation.xjcy.dms;
+
+import lombok.Getter;
+
+@Getter
+public enum DMSImport {
+
+    ;
+    private final String relation;
+    private final DMSColumn column;
+    private final String title;
+    private final String content;
+    private final String length;
+
+
+    DMSImport(String relation,DMSColumn column, String title, String content, String length) {
+        this.relation = relation;
+        this.column = column;
+        this.title = title;
+        this.content = content;
+        this.length = length;
+    }
+}

+ 21 - 5
src/main/java/com/skyversation/xjcy/dms/DMSService.java

@@ -6,10 +6,12 @@ import com.alibaba.fastjson.JSONObject;
 import com.skyversation.xjcy.bean.*;
 import com.skyversation.xjcy.util.HttpUtil;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.FileSystemResource;
 import org.springframework.stereotype.Service;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
 
+import java.io.File;
 import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -21,7 +23,7 @@ public class DMSService {
 
     private JSONObject sendQueryToDms(DMSRequest request) {
         JSONObject jsonObject;
-        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
         request.params.forEach(params::add);
         params.add("search", request.where.toJSONString());
         try {
@@ -50,11 +52,25 @@ public class DMSService {
         return jsonObject;
     }
 
-    public void updateToDms(List<JSONObject> objs,String token,DMSColumn column) {
-
+    public String updateToDms(List<JSONObject> objs,String token,DMSColumn column) {
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("modelId",column.getModelId());
+        params.add("json",JSON.toJSONString(objs));
+        Map<String,String> headers = new HashMap<>();
+        headers.put("token", token);
+        return HttpUtil.requestPost(path+"/content/updateContentByJson",params,headers);
     }
-    public void importToDms(List<JSONObject> objs,String token,DMSColumn column) {
-
+    public String importToDms(FileSystemResource file, String token, DMSImport importType) {
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("columnId",importType.getColumn().getId());
+        params.add("length", importType.getLength());
+        params.add("contentParam",importType.getContent());
+        params.add("titleParam",importType.getTitle());
+        params.add("content",importType.getRelation());
+        params.add("file",file);
+        Map<String,String> headers = new HashMap<>();
+        headers.put("token", token);
+        return HttpUtil.requestPost(path+"/content/contentImportExcelJsonFileData",params,headers);
     }
 
     private List<JSONObject> queryDmsList(DMSRequest request, String token, String columnId) {

+ 3 - 5
src/main/java/com/skyversation/xjcy/oauth/LoginService.java

@@ -31,7 +31,7 @@ public class LoginService {
         if (!StringUtils.hasText(loginName) || !StringUtils.hasText(password)) {
             throw new RuntimeException("请提供用于访问DMS的账号密码");
         }
-        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
         params.add("userName", loginName);
         params.add("password", password);
         params.add("clientId", "2");
@@ -56,11 +56,9 @@ public class LoginService {
         return Integer.valueOf(200).equals(code);
     }
     public String getToken() throws RuntimeException {
-        if (StringUtils.hasText(cacheToken)&&checkToken(cacheToken)) {
-            return cacheToken;
-        }else {
+        if (!StringUtils.hasText(cacheToken) || !checkToken(cacheToken)) {
             cacheToken = loginForToken();
-            return cacheToken;
         }
+        return cacheToken;
     }
 }

+ 6 - 4
src/main/java/com/skyversation/xjcy/util/HttpUtil.java

@@ -36,15 +36,17 @@ public class HttpUtil {
     public List<String> tempToken = new ArrayList<>();
     public boolean isRun = false;
 
-    public static String requestPost(String url, MultiValueMap<String, String> params, Map<String, String> headerMap) {
+
+    public static String requestPost(String url, MultiValueMap<String, Object> params, Map<String, String> headerMap) {
         SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
         requestFactory.setConnectTimeout(10 * 1000);
         requestFactory.setReadTimeout(10 * 1000);
         RestTemplate client = new RestTemplate(requestFactory);
         client.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
+
         HttpHeaders headers = new HttpHeaders();
-        //请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        headers.setContentType(MediaType.MULTIPART_FORM_DATA);
+
         if (headerMap != null) {
             Set<String> sets = headerMap.keySet();
             for (String key : sets) {
@@ -52,7 +54,7 @@ public class HttpUtil {
             }
         }
 
-        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers);//执行HTTP请求
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
         ResponseEntity<String> response = client.exchange(url, HttpMethod.POST, requestEntity, String.class);
         return response.getBody();
     }