| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420 |
- package com.ydtech.modules.ins.service.impl;
- import com.alibaba.fastjson.JSONObject;
- import com.fasterxml.jackson.annotation.JsonInclude;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.dataformat.xml.XmlMapper;
- import com.ydtech.components.OrderComponents;
- import com.ydtech.constants.enums.InsOrderStatus;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.exception.SystemException;
- import com.ydtech.modules.admin.model.SysDept;
- import com.ydtech.modules.admin.model.SysUser;
- import com.ydtech.modules.admin.service.SysDeptService;
- import com.ydtech.modules.admin.service.SysUserService;
- import com.ydtech.modules.esm.model.EsmAgreement;
- import com.ydtech.modules.esm.model.EsmAgreementProd;
- import com.ydtech.modules.esm.model.EsmRetail;
- import com.ydtech.modules.esm.model.InsTaskImage;
- import com.ydtech.modules.esm.service.*;
- import com.ydtech.modules.ins.model.InsOrder;
- import com.ydtech.modules.ins.model.InsTaskHistory;
- import com.ydtech.modules.ins.model.vo.*;
- import com.ydtech.modules.ins.model.ya.*;
- import com.ydtech.modules.ins.service.*;
- import com.ydtech.modules.order.entity.InsAreaCompany;
- import com.ydtech.modules.order.service.InsAreaCompanyService;
- import com.ydtech.modules.order.service.InsOrdersService;
- import com.ydtech.utils.HMAC256Uitil;
- import com.ydtech.utils.HttpXmlUtil;
- import com.ydtech.utils.idgen.IdGenerate;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import org.springframework.util.StringUtils;
- import org.springframework.web.bind.annotation.RequestBody;
- import javax.crypto.Mac;
- import javax.crypto.spec.SecretKeySpec;
- import java.math.BigDecimal;
- import java.nio.charset.StandardCharsets;
- import java.text.SimpleDateFormat;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * @author gws
- * @description:TODO
- * @date 2022-07-13 16:56
- */
- @Service
- @Slf4j
- public class YongAnServiceImpl implements YongAnService {
- @Value("${ya.url}")
- String url = "";
- @Value("${ya.url.sign}")
- String url_sign = "";
- @Value("${ya.consumerID}")
- String consumerID = "";
- @Value("${ya.consumerAccessKey}")
- String consumerAccessKey_init = "";
- @Value("${ya.matchCode}")
- String matchCode = "";
- @Value("${ya.userCode}")
- String userCode = "";
- @Value("${ya.comCode}")
- String comCode = "";
- @Autowired
- InsOrderService insOrderService;
- @Autowired
- private InsTaskImageService insTaskImageService;
- @Autowired
- SysUserService sysUserService;
- @Autowired
- SysDeptService sysDeptService;
- @Autowired
- EsmAgreementService esmAgreementService;
- @Autowired
- EsmAgreementProdService esmAgreementProdService;
- @Autowired
- EsmRetailService esmRetailService;
- @Autowired
- EsmUserInternalService esmUserInternalService;
- @Autowired
- InsOrderTaskService insOrderTaskService;
- @Autowired
- InsTaskHistoryService insTaskHistoryService;
- @Autowired
- private InsFileLogService insFileLogService;
- @Autowired
- InsFeeDetailService insFeeDetailService;
- @Autowired
- EsmAgreementProdfeeService esmAgreementProdfeeService;
- @Autowired
- InsDeptFeeService insDeptFeeService;
- @Autowired
- InsCommissionService insCommissionService;
- @Autowired
- OrderComponents orderComponents;
- /**
- * 1 车型查询接口
- */
- @Override
- public HttpResult modelsQuery(CarModel_Req carModelReq) {
- // if (StringUtils.isEmpty(carModelReq.getFrameNo()) || StringUtils.isEmpty(carModelReq.getEnrollDate()) || StringUtils.isEmpty(carModelReq.getModelName())) {
- // return HttpResult.error("frameNo, enrollDate, modelName 这些参数不能为空!");
- // }
- ResponseDataC1 responseDataC1 = new ResponseDataC1();
- try {
- responseDataC1 = getResponseDataC1(carModelReq);
- if (!responseDataC1.getResponseHead().getStatus().equals("0")) {
- throw new SystemException("查询车型出错:" + responseDataC1.getResponseHead().getAppMessage());
- }
- } catch (SystemException e) {
- return HttpResult.error(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return HttpResult.error("系统错误,请联系管理员");
- }
- return HttpResult.ok(responseDataC1.getResponseBody().getCarModel());
- }
- /**
- * 2 报价
- */
- @Override
- public HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) {
- HttpResult httpResult = new HttpResult();
- RequestData requestData = new RequestData();
- RequestHead requestHead = getRequestHead("C2");
- RequestBodyC2 requestBodyC2 = new RequestBodyC2();
- ResponseDataC2 responseDataC2 = new ResponseDataC2();
- ObjectMapper mapper = new XmlMapper();
- mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
- try {
- //1.1必填校验
- checkEmpty(yaQuoteInfoVo);
- //1.2 组装订单信息
- InsOrder insOrder = gene_order(yaQuoteInfoVo);
- // PrivyDTO[] privys =new PrivyDTO[2];
- List<PrivyDTO> privys = new ArrayList<>();
- //2.1投保人信息
- CustomerInfoVo policyHolderInfo = yaQuoteInfoVo.getPolicyHolderInfo();
- PrivyDTO privyDTO_tbr = new PrivyDTO("1", policyHolderInfo.getName(), policyHolderInfo.getIdentifyNumber());
- privyDTO_tbr.setPhoneNo(policyHolderInfo.getMobile());
- privyDTO_tbr.setCresidaddr(policyHolderInfo.getAddr());
- //2.2车主
- CustomerInfoVo ownerInfo = yaQuoteInfoVo.getOwnerInfo();
- PrivyDTO privyDTO_bbr = new PrivyDTO("2", ownerInfo.getName(), ownerInfo.getIdentifyNumber());
- privyDTO_bbr.setPhoneNo(ownerInfo.getMobile());
- privyDTO_bbr.setCresidaddr(ownerInfo.getAddr());
- privys.add(privyDTO_tbr);
- privys.add(privyDTO_bbr);
- requestBodyC2.setPrivy(privys);
- //3 车辆信息
- CarInfoVo carInfo = yaQuoteInfoVo.getCarInfo();
- CarModel_Req carModelReq = new CarModel_Req(carInfo.getFrameNo(), carInfo.getRegisterDate(), carInfo.getBrandName(), carInfo.getCiModelCode());
- carModelReq.setEngineNo(carInfo.getEngineNo());
- ResponseDataC1 responseDataC1 = getResponseDataC1(carModelReq);
- if (!responseDataC1.getResponseHead().getStatus().equals("0")) {
- throw new SystemException("查询车型出错:" + responseDataC1.getResponseHead().getAppMessage());
- }
- ResponseBodyC1 responseBody = responseDataC1.getResponseBody();
- List<CarModelDTO> carModel = responseBody.getCarModel();
- if (carModel == null || carModel.size() == 0) {
- throw new SystemException("未查询到匹配车型!");
- }
- // 通过车型校准永安车型
- CarModelDTO carModelDTO = null;
- List<CarModelDTO> collect = carModel.stream().filter(a -> Objects.equals(a.getModelName(), carInfo.getBrandName())).collect(Collectors.toList());
- for (CarModelDTO carModelDTO1 : collect) {
- if (carInfo.getCaryear() == null) {
- if (carInfo.getPurchasePrice().equals(carModelDTO1.getReplacementValue())) {
- carModelDTO = carModelDTO1;
- break;
- }
- } else {
- if (carInfo.getCaryear().equals(carModelDTO1.getMarketYear()) && carInfo.getPurchasePrice().equals(carModelDTO1.getReplacementValue())) {
- carModelDTO = carModelDTO1;
- break;
- }
- }
- }
- if (carModelDTO == null) {
- carModelDTO = carModel.get(0);
- }
- CarDTO carDTO = new CarDTO();
- carDTO.setQueryModelNo(responseBody.getQueryModelNo());
- carDTO.setLicenseNo(carInfo.getLicenseNo());
- carDTO.setFrameNo(carInfo.getFrameNo());
- carDTO.setEngineNo(carInfo.getEngineNo());
- carDTO.setEnrollDate(carInfo.getRegisterDate());
- carDTO.setModelCode(carModelDTO.getModelCode());
- carDTO.setModelName(carModelDTO.getModelName());
- carDTO.setSeatCount(Integer.parseInt(carModelDTO.getRatedPassengerCapacity()));
- carDTO.setPurchasePrice(Double.parseDouble(carModelDTO.getReplacementValue()));
- // if (!StringUtils.isEmpty(carInfo.getTransferDate()) && carInfo.isTransferFlag()) {
- // carDTO.setTransferDate(carInfo.getTransferDate());
- // }
- if (carInfo.isTransferFlag()) {
- carDTO.setTransferDate(carInfo.getIssueDate());
- }
- requestBodyC2.setCars(carDTO);
- //4 交强商业险加工
- List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
- KindDTO[] kinds;
- boolean jq_falg = false;
- for (int i = 0; i < riskList.size(); i++) {
- //商业险
- if (riskList.get(i).getRiskCode().equals("0510")) {
- if (carDTO.getLicenseNo().length() == 8) {//新能源车
- requestBodyC2.setSyRiskCode("039011");
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat df_req = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- df.format(df_req.parse(riskList.get(i).getEndDate()));
- requestBodyC2.setSyStartDate(df.format(df_req.parse(riskList.get(i).getStartDate())));
- // 交强险即时起保终保日期时分秒与起保日期一致,商业险即时起保终保日期时分秒必须是23:59:59
- // 要是不知道怎么传终保日期,可以不传,系统会自动默认,保期一年
- // requestBodyC2.setSyEndDate(df.format(df_req.parse(riskList.get(i).getEndDate())));
- } else {
- requestBodyC2.setSyRiskCode("039002");
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat df_req = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- df.format(df_req.parse(riskList.get(i).getEndDate()));
- requestBodyC2.setSyStartDate(df.format(df_req.parse(riskList.get(i).getStartDate())));
- // 交强险即时起保终保日期时分秒与起保日期一致,商业险即时起保终保日期时分秒必须是23:59:59
- // 要是不知道怎么传终保日期,可以不传,系统会自动默认,保期一年
- // requestBodyC2.setSyEndDate(df.format(df_req.parse(riskList.get(i).getEndDate())));
- }
- }
- //交强险
- if (riskList.get(i).getRiskCode().equals("0507")) {
- requestBodyC2.setJqRiskCode("039001");
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat df_req = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- requestBodyC2.setJqStartDate(df.format(df_req.parse(riskList.get(i).getStartDate())));
- // requestBodyC2.setJqEndDate(df.format(df_req.parse(riskList.get(i).getEndDate())));
- jq_falg = true;
- }
- }
- //4 险别加工
- kinds = geneKindInfo(yaQuoteInfoVo, carDTO, jq_falg);
- requestBodyC2.setKinds(kinds);
- //5 其他加工
- RebateRateInfoList[] jqRebateRateInfo = new RebateRateInfoList[0];
- RebateRateInfoList[] syRebateRateInfo = new RebateRateInfoList[0];
- requestBodyC2.setJqRebateRateInfo(jqRebateRateInfo);
- requestBodyC2.setSyRebateRateInfo(syRebateRateInfo);
- DeviceItem[] devices = new DeviceItem[0];
- ChargingPileDTO[] chargingPiles = new ChargingPileDTO[0];
- ExtendInfoDto[] extendInfo = new ExtendInfoDto[1];
- extendInfo[0] = new ExtendInfoDto("matchCode", matchCode);
- requestBodyC2.setDevices(devices);
- requestBodyC2.setChargingPiles(chargingPiles);
- requestBodyC2.setExtendInfo(extendInfo);
- //6 接口请求
- log.info("===永安--报价接口开始请求===");
- requestData.setRequestHead(requestHead);
- requestData.setRequestBody(requestBodyC2);
- String responseString = httpPost(mapper, requestData);
- responseDataC2 = mapper.readValue(responseString, ResponseDataC2.class);
- System.out.println(responseDataC2);
- // 6.1 替换成正确的车型重新
- if (responseDataC2.getResponseHead().getAppMessage().contains("录入车型和平台返回车型")) {
- // 录入车型和平台返回车型(JLAAQD0032)
- String appMessage = responseDataC2.getResponseHead().getAppMessage();
- int i = appMessage.indexOf("(");
- int i1 = appMessage.indexOf(")");
- String substring = appMessage.substring(i + 1, i1);
- carModelReq.setModelCode(substring);
- responseDataC1 = getResponseDataC1(carModelReq);
- responseBody = responseDataC1.getResponseBody();
- carModel = responseBody.getCarModel();
- CarModelDTO carModelDTO1 = carModel.get(0);
- carDTO.setModelCode(carModelDTO1.getModelCode());
- carDTO.setModelName(carModelDTO1.getModelName());
- carDTO.setSeatCount(Integer.parseInt(carModelDTO1.getRatedPassengerCapacity()));
- carDTO.setPurchasePrice(Double.parseDouble(carModelDTO1.getReplacementValue()));
- requestBodyC2.setCars(carDTO);
- log.info(carModel.toString());
- responseString = httpPost(mapper, requestData);
- responseDataC2 = mapper.readValue(responseString, ResponseDataC2.class);
- }
- if (!responseDataC2.getResponseHead().getStatus().equals("0")) {
- return HttpResult.error("永安--报价失败:" + responseDataC2.getResponseHead().getAppMessage());
- }
- //7 生成返回
- ResponseBodyC2 responseBodyC2 = responseDataC2.getResponseBody();
- if (responseBodyC2.getReinsureFlag().equals("1")) {
- if (insOrder.getJqstartdate() != null && insOrder.getSystartdate() != null) {
- if (responseBodyC2.getSyStartDate() != null && responseBodyC2.getJqStartDate() == null) {
- throw new SystemException("交强重复投保,商业险起始时间" + responseBodyC2.getSyStartDate() + "---" + responseBodyC2.getSyEndDate());
- } else if (responseBodyC2.getJqStartDate() != null && responseBodyC2.getSyStartDate() == null) {
- throw new SystemException("商业重复投保, 交强险起始时间" + responseBodyC2.getJqStartDate() + "---" + responseBodyC2.getJqEndDate());
- }
- }
- httpResult.setCode(501);
- httpResult.setData(responseBodyC2);
- httpResult.setMsg("重复投保");
- return httpResult;
- }
- QuoteRespVo quoteRespVo = getQuoteRespVo(insOrder, carDTO, responseBodyC2);
- httpResult.setData(quoteRespVo);
- httpResult.setMsg("成功");
- //8 生成订单
- response_order(insOrder, quoteRespVo, requestData, responseDataC2, jq_falg);
- } catch (SystemException e) {
- return HttpResult.error(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return HttpResult.error("系统错误,请联系管理员");
- }
- return httpResult;
- }
- /**
- * 3 核保
- */
- @Override
- public HttpResult audit(String orderno) {
- RequestData requestData = new RequestData();
- RequestHead requestHead = getRequestHead("C3");
- RequestBodyC3 requestBodyC3 = new RequestBodyC3();
- ResponseDataC3 responseDataC3 = new ResponseDataC3();
- ObjectMapper mapper = new XmlMapper();
- mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
- try {
- InsOrder order = insOrderService.selectByPk(orderno);
- if (order == null) {
- return HttpResult.error("订单不存在");
- }
- //1.组装RequestBody
- ResponseDataC2 responseDataC2 = JSONObject.parseObject(order.getReptxt().toJSONString(), ResponseDataC2.class);
- CustomerInfoVo insureinfo = JSONObject.parseObject(order.getInsureinfo().toJSONString(), CustomerInfoVo.class);
- requestBodyC3.setQuotationNoCI(responseDataC2.getResponseBody().getQuotationNoCI());
- requestBodyC3.setQuotationNoBI(responseDataC2.getResponseBody().getQuotationNoBI());
- DispatchDTO dispatchDTO = new DispatchDTO();
- dispatchDTO.setShippingMethod("3");
- requestBodyC3.setDispatch(dispatchDTO);
- DeviceItem[] devices = new DeviceItem[0];//新增设备信息
- PaymentDTO payment = new PaymentDTO();//缴费信息
- List<PrivyDTO> privy = new ArrayList<>();//关系人信息
- /*<insuredFlag>1000</insuredFlag>投
- <insuredFlag>0100</insuredFlag>被
- <insuredFlag>0010</insuredFlag>车主*/
- PrivyDTO privyDTO = new PrivyDTO("0100", insureinfo.getName(), insureinfo.getIdentifyNumber());
- privyDTO.setPhoneNo(insureinfo.getMobile());
- privyDTO.setCresidaddr(insureinfo.getAddr());
- privy.add(privyDTO);
- ExtendInfoDto[] extendInfo = new ExtendInfoDto[1];//扩展信息
- ExtendInfoDto extendInfoDto1 = new ExtendInfoDto("imageNumber", "yx" + order.getOrderno());//影像单号传yx+orderno
- extendInfo[0] = extendInfoDto1;
- requestBodyC3.setDevices(devices);
- requestBodyC3.setPayment(payment);
- requestBodyC3.setPrivy(privy);
- requestBodyC3.setExtendInfo(extendInfo);
- //2 接口请求
- log.info("===永安--核保接口开始请求===");
- requestData.setRequestHead(requestHead);
- requestData.getRequestHead().setSeqNo(order.getOrderno());//支付后保单同步接口根据此号进行同步
- requestData.setRequestBody(requestBodyC3);
- String responseString = httpPost(mapper, requestData);
- responseDataC3 = mapper.readValue(responseString, ResponseDataC3.class);
- System.out.println(responseDataC3);
- if (!responseDataC3.getResponseHead().getStatus().equals("0")) {
- return HttpResult.error("永安--提交核保失败:" + responseDataC3.getResponseHead().getAppMessage());
- } else {
- ResponseBodyC3 responseBody = responseDataC3.getResponseBody();
- String jqApplyno = responseBody.getProposalBZNo();
- String syApplyno = responseBody.getProposalNo();
- ExtendInfoDto[] extendInfo_res = responseBody.getExtendInfo();
- String payUrl = "";
- for (ExtendInfoDto extendInfoDto : extendInfo_res) {
- if (extendInfoDto.getKey().equals("payUrlApp")) {
- payUrl = extendInfoDto.getValue();
- }
- }
- UnderwriteDTO[] underwriteInfo = responseBody.getUnderwriteInfo();
- String jqunderwriteStatus = "3";
- String syunderwriteStatus = "3";
- String orderstatus = "4";
- if (underwriteInfo != null && underwriteInfo.length > 0) {
- for (UnderwriteDTO underwriteDTO : underwriteInfo) {
- if ("CI".equals(underwriteDTO.getResultType())) {
- //1:下发修改,2:转人工,3:自核通过
- jqunderwriteStatus = underwriteDTO.getUnderwriteStatus();
- } else if ("BI".equals(underwriteDTO.getResultType())) {
- syunderwriteStatus = underwriteDTO.getUnderwriteStatus();
- }
- }
- if (jqunderwriteStatus.equals("3") && syunderwriteStatus.equals("3")) {
- orderstatus = "5";
- }
- } else {
- orderstatus = "5";
- }
- order.setAuditid(order.getUserid());
- order.setPaymenttype(payUrl);
- order.setOrderstatus(orderstatus);
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- order.setSubmittime(sdf.format(new Date()));
- order.setJqapplyno(jqApplyno == null ? "" : jqApplyno);
- order.setSyapplyno(syApplyno == null ? "" : syApplyno);
- order.setJqappoint(""); //交强特别约定
- order.setSyappoint(""); //商业特别约定
- insOrderService.update(order);
- insTaskHistoryService.insertByOrderStatus(order);
- //插入轨迹表
- if (orderstatus.equals("5")) {
- InsTaskHistory history = new InsTaskHistory();
- history.setId(String.valueOf(new Date().getTime()));
- history.setCompany(order.getInscompany());
- history.setTaskid(order.getOrderno());
- history.setOperatorid(order.getUserid());
- history.setOperator(order.getUsername());
- history.setCreatetime(sdf.format(new Date()));
- history.setStatus("2");
- history.setRemark("已核保");
- insTaskHistoryService.insert(history);
- history.setId(String.valueOf(new Date().getTime() + 1000));
- history.setCompany(order.getInscompany());
- history.setTaskid(order.getOrderno());
- history.setOperatorid(order.getUserid());
- history.setOperator(order.getUsername());
- history.setCreatetime(sdf.format(new Date()));
- history.setStatus(order.getOrderstatus());
- history.setRemark("已核保待缴费");
- insTaskHistoryService.insert(history);
- } else {
- InsTaskHistory history = new InsTaskHistory();
- history.setId(String.valueOf(new Date().getTime()));
- history.setCompany(order.getInscompany());
- history.setTaskid(order.getOrderno());
- history.setOperatorid(order.getUserid());
- history.setOperator(order.getUsername());
- history.setCreatetime(sdf.format(new Date()));
- history.setStatus("4");
- history.setRemark("核保不通过");
- insTaskHistoryService.insert(history);
- }
- }
- log.info("===永安--核保成功===");
- log.info("===永安--影像上传成功成功===");
- } catch (SystemException e) {
- return HttpResult.error(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- log.error("===永安--核保报错:" + e.getMessage());
- return HttpResult.error("系统错误,请联系管理员");
- }
- return HttpResult.ok("提交成功");
- }
- /**
- * 影像上传
- *
- * @param record
- * @return
- */
- public HttpResult UploadImage(@RequestBody InsTaskImage record) {
- try {
- if (record.getTaskid() == null || record.getTaskid().equalsIgnoreCase("")) {
- return HttpResult.error("任务号taskid不能为空");
- }
- if (record.getImgtype() == null || record.getImgtype().equalsIgnoreCase("")) {
- return HttpResult.error("图片类型imgtype不能为空");
- }
- if (record.getImgList() == null || record.getImgList().size() == 0) {
- return HttpResult.error("图片列表imgList不能为空");
- }
- insTaskImageService.delete(record.getTaskid(), record.getImgtype());
- RequestData requestData = new RequestData();
- RequestHead requestHead = getRequestHead("B25");
- RequestBodyB25 requestBodyB25 = new RequestBodyB25();
- ResponseDataB25 responseDataB25 = new ResponseDataB25();
- ObjectMapper mapper = new XmlMapper();
- mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
- for (int i = 1; i <= record.getImgList().size(); i++) {
- String image = record.getImgList().get(i - 1);
- record.setId(IdGenerate.nextId());
- record.setCreator(getUserName());
- record.setCreatetime(new Date());
- record.setImage(image);
- insTaskImageService.insert(record);
- //------------------永安影像上传----------------------
- //1.组装RequestBody
- requestBodyB25.setBussNo("yx" + record.getTaskid());
- requestBodyB25.setUserCode(userCode);
- requestBodyB25.setComCode(comCode);
- image = image.replace("data:image/jpeg;base64,", "");
- requestBodyB25.setFile(image);
- String fileName = "";
- //C01车辆影像,C02车主身份证,C03投保人身份证,C04被保人身份证,C05验车照
- if (record.getImgtype() != null && record.getImgtype().equals("C01")) {
- fileName = "车辆影像" + i + ".jpg";
- } else if (record.getImgtype() != null && record.getImgtype().equals("C02")) {
- fileName = "车主身份证" + i + ".jpg";
- } else if (record.getImgtype() != null && record.getImgtype().equals("C03")) {
- fileName = "投保人身份证" + i + ".jpg";
- } else if (record.getImgtype() != null && record.getImgtype().equals("C04")) {
- fileName = "被保人身份证" + i + ".jpg";
- } else if (record.getImgtype() != null && record.getImgtype().equals("C05")) {
- fileName = "验车照" + i + ".jpg";
- }
- requestBodyB25.setFileName(fileName);
- //2 接口请求
- log.info("===永安--上传影像开始请求===");
- requestData.setRequestHead(requestHead);
- requestData.setRequestBody(requestBodyB25);
- String responseString = httpPost(mapper, requestData);
- responseDataB25 = mapper.readValue(responseString, ResponseDataB25.class);
- if (!responseDataB25.getResponseHead().getStatus().equals("0")) {
- return HttpResult.error("永安--上传影像失败:" + responseDataB25.getResponseHead().getAppMessage());
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- log.error("===永安--上传影像报错:" + e.getMessage());
- return HttpResult.error("系统错误,请联系管理员");
- }
- return HttpResult.ok();
- }
- /*public static void main(String[] args) {
- String base64str="/9j/4QCCRXhpZgAATU0AKgAAAAgABAEAAAMAAAABAyoAAAEBAAMAAAABBDgAAIdpAAQAAAABAAAAPgESAAMAAAABAAAAAAAAAAAAAZIIAAMAAAABAAAAAAAAAAAAAwEAAAMAAAABAyoAAAEBAAMAAAABBDgAAAESAAMAAAABAAAAAAAAAAD/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAIQAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAUDc8RjwyUEZBRlpVUF94yIJ4bm549a+5kcj////////////////////////////////////////////////////bAEMBVVpaeGl464KC6//////////////////////////////////////////////////////////////////////////AABEIBDgDKgMBIgACEQEDEQH/xAAYAAEBAQEBAAAAAAAAAAAAAAAAAQIDBP/EACwQAQEAAgIC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";
- String savepath="D:\\new.jpg";
- GenerateImage(base64str,savepath);
- }
- public static boolean GenerateImage(String base64str,String savepath)
- { //对字节数组字符串进行Base64解码并生成图片
- if (base64str == null) //图像数据为空
- return false;
- // System.out.println("开始解码");
- BASE64Decoder decoder = new BASE64Decoder();
- try
- {
- //Base64解码
- byte[] b = decoder.decodeBuffer(base64str);
- System.out.println("解码完成");
- for(int i=0;i<b.length;++i)
- {
- if(b[i]<0)
- {//调整异常数据
- b[i]+=256;
- }
- }
- System.out.println("开始生成图片");
- //生成jpeg图片
- OutputStream out = new FileOutputStream(savepath);
- out.write(b);
- out.flush();
- out.close();
- return true;
- }
- catch (Exception e)
- {
- e.printStackTrace();
- return false;
- }
- }*/
- /**
- * 4 获取短信验证码
- */
- @Override
- public HttpResult getMessage(String orderno) {
- HttpResult httpResult = new HttpResult();
- try {
- InsOrder order = insOrderService.selectByPk(orderno);
- if (order == null) {
- return HttpResult.error("订单不存在");
- }
- RequestData requestData = new RequestData();
- RequestHead requestHead = getRequestHead("B7");
- RequestBodyB7 requestBodyB7 = new RequestBodyB7();
- ResponseDataB7 responseDataB7 = new ResponseDataB7();
- ObjectMapper mapper = new XmlMapper();
- mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
- //1.组装RequestBody
- ResponseDataC2 responseDataC2 = JSONObject.parseObject(order.getReptxt().toJSONString(), ResponseDataC2.class);
- List<ExtendInfoDto> extendInfoList = responseDataC2.getResponseBody().getExtendInfo();
- Map<String, String> maps = extendInfoList.stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getKey(), v.getValue()), LinkedHashMap::putAll);
- // Map<String, String> maps = extendInfoList.stream().collect(Collectors.toMap(ExtendInfoDto::getKey, ExtendInfoDto::getValue, (key1, key2) -> key2));
- requestBodyB7.setBzQueryNo(maps.get("querySequenceBZNo"));//交强
- requestBodyB7.setQueryNo(maps.get("querySequenceNo"));
- DispatchDTO dispatchDTO = new DispatchDTO();
- dispatchDTO.setShippingMethod("3");
- requestBodyB7.setCityCode("140400");
- List<PrivyDTO> privy = new ArrayList<>();//关系人信息
- CustomerInfoVo policyHolderInfo = JSONObject.parseObject(order.getApplyinfo().toJSONString(), CustomerInfoVo.class);
- PrivyDTO privyDTO = new PrivyDTO("1000", policyHolderInfo.getName(), policyHolderInfo.getIdentifyNumber());
- privyDTO.setPhoneNo(policyHolderInfo.getMobile());
- CustomerInfoVo insuredPersonInfo = JSONObject.parseObject(order.getInsureinfo().toJSONString(), CustomerInfoVo.class);
- PrivyDTO privyDTO2 = new PrivyDTO("0100", insuredPersonInfo.getName(), insuredPersonInfo.getIdentifyNumber());
- privyDTO2.setPhoneNo(insuredPersonInfo.getMobile());
- privy.add(privyDTO);
- privy.add(privyDTO2);
- ExtendInfoDto[] extendInfo = new ExtendInfoDto[1];
- extendInfo[0] = new ExtendInfoDto("matchCode", matchCode);
- requestBodyB7.setExtendInfo(extendInfo);
- requestBodyB7.setPrivy(privy);
- //2 接口请求
- log.info("===永安--获取短信验证码接口开始请求===");
- requestData.setRequestHead(requestHead);
- requestData.setRequestBody(requestBodyB7);
- String responseString = httpPost(mapper, requestData);
- responseDataB7 = mapper.readValue(responseString, ResponseDataB7.class);
- System.out.println(responseDataB7);
- if (!responseDataB7.getResponseHead().getStatus().equals("0")) {
- return HttpResult.error("永安--获取短信验证码接口失败:" + responseDataB7.getResponseHead().getAppMessage());
- } else {
- log.info("短信发送成功!");
- httpResult.setMsg("短信发送成功!");
- }
- } catch (SystemException e) {
- return HttpResult.error(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return HttpResult.error("系统错误,请联系管理员");
- }
- return httpResult;
- }
- /**
- * 5 获取支付url(提交短信验证码)
- */
- @Override
- public HttpResult getPayUrl(String orderno, String verificationCode) {
- HttpResult httpResult = new HttpResult();
- try {
- InsOrder order = insOrderService.selectByPk(orderno);
- if (order == null) {
- return HttpResult.error("订单不存在");
- }
- RequestData requestData = new RequestData();
- RequestHead requestHead = getRequestHead("B13");
- RequestBodyB13 requestBodyB13 = new RequestBodyB13();
- ResponseDataB13 responseDataB13 = new ResponseDataB13();
- ObjectMapper mapper = new XmlMapper();
- mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
- //1.组装RequestBody
- requestBodyB13.setProposalNoCI(order.getJqapplyno());
- requestBodyB13.setProposalNoBI(order.getSyapplyno());
- requestBodyB13.setVerificationCode(verificationCode);
- //2 接口请求
- log.info("===永安--提交短信验证码接口开始请求===");
- requestData.setRequestHead(requestHead);
- requestData.setRequestBody(requestBodyB13);
- String responseString = httpPost(mapper, requestData);
- responseDataB13 = mapper.readValue(responseString, ResponseDataB13.class);
- log.info(responseDataB13.toString());
- if (!responseDataB13.getResponseHead().getStatus().equals("0")) {
- return HttpResult.error("永安--提交短信验证码接口失败:" + responseDataB13.getResponseHead().getAppMessage());
- } else {
- log.info("短信提交成功!");
- }
- httpResult.setMsg(order.getPaymenttype());
- } catch (SystemException e) {
- return HttpResult.error(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return HttpResult.error("系统错误,请联系管理员");
- }
- return httpResult;
- }
- @Autowired
- private InsAreaCompanyService insAreaCompanyService;
- @Autowired
- private InsOrdersService insOrdersService;
- /**
- * 5 保单信息同步
- */
- @Override
- public String updatePolicy(Map<String, String> paramMap) {
- String orderNo = paramMap.get("orderNo");
- String payAppNo = paramMap.get("payAppNo");
- String payTime = paramMap.get("payTime");
- String crstTxt = paramMap.get("crstTxt");
- String crstMsg = paramMap.get("crstMsg");
- String cplyNoBI = paramMap.get("cplyNoBI");
- String cplyNoCI = paramMap.get("cplyNoCI");
- if (StringUtils.isEmpty(orderNo) || StringUtils.isEmpty(cplyNoCI)) {
- log.error("orderNo/crstTxt 不能为空");
- }
- if (crstTxt.equals("0")) {//0:生成保单成功; 1:生成保单失败
- InsAreaCompany insAreaCompany = insAreaCompanyService.getById(orderNo);
- // InsOrder order = insOrderService.selectByPk(orderNo);
- if (insAreaCompany == null) {
- log.error("订单不存在,orderNo:" + orderNo);
- }
- if (StringUtils.isEmpty(cplyNoBI) && StringUtils.isEmpty(cplyNoCI)) {
- log.error("cplyNoBI/cplyNoCI 交强商业保单号同时为空");
- }
- insAreaCompany.setJqpolicyno(StringUtils.isEmpty(cplyNoCI) ? "" : cplyNoCI);
- insAreaCompany.setSypolicyno(StringUtils.isEmpty(cplyNoBI) ? "" : cplyNoBI);
- insAreaCompany.setOrderstatus(InsOrderStatus.S_3.getCode());//已承保
- // order.setPaytype(payAppNo);
- // order.setPaytime(payTime);
- // insOrderService.update(order);
- insAreaCompanyService.updateById(insAreaCompany);
- insOrdersService.updateByOrderStatus(insAreaCompany.getOrderno(), insAreaCompany.getOrderstatus());
- } else {
- log.error("生成保单失败:crstTxt--" + crstTxt + "||crstMsg--" + crstMsg);
- }
- return "0";
- }
- @Override
- public HttpResult getPolicyPrint(String orderno, String policytype, String flag) {
- HttpResult httpResult = new HttpResult();
- try {
- InsOrder order = insOrderService.selectByPk(orderno);
- if (order == null) {
- return HttpResult.error("订单不存在");
- }
- RequestData requestData = new RequestData();
- RequestHead requestHead = getRequestHead("B21");
- RequestBodyB21 requestBodyB21 = new RequestBodyB21();
- ResponseDataB21 responseDataB21 = new ResponseDataB21();
- ObjectMapper mapper = new XmlMapper();
- mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
- //1.组装RequestBody
- requestBodyB21.setDocumentType(flag);
- if ("jq".equals(policytype)) {
- requestBodyB21.setBusinessNo(order.getJqpolicyno());
- } else if ("sy".equals(policytype)) {
- requestBodyB21.setBusinessNo(order.getSypolicyno());
- } else {
- return HttpResult.error("policytype不能为空");
- }
- //2 接口请求
- log.info("===永安--获取电子保单接口开始请求===");
- requestData.setRequestHead(requestHead);
- requestData.setRequestBody(requestBodyB21);
- String responseString = httpPost(mapper, requestData);
- responseDataB21 = mapper.readValue(responseString, ResponseDataB21.class);
- System.out.println(responseDataB21);
- ResponseBodyB21 responseBody21 = responseDataB21.getResponseBody();
- if (!responseDataB21.getResponseHead().getStatus().equals("0")) {
- return HttpResult.error("永安--获取电子保单接口失败:" + responseDataB21.getResponseHead().getAppMessage());
- } else {
- if (!responseBody21.getResultCode().equals("0")) {
- return HttpResult.error("永安--获取电子保单接口失败:" + responseBody21.getErrorMessage());
- }
- }
- httpResult.setData(responseBody21.getInsurancePolicy());
- } catch (SystemException e) {
- return HttpResult.error(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return HttpResult.error("系统错误,请联系管理员");
- }
- return httpResult;
- }
- private QuoteRespVo getQuoteRespVo(InsOrder insOrder, CarDTO carDTO, ResponseBodyC2 responseBodyC2) {
- double jqPremium = responseBodyC2.getCiPremium();
- double syPremium = responseBodyC2.getBiPremium();
- QuoteRespVo quoteRespVo = new QuoteRespVo();
- List<QuoteRiskRespVo> riskList1 = new ArrayList<>();
- List<QuoteKindRespVo> kindList1 = new ArrayList<>();
- if (jqPremium != 0) {
- QuoteRiskRespVo risk = new QuoteRiskRespVo();
- risk.setRiskCode("0507");
- risk.setRiskName("机动车交通事故责任强制保险");
- risk.setPremium(jqPremium);
- risk.setStartDate(responseBodyC2.getJqStartDate());
- risk.setEndDate(responseBodyC2.getJqEndDate());
- riskList1.add(risk);
- }
- if (syPremium != 0) {
- QuoteRiskRespVo risk = new QuoteRiskRespVo();
- risk = new QuoteRiskRespVo();
- risk.setRiskCode("0510");
- risk.setRiskName("机动车商业保险");
- risk.setPremium(syPremium);
- risk.setStartDate(responseBodyC2.getSyStartDate());
- risk.setEndDate(responseBodyC2.getSyEndDate());
- riskList1.add(risk);
- }
- List<KindDTO> kinds_res = responseBodyC2.getKinds();
- for (int i = 0; i < kinds_res.size(); i++) {
- KindDTO kindDTO = kinds_res.get(i);
- String kindcode = kindDTO.getKindCode();
- double premium = kindDTO.getPremium();
- double amount = kindDTO.getAmount();
- QuoteKindRespVo kind = null;
- if ("030006".equals(kindcode)) {
- kind = new QuoteKindRespVo();
- kind.setKindCode("A");
- kind.setKindName("车辆损失保险");
- kind.setAmount(amount);
- kind.setCoveragePremium(premium);
- kindList1.add(kind);
- }
- if ("030018".equals(kindcode)) {
- kind = new QuoteKindRespVo();
- kind.setKindCode("B");
- kind.setKindName("第三者责任险");
- kind.setAmount(amount);
- kind.setCoveragePremium(premium);
- kindList1.add(kind);
- }
- if ("030001".equals(kindcode)) {
- kind = new QuoteKindRespVo();
- kind.setKindCode("D3");
- kind.setKindName("司机责任险");
- kind.setAmount(amount);
- kind.setCoveragePremium(premium);
- kind.setUnitAmount(amount);
- kindList1.add(kind);
- }
- if ("030009".equals(kindcode)) {
- int seat = carDTO.getSeatCount() - 1;
- kind = new QuoteKindRespVo();
- kind.setKindCode("D4");
- kind.setKindName("乘客责任险");
- kind.setUnitAmount(amount / seat);
- kind.setAmount(amount);
- kind.setCoveragePremium(premium);
- kind.setQuantity(String.valueOf(seat));
- // kind.setUnitAmount(obj.getDouble("unitAmount"));
- kindList1.add(kind);
- }
- if ("033601".equals(kindcode)) {
- kind = new QuoteKindRespVo();
- kind.setKindCode("MJ1");
- kind.setKindName("绝对免赔率特约险(车损)");
- kind.setAmount(amount);
- kind.setCoveragePremium(premium);
- kindList1.add(kind);
- }
- if ("033602".equals(kindcode)) {
- kind = new QuoteKindRespVo();
- kind.setKindCode("MJ2");
- kind.setKindName("绝对免赔率特约险(三者)");
- kind.setAmount(amount);
- kind.setCoveragePremium(premium);
- kindList1.add(kind);
- }
- if ("033603".equals(kindcode)) {
- kind = new QuoteKindRespVo();
- kind.setKindCode("MJ3");
- kind.setKindName("绝对免赔率特约险(司机)");
- kind.setAmount(amount);
- kind.setCoveragePremium(premium);
- kindList1.add(kind);
- }
- if ("033604".equals(kindcode)) {
- kind = new QuoteKindRespVo();
- kind.setKindCode("MJ4");
- kind.setKindName("绝对免赔率特约险(乘客)");
- kind.setAmount(amount);
- kind.setCoveragePremium(premium);
- kindList1.add(kind);
- }
- if ("032601".equals(kindcode)) {
- kind = new QuoteKindRespVo();
- kind.setKindCode("L");
- kind.setKindName("车身划痕损失险");
- kind.setAmount(amount);
- kind.setCoveragePremium(premium);
- kindList1.add(kind);
- }
- if ("030078".equals(kindcode)) {
- kind = new QuoteKindRespVo();
- kind.setKindCode("BD");
- kind.setKindName("法定节假日限额翻倍险");
- kind.setAmount(amount);
- kind.setCoveragePremium(premium);
- kindList1.add(kind);
- }
- }
- quoteRespVo.setRiskList(riskList1);
- quoteRespVo.setKindList(kindList1);
- quoteRespVo.setCiSumPermium(jqPremium + responseBodyC2.getSumTax());//交强险和车船税合计
- quoteRespVo.setSumPermium(add(responseBodyC2.getSumPremium(), responseBodyC2.getSumTax()));//保费合计
- quoteRespVo.setTaxAmount(responseBodyC2.getSumTax());//车船税
- quoteRespVo.setTotalAdjustRate(1);
- quoteRespVo.setILogPreUdwMess("0");//评分
- quoteRespVo.setOrderno(insOrder.getOrderno()); //订单号
- List<ExtendInfoDto> extendInfo = responseBodyC2.getExtendInfo();
- // Map<String, String> maps = extendInfo.stream().collect(Collectors.toMap(ExtendInfoDto::getKey,ExtendInfoDto::getValue , (key1, key2) -> key2));
- Map<String, String> maps = extendInfo.stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getKey(), v.getValue()), LinkedHashMap::putAll);
- String relationType = maps.get("relationType");
- quoteRespVo.setIszdj("0");
- if ("7".equals(relationType)) {
- quoteRespVo.setIszdj("1");
- }
- return quoteRespVo;
- }
- protected InsOrder gene_order(YaQuoteInfoVo record) throws Exception {
- InsOrder insOrder = new InsOrder();
- String orderno = IdGenerate.nextId();
- insOrder.setOrderno(orderno);
- insOrder.setQuoteno(String.valueOf(record.getQuoteno()));
- insOrder.setOrderstatus("0"); //0报价 1待核保 2已核保待缴费 3核保退回 4核保不通过
- insOrder.setFrameNo(record.getCarInfo().getFrameNo());
- insOrder.setLicenseNo(record.getCarInfo().getLicenseNo());
- insOrder.setCarinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getCarInfo())));
- SysUser user = sysUserService.getById(record.getUserId());
- if (user == null) {
- throw new SystemException("userId不存在");
- }
- if (StringUtils.isEmpty(record.getCarInfo().getFrameNo())) {
- throw new SystemException("车架号不能为空");
- }
- // 关闭订单 不含当前报价号
- InsOrder orderObj = insOrderService.queryQuoteno(new Object[]{record.getUserId(), record.getCarInfo().getFrameNo(), record.getQuoteno()});
- if (orderObj != null) {
- List<InsOrder> listo = insOrderService.selectList(" where quoteno=?", new Object[]{orderObj.getQuoteno()});
- String status = "0";
- for (InsOrder order : listo) {
- if (!"0".equals(order.getOrderstatus())) {
- status = order.getOrderstatus();
- }
- }
- //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭
- if ("0".equals(status)) {//关闭订单
- insOrderService.closeOrder(orderObj.getOrderno(), "99");
- } else if (!"99".equals(status)) {
- throw new SystemException("此车辆已提交核保,重新报价请先关闭订单,任务号:" + orderObj.getQuoteno());
- }
- }
- insOrder.setUserid(user.getId());
- insOrder.setUsername(user.getName());
- insOrder.setDeptid(user.getDeptId());
- SysDept dept = sysDeptService.getById(user.getDeptId());
- insOrder.setDeptname(dept == null ? "" : dept.getName());
- double retailRate = countRetail(user.getDeptId(), user.getId());
- insOrder.setOwnerinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getOwnerInfo())));
- insOrder.setApplyinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getPolicyHolderInfo())));
- insOrder.setInsureinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getInsuredPersonInfo())));
- insOrder.setInsuredname(record.getPolicyHolderInfo().getName());
- List<RiskInfoVo> risks = record.getRiskList();
- for (RiskInfoVo risk : risks) {
- if ("0507".equals(risk.getRiskCode())) {//交强
- insOrder.setJqstartdate(risk.getStartDate());
- insOrder.setJqenddate(risk.getEndDate());
- }
- if ("0510".equals(risk.getRiskCode())) {//商业
- insOrder.setSystartdate(risk.getStartDate());
- insOrder.setSyenddate(risk.getEndDate());
- }
- }
- List<KindInfoVo> kinds = record.getKindList();
- String productId = "";
- String productname = "";
- List<EsmAgreement> agreements = esmAgreementService.selectList(" where t.agreestatus='1' and t.insure1 like ? " + "and exists (select 1 from esm_agreement_prod t2 where t.id=t2.agreeid and t2.authcomcode like ?)", new Object[]{"000006140400%", "%" + user.getDeptId() + "%"});
- if (agreements.size() == 0) {
- throw new SystemException("不存在有效协议或机构" + user.getDeptId() + "未授权");
- }
- String agreeid = agreements.get(0).getId();
- insOrder.setAgreeid(agreeid);
- //匹配协议,获取费用
- StringBuffer whereStr = new StringBuffer();
- List params = new ArrayList();// where t.agreeid=? and t.productid in ()
- whereStr.append("where t.agreeid=? ");
- params.add(agreeid);
- if (risks.size() == 1 && "0507".equals(risks.get(0).getRiskCode())) {
- productId = "ZG01001";
- productname = "单交强";
- whereStr.append(" and t.productid=?");
- params.add(productId);
- } else if (risks.size() == 1 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
- productId = "ZG01002";
- productname = "单三者";
- whereStr.append(" and t.productid=?");
- params.add(productId);
- } else if (risks.size() == 1) {
- productId = "ZG01003";
- productname = "单商业";
- whereStr.append(" and t.productid=?");
- params.add(productId);
- } else if (risks.size() == 2 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
- productId = "ZG01004";
- productname = "交强+三者";
- whereStr.append(" and t.productid in (?,?)");
- params.add("ZG01004");
- params.add("ZG01005");
- } else {
- productId = "ZG01006";
- productname = "交强+商业";
- whereStr.append(" and t.productid in (?,?)");
- params.add("ZG01006");
- params.add("ZG01007");
- }
- insOrder.setProductid(productId);
- insOrder.setProduct(productname);
- List<EsmAgreementProd> agreementProds = esmAgreementProdService.selectList(whereStr.toString(), params.toArray());
- for (EsmAgreementProd prod : agreementProds) {
- if ("ZG01001".equals(prod.getProductid()) || "ZG01004".equals(prod.getProductid()) || "ZG01006".equals(prod.getProductid())) {
- insOrder.setFeerate(prod.getProductrate()); //交强手续费比例
- insOrder.setJqdiscountrate(prod.getFeerate() - retailRate); //交强优惠比例=业务员绩效-分销费用
- } else {
- insOrder.setDisrate(prod.getProductrate()); //商业手续费比例
- insOrder.setSydiscountrate(prod.getFeerate() - retailRate); //商业优惠比例=业务员绩效-分销费用
- }
- insOrder.setProductid(prod.getId());
- }
- insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(record.getRiskList())));
- insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(record.getKindList())));
- SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- insOrder.setInscompany("永安财险");
- insOrder.setCreatetime(sdfm.format(new Date()));
- return insOrder;
- }
- private HttpResult response_order(InsOrder insOrder, QuoteRespVo quoteRespVo, RequestData requestData, ResponseDataC2 responseDataC2, boolean jq_falg) {
- //保存订单信息
- if (responseDataC2.getResponseHead().getStatus() != null && responseDataC2.getResponseHead().getStatus().equals("0")) {
- //报价成功更新险种信息
- ResponseBodyC2 responseBody = responseDataC2.getResponseBody();
- System.out.println("JSONObject.toJSONString(responseBody) ---" + JSONObject.toJSONString(responseBody));
- System.out.println("JSONObject.toJSONString(responseBody.getKinds()) ---" + JSONObject.toJSONString(responseBody.getKinds()));
- insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getKindList())));
- insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getRiskList())));
- insOrder.setJqpremium(jq_falg ? responseBody.getCiPremium() : 0);
- insOrder.setSypremium(responseBody.getBiPremium());
- insOrder.setTaxamount(jq_falg ? responseBody.getCarTax().getSumPayment() : 0);
- // insOrder.setSumpremium(responseBody.getSumPremium()+insOrder.getTaxamount());
- insOrder.setSumpremium(add(responseBody.getSumPremium(), insOrder.getTaxamount()));
- insOrder.setQuotestatus("1");
- insOrder.setReqtxt(JSONObject.parseObject(JSONObject.toJSONString(requestData)));
- insOrder.setReptxt(JSONObject.parseObject(JSONObject.toJSONString(responseDataC2)));
- insOrder.setPolicytype(quoteRespVo.getIszdj());
- insOrderService.insert(insOrder);
- //插入轨迹表
- InsTaskHistory history = new InsTaskHistory();
- history.setId(String.valueOf(new Date().getTime()));
- history.setCompany(insOrder.getInscompany());
- history.setTaskid(insOrder.getOrderno());
- history.setOperatorid(insOrder.getUserid());
- history.setOperator(insOrder.getUsername());
- SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- history.setCreatetime(sdfm.format(new Date()));
- history.setOperator(insOrder.getUsername());
- history.setStatus("0");
- history.setRemark("报价中");
- insTaskHistoryService.insert(history);
- } else {
- return HttpResult.error(responseDataC2.getResponseHead().getAppMessage());
- }
- return HttpResult.ok();
- }
- /**
- * 分销费用统计
- *
- * @param deptid
- * @param userid
- * @return
- */
- public double countRetail(String deptid, String userid) {
- double retailRate = 0;
- //1、根据机构匹配分销规则,获取分销比例
- List<EsmRetail> list = esmRetailService.selectList(" where deptid = ? and status=?", new Object[]{deptid, "1"});
- //2、根据userid查询三级推荐人
- List<SysUser> users = esmUserInternalService.getSuperior(userid);
- if (list != null && list.size() > 0 && users.size() > 0 && !"0".equals(list.get(0).getRetailtype())) {
- EsmRetail retail = list.get(0);
- List<Double> rateList = new ArrayList<>();
- rateList.add(retail.getDisrate1());
- rateList.add(retail.getDisrate2());
- rateList.add(retail.getDisrate3());
- if ("1".equals(retail.getRetailtype())) {//一级分销
- retailRate += rateList.get(0);
- } else if ("2".equals(retail.getRetailtype())) {//二级分销
- int num = Math.min(users.size(), 2);
- for (int i = 0; i < num; i++) {
- retailRate += rateList.get(i);
- }
- } else {//三级分销
- int num = users.size() > 2 ? 3 : users.size();
- for (int i = 0; i < num; i++) {
- retailRate += rateList.get(i);
- }
- }
- }
- return retailRate;
- }
- @Override
- public ResponseDataC1 getResponseDataC1(CarModel_Req carModelReq) throws Exception {
- ResponseDataC1 responseDataC1;
- ObjectMapper mapper = new XmlMapper();
- RequestData requestData = new RequestData();
- RequestHead requestHead = getRequestHead("C1");
- RequestBodyC1 requestBody = new RequestBodyC1();
- requestBody.setCityCode("140400");
- requestBody.setCityName("长治市");
- requestBody.setFrameNo(carModelReq.getFrameNo());
- requestBody.setEnrollDate(carModelReq.getEnrollDate());
- requestBody.setModelName(carModelReq.getModelName());
- requestBody.setEngineNo(carModelReq.getEngineNo());
- requestBody.setLicenseNo(carModelReq.getLicenseNo());
- requestBody.setModelCode(carModelReq.getModelCode());
- ExtendInfoDto[] extendInfo = new ExtendInfoDto[1];
- extendInfo[0] = new ExtendInfoDto("matchCode", matchCode);
- requestBody.setExtendInfo(extendInfo);
- requestData.setRequestHead(requestHead);
- requestData.setRequestBody(requestBody);
- log.info("===永安--车型查询接口开始请求===");
- String responseString = httpPost(mapper, requestData);
- responseDataC1 = mapper.readValue(responseString, ResponseDataC1.class);
- return responseDataC1;
- }
- private String httpPost(ObjectMapper mapper, RequestData requestData) throws Exception {
- //加签
- String xmlString_sign = mapper.writeValueAsString(requestData);
- String consumerAccessKey = getConsumerAccessKey(xmlString_sign);
- //替换签名,请求接口
- requestData.getRequestHead().setConsumerAccessKey(consumerAccessKey);
- String xmlString = mapper.writeValueAsString(requestData);
- return HttpXmlUtil.sendPost(url, xmlString);
- }
- private RequestHead getRequestHead(String type) {
- RequestHead requestHead = new RequestHead();
- requestHead.setSeqNo(geneReqNo());
- requestHead.setConsumerID(consumerID);
- requestHead.setConsumerAccessKey(consumerAccessKey_init);
- requestHead.setTransCode(type);
- requestHead.setRegionCode("D");
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- requestHead.setTransTime(df.format(new Date()));
- return requestHead;
- }
- private void checkEmpty(YaQuoteInfoVo yaQuoteInfoVo) throws Exception {
- if (yaQuoteInfoVo.getCarInfo() == null) {
- throw new SystemException("carInfo不能为空!");
- }
- if (yaQuoteInfoVo.getPolicyHolderInfo() == null || yaQuoteInfoVo.getInsuredPersonInfo() == null) {
- throw new SystemException("policyHolderInfo/insuredPersonInfo 不能为空!");
- }
- if (yaQuoteInfoVo.getRiskList() == null || yaQuoteInfoVo.getRiskList().size() == 0) {
- throw new SystemException("riskList 不能为空!");
- } else {
- for (RiskInfoVo riskInfoVo : yaQuoteInfoVo.getRiskList()) {
- if (riskInfoVo.getStartDate() == null || riskInfoVo.getEndDate() == null) {
- throw new SystemException("riskList.startDate / riskList.endDate不能为空!");
- }
- }
- }
- }
- private KindDTO[] geneKindInfo(YaQuoteInfoVo yaQuoteInfoVo, CarDTO carDTO, boolean jq_falg) {
- List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
- KindDTO[] kindList_n;
- if (jq_falg) {
- kindList_n = new KindDTO[kindList.size() + 1];
- } else {
- kindList_n = new KindDTO[kindList.size()];
- }
- //商业险险别
- for (int j = 0; j < kindList.size(); j++) {
- KindInfoVo kindInfoVo = kindList.get(j);
- String deductibleRate = kindInfoVo.getDeductibleRate();
- //第三者责任险
- if (kindList.get(j).getKindCode().equals("B")) {
- KindDTO kindInfo = new KindDTO();
- kindInfo.setKindCode("030018");
- kindInfo.setKindname("机动车第三者责任保险");
- kindInfo.setAmount(kindList.get(j).getAmount());
- kindList_n[j] = kindInfo;
- }
- //乘客责任险
- if (kindList.get(j).getKindCode().equals("D4")) {
- KindDTO kindInfo = new KindDTO();
- kindInfo.setKindCode("030009");
- kindInfo.setKindname("机动车车上人员责任保险(乘客)");
- kindInfo.setQuantity(carDTO.getSeatCount() - 1);
- kindInfo.setAmount(kindList.get(j).getUnitAmount() * (carDTO.getSeatCount() - 1));
- kindInfo.setUnitAmount(kindList.get(j).getUnitAmount());
- kindList_n[j] = kindInfo;
- }
- //机动车损失险
- if (kindList.get(j).getKindCode().equals("A")) {
- KindDTO kindInfo = new KindDTO();
- kindInfo.setKindCode("030006");
- kindInfo.setKindname("机动车损失保险");
- // kindInfo.setAmount(kindList.get(j).getAmount());
- kindList_n[j] = kindInfo;
- }
- //司机责任险
- if (kindList.get(j).getKindCode().equals("D3")) {
- KindDTO kindInfo = new KindDTO();
- kindInfo.setKindCode("030001");
- kindInfo.setKindname("机动车车上人员责任保险(司机)");
- kindInfo.setAmount(kindList.get(j).getAmount());
- kindList_n[j] = kindInfo;
- }
- //附加绝对免赔率特约条款(车损)
- if (kindList.get(j).getKindCode().equals("MJ1")) {
- KindDTO kindInfo = new KindDTO();
- kindInfo.setKindCode("033601");
- kindInfo.setKindname("附加绝对免赔率特约条款(机动车损失保险)");
- kindInfo.setAmount(kindList.get(j).getAmount());
- kindInfo.setDeductibleRatio(deductibleRate);
- kindList_n[j] = kindInfo;
- }
- //绝对免赔率特约险(三者)
- if (kindList.get(j).getKindCode().equals("MJ2")) {
- KindDTO kindInfo = new KindDTO();
- kindInfo.setKindCode("033602");
- kindInfo.setKindname("附加绝对免赔率特约条款(机动车第三者责任保险)");
- kindInfo.setAmount(kindList.get(j).getAmount());
- kindInfo.setDeductibleRatio(deductibleRate);
- kindList_n[j] = kindInfo;
- }
- //绝对免赔率特约险(司机)
- if (kindList.get(j).getKindCode().equals("MJ3")) {
- KindDTO kindInfo = new KindDTO();
- kindInfo.setKindCode("033603");
- kindInfo.setKindname("附加绝对免赔率特约条款(机动车车上人员责任保险(司机))");
- kindInfo.setAmount(kindList.get(j).getAmount());
- kindInfo.setDeductibleRatio(deductibleRate);
- kindList_n[j] = kindInfo;
- }
- //绝对免赔率特约险(乘客)
- if (kindList.get(j).getKindCode().equals("MJ4")) {
- KindDTO kindInfo = new KindDTO();
- kindInfo.setKindCode("033604");
- kindInfo.setKindname("附加绝对免赔率特约条款(机动车车上人员责任保险(乘客))");
- kindInfo.setAmount(kindList.get(j).getAmount());
- kindInfo.setDeductibleRatio(deductibleRate);
- kindList_n[j] = kindInfo;
- }
- //车身划痕险
- if (kindList.get(j).getKindCode().equals("L")) {
- KindDTO kindInfo = new KindDTO();
- kindInfo.setKindCode("032601");
- kindInfo.setKindname("附加车身划痕损失险");
- kindInfo.setAmount(kindList.get(j).getAmount());
- kindList_n[j] = kindInfo;
- }
- //法定节假日限额翻倍险
- if (kindList.get(j).getKindCode().equals("BD")) {
- KindDTO kindInfo = new KindDTO();
- kindInfo.setKindCode("030078");
- kindInfo.setKindname("附加法定节假日限额翻倍险");
- kindInfo.setAmount(kindList.get(j).getAmount());
- kindList_n[j] = kindInfo;
- }
- }
- //交强险险别
- if (jq_falg) {
- KindDTO kindInfo_jq = new KindDTO();
- kindInfo_jq.setKindCode("030000");
- kindInfo_jq.setKindname("机动车交通事故责任强制保险");
- kindList_n[kindList.size()] = kindInfo_jq;
- }
- return kindList_n;
- }
- public String getConsumerAccessKey(String xmlString) throws Exception {
- String consumerAccessKey = "";
- xmlString = xmlString.substring(xmlString.lastIndexOf("<requestBody>") + 13, xmlString.lastIndexOf("</requestBody>"));
- consumerAccessKey = HMAC256Uitil.hmac256(xmlString, consumerAccessKey_init);
- return consumerAccessKey;
- }
- public String getConsumerAccessKey_url(String xmlString) {
- String responseString = HttpXmlUtil.sendPost(url_sign, xmlString);
- String consumerAccessKey = responseString.substring(responseString.lastIndexOf("<consumerAccessKey>") + 19, responseString.lastIndexOf("</consumerAccessKey>"));
- System.out.println("返回参数 consumerAccessKey====" + consumerAccessKey);
- return consumerAccessKey;
- }
- public String HMACSHA256(String data, String key) throws Exception {
- Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
- SecretKeySpec secret_key = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
- sha256_HMAC.init(secret_key);
- byte[] array = sha256_HMAC.doFinal(data.getBytes(StandardCharsets.UTF_8));
- StringBuilder sb = new StringBuilder();
- for (byte item : array) {
- sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
- }
- return sb.toString().toUpperCase();
- }
- private String geneReqNo() {
- //中介机构id+UUID,每次请求需生成一个不重复的流水号,响应时原样返回
- return UUID.randomUUID().toString().substring(0, 25);
- }
- public static double add(double v1, double v2) {
- BigDecimal b1 = new BigDecimal(Double.toString(v1));
- BigDecimal b2 = new BigDecimal(Double.toString(v2));
- return b1.add(b2).doubleValue();
- }
- public static String getUserName() {
- return "";
- // String userName = null;
- // Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
- //
- // if (principal instanceof UserDetails) {
- // userName = ((UserDetails) principal).getUsername();
- // } else {
- // userName = principal.toString();
- // }
- // return userName;
- }
- }
|