ximinghao 4 сар өмнө
parent
commit
95df0cca5b

+ 26 - 2
src/main/java/com/skyversation/xjcy/controller/XjcyController.java → src/main/java/com/skyversation/xjcy/controller/CountController.java

@@ -1,11 +1,14 @@
 package com.skyversation.xjcy.controller;
 
+import com.skyversation.xjcy.oauth.LoginService;
 import com.skyversation.xjcy.service.DataCountService;
+import com.skyversation.xjcy.service.DataImportService;
+import com.skyversation.xjcy.service.DataPreCountService;
 import com.skyversation.xjcy.service.OWSService;
 import com.skyversation.xjcy.util.MessageManage;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.MediaType;
-import org.springframework.stereotype.Controller;
+import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -14,16 +17,21 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
 
 @Slf4j
 @Validated
 @RestController
 @RequestMapping("/count")
-public class XjcyController {
+public class CountController {
     @Resource
     DataCountService dataCountService;
     @Resource
     OWSService owsService;
+    @Resource
+    DataPreCountService dataPreCountService;
+    @Resource
+    LoginService loginService;
 
     @RequestMapping(value = "/town", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public String townCountData() {
@@ -80,4 +88,20 @@ public class XjcyController {
         return MessageManage.getInstance().getResultContent(200, "已开始重新统计", "已开始重新统计");
     }
 
+    @RequestMapping(value = "/preCountParkByCodes")
+    public String preCount(HttpServletRequest request){
+        String lyCode = request.getParameter("lyCode");
+        String roomCode = request.getParameter("roomCode");
+        if (!StringUtils.hasText(lyCode) || !StringUtils.hasText(roomCode)) {
+            return MessageManage.getInstance().getResultContent(-1,"参数不完整,lyCode和roomCode必须提供数据","参数不完整,lyCode和roomCode必须提供数据");
+        }
+        String token = request.getHeader("token");
+        if (!loginService.checkToken(token)) {
+            return MessageManage.getInstance().getResultContent(-1,"未提供有效token","未提供有效token");
+        }
+        String[] roomCodes = roomCode.split(",");
+        dataPreCountService.updateLimitInRooms(lyCode, Arrays.asList(roomCodes),token);
+        return MessageManage.getInstance().getResultContent(200, "统计完成", "统计完成");
+    }
+
 }

+ 36 - 0
src/main/java/com/skyversation/xjcy/controller/DataImportController.java

@@ -0,0 +1,36 @@
+package com.skyversation.xjcy.controller;
+
+import com.skyversation.xjcy.dms.DMSImport;
+import com.skyversation.xjcy.service.DataImportService;
+import com.skyversation.xjcy.util.MessageManage;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.annotation.Validated;
+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.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.IOException;
+
+@Slf4j
+@Validated
+@RestController
+@RequestMapping("/import")
+public class DataImportController {
+    @Resource
+    private DataImportService dataImportService;
+    @RequestMapping("/enterprise")
+    public String toEnterprise(@RequestParam("file") MultipartFile file , HttpServletRequest request) throws IOException {
+        String token = request.getHeader("token");
+        if (token == null||token.isEmpty()) {
+            return MessageManage.getInstance().getResultContent(-1,"缺少token","缺少token");
+        }
+
+        return dataImportService.importTo(file, token, DMSImport.ENTERPRISE);
+    }
+}

+ 6 - 4
src/main/java/com/skyversation/xjcy/dms/DMSImport.java

@@ -4,20 +4,22 @@ import lombok.Getter;
 
 @Getter
 public enum DMSImport {
-
+    ENTERPRISE("[{\"field\":\"c_enterprise_name\",\"nameInExcel\":\"企业名称\"},{\"field\":\"c_unified_social_credit_code\",\"nameInExcel\":\"企业统一社会信用代码\"},{\"field\":\"tags\",\"nameInExcel\":\"企业标签\"},{\"field\":\"household_unit_id\",\"nameInExcel\":\"户管单位\",\"specialParse\":\"FK\",\"foreignColumnId\":\"1573\",\"foreignField\":\"c_dept_code\",\"excelValueField\":\"c_dept_name\",\"foreignCondition\":[{\"columnId\":\"1573\",\"columnName\":\"c_dept_type\",\"condition\":\"like\",\"value\":\"%4%\"}]},{\"field\":\"c_investment_unit_id\",\"nameInExcel\":\"招商单位\",\"specialParse\":\"FK\",\"foreignColumnId\":\"1573\",\"foreignField\":\"c_dept_code\",\"excelValueField\":\"c_dept_name\",\"foreignCondition\":[{\"columnId\":\"1573\",\"columnName\":\"c_dept_type\",\"condition\":\"like\",\"value\":\"%3%\"}]},{\"field\":\"c_investment_unit_name\",\"nameInExcel\":\"招商单位\"},{\"field\":\"is_gsqy\",\"nameInExcel\":\"是否规上企业\"},{\"field\":\"c_certificate_date\",\"nameInExcel\":\"迁入徐泾日期\"},{\"field\":\"reg_type\",\"nameInExcel\":\"注册类型\"},{\"field\":\"c_industry_catalog_type\",\"nameInExcel\":\"产业结构调整指导目录类型\"},{\"field\":\"c_is_key_project_qp\",\"nameInExcel\":\"是否属于青浦区重点发展的“十四大工程”\"},{\"field\":\"c_is_eliminate_industry\",\"nameInExcel\":\"是否为淘汰类产业\"},{\"field\":\"c_is_closed_enterprise\",\"nameInExcel\":\"是否为关停并转企业\"},{\"field\":\"c_move_out_date\",\"nameInExcel\":\"迁出日期\"},{\"field\":\"c_move_reason\",\"nameInExcel\":\"迁出原因\"}]",
+            DMSColumn.ENTERPRISE,
+            "企业名称",
+            "企业统一社会信用代码"
+            )
     ;
     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) {
+    DMSImport(String relation,DMSColumn column, String title, String content) {
         this.relation = relation;
         this.column = column;
         this.title = title;
         this.content = content;
-        this.length = length;
     }
 }

+ 7 - 6
src/main/java/com/skyversation/xjcy/dms/DMSService.java

@@ -7,6 +7,7 @@ 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.core.io.Resource;
 import org.springframework.stereotype.Service;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
@@ -52,7 +53,7 @@ public class DMSService {
         return jsonObject;
     }
 
-    public String updateToDms(List<JSONObject> objs,String token,DMSColumn column) {
+    public String updateToDms(Collection<JSONObject> objs,String token,DMSColumn column) {
         MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
         params.add("modelId",column.getModelId());
         params.add("json",JSON.toJSONString(objs));
@@ -60,17 +61,17 @@ public class DMSService {
         headers.put("token", token);
         return HttpUtil.requestPost(path+"/content/updateContentByJson",params,headers);
     }
-    public String importToDms(FileSystemResource file, String token, DMSImport importType) {
+    public String importToDms(Resource resource, 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);
+        params.add("parseArray",importType.getRelation());
+        params.add("secretLevel",0);
+        params.add("file",resource);
         Map<String,String> headers = new HashMap<>();
         headers.put("token", token);
-        return HttpUtil.requestPost(path+"/content/contentImportExcelJsonFileData",params,headers);
+        return HttpUtil.requestPost(path+"/content/importBeautifiedExcel",params,headers);
     }
 
     private List<JSONObject> queryDmsList(DMSRequest request, String token, String columnId) {

+ 30 - 0
src/main/java/com/skyversation/xjcy/service/DataImportService.java

@@ -0,0 +1,30 @@
+package com.skyversation.xjcy.service;
+
+import com.skyversation.xjcy.dms.DMSImport;
+import com.skyversation.xjcy.dms.DMSService;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+
+@Service
+public class DataImportService {
+    @Resource
+    DMSService dmsService;
+    public String importTo(MultipartFile file, String token, DMSImport importType) throws IOException {
+        org.springframework.core.io.Resource resource = new InputStreamResource(file.getInputStream()) {
+            @Override
+            public String getFilename() {
+                return file.getOriginalFilename();   // 关键!
+            }
+
+            @Override
+            public long contentLength() {
+                return file.getSize();               // 可选,让 Content-Length 正确
+            }
+        };
+        return dmsService.importToDms(resource,token,importType);
+    }
+}