From c3a5a9ae94e5604160f0ba4ac6148934db84f26b Mon Sep 17 00:00:00 2001
From: manailin <261030956@qq.com>
Date: 星期日, 27 六月 2021 15:58:50 +0800
Subject: [PATCH] [新增]走访任务向市平台推送。推送市平台测环境

---
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java |  240 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 223 insertions(+), 17 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 4700bb5..8a332da 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
@@ -7,20 +7,27 @@
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.panzhihua.common.api.LangchaoApiConstants;
+import com.panzhihua.common.api.LcApiConstants;
+import com.panzhihua.common.api.LcRequestEnum;
 import com.panzhihua.common.api.LcReturnObject;
+import com.panzhihua.common.api.LcVisitRecordKeyPersonLabelEnum;
 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.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.community.CommunityService;
 import com.panzhihua.common.service.grid.GridService;
 import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.serviceapi.biz.LcApiService;
+import com.panzhihua.serviceapi.model.dto.LcFlowPersonVisitRecordDTO;
 import com.panzhihua.serviceapi.model.dto.LcGridData;
+import com.panzhihua.serviceapi.model.dto.LcKeyPersonVisitRecordDTO;
+import com.panzhihua.serviceapi.model.dto.LcKeyPersonVisitRecordQueryDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -55,6 +62,9 @@
     @Autowired
     private StringRedisTemplate redisTemplate;
 
+    @Resource
+    private CommunityService communityService;
+
     /**
      * 从redis获取token
      *
@@ -62,31 +72,32 @@
      */
     private String getAuthToken() {
         ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
-        if (valueOperations.get(LangchaoApiConstants.LANG_CHAO_TOKEN) == null) {
-            saveTokenFromRemoteRequest("18080799023", "123456");
+        if (valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN) == null) {
+            saveTokenFromRemoteRequest(LcApiConstants.LC_UPLOAD_NAME, LcApiConstants.LC_UPLOAD_PASSWORD);
         }
-        return valueOperations.get(LangchaoApiConstants.LANG_CHAO_TOKEN);
+        return valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN);
     }
 
     @Override
     public String saveTokenFromRemoteRequest(String name, String password) {
-        if (redisTemplate.hasKey(LangchaoApiConstants.LANG_CHAO_TOKEN)) {
+        Boolean authToken = redisTemplate.hasKey(LcApiConstants.LANG_CHAO_TOKEN);
+        if (authToken != null) {
             //如果redis存在token,直接返回redis存储的token
             ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
-            return valueOperations.get(LangchaoApiConstants.LANG_CHAO_TOKEN);
+            return valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN);
         } else {
             //如果第一次请求浪潮的token请求,请求完成后,保存对于的token到数据库中。便于12小时内重复调用
-            HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_GET_TOKEN_URL.replace("#username", name).replace("#password", password));
+            HttpRequest request = HttpUtil.createPost(LcApiConstants.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);
+            valueOperations.set(LcApiConstants.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);
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_EVENT_CATEGORY_URL);
         request.auth(getAuthToken());
         HttpResponse result = request.execute();
         return result.body();
@@ -94,7 +105,7 @@
 
     @Override
     public String submitEventRegister(EventInfo eventInfo) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_REGIST_EVENT_URL);
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_REGIST_EVENT_URL);
         request.auth(getAuthToken());
         ObjectMapper mapper = new ObjectMapper();
         try {
@@ -110,8 +121,8 @@
     }
 
     @Override
-    public R submitEventRelationFile(EventFile eventFile) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_EVENT_FILE_UPLOAD_URL);
+    public R submitEventOrVisitRecordRelationFile(EventFile eventFile) {
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_EVENT_FILE_UPLOAD_URL);
         request.auth(getAuthToken());
         try {
             HttpURLConnection httpUrl = (HttpURLConnection) new URL(eventFile.getFiles()).openConnection();
@@ -133,7 +144,7 @@
 
     @Override
     public String getEventInfoById(String eventId) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL);
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL);
         request.auth(getAuthToken());
         request.form("eventId", eventId);
         HttpResponse result = request.execute();
@@ -142,7 +153,7 @@
 
     @Override
     public List<LcGridData> getGridListByAreaId(String areaId) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL);
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL);
         request.auth(getAuthToken());
         request.form("areaId", areaId);
         HttpResponse result = request.execute();
@@ -151,7 +162,7 @@
 
     @Override
     public String getGridMemberListByAreaIdOrName(String areaId) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL);
+        HttpRequest request = HttpUtil.createGet(LcApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL);
         request.auth(getAuthToken());
         request.form("areaId", areaId);
         HttpResponse result = request.execute();
@@ -210,6 +221,201 @@
         });
     }
 
+    @Override
+    public String getFlowPersonVisitRecordDetailById(String recordId) {
+        HttpRequest request = HttpUtil.createPost(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, LcApiConstants.VISIT_RECORD_FLOW_PERSON_PAGE_URL, "flowPeopleId");
+        return result.body();
+    }
+
+    @Override
+    public String uploadFlowPersonVisitRecord(LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO) {
+        HttpRequest request = HttpUtil.createPost(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("submit上传浪潮事件信息:{}", result.body());
+        return result.body();
+    }
+
+    @Override
+    public String uploadKeyPersonVisitRecord(LcKeyPersonVisitRecordDTO lcKeyPersonVisitRecordDTO) {
+        HttpRequest request = HttpUtil.createPost(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("submit上传浪潮事件信息:{}", result.body());
+        return result.body();
+    }
+
+    @Override
+    public String getKeyPersonVisitRecordDetailById(String recordId) {
+        HttpRequest request = HttpUtil.createPost(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, 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());
+            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, populationDetail.getData(), 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, populationDetail.getData(), 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("事件请求数据:{}", JSONObject.toJSONString(lcFlowPersonVisitRecordDTO));
+        String flowPersonData = uploadFlowPersonVisitRecord(lcFlowPersonVisitRecordDTO);
+        LcReturnObject lcReturnObject = JSONObject.parseObject(flowPersonData, LcReturnObject.class);
+        log.info("提交浪潮服务器,接口返回结果为:{}", 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("事件请求数据:{}", JSONObject.toJSONString(keyPersonVisitRecordDTO));
+        String remoteData = uploadKeyPersonVisitRecord(keyPersonVisitRecordDTO);
+        LcReturnObject lcReturnObject = JSONObject.parseObject(remoteData, LcReturnObject.class);
+        log.info("提交浪潮服务器,接口返回结果为:{}", 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();
@@ -218,7 +424,7 @@
             eventFile.setType(type);
             eventFile.setModule("event");
             eventFile.setFileName(eventResourceVO.getResourceName());
-            submitEventRelationFile(eventFile);
+            submitEventOrVisitRecordRelationFile(eventFile);
         });
     }
 
@@ -226,7 +432,7 @@
      * 工具方法
      * 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()) {

--
Gitblit v1.7.1