ApiGisSurveyController.java 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981
  1. package com.shkpr.service.alambizplugin.controller;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import com.global.base.log.LogLevelFlag;
  5. import com.global.base.log.LogPrintMgr;
  6. import com.shkpr.service.alambizplugin.apiparam.GisSurveyCheckParams;
  7. import com.shkpr.service.alambizplugin.apiparam.GisSurveyThirdExportParams;
  8. import com.shkpr.service.alambizplugin.apiparam.GisSurveyThirdImportParams;
  9. import com.shkpr.service.alambizplugin.bizservice.GisSurveyCadConvertBizService;
  10. import com.shkpr.service.alambizplugin.bizservice.GisSurveySystemCheckBizService;
  11. import com.shkpr.service.alambizplugin.bizservice.GisSurveyThirdExportBizService;
  12. import com.shkpr.service.alambizplugin.bizservice.GisSurveyThirdImportBizService;
  13. import com.shkpr.service.alambizplugin.commtools.CommTool;
  14. import com.shkpr.service.alambizplugin.constants.ApiURI;
  15. import com.shkpr.service.alambizplugin.constants.CadEnum;
  16. import com.shkpr.service.alambizplugin.constants.CommAsyncStatusEnum;
  17. import com.shkpr.service.alambizplugin.constants.FileTypeEnum;
  18. import com.shkpr.service.alambizplugin.constants.GisSurveyImportStatusEnum;
  19. import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
  20. import com.shkpr.service.alambizplugin.constants.ResponseCode;
  21. import com.shkpr.service.alambizplugin.controllerfilter.TokenAuthenticationService;
  22. import com.shkpr.service.alambizplugin.controllervalid.CommonParamValidSK;
  23. import com.shkpr.service.alambizplugin.dbdao.services.GisSurveyLayerApplyThirdCopyServiceImpl;
  24. import com.shkpr.service.alambizplugin.dbdao.services.intef.GisSurveyLayerApplyService;
  25. import com.shkpr.service.alambizplugin.dto.CommAsyncResult;
  26. import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApplyThirdCopy;
  27. import com.shkpr.service.alambizplugin.dto.GisSurveySystemCheckResult;
  28. import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportResult;
  29. import com.shkpr.service.alambizplugin.dto.PageResponse;
  30. import com.shkpr.service.alambizplugin.dto.ResponseRes;
  31. import com.shkpr.service.alambizplugin.exception.SelfException;
  32. import org.apache.commons.collections4.CollectionUtils;
  33. import org.apache.commons.lang3.StringUtils;
  34. import org.springframework.data.domain.Pageable;
  35. import org.springframework.data.web.PageableDefault;
  36. import org.springframework.validation.BindingResult;
  37. import org.springframework.validation.annotation.Validated;
  38. import org.springframework.web.bind.annotation.GetMapping;
  39. import org.springframework.web.bind.annotation.PostMapping;
  40. import org.springframework.web.bind.annotation.RequestBody;
  41. import org.springframework.web.bind.annotation.RequestHeader;
  42. import org.springframework.web.bind.annotation.RequestMapping;
  43. import org.springframework.web.bind.annotation.RequestParam;
  44. import org.springframework.web.bind.annotation.RestController;
  45. import org.springframework.web.multipart.MultipartFile;
  46. import javax.servlet.http.HttpServletRequest;
  47. import java.util.List;
  48. import java.util.Map;
  49. import java.util.Objects;
  50. import java.util.concurrent.atomic.AtomicInteger;
  51. @RequestMapping(ApiURI.URI_GIS_SURVEY_H)
  52. @RestController
  53. public class ApiGisSurveyController {
  54. //log
  55. private final String mStrClassName;
  56. private final String mBizType;
  57. //计数器
  58. private final AtomicInteger mSeqSysCheckReq;
  59. private final AtomicInteger mSeqSysCheckCancelReq;
  60. private final AtomicInteger mSeqThirdImportReq;
  61. private final AtomicInteger mSeqThirdImportGetReq;
  62. private final AtomicInteger mSeqThirdImportCancelReq;
  63. private final AtomicInteger mSeqThirdImportPreviewReq;
  64. private final AtomicInteger mSeqThirdImportCommitReq;
  65. private final AtomicInteger mSeqCadConvertReq;
  66. private final AtomicInteger mSeqThirdExportReq;
  67. private final AtomicInteger mSeqThirdExportGetReq;
  68. private final AtomicInteger mSeqCadConvertGetReq;
  69. private final ObjectMapper objectMapper;
  70. private final GisSurveySystemCheckBizService systemCheckBizService;
  71. private final GisSurveyThirdImportBizService thirdImportBizService;
  72. private final GisSurveyThirdExportBizService thirdExportBizService;
  73. private final GisSurveyCadConvertBizService cadConvertBizService;
  74. private final GisSurveyLayerApplyService layerApplyService;
  75. private final GisSurveyLayerApplyThirdCopyServiceImpl layerApplyThirdCopyService;
  76. public ApiGisSurveyController(ObjectMapper objectMapper
  77. , GisSurveySystemCheckBizService systemCheckBizService
  78. , GisSurveyThirdImportBizService thirdImportBizService
  79. , GisSurveyThirdExportBizService thirdExportBizService
  80. , GisSurveyCadConvertBizService cadConvertBizService
  81. , GisSurveyLayerApplyService layerApplyService
  82. , GisSurveyLayerApplyThirdCopyServiceImpl layerApplyThirdCopyService) {
  83. mStrClassName = "ApiGisSurveyController";
  84. mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
  85. mSeqSysCheckReq = new AtomicInteger(0);
  86. mSeqSysCheckCancelReq = new AtomicInteger(0);
  87. mSeqThirdImportReq = new AtomicInteger(0);
  88. mSeqThirdImportGetReq = new AtomicInteger(0);
  89. mSeqThirdImportCancelReq = new AtomicInteger(0);
  90. mSeqThirdImportPreviewReq = new AtomicInteger(0);
  91. mSeqThirdImportCommitReq = new AtomicInteger(0);
  92. mSeqThirdExportReq = new AtomicInteger(0);
  93. mSeqThirdExportGetReq = new AtomicInteger(0);
  94. mSeqCadConvertReq = new AtomicInteger(0);
  95. mSeqCadConvertGetReq = new AtomicInteger(0);
  96. this.objectMapper = objectMapper;
  97. this.systemCheckBizService = systemCheckBizService;
  98. this.thirdImportBizService = thirdImportBizService;
  99. this.thirdExportBizService = thirdExportBizService;
  100. this.cadConvertBizService = cadConvertBizService;
  101. this.layerApplyService = layerApplyService;
  102. this.layerApplyThirdCopyService = layerApplyThirdCopyService;
  103. }
  104. /**
  105. * 执行系统检查
  106. *
  107. * @param request request
  108. * @param strClientType 客户端类型
  109. * @param strUserAgent 用户信息
  110. * @param oJsonParam 参数
  111. * @param bindRes bindingResult
  112. * @return 执行状态
  113. * @throws SelfException selfException
  114. */
  115. @PostMapping(value = ApiURI.URI_XXX_SYS_CHECK)
  116. public ResponseRes<String> sysCheck(HttpServletRequest request
  117. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  118. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  119. , @RequestBody(required = false) @Validated(value = {CommonParamValidSK.class}) GisSurveyCheckParams oJsonParam
  120. , BindingResult bindRes) throws SelfException {
  121. //参数校验
  122. final String URI_PATH = request.getRequestURI();
  123. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  124. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  125. if (oJsonParam == null || bindRes.hasErrors() || !oJsonParam.checkValid()) {
  126. throw new SelfException(ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrCode()
  127. , String.format(ApiURI.EXCEPTION_FORMAT
  128. , strPlatform
  129. , URI_PATH
  130. , ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrMsg()));
  131. }
  132. //begin
  133. long llReqBefore = System.currentTimeMillis();
  134. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqSysCheckReq.incrementAndGet());
  135. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  136. , String.format("%s:%s seq:{%s} param:%s begin====>"
  137. , strPlatform
  138. , URI_PATH
  139. , strRunSeq
  140. , oJsonParam));
  141. //构建result
  142. ResponseRes<String> resResult = new ResponseRes<>();
  143. resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_FAILED.toStrCode());
  144. resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_FAILED.toStrMsg());
  145. //执行系统检查
  146. GisSurveySystemCheckResult result = systemCheckBizService.sysCheckFun(oJsonParam);
  147. String resultStr = null;
  148. try {
  149. if (result != null) resultStr = objectMapper.writeValueAsString(result);
  150. } catch (JsonProcessingException e) {
  151. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
  152. , String.format("Json序列化异常: error:%s", e));
  153. }
  154. //执行成功
  155. if (resultStr != null && !Objects.equals(result.getCheckStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  156. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  157. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  158. resResult.setResdata(resultStr);
  159. }
  160. //执行失败
  161. if (resultStr != null && Objects.equals(result.getCheckStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  162. resResult.setResdata(resultStr);
  163. }
  164. //结果为空
  165. if (resultStr == null) {
  166. resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_RESULT_NOT_FOUND.toStrCode());
  167. resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_RESULT_NOT_FOUND.toStrMsg());
  168. }
  169. //end
  170. resResult.setTimestamp(System.currentTimeMillis());
  171. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  172. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  173. , strPlatform
  174. , URI_PATH
  175. , strRunSeq
  176. , resResult.getRescode()
  177. , resResult.getResmsg()
  178. , resResult.getTimestamp() - llReqBefore));
  179. return resResult;
  180. }
  181. /**
  182. * 清除系统检查
  183. *
  184. * @param request request
  185. * @param strClientType 客户端类型
  186. * @param strUserAgent 用户信息
  187. * @param oJsonParam 参数
  188. * @param bindRes bindingResult
  189. * @return 清除状态
  190. * @throws SelfException selfException
  191. */
  192. @PostMapping(value = ApiURI.URI_XXX_SYS_CHECK_CANCEL)
  193. public ResponseRes<?> cancelCheck(HttpServletRequest request
  194. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  195. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  196. , @RequestBody(required = false) @Validated(value = {CommonParamValidSK.class}) GisSurveyCheckParams oJsonParam
  197. , BindingResult bindRes) throws Exception {
  198. //入参校验
  199. final String URI_PATH = request.getRequestURI();
  200. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  201. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  202. if (oJsonParam == null || bindRes.hasErrors() || !oJsonParam.checkValid()) {
  203. throw new SelfException(ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrCode()
  204. , String.format(ApiURI.EXCEPTION_FORMAT
  205. , strPlatform
  206. , URI_PATH
  207. , ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrMsg()));
  208. }
  209. //begin
  210. long llReqBefore = System.currentTimeMillis();
  211. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqSysCheckCancelReq.incrementAndGet());
  212. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  213. , String.format("%s:%s seq:{%s} param:%s begin====>"
  214. , strPlatform
  215. , URI_PATH
  216. , strRunSeq
  217. , oJsonParam));
  218. //构建result
  219. ResponseRes<Boolean> resResult = new ResponseRes<>();
  220. resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_CANCEL_FAILED.toStrCode());
  221. resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_CANCEL_FAILED.toStrMsg());
  222. //清除检查
  223. GisSurveySystemCheckResult cancelCheck = systemCheckBizService.cancelCheck(oJsonParam);
  224. //成功
  225. if (Objects.equals(cancelCheck.getCheckStatus(), CommAsyncStatusEnum.SUCCESS.getCode())) {
  226. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  227. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  228. }
  229. //不存在
  230. else if (Objects.equals(cancelCheck.getCheckStatus(), CommAsyncStatusEnum.NOT_EXISTS.getCode())) {
  231. resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_NOT_FOUND.toStrCode());
  232. resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_NOT_FOUND.toStrMsg());
  233. }
  234. //end
  235. resResult.setTimestamp(System.currentTimeMillis());
  236. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  237. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  238. , strPlatform
  239. , URI_PATH
  240. , strRunSeq
  241. , resResult.getRescode()
  242. , resResult.getResmsg()
  243. , resResult.getTimestamp() - llReqBefore));
  244. return resResult;
  245. }
  246. /**
  247. * 执行第三方导入
  248. *
  249. * @param request request
  250. * @param strClientType 客户端类型
  251. * @param strUserAgent 用户信息
  252. * @param files 文件列表
  253. * @param operator 操作人
  254. * @param jobId 任务id
  255. * @param nature 用水性质,supply/drain
  256. * @param resetNo 是否重置点号
  257. * @param ignoreFail 是否忽略失败
  258. * @return 第三方导入结果
  259. */
  260. @PostMapping(value = ApiURI.URI_XXX_THIRD_IMPORT)
  261. public ResponseRes<String> thirdImport(HttpServletRequest request
  262. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  263. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  264. , @RequestParam(value = "files", required = false) List<MultipartFile> files
  265. , @RequestParam(value = "operator", required = false) String operator
  266. , @RequestParam(value = "jobId", required = false) String jobId
  267. , @RequestParam(value = "nature", required = false) String nature
  268. , @RequestParam(value = "resetNo", required = false) Boolean resetNo
  269. , @RequestParam(value = "ignoreFail", required = false, defaultValue = "false") String ignoreFail) throws SelfException {
  270. //入参校验
  271. final String URI_PATH = request.getRequestURI();
  272. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  273. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  274. if (StringUtils.isAnyBlank(operator, jobId, nature) || StringUtils.length(jobId) > 64 || CollectionUtils.isEmpty(files)) {
  275. throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode()
  276. , String.format(ApiURI.EXCEPTION_FORMAT
  277. , strPlatform
  278. , URI_PATH
  279. , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg()));
  280. }
  281. //构建入参数
  282. GisSurveyThirdImportParams params = new GisSurveyThirdImportParams(files, operator, jobId, nature, resetNo, Boolean.parseBoolean(ignoreFail));
  283. //begin
  284. long llReqBefore = System.currentTimeMillis();
  285. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportReq.incrementAndGet());
  286. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  287. , String.format("%s:%s seq:{%s} param:%s begin====>"
  288. , strPlatform
  289. , URI_PATH
  290. , strRunSeq
  291. , params));
  292. //构建result
  293. ResponseRes<String> resResult = new ResponseRes<>();
  294. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
  295. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
  296. //执行第三方导入
  297. GisSurveyThirdImportResult result = thirdImportBizService.thirdImport(params);
  298. String resultStr = null;
  299. try {
  300. if (result != null) resultStr = objectMapper.writeValueAsString(result);
  301. } catch (JsonProcessingException e) {
  302. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
  303. , String.format("Json序列化异常: error:%s", e));
  304. }
  305. //执行成功
  306. if (resultStr != null && !Objects.equals(result.getImportStatus(), GisSurveyImportStatusEnum.FAIL.getCode())) {
  307. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  308. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  309. resResult.setResdata(resultStr);
  310. }
  311. //执行失败
  312. if (resultStr != null && Objects.equals(result.getImportStatus(), GisSurveyImportStatusEnum.FAIL.getCode())) {
  313. resResult.setResdata(resultStr);
  314. }
  315. //结果为空
  316. if (resultStr == null) {
  317. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode());
  318. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg());
  319. }
  320. //end
  321. resResult.setTimestamp(System.currentTimeMillis());
  322. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  323. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  324. , strPlatform
  325. , URI_PATH
  326. , strRunSeq
  327. , resResult.getRescode()
  328. , resResult.getResmsg()
  329. , resResult.getTimestamp() - llReqBefore));
  330. return resResult;
  331. }
  332. /**
  333. * 获取第三方导入结果
  334. *
  335. * @param request request
  336. * @param strClientType 客户端类型
  337. * @param strUserAgent 用户信息
  338. * @param jobId 任务id
  339. * @param ignoreFail 是否忽略错误
  340. * @return 第三方导入结果
  341. */
  342. @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_GET)
  343. public ResponseRes<String> thirdImportGet(HttpServletRequest request
  344. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  345. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  346. , @RequestParam(value = "jobId", required = false) String jobId
  347. , @RequestParam(value = "ignoreFail", required = false, defaultValue = "false") String ignoreFail) throws SelfException {
  348. //入参校验
  349. final String URI_PATH = request.getRequestURI();
  350. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  351. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  352. if (StringUtils.isAnyBlank(jobId) || StringUtils.length(jobId) > 64) {
  353. throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode()
  354. , String.format(ApiURI.EXCEPTION_FORMAT
  355. , strPlatform
  356. , URI_PATH
  357. , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg()));
  358. }
  359. //构建入参数
  360. GisSurveyThirdImportParams params = new GisSurveyThirdImportParams(jobId, Boolean.parseBoolean(ignoreFail));
  361. //begin
  362. long llReqBefore = System.currentTimeMillis();
  363. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportGetReq.incrementAndGet());
  364. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  365. , String.format("%s:%s seq:{%s} param:%s begin====>"
  366. , strPlatform
  367. , URI_PATH
  368. , strRunSeq
  369. , jobId));
  370. //构建result
  371. ResponseRes<String> resResult = new ResponseRes<>();
  372. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
  373. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
  374. //执行cad转换
  375. GisSurveyThirdImportResult result = thirdImportBizService.getResult(params);
  376. String resultStr = null;
  377. try {
  378. if (result != null) resultStr = objectMapper.writeValueAsString(result);
  379. } catch (JsonProcessingException e) {
  380. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
  381. , String.format("Json序列化异常: error:%s", e));
  382. }
  383. //执行成功
  384. if (resultStr != null && !Objects.equals(result.getImportStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  385. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  386. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  387. resResult.setResdata(resultStr);
  388. }
  389. //执行失败
  390. if (resultStr != null && Objects.equals(result.getImportStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  391. resResult.setResdata(resultStr);
  392. }
  393. //不存在
  394. if (resultStr == null) {
  395. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode());
  396. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg());
  397. }
  398. //end
  399. resResult.setTimestamp(System.currentTimeMillis());
  400. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  401. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  402. , strPlatform
  403. , URI_PATH
  404. , strRunSeq
  405. , resResult.getRescode()
  406. , resResult.getResmsg()
  407. , resResult.getTimestamp() - llReqBefore));
  408. return resResult;
  409. }
  410. /**
  411. * 清除第三方导入
  412. *
  413. * @param request request
  414. * @param strClientType 客户端类型
  415. * @param strUserAgent 用户信息
  416. * @param jobId 任务id
  417. * @return 清除状态
  418. * @throws SelfException selfException
  419. */
  420. @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_CANCEL)
  421. public ResponseRes<?> cancelImport(HttpServletRequest request
  422. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  423. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  424. , @RequestParam("jobId") String jobId) throws Exception {
  425. //入参校验
  426. final String URI_PATH = request.getRequestURI();
  427. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  428. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  429. if (StringUtils.isBlank(jobId) || StringUtils.length(jobId) > 64) {
  430. throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode()
  431. , String.format(ApiURI.EXCEPTION_FORMAT
  432. , strPlatform
  433. , URI_PATH
  434. , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg()));
  435. }
  436. //begin
  437. long llReqBefore = System.currentTimeMillis();
  438. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportCancelReq.incrementAndGet());
  439. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  440. , String.format("%s:%s seq:{%s} param:%s begin====>"
  441. , strPlatform
  442. , URI_PATH
  443. , strRunSeq
  444. , jobId));
  445. //构建result
  446. ResponseRes<Boolean> resResult = new ResponseRes<>();
  447. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
  448. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
  449. //清除导入
  450. Integer cancelCheck = thirdImportBizService.cancelImport(jobId);
  451. //成功
  452. if (Objects.equals(cancelCheck, CommAsyncStatusEnum.SUCCESS.getCode())) {
  453. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  454. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  455. }
  456. //不存在
  457. else if (Objects.equals(cancelCheck, CommAsyncStatusEnum.NOT_EXISTS.getCode())) {
  458. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode());
  459. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg());
  460. }
  461. //end
  462. resResult.setTimestamp(System.currentTimeMillis());
  463. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  464. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  465. , strPlatform
  466. , URI_PATH
  467. , strRunSeq
  468. , resResult.getRescode()
  469. , resResult.getResmsg()
  470. , resResult.getTimestamp() - llReqBefore));
  471. return resResult;
  472. }
  473. /**
  474. * 预览第三方导入
  475. *
  476. * @param request request
  477. * @param strClientType 客户端类型
  478. * @param strUserAgent 用户信息
  479. * @param jobId 任务id
  480. * @param pageable 分页
  481. * @return 清除状态
  482. * @throws SelfException selfException
  483. */
  484. @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_PREVIEW)
  485. public ResponseRes<String> previewImport(HttpServletRequest request
  486. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  487. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  488. , @RequestParam("jobId") String jobId, @PageableDefault() Pageable pageable) throws Exception {
  489. //入参校验
  490. final String URI_PATH = request.getRequestURI();
  491. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  492. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  493. if (StringUtils.isBlank(jobId) || StringUtils.length(jobId) > 64) {
  494. throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode()
  495. , String.format(ApiURI.EXCEPTION_FORMAT
  496. , strPlatform
  497. , URI_PATH
  498. , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg()));
  499. }
  500. //begin
  501. long llReqBefore = System.currentTimeMillis();
  502. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportPreviewReq.incrementAndGet());
  503. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  504. , String.format("%s:%s seq:{%s} param:%s begin====>"
  505. , strPlatform
  506. , URI_PATH
  507. , strRunSeq
  508. , jobId));
  509. //构建result
  510. ResponseRes<String> resResult = new ResponseRes<>();
  511. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
  512. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
  513. //查询
  514. PageResponse<GisSurveyLayerApplyThirdCopy> pageResponse = layerApplyThirdCopyService.findByJobId(jobId, pageable);
  515. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  516. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  517. String pageStr = null;
  518. try {
  519. if (pageResponse != null) pageStr = objectMapper.writeValueAsString(pageResponse);
  520. } catch (JsonProcessingException e) {
  521. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
  522. , String.format("Json序列化异常: error:%s", e));
  523. }
  524. resResult.setResdata(pageStr);
  525. //end
  526. resResult.setTimestamp(System.currentTimeMillis());
  527. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  528. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  529. , strPlatform
  530. , URI_PATH
  531. , strRunSeq
  532. , resResult.getRescode()
  533. , resResult.getResmsg()
  534. , resResult.getTimestamp() - llReqBefore));
  535. return resResult;
  536. }
  537. /**
  538. * 提交第三方导入
  539. *
  540. * @param request request
  541. * @param strClientType 客户端类型
  542. * @param strUserAgent 用户信息
  543. * @param jobId 任务id
  544. * @param operator 操作人
  545. * @return 清除状态
  546. * @throws SelfException selfException
  547. */
  548. @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_COMMIT)
  549. public ResponseRes<?> commitImport(HttpServletRequest request
  550. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  551. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  552. , @RequestParam("jobId") String jobId, @RequestParam("operator") String operator) throws Exception {
  553. //入参校验
  554. final String URI_PATH = request.getRequestURI();
  555. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  556. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  557. if (StringUtils.isBlank(jobId) || StringUtils.length(jobId) > 64
  558. || StringUtils.isBlank(operator) || StringUtils.length(operator) > 64) {
  559. throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode()
  560. , String.format(ApiURI.EXCEPTION_FORMAT
  561. , strPlatform
  562. , URI_PATH
  563. , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg()));
  564. }
  565. //begin
  566. long llReqBefore = System.currentTimeMillis();
  567. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportCommitReq.incrementAndGet());
  568. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  569. , String.format("%s:%s seq:{%s} param:%s begin====>"
  570. , strPlatform
  571. , URI_PATH
  572. , strRunSeq
  573. , jobId));
  574. //构建result
  575. ResponseRes<?> resResult = new ResponseRes<>();
  576. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
  577. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
  578. //提交导入
  579. Boolean commitStatus = layerApplyService.mergeCopy(jobId, operator);
  580. //成功
  581. if (Objects.equals(commitStatus, Boolean.TRUE)) {
  582. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  583. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  584. }
  585. //end
  586. resResult.setTimestamp(System.currentTimeMillis());
  587. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  588. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  589. , strPlatform
  590. , URI_PATH
  591. , strRunSeq
  592. , resResult.getRescode()
  593. , resResult.getResmsg()
  594. , resResult.getTimestamp() - llReqBefore));
  595. return resResult;
  596. }
  597. /**
  598. * 执行第三方导出
  599. *
  600. * @param request request
  601. * @param strClientType 客户端类型
  602. * @param strUserAgent 用户信息
  603. * @param oJsonParam 入参
  604. * @return cad转换结果
  605. */
  606. @PostMapping(value = ApiURI.URI_XXX_THIRD_EXPORT)
  607. public ResponseRes<String> thirdExport(HttpServletRequest request
  608. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  609. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  610. , @RequestBody(required = false) @Validated(value = {CommonParamValidSK.class}) GisSurveyThirdExportParams oJsonParam
  611. , BindingResult bindRes) throws SelfException {
  612. //入参校验
  613. final String URI_PATH = request.getRequestURI();
  614. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  615. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  616. if (oJsonParam == null || bindRes.hasErrors()) {
  617. throw new SelfException(ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrCode()
  618. , String.format(ApiURI.EXCEPTION_FORMAT
  619. , strPlatform
  620. , URI_PATH
  621. , ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrMsg()));
  622. }
  623. //begin
  624. long llReqBefore = System.currentTimeMillis();
  625. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdExportReq.incrementAndGet());
  626. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  627. , String.format("%s:%s seq:{%s} param:%s begin====>"
  628. , strPlatform
  629. , URI_PATH
  630. , strRunSeq
  631. , oJsonParam));
  632. //构建result
  633. ResponseRes<String> resResult = new ResponseRes<>();
  634. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
  635. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
  636. //导出类型枚举
  637. FileTypeEnum fileTypeEnum = FileTypeEnum.getFileType(oJsonParam.getFileType());
  638. if (fileTypeEnum == null) fileTypeEnum = FileTypeEnum.EXCEL;
  639. //执行第三方导出
  640. CommAsyncResult<Map<String, String>> result = thirdExportBizService.thirdExport(oJsonParam.getJobId(), fileTypeEnum, oJsonParam.getOperator());
  641. String resultStr = null;
  642. try {
  643. if (result != null) resultStr = objectMapper.writeValueAsString(result);
  644. } catch (JsonProcessingException e) {
  645. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
  646. , String.format("Json序列化异常: error:%s", e));
  647. }
  648. //执行成功
  649. if (resultStr != null && !Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  650. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  651. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  652. resResult.setResdata(resultStr);
  653. }
  654. //执行失败
  655. if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  656. resResult.setResdata(resultStr);
  657. }
  658. //end
  659. resResult.setTimestamp(System.currentTimeMillis());
  660. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  661. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  662. , strPlatform
  663. , URI_PATH
  664. , strRunSeq
  665. , resResult.getRescode()
  666. , resResult.getResmsg()
  667. , resResult.getTimestamp() - llReqBefore));
  668. return resResult;
  669. }
  670. /**
  671. * 获取第三方导出结果
  672. *
  673. * @param request request
  674. * @param strClientType 客户端类型
  675. * @param strUserAgent 用户信息
  676. * @param jobId 任务id
  677. * @return cad转换结果
  678. */
  679. @GetMapping(value = ApiURI.URI_XXX_THIRD_EXPORT_GET)
  680. public ResponseRes<String> thirdExportGet(HttpServletRequest request
  681. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  682. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  683. , @RequestParam(value = "jobId", required = false) String jobId) throws SelfException {
  684. //入参校验
  685. final String URI_PATH = request.getRequestURI();
  686. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  687. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  688. if (StringUtils.isAnyBlank(jobId) || StringUtils.length(jobId) > 64) {
  689. throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode()
  690. , String.format(ApiURI.EXCEPTION_FORMAT
  691. , strPlatform
  692. , URI_PATH
  693. , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg()));
  694. }
  695. //begin
  696. long llReqBefore = System.currentTimeMillis();
  697. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdExportGetReq.incrementAndGet());
  698. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  699. , String.format("%s:%s seq:{%s} param:%s begin====>"
  700. , strPlatform
  701. , URI_PATH
  702. , strRunSeq
  703. , jobId));
  704. //构建result
  705. ResponseRes<String> resResult = new ResponseRes<>();
  706. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
  707. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
  708. //执行第三方导出
  709. CommAsyncResult<Map<String, String>> result = thirdExportBizService.getResult(jobId);
  710. String resultStr = null;
  711. try {
  712. if (result != null) resultStr = objectMapper.writeValueAsString(result);
  713. } catch (JsonProcessingException e) {
  714. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
  715. , String.format("Json序列化异常: error:%s", e));
  716. }
  717. //执行成功
  718. if (resultStr != null && !Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  719. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  720. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  721. resResult.setResdata(resultStr);
  722. }
  723. //执行失败
  724. if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  725. resResult.setResdata(resultStr);
  726. }
  727. //不存在
  728. if (resultStr == null) {
  729. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode());
  730. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg());
  731. }
  732. //end
  733. resResult.setTimestamp(System.currentTimeMillis());
  734. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  735. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  736. , strPlatform
  737. , URI_PATH
  738. , strRunSeq
  739. , resResult.getRescode()
  740. , resResult.getResmsg()
  741. , resResult.getTimestamp() - llReqBefore));
  742. return resResult;
  743. }
  744. /**
  745. * 执行cad转换
  746. *
  747. * @param request request
  748. * @param strClientType 客户端类型
  749. * @param strUserAgent 用户信息
  750. * @param file 文件
  751. * @param convertId 转换id
  752. * @param outputExtension 输出扩展名
  753. * @param operator 操作人
  754. * @return cad转换结果
  755. */
  756. @PostMapping(value = ApiURI.URI_XXX_CAD_CONVERT)
  757. public ResponseRes<String> cadConvert(HttpServletRequest request
  758. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  759. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  760. , @RequestParam(value = "file", required = false) MultipartFile file
  761. , @RequestParam(value = "convertId", required = false) String convertId
  762. , @RequestParam(value = "outputExtension", required = false) String outputExtension
  763. , @RequestParam(value = "operator", required = false, defaultValue = "") String operator) throws SelfException {
  764. //入参校验
  765. final String URI_PATH = request.getRequestURI();
  766. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  767. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  768. if (StringUtils.isAnyBlank(convertId, outputExtension) || StringUtils.length(convertId) > 64
  769. || StringUtils.length(outputExtension) > 64) {
  770. throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode()
  771. , String.format(ApiURI.EXCEPTION_FORMAT
  772. , strPlatform
  773. , URI_PATH
  774. , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg()));
  775. }
  776. //文件校验
  777. if (file == null || file.isEmpty()) {
  778. throw new SelfException(ResponseCode.RESULT_FILE_EMPTY_ROWS.toStrCode()
  779. , String.format(ApiURI.EXCEPTION_FORMAT
  780. , strPlatform
  781. , URI_PATH
  782. , ResponseCode.RESULT_FILE_EMPTY_ROWS.toStrMsg()));
  783. }
  784. String originalFilename = file.getOriginalFilename();
  785. if (originalFilename == null) {
  786. throw new SelfException(ResponseCode.RESULT_FILE_EMPTY_ROWS.toStrCode()
  787. , String.format(ApiURI.EXCEPTION_FORMAT
  788. , strPlatform
  789. , URI_PATH
  790. , ResponseCode.RESULT_FILE_EMPTY_ROWS.toStrMsg()));
  791. }
  792. //文件类型校验
  793. String inputExtension = originalFilename
  794. .substring(originalFilename.lastIndexOf(".") + 1)
  795. .toLowerCase();
  796. CadEnum inputCadEnum = CadEnum.getCadEnum(inputExtension);
  797. CadEnum outCadEnum = CadEnum.getCadEnum(outputExtension);
  798. if (inputCadEnum == null || outCadEnum == null
  799. || !inputCadEnum.getInput() || !outCadEnum.getOutput()) {
  800. throw new SelfException(ResponseCode.RESULT_FILE_INVALID_TYPE.toStrCode()
  801. , String.format(ApiURI.EXCEPTION_FORMAT
  802. , strPlatform
  803. , URI_PATH
  804. , ResponseCode.RESULT_FILE_INVALID_TYPE.toStrMsg()));
  805. }
  806. //begin
  807. long llReqBefore = System.currentTimeMillis();
  808. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqCadConvertReq.incrementAndGet());
  809. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  810. , String.format("%s:%s seq:{%s} param:%s begin====>"
  811. , strPlatform
  812. , URI_PATH
  813. , strRunSeq
  814. , convertId));
  815. //构建result
  816. ResponseRes<String> resResult = new ResponseRes<>();
  817. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
  818. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
  819. //执行cad转换
  820. CommAsyncResult<String> result = cadConvertBizService.cadConvert(file, convertId, outCadEnum, operator);
  821. String resultStr = null;
  822. try {
  823. if (result != null) resultStr = objectMapper.writeValueAsString(result);
  824. } catch (JsonProcessingException e) {
  825. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
  826. , String.format("Json序列化异常: error:%s", e));
  827. }
  828. //执行成功
  829. if (resultStr != null && !Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  830. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  831. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  832. resResult.setResdata(resultStr);
  833. }
  834. //执行失败
  835. if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  836. resResult.setResdata(resultStr);
  837. }
  838. //end
  839. resResult.setTimestamp(System.currentTimeMillis());
  840. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  841. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  842. , strPlatform
  843. , URI_PATH
  844. , strRunSeq
  845. , resResult.getRescode()
  846. , resResult.getResmsg()
  847. , resResult.getTimestamp() - llReqBefore));
  848. return resResult;
  849. }
  850. /**
  851. * 获取cad转换结果
  852. *
  853. * @param request request
  854. * @param strClientType 客户端类型
  855. * @param strUserAgent 用户信息
  856. * @param convertId 转换id
  857. * @return cad转换结果
  858. */
  859. @GetMapping(value = ApiURI.URI_XXX_CAD_CONVERT_GET)
  860. public ResponseRes<String> cadConvertGet(HttpServletRequest request
  861. , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
  862. , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
  863. , @RequestParam(value = "convertId", required = false) String convertId) throws SelfException {
  864. //入参校验
  865. final String URI_PATH = request.getRequestURI();
  866. final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
  867. final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
  868. if (StringUtils.isAnyBlank(convertId) || StringUtils.length(convertId) > 64) {
  869. throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode()
  870. , String.format(ApiURI.EXCEPTION_FORMAT
  871. , strPlatform
  872. , URI_PATH
  873. , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg()));
  874. }
  875. //begin
  876. long llReqBefore = System.currentTimeMillis();
  877. String strRunSeq = String.format("%d-%d", llReqBefore, mSeqCadConvertGetReq.incrementAndGet());
  878. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  879. , String.format("%s:%s seq:{%s} param:%s begin====>"
  880. , strPlatform
  881. , URI_PATH
  882. , strRunSeq
  883. , convertId));
  884. //构建result
  885. ResponseRes<String> resResult = new ResponseRes<>();
  886. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrCode());
  887. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_FAILED.toStrMsg());
  888. //执行cad转换
  889. CommAsyncResult<String> result = cadConvertBizService.getResult(convertId);
  890. String resultStr = null;
  891. try {
  892. if (result != null) resultStr = objectMapper.writeValueAsString(result);
  893. } catch (JsonProcessingException e) {
  894. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
  895. , String.format("Json序列化异常: error:%s", e));
  896. }
  897. //执行成功
  898. if (resultStr != null && !Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  899. resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
  900. resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
  901. resResult.setResdata(resultStr);
  902. }
  903. //执行失败
  904. if (resultStr != null && Objects.equals(result.getStatus(), CommAsyncStatusEnum.FAIL.getCode())) {
  905. resResult.setResdata(resultStr);
  906. }
  907. //不存在
  908. if (resultStr == null) {
  909. resResult.setRescode(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrCode());
  910. resResult.setResmsg(ResponseCode.RESULT_ASYNC_TASK_NOT_FOUND.toStrMsg());
  911. }
  912. //end
  913. resResult.setTimestamp(System.currentTimeMillis());
  914. LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
  915. , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
  916. , strPlatform
  917. , URI_PATH
  918. , strRunSeq
  919. , resResult.getRescode()
  920. , resResult.getResmsg()
  921. , resResult.getTimestamp() - llReqBefore));
  922. return resResult;
  923. }
  924. }