InsCBITAPIController.java 63 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418
  1. package com.ydtech.modules.ins.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.fasterxml.jackson.databind.ObjectMapper;
  5. import com.fasterxml.jackson.databind.ObjectReader;
  6. import com.ydtech.core.page.HttpResult;
  7. import com.ydtech.modules.admin.model.SysCbitError;
  8. import com.ydtech.modules.admin.model.SysCbitLog;
  9. import com.ydtech.modules.admin.model.SysDept;
  10. import com.ydtech.modules.admin.model.SysUser;
  11. import com.ydtech.modules.admin.service.SysDeptService;
  12. import com.ydtech.modules.admin.service.SysUserService;
  13. import com.ydtech.modules.base.controller.BaseController;
  14. import com.ydtech.modules.esm.model.EsmAgreement;
  15. import com.ydtech.modules.esm.model.EsmAgreementProd;
  16. import com.ydtech.modules.esm.model.EsmRetail;
  17. import com.ydtech.modules.esm.service.EsmAgreementProdService;
  18. import com.ydtech.modules.esm.service.EsmAgreementService;
  19. import com.ydtech.modules.esm.service.EsmRetailService;
  20. import com.ydtech.modules.esm.service.EsmUserInternalService;
  21. import com.ydtech.modules.ins.model.InsOrder;
  22. import com.ydtech.modules.ins.model.cbit.*;
  23. import com.ydtech.modules.ins.model.vo.CarInfoVo;
  24. import com.ydtech.modules.ins.model.vo.CarModelQryVo;
  25. import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
  26. import com.ydtech.modules.ins.model.vo.KindInfoVo;
  27. import com.ydtech.modules.ins.service.*;
  28. import com.ydtech.utils.HttpsPostUtil;
  29. import com.ydtech.utils.RSA.RSAUtils;
  30. import org.slf4j.Logger;
  31. import org.slf4j.LoggerFactory;
  32. import org.springframework.beans.factory.annotation.Autowired;
  33. import org.springframework.beans.factory.annotation.Value;
  34. import org.springframework.core.env.Environment;
  35. import org.springframework.util.StringUtils;
  36. import org.springframework.web.bind.annotation.PostMapping;
  37. import org.springframework.web.bind.annotation.RequestBody;
  38. import org.springframework.web.bind.annotation.RequestMapping;
  39. import org.springframework.web.bind.annotation.RestController;
  40. import javax.servlet.ServletOutputStream;
  41. import javax.servlet.http.HttpServletRequest;
  42. import javax.servlet.http.HttpServletResponse;
  43. import java.io.IOException;
  44. import java.math.BigDecimal;
  45. import java.text.SimpleDateFormat;
  46. import java.util.*;
  47. /**
  48. * @author gws
  49. * @version 1.0.0
  50. * @description InsCBITController
  51. * @since 2021/11/7 9:22
  52. */
  53. @RestController
  54. @RequestMapping("/CBIT/API/insCBIT")
  55. public class InsCBITAPIController extends BaseController {
  56. Logger logger = LoggerFactory.getLogger(InsCBITAPIController.class);
  57. @Autowired
  58. Environment environment;
  59. @Autowired
  60. SysCbitLogService sysCbitLogService;
  61. @Autowired
  62. SysCbitErrorService sysCbitErrorService;
  63. @Autowired
  64. InsCBITService insCBITService;
  65. @Autowired
  66. InsOrderService insOrderService;
  67. @Autowired
  68. SysUserService sysUserService;
  69. @Autowired
  70. InsTaskHistoryService insTaskHistoryService;
  71. @Autowired
  72. EsmAgreementProdService esmAgreementProdService;
  73. @Autowired
  74. EsmAgreementService esmAgreementService;
  75. @Autowired
  76. SysDeptService sysDeptService;
  77. @Autowired
  78. EsmRetailService esmRetailService;
  79. @Autowired
  80. EsmUserInternalService esmUserInternalService;
  81. //接口域名
  82. @Value("${cbit.url_pre}")
  83. String url_pre = "";
  84. //中介机构编码
  85. @Value("${cbit.franchiserId}")
  86. String franchiserId = "";
  87. //ip
  88. @Value("${cbit.ip}")
  89. String franchiserIp = "";
  90. //中介平台-加解密秘钥对 私钥+公钥
  91. @Value("${cbit.ZJPT_PUBLIC_KEY}")
  92. private String ZJPT_PUBLIC_KEY = "";
  93. //合作伙伴-加解密秘钥对 私钥+公钥
  94. @Value("${cbit.HZHB_PRIVATE_KEY}")
  95. private String HZHB_PRIVATE_KEY = "";
  96. @Value("${cbit.aly.url_pre}")
  97. String aly_url_pre = "";
  98. @Value("${cbit.franchiserChannelId_pingan}")
  99. String franchiserChannelId_pingan = "";
  100. @Value("${cbit.franchiserChannelCode_pingan}")
  101. String franchiserChannelCode_pingan = "";
  102. @Value("${cbit.carDealerCode_pingan}")
  103. String carDealerCode_pingan = "";
  104. @Value("${cbit.insurerBranchCode_pingan}")
  105. String insurerBranchCode_pingan = "";
  106. @Value("${cbit.franchiserChannelId_taiping}")
  107. String franchiserChannelId_taiping = "";
  108. @Value("${cbit.groupCode_taiping}")
  109. String groupCode_taiping = "";
  110. @Value("${cbit.insurerBranchCode_taiping}")
  111. String insurerBranchCode_taiping = "";
  112. @Value("${cbit.franchiserChannelId_taipingyang}")
  113. String franchiserChannelId_taipingyang = "";
  114. @Value("${cbit.insurerBranchCode_taipingyang}")
  115. String insurerBranchCode_taipingyang = "";
  116. /**
  117. * 3.2初始化参数获取接口
  118. * insurerId 保险公司id
  119. * insurerBranchCode 二级机构编码
  120. * franchiserChannelId 传中介网点代码
  121. */
  122. @PostMapping(value = "/initParamAPI")
  123. public InitResultData initParamAPI(@RequestBody String insurers) {
  124. CBITBaseparam req_baseparam = null;
  125. //平安
  126. if (insurers.contains("000017")) {
  127. req_baseparam = getPingAnBaseparam();
  128. }
  129. //太平洋
  130. if (insurers.contains("000014")) {
  131. req_baseparam = getTaiPingYangBaseparam();
  132. }
  133. //太平
  134. if (insurers.contains("000026")) {
  135. req_baseparam = getTaiPingBaseparam();
  136. }
  137. InitResultData initResultData = insCBITService.initParamAPI(req_baseparam);
  138. return initResultData;
  139. }
  140. /**
  141. * 车型查询接口
  142. */
  143. @PostMapping(value = "/queryModel")
  144. public HttpResult queryModel(@RequestBody CarModelQryVo carModelQryVo) {
  145. HttpResult httpResult = null;
  146. try {
  147. //车型查询默认使用太平洋
  148. String insurers = carModelQryVo.getInsurers();
  149. CBITBaseparam baseParam = null;
  150. //平安
  151. if (insurers.contains("000017")) {
  152. baseParam = getPingAnBaseparam();
  153. }
  154. //太平洋
  155. else if (insurers.contains("000014")) {
  156. baseParam = getTaiPingYangBaseparam();
  157. }
  158. //太平
  159. else if (insurers.contains("000026")) {
  160. baseParam = getTaiPingBaseparam();
  161. } else {
  162. baseParam = getTaiPingYangBaseparam();
  163. }
  164. HttpResult httpResult_orderno = insCBITService.geneOrder(baseParam);
  165. String orderno = "";
  166. if (httpResult_orderno.getCode() == 200) {
  167. orderno = (String) httpResult_orderno.getData();
  168. }
  169. baseParam.setOrderNo(orderno);
  170. carModelQryVo.setBaseParam(baseParam);
  171. carModelQryVo.setNewVehicleFlag("0");//是否新车,默认否
  172. httpResult = insCBITService.queryModel(carModelQryVo);
  173. } catch (Exception e) {
  174. e.printStackTrace();
  175. return HttpResult.error(e.getMessage());
  176. }
  177. return httpResult;
  178. }
  179. /**
  180. * 报价(需调用多个个接口:订单号生成、车辆确认、报价)
  181. *
  182. * @param quoteInfo
  183. * @return
  184. */
  185. @PostMapping("/quote")
  186. public HttpResult quote(@RequestBody CBITQuoteInfoVo quoteInfo) {
  187. List<QuoteRespData> quoteResults = new ArrayList<>();
  188. try {
  189. //必填校验
  190. checkEmpty(quoteInfo);
  191. String insurers = quoteInfo.getInsurers();
  192. //平安
  193. if (insurers.contains("000017")) {
  194. QuoteRespData pingAnQuote = quote_PingAn(quoteInfo);
  195. quoteResults.add(pingAnQuote);
  196. }
  197. //太平洋
  198. if (insurers.contains("000014")) {
  199. QuoteRespData taiPingYangQuote = quote_TaiPingYang(quoteInfo);
  200. quoteResults.add(taiPingYangQuote);
  201. }
  202. //太平
  203. if (insurers.contains("000026")) {
  204. QuoteRespData taiPingQuote = quote_TaiPing(quoteInfo);
  205. quoteResults.add(taiPingQuote);
  206. }
  207. } catch (Exception e) {
  208. e.printStackTrace();
  209. return HttpResult.error(e.getMessage());
  210. }
  211. return HttpResult.ok(quoteResults);
  212. }
  213. /**
  214. * 3.8核保接口
  215. *
  216. * @param
  217. * @return
  218. */
  219. @PostMapping("/submitAudit")
  220. public HttpResult submitAudit(@RequestBody CBITQuoteInfoVo quoteInfo) {
  221. HttpResult httpResult = new HttpResult();
  222. try {
  223. //必填校验
  224. checkEmpty_Audit(quoteInfo);
  225. String insurers = quoteInfo.getInsurers();
  226. String orderNo = quoteInfo.getOrderno();
  227. //平安
  228. if (insurers.contains("000017")) {
  229. httpResult = audit_PingAn(quoteInfo, orderNo);
  230. }
  231. //太平洋
  232. if (insurers.contains("000014")) {
  233. httpResult = audit_TaiPingYang(quoteInfo, orderNo);
  234. }
  235. //太平
  236. if (insurers.contains("000026")) {
  237. httpResult = audit_TaiPing(quoteInfo, orderNo);
  238. }
  239. } catch (Exception e) {
  240. e.printStackTrace();
  241. return HttpResult.error(e.getMessage());
  242. }
  243. return httpResult;
  244. }
  245. /**
  246. * 支付
  247. *
  248. * @return
  249. */
  250. @PostMapping("/pingAnPay")
  251. public HttpResult pingAnPay(@RequestBody String req_param) {
  252. HttpResult httpResult = null;
  253. try {
  254. String orderNo = JSON.parseObject(req_param).getString("orderno");
  255. CBITBaseparam pingAnbaseParam = getPingAnBaseparam();
  256. pingAnbaseParam.setOrderNo(orderNo);
  257. httpResult = insCBITService.pay_application(pingAnbaseParam);
  258. } catch (Exception e) {
  259. e.printStackTrace();
  260. return HttpResult.error(e.getMessage());
  261. }
  262. return httpResult;
  263. }
  264. /**
  265. * 支付
  266. *
  267. * @return
  268. */
  269. @PostMapping("/taiPingYangPay")
  270. public HttpResult taiPingYangPay(@RequestBody String req_param) {
  271. HttpResult httpResult = null;
  272. try {
  273. String orderNo = JSON.parseObject(req_param).getString("orderno");
  274. CBITBaseparam taiPingYangbaseParam = getTaiPingYangBaseparam();
  275. taiPingYangbaseParam.setOrderNo(orderNo);
  276. httpResult = insCBITService.pay_application(taiPingYangbaseParam);
  277. } catch (Exception e) {
  278. e.printStackTrace();
  279. return HttpResult.error(e.getMessage());
  280. }
  281. return httpResult;
  282. }
  283. /**
  284. * 支付--发短信
  285. *
  286. * @return
  287. */
  288. @PostMapping("/taiPingDuanXin")
  289. public HttpResult taiPingDuanXin(@RequestBody String req_param) {
  290. HttpResult httpResult = null;
  291. try {
  292. String orderNo = JSON.parseObject(req_param).getString("orderno");
  293. CBITBaseparam taiPingbaseParam = getTaiPingBaseparam();
  294. taiPingbaseParam.setOrderNo(orderNo);
  295. httpResult = insCBITService.pay_duanxin(taiPingbaseParam);
  296. } catch (Exception e) {
  297. e.printStackTrace();
  298. return HttpResult.error(e.getMessage());
  299. }
  300. return httpResult;
  301. }
  302. /**
  303. * 支付
  304. *
  305. * @return
  306. */
  307. @PostMapping("/taiPingPay")
  308. public HttpResult taiPingPay(@RequestBody Map<String, String> req_param) {
  309. HttpResult httpResult = null;
  310. try {
  311. String orderNo = req_param.get("orderno");
  312. String issueCode = req_param.get("issueCode");
  313. CBITBaseparam taiPingbaseParam = getTaiPingBaseparam();
  314. taiPingbaseParam.setOrderNo(orderNo);
  315. insCBITService.pay_duanxin_back(taiPingbaseParam, issueCode);
  316. httpResult = insCBITService.pay_duanxin_pay(taiPingbaseParam);
  317. } catch (Exception e) {
  318. e.printStackTrace();
  319. return HttpResult.error(e.getMessage());
  320. }
  321. return httpResult;
  322. }
  323. /**
  324. * 3.19支付信息回调接口
  325. *
  326. * @return
  327. */
  328. @PostMapping("/updatePayInfo")
  329. public HttpServletResponse updatePayInfo(HttpServletRequest request, HttpServletResponse http_resp, @RequestBody Map<String, String> reqMap) {
  330. ReqParamCBIT reqParam_cbit = null;
  331. String url = aly_url_pre + "/updatePayInfo";
  332. String req_desc = "支付信息回调接口";
  333. String reqGetContent = "";
  334. String resp_json = "";//阿里云返回
  335. try {
  336. String req_bizContent = reqMap.get("bizContent");
  337. String req_sign = request.getHeader("Signature");
  338. logger.info("bizContent-->" + req_bizContent);
  339. logger.info("Signature-->" + req_sign);
  340. reqGetContent = RSAUtils.checkSignAndDecrypt(req_bizContent, req_sign, ZJPT_PUBLIC_KEY, HZHB_PRIVATE_KEY, "UTF-8", true, true);
  341. logger.info("解密后的请求参数reqGetContent=" + reqGetContent);
  342. Map<String, String> reqGetContentMap = JSON.parseObject(reqGetContent, Map.class);
  343. String bizContent = JSON.toJSONString(reqGetContentMap.get("bizContent"));
  344. reqParam_cbit = JSON.parseObject(bizContent, ReqParamCBIT.class);
  345. String orderNo = reqParam_cbit.getOrderNo();
  346. String payResult = reqParam_cbit.getPayResult();
  347. //-------具体系统状态更新逻辑---------
  348. if ("1".equals(payResult)) {
  349. //2.调用aly接口
  350. String req_json = JSON.toJSONString(reqParam_cbit);
  351. logger.info(req_desc + "--请求url-->" + url);
  352. logger.info(req_desc + "--请求参数-->" + req_json);
  353. resp_json = HttpsPostUtil.sendCBITPost_self(url, req_json);
  354. logger.info(req_desc + "--返回结果-->" + resp_json);
  355. //4.处理接口返回数据
  356. ObjectMapper objectMapper = new ObjectMapper();
  357. ObjectReader reader = objectMapper.readerFor(HttpResult.class);
  358. HttpResult httpResult = new HttpResult();
  359. try {
  360. httpResult = reader.readValue(resp_json);
  361. } catch (IOException e) {
  362. throw new Exception("反序列化失败");
  363. }
  364. if (httpResult == null) {
  365. throw new Exception("反序列化失败");
  366. }
  367. if (httpResult.getCode() != 200) {
  368. throw new Exception("支付信息回调接口,服务器处理异常:" + httpResult.getMsg());
  369. }
  370. }
  371. //拼装返回信息
  372. geneResponse(http_resp, reqParam_cbit);
  373. // 插入接口日志表
  374. insertCbitLog(url, req_desc, reqParam_cbit.getBaseParam().getRequestNo(), reqGetContent, resp_json);
  375. } catch (Exception e) {
  376. //记录报错日志表
  377. e.printStackTrace();
  378. String api_url = "/CBIT/API/insCBIT/updatePayInfo";
  379. String errorinfo = e.getMessage();
  380. insertCbitError(reqParam_cbit, api_url, errorinfo);
  381. //拼装返回信息
  382. geneErrorResponse(http_resp, reqParam_cbit, errorinfo);
  383. }
  384. return http_resp;
  385. }
  386. /**
  387. * 3.20保单结果回调接口
  388. *
  389. * @return
  390. */
  391. @PostMapping("/updatePolicyStatus")
  392. public HttpServletResponse updatePolicyStatus(HttpServletRequest request, HttpServletResponse http_resp, @RequestBody Map<String, String> reqMap) {
  393. ReqParamCBIT reqParam_cbit = null;
  394. String url = aly_url_pre + "/updatePolicyStatus";
  395. try {
  396. String req_bizContent = reqMap.get("bizContent");
  397. String req_sign = request.getHeader("Signature");
  398. logger.info("bizContent-->" + req_bizContent);
  399. logger.info("Signature-->" + req_sign);
  400. String reqGetContent = RSAUtils.checkSignAndDecrypt(req_bizContent, req_sign, ZJPT_PUBLIC_KEY, HZHB_PRIVATE_KEY, "UTF-8", true, true);
  401. logger.info("解密后的请求参数reqGetContent=" + reqGetContent);
  402. Map<String, String> reqGetContentMap = JSON.parseObject(reqGetContent, Map.class);
  403. String bizContent = JSON.toJSONString(reqGetContentMap.get("bizContent"));
  404. reqParam_cbit = JSON.parseObject(bizContent, ReqParamCBIT.class);
  405. //-------具体系统状态更新逻辑---------
  406. //2.调用aly接口
  407. String req_desc = "保单结果回调接口";
  408. String req_json = JSON.toJSONString(reqParam_cbit);
  409. logger.info(req_desc + "--请求url-->" + url);
  410. logger.info(req_desc + "--请求参数-->" + req_json);
  411. String resp_json = HttpsPostUtil.sendCBITPost_self(url, req_json);
  412. logger.info(req_desc + "--返回结果-->" + resp_json);
  413. //4.处理接口返回数据
  414. ObjectMapper objectMapper = new ObjectMapper();
  415. ObjectReader reader = objectMapper.readerFor(HttpResult.class);
  416. HttpResult httpResult = new HttpResult();
  417. try {
  418. httpResult = reader.readValue(resp_json);
  419. } catch (IOException e) {
  420. throw new Exception("反序列化失败");
  421. }
  422. if (httpResult == null) {
  423. throw new Exception("反序列化失败");
  424. }
  425. if (httpResult.getCode() != 200) {
  426. throw new Exception("保单结果回调接口,服务器处理异常:" + httpResult.getMsg());
  427. }
  428. //拼装返回信息
  429. geneResponse(http_resp, reqParam_cbit);
  430. // 插入接口日志表
  431. insertCbitLog(url, req_desc, reqParam_cbit.getBaseParam().getRequestNo(), reqGetContent, resp_json);
  432. } catch (Exception e) {
  433. //记录报错日志表
  434. e.printStackTrace();
  435. String api_url = "/CBIT/API/insCBIT/updatePolicyStatus";
  436. String errorinfo = e.getMessage();
  437. insertCbitError(reqParam_cbit, api_url, errorinfo);
  438. //拼装返回信息
  439. geneErrorResponse(http_resp, reqParam_cbit, errorinfo);
  440. }
  441. return http_resp;
  442. }
  443. /**
  444. * 3.21人工审核信息回调接口
  445. *
  446. * @return
  447. */
  448. @PostMapping("/updateAudit")
  449. public HttpServletResponse updateAudit(HttpServletRequest request, HttpServletResponse http_resp, @RequestBody Map<String, String> reqMap) {
  450. ReqParamCBIT reqParam_cbit = null;
  451. String url = aly_url_pre + "/updateAudit";
  452. try {
  453. String req_bizContent = reqMap.get("bizContent");
  454. String req_sign = request.getHeader("Signature");
  455. logger.info("bizContent-->" + req_bizContent);
  456. logger.info("Signature-->" + req_sign);
  457. String reqGetContent = RSAUtils.checkSignAndDecrypt(req_bizContent, req_sign, ZJPT_PUBLIC_KEY, HZHB_PRIVATE_KEY, "UTF-8", true, true);
  458. System.out.println("解密后的请求参数reqGetContent=" + reqGetContent);
  459. Map<String, String> reqGetContentMap = JSON.parseObject(reqGetContent, Map.class);
  460. String bizContent = JSON.toJSONString(reqGetContentMap.get("bizContent"));
  461. reqParam_cbit = JSON.parseObject(bizContent, ReqParamCBIT.class);
  462. //2.调用aly接口
  463. String req_desc = "人工审核信息回调接口";
  464. String req_json = JSON.toJSONString(reqParam_cbit);
  465. logger.info(req_desc + "--请求url-->" + url);
  466. logger.info(req_desc + "--请求参数-->" + req_json);
  467. String resp_json = HttpsPostUtil.sendCBITPost_self(url, req_json);
  468. logger.info(req_desc + "--返回结果-->" + resp_json);
  469. //4.处理接口返回数据
  470. ObjectMapper objectMapper = new ObjectMapper();
  471. ObjectReader reader = objectMapper.readerFor(HttpResult.class);
  472. HttpResult httpResult = new HttpResult();
  473. try {
  474. httpResult = reader.readValue(resp_json);
  475. } catch (IOException e) {
  476. throw new Exception("反序列化失败");
  477. }
  478. if (httpResult == null) {
  479. throw new Exception("反序列化失败");
  480. }
  481. if (httpResult.getCode() != 200) {
  482. throw new Exception("人工审核信息回调,服务器处理异常:" + httpResult.getMsg());
  483. }
  484. //拼装返回信息
  485. geneResponse(http_resp, reqParam_cbit);
  486. // 插入接口日志表
  487. insertCbitLog(url, req_desc, reqParam_cbit.getBaseParam().getRequestNo(), reqGetContent, resp_json);
  488. } catch (Exception e) {
  489. //记录报错日志表
  490. e.printStackTrace();
  491. String api_url = "/CBIT/API/insCBIT/updateAudit";
  492. String errorinfo = e.getMessage();
  493. insertCbitError(reqParam_cbit, api_url, errorinfo);
  494. //拼装返回信息
  495. geneErrorResponse(http_resp, reqParam_cbit, errorinfo);
  496. }
  497. return http_resp;
  498. }
  499. private HttpResult audit_PingAn(CBITQuoteInfoVo quoteInfo, String orderNo) throws Exception {
  500. HttpResult httpResult;
  501. //查询订单
  502. // InsOrder order = insOrderService.selectZMByPk(orderNo);
  503. InsOrder order = quoteInfo.getInsOrder();
  504. if (order != null) {
  505. //1.调核保接口
  506. CBITReqParam reqParam_in = new CBITReqParam();
  507. CBITBaseparam pingAnbaseParam = getPingAnBaseparam();
  508. pingAnbaseParam.setOrderNo(orderNo);
  509. reqParam_in.setBaseParam(pingAnbaseParam);
  510. VehicleModel_QueRen vehicleModel_QueRen = JSON.parseObject(JSON.toJSONString(order.getCarinfo()), VehicleModel_QueRen.class);
  511. quoteInfo.setVehicleModel_QueRen(vehicleModel_QueRen);//险别加工时要用
  512. quoteInfo.setRiskList(JSON.parseArray(JSON.toJSONString(order.getRiskinfo()), CBITRiskInfoVo.class));
  513. quoteInfo.setKindList(JSON.parseArray(JSON.toJSONString(order.getKindinfo()), KindInfoVo.class));
  514. httpResult = insCBITService.submitAudit(reqParam_in, quoteInfo);
  515. /* if (httpResult.getCode()==200) {
  516. AuditRespData auditRespData=(AuditRespData)httpResult.getData();
  517. Policy businessPolicy =auditRespData.getBusinessPolicy();
  518. Policy trafficPolicy =auditRespData.getTrafficPolicy();
  519. order.setOrderstatus("5");
  520. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  521. order.setSubmittime(sdf.format(new Date()));
  522. order.setJqappoint(JSON.toJSONString(trafficPolicy.getSpecialTermItems())); //交强特别约定
  523. order.setSyappoint(JSON.toJSONString(businessPolicy.getSpecialTermItems())); //商业特别约定
  524. insOrderService.update(order);
  525. //插入轨迹表
  526. *//*InsTaskHistory history = new InsTaskHistory();
  527. history.setId(String.valueOf(new Date().getTime()));
  528. history.setCompany(order.getInscompany());
  529. history.setTaskid(order.getOrderno());
  530. history.setOperatorid(order.getUserid());
  531. history.setOperator(order.getUsername());
  532. history.setCreatetime(sdf.format(new Date()));
  533. history.setStatus("1");
  534. history.setRemark("提交核保");
  535. insTaskHistoryService.insert(history);*//*
  536. }*/
  537. } else {
  538. return HttpResult.error("订单号有误!");
  539. }
  540. return httpResult;
  541. }
  542. private HttpResult audit_TaiPingYang(CBITQuoteInfoVo quoteInfo, String orderNo) throws Exception {
  543. HttpResult httpResult;
  544. //查询订单
  545. // InsOrder order = insOrderService.selectZMByPk(orderNo);
  546. InsOrder order = quoteInfo.getInsOrder();
  547. if (order != null) {
  548. //1.调核保接口
  549. CBITReqParam reqParam_in = new CBITReqParam();
  550. CBITBaseparam taiPingYangbaseParam = getTaiPingYangBaseparam();
  551. taiPingYangbaseParam.setOrderNo(orderNo);
  552. reqParam_in.setBaseParam(taiPingYangbaseParam);
  553. VehicleModel_QueRen vehicleModel_QueRen = JSON.parseObject(JSON.toJSONString(order.getCarinfo()), VehicleModel_QueRen.class);
  554. quoteInfo.setVehicleModel_QueRen(vehicleModel_QueRen);//险别加工时要用
  555. quoteInfo.setRiskList(JSON.parseArray(JSON.toJSONString(order.getRiskinfo()), CBITRiskInfoVo.class));
  556. quoteInfo.setKindList(JSON.parseArray(JSON.toJSONString(order.getKindinfo()), KindInfoVo.class));
  557. httpResult = insCBITService.submitAudit(reqParam_in, quoteInfo);
  558. /* if (httpResult.getCode()==200) {
  559. AuditRespData auditRespData=(AuditRespData)httpResult.getData();
  560. Policy businessPolicy =auditRespData.getBusinessPolicy();
  561. Policy trafficPolicy =auditRespData.getTrafficPolicy();
  562. order.setOrderstatus("5");
  563. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  564. order.setSubmittime(sdf.format(new Date()));
  565. order.setJqappoint(JSON.toJSONString(trafficPolicy.getSpecialTermItems())); //交强特别约定
  566. order.setSyappoint(JSON.toJSONString(businessPolicy.getSpecialTermItems())); //商业特别约定
  567. insOrderService.update(order);
  568. //插入轨迹表
  569. *//*InsTaskHistory history = new InsTaskHistory();
  570. history.setId(String.valueOf(new Date().getTime()));
  571. history.setCompany(order.getInscompany());
  572. history.setTaskid(order.getOrderno());
  573. history.setOperatorid(order.getUserid());
  574. history.setOperator(order.getUsername());
  575. history.setCreatetime(sdf.format(new Date()));
  576. history.setStatus("1");
  577. history.setRemark("提交核保");
  578. insTaskHistoryService.insert(history);*//*
  579. }*/
  580. } else {
  581. return HttpResult.error("订单号有误!");
  582. }
  583. return httpResult;
  584. }
  585. private HttpResult audit_TaiPing(CBITQuoteInfoVo quoteInfo, String orderNo) throws Exception {
  586. HttpResult httpResult;
  587. //查询订单
  588. // InsOrder order = insOrderService.selectZMByPk(orderNo);
  589. InsOrder order = quoteInfo.getInsOrder();
  590. if (order != null) {
  591. //1.调核保接口
  592. CBITReqParam reqParam_in = new CBITReqParam();
  593. CBITBaseparam taiPingbaseParam = getTaiPingBaseparam();
  594. taiPingbaseParam.setOrderNo(orderNo);
  595. reqParam_in.setBaseParam(taiPingbaseParam);
  596. VehicleModel_QueRen vehicleModel_QueRen = JSON.parseObject(JSON.toJSONString(order.getCarinfo()), VehicleModel_QueRen.class);
  597. quoteInfo.setVehicleModel_QueRen(vehicleModel_QueRen);//险别加工时要用
  598. quoteInfo.setRiskList(JSON.parseArray(JSON.toJSONString(order.getRiskinfo()), CBITRiskInfoVo.class));
  599. quoteInfo.setKindList(JSON.parseArray(JSON.toJSONString(order.getKindinfo()), KindInfoVo.class));
  600. httpResult = insCBITService.submitAudit(reqParam_in, quoteInfo);
  601. /* if (httpResult.getCode()==200) {
  602. AuditRespData auditRespData=(AuditRespData)httpResult.getData();
  603. Policy businessPolicy =auditRespData.getBusinessPolicy();
  604. Policy trafficPolicy =auditRespData.getTrafficPolicy();
  605. order.setOrderstatus("5");
  606. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  607. order.setSubmittime(sdf.format(new Date()));
  608. order.setJqappoint(JSON.toJSONString(trafficPolicy.getSpecialTermItems())); //交强特别约定
  609. order.setSyappoint(JSON.toJSONString(businessPolicy.getSpecialTermItems())); //商业特别约定
  610. insOrderService.update(order);
  611. //插入轨迹表
  612. *//*InsTaskHistory history = new InsTaskHistory();
  613. history.setId(String.valueOf(new Date().getTime()));
  614. history.setCompany(order.getInscompany());
  615. history.setTaskid(order.getOrderno());
  616. history.setOperatorid(order.getUserid());
  617. history.setOperator(order.getUsername());
  618. history.setCreatetime(sdf.format(new Date()));
  619. history.setStatus("1");
  620. history.setRemark("提交核保");
  621. insTaskHistoryService.insert(history);*//*
  622. }*/
  623. } else {
  624. return HttpResult.error("订单号有误!");
  625. }
  626. return httpResult;
  627. }
  628. private void checkEmpty(@RequestBody CBITQuoteInfoVo quoteInfo) throws Exception {
  629. if (StringUtils.isEmpty(quoteInfo.getInsurers())) {
  630. throw new Exception("insurers不能为空!");
  631. }
  632. if (quoteInfo.getCarInfo() == null || quoteInfo.getVehicleModel() == null) {
  633. throw new Exception("carInfo/vehicleModel不能为空!");
  634. }
  635. if (quoteInfo.getOwnerInfo() == null || quoteInfo.getPolicyHolderInfo() == null || quoteInfo.getInsuredPersonInfo() == null) {
  636. throw new Exception("ownerInfo/policyHolderInfo/insuredPersonInfo 不能为空!");
  637. }
  638. if (quoteInfo.getRiskList() == null || quoteInfo.getRiskList().size() == 0) {
  639. throw new Exception("riskList 不能为空!");
  640. } else {
  641. for (CBITRiskInfoVo cBITRiskInfoVo : quoteInfo.getRiskList()) {
  642. if (cBITRiskInfoVo.getStartDate() == null) {
  643. throw new Exception("riskList.startDate 不能为空!");
  644. }
  645. }
  646. }
  647. }
  648. private void checkEmpty_Audit(@RequestBody CBITQuoteInfoVo quoteInfo) throws Exception {
  649. if (StringUtils.isEmpty(quoteInfo.getInsurers())) {
  650. throw new Exception("insurers不能为空!");
  651. }
  652. if (StringUtils.isEmpty(quoteInfo.getOrderno())) {
  653. throw new Exception("orderno不能为空!");
  654. }
  655. /*if(quoteInfo.getCarInfo()==null||quoteInfo.getVehicleModel()==null){
  656. throw new Exception("carInfo/vehicleModel不能为空!");
  657. }
  658. if(quoteInfo.getRiskList()==null||quoteInfo.getRiskList().size()==0){
  659. throw new Exception("riskList 不能为空!");
  660. }*/
  661. }
  662. private QuoteRespData quote_TaiPingYang(CBITQuoteInfoVo quoteInfo) throws Exception {
  663. //1.太平洋-订单号生成
  664. CBITBaseparam taiPingYangbaseParam = getTaiPingYangBaseparam();
  665. HttpResult httpResult_orderno = insCBITService.geneOrder(taiPingYangbaseParam);
  666. String orderno = "";
  667. if (httpResult_orderno.getCode() == 200) {
  668. orderno = (String) httpResult_orderno.getData();
  669. } else {
  670. throw new Exception("订单号生成出错,错误信息:" + httpResult_orderno.getMsg());
  671. }
  672. taiPingYangbaseParam.setOrderNo(orderno);
  673. //2.太平洋--车型查询
  674. CarInfoVo carInfo = quoteInfo.getCarInfo();
  675. CarModelQryVo carModelQryVo = new CarModelQryVo();
  676. carModelQryVo.setBaseParam(taiPingYangbaseParam);
  677. carModelQryVo.setModelCName(carInfo.getModelcname());
  678. carModelQryVo.setEngineNo(carInfo.getEngineNo());
  679. carModelQryVo.setVin(carInfo.getVinNo());
  680. carModelQryVo.setNewVehicleFlag("0");//是否新车,默认否
  681. HttpResult httpResult_query = insCBITService.queryModel(carModelQryVo);
  682. if (httpResult_query.getCode() != 200) {
  683. throw new Exception("太平洋--车型查询出错,错误信息:" + httpResult_query.getMsg());
  684. }
  685. //3.太平洋--车辆确认
  686. CBITReqParam taiPingYangreqParam_in = new CBITReqParam();
  687. taiPingYangreqParam_in.setBaseParam(taiPingYangbaseParam);
  688. //3.1车主信息
  689. CustomerInfoVo ownerInfo = quoteInfo.getOwnerInfo();
  690. CarOwner carOwner = getCarOwner(ownerInfo);
  691. carOwner.setCertiStartDate("2020-1-1");
  692. carOwner.setCertiEndDate("2030-1-1");
  693. //3.2投保人信息
  694. CustomerInfoVo policyHolderInfo = quoteInfo.getPolicyHolderInfo();
  695. Holder holder = getHolder(policyHolderInfo);
  696. holder.setCertiStartDate("2020-1-1");
  697. holder.setCertiEndDate("2030-1-1");
  698. holder.setElecApplicationFlag("0");
  699. //3.3被保人信息
  700. CustomerInfoVo insuredPersonInfo = quoteInfo.getInsuredPersonInfo();
  701. Insureder insureder = getInsureder(insuredPersonInfo);
  702. insureder.setCertiStartDate("2020-1-1");
  703. insureder.setCertiEndDate("2030-1-1");
  704. //3.4车辆信息
  705. VehicleModel vehicleModel = quoteInfo.getVehicleModel();
  706. SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  707. Vehicle vehicle = getVehicle(carInfo, vehicleModel, sdfm.parse(quoteInfo.getRiskList().get(0).getStartDate()), "000017");
  708. taiPingYangreqParam_in.setCarOwner(carOwner);
  709. taiPingYangreqParam_in.setHolder(holder);
  710. taiPingYangreqParam_in.setInsureder(insureder);
  711. taiPingYangreqParam_in.setVehicle(vehicle);
  712. HttpResult httpResult_confirm = insCBITService.confirmVehicle(taiPingYangreqParam_in);
  713. if (httpResult_confirm.getCode() != 200) {
  714. throw new Exception("车型确认出错,错误信息:" + httpResult_confirm.getMsg());
  715. }
  716. ConfirmVehicleResqData confirmVehicleResqData = (ConfirmVehicleResqData) httpResult_confirm.getData();
  717. if (confirmVehicleResqData.getVehicleModels() == null || confirmVehicleResqData.getVehicleModels().size() == 0) {
  718. throw new Exception("车型确认保信返回车型列表为空!");
  719. }
  720. quoteInfo.setVehicleModel_QueRen(confirmVehicleResqData.getVehicleModels().get(0));
  721. //4.太平洋--报价
  722. quoteInfo.setBaseParam(taiPingYangbaseParam);
  723. QuoteRespData quoteRespData = insCBITService.quote(quoteInfo);
  724. quoteRespData.setOrderno(orderno);
  725. //5.插入ins_order表
  726. /*InsOrder insOrder=geneInsOrder(quoteInfo,quoteRespData,"太平洋-000014",confirmVehicleResqData.getVehicleModels().get(0));
  727. quoteRespData.setInsOrder(insOrder);*/
  728. quoteRespData.setQuoteInfo(quoteInfo);
  729. return quoteRespData;
  730. }
  731. private QuoteRespData quote_TaiPing(CBITQuoteInfoVo quoteInfo) throws Exception {
  732. //1.太平-订单号生成
  733. CBITBaseparam taiPingbaseParam = getTaiPingBaseparam();
  734. HttpResult httpResult_orderno = insCBITService.geneOrder(taiPingbaseParam);
  735. String orderno = "";
  736. if (httpResult_orderno.getCode() == 200) {
  737. orderno = (String) httpResult_orderno.getData();
  738. } else {
  739. throw new Exception("订单号生成出错,错误信息:" + httpResult_orderno.getMsg());
  740. }
  741. taiPingbaseParam.setOrderNo(orderno);
  742. //2.太平--车型查询
  743. CarInfoVo carInfo = quoteInfo.getCarInfo();
  744. CarModelQryVo carModelQryVo = new CarModelQryVo();
  745. carModelQryVo.setBaseParam(taiPingbaseParam);
  746. carModelQryVo.setModelCName(carInfo.getModelcname());
  747. carModelQryVo.setEngineNo(carInfo.getEngineNo());
  748. carModelQryVo.setVin(carInfo.getVinNo());
  749. carModelQryVo.setNewVehicleFlag("0");//是否新车,默认否
  750. HttpResult httpResult_query = insCBITService.queryModel(carModelQryVo);
  751. if (httpResult_query.getCode() != 200) {
  752. throw new Exception("太平--车型查询出错,错误信息:" + httpResult_query.getMsg());
  753. }
  754. //3.太平--车辆确认
  755. CBITReqParam taiPingreqParam_in = new CBITReqParam();
  756. taiPingreqParam_in.setBaseParam(taiPingbaseParam);
  757. //3.1车主信息
  758. CustomerInfoVo ownerInfo = quoteInfo.getOwnerInfo();
  759. CarOwner carOwner = getCarOwner(ownerInfo);
  760. carOwner.setCertiStartDate("2020-1-1");
  761. carOwner.setCertiEndDate("2030-1-1");
  762. //3.2投保人信息
  763. CustomerInfoVo policyHolderInfo = quoteInfo.getPolicyHolderInfo();
  764. Holder holder = getHolder(policyHolderInfo);
  765. holder.setCertiStartDate("2020-1-1");
  766. holder.setCertiEndDate("2030-1-1");
  767. holder.setElecApplicationFlag("0");
  768. //3.3被保人信息
  769. CustomerInfoVo insuredPersonInfo = quoteInfo.getInsuredPersonInfo();
  770. Insureder insureder = getInsureder(insuredPersonInfo);
  771. insureder.setCertiStartDate("2020-1-1");
  772. insureder.setCertiEndDate("2030-1-1");
  773. //3.4车辆信息
  774. VehicleModel vehicleModel = quoteInfo.getVehicleModel();
  775. SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  776. Vehicle vehicle = getVehicle(carInfo, vehicleModel, sdfm.parse(quoteInfo.getRiskList().get(0).getStartDate()), "000017");
  777. taiPingreqParam_in.setCarOwner(carOwner);
  778. taiPingreqParam_in.setHolder(holder);
  779. taiPingreqParam_in.setInsureder(insureder);
  780. taiPingreqParam_in.setVehicle(vehicle);
  781. HttpResult httpResult_confirm = insCBITService.confirmVehicle(taiPingreqParam_in);
  782. if (httpResult_confirm.getCode() != 200) {
  783. throw new Exception("车型确认出错,错误信息:" + httpResult_confirm.getMsg());
  784. }
  785. ConfirmVehicleResqData confirmVehicleResqData = (ConfirmVehicleResqData) httpResult_confirm.getData();
  786. if (confirmVehicleResqData.getVehicleModels() == null || confirmVehicleResqData.getVehicleModels().size() == 0) {
  787. throw new Exception("车型确认保信返回车型列表为空!");
  788. }
  789. quoteInfo.setVehicleModel_QueRen(confirmVehicleResqData.getVehicleModels().get(0));
  790. //3.太平--报价
  791. quoteInfo.setBaseParam(taiPingbaseParam);
  792. QuoteRespData quoteRespData = insCBITService.quote(quoteInfo);
  793. quoteRespData.setOrderno(orderno);
  794. //4.插入ins_order表
  795. /*InsOrder insOrder=geneInsOrder(quoteInfo,quoteRespData,"太平-000026",confirmVehicleResqData.getVehicleModels().get(0));
  796. quoteRespData.setInsOrder(insOrder);*/
  797. quoteRespData.setQuoteInfo(quoteInfo);
  798. return quoteRespData;
  799. }
  800. private QuoteRespData quote_PingAn(CBITQuoteInfoVo quoteInfo) throws Exception {
  801. //1.平安--订单号生成
  802. CBITBaseparam pingAnbaseParam = getPingAnBaseparam();
  803. HttpResult httpResult_orderno = insCBITService.geneOrder(pingAnbaseParam);
  804. String orderno = "";
  805. if (httpResult_orderno.getCode() == 200) {
  806. orderno = (String) httpResult_orderno.getData();
  807. } else {
  808. throw new Exception("订单号生成出错,错误信息:" + httpResult_orderno.getMsg());
  809. }
  810. pingAnbaseParam.setOrderNo(orderno);
  811. //2.平安--车辆确认
  812. CBITReqParam pingAnreqParam_in = new CBITReqParam();
  813. pingAnreqParam_in.setBaseParam(pingAnbaseParam);
  814. //2.1车主信息
  815. CustomerInfoVo ownerInfo = quoteInfo.getOwnerInfo();
  816. CarOwner carOwner = getCarOwner(ownerInfo);
  817. carOwner.setCertiStartDate("2020-1-1");
  818. carOwner.setCertiEndDate("2030-1-1");
  819. //2.2投保人信息
  820. CustomerInfoVo policyHolderInfo = quoteInfo.getPolicyHolderInfo();
  821. Holder holder = getHolder(policyHolderInfo);
  822. holder.setCertiStartDate("2020-1-1");
  823. holder.setCertiEndDate("2030-1-1");
  824. holder.setElecApplicationFlag("0");
  825. //2.3被保人信息
  826. CustomerInfoVo insuredPersonInfo = quoteInfo.getInsuredPersonInfo();
  827. Insureder insureder = getInsureder(insuredPersonInfo);
  828. insureder.setCertiStartDate("2020-1-1");
  829. insureder.setCertiEndDate("2030-1-1");
  830. //2.4车辆信息
  831. CarInfoVo carInfo = quoteInfo.getCarInfo();
  832. VehicleModel vehicleModel = quoteInfo.getVehicleModel();
  833. SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  834. Vehicle vehicle = getVehicle(carInfo, vehicleModel, sdfm.parse(quoteInfo.getRiskList().get(0).getStartDate()), "000017");
  835. pingAnreqParam_in.setCarOwner(carOwner);
  836. pingAnreqParam_in.setHolder(holder);
  837. pingAnreqParam_in.setInsureder(insureder);
  838. pingAnreqParam_in.setVehicle(vehicle);
  839. HttpResult httpResult_confirm = insCBITService.confirmVehicle(pingAnreqParam_in);
  840. if (httpResult_confirm.getCode() != 200) {
  841. throw new Exception("车型确认出错,错误信息:" + httpResult_confirm.getMsg());
  842. }
  843. ConfirmVehicleResqData confirmVehicleResqData = (ConfirmVehicleResqData) httpResult_confirm.getData();
  844. if (confirmVehicleResqData.getVehicleModels() == null || confirmVehicleResqData.getVehicleModels().size() == 0) {
  845. throw new Exception("车型确认保信返回车型列表为空!");
  846. }
  847. quoteInfo.setVehicleModel_QueRen(confirmVehicleResqData.getVehicleModels().get(0));
  848. //3.平安--报价
  849. quoteInfo.setBaseParam(pingAnbaseParam);
  850. QuoteRespData quoteRespData = insCBITService.quote(quoteInfo);
  851. quoteRespData.setOrderno(orderno);
  852. //4.插入ins_order表
  853. /*InsOrder insOrder=geneInsOrder(quoteInfo,quoteRespData,"平安-000017",confirmVehicleResqData.getVehicleModels().get(0));
  854. quoteRespData.setInsOrder(insOrder);*/
  855. quoteRespData.setQuoteInfo(quoteInfo);
  856. return quoteRespData;
  857. }
  858. //报价生成ins_order
  859. private InsOrder geneInsOrder(CBITQuoteInfoVo quoteInfo, QuoteRespData quoteRespData, String insures, VehicleModel_QueRen vehicleModel_QueRen) throws Exception {
  860. InsOrder insOrder = new InsOrder();
  861. String orderno = quoteRespData.getOrderno();
  862. insOrder.setOrderno(orderno);
  863. insOrder.setQuoteno(String.valueOf(quoteInfo.getQuoteno()));
  864. insOrder.setOrderstatus("0"); //0报价 1待核保 2已核保待缴费 3核保退回 4核保不通过
  865. insOrder.setFrameNo(quoteInfo.getCarInfo().getFrameNo());
  866. insOrder.setLicenseNo(quoteInfo.getCarInfo().getLicenseNo());
  867. insOrder.setCarinfo(JSONObject.parseObject(JSONObject.toJSONString(vehicleModel_QueRen)));
  868. SysUser user = sysUserService.getById(quoteInfo.getUserId());
  869. if (user == null) {
  870. throw new Exception("userId不存在");
  871. }
  872. //
  873. if (StringUtils.isEmpty(quoteInfo.getCarInfo().getFrameNo())) {
  874. throw new Exception("车架号不能为空");
  875. }
  876. InsOrder orderObj = insOrderService.queryQuoteno(new Object[]{quoteInfo.getUserId(), quoteInfo.getCarInfo().getFrameNo(), quoteInfo.getQuoteno()});
  877. if (orderObj != null) {
  878. List<InsOrder> listo = insOrderService.selectList(" where quoteno=?", new Object[]{orderObj.getQuoteno()});
  879. String status = "0";
  880. for (InsOrder order : listo) {
  881. if (!"0".equals(order.getOrderstatus())) {
  882. status = order.getOrderstatus();
  883. }
  884. }
  885. //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭
  886. if ("0".equals(status)) {//关闭订单
  887. insOrderService.closeOrder(orderObj.getOrderno(), "99");
  888. } else if (!"99".equals(status)) {
  889. throw new Exception("此车辆已提交核保,重新报价请先关闭订单,任务号:" + orderObj.getQuoteno());
  890. }
  891. }
  892. insOrder.setUsername(user.getName());
  893. insOrder.setDeptid(user.getDeptId());
  894. SysDept dept = sysDeptService.getById(user.getDeptId());
  895. insOrder.setDeptname(dept == null ? "" : dept.getName());
  896. insOrder.setOwnerinfo(JSONObject.parseObject(JSONObject.toJSONString(quoteInfo.getOwnerInfo())));
  897. insOrder.setApplyinfo(JSONObject.parseObject(JSONObject.toJSONString(quoteInfo.getPolicyHolderInfo())));
  898. insOrder.setInsureinfo(JSONObject.parseObject(JSONObject.toJSONString(quoteInfo.getInsuredPersonInfo())));
  899. insOrder.setInsuredname(quoteInfo.getPolicyHolderInfo().getName());
  900. List<CBITRiskInfoVo> risks = quoteInfo.getRiskList();
  901. for (CBITRiskInfoVo risk : risks) {
  902. if ("0507".equals(risk.getRiskCode())) {//交强
  903. insOrder.setJqstartdate(risk.getStartDate());
  904. insOrder.setJqenddate(risk.getEndDate());
  905. }
  906. if ("0510".equals(risk.getRiskCode())) {//商业
  907. insOrder.setSystartdate(risk.getStartDate());
  908. insOrder.setSyenddate(risk.getEndDate());
  909. }
  910. }
  911. List<KindInfoVo> kinds = quoteInfo.getKindList();
  912. String productId = "";
  913. String productname = "";
  914. //平安:000004
  915. //太平:000005
  916. //太平洋:000007
  917. String ins_zgdd = "";
  918. if (insures.contains("000017")) {
  919. ins_zgdd = "000004";
  920. } else if (insures.contains("000026")) {
  921. ins_zgdd = "000005";
  922. } else if (insures.contains("000014")) {
  923. ins_zgdd = "000007";
  924. }
  925. List<EsmAgreement> agreements = esmAgreementService.selectList(" where t.agreestatus='1' and t.insure1 like ? " +
  926. "and exists (select 1 from esm_agreement_prod t2 where t.id=t2.agreeid and t2.authcomcode like ?)", new Object[]{ins_zgdd + "%", "%" + user.getDeptId() + "%"});
  927. if (agreements.size() == 0) {
  928. throw new Exception("不存在有效协议或机构" + user.getDeptId() + "未授权");
  929. }
  930. String agreeid = agreements.get(0).getId();
  931. insOrder.setAgreeid(agreeid);
  932. //匹配协议,获取费用
  933. StringBuffer whereStr = new StringBuffer();
  934. List params = new ArrayList();// where t.agreeid=? and t.productid in ()
  935. whereStr.append("where t.agreeid=? ");
  936. params.add(agreeid);
  937. if (risks.size() == 1 && "0507".equals(risks.get(0).getRiskCode())) {
  938. productId = "ZG01001";
  939. productname = "单交强";
  940. whereStr.append(" and t.productid=?");
  941. params.add(productId);
  942. } else if (risks.size() == 1 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
  943. productId = "ZG01002";
  944. productname = "单三者";
  945. whereStr.append(" and t.productid=?");
  946. params.add(productId);
  947. } else if (risks.size() == 1) {
  948. productId = "ZG01003";
  949. productname = "单商业";
  950. whereStr.append(" and t.productid=?");
  951. params.add(productId);
  952. } else if (risks.size() == 2 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
  953. productId = "ZG01004";
  954. productname = "交强+三者";
  955. whereStr.append(" and t.productid in (?,?)");
  956. params.add("ZG01004");
  957. params.add("ZG01005");
  958. } else {
  959. productId = "ZG01006";
  960. productname = "交强+商业";
  961. whereStr.append(" and t.productid in (?,?)");
  962. params.add("ZG01006");
  963. params.add("ZG01007");
  964. }
  965. double retailRate = countRetail(user.getDeptId(), user.getId());
  966. insOrder.setProductid(productId);
  967. insOrder.setProduct(productname);
  968. List<EsmAgreementProd> agreementProds = esmAgreementProdService.selectList(whereStr.toString(), params.toArray());
  969. for (EsmAgreementProd prod : agreementProds) {
  970. if ("ZG01001".equals(prod.getProductid()) || "ZG01004".equals(prod.getProductid()) || "ZG01006".equals(prod.getProductid())) {
  971. insOrder.setFeerate(prod.getProductrate());//交强手续费比例
  972. insOrder.setJqdiscountrate(prod.getFeerate() - retailRate); //交强优惠比例=业务员绩效-分销费用
  973. } else {
  974. insOrder.setDisrate(prod.getProductrate()); //商业手续费比例
  975. insOrder.setSydiscountrate(prod.getFeerate() - retailRate); //商业优惠比例=业务员绩效-分销费用
  976. }
  977. insOrder.setProductid(prod.getId());
  978. }
  979. insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteInfo.getRiskList())));
  980. insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteInfo.getKindList())));
  981. insOrder.setInscompany(insures);
  982. SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  983. insOrder.setCreatetime(sdfm.format(new Date()));
  984. TrafficPolicy_resp trafficPolicy = quoteRespData.getTrafficPolicy();
  985. BusinessPolicy_resp businessPolicy = quoteRespData.getBusinessPolicy();
  986. BigDecimal vehicleTax = new BigDecimal(0);
  987. if (trafficPolicy != null) {//交强保费
  988. BigDecimal Vehiclemium = trafficPolicy.getPremium();
  989. vehicleTax = trafficPolicy.getVehicleTax().getTotalAmount();
  990. Vehiclemium = Vehiclemium.setScale(2, BigDecimal.ROUND_HALF_UP);
  991. insOrder.setJqpremium(Vehiclemium.doubleValue());
  992. insOrder.setTaxamount(vehicleTax.doubleValue());
  993. }
  994. if (businessPolicy != null) {//商业保费
  995. BigDecimal bd = businessPolicy.getPremium();
  996. bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
  997. double syPremium = bd.doubleValue();
  998. insOrder.setSypremium(syPremium);
  999. }
  1000. BigDecimal bd = quoteRespData.getPremium();
  1001. bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
  1002. insOrder.setSumpremium(bd.doubleValue());
  1003. //报价状态 0失败 1成功
  1004. BigDecimal bds = new BigDecimal(insOrder.getSypremium());
  1005. BigDecimal bd1 = bds.setScale(2, BigDecimal.ROUND_HALF_UP);
  1006. insOrder.setSypremium(bd1.doubleValue());
  1007. insOrder.setQuotestatus("1");
  1008. insOrder.setUserid(user.getId());
  1009. logger.info("用户id====" + insOrder.getUserid());
  1010. // insOrderService.insert(insOrder);
  1011. //插入轨迹表
  1012. /*InsTaskHistory history = new InsTaskHistory();
  1013. history.setId(String.valueOf(new Date().getTime()));
  1014. history.setCompany(insOrder.getInscompany());
  1015. history.setTaskid(insOrder.getOrderno());
  1016. history.setOperatorid(insOrder.getUserid());
  1017. history.setOperator(insOrder.getUsername());
  1018. history.setCreatetime(sdfm.format(new Date()));
  1019. history.setOperator(insOrder.getUsername());
  1020. history.setStatus("0");
  1021. history.setRemark("报价中");
  1022. insTaskHistoryService.insert(history);
  1023. */
  1024. return insOrder;
  1025. }
  1026. ;
  1027. /**
  1028. * 分销费用统计
  1029. *
  1030. * @param deptid
  1031. * @param userid
  1032. * @return
  1033. */
  1034. public double countRetail(String deptid, String userid) {
  1035. double retailRate = 0;
  1036. //1、根据机构匹配分销规则,获取分销比例
  1037. List<EsmRetail> list = esmRetailService.selectList(" where deptid = ? and status=?", new Object[]{deptid, "1"});
  1038. //2、根据userid查询三级推荐人
  1039. List<SysUser> users = esmUserInternalService.getSuperior(userid);
  1040. if (list != null && list.size() > 0 && users.size() > 0 && !"0".equals(list.get(0).getRetailtype())) {
  1041. EsmRetail retail = list.get(0);
  1042. List<Double> rateList = new ArrayList<Double>();
  1043. rateList.add(retail.getDisrate1());
  1044. rateList.add(retail.getDisrate2());
  1045. rateList.add(retail.getDisrate3());
  1046. if ("1".equals(retail.getRetailtype())) {//一级分销
  1047. retailRate += rateList.get(0);
  1048. } else if ("2".equals(retail.getRetailtype())) {//二级分销
  1049. int num = users.size() > 2 ? 2 : users.size();
  1050. for (int i = 0; i < num; i++) {
  1051. retailRate += rateList.get(i);
  1052. }
  1053. } else {//三级分销
  1054. int num = users.size() > 2 ? 3 : users.size();
  1055. for (int i = 0; i < num; i++) {
  1056. retailRate += rateList.get(i);
  1057. }
  1058. }
  1059. }
  1060. return retailRate;
  1061. }
  1062. private Vehicle getVehicle(CarInfoVo carInfo, VehicleModel vehicleModel, Date startdate, String insures) {
  1063. Vehicle vehicle = new Vehicle();//车辆信息
  1064. vehicle.setNewVehicleFlag("0");//是否新车
  1065. vehicle.setCurrentValue(new BigDecimal(vehicleModel.getPurchasePrice()));
  1066. vehicle.setCarVin(carInfo.getVinNo());
  1067. vehicle.setVehicleModelCode(vehicleModel.getMoldCharacterCode());
  1068. vehicle.setEngineNo(carInfo.getEngineNo());
  1069. vehicle.setPlateNo(carInfo.getLicenseNo());
  1070. vehicle.setRegisterDate(carInfo.getRegisterDate());
  1071. vehicle.setPurchasePrice(new BigDecimal(vehicleModel.getPurchasePrice()));
  1072. vehicle.setMoldName(vehicleModel.getMoldName());
  1073. vehicle.setPlateColor("01");//01 蓝
  1074. vehicle.setSeatCount(vehicleModel.getSeatCount());
  1075. vehicle.setOriginalSeatCount(vehicleModel.getSeatCount());
  1076. vehicle.setTonNumber("0");
  1077. vehicle.setEmptyWeight(vehicleModel.getEmptyWeight());
  1078. vehicle.setFuelType(vehicleModel.getFuelType());
  1079. vehicle.setExhaustMeasure(new BigDecimal(vehicleModel.getEngineCapacity()));
  1080. vehicle.setVehicleAlias(vehicleModel.getVehicleAlias());
  1081. vehicle.setVehicleKind("11");//11 客车
  1082. vehicle.setLicenseType("02");//02 小型汽车号牌
  1083. /**需按保司进行判断
  1084. * 国寿财:210 非营业个人
  1085. * 太平:253 家庭自用 "000026"
  1086. * 人保:210 非营业个人
  1087. * 平安:200 非营业 "000017"
  1088. * 阳光:210 非营业个人
  1089. * 中华:253 家庭自用 "000012"
  1090. * 天安:253 家庭自用 "000022"
  1091. * 大地:253 家庭自用 "000010"
  1092. * 太保:253 家庭自用 "000014"
  1093. */
  1094. String usageDetail = "210";//210 非营业个人
  1095. String usage253 = "000026,000012,000022,000010,000014,000017";
  1096. if (usage253.contains(insures)) {
  1097. usageDetail = "253";
  1098. }
  1099. vehicle.setVehicleUsageDetail(usageDetail);//210 非营业个人
  1100. vehicle.setVehicleAffNature("1");//1 个人
  1101. vehicle.setVehicleTypeOfDrivingPermit("K33");//K33 小型轿车
  1102. vehicle.setSecondHandVehicleFlag("0");//是否二手车
  1103. vehicle.setVehicleUsage("200");//200 非营业
  1104. vehicle.setVehicleQuery(vehicleModel.getMoldName());
  1105. if (carInfo.isTransferFlag() == true) {
  1106. vehicle.setIsTransfer("1");//是否过户
  1107. vehicle.setTransferDate(carInfo.getTransferDate());
  1108. } else {
  1109. vehicle.setIsTransfer("0");
  1110. }
  1111. vehicle.setCertificationDate(carInfo.getIssueDate());
  1112. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  1113. vehicle.setEffectDate(df.format(startdate));
  1114. return vehicle;
  1115. }
  1116. private Insureder getInsureder(CustomerInfoVo insuredPersonInfo) {
  1117. Insureder insureder = new Insureder();//被保人信息
  1118. insureder.setInsuredName(insuredPersonInfo.getName());
  1119. insureder.setCertType("111");//默认身份证
  1120. insureder.setCertiType("0");//证件是否长期
  1121. insureder.setCertNo(insuredPersonInfo.getIdentifyNumber());
  1122. insureder.setCustomerType("2");
  1123. insureder.setPhoneNumber(insuredPersonInfo.getMobile());
  1124. insureder.setCertiStartDate("");
  1125. insureder.setCertiEndDate("");
  1126. insureder.setNation("");
  1127. insureder.setIssuer("");
  1128. insureder.setAddress(insuredPersonInfo.getAddr());
  1129. return insureder;
  1130. }
  1131. private Holder getHolder(CustomerInfoVo policyHolderInfo) {
  1132. Holder holder = new Holder();//投保人信息
  1133. holder.setHolderName(policyHolderInfo.getName());
  1134. holder.setInvoiceType("1");
  1135. holder.setBizFormatType("1");
  1136. holder.setForceFormatType("1");
  1137. holder.setCertType("111");//默认身份证
  1138. holder.setCertiType("0");//证件是否长期
  1139. holder.setCertNo(policyHolderInfo.getIdentifyNumber());
  1140. holder.setCustomerType("2");
  1141. holder.setPhoneNumber(policyHolderInfo.getMobile());
  1142. holder.setCertiStartDate("");
  1143. holder.setCertiEndDate("");
  1144. holder.setNation("");
  1145. holder.setIssuer("");
  1146. holder.setAddress(policyHolderInfo.getAddr());
  1147. return holder;
  1148. }
  1149. private CarOwner getCarOwner(CustomerInfoVo ownerInfo) {
  1150. CarOwner carOwner = new CarOwner();//车主信息
  1151. carOwner.setOwnerName(ownerInfo.getName());
  1152. carOwner.setCertType("111");//默认身份证
  1153. carOwner.setCertiType("0");//证件是否长期
  1154. carOwner.setCertNo(ownerInfo.getIdentifyNumber());
  1155. carOwner.setCustomerType("2");
  1156. carOwner.setPhoneNumber(ownerInfo.getMobile());
  1157. carOwner.setCertiStartDate("");
  1158. carOwner.setCertiEndDate("");
  1159. carOwner.setNation("");
  1160. carOwner.setIssuer("");
  1161. carOwner.setAddress(ownerInfo.getAddr());
  1162. return carOwner;
  1163. }
  1164. private CBITBaseparam getTaiPingBaseparam() {
  1165. CBITBaseparam baseParam = new CBITBaseparam();
  1166. baseParam.setInsurerId("000026");
  1167. baseParam.setInsurerBranchCode(insurerBranchCode_taiping);
  1168. FranchiserChannel franchiserChannel = new FranchiserChannel();
  1169. franchiserChannel.setFranchiserChannelId(franchiserChannelId_taiping);
  1170. // franchiserChannel.setFranchiserChannelCode(franchiserChannelId_taiping);
  1171. franchiserChannel.setGroupCode(groupCode_taiping);
  1172. baseParam.setFranchiserChannel(franchiserChannel);
  1173. return baseParam;
  1174. }
  1175. private CBITBaseparam getTaiPingYangBaseparam() {
  1176. CBITBaseparam baseParam = new CBITBaseparam();
  1177. baseParam.setInsurerId("000014");
  1178. baseParam.setInsurerBranchCode(insurerBranchCode_taipingyang);
  1179. FranchiserChannel franchiserChannel = new FranchiserChannel();
  1180. franchiserChannel.setFranchiserChannelId(franchiserChannelId_taipingyang);
  1181. // franchiserChannel.setFranchiserChannelCode(franchiserChannelCode_taipingyang);
  1182. baseParam.setFranchiserChannel(franchiserChannel);
  1183. return baseParam;
  1184. }
  1185. private CBITBaseparam getPingAnBaseparam() {
  1186. CBITBaseparam baseParam = new CBITBaseparam();
  1187. baseParam.setInsurerId("000017");
  1188. baseParam.setInsurerBranchCode(insurerBranchCode_pingan);
  1189. FranchiserChannel franchiserChannel = new FranchiserChannel();
  1190. franchiserChannel.setFranchiserChannelId(franchiserChannelId_pingan);
  1191. franchiserChannel.setCarDealerCode(carDealerCode_pingan);
  1192. franchiserChannel.setFranchiserChannelCode(franchiserChannelCode_pingan);
  1193. baseParam.setFranchiserChannel(franchiserChannel);
  1194. return baseParam;
  1195. }
  1196. private void geneResponse(HttpServletResponse http_resp, ReqParamCBIT reqParam_cbit) throws Exception {
  1197. CBITBaseparam baseParam = new CBITBaseparam();
  1198. baseParam.setRequestNo(reqParam_cbit.getBaseParam().getRequestNo());
  1199. baseParam.setFranchiserId(franchiserId);
  1200. ResponseCBIT resp = new ResponseCBIT("Z00001", "处理成功", baseParam);
  1201. String resp_str = JSON.toJSONString(resp);
  1202. System.out.println("加密前返回参数resp_bizContent=" + resp_str);
  1203. Map<String, String> encry = RSAUtils.encryptAndSign(resp_str, ZJPT_PUBLIC_KEY, HZHB_PRIVATE_KEY, "UTF-8", true, true);
  1204. String resp_bizContent = encry.get("CONTENT");//密文
  1205. System.out.println("加密后返回参数resp_bizContent=" + resp_bizContent);
  1206. String resp_sign = encry.get("SIGNATURE");//签名,放在请求头中
  1207. System.out.println("最终返回头中的签名resp_sign=" + resp_sign);
  1208. Map<String, String> resp_Map = new HashMap<>();
  1209. resp_Map.put("bizContent", resp_bizContent);
  1210. String resp_Content = JSON.toJSONString(resp_Map);
  1211. http_resp.setContentType("application/json;charset=utf-8");
  1212. http_resp.addHeader("Accept", "application/json;charset=utf-8");
  1213. http_resp.addHeader("Signature", resp_sign);
  1214. http_resp.addHeader("PartnerCode", "p_taiyuantianqin");
  1215. ServletOutputStream out = http_resp.getOutputStream();
  1216. out.write(resp_Content.getBytes("UTF-8"));
  1217. out.close();
  1218. }
  1219. private void geneErrorResponse(HttpServletResponse http_resp, ReqParamCBIT reqParam_cbit, String errorinfo) {
  1220. try {
  1221. CBITBaseparam baseParam = new CBITBaseparam();
  1222. baseParam.setRequestNo(reqParam_cbit.getBaseParam().getRequestNo());
  1223. ResponseCBIT resp = new ResponseCBIT("Z00004", errorinfo, baseParam);//Z00004 处理失败
  1224. String resp_str = JSON.toJSONString(resp);
  1225. System.out.println("加密前返回参数resp_bizContent=" + resp_str);
  1226. Map<String, String> encry = RSAUtils.encryptAndSign(resp_str, ZJPT_PUBLIC_KEY, HZHB_PRIVATE_KEY, "UTF-8", true, true);
  1227. String resp_bizContent = encry.get("CONTENT");//密文
  1228. System.out.println("加密后返回参数resp_bizContent=" + resp_bizContent);
  1229. String resp_sign = encry.get("SIGNATURE");//签名,放在请求头中
  1230. System.out.println("最终返回头中的签名resp_sign=" + resp_sign);
  1231. Map<String, String> resp_Map = new HashMap<>();
  1232. resp_Map.put("bizContent", resp_bizContent);
  1233. String resp_Content = JSON.toJSONString(resp_Map);
  1234. http_resp.setContentType("application/json;charset=utf-8");
  1235. http_resp.addHeader("Accept", "application/json;charset=utf-8");
  1236. http_resp.addHeader("Signature", resp_sign);
  1237. http_resp.addHeader("PartnerCode", "p_taiyuantianqin");
  1238. ServletOutputStream out = http_resp.getOutputStream();
  1239. out.write(resp_Content.getBytes("UTF-8"));
  1240. out.close();
  1241. } catch (Exception e) {
  1242. e.printStackTrace();
  1243. }
  1244. }
  1245. @PostMapping(value = "/testCBIT")
  1246. public void testjson() {
  1247. HttpResult httpResult = null;
  1248. System.out.println("--------------/testCBIT");
  1249. String resp_json = environment.getProperty("resp_json");
  1250. System.out.println("resp_json---" + resp_json);
  1251. ObjectMapper objectMapper = new ObjectMapper();
  1252. ObjectReader reader = objectMapper.readerFor(HttpResult.class);
  1253. try {
  1254. httpResult = reader.readValue(resp_json);
  1255. } catch (IOException e) {
  1256. httpResult = null;
  1257. logger.error("反序列化失败", e);
  1258. }
  1259. if (httpResult == null) {
  1260. logger.error("反序列化失败");
  1261. }
  1262. if (httpResult.getCode() != 200) {
  1263. logger.error("返回错误,错误信息:" + httpResult.getMsg());
  1264. } else {
  1265. AuditRespData auditRespData = JSON.parseObject(JSON.toJSONString(httpResult.getData()), AuditRespData.class);
  1266. System.out.println("111111111111111111");
  1267. }
  1268. }
  1269. private void insertCbitError(@RequestBody ReqParamCBIT reqParam_cbit, String api_url, String errorinfo) {
  1270. SysCbitError sysCbitError = new SysCbitError();
  1271. sysCbitError.setReqno(reqParam_cbit.getBaseParam().getRequestNo());
  1272. sysCbitError.setRequrl(api_url);
  1273. sysCbitError.setReqparam(JSON.toJSONString(reqParam_cbit));
  1274. sysCbitError.setErrorinfo(errorinfo);
  1275. sysCbitErrorService.insert(sysCbitError);
  1276. }
  1277. private void insertCbitLog(String url, String req_desc, String reqno, String req_json, String resp_json) {
  1278. SysCbitLog cbitLog = new SysCbitLog();
  1279. cbitLog.setReqNo(reqno);
  1280. cbitLog.setUsercode("");
  1281. // cbitLog.setUsercode(SecurityUtils.getUsername());
  1282. cbitLog.setReqUrl(url);
  1283. cbitLog.setDescription(req_desc);
  1284. cbitLog.setReqParam(req_json);
  1285. cbitLog.setResponse(resp_json);
  1286. cbitLog.setCreatetime(new Date());
  1287. sysCbitLogService.insert(cbitLog);
  1288. }
  1289. }