Explorar o código

导出线索:添加根据三个字段过滤功能

ximinghao hai 3 meses
pai
achega
df657b656b

+ 7 - 2
src/main/java/com/skyversation/xjcy/controller/DataExportController.java

@@ -6,6 +6,7 @@ import com.skyversation.xjcy.util.MessageManage;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -23,9 +24,13 @@ public class DataExportController {
     DataExportService dataExportService;
     DataExportService dataExportService;
 
 
     @RequestMapping("/clue")
     @RequestMapping("/clue")
-    public String exportClue(HttpServletRequest request, HttpServletResponse response) {
+    public String exportClue(
+            @RequestParam(required = false) String c_clue_name ,
+            @RequestParam(required = false) String c_enterprise_name ,
+            @RequestParam(required = false) String construction_method,
+            HttpServletRequest request, HttpServletResponse response) {
         try {
         try {
-            List<Map<String, Object>> data = dataExportService.exportClue();
+            List<Map<String, Object>> data = dataExportService.exportClue(c_clue_name,c_enterprise_name,construction_method);
             FileIOData.exportExcelWithPreDefinedHeader(
             FileIOData.exportExcelWithPreDefinedHeader(
                     "徐泾镇招商项目(拿地)动态汇总表",
                     "徐泾镇招商项目(拿地)动态汇总表",
                     FileIOData.PreDefinedHeader.CLUE,
                     FileIOData.PreDefinedHeader.CLUE,

+ 1 - 1
src/main/java/com/skyversation/xjcy/dms/DMSRequest.java

@@ -61,6 +61,6 @@ class DMSRequest {
     }
     }
 
 
     enum DMSRequestType {
     enum DMSRequestType {
-        List, JOIN_LIST
+        List, Beautified
     }
     }
 }
 }

+ 58 - 32
src/main/java/com/skyversation/xjcy/dms/DMSService.java

@@ -25,10 +25,12 @@ public class DMSService {
     private static final class QueryResult {
     private static final class QueryResult {
         final LocalDateTime time = LocalDateTime.now();
         final LocalDateTime time = LocalDateTime.now();
         final List<JSONObject> dmsResult;
         final List<JSONObject> dmsResult;
+
         private QueryResult(List<JSONObject> dmsResult) {
         private QueryResult(List<JSONObject> dmsResult) {
             this.dmsResult = dmsResult;
             this.dmsResult = dmsResult;
         }
         }
     }
     }
+
     private final Map<DMSQuery, QueryResult> queryCache = new HashMap<>();
     private final Map<DMSQuery, QueryResult> queryCache = new HashMap<>();
 
 
     private JSONObject sendQueryToDms(DMSRequest request) {
     private JSONObject sendQueryToDms(DMSRequest request) {
@@ -44,8 +46,9 @@ public class DMSService {
                             Collections.singletonMap("token", request.token));
                             Collections.singletonMap("token", request.token));
                     break;
                     break;
                 }
                 }
-                case JOIN_LIST: {
-                    response = "";
+                case Beautified: {
+                    response = HttpUtil.requestPost(path + "/content/selectBeautified", params,
+                            Collections.singletonMap("token", request.token));
                     break;
                     break;
                 }
                 }
                 default: {
                 default: {
@@ -62,34 +65,35 @@ public class DMSService {
         return jsonObject;
         return jsonObject;
     }
     }
 
 
-    public void updateToDms(Collection<JSONObject> objs,String token,DMSColumn column) {
+    public void updateToDms(Collection<JSONObject> objs, String token, DMSColumn column) {
         if (objs == null || objs.isEmpty()) {
         if (objs == null || objs.isEmpty()) {
             return;
             return;
         }
         }
         MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
         MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("modelId",column.getModelId());
-        params.add("json",JSON.toJSONString(objs));
-        Map<String,String> headers = new HashMap<>();
+        params.add("modelId", column.getModelId());
+        params.add("json", JSON.toJSONString(objs));
+        Map<String, String> headers = new HashMap<>();
         headers.put("token", token);
         headers.put("token", token);
-        HttpUtil.requestPost(path+"/content/updateContentByJson",params,headers);
+        HttpUtil.requestPost(path + "/content/updateContentByJson", params, headers);
     }
     }
+
     public String importToDms(Resource resource, String token, DMSImport importType) {
     public String importToDms(Resource resource, String token, DMSImport importType) {
         MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
         MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("columnId",importType.getColumn().getId());
-        params.add("contentParam",importType.getContent());
-        params.add("titleParam",importType.getTitle());
-        params.add("parseArray",importType.getRelation());
-        params.add("secretLevel",0);
-        params.add("file",resource);
-        params.add("update",importType.isUpdate()?"true":"false");
-        Map<String,String> headers = new HashMap<>();
+        params.add("columnId", importType.getColumn().getId());
+        params.add("contentParam", importType.getContent());
+        params.add("titleParam", importType.getTitle());
+        params.add("parseArray", importType.getRelation());
+        params.add("secretLevel", 0);
+        params.add("file", resource);
+        params.add("update", importType.isUpdate() ? "true" : "false");
+        Map<String, String> headers = new HashMap<>();
         headers.put("token", token);
         headers.put("token", token);
-        return HttpUtil.requestPost(path+"/content/importBeautifiedExcel",params,headers);
+        return HttpUtil.requestPost(path + "/content/importBeautifiedExcel", params, headers);
     }
     }
 
 
     private List<JSONObject> queryDmsList(DMSRequest request, String token, String columnId) {
     private List<JSONObject> queryDmsList(DMSRequest request, String token, String columnId) {
         request.token = token;
         request.token = token;
-        request.type = DMSRequest.DMSRequestType.List;
+        if (request.type == null) request.type = DMSRequest.DMSRequestType.List;
         request.setColumnId(columnId);
         request.setColumnId(columnId);
         request.setState();
         request.setState();
         int page = 0;
         int page = 0;
@@ -120,16 +124,29 @@ public class DMSService {
         return list;
         return list;
     }
     }
 
 
+    public List<ClueFollow> queryClueFollow(String token, String cClueName, String cEnterpriseName, String constructionMethod) {
+
+        List<JSONObject> dmsResult;
+        DMSRequest request = DMSQuery.CLUE_FOLLOW.preRequest(null);
+        if (cClueName != null) request.addWhere("c_clue_name", "2", cClueName);
+        if (cEnterpriseName != null) request.addWhere("c_enterprise_name", "2", cEnterpriseName);
+        if (constructionMethod != null) request.addWhere("construction_method", "2", constructionMethod);
+
+        dmsResult = queryDmsList(request, token, DMSQuery.CLUE_FOLLOW.getColumnId());
+
+        return dmsResult.stream().map(jsonObject -> JSON.toJavaObject(jsonObject, ClueFollow.class)).collect(Collectors.toList());
+    }
+
     public List<JSONObject> simpleQuery(String token, String columId) {
     public List<JSONObject> simpleQuery(String token, String columId) {
         return queryDmsList(new DMSRequest(), token, columId);
         return queryDmsList(new DMSRequest(), token, columId);
     }
     }
 
 
-    public List<JSONObject> queryBeautified(String token,DMSColumn column) {
+    public List<JSONObject> queryBeautified(String token, DMSColumn column) {
         MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
         MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        params.add("columnId",column.getId());
-        Map<String,String> headers = new HashMap<>();
+        params.add("columnId", column.getId());
+        Map<String, String> headers = new HashMap<>();
         headers.put("token", token);
         headers.put("token", token);
-        JSONObject object = JSON.parseObject(HttpUtil.requestPost(path+"/content/selectBeautified",params,headers));
+        JSONObject object = JSON.parseObject(HttpUtil.requestPost(path + "/content/selectBeautified", params, headers));
         if (Objects.equals(object.getString("code"), "200")) {
         if (Objects.equals(object.getString("code"), "200")) {
             JSONArray content = object.getJSONArray("content");
             JSONArray content = object.getJSONArray("content");
             List<JSONObject> list = new ArrayList<>();
             List<JSONObject> list = new ArrayList<>();
@@ -142,6 +159,15 @@ public class DMSService {
         return new ArrayList<>();
         return new ArrayList<>();
     }
     }
 
 
+    public List<JSONObject> queryBeautifiedClue(String token, String cClueName, String cEnterpriseName, String constructionMethod) {
+        DMSRequest request = new DMSRequest();
+        request.type = DMSRequest.DMSRequestType.Beautified;
+        if (cClueName != null) request.addWhere("c_clue_name", "2", cClueName);
+        if (cEnterpriseName != null) request.addWhere("c_enterprise_name", "2", cEnterpriseName);
+        if (constructionMethod != null) request.addWhere("construction_method", "2", constructionMethod);
+        return queryDmsList(request, token, DMSColumn.CLUE.getId());
+    }
+
     public int getLargestCode(String token, String columId, String codeColumn, String today) {
     public int getLargestCode(String token, String columId, String codeColumn, String today) {
         DMSRequest request = new DMSRequest();
         DMSRequest request = new DMSRequest();
         request.addWhere(codeColumn, "2", "%" + today + "%");
         request.addWhere(codeColumn, "2", "%" + today + "%");
@@ -168,9 +194,9 @@ public class DMSService {
         return max;
         return max;
     }
     }
 
 
-    private List<JSONObject> getQueryCache(DMSQuery query){
+    private List<JSONObject> getQueryCache(DMSQuery query) {
         QueryResult queryResult = queryCache.get(query);
         QueryResult queryResult = queryCache.get(query);
-        if (queryResult!=null&&Duration.between(queryResult.time,LocalDateTime.now()).compareTo(Duration.ofSeconds(15)) <= 0) {
+        if (queryResult != null && Duration.between(queryResult.time, LocalDateTime.now()).compareTo(Duration.ofSeconds(15)) <= 0) {
             return queryResult.dmsResult;
             return queryResult.dmsResult;
         }
         }
         return null;
         return null;
@@ -185,20 +211,20 @@ public class DMSService {
         dmsResult = getQueryCache(query);
         dmsResult = getQueryCache(query);
         if (dmsResult == null) {
         if (dmsResult == null) {
             dmsResult = queryDmsList(query.preRequest(now), token, query.getColumnId());
             dmsResult = queryDmsList(query.preRequest(now), token, query.getColumnId());
-            queryCache.put(query,new QueryResult(dmsResult));
+            queryCache.put(query, new QueryResult(dmsResult));
         }
         }
 
 
         return dmsResult.stream().map(jsonObject -> JSON.toJavaObject(jsonObject, clazz)).collect(Collectors.toList());
         return dmsResult.stream().map(jsonObject -> JSON.toJavaObject(jsonObject, clazz)).collect(Collectors.toList());
     }
     }
 
 
     //下面几个接口是重计算用的,有重新插入的需求,不能放进queryEnum,不能领域化
     //下面几个接口是重计算用的,有重新插入的需求,不能放进queryEnum,不能领域化
-    public List<JSONObject> getAllParkByLy(String lyCode,String token) {
+    public List<JSONObject> getAllParkByLy(String lyCode, String token) {
         DMSRequest requestChildren = new DMSRequest();
         DMSRequest requestChildren = new DMSRequest();
         requestChildren.addWhere("parent_cyy_code", "1", lyCode);
         requestChildren.addWhere("parent_cyy_code", "1", lyCode);
         List<JSONObject> result = queryDmsList(requestChildren, token, DMSColumn.INDUSTRIAL_PARK.getId());
         List<JSONObject> result = queryDmsList(requestChildren, token, DMSColumn.INDUSTRIAL_PARK.getId());
         DMSRequest requestFarther = new DMSRequest();
         DMSRequest requestFarther = new DMSRequest();
         requestFarther.addWhere("c_park_code", "1", lyCode);
         requestFarther.addWhere("c_park_code", "1", lyCode);
-        result.addAll( queryDmsList(requestFarther, token, DMSColumn.INDUSTRIAL_PARK.getId()));
+        result.addAll(queryDmsList(requestFarther, token, DMSColumn.INDUSTRIAL_PARK.getId()));
         return result;
         return result;
     }
     }
 
 
@@ -207,19 +233,19 @@ public class DMSService {
         return queryDmsList(request, token, DMSColumn.INDUSTRIAL_PARK.getId());
         return queryDmsList(request, token, DMSColumn.INDUSTRIAL_PARK.getId());
     }
     }
 
 
-    public List<JSONObject> getAllLeaseByRooms(Set<String> roomString,String token) {
+    public List<JSONObject> getAllLeaseByRooms(Set<String> roomString, String token) {
         DMSRequest request = new DMSRequest();
         DMSRequest request = new DMSRequest();
-        request.addWhere("c_room_code","5",roomString);
-        return queryDmsList(request,token,DMSColumn.LEASE_DETAIL.getId());
+        request.addWhere("c_room_code", "5", roomString);
+        return queryDmsList(request, token, DMSColumn.LEASE_DETAIL.getId());
     }
     }
 
 
     public List<JSONObject> getAllLease(String token) {
     public List<JSONObject> getAllLease(String token) {
         DMSRequest request = new DMSRequest();
         DMSRequest request = new DMSRequest();
-        return queryDmsList(request,token,DMSColumn.LEASE_DETAIL.getId());
+        return queryDmsList(request, token, DMSColumn.LEASE_DETAIL.getId());
     }
     }
 
 
-    public List<JSONObject> getAllInvestmentTarget(String token){
+    public List<JSONObject> getAllInvestmentTarget(String token) {
         DMSRequest request = new DMSRequest();
         DMSRequest request = new DMSRequest();
-        return queryDmsList(request,token,DMSColumn.INVESTMENT_TARGET.getId());
+        return queryDmsList(request, token, DMSColumn.INVESTMENT_TARGET.getId());
     }
     }
 }
 }

+ 3 - 7
src/main/java/com/skyversation/xjcy/service/DataExportService.java

@@ -1,18 +1,14 @@
 package com.skyversation.xjcy.service;
 package com.skyversation.xjcy.service;
 
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
-import com.skyversation.xjcy.bean.Clue;
 import com.skyversation.xjcy.bean.ClueFollow;
 import com.skyversation.xjcy.bean.ClueFollow;
 import com.skyversation.xjcy.dms.DMSColumn;
 import com.skyversation.xjcy.dms.DMSColumn;
-import com.skyversation.xjcy.dms.DMSQuery;
 import com.skyversation.xjcy.dms.DMSService;
 import com.skyversation.xjcy.dms.DMSService;
 import com.skyversation.xjcy.oauth.AuthService;
 import com.skyversation.xjcy.oauth.AuthService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.time.LocalDate;
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.*;
 import java.util.function.BinaryOperator;
 import java.util.function.BinaryOperator;
@@ -33,11 +29,11 @@ public class DataExportService {
         c_intended_parcel_code,c_intended_building_code,c_clue_status,c_economic_zone_id,c_economic_zone_name,
         c_intended_parcel_code,c_intended_building_code,c_clue_status,c_economic_zone_id,c_economic_zone_name,
         c_responsible_person_id,c_responsible_person_name,create_time,author_id,update_time,c_updater
         c_responsible_person_id,c_responsible_person_name,create_time,author_id,update_time,c_updater
     }
     }
-    public List<Map<String, Object>> exportClue() {
+    public List<Map<String, Object>> exportClue(String c_clue_name, String c_enterprise_name, String construction_method) {
         List<Map<String,Object>> result = new ArrayList<>();
         List<Map<String,Object>> result = new ArrayList<>();
         LocalDate now = LocalDate.now();
         LocalDate now = LocalDate.now();
-        List<JSONObject> clues = dmsService.queryBeautified(authService.getToken(), DMSColumn.CLUE);
-        List<ClueFollow> clueFollows = dmsService.query(authService.getToken(), DMSQuery.CLUE_FOLLOW, ClueFollow.class,now);
+        List<JSONObject> clues = dmsService.queryBeautifiedClue(authService.getToken(), c_clue_name,c_enterprise_name, construction_method);
+        List<ClueFollow> clueFollows = dmsService.queryClueFollow(authService.getToken(), c_clue_name,c_enterprise_name, construction_method);
         //做map,仅留最近
         //做map,仅留最近
         Map<String,ClueFollow> newestClueFollows = clueFollows.stream()
         Map<String,ClueFollow> newestClueFollows = clueFollows.stream()
                 .filter(f->f.getCClueCode()!=null)
                 .filter(f->f.getCClueCode()!=null)

+ 2 - 2
src/main/resources/application.yml

@@ -21,8 +21,8 @@ logging:
 app:
 app:
   count-cache-length: ${COUNT_CACHE_LENGTH:5000}
   count-cache-length: ${COUNT_CACHE_LENGTH:5000}
   dms:
   dms:
-#    path: http://127.0.0.1:10081/dms
-    path: ${DMS_PATH:http://121.43.55.7:10081/dms}
+    path: http://127.0.0.1:10081/dms
+#    path: ${DMS_PATH:http://121.43.55.7:10081/dms}
   oauth:
   oauth:
     login-name: ${DMS_LOGIN_NAME:user_hj}
     login-name: ${DMS_LOGIN_NAME:user_hj}
     password: ${DMS_PASSWORD:Hj@123456}
     password: ${DMS_PASSWORD:Hj@123456}