From 179c4d64313c9b7572778da4aaaf6c6584fe457d Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 20 五月 2025 23:48:08 +0800
Subject: [PATCH] 修改文件上传类型限制

---
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java |  646 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 451 insertions(+), 195 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
index a65c8d2..26ac215 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
@@ -1,30 +1,5 @@
 package com.panzhihua.serviceapi.biz.impl;
 
-import cn.hutool.http.HttpRequest;
-import cn.hutool.http.HttpResponse;
-import cn.hutool.http.HttpUtil;
-import com.alibaba.fastjson.JSONArray;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.panzhihua.common.api.LangchaoApiConstants;
-import com.panzhihua.common.constants.TokenConstant;
-import com.panzhihua.common.enums.LocalEventToLangChaoEventTypeEnum;
-import com.panzhihua.common.model.dtos.api.EventFile;
-import com.panzhihua.common.model.dtos.api.EventInfo;
-import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.grid.EventDetailsVO;
-import com.panzhihua.common.model.vos.grid.EventGridDataDetailsVO;
-import com.panzhihua.common.model.vos.grid.EventResourceVO;
-import com.panzhihua.common.service.grid.GridService;
-import com.panzhihua.serviceapi.biz.LcApiService;
-import com.panzhihua.serviceapi.model.dto.LcGridData;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.data.redis.core.ValueOperations;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.InputStream;
@@ -35,16 +10,54 @@
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.stereotype.Service;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.panzhihua.common.api.*;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.enums.LocalEventToLangChaoEventTypeEnum;
+import com.panzhihua.common.model.dtos.api.EventFile;
+import com.panzhihua.common.model.dtos.api.EventInfo;
+import com.panzhihua.common.model.dtos.grid.LcEventVisitingTasksListDTO;
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
+import com.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridDataDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.serviceapi.biz.LcApiService;
+import com.panzhihua.serviceapi.model.dto.*;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
+import lombok.extern.slf4j.Slf4j;
+
 /**
- * program 攀枝花智慧社区项目
- * description 第三方浪潮市平台对接接口管理API
+ * program 攀枝花智慧社区项目 description 第三方浪潮市平台对接接口管理API
  *
- * @author manailin
- * Date 2021-01-22 15:30
+ * @author manailin Date 2021-01-22 15:30
  **/
 @Slf4j
 @Service
 public class LcApiServiceImpl implements LcApiService {
+
+    @Value("${langchao.url}")
+    private String host;
 
     @Resource
     private GridService gridService;
@@ -52,175 +65,13 @@
     @Autowired
     private StringRedisTemplate redisTemplate;
 
-    /**
-     * 从redis获取token
-     *
-     * @return String 浪潮对接的token
-     */
-    private String getAuthToken() {
-        ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
-        if (valueOperations.get(LangchaoApiConstants.LANG_CHAO_TOKEN) == null) {
-            saveTokenFromRemoteRequest("18080799023", "123456");
-        }
-        return valueOperations.get(LangchaoApiConstants.LANG_CHAO_TOKEN);
-    }
-
-    @Override
-    public String saveTokenFromRemoteRequest(String name, String password) {
-        if (redisTemplate.hasKey(LangchaoApiConstants.LANG_CHAO_TOKEN)) {
-            //如果redis存在token,直接返回redis存储的token
-            ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
-            return valueOperations.get(LangchaoApiConstants.LANG_CHAO_TOKEN);
-        } else {
-            //如果第一次请求浪潮的token请求,请求完成后,保存对于的token到数据库中。便于12小时内重复调用
-            HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_GET_TOKEN_URL.replace("#username", name).replace("#password", password));
-            HttpResponse result = request.execute();
-            ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
-            valueOperations.set(LangchaoApiConstants.LANG_CHAO_TOKEN, result.body(), TokenConstant.EXPIRETIME, TimeUnit.MINUTES);
-            return result.toString();
-        }
-    }
-
-    @Override
-    public String getAllEventTypeList() {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_EVENT_CATEGORY_URL);
-        request.auth(getAuthToken());
-        HttpResponse result = request.execute();
-        return result.body();
-    }
-
-    @Override
-    public String submitEventRegister(EventInfo eventInfo) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_REGIST_EVENT_URL);
-        request.auth(getAuthToken());
-        ObjectMapper mapper = new ObjectMapper();
-        try {
-            //对象转map
-            Map m = mapper.readValue(mapper.writeValueAsString(eventInfo), Map.class);
-            request.form(m);
-        } catch (JsonProcessingException e) {
-            log.info("方法submitEventRegister发生错误:{}", e.getMessage());
-        }
-        HttpResponse result = request.execute();
-        log.info(result.body());
-        return result.body();
-    }
-
-    @Override
-    public R submitEventRelationFile(EventFile eventFile) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_EVENT_FILE_UPLOAD_URL);
-        request.auth(getAuthToken());
-        try {
-            HttpURLConnection httpUrl = (HttpURLConnection) new URL(eventFile.getFiles()).openConnection();
-            httpUrl.connect();
-            File file = inputStreamToFile(httpUrl.getInputStream(), eventFile.getFileName());
-            request.form("files", file);
-            httpUrl.disconnect();
-            request.form("dataId", eventFile.getDataId());
-            request.form("type", eventFile.getType());
-            request.form("module", eventFile.getModule());
-            HttpResponse result = request.execute();
-            file.delete();
-            return R.ok(result.body());
-        } catch (Exception e) {
-            log.info("方法submitEventRelationFile发生错误:{}", e.getMessage());
-        }
-        return R.fail();
-    }
-
-    @Override
-    public String getEventInfoById(String eventId) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL);
-        request.auth(getAuthToken());
-        request.form("eventId", eventId);
-        HttpResponse result = request.execute();
-        return result.body();
-    }
-
-    @Override
-    public List<LcGridData> getGridListByAreaId(String areaId) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL);
-        request.auth(getAuthToken());
-        request.form("areaId", areaId);
-        HttpResponse result = request.execute();
-        return JSONArray.parseArray(result.body(), LcGridData.class);
-    }
-
-    @Override
-    public String getGridMemberListByAreaIdOrName(String areaId) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL);
-        request.auth(getAuthToken());
-        request.form("areaId", areaId);
-        HttpResponse result = request.execute();
-        return result.body();
-    }
-
-    @Override
-    public void automationUploadEventAndFile() {
-        List<EventDetailsVO> unUploadEventList = gridService.getUnUploadEvent();
-        unUploadEventList.forEach(eventInfoVo -> {
-            log.info("定时向浪潮服务器提交网格事件登记开始");
-            EventInfo eventInfo = new EventInfo();
-            String lcGrid = gridService.getLcGridIdByLocal(eventInfoVo.getGridId());
-            String lcGridUserId = gridService.getLcUserIdByLocalUserId(eventInfoVo.getGridMemberId().toString());
-            eventInfo.setGridId(lcGrid);
-            R grid = gridService.eventGridDataDetails(eventInfoVo.getGridId());
-            EventGridDataDetailsVO gridData = (EventGridDataDetailsVO) grid.getData();
-            eventInfo.setGridName(gridData.getGridName());
-            eventInfo.setCaseTypeCode(LocalEventToLangChaoEventTypeEnum.getCodeByName(eventInfoVo.getEventType()));
-            String caseTypeName= LocalEventToLangChaoEventTypeEnum.getEventNameByCode(eventInfoVo.getEventType());
-            eventInfo.setCaseTypeName(caseTypeName);
-            if (eventInfoVo.getEventCategory() != 1L) {
-                eventInfo.setHappenTime(String.valueOf(eventInfoVo.getPropagandaTime().getTime()));
-            } else {
-                eventInfo.setHappenTime(String.valueOf(eventInfoVo.getHappenTime().getTime()));
-            }
-            eventInfo.setHappenAddress(eventInfoVo.getHappenAddress());
-            String[] data = eventInfoVo.getHappentLatLng().split(",");
-            eventInfo.setLongitude(data[0]);
-            eventInfo.setLatitude(data[1]);
-            eventInfo.setCaseDescription(eventInfoVo.getEventDes());
-            eventInfo.setCaseRecordTime(String.valueOf(eventInfoVo.getCreateAt().getTime()));
-            eventInfo.setHandleType("REPORT");
-            eventInfo.setHandleDescription(eventInfoVo.getProcessDesc());
-            eventInfo.setDataId(eventInfoVo.getId().toString());
-            //获取系统网格员映射的浪潮网格员对于的用户ID
-            eventInfo.setUserId(lcGridUserId);
-            if (eventInfoVo.getProcessDate() != null) {
-                eventInfo.setHandleTime(String.valueOf(eventInfoVo.getProcessDate().getTime()));
-            }
-            eventInfo.setCaseName(gridData.getGridName().concat(caseTypeName).concat(eventInfoVo.getEventTitle()));
-            submitEventRegister(eventInfo);
-            log.info("定时向浪潮服务器提交网格事件登记结束");
-            log.info("开始上传附件信息");
-            List<EventResourceVO> picsList = eventInfoVo.getPics();
-            uploadLcApiEventFile(eventInfoVo, picsList, "png");
-            List<EventResourceVO> audiosList = eventInfoVo.getAudios();
-            uploadLcApiEventFile(eventInfoVo, audiosList, "mp3");
-            List<EventResourceVO> videoList = eventInfoVo.getVideos();
-            uploadLcApiEventFile(eventInfoVo, videoList, "mp4");
-            log.info("结束上传附件信息");
-            gridService.updateLcUploadFlag(eventInfoVo.getId());
-        });
-    }
-
-    private void uploadLcApiEventFile(EventDetailsVO eventInfoVo, List<EventResourceVO> picsList, String type) {
-        picsList.forEach(eventResourceVO -> {
-            EventFile eventFile = new EventFile();
-            eventFile.setDataId(eventInfoVo.getId().toString());
-            eventFile.setFiles(eventResourceVO.getUrl());
-            eventFile.setType(type);
-            eventFile.setModule("event");
-            eventFile.setFileName(eventResourceVO.getResourceName());
-            submitEventRelationFile(eventFile);
-        });
-    }
+    @Resource
+    private CommunityService communityService;
 
     /**
-     * 工具方法
-     * inputStream 转 File
+     * 工具方法 inputStream 转 File
      */
