| | |
| | | package com.panzhihua.serviceapi.biz.impl; |
| | | |
| | | import cn.hutool.http.HttpRequest; |
| | | import cn.hutool.http.HttpResponse; |
| | | import cn.hutool.http.HttpUtil; |
| | | import java.io.File; |
| | | import java.io.FileOutputStream; |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | 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 com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | |
| | | 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.BcDictionaryVO; |
| | | 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.utlis.StringUtils; |
| | | import com.panzhihua.serviceapi.biz.LcApiService; |
| | | import com.panzhihua.serviceapi.model.dto.*; |
| | | 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; |
| | | import java.io.OutputStream; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.TimeUnit; |
| | | 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 |
| | |
| | | |
| | | @Resource |
| | | private CommunityService communityService; |
| | | |
| | | /** |
| | | * 工具方法 inputStream 转 File |
| | | */ |
| | | 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()) { |
| | | return file; |
| | | } |
| | | OutputStream os = new FileOutputStream(file); |
| | | int bytesRead; |
| | | int len = 8192; |
| | | byte[] buffer = new byte[len]; |
| | | while ((bytesRead = ins.read(buffer, 0, len)) != -1) { |
| | | os.write(buffer, 0, bytesRead); |
| | | } |
| | | os.close(); |
| | | ins.close(); |
| | | return file; |
| | | } |
| | | |
| | | /** |
| | | * 从redis获取token |
| | |
| | | return valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN); |
| | | } else { |
| | | //如果第一次请求浪潮的token请求,请求完成后,保存对于的token到数据库中。便于12小时内重复调用 |
| | | HttpRequest request = HttpUtil.createPost(LcApiConstants.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(LcApiConstants.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 List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId,String param,Long pageNum,Long pageSize) { |
| | | public List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId, String param, Long pageNum, |
| | | Long pageSize) { |
| | | HttpRequest request = HttpUtil.createGet(LcApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL); |
| | | request.auth(getAuthToken()); |
| | | request.form("areaId", areaId); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public String getFlowPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId) { |
| | | HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId, LcApiConstants.VISIT_RECORD_FLOW_PERSON_PAGE_URL, "flowPeopleId"); |
| | | 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 getKeyPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId) { |
| | | HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId, LcApiConstants.VISIT_RECORD_KEY_PERSON_PAGE_URL, "keyPersonId"); |
| | | public String getKeyPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, |
| | | Long loginUserId) { |
| | | HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId, |
| | | LcApiConstants.VISIT_RECORD_KEY_PERSON_PAGE_URL, "keyPersonId"); |
| | | return result.body(); |
| | | } |
| | | |
| | |
| | | List<LcEventVisitingTasksListDTO> unUploadTaskList = gridService.getUnUploadVisitingTask(); |
| | | unUploadTaskList.forEach(lcEventVisitingTasksListDTO -> { |
| | | String lcGrid = gridService.getLcGridIdByLocal(lcEventVisitingTasksListDTO.getGridId()); |
| | | String lcGridUserId = gridService.getLcUserIdByLocalUserId(lcEventVisitingTasksListDTO.getGridMember().toString()); |
| | | String lcGridUserId = |
| | | gridService.getLcUserIdByLocalUserId(lcEventVisitingTasksListDTO.getGridMember().toString()); |
| | | R populationDetail = communityService.detailPopulation(lcEventVisitingTasksListDTO.getVisiterId()); |
| | | ComMngPopulationVO comMngPopulationVO = (ComMngPopulationVO) populationDetail.getData(); |
| | | BcDictionaryItemVO diction = communityService.getByCode(DictionItemConstants.LC_CULTURE_LEVEL, comMngPopulationVO.getCultureLevel().toString()); |
| | | ComMngPopulationDTO comMngPopulationDTO = CopyUtil.copyProperties(comMngPopulationVO, ComMngPopulationDTO.class); |
| | | 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()); |
| | | } |
| | |
| | | String[] data = lcEventVisitingTasksListDTO.getHappentLatLng().split(","); |
| | | if (lcEventVisitingTasksListDTO.getVisiterType() != null) { |
| | | log.info("上传数据导重点人口走访记录表"); |
| | | LcReturnObject lcReturnObject = requestLcKeyPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid, lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data); |
| | | 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); |
| | | LcReturnObject lcReturnObject = requestLcFlowPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid, |
| | | lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data); |
| | | if (LcRequestEnum.SUCCESS.getCode().equals(lcReturnObject.getCode())) { |
| | | uploadVisitRecord(lcEventVisitingTasksListDTO); |
| | | gridService.updateLcUploadFlagVisitingTask(lcEventVisitingTasksListDTO.getId()); |
| | |
| | | log.info("结束上传走访任务附件文件"); |
| | | } |
| | | |
| | | private void uploadVisitRecordFile(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, List<EventResourceVO> picsList, String type) { |
| | | private void uploadVisitRecordFile(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, |
| | | List<EventResourceVO> picsList, String type) { |
| | | picsList.forEach(eventResourceVO -> { |
| | | EventFile eventFile = new EventFile(); |
| | | eventFile.setDataId(lcEventVisitingTasksListDTO.getId().toString()); |
| | |
| | | }); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public LcReturnObject requestLcFlowPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) { |
| | | public LcReturnObject requestLcFlowPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, |
| | | String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) { |
| | | //如果是流动人口走访 |
| | | LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO = new LcFlowPersonVisitRecordDTO(); |
| | | lcFlowPersonVisitRecordDTO.setId(lcEventVisitingTasksListDTO.getId().toString()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public LcReturnObject requestLcKeyPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) { |
| | | 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.setAbnormalSituation(null); |
| | | keyPersonVisitRecordDTO.setAbnormalDes(lcEventVisitingTasksListDTO.getTableContentJson()); |
| | | keyPersonVisitRecordDTO.setRemark(lcEventVisitingTasksListDTO.getEventDes()); |
| | | keyPersonVisitRecordDTO.setType(LcVisitRecordKeyPersonLabelEnum.getCnDescByName(lcEventVisitingTasksListDTO.getVisiterType())); |
| | | keyPersonVisitRecordDTO |
| | | .setType(LcVisitRecordKeyPersonLabelEnum.getCnDescByName(lcEventVisitingTasksListDTO.getVisiterType())); |
| | | log.info("requestLcKeyPersonVisitRecord事件请求数据:{}", JSONObject.toJSONString(keyPersonVisitRecordDTO)); |
| | | String remoteData = uploadKeyPersonVisitRecord(keyPersonVisitRecordDTO); |
| | | LcReturnObject lcReturnObject = JSONObject.parseObject(remoteData, LcReturnObject.class); |
| | |
| | | return lcReturnObject; |
| | | } |
| | | |
| | | |
| | | private HttpResponse getHttpResponse(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId, String requestUrl, String flowPeopleId) { |
| | | private HttpResponse getHttpResponse(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId, |
| | | String requestUrl, String flowPeopleId) { |
| | | HttpRequest request = HttpUtil.createPost(requestUrl); |
| | | request.auth(getAuthToken()); |
| | | request.form("userId", loginUserId); |
| | |
| | | eventFile.setFileName(eventResourceVO.getResourceName()); |
| | | submitEventOrVisitRecordRelationFile(eventFile); |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 工具方法 |
| | | * inputStream 转 File |
| | | */ |
| | | 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()) { |
| | | return file; |
| | | } |
| | | OutputStream os = new FileOutputStream(file); |
| | | int bytesRead; |
| | | int len = 8192; |
| | | byte[] buffer = new byte[len]; |
| | | while ((bytesRead = ins.read(buffer, 0, len)) != -1) { |
| | | os.write(buffer, 0, bytesRead); |
| | | } |
| | | os.close(); |
| | | ins.close(); |
| | | return file; |
| | | } |
| | | } |