|
|
@@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.fasterxml.jackson.databind.ObjectReader;
|
|
|
import com.jzg.commons.constants.ProductsType;
|
|
|
import com.jzg.commons.constants.dict.InsOrderStatusEnum;
|
|
|
+import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
|
|
|
import com.jzg.commons.entity.po.jyxSetting;
|
|
|
import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
|
|
|
import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
|
|
|
@@ -876,6 +877,14 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
|
|
|
|
|
|
order.setJqPolicyno(r.getJqPolicyno());
|
|
|
order.setSyPolicyno(r.getSyPolicyno());
|
|
|
+ InsOrdersCarUserInfo insOrdersCarUserInfo = null;
|
|
|
+ for (InsOrdersCarUserInfo userInfo : vo.getInsOrdersCarUserInfoList()) {
|
|
|
+ if(userInfo.getPolicyPersonType() == 2) {
|
|
|
+ insOrdersCarUserInfo = userInfo;
|
|
|
+ order.setPolicyName(insOrdersCarUserInfo.getName());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
orderService.update(order);
|
|
|
return r;
|
|
|
}
|
|
|
@@ -982,10 +991,10 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
|
|
|
String productId = vo.getOrder().getProductId();
|
|
|
HtCrawlerOrder order = orderService.findByOrdersNo(vo.getOrder().getOrdersNo());
|
|
|
return ProductsType.PT_0330.getCode().equals(productId)
|
|
|
- ? downloadPolicy(order.getJqPolicyno(), true) : downloadPolicy(order.getSyPolicyno(), false);
|
|
|
+ ? downloadPolicy(vo, order, order.getJqPolicyno(), true) : downloadPolicy(vo, order, order.getSyPolicyno(), false);
|
|
|
}
|
|
|
|
|
|
- private DownloadPolicyResultVo downloadPolicy(String no, boolean jq) {
|
|
|
+ private DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo vo,HtCrawlerOrder order, String no, boolean jq) {
|
|
|
MultiValueMap<String, String> fd = new LinkedMultiValueMap<>();
|
|
|
fd.add("businessno", no);
|
|
|
fd.add("riskcode", jq ? "1002" : "1251");
|
|
|
@@ -1012,9 +1021,72 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
|
|
|
log.info("下载商业保单地址:{}", r.getSyUrl());
|
|
|
}
|
|
|
}
|
|
|
+ if (StringUtils.isNotBlank(order.getJyPolicyno())) {
|
|
|
+ // 1. 构造请求头
|
|
|
+ HttpHeaders headers = getHeaders();
|
|
|
+
|
|
|
+ // 2. url + query params(cmd=perDocumentPrint)
|
|
|
+ String baseUrl = "https://cspxp.pc.ehuatai.com";
|
|
|
+ String path = "/htcsp/DocumentPrintAction.do";
|
|
|
+ UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromHttpUrl(baseUrl + path);
|
|
|
+ uriBuilder.queryParam("cmd", "perDocumentPrint");
|
|
|
+ String fullUrl = uriBuilder.toUriString();
|
|
|
+
|
|
|
+ // 3. 构造POST表单data(MultiValueMap 对应 form-data)
|
|
|
+ MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
|
|
|
+ formData.add("businessno", order.getJyPolicyno() + ",");
|
|
|
+ formData.add("registeredxml", "");
|
|
|
+ formData.add("printSysflag", "7,");
|
|
|
+ AttributionInformationVo attr = vo.getOrder().getAttributionInformationVo();
|
|
|
+ HtCrawlerConfigureParameters params = ConfigureParametersConversion.conversionEntity(
|
|
|
+ HtCrawlerConfigureParameters.class, attr.getConfigInfo());
|
|
|
+ // Businesscompanynodecode 传两个相同comCode,表单同一个key传多次
|
|
|
+ formData.add("Businesscompanynodecode", params.getComCode());
|
|
|
+ formData.add("Businesscompanynodecode", params.getComCode());
|
|
|
+ formData.add("productcode", "E007");
|
|
|
+ formData.add("noncarPrintflag", "10");
|
|
|
+ formData.add("documenttype", "3");
|
|
|
+ formData.add("documenttypecode", "");
|
|
|
+ formData.add("documentstartcode", "");
|
|
|
+ // peopleinfo 取 tb_uname
|
|
|
+ String tbUname = order.getPolicyName();
|
|
|
+ formData.add("payrefname", tbUname);
|
|
|
+
|
|
|
+ // 4. 发起POST 请求(复用类内已有的post工具方法)
|
|
|
+ String responseText = post(fullUrl, headers, formData);
|
|
|
+ log.info("feiche response:{}", responseText);
|
|
|
+
|
|
|
+ // 5. 解析返回JSON
|
|
|
+ Map<String, Object> respMap = null;
|
|
|
+ try {
|
|
|
+ respMap = MAPPER.readValue(responseText, new TypeReference<Map<String, Object>>() {});
|
|
|
+ } catch (JsonProcessingException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ String printUrl = String.valueOf(respMap.get("printurl"));
|
|
|
+ // 替换 & 为 @
|
|
|
+ printUrl = printUrl.replace("&", "@");
|
|
|
+ // 拼接固定前缀赋值成员变量
|
|
|
+ String jyxPolicyUrl = "http://39.98.41.104:8088/ht/ht_bddownload?values=" + printUrl;
|
|
|
+ r.setJyUrl(jyxPolicyUrl);
|
|
|
+ }
|
|
|
return r;
|
|
|
}
|
|
|
|
|
|
+ @NotNull
|
|
|
+ private HttpHeaders getHeaders() {
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.set("Accept", "application/json, text/javascript, */*; q=0.01");
|
|
|
+ headers.set("Accept-Language", "zh-CN,zh;q=0.9");
|
|
|
+ headers.set("Connection", "keep-alive");
|
|
|
+ headers.set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
|
|
|
+ headers.set("Origin", "https://cspxp.pc.ehuatai.com");
|
|
|
+ headers.set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36");
|
|
|
+ headers.set("X-Requested-With", "XMLHttpRequest");
|
|
|
+ headers.set("Cookie", req.getCookie());
|
|
|
+ return headers;
|
|
|
+ }
|
|
|
+
|
|
|
// ====================== 查询订单状态 ======================
|
|
|
@Override
|
|
|
public OrderStatusResultVo queryOrderState(OrderStatusVo vo) {
|