-    public static File inputStreamToFile(InputStream ins, String name) throws Exception {
+    private static File inputStreamToFile(InputStream ins, String name) throws Exception {
         File file = new File(System.getProperty("java.io.tmpdir") + File.separator + name);
         log.info(System.getProperty("java.io.tmpdir") + File.separator + name);
         if (file.exists()) {
@@ -237,4 +88,409 @@
         ins.close();
         return file;
     }
+
+    /**
+     * 从redis获取token
+     *
+     * @return String 浪潮对接的token
+     */
+    private String getAuthToken() {
+        ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
+        if (valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN) == null) {
+            saveTokenFromRemoteRequest(LcApiConstants.LC_UPLOAD_NAME, LcApiConstants.LC_UPLOAD_PASSWORD);
+        }
+        return valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN);
+    }
+
+    @Override
+    public String saveTokenFromRemoteRequest(String name, String password) {
+        Boolean authToken = redisTemplate.hasKey(LcApiConstants.LANG_CHAO_TOKEN);
+        if (authToken != null) {
+            // 如果redis存在token,直接返回redis存储的token
+            ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
+            return valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN);
+        } else {
+            // 如果第一次请求浪潮的token请求,请求完成后,保存对于的token到数据库中。便于12小时内重复调用
+            HttpRequest request = HttpUtil.createPost(
+                host +
+                LcApiConstants.GRID_GET_TOKEN_URL.replace("#username", name).replace("#password", password));
+            HttpResponse result = request.execute();
+            ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
+            valueOperations.set(LcApiConstants.LANG_CHAO_TOKEN, result.body(), TokenConstant.EXPIRETIME,
+                TimeUnit.MINUTES);
+            return result.toString();
+        }
+    }
+
+    @Override
+    public String getAllEventTypeList() {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_EVENT_CATEGORY_URL);
+        request.auth(getAuthToken());
+        HttpResponse result = request.execute();
+        return result.body();
+    }
+
+    @Override
+    public String submitEventRegister(EventInfo eventInfo) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_REGIST_EVENT_URL);
+        request.auth(getAuthToken());
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            // 对象转map
+            Map m = mapper.readValue(mapper.writeValueAsString(eventInfo), Map.class);
+            request.form(m);
+        } catch (JsonProcessingException e) {
+            log.info("方法submitEventRegister发生错误:{}", e.getMessage());
+        }
+        HttpResponse result = request.execute();
+        log.info("submitEventRegister上传浪潮事件信息:{}", result.body());
+        return result.body();
+    }
+
+    @Override
+    public R submitEventOrVisitRecordRelationFile(EventFile eventFile) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_EVENT_FILE_UPLOAD_URL);
+        request.auth(getAuthToken());
+        try {
+            HttpURLConnection httpUrl = (HttpURLConnection)new URL(eventFile.getFiles()).openConnection();
+            httpUrl.connect();
+            File file = inputStreamToFile(httpUrl.getInputStream(), eventFile.getFileName());
+            request.form("files", file);
+            httpUrl.disconnect();
+            request.form("dataId", eventFile.getDataId());
+            request.form("type", eventFile.getType());
+            request.form("module", eventFile.getModule());
+            HttpResponse result = request.execute();
+            file.delete();
+            return R.ok(result.body());
+        } catch (Exception e) {
+            log.info("方法submitEventOrVisitRecordRelationFile发生错误:{}", e.getMessage());
+        }
+        return R.fail();
+    }
+
+    @Override
+    public String getEventInfoById(String eventId) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL);
+        request.auth(getAuthToken());
+        request.form("eventId", eventId);
+        HttpResponse result = request.execute();
+        return result.body();
+    }
+
+    @Override
+    public List<LcGridData> getGridTreeByAreaId(String areaId) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL);
+        request.auth(getAuthToken());
+        request.form("areaId", areaId);
+        request.form("level", 4);
+        HttpResponse result = request.execute();
+        return JSONArray.parseArray(result.body(), LcGridData.class);
+    }
+
+    @Override
+    public List<LcGridData> getGridDataListByAreaId(String areaId) {
+        log.info("浪潮请求url");
+        log.info(host + LcApiConstants.GRID_GET_GRID_DATA_AREA_ID_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_GET_GRID_DATA_AREA_ID_URL);
+        request.auth(getAuthToken());
+        request.form("areaId", areaId);
+        HttpResponse result = request.execute();
+        return JSONArray.parseArray(result.body(), LcGridData.class);
+    }
+
+    @Override
+    public List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId, String param, Long pageNum,
+        Long pageSize) {
+        HttpRequest request = HttpUtil.createGet(host + LcApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL);
+        request.auth(getAuthToken());
+        request.form("areaId", areaId);
+        request.form("limit", pageSize);
+        request.form("page", pageNum);
+        if (StringUtils.isNotEmpty(param)) {
+            request.form("param", param);
+        }
+        HttpResponse result = request.execute();
+        LcReturnObject returenData = JSONObject.parseObject(result.body(), LcReturnObject.class);
+        return JSONArray.parseArray(returenData.getData(), GridMemberPageListDTO.class);
+    }
+
+    @Override
+    public void automationUploadEventAndFile() {
+        List<EventDetailsVO> unUploadEventList = gridService.getUnUploadEvent();
+        unUploadEventList.forEach(eventInfoVo -> {
+            log.info("定时向浪潮服务器提交网格事件登记开始");
+            EventInfo eventInfo = new EventInfo();
+            String lcGrid = gridService.getLcGridIdByLocal(eventInfoVo.getGridId());
+            String lcGridUserId = gridService.getLcUserIdByLocalUserId(eventInfoVo.getGridMemberId().toString());
+            eventInfo.setGridId(lcGrid);
+            R grid = gridService.eventGridDataDetails(eventInfoVo.getGridId());
+            EventGridDataDetailsVO gridData = (EventGridDataDetailsVO)grid.getData();
+            eventInfo.setGridName(gridData.getGridName());
+            eventInfo.setCaseTypeCode(LocalEventToLangChaoEventTypeEnum.getCodeByName(eventInfoVo.getEventType()));
+            String caseTypeName = LocalEventToLangChaoEventTypeEnum.getEventNameByCode(eventInfoVo.getEventType());
+            eventInfo.setCaseTypeName(caseTypeName);
+            if (eventInfoVo.getEventCategory() != 1L) {
+                eventInfo.setHappenTime(String.valueOf(eventInfoVo.getPropagandaTime().getTime()));
+            } else {
+                eventInfo.setHappenTime(String.valueOf(eventInfoVo.getHappenTime().getTime()));
+            }
+            eventInfo.setHappenAddress(eventInfoVo.getHappenAddress());
+            String[] data = eventInfoVo.getHappentLatLng().split(",");
+            eventInfo.setLongitude(data[0]);
+            eventInfo.setLatitude(data[1]);
+            eventInfo.setCaseDescription(eventInfoVo.getEventDes());
+            eventInfo.setCaseRecordTime(String.valueOf(eventInfoVo.getCreateAt().getTime()));
+            eventInfo.setHandleType("REPORT");
+            eventInfo.setHandleDescription(eventInfoVo.getProcessDesc());
+            eventInfo.setDataId(eventInfoVo.getId().toString());
+            // 获取系统网格员映射的浪潮网格员对于的用户ID
+            eventInfo.setUserId(lcGridUserId);
+            eventInfo.setHandleTime(DateUtils.getCurrentDateTimeStamp().toString());
+            eventInfo.setCaseName(gridData.getGridName().concat(caseTypeName));
+            log.info("事件请求数据:{}", JSONObject.toJSONString(eventInfo));
+            String remoteData = submitEventRegister(eventInfo);
+            LcReturnObject lcReturnObject = JSONObject.parseObject(remoteData, LcReturnObject.class);
+            log.info("提交浪潮服务器,接口返回结果为:{}", remoteData);
+            if (lcReturnObject.getSuccess()) {
+                log.info("定时向浪潮服务器提交网格事件登记结束");
+                log.info("开始上传附件信息");
+                List<EventResourceVO> picsList = eventInfoVo.getPics();
+                uploadLcApiEventFile(eventInfoVo, picsList, "png");
+                List<EventResourceVO> audiosList = eventInfoVo.getAudios();
+                uploadLcApiEventFile(eventInfoVo, audiosList, "mp3");
+                List<EventResourceVO> videoList = eventInfoVo.getVideos();
+                uploadLcApiEventFile(eventInfoVo, videoList, "mp4");
+                log.info("结束上传附件信息");
+                gridService.updateLcUploadFlag(eventInfoVo.getId());
+            }
+        });
+    }
+
+    @Override
+    public String getFlowPersonVisitRecordDetailById(String recordId) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_FLOW_PERSON_DETAIL_URL);
+        request.auth(getAuthToken());
+        request.form("id", recordId);
+        HttpResponse result = request.execute();
+        return result.body();
+    }
+
+    @Override
+    public String getFlowPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO,
+        Long loginUserId) {
+        HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId,
+            host +
+            LcApiConstants.VISIT_RECORD_FLOW_PERSON_PAGE_URL, "flowPeopleId");
+        return result.body();
+    }
+
+    @Override
+    public String uploadFlowPersonVisitRecord(LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_FLOW_PERSON_SAVE_URL);
+        request.auth(getAuthToken());
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            // 对象转map
+            Map m = mapper.readValue(mapper.writeValueAsString(lcFlowPersonVisitRecordDTO), Map.class);
+            request.form(m);
+        } catch (JsonProcessingException e) {
+            log.info("方法uploadFlowPersonVisitRecord发生错误:{}", e.getMessage());
+        }
+        HttpResponse result = request.execute();
+        log.info("uploadFlowPersonVisitRecord上传浪潮事件信息:{}", result.body());
+        return result.body();
+    }
+
+    @Override
+    public String uploadKeyPersonVisitRecord(LcKeyPersonVisitRecordDTO lcKeyPersonVisitRecordDTO) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_KEY_PERSON_SAVE_REMOTE_URL);
+        request.auth(getAuthToken());
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            // 对象转map
+            Map m = mapper.readValue(mapper.writeValueAsString(lcKeyPersonVisitRecordDTO), Map.class);
+            request.form(m);
+        } catch (JsonProcessingException e) {
+            log.info("方法uploadKeyPersonVisitRecord发生错误:{}", e.getMessage());
+        }
+        HttpResponse result = request.execute();
+        log.info("uploadKeyPersonVisitRecord上传浪潮事件信息:{}", result.body());
+        return result.body();
+    }
+
+    @Override
+    public String getKeyPersonVisitRecordDetailById(String recordId) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_KEY_PERSON_DETAIL_URL);
+        request.auth(getAuthToken());
+        request.form("id", recordId);
+        HttpResponse result = request.execute();
+        return result.body();
+    }
+
+    @Override
+    public String getKeyPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO,
+        Long loginUserId) {
+        HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId,
+            host +
+            LcApiConstants.VISIT_RECORD_KEY_PERSON_PAGE_URL, "keyPersonId");
+        return result.body();
+    }
+
+    @Override
+    public void automationUploadVisitRecord() {
+        List<LcEventVisitingTasksListDTO> unUploadTaskList = gridService.getUnUploadVisitingTask();
+        unUploadTaskList.forEach(lcEventVisitingTasksListDTO -> {
+            String lcGrid = gridService.getLcGridIdByLocal(lcEventVisitingTasksListDTO.getGridId());
+            String lcGridUserId =
+                gridService.getLcUserIdByLocalUserId(lcEventVisitingTasksListDTO.getGridMember().toString());
+            R populationDetail = communityService.detailPopulation(lcEventVisitingTasksListDTO.getVisiterId(), null);
+            ComMngPopulationVO comMngPopulationVO = (ComMngPopulationVO)populationDetail.getData();
+            BcDictionaryItemVO diction = communityService.getByCode(DictionItemConstants.LC_CULTURE_LEVEL,
+                comMngPopulationVO.getCultureLevel().toString());
+            ComMngPopulationDTO comMngPopulationDTO =
+                CopyUtil.copyProperties(comMngPopulationVO, ComMngPopulationDTO.class);
+            if (diction != null) {
+                comMngPopulationDTO.setCultureLevel(diction.getDictItemName());
+            }
+            R grid = gridService.eventGridDataDetails(lcEventVisitingTasksListDTO.getGridId());
+            EventGridDataDetailsVO gridData = (EventGridDataDetailsVO)grid.getData();
+            String[] data = lcEventVisitingTasksListDTO.getHappentLatLng().split(",");
+            if (lcEventVisitingTasksListDTO.getVisiterType() != null) {
+                log.info("上传数据导重点人口走访记录表");
+                LcReturnObject lcReturnObject = requestLcKeyPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid,
+                    lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data);
+                if (LcRequestEnum.SUCCESS.getCode().equals(lcReturnObject.getCode())) {
+                    uploadVisitRecord(lcEventVisitingTasksListDTO);
+                    gridService.updateLcUploadFlagVisitingTask(lcEventVisitingTasksListDTO.getId());
+                }
+            } else {
+                log.info("上传数据导流动人口走访记录表");
+                LcReturnObject lcReturnObject = requestLcFlowPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid,
+                    lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data);
+                if (LcRequestEnum.SUCCESS.getCode().equals(lcReturnObject.getCode())) {
+                    uploadVisitRecord(lcEventVisitingTasksListDTO);
+                    gridService.updateLcUploadFlagVisitingTask(lcEventVisitingTasksListDTO.getId());
+                }
+            }
+        });
+    }
+
+    private void uploadVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO) {
+        log.info("开始上传走访任务附件文件");
+        List<EventResourceVO> picsList = lcEventVisitingTasksListDTO.getPics();
+        uploadVisitRecordFile(lcEventVisitingTasksListDTO, picsList, "IMAGE");
+        List<EventResourceVO> audiosList = lcEventVisitingTasksListDTO.getAudios();
+        uploadVisitRecordFile(lcEventVisitingTasksListDTO, audiosList, "AUDIO");
+        List<EventResourceVO> videoList = lcEventVisitingTasksListDTO.getVideos();
+        uploadVisitRecordFile(lcEventVisitingTasksListDTO, videoList, "VIDEO");
+        log.info("结束上传走访任务附件文件");
+    }
+
+    private void uploadVisitRecordFile(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO,
+        List<EventResourceVO> picsList, String type) {
+        picsList.forEach(eventResourceVO -> {
+            EventFile eventFile = new EventFile();
+            eventFile.setDataId(lcEventVisitingTasksListDTO.getId().toString());
+            eventFile.setFiles(eventResourceVO.getUrl());
+            eventFile.setType(type);
+            eventFile.setModule("key_person");
+            eventFile.setFileName(eventResourceVO.getResourceName());
+            submitEventOrVisitRecordRelationFile(eventFile);
+        });
+    }
+
+    @Override
+    public LcReturnObject requestLcFlowPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO,
+        String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) {
+        // 如果是流动人口走访
+        LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO = new LcFlowPersonVisitRecordDTO();
+        lcFlowPersonVisitRecordDTO.setId(lcEventVisitingTasksListDTO.getId().toString());
+        lcFlowPersonVisitRecordDTO.setUserId(lcGridUserId);
+        lcFlowPersonVisitRecordDTO.setGridPersonName(lcEventVisitingTasksListDTO.getGridMemberName());
+        lcFlowPersonVisitRecordDTO.setGridPersonPhone(lcEventVisitingTasksListDTO.getGridMenberTele());
+        JSONObject population = (JSONObject)JSONObject.toJSON(populationDetail);
+        lcFlowPersonVisitRecordDTO.setComMngPopulation(population.toJSONString());
+        lcFlowPersonVisitRecordDTO.setGridId(lcGrid);
+        lcFlowPersonVisitRecordDTO.setGridName(gridName);
+        lcFlowPersonVisitRecordDTO.setWorkWithPoliceMan("0");
+        lcFlowPersonVisitRecordDTO.setPoliceManName(null);
+        lcFlowPersonVisitRecordDTO.setPoliceManPhone(null);
+        lcFlowPersonVisitRecordDTO.setPoliceManWorkContent(null);
+        lcFlowPersonVisitRecordDTO.setVisitTime(lcEventVisitingTasksListDTO.getHappenTime().getTime());
+        lcFlowPersonVisitRecordDTO.setVisitAddress(lcEventVisitingTasksListDTO.getHappentAddress());
+        lcFlowPersonVisitRecordDTO.setLongitude(Double.valueOf(data[0]));
+        lcFlowPersonVisitRecordDTO.setLatitude(Double.valueOf(data[1]));
+        lcFlowPersonVisitRecordDTO.setHouseType(null);
+        lcFlowPersonVisitRecordDTO.setHouseAddress(lcEventVisitingTasksListDTO.getHappentAddress());
+        lcFlowPersonVisitRecordDTO.setIsReportInfo(null);
+        lcFlowPersonVisitRecordDTO.setHaveCertificate("0");
+        lcFlowPersonVisitRecordDTO.setCertificateType("身份证");
+        lcFlowPersonVisitRecordDTO.setCertificateNumber(population.getString("cardNo"));
+        lcFlowPersonVisitRecordDTO.setCertificateDeadTime("0");
+        lcFlowPersonVisitRecordDTO.setIsPropaganda("1");
+        lcFlowPersonVisitRecordDTO.setIsCheckReview("1");
+        lcFlowPersonVisitRecordDTO.setIsAbnormal(lcEventVisitingTasksListDTO.getException().toString());
+        lcFlowPersonVisitRecordDTO.setAbnormalSituation(lcEventVisitingTasksListDTO.getTableContentJson());
+        lcFlowPersonVisitRecordDTO.setRemark(lcEventVisitingTasksListDTO.getEventDes());
+        log.info("requestLcFlowPersonVisitRecord事件请求数据:{}", JSONObject.toJSONString(lcFlowPersonVisitRecordDTO));
+        String flowPersonData = uploadFlowPersonVisitRecord(lcFlowPersonVisitRecordDTO);
+        LcReturnObject lcReturnObject = JSONObject.parseObject(flowPersonData, LcReturnObject.class);
+        log.info("requestLcFlowPersonVisitRecord提交浪潮服务器,接口返回结果为:{}", lcReturnObject);
+        return lcReturnObject;
+    }
+
+    @Override
+    public LcReturnObject requestLcKeyPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO,
+        String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) {
+        LcKeyPersonVisitRecordDTO keyPersonVisitRecordDTO = new LcKeyPersonVisitRecordDTO();
+        keyPersonVisitRecordDTO.setId(lcEventVisitingTasksListDTO.getId().toString());
+        keyPersonVisitRecordDTO.setUserId(lcGridUserId);
+        keyPersonVisitRecordDTO.setGridPersonName(lcEventVisitingTasksListDTO.getGridMemberName());
+        keyPersonVisitRecordDTO.setGridPersonPhone(lcEventVisitingTasksListDTO.getGridMenberTele());
+        keyPersonVisitRecordDTO.setComMngPopulation(JSONObject.toJSONString(populationDetail));
+        keyPersonVisitRecordDTO.setGridId(lcGrid);
+        keyPersonVisitRecordDTO.setGridName(gridName);
+        keyPersonVisitRecordDTO.setVisitTime(lcEventVisitingTasksListDTO.getHappenTime().getTime());
+        keyPersonVisitRecordDTO.setVisitAddress(lcEventVisitingTasksListDTO.getHappentAddress());
+        keyPersonVisitRecordDTO.setLongitude(Double.valueOf(data[0]));
+        keyPersonVisitRecordDTO.setLatitude(Double.valueOf(data[1]));
+        keyPersonVisitRecordDTO.setFamilyMemberContact(lcEventVisitingTasksListDTO.getFamilyPhone());
+        keyPersonVisitRecordDTO.setHowLive(lcEventVisitingTasksListDTO.getFamilySource());
+        keyPersonVisitRecordDTO.setIsAbnormal(lcEventVisitingTasksListDTO.getException().toString());
+        keyPersonVisitRecordDTO.setAbnormalSituation(null);
+        keyPersonVisitRecordDTO.setAbnormalDes(lcEventVisitingTasksListDTO.getTableContentJson());
+        keyPersonVisitRecordDTO.setRemark(lcEventVisitingTasksListDTO.getEventDes());
+        keyPersonVisitRecordDTO
+            .setType(LcVisitRecordKeyPersonLabelEnum.getCnDescByName(lcEventVisitingTasksListDTO.getVisiterType()));
+        log.info("requestLcKeyPersonVisitRecord事件请求数据:{}", JSONObject.toJSONString(keyPersonVisitRecordDTO));
+        String remoteData = uploadKeyPersonVisitRecord(keyPersonVisitRecordDTO);
+        LcReturnObject lcReturnObject = JSONObject.parseObject(remoteData, LcReturnObject.class);
+        log.info("requestLcKeyPersonVisitRecord提交浪潮服务器,接口返回结果为:{}", remoteData);
+        return lcReturnObject;
+    }
+
+    private HttpResponse getHttpResponse(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId,
+        String requestUrl, String flowPeopleId) {
+        HttpRequest request = HttpUtil.createPost(requestUrl);
+        request.auth(getAuthToken());
+        request.form("userId", loginUserId);
+        request.form("gridId", personVisitRecordQueryDTO.getGridId());
+        request.form("limit", personVisitRecordQueryDTO.getLimit());
+        request.form("startNumber", personVisitRecordQueryDTO.getStartNumber());
+        request.form(flowPeopleId, personVisitRecordQueryDTO.getPersonId());
+        return request.execute();
+    }
+
+    private void uploadLcApiEventFile(EventDetailsVO eventInfoVo, List<EventResourceVO> picsList, String type) {
+        picsList.forEach(eventResourceVO -> {
+            EventFile eventFile = new EventFile();
+            eventFile.setDataId(eventInfoVo.getId().toString());
+            eventFile.setFiles(eventResourceVO.getUrl());
+            eventFile.setType(type);
+            eventFile.setModule("event");
+            eventFile.setFileName(eventResourceVO.getResourceName());
+            submitEventOrVisitRecordRelationFile(eventFile);
+        });
+    }
 }

--
Gitblit v1.7.1