package com.shkpr.service.alambizplugin.controller; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.global.base.log.LogLevelFlag; import com.global.base.log.LogPrintMgr; import com.shkpr.service.alambizplugin.apiparam.GisSurveyCRSParams; import com.shkpr.service.alambizplugin.apiparam.GisSurveyCheckParams; import com.shkpr.service.alambizplugin.apiparam.GisSurveyThirdExportParams; import com.shkpr.service.alambizplugin.apiparam.GisSurveyThirdImportParams; import com.shkpr.service.alambizplugin.bizservice.GisSurveyCadConvertBizService; import com.shkpr.service.alambizplugin.bizservice.GisSurveySystemCheckBizService; import com.shkpr.service.alambizplugin.bizservice.GisSurveyThirdExportBizService; import com.shkpr.service.alambizplugin.bizservice.GisSurveyThirdImportBizService; import com.shkpr.service.alambizplugin.commtools.CRSUtil; import com.shkpr.service.alambizplugin.commtools.CommTool; import com.shkpr.service.alambizplugin.constants.ApiURI; import com.shkpr.service.alambizplugin.constants.CadEnum; import com.shkpr.service.alambizplugin.constants.CommAsyncStatusEnum; import com.shkpr.service.alambizplugin.constants.FileTypeEnum; import com.shkpr.service.alambizplugin.constants.GisSurveyImportStatusEnum; import com.shkpr.service.alambizplugin.constants.LogFlagBusiType; import com.shkpr.service.alambizplugin.constants.ResponseCode; import com.shkpr.service.alambizplugin.controllerfilter.TokenAuthenticationService; import com.shkpr.service.alambizplugin.controllerserializer.GeometrySerializer; import com.shkpr.service.alambizplugin.controllervalid.CommonParamValidSK; import com.shkpr.service.alambizplugin.dbdao.services.GisSurveyLayerApplyThirdCopyServiceImpl; import com.shkpr.service.alambizplugin.dbdao.services.intef.GisSurveyLayerApplyService; import com.shkpr.service.alambizplugin.dto.CommAsyncResult; import com.shkpr.service.alambizplugin.dto.CommCRSInfo; import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApplyThirdCopy; import com.shkpr.service.alambizplugin.dto.GisSurveySystemCheckResultDetail; import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportResult; import com.shkpr.service.alambizplugin.dto.PageResponse; import com.shkpr.service.alambizplugin.dto.ResponseRes; import com.shkpr.service.alambizplugin.exception.SelfException; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.locationtech.jts.geom.Geometry; import org.springframework.data.domain.Pageable; import org.springframework.data.web.PageableDefault; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; 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.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; @RequestMapping(ApiURI.URI_GIS_SURVEY_H) @RestController public class ApiGisSurveyController { //log private final String mStrClassName; private final String mBizType; //计数器 private final AtomicInteger mSeqSysCheckReq; private final AtomicInteger mSeqSysCheckCancelReq; private final AtomicInteger mSeqThirdImportReq; private final AtomicInteger mSeqThirdImportGetReq; private final AtomicInteger mSeqThirdImportCancelReq; private final AtomicInteger mSeqThirdImportPreviewReq; private final AtomicInteger mSeqThirdImportCommitReq; private final AtomicInteger mSeqCadConvertReq; private final AtomicInteger mSeqThirdExportReq; private final AtomicInteger mSeqThirdExportGetReq; private final AtomicInteger mSeqCadConvertGetReq; private final AtomicInteger mSeqCrsGetListReq; private final AtomicInteger mSeqCrsGetInfoReq; private final ObjectMapper objectMapper; private final GisSurveySystemCheckBizService systemCheckBizService; private final GisSurveyThirdImportBizService thirdImportBizService; private final GisSurveyThirdExportBizService thirdExportBizService; private final GisSurveyCadConvertBizService cadConvertBizService; private final GisSurveyLayerApplyService layerApplyService; private final GisSurveyLayerApplyThirdCopyServiceImpl layerApplyThirdCopyService; public ApiGisSurveyController(ObjectMapper objectMapper , GisSurveySystemCheckBizService systemCheckBizService , GisSurveyThirdImportBizService thirdImportBizService , GisSurveyThirdExportBizService thirdExportBizService , GisSurveyCadConvertBizService cadConvertBizService , GisSurveyLayerApplyService layerApplyService , GisSurveyLayerApplyThirdCopyServiceImpl layerApplyThirdCopyService) { mStrClassName = "ApiGisSurveyController"; mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue(); mSeqSysCheckReq = new AtomicInteger(0); mSeqSysCheckCancelReq = new AtomicInteger(0); mSeqThirdImportReq = new AtomicInteger(0); mSeqThirdImportGetReq = new AtomicInteger(0); mSeqThirdImportCancelReq = new AtomicInteger(0); mSeqThirdImportPreviewReq = new AtomicInteger(0); mSeqThirdImportCommitReq = new AtomicInteger(0); mSeqThirdExportReq = new AtomicInteger(0); mSeqThirdExportGetReq = new AtomicInteger(0); mSeqCadConvertReq = new AtomicInteger(0); mSeqCadConvertGetReq = new AtomicInteger(0); mSeqCrsGetListReq = new AtomicInteger(0); mSeqCrsGetInfoReq = new AtomicInteger(0); this.objectMapper = objectMapper; this.systemCheckBizService = systemCheckBizService; this.thirdImportBizService = thirdImportBizService; this.thirdExportBizService = thirdExportBizService; this.cadConvertBizService = cadConvertBizService; this.layerApplyService = layerApplyService; this.layerApplyThirdCopyService = layerApplyThirdCopyService; } /** * 执行系统检查 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param oJsonParam 参数 * @param bindRes bindingResult * @return 执行状态 * @throws SelfException selfException */ @PostMapping(value = ApiURI.URI_XXX_SYS_CHECK) public ResponseRes sysCheck(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestBody(required = false) @Validated(value = {CommonParamValidSK.class}) GisSurveyCheckParams oJsonParam , BindingResult bindRes) throws SelfException { //参数校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (oJsonParam == null || oJsonParam.getSubitemKeys() == null || bindRes.hasErrors() || !oJsonParam.checkValid()) { throw new SelfException(ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqSysCheckReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , oJsonParam)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_FAILED.toStrMsg()); //执行系统检查 CommAsyncResult> result = systemCheckBizService.sysCheckFun(oJsonParam); String resultStr = null; try { if (result != null) resultStr = objectMapper.writeValueAsString(result); } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } //执行成功 if (resultStr != null && !Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); resResult.setResdata(resultStr); } //执行失败 if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setResdata(resultStr); } //结果为空 if (resultStr == null) { resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_RESULT_NOT_FOUND.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_RESULT_NOT_FOUND.toStrMsg()); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 清除系统检查 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param oJsonParam 参数 * @param bindRes bindingResult * @return 清除状态 * @throws SelfException selfException */ @PostMapping(value = ApiURI.URI_XXX_SYS_CHECK_CANCEL) public ResponseRes cancelCheck(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestBody(required = false) @Validated(value = {CommonParamValidSK.class}) GisSurveyCheckParams oJsonParam , BindingResult bindRes) throws Exception { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (oJsonParam == null || bindRes.hasErrors() || !oJsonParam.checkValid()) { throw new SelfException(ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqSysCheckCancelReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , oJsonParam)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_CANCEL_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_CANCEL_FAILED.toStrMsg()); //清除检查 Integer cancelCheck = systemCheckBizService.cancelCheck(oJsonParam); //成功 if (Objects.equals(cancelCheck, CommAsyncStatusEnum.SUCCESS.getCode())) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); } //不存在 else if (Objects.equals(cancelCheck, CommAsyncStatusEnum.NOT_EXISTS.getCode())) { resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_NOT_FOUND.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_NOT_FOUND.toStrMsg()); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 执行第三方导入 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param files 文件列表 * @param operator 操作人 * @param jobId 任务id * @param nature 用水性质,supply/drain * @param resetNo 是否重置点号 * @param ignoreFail 是否忽略失败 * @return 第三方导入结果 */ @PostMapping(value = ApiURI.URI_XXX_THIRD_IMPORT) public ResponseRes thirdImport(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestParam(value = "files", required = false) List files , @RequestParam(value = "operator", required = false) String operator , @RequestParam(value = "jobId", required = false) String jobId , @RequestParam(value = "nature", required = false) String nature , @RequestParam(value = "resetNo", required = false) Boolean resetNo , @RequestParam(value = "checkConstraint", required = false, defaultValue = "false") Boolean checkConstraint , @RequestParam(value = "ignoreFail", required = false, defaultValue = "false") String ignoreFail) throws SelfException { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (StringUtils.isAnyBlank(operator, jobId, nature) || StringUtils.length(jobId) > 64 || CollectionUtils.isEmpty(files) || resetNo == null) { throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg())); } //构建入参数 GisSurveyThirdImportParams params = new GisSurveyThirdImportParams(files, operator, jobId, nature, resetNo, checkConstraint, Boolean.parseBoolean(ignoreFail)); //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , params)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg()); //执行第三方导入 GisSurveyThirdImportResult result = thirdImportBizService.thirdImport(params); String resultStr = null; try { if (result != null) resultStr = objectMapper.writeValueAsString(result); } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } //执行成功 if (resultStr != null && !Objects.equals(result.getImportStatus(), GisSurveyImportStatusEnum.FAIL.getCode())) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); resResult.setResdata(resultStr); } //执行失败 if (resultStr != null && Objects.equals(result.getImportStatus(), GisSurveyImportStatusEnum.FAIL.getCode())) { resResult.setResdata(resultStr); } //结果为空 if (resultStr == null) { resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg()); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 获取第三方导入结果 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param jobId 任务id * @param ignoreFail 是否忽略错误 * @return 第三方导入结果 */ @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_GET) public ResponseRes thirdImportGet(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestParam(value = "jobId", required = false) String jobId , @RequestParam(value = "ignoreFail", required = false, defaultValue = "false") String ignoreFail) throws SelfException { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (StringUtils.isAnyBlank(jobId) || StringUtils.length(jobId) > 64) { throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg())); } //构建入参数 GisSurveyThirdImportParams params = new GisSurveyThirdImportParams(jobId, Boolean.parseBoolean(ignoreFail)); //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportGetReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , jobId)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg()); //执行cad转换 GisSurveyThirdImportResult result = thirdImportBizService.getResult(params); String resultStr = null; try { if (result != null) resultStr = objectMapper.writeValueAsString(result); } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } //执行成功 if (resultStr != null && !Objects.equals(result.getImportStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); resResult.setResdata(resultStr); } //执行失败 if (resultStr != null && Objects.equals(result.getImportStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setResdata(resultStr); } //不存在 if (resultStr == null) { resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg()); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 清除第三方导入 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param jobId 任务id * @return 清除状态 * @throws SelfException selfException */ @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_CANCEL) public ResponseRes cancelImport(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestParam("jobId") String jobId) throws Exception { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (StringUtils.isBlank(jobId) || StringUtils.length(jobId) > 64) { throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportCancelReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , jobId)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg()); //清除导入 Integer cancelCheck = thirdImportBizService.cancelImport(jobId); //成功 if (Objects.equals(cancelCheck, CommAsyncStatusEnum.SUCCESS.getCode())) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); } //不存在 else if (Objects.equals(cancelCheck, CommAsyncStatusEnum.NOT_EXISTS.getCode())) { resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg()); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 预览第三方导入 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param jobId 任务id * @param pageable 分页 * @return 清除状态 * @throws SelfException selfException */ @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_PREVIEW) public ResponseRes previewImport(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestParam("jobId") String jobId, @PageableDefault() Pageable pageable) throws Exception { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (StringUtils.isBlank(jobId) || StringUtils.length(jobId) > 64) { throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportPreviewReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , jobId)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg()); //查询 PageResponse pageResponse = layerApplyThirdCopyService.findByJobId(jobId, pageable); resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); String pageStr = null; try { if (pageResponse != null) pageStr = objectMapper.writeValueAsString(pageResponse); } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } resResult.setResdata(pageStr); //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 提交第三方导入 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param jobId 任务id * @param operator 操作人 * @return 清除状态 * @throws SelfException selfException */ @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_COMMIT) public ResponseRes commitImport(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestParam("jobId") String jobId, @RequestParam("operator") String operator) throws Exception { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (StringUtils.isBlank(jobId) || StringUtils.length(jobId) > 64 || StringUtils.isBlank(operator) || StringUtils.length(operator) > 64) { throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportCommitReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , jobId)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg()); //提交导入 Boolean commitStatus = layerApplyService.mergeCopy(jobId, operator); //成功 if (Objects.equals(commitStatus, Boolean.TRUE)) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 执行第三方导出 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param oJsonParam 入参 * @return cad转换结果 */ @PostMapping(value = ApiURI.URI_XXX_THIRD_EXPORT) public ResponseRes thirdExport(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestBody(required = false) @Validated(value = {CommonParamValidSK.class}) GisSurveyThirdExportParams oJsonParam , BindingResult bindRes) throws SelfException { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (oJsonParam == null || bindRes.hasErrors()) { throw new SelfException(ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdExportReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , oJsonParam)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg()); //导出类型枚举 FileTypeEnum fileTypeEnum = FileTypeEnum.getFileType(oJsonParam.getFileType()); if (fileTypeEnum == null) fileTypeEnum = FileTypeEnum.EXCEL; //执行第三方导出 CommAsyncResult> result = thirdExportBizService.thirdExport(oJsonParam.getJobId(), fileTypeEnum, oJsonParam.getOperator()); String resultStr = null; try { if (result != null) resultStr = objectMapper.writeValueAsString(result); } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } //执行成功 if (resultStr != null && !Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); resResult.setResdata(resultStr); } //执行失败 if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setResdata(resultStr); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 获取第三方导出结果 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param jobId 任务id * @return cad转换结果 */ @GetMapping(value = ApiURI.URI_XXX_THIRD_EXPORT_GET) public ResponseRes thirdExportGet(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestParam(value = "jobId", required = false) String jobId) throws SelfException { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (StringUtils.isAnyBlank(jobId) || StringUtils.length(jobId) > 64) { throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdExportGetReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , jobId)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg()); //执行第三方导出 CommAsyncResult> result = thirdExportBizService.getResult(jobId); String resultStr = null; try { if (result != null) resultStr = objectMapper.writeValueAsString(result); } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } //执行成功 if (resultStr != null && !Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); resResult.setResdata(resultStr); } //执行失败 if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setResdata(resultStr); } //不存在 if (resultStr == null) { resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg()); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 执行cad转换 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param file 文件 * @param convertId 转换id * @param outputExtension 输出扩展名 * @param operator 操作人 * @return cad转换结果 */ @PostMapping(value = ApiURI.URI_XXX_CAD_CONVERT) public ResponseRes cadConvert(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestParam(value = "file", required = false) MultipartFile file , @RequestParam(value = "convertId", required = false) String convertId , @RequestParam(value = "outputExtension", required = false) String outputExtension , @RequestParam(value = "operator", required = false, defaultValue = "") String operator) throws SelfException { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (StringUtils.isAnyBlank(convertId, outputExtension) || StringUtils.length(convertId) > 64 || StringUtils.length(outputExtension) > 64) { throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg())); } //文件校验 if (file == null || file.isEmpty()) { throw new SelfException(ResponseCode.RESULT_FILE_EMPTY_ROWS.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.RESULT_FILE_EMPTY_ROWS.toStrMsg())); } String originalFilename = file.getOriginalFilename(); if (originalFilename == null) { throw new SelfException(ResponseCode.RESULT_FILE_EMPTY_ROWS.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.RESULT_FILE_EMPTY_ROWS.toStrMsg())); } //文件类型校验 String inputExtension = originalFilename .substring(originalFilename.lastIndexOf(".") + 1) .toLowerCase(); CadEnum inputCadEnum = CadEnum.getCadEnum(inputExtension); CadEnum outCadEnum = CadEnum.getCadEnum(outputExtension); if (inputCadEnum == null || outCadEnum == null || !inputCadEnum.getInput() || !outCadEnum.getOutput()) { throw new SelfException(ResponseCode.RESULT_FILE_INVALID_TYPE.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.RESULT_FILE_INVALID_TYPE.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqCadConvertReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , convertId)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg()); //执行cad转换 CommAsyncResult result = cadConvertBizService.cadConvert(file, convertId, outCadEnum, operator); String resultStr = null; try { if (result != null) resultStr = objectMapper.writeValueAsString(result); } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } //执行成功 if (resultStr != null && !Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); resResult.setResdata(resultStr); } //执行失败 if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setResdata(resultStr); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 获取cad转换结果 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @param convertId 转换id * @return cad转换结果 */ @GetMapping(value = ApiURI.URI_XXX_CAD_CONVERT_GET) public ResponseRes cadConvertGet(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestParam(value = "convertId", required = false) String convertId) throws SelfException { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (StringUtils.isAnyBlank(convertId) || StringUtils.length(convertId) > 64) { throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqCadConvertGetReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} param:%s begin====>" , strPlatform , URI_PATH , strRunSeq , convertId)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg()); //执行cad转换 CommAsyncResult result = cadConvertBizService.getResult(convertId); String resultStr = null; try { if (result != null) resultStr = objectMapper.writeValueAsString(result); } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } //执行成功 if (resultStr != null && !Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); resResult.setResdata(resultStr); } //执行失败 if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) { resResult.setResdata(resultStr); } //不存在 if (resultStr == null) { resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg()); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 获取坐标系列表 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @return crs列表 */ @GetMapping(value = ApiURI.URI_XXX_CRS_GET_LIST) public ResponseRes crsGetList(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent) { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqCrsGetListReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} begin====>" , strPlatform , URI_PATH , strRunSeq)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_BAD.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_BAD.toStrMsg()); //获取crs列表 List result = CRSUtil.getList(); String resultStr = null; try { if (CollectionUtils.isNotEmpty(result)) resultStr = objectMapper.writeValueAsString(result); } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } //执行成功 if (resultStr != null) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); resResult.setResdata(resultStr); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 获取坐标系信息 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @return crs信息 */ @GetMapping(value = ApiURI.URI_XXX_CRS_GET_INFO) public ResponseRes crsGetInfo(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestParam(value = "code", required = false) String code) throws SelfException { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (StringUtils.isAnyBlank(code) || StringUtils.length(code) > 64) { throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqCrsGetInfoReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} begin====>" , strPlatform , URI_PATH , strRunSeq)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_BAD.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_BAD.toStrMsg()); //获取crs信息 CommCRSInfo result = CRSUtil.getInfo(code); String resultStr = null; try { if (result != null) resultStr = objectMapper.writeValueAsString(result); } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } //执行成功 if (resultStr != null) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); resResult.setResdata(resultStr); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } /** * 坐标系转换 * * @param request request * @param strClientType 客户端类型 * @param strUserAgent 用户信息 * @return crs信息 */ @PostMapping(value = ApiURI.URI_XXX_CRS_TRANSFORM) public ResponseRes crsTransform(HttpServletRequest request , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent , @RequestBody(required = false) @Validated(value = {CommonParamValidSK.class}) GisSurveyCRSParams oJsonParam , BindingResult bindRes) throws SelfException { //入参校验 final String URI_PATH = request.getRequestURI(); final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent); final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID); if (oJsonParam == null || bindRes.hasErrors() || oJsonParam.getGeometry()==null) { throw new SelfException(ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrCode() , String.format(ApiURI.EXCEPTION_FORMAT , strPlatform , URI_PATH , ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrMsg())); } //begin long llReqBefore = System.currentTimeMillis(); String strRunSeq = String.format("%d-%d", llReqBefore, mSeqCrsGetInfoReq.incrementAndGet()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} begin====>" , strPlatform , URI_PATH , strRunSeq)); //构建result ResponseRes resResult = new ResponseRes<>(); resResult.setRescode(ResponseCode.RESULT_BAD.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_BAD.toStrMsg()); //转换坐标系 Geometry result = CRSUtil.transform(oJsonParam.getGeometry(), oJsonParam.getSourceCRSCode(), oJsonParam.getTargetCRSCode()); String resultStr = null; try { if (result != null) { //创建objectMapper,并注册geo序列化 ObjectMapper objectMapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); module.addSerializer(Geometry.class, new GeometrySerializer()); objectMapper.registerModule(module); resultStr = objectMapper.writeValueAsString(result); } } catch (JsonProcessingException e) { LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName , String.format("Json序列化异常: error:%s", e)); } //执行成功 if (resultStr != null) { resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode()); resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg()); resResult.setResdata(resultStr); } //end resResult.setTimestamp(System.currentTimeMillis()); LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<====" , strPlatform , URI_PATH , strRunSeq , resResult.getRescode() , resResult.getResmsg() , resResult.getTimestamp() - llReqBefore)); return resResult; } }