| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458 |
- 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<String> 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<String> array = new ArrayList<String>();
- 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<String, Object> 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<String, Object> 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<String, Object> 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<InsOrderTask> 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<String, Object> reptxtmap = reptxt;
- JSONObject reqtxt = orders.getReqtxt();
- Map<String, Object> reqtxtmap = reqtxt;
- Object businessData = reqtxtmap.get("businessData");
- JSONObject businessDataObject = JSONObject.parseObject(businessData.toString());
- Map<String, Object> 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<String, Object> 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<NodeBeanlistVO> nodeBeanList = new ArrayList<>();
- UploadImageHeadVO uploadHead = new UploadImageHeadVO();
- List<ImageBeanListVO> imgList = new ArrayList<>();
- String whereStr = "";
- ArrayList<String> arrayList = new ArrayList<String>();
- whereStr = " where taskid=?";
- arrayList.add(orderno);
- List<InsTaskImage> 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<EsmAgreement> 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<String> 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<InsOrder> 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<InsOrderTask> 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<String, Object> 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<String, Object> 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<InsOrderTask> 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<EsmAgreementProdfee> 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<EsmRetail> list = esmRetailService.selectList(" where deptid = ? and status=?", new Object[]{order.getDeptid(), "1"});
- //2、根据userid查询三级推荐人
- List<SysUser> 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<Double> rateList = new ArrayList<Double>();
- 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<List<InsTaskHistory>> queryOrderHistory(@RequestParam String orderno) {
- HttpResult<List<InsTaskHistory>> result = new HttpResult<>();
- List<InsTaskHistory> 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;
- }
- }
|