package com.ydtech.modules.ins.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.ydtech.core.page.BaseController; import com.ydtech.core.page.HttpResult; import com.ydtech.core.page.PageRequest; import com.ydtech.core.page.PageResult; import com.ydtech.modules.admin.model.SysUser; import com.ydtech.modules.esm.model.EsmAgreement; import com.ydtech.modules.esm.model.EsmAgreementProdfee; 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.*; import com.ydtech.modules.ins.service.*; import com.ydtech.modules.ins.vo.OrderPayVo; import com.ydtech.modules.ins.vo.OrderPaymentVo; import com.ydtech.modules.ins.vo.OrderVo; import com.ydtech.nai.httpvo.*; import com.ydtech.utils.HeadUtils; import com.ydtech.utils.HttpsPostUtil; import com.ydtech.utils.Base64Utils; import com.ydtech.utils.idgen.IdGenerate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; /** * @author qinfenglong * @version 1.0.0 * @description InsOrderController * @since 2020/12/16 9:22 */ @RestController @RequestMapping("/insOrder") public class InsOrderController extends BaseController { Logger logger = LoggerFactory.getLogger(InsOrderController.class); @Autowired Environment environment; @Autowired InsOrderService insOrderService; @Autowired InsFeeDetailService insFeeDetailService; @Autowired InsDeptFeeService insDeptFeeService; @Autowired InsCommissionService insCommissionService; @Autowired EsmAgreementProdfeeService esmAgreementProdfeeService; @Autowired EsmAgreementService esmAgreementService; @Autowired EsmRetailService esmRetailService; @Autowired EsmUserInternalService esmUserInternalService; @Autowired InsTaskHistoryService insTaskHistoryService; @Autowired InsOrderTaskService insOrderTaskService; @Autowired HuanongService huanongService; @Autowired HengbangService hengbangService; @Autowired InsTaskImageService insTaskImageService; @Autowired TiananAPIService tiananAPIService; /** * 基础分页查询 * * @param pageRequest * @return */ @PostMapping(value = "/findPage") public HttpResult findPage(@RequestBody PageRequest pageRequest) { int pageNum = pageRequest.getPageNum(); int pageSize = pageRequest.getPageSize(); //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭 String orderstatus = pageRequest.getColumnFilterValue(pageRequest, "orderstatus"); // 订单状态 String quotestatus = pageRequest.getColumnFilterValue(pageRequest, "quotestatus"); // 报价状态 String auditid = pageRequest.getColumnFilterValue(pageRequest, "auditid"); // 核保人员 String userid = pageRequest.getColumnFilterValue(pageRequest, "userid"); // 出单员 String deptid = pageRequest.getColumnFilterValue(pageRequest, "deptid"); // 所属机构 String startdate = pageRequest.getColumnFilterValue(pageRequest, "startdate"); // 开始时间 String enddate = pageRequest.getColumnFilterValue(pageRequest, "enddate"); // 截止时间 String policystartdate = pageRequest.getColumnFilterValue(pageRequest, "policystartdate"); // 开始时间 String policyenddate = pageRequest.getColumnFilterValue(pageRequest, "policyenddate"); // 截止时间 String frameNo = pageRequest.getColumnFilterValue(pageRequest, "frameNo"); // 车架号 String licenseNo = pageRequest.getColumnFilterValue(pageRequest, "licenseNo"); // 车牌号 String engineNo = pageRequest.getColumnFilterValue(pageRequest, "engineNo"); //发动机号 String quoteno = pageRequest.getColumnFilterValue(pageRequest, "quoteno"); // 报价单号 String orderno = pageRequest.getColumnFilterValue(pageRequest, "orderno"); // 报价单号 String username = pageRequest.getColumnFilterValue(pageRequest, "username"); // 代理人名称 String riskCode = pageRequest.getColumnFilterValue(pageRequest, "riskCode"); // 险种代码 String insurename = pageRequest.getColumnFilterValue(pageRequest, "insurename"); // 被保人 String inscompany = pageRequest.getColumnFilterValue(pageRequest, "inscompany"); // 保险公司 String editId = pageRequest.getColumnFilterValue(pageRequest, "editId"); // 工号 StringBuffer whereStr = new StringBuffer(" where 1=1"); ArrayList array = new ArrayList<>(); if (!StringUtils.isEmpty(orderstatus)) { if ("0".equals(orderstatus) && !StringUtils.isEmpty(userid) && !StringUtils.isEmpty(licenseNo)) { whereStr.append(" and exists (select 1 from v_order a where t.quoteno=a.quoteno and a.userid=? and a.licenseno=?)"); array.add(userid); array.add(licenseNo); } else if ("0".equals(orderstatus) && !StringUtils.isEmpty(userid) && !StringUtils.isEmpty(frameNo)) { whereStr.append(" and exists (select 1 from v_order a where t.quoteno=a.quoteno and a.userid=? and a.frameno=?)"); array.add(userid); array.add(frameNo); } else if ("0".equals(orderstatus)) { whereStr.append(" and exists (select 1 from v_order a where t.quoteno=a.quoteno)"); } else { whereStr.append(" and orderstatus=?"); array.add(orderstatus); } } if (!StringUtils.isEmpty(quotestatus)) { whereStr.append(" and quotestatus=?"); array.add(quotestatus); } if (!StringUtils.isEmpty(auditid)) { whereStr.append(" and auditid=?"); array.add(auditid); } if (!StringUtils.isEmpty(userid)) { whereStr.append(" and userid=?"); array.add(userid); } if (!StringUtils.isEmpty(username)) { whereStr.append(" and username=?"); array.add(username); } if (!StringUtils.isEmpty(quoteno)) { whereStr.append(" and quoteno=?"); array.add(quoteno); } if (!StringUtils.isEmpty(orderno)) { whereStr.append(" and orderno=?"); array.add(orderno); } if (!StringUtils.isEmpty(engineNo)) { whereStr.append(" and carinfo like ?"); array.add("%" + engineNo + "%"); } if (!StringUtils.isEmpty(licenseNo)) { whereStr.append(" and licenseno=?"); array.add(licenseNo); } if (!StringUtils.isEmpty(frameNo)) { whereStr.append(" and frameno=?"); array.add(frameNo); } if (editId != null && !editId.equals("admin")) { String dept = editId.substring(0, editId.indexOf("D")); whereStr.append(" and deptid like ?"); array.add(dept + "%"); } if (!StringUtils.isEmpty(deptid)) { whereStr.append(" and deptid like ?"); array.add(deptid + "%"); } if (!StringUtils.isEmpty(riskCode)) { whereStr.append(" and product = ?"); array.add(riskCode); } if (!StringUtils.isEmpty(insurename)) { whereStr.append(" and insureinfo like ?"); array.add("%" + insurename + "%"); } if (!StringUtils.isEmpty(inscompany)) { whereStr.append(" and inscompany=?"); array.add(inscompany); } if (!StringUtils.isEmpty(startdate)) { whereStr.append(" and DATE_FORMAT(createtime, '%Y-%m-%d') >= date ?"); array.add(startdate); } if (!StringUtils.isEmpty(enddate)) { whereStr.append(" and DATE_FORMAT(createtime, '%Y-%m-%d') <= date ?"); array.add(enddate); } if (!StringUtils.isEmpty(policystartdate) && !StringUtils.isEmpty(policyenddate)) { whereStr.append(" and (DATE_FORMAT(jqstartdate, '%Y-%m-%d') between date ? and date ? or DATE_FORMAT(systartdate, '%Y-%m-%d') between date ? and date ?)"); array.add(policystartdate); array.add(policyenddate); array.add(policystartdate); array.add(policyenddate); } whereStr.append(" order by t.createtime desc"); PageResult pageResult = insOrderService.selectPaging(pageNum, pageSize, whereStr.toString(), array.toArray()); return HttpResult.ok(pageResult); } /** * 查询订单详情 * * @param orderno * @return */ @GetMapping(value = "/queryOrder") public HttpResult queryOrder(@RequestParam String orderno) { InsOrder order = insOrderService.selectByPk(orderno); if (order == null) { return HttpResult.error("订单不存在"); } return HttpResult.ok(order); } /** * 获取缴费二维码 * * @return */ @GetMapping("/getPayCode") public HttpResult getPayCode(@RequestParam String orderno) { HttpResult httpResult = new HttpResult(); InsOrder order = insOrderService.selectByPk(orderno); if (order == null) { return HttpResult.error("订单不存在"); } String licenseno = order.getLicenseNo(); String carowner = order.getInsuredname(); String jqapplyno = order.getJqapplyno(); String syapplyno = order.getSyapplyno(); if ("华农财险".equals(order.getInscompany())) { huanongService.login(); huanongService.querySales(); httpResult = huanongService.queryOrder(licenseno, jqapplyno, syapplyno); } else if ("恒邦财险".equals(order.getInscompany())) { hengbangService.login(); hengbangService.querySales(); httpResult = hengbangService.queryOrder(licenseno, carowner, jqapplyno, syapplyno); } else if ("中煤财险".equals(order.getInscompany())) { StringBuffer whereStr = new StringBuffer(" where 1=1 "); ArrayList array = new ArrayList(); if (!StringUtils.isEmpty(orderno)) { whereStr.append(" and orderno=? "); array.add(orderno); } PayinfoVO payinfoVO = insOrderService.selectPayinfo(whereStr.toString(), array.toArray()); if (payinfoVO != null) { JSONObject reptxt = payinfoVO.getReptxt(); Map reptxtmap = reptxt; Object payUrl = reptxtmap.get("payUrl"); httpResult.setData(payUrl); httpResult.setCode(200); httpResult.setMsg(payUrl.toString()); return httpResult; } else { httpResult.setCode(300); httpResult.setMsg("未获取到二维码"); return httpResult; } } else if ("天安财险".equals(order.getInscompany())) { String url = environment.getProperty("netUrl"); httpResult.setData(url + "api/tianan/applyPay?orderno=" + orderno); } else { httpResult.setCode(300); httpResult.setMsg("该保险公司暂不支持缴费查询!"); } return httpResult; } /** * 获取缴费状态 * * @return */ @GetMapping("/queryPayStatus") public HttpResult queryPayStatus(@RequestParam String orderno) { HttpResult httpResult = new HttpResult(); String date = null; InsOrder order = insOrderService.selectByPk(orderno); if (order == null) { return HttpResult.error("订单不存在"); } String licenseno = order.getLicenseNo(); String carowner = order.getInsuredname(); if (order.getAudittime() != null && !order.getAudittime().equals("")) { date = order.getAudittime().substring(0, 10); } String jqapplyno = order.getJqapplyno(); String syapplyno = order.getSyapplyno(); if ("华农财险".equals(order.getInscompany())) { huanongService.login(); huanongService.querySales(); httpResult = huanongService.queryPayStatus(licenseno, date, jqapplyno, syapplyno); } else if ("恒邦财险".equals(order.getInscompany())) { hengbangService.login(); hengbangService.querySales(); httpResult = hengbangService.queryPayStatus(licenseno, carowner, date, jqapplyno, syapplyno); } else if ("中煤财险".equals(order.getInscompany())) { OrderStatusHeadVO record = new OrderStatusHeadVO(); String method = "OrderStatus"; String zmUrl = environment.getProperty("ZMUrl"); String url = zmUrl + method + ".do"; order = insOrderService.selectZMByPk(orderno); JSONObject reptxt = order.getReptxt(); Map reptxtmap = reptxt; Object orderNo = reptxtmap.get("orderNo"); record.setOrderNo(orderNo.toString()); HeadVO head = head(method); head.setToken(environment.getProperty("ZMToken")); record.setHead(head); String json = JSON.toJSONString(record); logger.info("queryPayStatus缴费确认接口入参" + json); String post = HttpsPostUtil.sendPost(url, json); if (post != null) { HeadMessage headMessage = HttpsPostUtil.HeadMessage(post); logger.info("queryPayStatus缴费确认接口返回结果:" + post); if (headMessage.getReturnCode().equals("0")) { JSONObject jsonObject = JSONObject.parseObject(post); Map map = jsonObject; String businessType = map.get("businessType").toString(); String SubContractNoJ = null;//交强保单号 String SubContractNoS = null;//商业保单号 String status = map.get("status").toString(); if ("2".equals(status)) { //当回调状态为承保成功时返回保单号,否则返回投保单号 SubContractNoJ = map.get("subContractNoJ").toString(); SubContractNoS = map.get("subContractNoS").toString(); order.setJqpolicyno(SubContractNoJ);//交强保单号 order.setSypolicyno(SubContractNoS);//商业保单号 order.setOrderstatus("7"); insOrderService.update(order); httpResult.setCode(200); httpResult.setMsg("已承保"); } else { httpResult.setCode(201); httpResult.setMsg("未缴费"); return httpResult; } } else { httpResult.setCode(201); httpResult.setMsg("获取订单信息失败!"); return httpResult; } } else { httpResult.setCode(300); httpResult.setMsg("该保险公司暂不支持缴费查询!"); } } return httpResult; } /** * 报价订单提交核保 * * @param orderno * @return */ @PostMapping(value = "/submitAudit") public HttpResult submitAudit(@RequestParam String orderno, @RequestParam String jqappoint, @RequestParam String syappoint) { SubmitHeadVO record = new SubmitHeadVO(); DeliveryInfoVO deliveryInfo = new DeliveryInfoVO(); InsOrder order = insOrderService.selectByPk(orderno); logger.error("报价订单提交核保入参" + orderno); if (order == null) { return HttpResult.error("订单不存在"); } String zmStatus = null; String inscompany = order.getInscompany(); String sp = null; // order.setOrderstatus("1"); //匹配任务接收人 String licenseno = order.getLicenseNo().substring(0, 2); List list = insOrderTaskService.selectList(" where t.status='1' and t.insname=? and t.licenseno=? and t.orderstatus=?", new Object[]{order.getInscompany(), licenseno, "1"}); if (list.size() > 0) { order.setAuditid(list.get(0).getAuditid()); order.setAuditname(list.get(0).getAuditname()); } //插入轨迹表 InsTaskHistory history = new InsTaskHistory(); history.setStatus("1"); history.setRemark("提交核保"); // order.setOrderstatus("1"); String product = order.getProduct(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if ("天安财险".equals(order.getInscompany())) { JSONObject result = tiananAPIService.insureApply(order); if ("1".equals(result.getString("dealFlag"))) { String busUnderWriteFlag = result.getString("busUnderWriteFlag"); //商业险核保状态 //1:核保通过 2:核保不通过 3:自动核保通过 6:承保确认 9:待人工审核 String bzUnderWriteFlag = result.getString("bzUnderWriteFlag"); //交强险核保状态 String busProposalNo = result.getString("busProposalNo"); //商业险投保单号 String bzProposalNo = result.getString("bzProposalNo"); if ("单交强".equals(product) && "3".equals(bzUnderWriteFlag)) { order.setOrderstatus("5"); order.setJqapplyno(bzProposalNo); order.setAuditid(null); order.setAuditname(null); history.setStatus("5"); history.setRemark("自动核保通过"); } else if ("单商业".equals(product) && "3".equals(busUnderWriteFlag)) { order.setOrderstatus("5"); order.setSyapplyno(busProposalNo); order.setAuditid(null); order.setAuditname(null); history.setStatus("5"); history.setRemark("自动核保通过"); } else if ("3".equals(busUnderWriteFlag)) { order.setOrderstatus("5"); order.setJqapplyno(bzProposalNo); order.setSyapplyno(busProposalNo); order.setAuditid(null); order.setAuditname(null); history.setStatus("5"); history.setRemark("自动核保通过"); } else if ("9".equals(busUnderWriteFlag)) { order.setOrderstatus("1"); //11 保司人工核保中 order.setJqapplyno(bzProposalNo); order.setSyapplyno(busProposalNo); order.setAuditid(null); order.setAuditname(null); history.setStatus("1"); history.setRemark("保司人工核保中"); } } else if (!StringUtils.isEmpty(result.getString("dealFlag"))) { return HttpResult.error(result.getString("dealMassage")); } else { JSONObject resultDTO = result.getJSONObject("resultDTO"); return HttpResult.error(resultDTO.getString("resultMess")); } } if (inscompany != null && inscompany.equals("中煤财险")) { if (order.getOrderstatus().equals("0")) { String underrules = "单交强,交强+三者,交强+商业,单三者,单商业,三者+交强,商业+交强"; // 根据,(逗号)进行分割 String[] split = underrules.split(","); for (int r = 0; r < split.length; r++) { sp = split[r]; if (sp != null && sp.equals(order.getProduct())) { //获取请求方法名称 InsOrder orders = insOrderService.selectZMByPk(orderno); //获取请求地址 String zmUrl = environment.getProperty("ZMUrl"); String CallbackUrl = environment.getProperty("CallbackUrl");//自动核保回调 String RGCallbackUrl = environment.getProperty("RGCallbackUrl");//人工核保回调 logger.error("获取自定义属性路径为:" + environment.getProperty("ZMUrl")); String url = zmUrl + "Submit.do"; logger.error("请求地址为:" + url); // record.setOrderNo("140000"); String name = null; String mobile = null; String addr = null; JSONObject reptxt = orders.getReptxt(); Map reptxtmap = reptxt; JSONObject reqtxt = orders.getReqtxt(); Map reqtxtmap = reqtxt; Object businessData = reqtxtmap.get("businessData"); JSONObject businessDataObject = JSONObject.parseObject(businessData.toString()); Map ownerInfomap = businessDataObject; Object customer = ownerInfomap.get("customer"); JSONArray customerObject = JSONObject.parseArray(customer.toString()); for (int i = 0; i < customerObject.size(); i++) { JSONObject customerList = customerObject.getJSONObject(i); String role = customerList.getString("role"); if (role != null && role.equals("1")) { if (customerList.getString("name") != null && !customerList.getString("name").equals("")) { name = customerList.getString("name"); mobile = customerList.getString("mobile"); addr = customerList.getString("addr"); } } } Object orderNo = reptxtmap.get("orderNo"); Object vin = reptxtmap.get("vin"); String method = "Submit"; record.setOrderNo(orderNo.toString()); record.setVIN(vin.toString()); deliveryInfo.setName(name); deliveryInfo.setMobile(mobile); deliveryInfo.setProvince("140000"); deliveryInfo.setCity("140400"); deliveryInfo.setDistrict("140431"); deliveryInfo.setDetail(addr); record.setPageUrl("**************"); record.setCallbackUrl(CallbackUrl); record.setPassMsgUrl(RGCallbackUrl); record.setBusSrePcMAC("12-E1-AD-45-A2-65"); record.setBusSrePcIP("47.92.254.66"); //参数组装 HeadVO head = head(method); head.setToken(environment.getProperty("ZMToken")); record.setHead(head); record.setDeliveryInfo(deliveryInfo); String json = JSON.toJSONString(record); logger.error("提交核保请求参数为:" + json); String post = HttpsPostUtil.sendPost(url, json); HeadMessage headMessages = HttpsPostUtil.HeadMessage(post); String returnCodes = headMessages.getReturnCode(); logger.error("==========提交核保接口返回===========" + post); String proposalNo = null; if (returnCodes != null) { JSONObject proposalNojson = JSONObject.parseObject(post); if (proposalNojson.get("proposalNo") != null && !proposalNojson.get("proposalNo").toString().equals("")) { proposalNo = proposalNojson.get("proposalNo").toString(); logger.error("获取到的主单号proposalNo为" + proposalNo); } HeadMessage headMessage = HttpsPostUtil.HeadMessage(post); String returnCode = headMessage.getReturnCode(); Object forceProposalNo = null; Object bizProposalNo = null; if (proposalNojson.get("forceProposalNo") != null && !proposalNojson.get("forceProposalNo").equals("")) { forceProposalNo = proposalNojson.get("forceProposalNo"); } if (proposalNojson.get("bizProposalNo") != null && !proposalNojson.get("bizProposalNo").equals("")) { bizProposalNo = proposalNojson.get("bizProposalNo"); } if (forceProposalNo != null && !forceProposalNo.equals("")) { order.setJqapplyno(forceProposalNo.toString());//交强险投保单号 } if (bizProposalNo != null && !bizProposalNo.equals("")) { order.setSyapplyno(bizProposalNo.toString());//商业险投保单号 } if (proposalNo == null || proposalNo.equals("")) { logger.info("核保不成功,未获取到订单号"); return HttpResult.error(202, headMessages.getReturnMessage()); } SubmitStatusQueryHeadVO su = new SubmitStatusQueryHeadVO(); su.setProposalNo(proposalNo); head = head("SubmitStatusQuery"); su.setHead(head); url = zmUrl + "SubmitStatus" + ".do"; logger.error("投保单核保状态查询请求地址" + url); su.setOrderNo(orderNo.toString()); json = JSON.toJSONString(su); logger.error("投保单核保状态查询请求参数=" + json); post = HttpsPostUtil.sendPost(url, json); logger.error("投保单核保状态查询返回=" + post); headMessages = HttpsPostUtil.HeadMessage(post); returnCodes = headMessages.getReturnCode(); if (returnCodes != null) { logger.info("保存订单号的投保单号" + orderno); JSONObject reqtext = JSONObject.parseObject(json); PayinfoVO payinfoVO = new PayinfoVO(); logger.info("保存订单号的投保单号" + orderno); insOrderService.update(order); JSONObject jsonObject = JSONObject.parseObject(post); Map Status = jsonObject; //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭 //初始状态/核保通过/核保不通过/自动核保/拒保/复核通过/承保确认/复核不通过/待复核/待核保 String underWriteInd = Status.get("underWriteInd").toString(); String orderstatus = null; if (underWriteInd != null && !underWriteInd.equals("")) { payinfoVO.setReptxt(proposalNojson); payinfoVO.setReqtxt(reqtext); payinfoVO.setOrderno(orderno); payinfoVO.getOrderno(); payinfoVO.setOrderno(orderno); payinfoVO.setPolicyNo(proposalNo); if (underWriteInd.equals("初始状态")) { orderstatus = "1"; zmStatus = "1"; } else if (underWriteInd.equals("核保通过")) { orderstatus = "5"; zmStatus = "5"; } else if (underWriteInd.equals("核保不通过")) { orderstatus = "1"; zmStatus = "4"; }/*else if(underWriteInd.equals("自动核保")){ orderstatus="4"; }*/ else if (underWriteInd.equals("拒保")) { orderstatus = "99"; zmStatus = "99"; } else if (underWriteInd.equals("复核通过")) { orderstatus = "1"; zmStatus = "5"; } else if (underWriteInd.equals("承保确认")) { orderstatus = "1"; zmStatus = "1"; } else if (underWriteInd.equals("复核不通过")) { orderstatus = "99"; zmStatus = "99"; } else if (underWriteInd.equals("待复核")) { orderstatus = "1"; zmStatus = "1"; } else if (underWriteInd.equals("待核保")) { orderstatus = "1"; zmStatus = "1"; } else if (underWriteInd.equals("自动核保")) { zmStatus = "5"; } PayinfoVO payinfo = insOrderService.selectPayinfo(" where orderno=?", new Object[]{order.getOrderno()}); if (payinfo == null) { insOrderService.insertPayinfo(payinfoVO); } else { insOrderService.updatePayinfo(payinfoVO); } order.setOrderno(orderno); order.setOrderstatus(orderstatus); //图片上传 Integer result = 0; NodeBeanlistVO nodeBean = new NodeBeanlistVO(); List nodeBeanList = new ArrayList<>(); UploadImageHeadVO uploadHead = new UploadImageHeadVO(); List imgList = new ArrayList<>(); String whereStr = ""; ArrayList arrayList = new ArrayList(); whereStr = " where taskid=?"; arrayList.add(orderno); List reimgList = insTaskImageService.selectList(whereStr.toString(), arrayList.toArray()); if (reimgList != null && reimgList.size() > 0) { for (int i = 0; i < reimgList.size(); i++) { ImageBeanListVO imgVO = new ImageBeanListVO(); InsTaskImage reimg = reimgList.get(i); if (reimg != null) { logger.error("reimg=" + reimg.getTaskid()); if (reimg.getTaskid() == null || reimg.getTaskid().equalsIgnoreCase("")) { return HttpResult.ok("任务号taskid不能为空", result); } if (reimg.getImgtype() == null || reimg.getImgtype().equalsIgnoreCase("")) { return HttpResult.ok("图片类型imgtype不能为空", result); } reimg.setId(IdGenerate.nextId()); nodeBean.setId(reimg.getId()); String fileType = Base64Utils.checkImageBase64Format(reimg.getImage()); reimg.setCreator(getUserName()); imgVO.setFileName(HeadUtils.get16UUID() + "." + fileType); reimg.setCreatetime(new Date()); // 通过base64来转化图片 String data = reimg.getImage().substring(reimg.getImage().indexOf(",") + 1); imgVO.setImage(data); if (reimg.getImgtype() != null && reimg.getImgtype().equals("C01")) { nodeBean.setId("UW_0305"); } else if (reimg.getImgtype() != null && reimg.getImgtype().equals("C03")) { nodeBean.setId("UW_0302"); } else if (reimg.getImgtype() != null && reimg.getImgtype().equals("C05")) { nodeBean.setId("UW_0301"); } else { nodeBean.setId("UW_0301"); } if (reimg.getImgtype() != null && reimg.getImgtype().equals("C01")) { nodeBean.setId("UW_0305"); } else if (reimg.getImgtype() != null && reimg.getImgtype().equals("C03")) { nodeBean.setId("UW_0302"); } else if (reimg.getImgtype() != null && reimg.getImgtype().equals("C05")) { nodeBean.setId("UW_0301"); } } imgList.add(imgVO); nodeBean.setImageBeanList(imgList); } method = "UploadImage"; zmUrl = environment.getProperty("ZMIMGUrl"); url = zmUrl + method + ".do"; HeadVO heads = head(method); nodeBeanList.add(nodeBean); uploadHead.setHead(heads); uploadHead.setContractNo(su.getProposalNo()); uploadHead.setNodeBeanlist(nodeBeanList); String jsons = JSON.toJSONString(uploadHead); String postimg = HttpsPostUtil.sendPost(url, jsons); logger.info("图片信息上传返回" + postimg); } } } } else { return HttpResult.error(202, headMessages.getReturnMessage()); } } } } else { return HttpResult.error("请不要重复提交核保操作"); } } if (zmStatus != null && zmStatus.equals("5")) { order.setOrderstatus(zmStatus); } else if (zmStatus != null && !zmStatus.equals("5")) { order.setOrderstatus("1"); } order.setSubmittime(sdf.format(new Date())); if (zmStatus != null && zmStatus.equals("5")) { order.setJqappoint(jqappoint); //交强特别约定 order.setSyappoint(syappoint); //商业特别约定 } order.setSubmittime(sdf.format(new Date())); order.setJqappoint(jqappoint); //交强特别约定 order.setSyappoint(syappoint); //商业特别约定 insOrderService.update(order); 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())); if (inscompany != null && inscompany.equals("中煤财险")) { if (zmStatus != null && zmStatus.equals("5")) { history.setId(String.valueOf(new Date().getTime() + 10000)); history.setStatus("2"); history.setRemark("已核保"); insTaskHistoryService.insert(history); history.setId(String.valueOf(new Date().getTime() + 20000)); history.setStatus(zmStatus); history.setRemark("已核保待缴费"); } else if (zmStatus != null && !zmStatus.equals("5")) { history.setId(String.valueOf(new Date().getTime() + 10000)); history.setStatus("1"); history.setRemark("已核保"); insTaskHistoryService.insert(history); history.setRemark("人工核保"); history.setId(String.valueOf(new Date().getTime() + 20000)); } else { history.setStatus("1"); history.setRemark("提交核保"); } } insTaskHistoryService.insert(history); if (history.getRemark().equals("人工核保")) { return HttpResult.ok("核保未通过,请人工核保"); } return HttpResult.ok("提交成功"); } /** * 更新订单信息 * * @param insOrder * @return */ @PostMapping(value = "/updateOrder") public HttpResult updateOrder(@RequestBody InsOrder insOrder) { InsOrder order = insOrderService.selectByPk(insOrder.getOrderno()); if (order == null) { return HttpResult.error("订单不存在"); } insOrderService.update(insOrder); return HttpResult.ok("修改成功"); } /** * 新增订单信息 * * @param insOrder * @return */ @PostMapping(value = "/addOrder") public HttpResult addOrder(@RequestBody InsOrder insOrder) { HttpResult httpResult = new HttpResult(); // InsOrder insOrder = new InsOrder(); // BeanUtils.copyProperties(insOrderVO, insOrder); List agreements = esmAgreementService.selectList(" where t.agreestatus='1' and t.id = ? " + "and exists (select 1 from esm_agreement_prod t2 where t.id=t2.agreeid and t2.authcomcode like ?)", new Object[]{insOrder.getAgreeid(), "%" + insOrder.getDeptid() + "%"}); if (agreements.size() == 0) { httpResult.setCode(1000); httpResult.setMsg("不存在有效协议或机构" + insOrder.getDeptid() + "未授权"); return httpResult; } String orderno = IdGenerate.nextId(); String quoteno = String.valueOf(new Date().getTime()); insOrder.setOrderno(orderno); insOrder.setQuoteno(quoteno); insOrder.setOrderstatus("7"); insOrder.setQuotestatus("1"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); insOrder.setCreatetime(sdf.format(new Date())); insOrder.setSubmittime(sdf.format(new Date())); insOrder.setAudittime(sdf.format(new Date())); insOrderService.insert(insOrder); //保存费用信息 saveFeeDetail(insOrder); //插入轨迹表 InsTaskHistory history = new InsTaskHistory(); history.setId(String.valueOf(new Date().getTime())); history.setCompany(insOrder.getInscompany()); history.setTaskid(insOrder.getOrderno()); history.setOperatorid(insOrder.getAuditid()); history.setOperator(insOrder.getAuditname()); history.setCreatetime(sdf.format(new Date())); history.setStatus("7"); history.setRemark("手工录单"); insTaskHistoryService.insert(history); return HttpResult.ok("保存成功"); } /** * 指定核保人 * * @param ordernos * @return */ @PostMapping(value = "/saveUser") public HttpResult saveUser(@RequestParam String ordernos, @RequestParam String operatorid, @RequestParam String auditid, @RequestParam String auditname) { String[] list = ordernos.split(","); for (String orderNo : list) { InsOrder order = insOrderService.selectByPk(orderNo); if (order == null) { return HttpResult.error("订单不存在"); } //插入轨迹表 InsTaskHistory history = new InsTaskHistory(); history.setId(String.valueOf(new Date().getTime())); history.setCompany(order.getInscompany()); history.setTaskid(order.getOrderno()); history.setOperatorid(operatorid); history.setOperator(getUserName()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); history.setCreatetime(sdf.format(new Date())); history.setStatus(order.getOrderstatus()); history.setRemark("任务转发给:" + auditname); insTaskHistoryService.insert(history); order.setAuditid(auditid); order.setAuditname(auditname); insOrderService.update(order); } return HttpResult.ok("保存成功"); } /** * 核保审核 * * @param orderVo * @return */ @PostMapping(value = "/saveAudit") public HttpResult saveAudit(@RequestBody OrderVo orderVo) { HttpResult httpResult = new HttpResult(); InsOrder order = insOrderService.selectByPk(orderVo.getOrderno()); if (order == null) { return HttpResult.error("订单不存在"); } if ("5".equals(orderVo.getOrderstatus())) { if (StringUtils.isEmpty(orderVo.getJqapplyno()) && StringUtils.isEmpty(orderVo.getSyapplyno())) { return HttpResult.error("投保为空单号不能"); } String whereStr = ""; ArrayList arrayList = new ArrayList<>(); if (!StringUtils.isEmpty(orderVo.getJqapplyno()) && StringUtils.isEmpty(orderVo.getSyapplyno())) { whereStr = " where (jqapplyno in (?) or syapplyno in (?)) and orderstatus<>'99'"; arrayList.add(orderVo.getJqapplyno()); arrayList.add(orderVo.getJqapplyno()); } else if (StringUtils.isEmpty(orderVo.getJqapplyno()) && !StringUtils.isEmpty(orderVo.getSyapplyno())) { whereStr = " where (jqapplyno in (?) or syapplyno in (?)) and orderstatus<>'99'"; arrayList.add(orderVo.getSyapplyno()); arrayList.add(orderVo.getSyapplyno()); } else { whereStr = " where (jqapplyno in (?,?) or syapplyno in (?,?)) and orderstatus<>'99'"; arrayList.add(orderVo.getJqapplyno()); arrayList.add(orderVo.getSyapplyno()); arrayList.add(orderVo.getJqapplyno()); arrayList.add(orderVo.getSyapplyno()); } List list = insOrderService.selectList(whereStr, arrayList.toArray()); if (list != null && list.size() > 0) { return HttpResult.error("投保单号已存在!"); } //判断投保单号是否存在 String applyNos = ""; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String date = format.format(new Date()); // String date = "2021-04-12"; String licenseno = order.getLicenseNo(); String carowner = order.getInsuredname(); if ("华农财险".equals(order.getInscompany())) { huanongService.login(); huanongService.querySales(); applyNos = huanongService.queryApplyno(licenseno, date); } else if ("恒邦财险".equals(order.getInscompany())) { hengbangService.login(); hengbangService.querySales(); applyNos = hengbangService.queryApplyno(licenseno, carowner, date); } if (applyNos.length() == 0) { httpResult.setCode(201); httpResult.setMsg("通过车牌号获取保险公司订单信息失败!"); return httpResult; } String[] array = applyNos.split(","); boolean flag = false; for (String applyNo : array) { if (applyNo.equals(orderVo.getJqapplyno()) || applyNo.equals(orderVo.getSyapplyno())) { flag = true; break; } } if (!flag) { httpResult.setCode(202); httpResult.setMsg("输入投保单号不正确!保险公司返回投保单号为 " + applyNos); return httpResult; } } //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭 order.setOrderstatus(orderVo.getOrderstatus()); order.setAuditopinion(orderVo.getAuditopinion()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); order.setAudittime(sdf.format(new Date())); order.setOrderstatus(orderVo.getOrderstatus()); order.setJqapplyno(orderVo.getJqapplyno()); order.setSyapplyno(orderVo.getSyapplyno()); insOrderService.update(order); //插入轨迹表 InsTaskHistory history = new InsTaskHistory(); history.setId(String.valueOf(new Date().getTime())); history.setCompany(order.getInscompany()); history.setTaskid(order.getOrderno()); history.setOperatorid(order.getAuditid()); history.setOperator(order.getAuditname()); history.setCreatetime(sdf.format(new Date())); history.setStatus(orderVo.getOrderstatus()); history.setRemark("核保审核"); insTaskHistoryService.insert(history); return HttpResult.ok("保存成功"); } /** * 保存支付方式 * * @param orderVo * @return */ @PostMapping(value = "/savePayType") public HttpResult savePayType(@RequestBody OrderPayVo orderVo) { InsOrder order = insOrderService.selectByPk(orderVo.getOrderno()); if (order == null) { return HttpResult.error("订单不存在"); } //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭 order.setOrderstatus("5"); order.setPaytype(orderVo.getPaytype()); order.setPolicytype(orderVo.getPolicytype()); order.setMailtype(orderVo.getMailtype()); order.setMailaddress(orderVo.getMailaddress()); order.setBilltype(orderVo.getBilltype()); order.setReceiptname(orderVo.getReceiptname()); order.setReceiptphone(orderVo.getReceiptphone()); //匹配任务接收人 String licenseno = order.getLicenseNo().substring(0, 2); List list = insOrderTaskService.selectList(" where t.status='1' and t.insname=? and t.licenseno=? and t.orderstatus=?", new Object[]{order.getInscompany(), licenseno, "5"}); if (list.size() > 0) { order.setAuditid(list.get(0).getAuditid()); order.setAuditname(list.get(0).getAuditname()); } else { order.setAuditid(""); order.setAuditname(""); } insOrderService.update(order); //插入轨迹表 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()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); history.setCreatetime(sdf.format(new Date())); history.setStatus("5"); history.setRemark("保存支付方式"); insTaskHistoryService.insert(history); return HttpResult.ok("保存成功"); } /** * 缴费确认 * * @param orderVo * @return */ @PostMapping(value = "/savePayment") public HttpResult savePayment(@RequestBody OrderPaymentVo orderVo) { HttpResult httpResult = new HttpResult(); InsOrder order = insOrderService.selectByPk(orderVo.getOrderno()); if (order == null) { return HttpResult.error("订单不存在"); } if ("中煤财险".equals(order.getInscompany())) { OrderStatusHeadVO record = new OrderStatusHeadVO(); String method = "OrderStatus"; String zmUrl = environment.getProperty("ZMUrl"); String url = zmUrl + method + ".do"; order = insOrderService.selectZMByPk(order.getOrderno()); JSONObject reptxt = order.getReptxt(); Map reptxtmap = reptxt; Object orderNo = reptxtmap.get("orderNo"); record.setOrderNo(orderNo.toString()); HeadVO head = head(method); head.setToken(environment.getProperty("ZMToken")); record.setHead(head); String json = JSON.toJSONString(record); logger.info("缴费确认接口入参" + json); String post = HttpsPostUtil.sendPost(url, json); if (post != null) { HeadMessage headMessage = HttpsPostUtil.HeadMessage(post); logger.info("缴费确认接口返回结果:" + post); if (headMessage.getReturnCode().equals("0")) { JSONObject jsonObject = JSONObject.parseObject(post); Map map = jsonObject; String businessType = map.get("businessType").toString(); String SubContractNoJ = null;//交强保单号 String SubContractNoS = null;//商业保单号 //当回调状态为承保成功时返回保单号,否则返回投保单号 String status = map.get("status").toString(); if (status != null && status.equals("2") && order.getPaytime() != null) { if (map.get("SubContractNoJ") != null && !map.get("SubContractNoJ").equals("")) { SubContractNoJ = map.get("SubContractNoJ").toString(); SubContractNoS = map.get("SubContractNoJ").toString(); } if (businessType != null && businessType.equals("P")) { order.setJqpolicyno(SubContractNoJ);//交强保单号 order.setSypolicyno(SubContractNoS);//商业保单号 insOrderService.update(order); } else { return HttpResult.error(201, "未缴费"); } } else { return HttpResult.error(201, "未缴费"); } } else { return HttpResult.error(201, "通过车牌号获取中煤订单信息失败!"); } } else { httpResult.setCode(300); httpResult.setMsg("该保险公司暂不支持缴费查询!"); } } //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭 order.setOrderstatus("6"); order.setFeemodel(orderVo.getFeemodel()); order.setPaymenttype(orderVo.getPaymenttype()); order.setJqpayamount(orderVo.getJqpayamount()); order.setSypayamount(orderVo.getSypayamount()); order.setTaxpayamount(orderVo.getTaxpayamount()); order.setCommissionflag(orderVo.getCommissionflag()); order.setFeeflag(orderVo.getFeeflag()); String auditname = order.getAuditname(); String auditid = order.getAuditid(); //匹配任务接收人 String licenseno = order.getLicenseNo().substring(0, 2); List list = insOrderTaskService.selectList(" where t.status='1' and t.insname=? and t.licenseno=? and t.orderstatus=?", new Object[]{order.getInscompany(), licenseno, "7"}); if (list.size() > 0) { order.setAuditid(list.get(0).getAuditid()); order.setAuditname(list.get(0).getAuditname()); } else { order.setAuditid(""); order.setAuditname(""); } insOrderService.update(order); //插入轨迹表 InsTaskHistory history = new InsTaskHistory(); history.setId(String.valueOf(new Date().getTime())); history.setCompany(order.getInscompany()); history.setTaskid(order.getOrderno()); history.setOperatorid(auditid); history.setOperator(auditname); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); history.setCreatetime(sdf.format(new Date())); history.setStatus("6"); history.setRemark("缴费确认"); insTaskHistoryService.insert(history); return HttpResult.ok("保存成功"); } /** * 承保确认 * * @param orderVo * @return */ @PostMapping(value = "/savePolicy") public HttpResult savePolicy(@RequestBody OrderVo orderVo) { InsOrder order = insOrderService.selectByPk(orderVo.getOrderno()); if (order == null) { return HttpResult.error("订单不存在"); } //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭 order.setOrderstatus("7"); order.setCouriercompany(orderVo.getCouriercompany()); order.setCourierno(orderVo.getCourierno()); order.setJqpolicyno(orderVo.getJqpolicyno()); order.setSypolicyno(orderVo.getSypolicyno()); order.setDirid(orderVo.getDirid()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); order.setAudittime(sdf.format(new Date())); //承保确认时间 insOrderService.update(order); //保存费用信息 saveFeeDetail(order); //插入轨迹表 InsTaskHistory history = new InsTaskHistory(); history.setId(String.valueOf(new Date().getTime())); history.setCompany(order.getInscompany()); history.setTaskid(order.getOrderno()); history.setOperatorid(order.getAuditid()); history.setOperator(order.getAuditname()); history.setCreatetime(sdf.format(new Date())); history.setStatus("7"); history.setRemark("承保确认"); insTaskHistoryService.insert(history); return HttpResult.ok("保存成功"); } /** * 保存费用明细 * * @param order */ public void saveFeeDetail(InsOrder order) { InsFeeDetail feeDetail = new InsFeeDetail(); feeDetail.setOrderno(order.getOrderno()); feeDetail.setQuoteno(order.getQuoteno()); feeDetail.setFeerate(order.getFeerate()); //交强手续费比例 feeDetail.setDisrate(order.getDisrate()); //商业手续费比例 BigDecimal jqfee = new BigDecimal(order.getJqpremium() * order.getFeerate() * 0.01); jqfee = jqfee.setScale(2, BigDecimal.ROUND_HALF_UP); feeDetail.setFeeamount(jqfee.doubleValue()); //交强手续费 BigDecimal syfee = new BigDecimal(order.getSypremium() * order.getDisrate() * 0.01); syfee = syfee.setScale(2, BigDecimal.ROUND_HALF_UP); feeDetail.setDisamount(syfee.doubleValue()); //商业手续费 feeDetail.setJqdiscountrate(order.getJqdiscountrate()); feeDetail.setSydiscountrate(order.getSydiscountrate()); BigDecimal jqDiscount = new BigDecimal(order.getJqpremium() * order.getJqdiscountrate() * 0.01); jqDiscount = jqDiscount.setScale(2, BigDecimal.ROUND_HALF_UP); feeDetail.setJqdiscount(jqDiscount.doubleValue()); //交强优惠金额 BigDecimal syDiscount = new BigDecimal(order.getSypremium() * order.getSydiscountrate() * 0.01); syDiscount = syDiscount.setScale(2, BigDecimal.ROUND_HALF_UP); feeDetail.setSydiscount(syDiscount.doubleValue()); //商业优惠金额 feeDetail.setJqpremium(order.getJqpremium()); feeDetail.setSypremium(order.getSypremium()); feeDetail.setTaxamount(order.getTaxamount()); feeDetail.setSumpremium(order.getSumpremium()); feeDetail.setInscompany(order.getInscompany()); feeDetail.setAgreeid(order.getAgreeid()); feeDetail.setAgreeprodid(order.getProductid()); EsmAgreement esmAgreement = esmAgreementService.selectByPk(order.getAgreeid()); if (esmAgreement != null) { feeDetail.setAgreementcode(esmAgreement.getAgreementcode()); feeDetail.setAgreetype(esmAgreement.getAgreementtype()); feeDetail.setChannel(esmAgreement.getChannel()); } feeDetail.setProducname(order.getProduct()); feeDetail.setAuditstatus("0"); //0未审核 1已审核 Integer insFeeDetail = insFeeDetailService.count(" where orderno=? ", new Object[]{feeDetail.getOrderno()}); if (insFeeDetail > 0) { Integer fel = insFeeDetailService.delete(order.getOrderno()); } else { insFeeDetailService.insert(feeDetail); } //机构费用 InsDeptFee deptFee = new InsDeptFee(); deptFee.setOrderno(order.getOrderno()); deptFee.setQuoteno(order.getQuoteno()); deptFee.setAgreeid(order.getAgreeid()); deptFee.setAgreeprodid(order.getProductid()); deptFee.setAuditstatus("0"); deptFee.setSettlestatus("0"); Integer insDeptFee = insDeptFeeService.count(" where orderno=? ", new Object[]{deptFee.getOrderno()}); if (insDeptFee > 0) { Integer fiel = insDeptFeeService.delete(deptFee.getOrderno()); } List prodfees = esmAgreementProdfeeService.selectList(" where agreeprodid=?", new Object[]{order.getProductid()}); for (EsmAgreementProdfee prodfee : prodfees) { deptFee.setKeeprate(prodfee.getKeeprate() * 0.01); BigDecimal amount = new BigDecimal((order.getJqpremium() + order.getSypremium()) * prodfee.getKeeprate() * 0.01); amount = amount.setScale(2, BigDecimal.ROUND_HALF_UP); deptFee.setKeepamount(amount.doubleValue()); deptFee.setAddrate(prodfee.getAddrate() * 0.01); amount = new BigDecimal((order.getJqpremium() + order.getSypremium()) * prodfee.getAddrate() * 0.01); amount = amount.setScale(2, BigDecimal.ROUND_HALF_UP); deptFee.setAddamount(amount.doubleValue()); deptFee.setComlevel(prodfee.getComlevel()); if ("一级".equals(prodfee.getComlevel())) { deptFee.setComcode(order.getDeptid().substring(0, 2)); //99140302M01D01 } else if ("二级".equals(prodfee.getComlevel())) { deptFee.setComcode(order.getDeptid().substring(0, 4)); } else if ("三级".equals(prodfee.getComlevel())) { deptFee.setComcode(order.getDeptid().substring(0, 6)); } else if ("四级".equals(prodfee.getComlevel())) { deptFee.setComcode(order.getDeptid().substring(0, 8)); } else { deptFee.setComcode(order.getDeptid().substring(0, 11)); } insDeptFeeService.insert(deptFee); } saveRetail(order); //分销所占比例 } /** * 三级分销费用保存 * * @param order * @return */ public double saveRetail(InsOrder order) { double retailRate = 0; //1、根据机构匹配分销规则,获取分销比例 List list = esmRetailService.selectList(" where deptid = ? and status=?", new Object[]{order.getDeptid(), "1"}); //2、根据userid查询三级推荐人 List users = esmUserInternalService.getSuperior(order.getUserid()); if (list != null && list.size() > 0 && users.size() > 0 && !"0".equals(list.get(0).getRetailtype())) { EsmRetail retail = list.get(0); List rateList = new ArrayList(); rateList.add(retail.getDisrate1()); rateList.add(retail.getDisrate2()); rateList.add(retail.getDisrate3()); Integer count = insCommissionService.count(" where orderno=? ", new Object[]{order.getOrderno()}); if (count > 0) { Integer comm = insCommissionService.delete(order.getOrderno()); } if ("1".equals(retail.getRetailtype())) {//一级分销 InsCommission commission = new InsCommission(); commission.setOrderno(order.getOrderno()); commission.setQuoteno(order.getQuoteno()); commission.setRefereescode(users.get(0).getId()); commission.setRefereesname(users.get(0).getName()); double rate = rateList.get(0) * 0.01; commission.setCommissionrate(rate); BigDecimal amount = new BigDecimal((order.getJqpremium() + order.getSypremium()) * rate); amount = amount.setScale(2, BigDecimal.ROUND_HALF_UP); commission.setCommissionamount(amount.doubleValue()); commission.setLevel("1"); commission.setAuditstatus("0"); //0未审核 1已审核 commission.setSettlestatus("0"); //0未结算 1已结算 commission.setInsuredtime(order.getAudittime()); //承保确认时间 insCommissionService.insert(commission); retailRate += rateList.get(0); } else if ("2".equals(retail.getRetailtype())) {//二级分销 int num = users.size() > 2 ? 2 : users.size(); for (int i = 0; i < num; i++) { InsCommission commission = new InsCommission(); commission.setOrderno(order.getOrderno()); commission.setQuoteno(order.getQuoteno()); commission.setRefereescode(users.get(i).getId()); commission.setRefereesname(users.get(i).getName()); double rate = rateList.get(i) * 0.01; commission.setCommissionrate(rate); BigDecimal amount = new BigDecimal((order.getJqpremium() + order.getSypremium()) * rate); amount = amount.setScale(2, BigDecimal.ROUND_HALF_UP); commission.setCommissionamount(amount.doubleValue()); commission.setLevel(String.valueOf(i + 1)); commission.setAuditstatus("0"); //0未审核 1已审核 commission.setSettlestatus("0"); //0未结算 1已结算 commission.setInsuredtime(order.getAudittime()); //承保确认时间 insCommissionService.insert(commission); retailRate += rateList.get(i); } } else {//三级分销 int num = users.size() > 2 ? 3 : users.size(); for (int i = 0; i < num; i++) { InsCommission commission = new InsCommission(); commission.setOrderno(order.getOrderno()); commission.setQuoteno(order.getQuoteno()); commission.setRefereescode(users.get(i).getId()); commission.setRefereesname(users.get(i).getName()); double rate = rateList.get(i) * 0.01; commission.setCommissionrate(rate); BigDecimal amount = new BigDecimal((order.getJqpremium() + order.getSypremium()) * rate); amount = amount.setScale(2, BigDecimal.ROUND_HALF_UP); commission.setCommissionamount(amount.doubleValue()); commission.setLevel(String.valueOf(i + 1)); commission.setAuditstatus("0"); //0未审核 1已审核 commission.setSettlestatus("0"); //0未结算 1已结算 commission.setInsuredtime(order.getAudittime()); //承保确认时间 insCommissionService.insert(commission); retailRate += rateList.get(i); } } } return retailRate; } /** * 根据报价单号关闭订单 * * @param quoteno * @return */ @PostMapping(value = "/closeOrder") public HttpResult closeOrder(@RequestParam String quoteno) { //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭 insOrderService.closeOrder(quoteno, "99"); return HttpResult.ok("保存成功"); } /** * 查询订单历史轨迹 * * @param orderno * @return */ @PostMapping(value = "/queryOrderHistory") public HttpResult> queryOrderHistory(@RequestParam String orderno) { HttpResult> result = new HttpResult<>(); List list = insTaskHistoryService.selectList(" where t.taskid=? order by createtime", new Object[]{orderno}); result.setData(list); return result; } public HeadVO head(String methodName) { HeadVO headVO = new HeadVO(); headVO.setTransCode(methodName); headVO.setTransType("Req"); //测试 // headVO.setToken("THIRDSCOuloft2020052818346904zmYBSX"); //生产 headVO.setToken(environment.getProperty("ZMToken")); headVO.setSource("326"); return headVO; } }