|
|
@@ -1,34 +1,43 @@
|
|
|
package com.jzg.quote.zhongmei.crawler.component;
|
|
|
|
|
|
+import cn.hutool.core.util.XmlUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.jzg.commons.exception.SystemException;
|
|
|
import com.jzg.quotation.commons.component.RequestComponent;
|
|
|
import com.jzg.quotation.commons.constant.CacheConstant;
|
|
|
-import com.jzg.quotation.commons.entity.vo.base.LoginBase;
|
|
|
-import com.jzg.quotation.commons.entity.vo.base.R;
|
|
|
+import com.jzg.quotation.commons.entity.vo.image.InsuranceImageVo;
|
|
|
import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
|
|
|
import com.jzg.quotation.commons.standard.CrawlerRequestUrlStandard;
|
|
|
+import com.jzg.quotation.commons.utils.DateUtil;
|
|
|
import com.jzg.quote.zhongmei.api.entity.BaseRequestHead;
|
|
|
import com.jzg.quote.zhongmei.api.entity.request.BaseRequest;
|
|
|
+import com.jzg.quote.zhongmei.crawler.constant.ZmCrawlerImageConstant;
|
|
|
import com.jzg.quote.zhongmei.crawler.constant.enums.RequestUrl;
|
|
|
import com.jzg.quote.zhongmei.crawler.entity.Request.*;
|
|
|
import com.jzg.quote.zhongmei.crawler.entity.Response.*;
|
|
|
import com.jzg.quote.zhongmei.crawler.entity.ZmCrawlerConfigureParameters;
|
|
|
import com.jzg.quote.zhongmei.crawler.entity.dto.SaleInfoDTO;
|
|
|
+import com.jzg.quote.zhongmei.crawler.entity.po.ZmCrawlerOrder;
|
|
|
import com.jzg.quote.zhongmei.crawler.properties.ZmCrawlerProperties;
|
|
|
+import com.jzg.quote.zhongmei.crawler.service.ZmCrawlerOrderService;
|
|
|
import com.jzg.quote.zhongmei.crawler.util.Base64Tool;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.redisson.api.RMap;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
-import org.springframework.http.HttpHeaders;
|
|
|
import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
-import org.springframework.util.StringUtils;
|
|
|
+import org.springframework.util.LinkedMultiValueMap;
|
|
|
+import org.springframework.util.MultiValueMap;
|
|
|
import org.springframework.web.reactive.function.client.WebClient;
|
|
|
+import org.w3c.dom.Document;
|
|
|
+import org.w3c.dom.Element;
|
|
|
+import org.w3c.dom.Node;
|
|
|
+import org.w3c.dom.NodeList;
|
|
|
|
|
|
import java.time.Duration;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
|
/**
|
|
|
* @description:
|
|
|
@@ -234,4 +243,522 @@ public class ZmCrawlerRequestComponent {
|
|
|
public ZmCrawlerQuotedPriceResponse quotedPrice(ZmCrawlerQuotedPriceRequest quotedPriceRequest) {
|
|
|
return request(RequestUrl.QUOTED_PRICE, quotedPriceRequest, ZmCrawlerQuotedPriceResponse.class);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 打开中煤,影像系统
|
|
|
+ * @param comCode
|
|
|
+ * @param token
|
|
|
+ * @param proposalNo
|
|
|
+ */
|
|
|
+ public void startUploadImage (String comCode, String token, String proposalNo) {
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("mark", "upload");
|
|
|
+ params.put("comCode", comCode);
|
|
|
+ params.put("token", token);
|
|
|
+ params.put("proposalNo", proposalNo);//投保单号
|
|
|
+ params.put("selectUrl", ZmCrawlerImageConstant.SELECT_URL);
|
|
|
+ params.put("uploadUrl", ZmCrawlerImageConstant.UPLOAD_URL);
|
|
|
+ params.put("imageSystemUrl", ZmCrawlerImageConstant.IMAGE_SYSTEM_URL);
|
|
|
+
|
|
|
+ requestComponent.asyncGet(RequestUrl.START_UPLOAD_IMAGE.getRequestUrl(zmCrawlerProperties.getBaseUrl()), params, null);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 导入影像
|
|
|
+ * @param importRequest
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ZmCrawlerImageImportResponse importImage(ZmCrawlerImageImportRequest importRequest, List<InsuranceImageVo.ImageDTO> imageDTOS) {
|
|
|
+ MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
|
|
+ params.put("batchId", Collections.singletonList(importRequest.getBatchId()));
|
|
|
+ params.put("batchVer", Collections.singletonList(importRequest.getBatchVer()));
|
|
|
+ params.put("busiNo", Collections.singletonList(importRequest.getBusiNo()));
|
|
|
+ params.put("appCode", Collections.singletonList(importRequest.getAppCode()));
|
|
|
+
|
|
|
+ AtomicInteger index = new AtomicInteger(0);//标记数量
|
|
|
+ imageDTOS.forEach(image -> {
|
|
|
+ Map<String, Object> imageMap = new HashMap<>();
|
|
|
+ imageMap.put("base64", image.getImageBase64Str());
|
|
|
+ imageMap.put("size", image.getImageSize());
|
|
|
+ imageMap.put("orginalName", image.getImageName());
|
|
|
+ params.put("image" + (index.getAndAdd(1)), Collections.singletonList(imageMap));
|
|
|
+ });
|
|
|
+
|
|
|
+ return requestComponent.formData(RequestUrl.IMPORT_IMAGE.getRequestUrl(zmCrawlerProperties.getImageUrl()),
|
|
|
+ params, ZmCrawlerImageImportResponse.class, null).getBody();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取已上传的影像
|
|
|
+ * https://image.chinacoal-ins.com/SunICMS/batch/batchAction!reqSydByBatch.action?a=4067.6205088073457&_=1743155426058&appCode=UW_03&appName=%E6%89%BF%E4%BF%9D%E8%BD%A6%E9%99%A9&userCode=14001393&batchId=9f30a2c22ba9338a8321170d1e853fe0&batchVer=&orgCode=00000000&newBatch=
|
|
|
+ * @return 返回数据示例
|
|
|
+ * <root>
|
|
|
+ * <RESPONSE_CODE>200</RESPONSE_CODE>
|
|
|
+ * <RESPONSE_MSG>请求SYD成功</RESPONSE_MSG>
|
|
|
+ * <PAGES>
|
|
|
+ * <PAGE PAGEID="14b12504-b1bc-4d21-8599-2a1097a8c452" PAGE_URL="https://imagetrm.chinacoal-ins.com:7008/SunTransAgent/servlet/GetImage?UhFOUNO1mCHtmCm18QUgpPEfcuzaVP67JufGSPDfX17EDPA1YdL1mCHtmCm18Q7AAtLrm1LzJuSR8PSsmh51SsH1Sg5zmsmwSNZsmB5E_syemP6w_N_gUN0RJs5OSB51_N0OJPHESgmG_h21mdOw_NezJNIamN0z_u5wSs2tm4z9XhXgUgfnUA7fVg_1YcyOKN0gDh7lUPw72NHOMOakDCIBmgakXNfB6iMH8PaTXNMkSOD4Si2r6gH=" THUM_URL="https://imagetrm.chinacoal-ins.com:7008/SunTransAgent/servlet/GetImage?UhFOUNO1mCHtmCm18QUgpPEfcuzaVP67JufGSPDfX17EDPA1YdL1mCHtmCm18Q7AAtLrm1LzJuSR8PSsmh51SsH1Sg5zmsmwSNZsmB5E_syemP6w_N_gUN0RJs5OSB51_N0OJPHESgmG_h21mdOw_NezJNIamN0z_u5wSs2tm4z9XhXqpiyiIgU-VhAxUPzBXifrDCOrIiMRpuAqKPZrXeXOSOFTpsyd6gIy6iMdXAAHSv2rXPIEdhH1Msy4" FILE_NO="14b12504-b1bc-4d21-8599-2a1097a8c452" PAGE_VER="2" />
|
|
|
+ * <PAGE PAGEID="5486dc8a-2f2e-4e46-9c67-e1b74eb2d984" PAGE_URL="https://imagetrm.chinacoal-ins.com:7008/SunTransAgent/servlet/GetImage?UhFOUNO1mCHtmCm18QUgpPEfcuzaVP67JufGSPDfX17EDPA1YdL1mCHtmCm18Q7AAtLrm1LzJuSR8PSsmh51SsH1Sg5zmsmwSNZsmB5E_syemP6w_N_gUN0RJs6O8CUeSsaaJNIgmg6G_h6O_4OzSsSvJP6ESBXOUPH1UCew_Qz9XhXgUgfnUA7fVg_1YcyOKN0gDh7lUPw7SvHzSB2zdTMySiMBSOZrmBIOXgG1mhGOmCyOdhI4pCe=" THUM_URL="https://imagetrm.chinacoal-ins.com:7008/SunTransAgent/servlet/GetImage?UhFOUNO1mCHtmCm18QUgpPEfcuzaVP67JufGSPDfX17EDPA1YdL1mCHtmCm18Q7AAtLrm1LzJuSR8PSsmh51SsH1Sg5zmsmwSNZsmB5E_syemP6w_N_gUN0RJs6O8CUeSsaaJNIgmg6G_h6O_4OzSsSvJP6ESBXOUPH1UCew_Qz9XhXqpiyiIgU-VhAxUPzBXifrDCOrIiMRpuAqKAA1Mu_ypTMESB0zpOZ1puGEAP_EdFIOmg_lmCyBmBIT" FILE_NO="5486dc8a-2f2e-4e46-9c67-e1b74eb2d984" PAGE_VER="2" />
|
|
|
+ * <PAGE PAGEID="bd750f02-2cca-4409-a553-e66457e0bda9" PAGE_URL="https://imagetrm.chinacoal-ins.com:7008/SunTransAgent/servlet/GetImage?UhFOUNO1mCHtmCm18QUgpPEfcuzaVP67JufGSPDfX17EDPA1YdL1mCHtmCm18Q7AAtLrm1LzJuSR8PSsmh51SsH1Sg5zmsmwSNZsmB5E_syemP6w_N_gUN0RJuIe_s6rUB01JNIBSu5G_C2r8dta_N6sJP6u_B2t_u6rSgMa8dz9XhXgUgfnUA7fVg_1YcyOKN0gDh7lUPw7Ms0rSgIOAPIH8PaOdCy1DhaHpTMH8cF4pODlMvITXcH=" THUM_URL="https://imagetrm.chinacoal-ins.com:7008/SunTransAgent/servlet/GetImage?UhFOUNO1mCHtmCm18QUgpPEfcuzaVP67JufGSPDfX17EDPA1YdL1mCHtmCm18Q7AAtLrm1LzJuSR8PSsmh51SsH1Sg5zmsmwSNZsmB5E_syemP6w_N_gUN0RJuIe_s6rUB01JNIBSu5G_C2r8dta_N6sJP6u_B2t_u6rSgMa8dz9XhXqpiyiIgU-VhAxUPzBXifrDCOrIiMRpuAqK6FAXgmO8A6zXBMO8Pal2PIHAP_y6BfE_hG4puIAmgGE" FILE_NO="bd750f02-2cca-4409-a553-e66457e0bda9" PAGE_VER="1" />
|
|
|
+ * </PAGES>
|
|
|
+ * <SYD>
|
|
|
+ * <doc version="1.2">
|
|
|
+ * <DocInfo>
|
|
|
+ * <BATCH_ID>9f30a2c22ba9338a8321170d1e853fe0</BATCH_ID>
|
|
|
+ * <BUSI_NUM>4140834137920250011529</BUSI_NUM>
|
|
|
+ * <BIZ_ORG>00</BIZ_ORG>
|
|
|
+ * <APP_CODE>UW_03</APP_CODE>
|
|
|
+ * <APP_NAME>承保车险</APP_NAME>
|
|
|
+ * <BATCH_VER>2</BATCH_VER>
|
|
|
+ * <INTER_VER>2</INTER_VER>
|
|
|
+ * <STATUS>1</STATUS>
|
|
|
+ * <CREATE_USER>14001393</CREATE_USER>
|
|
|
+ * <CREATE_DATE>2025-03-27 14:43:12.767</CREATE_DATE>
|
|
|
+ * <MODIFY_USER>14001393</MODIFY_USER>
|
|
|
+ * <MODIFY_DATE>2025-03-28 16:48:31</MODIFY_DATE>
|
|
|
+ * <DOC_EXT>
|
|
|
+ * <EXT_ATTR ID="BUSI_NO" NAME="业务编号" IS_SHOW="1" IS_KEY="1" IS_NULL="0" INPUT_TYPE="1">4140834137920250011529</EXT_ATTR>
|
|
|
+ * </DOC_EXT>
|
|
|
+ * </DocInfo>
|
|
|
+ * <PageInfo>
|
|
|
+ * <PAGE PAGEID="14b12504-b1bc-4d21-8599-2a1097a8c452">
|
|
|
+ * <CREATE_USER>14001393</CREATE_USER>
|
|
|
+ * <CREATE_USERNAME>杨利</CREATE_USERNAME>
|
|
|
+ * <CREATE_TIME>2025-03-28 16:48:48</CREATE_TIME>
|
|
|
+ * <MODIFY_USER>14001393</MODIFY_USER>
|
|
|
+ * <MODIFY_TIME>2025-03-28 16:48:48</MODIFY_TIME>
|
|
|
+ * <PAGE_URL>14b12504-b1bc-4d21-8599-2a1097a8c452.jpg</PAGE_URL>
|
|
|
+ * <THUM_URL>14b12504-b1bc-4d21-8599-2a1097a8c452.jpg.jpg</THUM_URL>
|
|
|
+ * <IS_LOCAL>1</IS_LOCAL>
|
|
|
+ * <PAGE_VER>2</PAGE_VER>
|
|
|
+ * <PAGE_DESC>1743151807980</PAGE_DESC>
|
|
|
+ * <UPLOAD_ORG>中煤财产保险股份有限公司运城中心支公司</UPLOAD_ORG>
|
|
|
+ * <PAGE_CRC>d6e865286bd41833150f9c6cd9a1e894</PAGE_CRC>
|
|
|
+ * <PAGE_SIZE>1811</PAGE_SIZE>
|
|
|
+ * <PAGE_FORMAT>image/jpeg</PAGE_FORMAT>
|
|
|
+ * <PAGE_ENCRYPT>0</PAGE_ENCRYPT>
|
|
|
+ * <ORIGINAL_NAME>1743151807980.jpg</ORIGINAL_NAME>
|
|
|
+ * <PAGE_EXT />
|
|
|
+ * <PAGE_DESCS />
|
|
|
+ * </PAGE>
|
|
|
+ * <PAGE PAGEID="5486dc8a-2f2e-4e46-9c67-e1b74eb2d984">
|
|
|
+ * <CREATE_USER>14001393</CREATE_USER>
|
|
|
+ * <CREATE_USERNAME>杨利</CREATE_USERNAME>
|
|
|
+ * <CREATE_TIME>2025-03-28 16:48:48</CREATE_TIME>
|
|
|
+ * <MODIFY_USER>14001393</MODIFY_USER>
|
|
|
+ * <MODIFY_TIME>2025-03-28 16:48:48</MODIFY_TIME>
|
|
|
+ * <PAGE_URL>5486dc8a-2f2e-4e46-9c67-e1b74eb2d984.jpg</PAGE_URL>
|
|
|
+ * <THUM_URL>5486dc8a-2f2e-4e46-9c67-e1b74eb2d984.jpg.jpg</THUM_URL>
|
|
|
+ * <IS_LOCAL>1</IS_LOCAL>
|
|
|
+ * <PAGE_VER>2</PAGE_VER>
|
|
|
+ * <PAGE_DESC>1743151773536</PAGE_DESC>
|
|
|
+ * <UPLOAD_ORG>中煤财产保险股份有限公司运城中心支公司</UPLOAD_ORG>
|
|
|
+ * <PAGE_CRC>b8fef2daace2386cc9e5c8a177c68890</PAGE_CRC>
|
|
|
+ * <PAGE_SIZE>2903</PAGE_SIZE>
|
|
|
+ * <PAGE_FORMAT>image/jpeg</PAGE_FORMAT>
|
|
|
+ * <PAGE_ENCRYPT>0</PAGE_ENCRYPT>
|
|
|
+ * <ORIGINAL_NAME>1743151773536.jpg</ORIGINAL_NAME>
|
|
|
+ * <PAGE_EXT />
|
|
|
+ * <PAGE_DESCS />
|
|
|
+ * </PAGE>
|
|
|
+ * <PAGE PAGEID="bd750f02-2cca-4409-a553-e66457e0bda9">
|
|
|
+ * <CREATE_USER>14001393</CREATE_USER>
|
|
|
+ * <CREATE_USERNAME>杨利</CREATE_USERNAME>
|
|
|
+ * <CREATE_TIME>2025-03-27 14:43:12</CREATE_TIME>
|
|
|
+ * <MODIFY_USER>14001393</MODIFY_USER>
|
|
|
+ * <MODIFY_TIME>2025-03-27 14:43:12</MODIFY_TIME>
|
|
|
+ * <PAGE_URL>bd750f02-2cca-4409-a553-e66457e0bda9.jpg</PAGE_URL>
|
|
|
+ * <THUM_URL>bd750f02-2cca-4409-a553-e66457e0bda9.jpg.jpg</THUM_URL>
|
|
|
+ * <IS_LOCAL>1</IS_LOCAL>
|
|
|
+ * <PAGE_VER>1</PAGE_VER>
|
|
|
+ * <PAGE_DESC>行驶证</PAGE_DESC>
|
|
|
+ * <UPLOAD_ORG>中煤财产保险股份有限公司运城中心支公司</UPLOAD_ORG>
|
|
|
+ * <PAGE_CRC>9fcf7de426e367bb2dd4e5e10b843a9b</PAGE_CRC>
|
|
|
+ * <PAGE_SIZE>205203</PAGE_SIZE>
|
|
|
+ * <PAGE_FORMAT>image/jpeg</PAGE_FORMAT>
|
|
|
+ * <PAGE_ENCRYPT>0</PAGE_ENCRYPT>
|
|
|
+ * <ORIGINAL_NAME>行驶证.jpg</ORIGINAL_NAME>
|
|
|
+ * <PAGE_EXT />
|
|
|
+ * <PAGE_DESCS />
|
|
|
+ * </PAGE>
|
|
|
+ * </PageInfo>
|
|
|
+ * <VTREE APP_CODE="UW_03" APP_NAME="承保车险">
|
|
|
+ * <NODE ID="UW_0301" NAME="验车资料">
|
|
|
+ * <LEAF>bd750f02-2cca-4409-a553-e66457e0bda9</LEAF>
|
|
|
+ * <LEAF>5486dc8a-2f2e-4e46-9c67-e1b74eb2d984</LEAF>
|
|
|
+ * <LEAF>14b12504-b1bc-4d21-8599-2a1097a8c452</LEAF>
|
|
|
+ * </NODE>
|
|
|
+ * </VTREE>
|
|
|
+ * </doc>
|
|
|
+ * </SYD>
|
|
|
+ * </root>
|
|
|
+ */
|
|
|
+ public String getUploadedImages(String userCode, String batchId) {
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("a", "");
|
|
|
+ params.put("_", System.currentTimeMillis() * 1000);//毫秒级时间戳
|
|
|
+ params.put("appCode", ZmCrawlerImageConstant.ZM_IMAGE_APP_CODE);
|
|
|
+ params.put("appName", ZmCrawlerImageConstant.ZM_IMAGE_APP_NAME);
|
|
|
+ params.put("userCode", userCode);
|
|
|
+ params.put("batchId", batchId);//批次号
|
|
|
+ params.put("batchVer", "");//提交图片数量
|
|
|
+ params.put("orgCode", ZmCrawlerImageConstant.ZM_IMAGE_ORG_CODE);
|
|
|
+ params.put("newBatch", "");
|
|
|
+
|
|
|
+ String responseXml = requestComponent.get(RequestUrl.GET_UPLOADED_IMAGE.getRequestUrl(zmCrawlerProperties.getImageUrl()), params, "", String.class, null);
|
|
|
+ return responseXml;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 提交影像 数据示例
|
|
|
+ * xmlStr=
|
|
|
+ * <?xml version="1.0" encoding="UTF-8" ?>
|
|
|
+ * <doc version="1.2">
|
|
|
+ * <DocInfo>
|
|
|
+ * <BATCH_ID>
|
|
|
+ * 9f30a2c22ba9338a8321170d1e853fe0
|
|
|
+ * </BATCH_ID>
|
|
|
+ * <BUSI_NUM>
|
|
|
+ * 4140834137920250011529
|
|
|
+ * </BUSI_NUM>
|
|
|
+ * <BIZ_ORG>
|
|
|
+ * 00
|
|
|
+ * </BIZ_ORG>
|
|
|
+ * <APP_CODE>
|
|
|
+ * UW_03
|
|
|
+ * </APP_CODE>
|
|
|
+ * <APP_NAME>
|
|
|
+ * 承保车险
|
|
|
+ * </APP_NAME>
|
|
|
+ * <BATCH_VER>
|
|
|
+ * 2
|
|
|
+ * </BATCH_VER>
|
|
|
+ * <INTER_VER>
|
|
|
+ * 2
|
|
|
+ * </INTER_VER>
|
|
|
+ * <STATUS>
|
|
|
+ * 1
|
|
|
+ * </STATUS>
|
|
|
+ * <CREATE_USER>
|
|
|
+ * 14001393
|
|
|
+ * </CREATE_USER>
|
|
|
+ * <CREATE_DATE>
|
|
|
+ * 2025-03-27 14:43:12.767
|
|
|
+ * </CREATE_DATE>
|
|
|
+ * <MODIFY_USER>
|
|
|
+ * 14001393
|
|
|
+ * </MODIFY_USER>
|
|
|
+ * <MODIFY_DATE>
|
|
|
+ * 2025-03-28 16:48:31
|
|
|
+ * </MODIFY_DATE>
|
|
|
+ * <DOC_EXT>
|
|
|
+ * <EXT_ATTR ID="BUSI_NO" NAME="业务编号" IS_SHOW="1" IS_KEY="1" IS_NULL="0"
|
|
|
+ * INPUT_TYPE="1">
|
|
|
+ * 4140834137920250011529
|
|
|
+ * </EXT_ATTR>
|
|
|
+ * </DOC_EXT>
|
|
|
+ * </DocInfo>
|
|
|
+ * <PageInfo>
|
|
|
+ * <PAGE PAGEID="bd750f02-2cca-4409-a553-e66457e0bda9">
|
|
|
+ * <CREATE_USER>
|
|
|
+ * 14001393
|
|
|
+ * </CREATE_USER>
|
|
|
+ * <CREATE_USERNAME>
|
|
|
+ * 杨利
|
|
|
+ * </CREATE_USERNAME>
|
|
|
+ * <CREATE_TIME>
|
|
|
+ * 2025-03-27 14:43:12
|
|
|
+ * </CREATE_TIME>
|
|
|
+ * <MODIFY_USER>
|
|
|
+ * 14001393
|
|
|
+ * </MODIFY_USER>
|
|
|
+ * <MODIFY_TIME>
|
|
|
+ * 2025-03-27 14:43:12
|
|
|
+ * </MODIFY_TIME>
|
|
|
+ * <PAGE_URL>
|
|
|
+ * bd750f02-2cca-4409-a553-e66457e0bda9.jpg
|
|
|
+ * </PAGE_URL>
|
|
|
+ * <THUM_URL>
|
|
|
+ * bd750f02-2cca-4409-a553-e66457e0bda9.jpg.jpg
|
|
|
+ * </THUM_URL>
|
|
|
+ * <IS_LOCAL>
|
|
|
+ * 1
|
|
|
+ * </IS_LOCAL>
|
|
|
+ * <PAGE_VER>
|
|
|
+ * 1
|
|
|
+ * </PAGE_VER>
|
|
|
+ * <PAGE_DESC>
|
|
|
+ * 行驶证
|
|
|
+ * </PAGE_DESC>
|
|
|
+ * <UPLOAD_ORG>
|
|
|
+ * 中煤财产保险股份有限公司运城中心支公司
|
|
|
+ * </UPLOAD_ORG>
|
|
|
+ * <PAGE_CRC>
|
|
|
+ * 9fcf7de426e367bb2dd4e5e10b843a9b
|
|
|
+ * </PAGE_CRC>
|
|
|
+ * <PAGE_SIZE>
|
|
|
+ * 205203
|
|
|
+ * </PAGE_SIZE>
|
|
|
+ * <PAGE_FORMAT>
|
|
|
+ * image/jpeg
|
|
|
+ * </PAGE_FORMAT>
|
|
|
+ * <PAGE_ENCRYPT>
|
|
|
+ * 0
|
|
|
+ * </PAGE_ENCRYPT>
|
|
|
+ * <ORIGINAL_NAME>
|
|
|
+ * 行驶证.jpg
|
|
|
+ * </ORIGINAL_NAME>
|
|
|
+ * <PAGE_EXT/>
|
|
|
+ * <PAGE_DESCS/>
|
|
|
+ * </PAGE>
|
|
|
+ * <PAGE PAGEID="5486dc8a-2f2e-4e46-9c67-e1b74eb2d984">
|
|
|
+ * <CREATE_USER>
|
|
|
+ * 14001393
|
|
|
+ * </CREATE_USER>
|
|
|
+ * <CREATE_USERNAME>
|
|
|
+ * 杨利
|
|
|
+ * </CREATE_USERNAME>
|
|
|
+ * <CREATE_TIME>
|
|
|
+ * 2025-03-28 16:48:48
|
|
|
+ * </CREATE_TIME>
|
|
|
+ * <MODIFY_USER>
|
|
|
+ * 14001393
|
|
|
+ * </MODIFY_USER>
|
|
|
+ * <MODIFY_TIME>
|
|
|
+ * 2025-03-28 16:48:48
|
|
|
+ * </MODIFY_TIME>
|
|
|
+ * <PAGE_URL>
|
|
|
+ * https://image.chinacoal-ins.com:443/SunICMS/image/getImage.action?UgfnUA7qSPtfKd7-VPFiUcmRpPtaUu6RUP_GJvIfSuA-DgAspPtrVhAAXhERSP2RmB01_N0smBZR8CmRmB5R8PSsmh51SsH1Sg5zmsmwSNZsmB5E_syemP6w_N_gUNyxm4Lt_CZuUhmwSdO1UBIfJNMf_CSG8Pmu_1tfmPHv_hA4mg2z8C2qpiyiIiMRpuAqKNMOSODT8cITdTIBAPIdmhn16gIkAcMOMtHODTMkXgnr
|
|
|
+ * </PAGE_URL>
|
|
|
+ * <THUM_URL>
|
|
|
+ * https://image.chinacoal-ins.com:443/SunICMS/image/getImage.action?UgfnUA7qSPtfKd7-VPFiUcmRpPtaUu6RUP_GJvIfSuA-DgAspPtrVhAAXhERSP2RmB01_N0smBZR8CmRmB5R8PSsmh51SsH1Sg5zmsmwSNZsmB5E_syemP6w_N_gUNyxm4Lt_CZuUhmwSdO1UBIfJNMf_CSG8Pmu_1tfmPHv_hA4mg2z8C2qpiyiJg-rU1UOVuGfVBt4mea4SBIApsfdSOF4mfIOpOFy2cME8Pa1DC2ODT51p0==
|
|
|
+ * </THUM_URL>
|
|
|
+ * <IS_LOCAL>
|
|
|
+ * 0
|
|
|
+ * </IS_LOCAL>
|
|
|
+ * <PAGE_VER>
|
|
|
+ * 2
|
|
|
+ * </PAGE_VER>
|
|
|
+ * <PAGE_DESC>
|
|
|
+ * 1743151773536
|
|
|
+ * </PAGE_DESC>
|
|
|
+ * <UPLOAD_ORG>
|
|
|
+ * 中煤财产保险股份有限公司运城中心支公司
|
|
|
+ * </UPLOAD_ORG>
|
|
|
+ * <PAGE_CRC/>
|
|
|
+ * <PAGE_SIZE>
|
|
|
+ * 2903
|
|
|
+ * </PAGE_SIZE>
|
|
|
+ * <PAGE_FORMAT>
|
|
|
+ * image/jpeg
|
|
|
+ * </PAGE_FORMAT>
|
|
|
+ * <PAGE_ENCRYPT>
|
|
|
+ * 0
|
|
|
+ * </PAGE_ENCRYPT>
|
|
|
+ * <ORIGINAL_NAME>
|
|
|
+ * 1743151773536.jpg
|
|
|
+ * </ORIGINAL_NAME>
|
|
|
+ * <PAGE_DESCS/>
|
|
|
+ * <PAGE_EXT/>
|
|
|
+ * </PAGE>
|
|
|
+ * <PAGE PAGEID="14b12504-b1bc-4d21-8599-2a1097a8c452">
|
|
|
+ * <CREATE_USER>
|
|
|
+ * 14001393
|
|
|
+ * </CREATE_USER>
|
|
|
+ * <CREATE_USERNAME>
|
|
|
+ * 杨利
|
|
|
+ * </CREATE_USERNAME>
|
|
|
+ * <CREATE_TIME>
|
|
|
+ * 2025-03-28 16:48:48
|
|
|
+ * </CREATE_TIME>
|
|
|
+ * <MODIFY_USER>
|
|
|
+ * 14001393
|
|
|
+ * </MODIFY_USER>
|
|
|
+ * <MODIFY_TIME>
|
|
|
+ * 2025-03-28 16:48:48
|
|
|
+ * </MODIFY_TIME>
|
|
|
+ * <PAGE_URL>
|
|
|
+ * https://image.chinacoal-ins.com:443/SunICMS/image/getImage.action?UgfnUA7qSPtfKd7-VPFiUcmRpPtaUu6RUP_GJvIfSuA-DgAspPtrVhAAXhERSP2RmB01_N0smBZR8CmRmB5R8PSsmh51SsH1Sg5zmsmwSNZsmB5E_syemP6w_N_gUNyxm4LE_hHEmB6r_Qt4mPIBJNMemB5G8C6z8dO1SN5r8NDa8hmO_NHqpiyiIiMRpuAqKcMldhak8NfT_FHr6BMl8c5OXiFA8NyOXAIH6i2OSeaA
|
|
|
+ * </PAGE_URL>
|
|
|
+ * <THUM_URL>
|
|
|
+ * https://image.chinacoal-ins.com:443/SunICMS/image/getImage.action?UgfnUA7qSPtfKd7-VPFiUcmRpPtaUu6RUP_GJvIfSuA-DgAspPtrVhAAXhERSP2RmB01_N0smBZR8CmRmB5R8PSsmh51SsH1Sg5zmsmwSNZsmB5E_syemP6w_N_gUNyxm4LE_hHEmB6r_Qt4mPIBJNMemB5G8C6z8dO1SN5r8NDa8hmO_NHqpiyiJg-rU1UOVuGfVBO1_THzdh_yXPIEpua4dhIymeaBmFABMtIdANMTXeay_0==
|
|
|
+ * </THUM_URL>
|
|
|
+ * <IS_LOCAL>
|
|
|
+ * 0
|
|
|
+ * </IS_LOCAL>
|
|
|
+ * <PAGE_VER>
|
|
|
+ * 2
|
|
|
+ * </PAGE_VER>
|
|
|
+ * <PAGE_DESC>
|
|
|
+ * 1743151807980
|
|
|
+ * </PAGE_DESC>
|
|
|
+ * <UPLOAD_ORG>
|
|
|
+ * 中煤财产保险股份有限公司运城中心支公司
|
|
|
+ * </UPLOAD_ORG>
|
|
|
+ * <PAGE_CRC/>
|
|
|
+ * <PAGE_SIZE>
|
|
|
+ * 1811
|
|
|
+ * </PAGE_SIZE>
|
|
|
+ * <PAGE_FORMAT>
|
|
|
+ * image/jpeg
|
|
|
+ * </PAGE_FORMAT>
|
|
|
+ * <PAGE_ENCRYPT>
|
|
|
+ * 0
|
|
|
+ * </PAGE_ENCRYPT>
|
|
|
+ * <ORIGINAL_NAME>
|
|
|
+ * 1743151807980.jpg
|
|
|
+ * </ORIGINAL_NAME>
|
|
|
+ * <PAGE_DESCS/>
|
|
|
+ * <PAGE_EXT/>
|
|
|
+ * </PAGE>
|
|
|
+ * </PageInfo>
|
|
|
+ * <VTREE APP_CODE="UW_03" APP_NAME="承保车险">
|
|
|
+ * <NODE ID="UW_0301" NAME="验车资料">
|
|
|
+ * <LEAF>
|
|
|
+ * bd750f02-2cca-4409-a553-e66457e0bda9
|
|
|
+ * </LEAF>
|
|
|
+ * <LEAF>
|
|
|
+ * 5486dc8a-2f2e-4e46-9c67-e1b74eb2d984
|
|
|
+ * </LEAF>
|
|
|
+ * <LEAF>
|
|
|
+ * 14b12504-b1bc-4d21-8599-2a1097a8c452
|
|
|
+ * </LEAF>
|
|
|
+ * </NODE>
|
|
|
+ * </VTREE>
|
|
|
+ * </doc>
|
|
|
+ * &svrIp=10.1.16.132&svrPort=8025
|
|
|
+ * @param uploadedImageXml
|
|
|
+ * @return success:上传成功。
|
|
|
+ */
|
|
|
+ public String submitImage(ZmCrawlerConfigureParameters parameters, String userCode, ZmCrawlerImageImportResponse importResponse,
|
|
|
+ String uploadedImageXml, ZmCrawlerOrder crawlerOrder) {
|
|
|
+
|
|
|
+ //解析已上传的图片url
|
|
|
+ Document document = XmlUtil.readXML(uploadedImageXml.replace("\t", ""));
|
|
|
+ Node responseCode = document.getElementsByTagName(ZmCrawlerImageConstant.ZM_IMAGE_UPLOADED_RES_NODE).item(0);
|
|
|
+ Node sydNode = null;
|
|
|
+ if ("200".equals(responseCode.getTextContent())) {
|
|
|
+ sydNode = document.getElementsByTagName("SYD").item(0);
|
|
|
+ }
|
|
|
+ String sydNodeStr = XmlUtil.toStr(sydNode).replace("<SYD>","").replace("</SYD>","");
|
|
|
+
|
|
|
+ //组装提交图片xml字符串
|
|
|
+ String submitImageXml = buildSubmitXml(sydNodeStr, parameters, userCode, importResponse, crawlerOrder);
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("xmlStr", submitImageXml);
|
|
|
+ params.put("svrIp", ZmCrawlerImageConstant.ZM_IMAGE_SUBMIT_IP);
|
|
|
+ params.put("svrPort", ZmCrawlerImageConstant.ZM_IMAGE_SUBMIT_PORT);
|
|
|
+
|
|
|
+ return requestComponent.get(RequestUrl.SUBMIT_IMAGE.getRequestUrl(zmCrawlerProperties.getImageUrl()), params, "", String.class, null);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 构建提交影像参数
|
|
|
+ * @param xmlStr
|
|
|
+ * @param parameters
|
|
|
+ * @param userCode
|
|
|
+ * @param importResponse
|
|
|
+ * @param crawlerOrder
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String buildSubmitXml(String xmlStr, ZmCrawlerConfigureParameters parameters, String userCode,
|
|
|
+ ZmCrawlerImageImportResponse importResponse, ZmCrawlerOrder crawlerOrder) {
|
|
|
+ Map<String, Object> result = importResponse.getResult();//导入影像后返回的数据
|
|
|
+
|
|
|
+ Document submitXml = XmlUtil.readXML(xmlStr);
|
|
|
+
|
|
|
+ NodeList childNodes = submitXml.getDocumentElement().getChildNodes();
|
|
|
+ Node pageInfoNode = childNodes.item(1);
|
|
|
+
|
|
|
+ for (int i = 0; i < result.keySet().size(); i++) {
|
|
|
+ Map<String, String> imageMap = (Map<String, String>) result.get(String.valueOf(i));
|
|
|
+
|
|
|
+ Element page = submitXml.createElement("PAGE");
|
|
|
+ page.setAttribute("PAGE_ID", imageMap.get("pageId"));
|
|
|
+
|
|
|
+ Element createUser = submitXml.createElement("CREATE_USER");
|
|
|
+ createUser.setTextContent(userCode);
|
|
|
+ page.appendChild(createUser);
|
|
|
+ Element createUserName = submitXml.createElement("CREATE_USERNAME");
|
|
|
+ createUser.setTextContent(crawlerOrder.getUserName());
|
|
|
+ page.appendChild(createUserName);
|
|
|
+ String currentDateTime = DateUtil.getDateFormat(new Date(), DateUtil.FULL_TIME_SPLIT_PATTERN);
|
|
|
+ Element createTime = submitXml.createElement("CREATE_TIME");
|
|
|
+ createUser.setTextContent(currentDateTime);
|
|
|
+ page.appendChild(createTime);
|
|
|
+ Element modifyUser = submitXml.createElement("MODIFY_USER");
|
|
|
+ createUser.setTextContent(crawlerOrder.getUserName());
|
|
|
+ page.appendChild(modifyUser);
|
|
|
+ Element modifyTime = submitXml.createElement("MODIFY_TIME");
|
|
|
+ createUser.setTextContent(currentDateTime);
|
|
|
+ page.appendChild(modifyTime);
|
|
|
+ Element pageUrl = submitXml.createElement("PAGE_URL");
|
|
|
+ createUser.setTextContent(imageMap.get("filePath"));
|
|
|
+ page.appendChild(pageUrl);
|
|
|
+ Element thumUrl = submitXml.createElement("THUM_URL");
|
|
|
+ createUser.setTextContent(imageMap.get("thumPath"));
|
|
|
+ page.appendChild(thumUrl);
|
|
|
+ Element isLocal = submitXml.createElement("IS_LOCAL");
|
|
|
+ createUser.setTextContent("0");
|
|
|
+ page.appendChild(isLocal);
|
|
|
+ Element pageVer = submitXml.createElement("PAGE_VER");
|
|
|
+ createUser.setTextContent(result.get("ImgNum").toString());
|
|
|
+ page.appendChild(pageVer);
|
|
|
+ String orginalName = imageMap.get("orginalName");
|
|
|
+ Element pageDesc = submitXml.createElement("PAGE_DESC");
|
|
|
+ createUser.setTextContent(orginalName.substring(0, orginalName.indexOf(".")));
|
|
|
+ page.appendChild(pageDesc);
|
|
|
+ Element uploadOrg = submitXml.createElement("UPLOAD_ORG");
|
|
|
+ createUser.setTextContent(parameters.getComName());
|
|
|
+ page.appendChild(uploadOrg);
|
|
|
+ Element pageCrc = submitXml.createElement("PAGE_CRC");
|
|
|
+ page.appendChild(pageCrc);//新提交的照片不设置值
|
|
|
+ Element pageSize = submitXml.createElement("PAGE_SIZE");
|
|
|
+ createUser.setTextContent(imageMap.get("size"));
|
|
|
+ page.appendChild(pageSize);
|
|
|
+ Element pageFormat = submitXml.createElement("PAGE_FORMAT");
|
|
|
+ createUser.setTextContent("image/jpeg");
|
|
|
+ page.appendChild(pageFormat);
|
|
|
+ Element pageEncrypt = submitXml.createElement("PAGE_ENCRYPT");
|
|
|
+ createUser.setTextContent("0");
|
|
|
+ page.appendChild(pageEncrypt);
|
|
|
+ Element originalName = submitXml.createElement("ORIGINAL_NAME");
|
|
|
+ createUser.setTextContent(orginalName);
|
|
|
+ page.appendChild(originalName);
|
|
|
+ Element pageExt = submitXml.createElement("PAGE_EXT");
|
|
|
+ createUser.setTextContent("");
|
|
|
+ page.appendChild(pageExt);
|
|
|
+ Element pageDescs = submitXml.createElement("PAGE_DESCS");
|
|
|
+ createUser.setTextContent("");
|
|
|
+ page.appendChild(pageDescs);
|
|
|
+ pageInfoNode.appendChild(page);
|
|
|
+
|
|
|
+ Node vTreeNode = childNodes.item(2);
|
|
|
+ Node nodeNode = vTreeNode.getFirstChild();
|
|
|
+ Element leafNode = submitXml.createElement("LEAF");
|
|
|
+ leafNode.setTextContent(imageMap.get("pageId"));
|
|
|
+ nodeNode.appendChild(leafNode);
|
|
|
+ }
|
|
|
+
|
|
|
+ return XmlUtil.toStr(submitXml);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询投保单状态
|
|
|
+ * @param orderStatusRequest
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ZmCrawlerOrderStatusResponse orderStatusQuery(ZmCrawlerOrderStatusRequest orderStatusRequest) {
|
|
|
+ ResponseEntity<ZmCrawlerOrderStatusResponse> responseEntity = requestComponent.objectPost(RequestUrl.ORDER_STATUS_QUERY.getRequestUrl(zmCrawlerProperties.getBaseUrl()), orderStatusRequest, ZmCrawlerOrderStatusResponse.class);
|
|
|
+ return responseEntity.getBody();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 提交核保
|
|
|
+ * @param submitRequest
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ZmCrawlerSubmitResponse submit(ZmCrawlerSubmitRequest submitRequest) {
|
|
|
+ ResponseEntity<ZmCrawlerSubmitResponse> responseEntity = requestComponent.objectPost(RequestUrl.SUBMIT.getRequestUrl(zmCrawlerProperties.getBaseUrl()), submitRequest, ZmCrawlerSubmitResponse.class);
|
|
|
+ return responseEntity.getBody();
|
|
|
+ }
|
|
|
}
|