Browse Source

1. 协议信息添加授权和账号配置
2. python对接报价,核保,上传影像,缴费状态查询,下载保单
3. 注释之前对接python的无用代码

wks 3 years ago
parent
commit
691efb7bdc
86 changed files with 2338 additions and 2414 deletions
  1. 138 138
      src/main/java/com/ydtech/components/OrderComponents.java
  2. 8 1
      src/main/java/com/ydtech/components/RenbaoRequestComponents.java
  3. 11 0
      src/main/java/com/ydtech/core/page/HttpResult.java
  4. 73 73
      src/main/java/com/ydtech/modules/ins/controller/HengbangController.java
  5. 0 1
      src/main/java/com/ydtech/modules/ins/controller/InsApiLogController.java
  6. 58 58
      src/main/java/com/ydtech/modules/ins/controller/InsYongchengController.java
  7. 5 8
      src/main/java/com/ydtech/modules/ins/controller/InsZhongmeiController.java
  8. 64 64
      src/main/java/com/ydtech/modules/ins/controller/RenbaoController.java
  9. 73 72
      src/main/java/com/ydtech/modules/ins/controller/YongAnController.java
  10. 0 3
      src/main/java/com/ydtech/modules/ins/model/ya/YaQuoteInfoVo.java
  11. 45 45
      src/main/java/com/ydtech/modules/ins/service/InsHengbangService.java
  12. 43 43
      src/main/java/com/ydtech/modules/ins/service/InsRenbaoService.java
  13. 21 21
      src/main/java/com/ydtech/modules/ins/service/InsYongchengService.java
  14. 61 61
      src/main/java/com/ydtech/modules/ins/service/YongAnService.java
  15. 225 225
      src/main/java/com/ydtech/modules/ins/service/impl/InsHengbangServiceImpl.java
  16. 504 504
      src/main/java/com/ydtech/modules/ins/service/impl/InsRenbaoServiceImpl.java
  17. 281 281
      src/main/java/com/ydtech/modules/ins/service/impl/InsYongchengServiceImpl.java
  18. 171 563
      src/main/java/com/ydtech/modules/ins/service/impl/YongAnServiceImpl.java
  19. 11 12
      src/main/java/com/ydtech/modules/order/controller/InsCrawlerOrderController.java
  20. 6 8
      src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java
  21. 7 5
      src/main/java/com/ydtech/modules/order/controller/OrderTaskImageController.java
  22. 2 3
      src/main/java/com/ydtech/modules/order/controller/RenewalController.java
  23. 16 0
      src/main/java/com/ydtech/modules/order/entity/TaxArrears.java
  24. 1 1
      src/main/java/com/ydtech/modules/order/entity/api/zm/constants/TransCode.java
  25. 3 3
      src/main/java/com/ydtech/modules/order/entity/crawler/request/CrawlerImageRequest.java
  26. 12 2
      src/main/java/com/ydtech/modules/order/entity/crawler/request/CrawlerLoginRequest.java
  27. 1 3
      src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerAuditResponse.java
  28. 39 0
      src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerPolicyPrintResponse.java
  29. 4 1
      src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerQuoteResponse.java
  30. 1 1
      src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerVerifyPaymentResponse.java
  31. 35 0
      src/main/java/com/ydtech/modules/order/entity/crawler/vo/CrawlerPolicyPrintVo.java
  32. 0 2
      src/main/java/com/ydtech/modules/order/entity/vo/AccidentalDrivingQueryVo.java
  33. 0 2
      src/main/java/com/ydtech/modules/order/entity/vo/BaseQuoteVo.java
  34. 2 0
      src/main/java/com/ydtech/modules/order/service/IdentifyService.java
  35. 20 0
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java
  36. 35 0
      src/main/java/com/ydtech/modules/order/service/InsCrawlerOrderService.java
  37. 3 2
      src/main/java/com/ydtech/modules/order/service/InsOrdersService.java
  38. 3 1
      src/main/java/com/ydtech/modules/order/service/InsTaskImagesService.java
  39. 0 14
      src/main/java/com/ydtech/modules/order/service/InsuranceCrawlerOrderService.java
  40. 2 0
      src/main/java/com/ydtech/modules/order/service/ZhongMeiOrderApiService.java
  41. 1 1
      src/main/java/com/ydtech/modules/order/service/impl/CarModelServiceImpl.java
  42. 18 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java
  43. 55 49
      src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java
  44. 4 3
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  45. 5 8
      src/main/java/com/ydtech/modules/order/service/impl/InsRenewalServiceImpl.java
  46. 1 1
      src/main/java/com/ydtech/modules/order/service/impl/InsTaskImagesServiceImpl.java
  47. 4 2
      src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderServiceImpl.java
  48. 15 1
      src/main/java/com/ydtech/modules/protocol/controller/PtlAgreementController.java
  49. 7 5
      src/main/java/com/ydtech/modules/protocol/controller/PtlInsAttributionTemplateController.java
  50. 5 5
      src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementAttributionMapper.java
  51. 5 5
      src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementDeptMapper.java
  52. 6 6
      src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementMapper.java
  53. 5 5
      src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementProductCostsMapper.java
  54. 5 5
      src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementUnderwritingRulesMapper.java
  55. 1 1
      src/main/java/com/ydtech/modules/protocol/dao/PtlCrawlerApiMapper.java
  56. 5 5
      src/main/java/com/ydtech/modules/protocol/dao/PtlInsAttributionTemplateMapper.java
  57. 3 7
      src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementAttributionDto.java
  58. 1 1
      src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementDto.java
  59. 1 1
      src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementInsCompanyDto.java
  60. 4 1
      src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementSaveDto.java
  61. 2 2
      src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAttributionTemplateDto.java
  62. 22 0
      src/main/java/com/ydtech/modules/protocol/entity/dto/PtlInsAttributionTemplateQueryDto.java
  63. 8 1
      src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreement.java
  64. 2 9
      src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreementDept.java
  65. 4 0
      src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreementUnderwritingRules.java
  66. 9 5
      src/main/java/com/ydtech/modules/protocol/entity/po/PtlCrawlerApi.java
  67. 5 4
      src/main/java/com/ydtech/modules/protocol/entity/po/PtlInsAttributionTemplate.java
  68. 1 1
      src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementSaveVo.java
  69. 1 1
      src/main/java/com/ydtech/modules/protocol/entity/vo/PtlInsAttributionTemplateQueryVo.java
  70. 2 0
      src/main/java/com/ydtech/modules/protocol/entity/vo/PtlInsAttributionTemplateVo.java
  71. 1 1
      src/main/java/com/ydtech/modules/protocol/entity/vo/PtlProductVo.java
  72. 5 4
      src/main/java/com/ydtech/modules/protocol/service/PtlAgreementAttributionService.java
  73. 1 1
      src/main/java/com/ydtech/modules/protocol/service/PtlAgreementDeptService.java
  74. 1 1
      src/main/java/com/ydtech/modules/protocol/service/PtlAgreementProductCostsService.java
  75. 12 7
      src/main/java/com/ydtech/modules/protocol/service/PtlAgreementService.java
  76. 1 1
      src/main/java/com/ydtech/modules/protocol/service/PtlAgreementUnderwritingRulesService.java
  77. 30 2
      src/main/java/com/ydtech/modules/protocol/service/PtlCrawlerApiService.java
  78. 5 2
      src/main/java/com/ydtech/modules/protocol/service/PtlInsAttributionTemplateService.java
  79. 6 5
      src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementAttributionServiceImpl.java
  80. 6 3
      src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementProductCostsServiceImpl.java
  81. 7 7
      src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java
  82. 24 3
      src/main/java/com/ydtech/modules/protocol/service/impl/PtlCrawlerApiServiceImpl.java
  83. 43 13
      src/main/java/com/ydtech/modules/protocol/service/impl/PtlInsAttributionTemplateServiceImpl.java
  84. 3 1
      src/main/java/com/ydtech/modules/protocol/utils/AssertionUtils.java
  85. 0 6
      src/main/resources/mapper/modules/protocol/EsProductMapper.xml
  86. 2 1
      src/main/resources/mapper/modules/protocol/PtlAgreementMapper.xml

+ 138 - 138
src/main/java/com/ydtech/components/OrderComponents.java

@@ -261,7 +261,7 @@ public class OrderComponents {
         //2、根据userid查询三级推荐人
         List<SysUser> users = esmUserInternalService.getSuperior(userid);
 
-        if (list != null && list.size() > 0 && users.size() > 0 && !"0".equals(list.get(0).getRetailtype())) {
+        if (list != null && !list.isEmpty() && !users.isEmpty() && !"0".equals(list.get(0).getRetailtype())) {
             EsmRetail retail = list.get(0);
             List<Double> rateList = new ArrayList<>();
             rateList.add(retail.getDisrate1());
@@ -305,7 +305,7 @@ public class OrderComponents {
         if (StringUtils.isEmpty(yaQuoteInfoVo.getQuoteno())) {
             throw new SystemException("报价号不能为空");
         }
-        if (yaQuoteInfoVo.getRiskList() == null || yaQuoteInfoVo.getRiskList().size() == 0) {
+        if (yaQuoteInfoVo.getRiskList() == null || yaQuoteInfoVo.getRiskList().isEmpty()) {
             throw new SystemException("riskList 不能为空!");
         } else {
             for (RiskInfoVo riskInfoVo : yaQuoteInfoVo.getRiskList()) {
@@ -316,142 +316,142 @@ public class OrderComponents {
         }
     }
 
-    /**
-     * 生成订单信息
-     *
-     * @param record
-     * @param insCompany
-     * @return InsOrder
-     */
-    public InsOrder geneOrder(YaQuoteInfoVo record, String insCompany, String authComCode) {
-        checkEmpty(record);
-
-        SysUser user = sysUserService.getById(record.getUserId());
-        if (user == null) {
-            throw new SystemException("userId不存在");
-        }
-
-        InsOrder insOrder = new InsOrder();
-        String orderno = IdGenerate.nextId();
-        insOrder.setOrderno(orderno);
-        insOrder.setQuoteno(String.valueOf(record.getQuoteno()));
-        insOrder.setOrderstatus("0");  // 0 报价 1 待核保 2 已核保待缴费 3 核保退回 4 核保不通过
-        insOrder.setFrameNo(record.getCarInfo().getFrameNo());
-        insOrder.setLicenseNo(record.getCarInfo().getLicenseNo());
-        insOrder.setCarinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getCarInfo())));
-
-        // 关闭订单 不含当前报价号
-        InsOrder orderObj = insOrderService.queryQuoteno(new Object[]{record.getUserId(), record.getCarInfo().getFrameNo(), record.getQuoteno()});
-        if (orderObj != null) {
-            List<InsOrder> listo = insOrderService.selectList(" where quoteno=?", new Object[]{orderObj.getQuoteno()});
-            String status = "0";
-            for (InsOrder order : listo) {
-                if (!"0".equals(order.getOrderstatus())) {
-                    status = order.getOrderstatus();
-                }
-            }
-            //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭
-            if ("0".equals(status)) {//关闭订单
-                insOrderService.closeOrder(orderObj.getOrderno(), "99");
-            } else if (!"99".equals(status)) {
-                throw new SystemException("此车辆已提交核保,重新报价请先关闭订单,任务号:" + orderObj.getQuoteno());
-            }
-        }
-        insOrder.setUserid(user.getId());
-        insOrder.setUsername(user.getName());
-        insOrder.setDeptid(user.getDeptId());
-        SysDept dept = sysDeptService.getById(user.getDeptId());
-//        SysDept dept = sysDeptService.selectByPk(user.getDeptId());
-        insOrder.setDeptname(dept == null ? "" : dept.getName());
-
-        double retailRate = countRetail(user.getDeptId(), user.getId());
-
-        insOrder.setOwnerinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getOwnerInfo())));
-        insOrder.setApplyinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getPolicyHolderInfo())));
-        insOrder.setInsureinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getInsuredPersonInfo())));
-
-        insOrder.setInsuredname(record.getPolicyHolderInfo().getName());
-
-        List<RiskInfoVo> risks = record.getRiskList();
-        for (RiskInfoVo risk : risks) {
-            if ("0507".equals(risk.getRiskCode())) {//交强
-                insOrder.setJqstartdate(risk.getStartDate());
-                insOrder.setJqenddate(risk.getEndDate());
-            }
-            if ("0510".equals(risk.getRiskCode())) {//商业
-                insOrder.setSystartdate(risk.getStartDate());
-                insOrder.setSyenddate(risk.getEndDate());
-            }
-        }
-
-        List<KindInfoVo> kinds = record.getKindList();
-        String productId = "";
-        String productname = "";
-
-        List<EsmAgreement> agreements = esmAgreementService.selectList(" where t.agreestatus='1' and t.insure1 like ? " + "and exists (select 1 from esm_agreement_prod t2 where t.id=t2.agreeid and t2.authcomcode like ?)", new Object[]{authComCode + "%", "%" + user.getDeptId() + "%"});
-        if (agreements.size() == 0) {
-            throw new SystemException("不存在有效协议或机构" + user.getDeptId() + "未授权");
-        }
-        String agreeid = agreements.get(0).getId();
-        insOrder.setAgreeid(agreeid);
-        //匹配协议,获取费用
-        StringBuffer whereStr = new StringBuffer();
-        List params = new ArrayList();// where t.agreeid=? and t.productid in ()
-        whereStr.append("where t.agreeid=? ");
-        params.add(agreeid);
-        if (risks.size() == 1 && "0507".equals(risks.get(0).getRiskCode())) {
-            productId = "ZG01001";
-            productname = "单交强";
-            whereStr.append(" and t.productid=?");
-            params.add(productId);
-        } else if (risks.size() == 1 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
-            productId = "ZG01002";
-            productname = "单三者";
-            whereStr.append(" and t.productid=?");
-            params.add(productId);
-        } else if (risks.size() == 1) {
-            productId = "ZG01003";
-            productname = "单商业";
-            whereStr.append(" and t.productid=?");
-            params.add(productId);
-        } else if (risks.size() == 2 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
-            productId = "ZG01004";
-            productname = "交强+三者";
-            whereStr.append(" and t.productid in (?,?)");
-            params.add("ZG01004");
-            params.add("ZG01005");
-        } else {
-            productId = "ZG01006";
-            productname = "交强+商业";
-            whereStr.append(" and t.productid in (?,?)");
-            params.add("ZG01006");
-            params.add("ZG01007");
-        }
-
-        insOrder.setProductid(productId);
-        insOrder.setProduct(productname);
-        List<EsmAgreementProd> agreementProds = esmAgreementProdService.selectList(whereStr.toString(), params.toArray());
-        for (EsmAgreementProd prod : agreementProds) {
-            if ("ZG01001".equals(prod.getProductid()) || "ZG01004".equals(prod.getProductid()) || "ZG01006".equals(prod.getProductid())) {
-                insOrder.setFeerate(prod.getProductrate());//交强手续费比例
-                insOrder.setJqdiscountrate(prod.getFeerate() - retailRate); //交强优惠比例=业务员绩效-分销费用
-            } else {
-                insOrder.setDisrate(prod.getProductrate()); //商业手续费比例
-                insOrder.setSydiscountrate(prod.getFeerate() - retailRate); //商业优惠比例=业务员绩效-分销费用
-            }
-            insOrder.setProductid(prod.getId());
-        }
-
-        insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(record.getRiskList())));
-        insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(record.getKindList())));
-        SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
-        insOrder.setInscompany(insCompany);
-        insOrder.setCreatetime(sdfm.format(new Date()));
-
-        return insOrder;
-
-    }
+//    /**
+//     * 生成订单信息
+//     *
+//     * @param record
+//     * @param insCompany
+//     * @return InsOrder
+//     */
+//    public InsOrder geneOrder(YaQuoteInfoVo record, String insCompany, String authComCode) {
+//        checkEmpty(record);
+//
+//        SysUser user = sysUserService.getById(record.getUserId());
+//        if (user == null) {
+//            throw new SystemException("userId不存在");
+//        }
+//
+//        InsOrder insOrder = new InsOrder();
+//        String orderno = IdGenerate.nextId();
+//        insOrder.setOrderno(orderno);
+//        insOrder.setQuoteno(String.valueOf(record.getQuoteno()));
+//        insOrder.setOrderstatus("0");  // 0 报价 1 待核保 2 已核保待缴费 3 核保退回 4 核保不通过
+//        insOrder.setFrameNo(record.getCarInfo().getFrameNo());
+//        insOrder.setLicenseNo(record.getCarInfo().getLicenseNo());
+//        insOrder.setCarinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getCarInfo())));
+//
+//        // 关闭订单 不含当前报价号
+//        InsOrder orderObj = insOrderService.queryQuoteno(new Object[]{record.getUserId(), record.getCarInfo().getFrameNo(), record.getQuoteno()});
+//        if (orderObj != null) {
+//            List<InsOrder> listo = insOrderService.selectList(" where quoteno=?", new Object[]{orderObj.getQuoteno()});
+//            String status = "0";
+//            for (InsOrder order : listo) {
+//                if (!"0".equals(order.getOrderstatus())) {
+//                    status = order.getOrderstatus();
+//                }
+//            }
+//            //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭
+//            if ("0".equals(status)) {//关闭订单
+//                insOrderService.closeOrder(orderObj.getOrderno(), "99");
+//            } else if (!"99".equals(status)) {
+//                throw new SystemException("此车辆已提交核保,重新报价请先关闭订单,任务号:" + orderObj.getQuoteno());
+//            }
+//        }
+//        insOrder.setUserid(user.getId());
+//        insOrder.setUsername(user.getName());
+//        insOrder.setDeptid(user.getDeptId());
+//        SysDept dept = sysDeptService.getById(user.getDeptId());
+////        SysDept dept = sysDeptService.selectByPk(user.getDeptId());
+//        insOrder.setDeptname(dept == null ? "" : dept.getName());
+//
+//        double retailRate = countRetail(user.getDeptId(), user.getId());
+//
+//        insOrder.setOwnerinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getOwnerInfo())));
+//        insOrder.setApplyinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getPolicyHolderInfo())));
+//        insOrder.setInsureinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getInsuredPersonInfo())));
+//
+//        insOrder.setInsuredname(record.getPolicyHolderInfo().getName());
+//
+//        List<RiskInfoVo> risks = record.getRiskList();
+//        for (RiskInfoVo risk : risks) {
+//            if ("0507".equals(risk.getRiskCode())) {//交强
+//                insOrder.setJqstartdate(risk.getStartDate());
+//                insOrder.setJqenddate(risk.getEndDate());
+//            }
+//            if ("0510".equals(risk.getRiskCode())) {//商业
+//                insOrder.setSystartdate(risk.getStartDate());
+//                insOrder.setSyenddate(risk.getEndDate());
+//            }
+//        }
+//
+//        List<KindInfoVo> kinds = record.getKindList();
+//        String productId = "";
+//        String productname = "";
+//
+//        List<EsmAgreement> agreements = esmAgreementService.selectList(" where t.agreestatus='1' and t.insure1 like ? " + "and exists (select 1 from esm_agreement_prod t2 where t.id=t2.agreeid and t2.authcomcode like ?)", new Object[]{authComCode + "%", "%" + user.getDeptId() + "%"});
+//        if (agreements.size() == 0) {
+//            throw new SystemException("不存在有效协议或机构" + user.getDeptId() + "未授权");
+//        }
+//        String agreeid = agreements.get(0).getId();
+//        insOrder.setAgreeid(agreeid);
+//        //匹配协议,获取费用
+//        StringBuffer whereStr = new StringBuffer();
+//        List params = new ArrayList();// where t.agreeid=? and t.productid in ()
+//        whereStr.append("where t.agreeid=? ");
+//        params.add(agreeid);
+//        if (risks.size() == 1 && "0507".equals(risks.get(0).getRiskCode())) {
+//            productId = "ZG01001";
+//            productname = "单交强";
+//            whereStr.append(" and t.productid=?");
+//            params.add(productId);
+//        } else if (risks.size() == 1 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
+//            productId = "ZG01002";
+//            productname = "单三者";
+//            whereStr.append(" and t.productid=?");
+//            params.add(productId);
+//        } else if (risks.size() == 1) {
+//            productId = "ZG01003";
+//            productname = "单商业";
+//            whereStr.append(" and t.productid=?");
+//            params.add(productId);
+//        } else if (risks.size() == 2 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
+//            productId = "ZG01004";
+//            productname = "交强+三者";
+//            whereStr.append(" and t.productid in (?,?)");
+//            params.add("ZG01004");
+//            params.add("ZG01005");
+//        } else {
+//            productId = "ZG01006";
+//            productname = "交强+商业";
+//            whereStr.append(" and t.productid in (?,?)");
+//            params.add("ZG01006");
+//            params.add("ZG01007");
+//        }
+//
+//        insOrder.setProductid(productId);
+//        insOrder.setProduct(productname);
+//        List<EsmAgreementProd> agreementProds = esmAgreementProdService.selectList(whereStr.toString(), params.toArray());
+//        for (EsmAgreementProd prod : agreementProds) {
+//            if ("ZG01001".equals(prod.getProductid()) || "ZG01004".equals(prod.getProductid()) || "ZG01006".equals(prod.getProductid())) {
+//                insOrder.setFeerate(prod.getProductrate());//交强手续费比例
+//                insOrder.setJqdiscountrate(prod.getFeerate() - retailRate); //交强优惠比例=业务员绩效-分销费用
+//            } else {
+//                insOrder.setDisrate(prod.getProductrate()); //商业手续费比例
+//                insOrder.setSydiscountrate(prod.getFeerate() - retailRate); //商业优惠比例=业务员绩效-分销费用
+//            }
+//            insOrder.setProductid(prod.getId());
+//        }
+//
+//        insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(record.getRiskList())));
+//        insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(record.getKindList())));
+//        SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//
+//        insOrder.setInscompany(insCompany);
+//        insOrder.setCreatetime(sdfm.format(new Date()));
+//
+//        return insOrder;
+//
+//    }
 
     public InsOrder orderExists(String orderNo) {
         InsOrder insOrder = insOrderService.selectByPk(orderNo);

+ 8 - 1
src/main/java/com/ydtech/components/RenbaoRequestComponents.java

@@ -1,5 +1,6 @@
 package com.ydtech.components;
 
+import com.alibaba.fastjson.JSON;
 import com.ydtech.aop.request.MethodLogAnnotation;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.ins.model.request.Response;
@@ -39,12 +40,18 @@ public class RenbaoRequestComponents {
         HttpHeaders httpHeaders = new HttpHeaders();
         httpHeaders.setContentType(MediaType.APPLICATION_JSON);
         HttpEntity<T> yaQuoteInfoVoHttpEntity = new HttpEntity<>(requestBody, httpHeaders);
+
+        String request = JSON.toJSONString(requestBody);
+        log.info("---------> 请求参数:{}", request);
+
         ResponseEntity<B> stringResponseEntity = restTemplate.postForEntity(url, yaQuoteInfoVoHttpEntity, responseType);
         B body = stringResponseEntity.getBody();
         if (body == null) {
             throw new SystemException(message + "接口请求失败");
         }
-        log.info(body.toString());
+
+        String response = JSON.toJSONString(body);
+        log.info("---------> 请求参数:{}", response);
         return body;
     }
 

+ 11 - 0
src/main/java/com/ydtech/core/page/HttpResult.java

@@ -1,15 +1,25 @@
 package com.ydtech.core.page;
 
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
 /**
  * HTTP结果封装
  *
  * @author Louis
  * @date Jun 29, 2019
  */
+@ApiModel("HTTP结果")
 public class HttpResult<T> {
+
+    @ApiModelProperty("状态码")
     private int code = 200;
+
+    @ApiModelProperty("消息")
     private String msg;
+
+    @ApiModelProperty("返回内容")
     private T data;
 
     public static <T> HttpResult<T> error() {
@@ -95,4 +105,5 @@ public class HttpResult<T> {
     public String toString() {
         return "HttpResult{" + "code=" + code + ", msg='" + msg + '\'' + ", data=" + data + '}';
     }
+
 }

+ 73 - 73
src/main/java/com/ydtech/modules/ins/controller/HengbangController.java

@@ -1,73 +1,73 @@
-package com.ydtech.modules.ins.controller;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.aop.request.RequestSingleParam;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.exception.SystemException;
-import com.ydtech.modules.ins.model.InsOrder;
-import com.ydtech.modules.ins.model.hb.HengbangPolicyPrintResponse;
-import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-import com.ydtech.modules.ins.service.InsHengbangService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.client.RestClientException;
-
-import java.io.IOException;
-
-@Api(tags = "恒邦财险")
-@RestController
-@RequestMapping("/ins/hengbang")
-public class HengbangController {
-    private final InsHengbangService insHengbangService;
-
-    public HengbangController(InsHengbangService insHengbangService) {
-        this.insHengbangService = insHengbangService;
-    }
-
-    @PostMapping("/quote")
-    @ApiOperation(value = "报价")
-//    @MethodLogAnnotation(title = "恒邦-报价")
-    public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
-        try {
-            return insHengbangService.quote(yaQuoteInfoVo);
-        } catch (RestClientException e) {
-            throw new SystemException("恒邦接口调用失败");
-        }
-    }
-
-    @PostMapping("/audit")
-    @ApiOperation(value = "核保")
-//    @MethodLogAnnotation(title = "恒邦-核保")
-    public HttpResult audit(@RequestSingleParam(value = "orderno") String orderno) throws IOException {
-        try {
-            return insHengbangService.audit(orderno);
-        } catch (RestClientException e) {
-            throw new SystemException("恒邦接口调用失败");
-        }
-    }
-
-    @PostMapping(value = "/submitImage")
-    @ApiOperation(value = "提交影像信息")
-    public HttpResult submitImage(@RequestSingleParam(value = "orderno") String orderno) {
-        try {
-            return insHengbangService.submitImage(orderno);
-        } catch (Exception e) {
-            throw new SystemException("提交影像失败");
-        }
-    }
-
-    @PostMapping(value = "/getPolicyPrint")
-    @ApiOperation(value = "获取电子保单")
-    public HengbangPolicyPrintResponse getPolicyPrint(@RequestSingleParam(value = "orderno") String orderno) {
-        try {
-            return insHengbangService.getPolicyPrint(orderno);
-        } catch (Exception e) {
-            throw new SystemException("获取电子保单失败");
-        }
-    }
-
-}
+//package com.ydtech.modules.ins.controller;
+//
+//import com.fasterxml.jackson.core.JsonProcessingException;
+//import com.ydtech.aop.request.RequestSingleParam;
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.exception.SystemException;
+//import com.ydtech.modules.ins.model.InsOrder;
+//import com.ydtech.modules.ins.model.hb.HengbangPolicyPrintResponse;
+//import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
+//import com.ydtech.modules.ins.service.InsHengbangService;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestBody;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RestController;
+//import org.springframework.web.client.RestClientException;
+//
+//import java.io.IOException;
+//
+//@Api(tags = "恒邦财险")
+//@RestController
+//@RequestMapping("/ins/hengbang")
+//public class HengbangController {
+//    private final InsHengbangService insHengbangService;
+//
+//    public HengbangController(InsHengbangService insHengbangService) {
+//        this.insHengbangService = insHengbangService;
+//    }
+//
+//    @PostMapping("/quote")
+//    @ApiOperation(value = "报价")
+////    @MethodLogAnnotation(title = "恒邦-报价")
+//    public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
+//        try {
+//            return insHengbangService.quote(yaQuoteInfoVo);
+//        } catch (RestClientException e) {
+//            throw new SystemException("恒邦接口调用失败");
+//        }
+//    }
+//
+//    @PostMapping("/audit")
+//    @ApiOperation(value = "核保")
+////    @MethodLogAnnotation(title = "恒邦-核保")
+//    public HttpResult audit(@RequestSingleParam(value = "orderno") String orderno) throws IOException {
+//        try {
+//            return insHengbangService.audit(orderno);
+//        } catch (RestClientException e) {
+//            throw new SystemException("恒邦接口调用失败");
+//        }
+//    }
+//
+//    @PostMapping(value = "/submitImage")
+//    @ApiOperation(value = "提交影像信息")
+//    public HttpResult submitImage(@RequestSingleParam(value = "orderno") String orderno) {
+//        try {
+//            return insHengbangService.submitImage(orderno);
+//        } catch (Exception e) {
+//            throw new SystemException("提交影像失败");
+//        }
+//    }
+//
+//    @PostMapping(value = "/getPolicyPrint")
+//    @ApiOperation(value = "获取电子保单")
+//    public HengbangPolicyPrintResponse getPolicyPrint(@RequestSingleParam(value = "orderno") String orderno) {
+//        try {
+//            return insHengbangService.getPolicyPrint(orderno);
+//        } catch (Exception e) {
+//            throw new SystemException("获取电子保单失败");
+//        }
+//    }
+//
+//}

+ 0 - 1
src/main/java/com/ydtech/modules/ins/controller/InsApiLogController.java

@@ -7,7 +7,6 @@ import com.ydtech.modules.ins.dao.InsApiLogDao;
 import com.ydtech.modules.ins.model.InsApiLog;
 import com.ydtech.modules.ins.model.InsOrder;
 import com.ydtech.modules.ins.model.ya.CarModel_Req;
-import com.ydtech.modules.ins.service.InsYongchengService;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.utils.Base64Utils;

+ 58 - 58
src/main/java/com/ydtech/modules/ins/controller/InsYongchengController.java

@@ -1,58 +1,58 @@
-package com.ydtech.modules.ins.controller;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.aop.request.RequestSingleParam;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.exception.SystemException;
-import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-import com.ydtech.modules.ins.model.yc.YongchengPolicyPrintResponse;
-import com.ydtech.modules.ins.service.InsYongchengService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.io.IOException;
-
-
-@Api(tags = "永诚财险 Spider")
-@RestController
-@RequestMapping("/ins/yongcheng")
-public class InsYongchengController {
-
-    private final InsYongchengService insYongchengService;
-
-    public InsYongchengController(InsYongchengService insYongchengService) {
-        this.insYongchengService = insYongchengService;
-    }
-
-    @PostMapping("/quote")
-    @ApiOperation("报价")
-    public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
-        return insYongchengService.quote(yaQuoteInfoVo);
-    }
-
-    @PostMapping("/audit")
-    @ApiOperation("核保")
-    public HttpResult audit(@RequestSingleParam("orderno") String orderNo) throws IOException {
-        return insYongchengService.audit(orderNo);
-    }
-
-    @PostMapping("/submitImage")
-    @ApiOperation("提交影像")
-    public HttpResult submitImage(@RequestSingleParam("orderno") String orderNo) throws IOException {
-        return insYongchengService.submitImage(orderNo);
-    }
-
-    @ApiOperation(value = "电子保单")
-    @PostMapping("/getPolicyPrint")
-    public YongchengPolicyPrintResponse getPolicyPrint(@RequestSingleParam(value = "orderno") String orderno) throws IOException {
-        return insYongchengService.getPolicyPrint(orderno);
-    }
-
-
-}
+//package com.ydtech.modules.ins.controller;
+//
+//import com.fasterxml.jackson.core.JsonProcessingException;
+//import com.ydtech.aop.request.RequestSingleParam;
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.exception.SystemException;
+//import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
+//import com.ydtech.modules.ins.model.yc.YongchengPolicyPrintResponse;
+//import com.ydtech.modules.ins.service.InsYongchengService;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.util.StringUtils;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestBody;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RestController;
+//
+//import java.io.IOException;
+//
+//
+//@Api(tags = "永诚财险 Spider")
+//@RestController
+//@RequestMapping("/ins/yongcheng")
+//public class InsYongchengController {
+//
+//    private final InsYongchengService insYongchengService;
+//
+//    public InsYongchengController(InsYongchengService insYongchengService) {
+//        this.insYongchengService = insYongchengService;
+//    }
+//
+//    @PostMapping("/quote")
+//    @ApiOperation("报价")
+//    public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
+//        return insYongchengService.quote(yaQuoteInfoVo);
+//    }
+//
+//    @PostMapping("/audit")
+//    @ApiOperation("核保")
+//    public HttpResult audit(@RequestSingleParam("orderno") String orderNo) throws IOException {
+//        return insYongchengService.audit(orderNo);
+//    }
+//
+//    @PostMapping("/submitImage")
+//    @ApiOperation("提交影像")
+//    public HttpResult submitImage(@RequestSingleParam("orderno") String orderNo) throws IOException {
+//        return insYongchengService.submitImage(orderNo);
+//    }
+//
+//    @ApiOperation(value = "电子保单")
+//    @PostMapping("/getPolicyPrint")
+//    public YongchengPolicyPrintResponse getPolicyPrint(@RequestSingleParam(value = "orderno") String orderno) throws IOException {
+//        return insYongchengService.getPolicyPrint(orderno);
+//    }
+//
+//
+//}

+ 5 - 8
src/main/java/com/ydtech/modules/ins/controller/InsZhongmeiController.java

@@ -8,7 +8,6 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.SysMethodLogDao;
 import com.ydtech.modules.ins.model.ya.CarModel_Req;
 import com.ydtech.modules.ins.service.InsZhongmeiService;
-import com.ydtech.modules.ins.service.YongAnService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,16 +19,14 @@ import org.springframework.web.bind.annotation.*;
 @RequestMapping("/insZhongmei")
 public class InsZhongmeiController {
 
-    @Autowired
-    private SysMethodLogDao sysMethodLogDao;
-
-    @Autowired
-    private ZhongmeiRequestComponents zhongmeiRequestComponents;
+//    @Autowired
+//    private SysMethodLogDao sysMethodLogDao;
+//
+//    @Autowired
+//    private ZhongmeiRequestComponents zhongmeiRequestComponents;
 
     private final InsZhongmeiService insZhongmeiService;
 
-    @Autowired
-    private YongAnService yongAnService;
 
     public InsZhongmeiController(InsZhongmeiService insZhongmeiService) {
         this.insZhongmeiService = insZhongmeiService;

+ 64 - 64
src/main/java/com/ydtech/modules/ins/controller/RenbaoController.java

@@ -1,64 +1,64 @@
-package com.ydtech.modules.ins.controller;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.exception.SystemException;
-import com.ydtech.modules.ins.model.InsOrder;
-import com.ydtech.modules.ins.model.ya.CarModel_Req;
-import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-import com.ydtech.modules.ins.service.InsRenbaoService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.client.RestClientException;
-import org.springframework.web.client.RestTemplate;
-
-import java.io.IOException;
-
-@Api(tags = "人保报价")
-@RestController
-@RequestMapping("/api/insRenbao")
-public class RenbaoController {
-
-    private final InsRenbaoService insRenbaoService;
-
-    public RenbaoController(InsRenbaoService insRenbaoService) {
-        this.insRenbaoService = insRenbaoService;
-    }
-
-    @GetMapping("/licensePlateQuery")
-    @ApiOperation("车牌号查询车辆信息接口")
-    public HttpResult licensePlateQuery(@RequestParam(value = "licensePlate") String licensePlate) throws Exception {
-        return insRenbaoService.licensePlateQuery(licensePlate);
-    }
-
-    @PostMapping("/modelsQuery")
-    @ApiOperation("车型查询接口")
-    public HttpResult modelsQuery(@RequestBody CarModel_Req carModelReq) {
-        return insRenbaoService.modelsQuery(carModelReq);
-    }
-
-    @PostMapping("/quote")
-    @ApiOperation(value = "报价")
-//    @MethodLogAnnotation(title = "人保-报价")
-    public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
-        try {
-            return insRenbaoService.quote(yaQuoteInfoVo);
-        } catch (RestClientException e) {
-            throw new SystemException("人保接口调用失败");
-        }
-    }
-
-    @PostMapping("/audit")
-    @ApiOperation(value = "核保")
-//    @MethodLogAnnotation(title = "人保-核保")
-    public HttpResult audit(@RequestBody InsOrder orderno) throws IOException {
-        try {
-            return insRenbaoService.audit(orderno.getOrderno());
-        } catch (RestClientException e) {
-            throw new SystemException("人保接口调用失败");
-        }
-    }
-
-
-}
+//package com.ydtech.modules.ins.controller;
+//
+//import com.fasterxml.jackson.core.JsonProcessingException;
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.exception.SystemException;
+//import com.ydtech.modules.ins.model.InsOrder;
+//import com.ydtech.modules.ins.model.ya.CarModel_Req;
+//import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
+//import com.ydtech.modules.ins.service.InsRenbaoService;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.web.bind.annotation.*;
+//import org.springframework.web.client.RestClientException;
+//import org.springframework.web.client.RestTemplate;
+//
+//import java.io.IOException;
+//
+//@Api(tags = "人保报价")
+//@RestController
+//@RequestMapping("/api/insRenbao")
+//public class RenbaoController {
+//
+//    private final InsRenbaoService insRenbaoService;
+//
+//    public RenbaoController(InsRenbaoService insRenbaoService) {
+//        this.insRenbaoService = insRenbaoService;
+//    }
+//
+//    @GetMapping("/licensePlateQuery")
+//    @ApiOperation("车牌号查询车辆信息接口")
+//    public HttpResult licensePlateQuery(@RequestParam(value = "licensePlate") String licensePlate) throws Exception {
+//        return insRenbaoService.licensePlateQuery(licensePlate);
+//    }
+//
+//    @PostMapping("/modelsQuery")
+//    @ApiOperation("车型查询接口")
+//    public HttpResult modelsQuery(@RequestBody CarModel_Req carModelReq) {
+//        return insRenbaoService.modelsQuery(carModelReq);
+//    }
+//
+//    @PostMapping("/quote")
+//    @ApiOperation(value = "报价")
+////    @MethodLogAnnotation(title = "人保-报价")
+//    public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
+//        try {
+//            return insRenbaoService.quote(yaQuoteInfoVo);
+//        } catch (RestClientException e) {
+//            throw new SystemException("人保接口调用失败");
+//        }
+//    }
+//
+//    @PostMapping("/audit")
+//    @ApiOperation(value = "核保")
+////    @MethodLogAnnotation(title = "人保-核保")
+//    public HttpResult audit(@RequestBody InsOrder orderno) throws IOException {
+//        try {
+//            return insRenbaoService.audit(orderno.getOrderno());
+//        } catch (RestClientException e) {
+//            throw new SystemException("人保接口调用失败");
+//        }
+//    }
+//
+//
+//}

+ 73 - 72
src/main/java/com/ydtech/modules/ins/controller/YongAnController.java

@@ -1,80 +1,81 @@
 package com.ydtech.modules.ins.controller;
-
-//import com.ydtech.aop.request.MethodLogAnnotation;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.modules.esm.model.InsTaskImage;
-import com.ydtech.modules.ins.model.InsOrder;
-import com.ydtech.modules.ins.model.ya.CarModel_Req;
-import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-import com.ydtech.modules.ins.service.YongAnService;
+//
+////import com.ydtech.aop.request.MethodLogAnnotation;
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.modules.esm.model.InsTaskImage;
+//import com.ydtech.modules.ins.model.InsOrder;
+//import com.ydtech.modules.ins.model.ya.CarModel_Req;
+//import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
+//import com.ydtech.modules.ins.service.YongAnService;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.StringUtils;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Map;
-
-/**
- * @author gws
- * @description:TODO
- * @date 2022-07-13 17:54
- */
+//
+//import javax.servlet.http.HttpServletRequest;
+//import java.util.Map;
+//
+///**
+// * @author gws
+// * @description:TODO
+// * @date 2022-07-13 17:54
+// */
 @Api(tags = "永安")
 @RestController
 @RequestMapping("/api/yongan")
 public class YongAnController {
-    @Autowired
-    YongAnService yongAnService;
-
-    @PostMapping("/modelQuery")
-    public HttpResult modelQueryAPI(@RequestBody CarModel_Req carModelReq) {
-        return yongAnService.modelsQuery(carModelReq);
-    }
-
-    @PostMapping("/quote")
-//    @MethodLogAnnotation(title = "永安-报价")
-    public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) {
-        return yongAnService.quote(yaQuoteInfoVo);
-    }
-
-    @PostMapping("/audit")
-//    @MethodLogAnnotation(title = "永安-核保")
-    public HttpResult audit(@RequestBody InsOrder orderno) {
-        return yongAnService.audit(orderno.getOrderno());
-    }
-
-    @PostMapping(value = "/UploadImage")
-    public HttpResult UploadImage(@RequestBody InsTaskImage record) {
-        return yongAnService.UploadImage(record);
-    }
-
-    @PostMapping("/getMessage")
-    public HttpResult getMessage(@RequestBody InsOrder orderno) {
-        return yongAnService.getMessage(orderno.getOrderno());
-    }
-
-    @PostMapping("/getPayUrl")
-    public HttpResult getPayUrl(@RequestBody InsOrder orderno) {
-        return yongAnService.getPayUrl(orderno.getOrderno(), orderno.getVerificationCode());
-    }
-
-    @GetMapping("/updatePolicy")
-    public String updatePolicy(@RequestParam Map<String, String> paramMap) {
-        yongAnService.updatePolicy(paramMap);
-        return "0";
-    }
-
-    @PostMapping("/getPolicyPrint")
-    @ApiOperation(value = "01-电子保单")
-    public HttpResult getPolicyPrint(@RequestBody InsOrder orderno) {
-        return yongAnService.getPolicyPrint(orderno.getOrderno(), orderno.getPolicytype(), "01");
-    }
-
-    @PostMapping("/getPolicyPrint2")
-    @ApiOperation(value = "02-车险电子标志")
-    public HttpResult getPolicyPrint2(@RequestBody InsOrder orderno) {
-        return yongAnService.getPolicyPrint(orderno.getOrderno(), orderno.getPolicytype(), "02");
-    }
 }
+//    @Autowired
+//    YongAnService yongAnService;
+//
+//    @PostMapping("/modelQuery")
+//    public HttpResult modelQueryAPI(@RequestBody CarModel_Req carModelReq) {
+//        return yongAnService.modelsQuery(carModelReq);
+//    }
+//
+//    @PostMapping("/quote")
+////    @MethodLogAnnotation(title = "永安-报价")
+//    public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) {
+//        return yongAnService.quote(yaQuoteInfoVo);
+//    }
+//
+//    @PostMapping("/audit")
+////    @MethodLogAnnotation(title = "永安-核保")
+//    public HttpResult audit(@RequestBody InsOrder orderno) {
+//        return yongAnService.audit(orderno.getOrderno());
+//    }
+//
+//    @PostMapping(value = "/UploadImage")
+//    public HttpResult UploadImage(@RequestBody InsTaskImage record) {
+//        return yongAnService.UploadImage(record);
+//    }
+//
+//    @PostMapping("/getMessage")
+//    public HttpResult getMessage(@RequestBody InsOrder orderno) {
+//        return yongAnService.getMessage(orderno.getOrderno());
+//    }
+//
+//    @PostMapping("/getPayUrl")
+//    public HttpResult getPayUrl(@RequestBody InsOrder orderno) {
+//        return yongAnService.getPayUrl(orderno.getOrderno(), orderno.getVerificationCode());
+//    }
+//
+//    @GetMapping("/updatePolicy")
+//    public String updatePolicy(@RequestParam Map<String, String> paramMap) {
+//        yongAnService.updatePolicy(paramMap);
+//        return "0";
+//    }
+//
+//    @PostMapping("/getPolicyPrint")
+//    @ApiOperation(value = "01-电子保单")
+//    public HttpResult getPolicyPrint(@RequestBody InsOrder orderno) {
+//        return yongAnService.getPolicyPrint(orderno.getOrderno(), orderno.getPolicytype(), "01");
+//    }
+//
+//    @PostMapping("/getPolicyPrint2")
+//    @ApiOperation(value = "02-车险电子标志")
+//    public HttpResult getPolicyPrint2(@RequestBody InsOrder orderno) {
+//        return yongAnService.getPolicyPrint(orderno.getOrderno(), orderno.getPolicytype(), "02");
+//    }
+//}

+ 0 - 3
src/main/java/com/ydtech/modules/ins/model/ya/YaQuoteInfoVo.java

@@ -44,8 +44,6 @@ public class YaQuoteInfoVo implements Serializable {
     @Valid
     private List<KindInfoVo> kindList;
 
-    private String userId;
-
     private String quoteno;
 
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -61,7 +59,6 @@ public class YaQuoteInfoVo implements Serializable {
         this.carInfo = JSON.toJavaObject(insOrders.getCarinfo(), CarInfoVo.class);
         this.riskList = JSONObject.parseArray(JSON.toJSONString(insOrders.getRisk()), RiskInfoVo.class);
         this.kindList = JSONObject.parseArray(JSON.toJSONString(insOrders.getKing()), KindInfoVo.class);
-        this.userId = insOrders.getUserid();
         this.quoteno = insOrders.getQuoteno();
     }
 }

+ 45 - 45
src/main/java/com/ydtech/modules/ins/service/InsHengbangService.java

@@ -1,45 +1,45 @@
-package com.ydtech.modules.ins.service;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.modules.ins.model.hb.HengbangPolicyPrintResponse;
-import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-
-import java.io.IOException;
-
-public interface InsHengbangService {
-
-    /**
-     * 报价
-     *
-     * @param yaQuoteInfoVo
-     * @return
-     */
-    HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException;
-
-    /**
-     * 核保
-     *
-     * @param orderNo
-     * @return
-     * @throws IOException
-     */
-    HttpResult audit(String orderNo) throws IOException;
-
-    /**
-     * 上传影像
-     *
-     * @param orderId
-     * @return
-     * @throws IOException
-     */
-    HttpResult submitImage(String orderId) throws IOException;
-
-    /**
-     * 获取报价订单
-     *
-     * @param orderNo
-     * @return
-     */
-    HengbangPolicyPrintResponse getPolicyPrint(String orderNo);
-}
+//package com.ydtech.modules.ins.service;
+//
+//import com.fasterxml.jackson.core.JsonProcessingException;
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.modules.ins.model.hb.HengbangPolicyPrintResponse;
+//import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
+//
+//import java.io.IOException;
+//
+//public interface InsHengbangService {
+//
+//    /**
+//     * 报价
+//     *
+//     * @param yaQuoteInfoVo
+//     * @return
+//     */
+//    HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException;
+//
+//    /**
+//     * 核保
+//     *
+//     * @param orderNo
+//     * @return
+//     * @throws IOException
+//     */
+//    HttpResult audit(String orderNo) throws IOException;
+//
+//    /**
+//     * 上传影像
+//     *
+//     * @param orderId
+//     * @return
+//     * @throws IOException
+//     */
+//    HttpResult submitImage(String orderId) throws IOException;
+//
+//    /**
+//     * 获取报价订单
+//     *
+//     * @param orderNo
+//     * @return
+//     */
+//    HengbangPolicyPrintResponse getPolicyPrint(String orderNo);
+//}

+ 43 - 43
src/main/java/com/ydtech/modules/ins/service/InsRenbaoService.java

@@ -1,43 +1,43 @@
-package com.ydtech.modules.ins.service;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.modules.ins.model.ya.CarModel_Req;
-import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-
-import java.io.IOException;
-
-public interface InsRenbaoService {
-
-    /**
-     * 投保
-     *
-     * @param yaQuoteInfoVo
-     * @return HttpResult
-     */
-    HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException;
-
-    /**
-     * 核保
-     *
-     * @param orderno
-     * @return HttpResult
-     */
-    HttpResult audit(String orderno) throws IOException;
-
-    /**
-     * 车辆型号
-     *
-     * @param carModelReq
-     * @return
-     */
-    HttpResult modelsQuery(CarModel_Req carModelReq);
-
-    /**
-     * 车牌号
-     *
-     * @param licensePlate
-     * @return
-     */
-    HttpResult licensePlateQuery(String licensePlate) throws Exception;
-}
+//package com.ydtech.modules.ins.service;
+//
+//import com.fasterxml.jackson.core.JsonProcessingException;
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.modules.ins.model.ya.CarModel_Req;
+//import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
+//
+//import java.io.IOException;
+//
+//public interface InsRenbaoService {
+//
+//    /**
+//     * 投保
+//     *
+//     * @param yaQuoteInfoVo
+//     * @return HttpResult
+//     */
+//    HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException;
+//
+//    /**
+//     * 核保
+//     *
+//     * @param orderno
+//     * @return HttpResult
+//     */
+//    HttpResult audit(String orderno) throws IOException;
+//
+//    /**
+//     * 车辆型号
+//     *
+//     * @param carModelReq
+//     * @return
+//     */
+//    HttpResult modelsQuery(CarModel_Req carModelReq);
+//
+//    /**
+//     * 车牌号
+//     *
+//     * @param licensePlate
+//     * @return
+//     */
+//    HttpResult licensePlateQuery(String licensePlate) throws Exception;
+//}

+ 21 - 21
src/main/java/com/ydtech/modules/ins/service/InsYongchengService.java

@@ -1,21 +1,21 @@
-package com.ydtech.modules.ins.service;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.modules.esm.model.InsTaskImage;
-import com.ydtech.modules.ins.model.ya.CarModel_Req;
-import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-import com.ydtech.modules.ins.model.yc.CallBackRequest;
-import com.ydtech.modules.ins.model.yc.YongchengPolicyPrintResponse;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-public interface InsYongchengService extends InsBaseService {
-
-    HttpResult submitImage(String orderId) throws IOException;
-
-    YongchengPolicyPrintResponse getPolicyPrint(String orderno);
-
-}
+//package com.ydtech.modules.ins.service;
+//
+//import com.fasterxml.jackson.core.JsonProcessingException;
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.modules.esm.model.InsTaskImage;
+//import com.ydtech.modules.ins.model.ya.CarModel_Req;
+//import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
+//import com.ydtech.modules.ins.model.yc.CallBackRequest;
+//import com.ydtech.modules.ins.model.yc.YongchengPolicyPrintResponse;
+//
+//import java.io.IOException;
+//import java.util.List;
+//import java.util.Map;
+//
+//public interface InsYongchengService extends InsBaseService {
+//
+//    HttpResult submitImage(String orderId) throws IOException;
+//
+//    YongchengPolicyPrintResponse getPolicyPrint(String orderno);
+//
+//}

+ 61 - 61
src/main/java/com/ydtech/modules/ins/service/YongAnService.java

@@ -1,61 +1,61 @@
-package com.ydtech.modules.ins.service;
-
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.modules.esm.model.InsTaskImage;
-import com.ydtech.modules.ins.model.ya.CarModel_Req;
-import com.ydtech.modules.ins.model.ya.ResponseDataC1;
-import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-import org.springframework.web.bind.annotation.RequestBody;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Map;
-
-public interface YongAnService {
-
-    /**
-     * 1 车型查询接口
-     */
-    HttpResult modelsQuery(CarModel_Req carModelReq);
-
-    /**
-     * 2 报价
-     */
-    HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo);
-
-    /**
-     * 3 核保
-     */
-    HttpResult audit(String orderno);
-
-    /**
-     * 影像上传
-     *
-     * @param record
-     * @return
-     */
-    HttpResult UploadImage(InsTaskImage record);
-
-    /**
-     * 4 获取短信验证码
-     */
-    HttpResult getMessage(String orderno);
-
-    /**
-     * 5 获取支付url(提交短信验证码)
-     */
-    HttpResult getPayUrl(String orderno, String verificationCode);
-
-    /**
-     * 6 保单信息同步
-     */
-    String updatePolicy(Map<String, String> paramMap);
-
-    /**
-     * 7 电子投保单获取
-     */
-    HttpResult getPolicyPrint(String orderno, String policytype, String flag);
-
-
-    ResponseDataC1 getResponseDataC1(CarModel_Req carModelReq) throws Exception;
-
-}
+//package com.ydtech.modules.ins.service;
+//
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.modules.esm.model.InsTaskImage;
+//import com.ydtech.modules.ins.model.ya.CarModel_Req;
+//import com.ydtech.modules.ins.model.ya.ResponseDataC1;
+//import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
+//import org.springframework.web.bind.annotation.RequestBody;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import java.util.Map;
+//
+//public interface YongAnService {
+//
+//    /**
+//     * 1 车型查询接口
+//     */
+//    HttpResult modelsQuery(CarModel_Req carModelReq);
+//
+//    /**
+//     * 2 报价
+//     */
+//    HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo);
+//
+//    /**
+//     * 3 核保
+//     */
+//    HttpResult audit(String orderno);
+//
+//    /**
+//     * 影像上传
+//     *
+//     * @param record
+//     * @return
+//     */
+//    HttpResult UploadImage(InsTaskImage record);
+//
+//    /**
+//     * 4 获取短信验证码
+//     */
+//    HttpResult getMessage(String orderno);
+//
+//    /**
+//     * 5 获取支付url(提交短信验证码)
+//     */
+//    HttpResult getPayUrl(String orderno, String verificationCode);
+//
+//    /**
+//     * 6 保单信息同步
+//     */
+//    String updatePolicy(Map<String, String> paramMap);
+//
+//    /**
+//     * 7 电子投保单获取
+//     */
+//    HttpResult getPolicyPrint(String orderno, String policytype, String flag);
+//
+//
+//    ResponseDataC1 getResponseDataC1(CarModel_Req carModelReq) throws Exception;
+//
+//}

+ 225 - 225
src/main/java/com/ydtech/modules/ins/service/impl/InsHengbangServiceImpl.java

@@ -1,225 +1,225 @@
-package com.ydtech.modules.ins.service.impl;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.components.HengbangRequestComponents;
-import com.ydtech.components.InsTaskHistoryComponents;
-import com.ydtech.components.OrderComponents;
-import com.ydtech.constants.InsTaskHistoryEnum;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.exception.SystemException;
-import com.ydtech.modules.esm.model.InsTaskImage;
-import com.ydtech.modules.esm.service.InsTaskImageService;
-import com.ydtech.modules.ins.model.InsOrder;
-import com.ydtech.modules.ins.model.hb.HengbangAuditResponse;
-import com.ydtech.modules.ins.model.hb.HengbangLoginInfo;
-import com.ydtech.modules.ins.model.hb.HengbangPolicyPrintResponse;
-import com.ydtech.modules.ins.model.request.BaseResponse;
-import com.ydtech.modules.ins.model.hb.HengbangQuoteResponse;
-import com.ydtech.modules.ins.model.vo.*;
-import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-import com.ydtech.modules.ins.service.InsHengbangService;
-import com.ydtech.modules.ins.service.InsOrderService;
-import com.ydtech.modules.ins.model.vo.req.InsZmUploadImageVo;
-import com.ydtech.utils.CalculateUtils;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ObjectUtils;
-
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-import static com.ydtech.constants.RedisConstant.INS_HENGBANG_KEY;
-
-@Service
-public class InsHengbangServiceImpl implements InsHengbangService {
-
-    private final HengbangRequestComponents hengbangRequestComponents;
-    private final OrderComponents orderComponents;
-    private final StringRedisTemplate redisTemplate;
-    private final InsTaskHistoryComponents insTaskHistoryComponents;
-    private final InsOrderService insOrderService;
-
-    private final InsTaskImageService insTaskImageService;
-
-    public InsHengbangServiceImpl(HengbangRequestComponents hengbangRequestComponents, OrderComponents orderComponents, StringRedisTemplate redisTemplate, InsTaskHistoryComponents insTaskHistoryComponents, InsOrderService insOrderService, InsTaskImageService insTaskImageService) {
-        this.hengbangRequestComponents = hengbangRequestComponents;
-        this.orderComponents = orderComponents;
-        this.redisTemplate = redisTemplate;
-        this.insTaskHistoryComponents = insTaskHistoryComponents;
-        this.insOrderService = insOrderService;
-        this.insTaskImageService = insTaskImageService;
-    }
-
-    @Override
-    public HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
-        // 1.请求报价接口
-        InsOrder insOrder = orderComponents.geneOrder(yaQuoteInfoVo, "恒邦财险", "000003");
-        HengbangQuoteResponse body = hengbangRequestComponents.quote(yaQuoteInfoVo, HengbangQuoteResponse.class);
-        if (body.getCode() == 400) {
-            throw new SystemException(body.getMessage());
-        }
-        // 2.将恒邦的的token存入redis
-        HengbangLoginInfo hengbangLoginInfo = new HengbangLoginInfo(body.getPlyappno(), body.getRisktype(), body.getToken());
-        String s = JSON.toJSONString(hengbangLoginInfo);
-        // 3.将恒邦登录token存入redis
-        redisTemplate.opsForValue().set(INS_HENGBANG_KEY + insOrder.getOrderno(), s);
-        QuoteRespVo quoteRespVo = getQuoteRespVo(insOrder.getOrderno(), body, yaQuoteInfoVo);
-        // 4.插入订单
-        return responseOrder(insOrder, body, quoteRespVo);
-    }
-
-    @Override
-    @Transactional
-    public HttpResult audit(String orderNo) throws IOException {
-        // 1. 获取登录token
-        HengbangLoginInfo loginInfo = getLoginInfo(orderNo);
-        HengbangAuditResponse body = hengbangRequestComponents.audit(loginInfo, HengbangAuditResponse.class);
-        // 2. 获取订单
-        InsOrder order = insOrderService.selectByPk(orderNo);
-        if (body.getCode() == 400) {
-            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.UNDERWRITING_FAILED, order);
-            return HttpResult.error("恒邦--核保失败:" + body.getMessage());
-        }
-        // 4. 更新订单表
-        order.setAuditid(order.getUserid());
-        order.setPaymenttype(body.getPay_url());
-        order.setJqapplyno(body.getEfcProposalNo());
-        order.setSyapplyno(body.getBizProposalNo());
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        order.setSubmittime(sdf.format(new Date()));
-//        order.setJqapplyno(jqApplyno == null ? "" : jqApplyno);
-//        order.setSyapplyno(syApplyno == null ? "" : syApplyno);
-        order.setJqappoint(""); //交强特别约定
-        order.setSyappoint(""); //商业特别约定
-        order.setOrderstatus("5");
-        insOrderService.update(order);
-
-        // 5.成功插入轨迹表
-        insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.UNDERWRITTEN_TO_BE_PAID, order);
-        return HttpResult.ok();
-    }
-
-    @Override
-    public HttpResult submitImage(String orderId) throws IOException {
-        HengbangLoginInfo loginInfo = getLoginInfo(orderId);
-
-        List<InsTaskImage> insTaskImages = insTaskImageService.selectByTaskId(orderId);
-        if (insTaskImages.size() > 0) {
-            InsZmUploadImageVo insZmUploadImageVo = new InsZmUploadImageVo(loginInfo.getBusiNo(), loginInfo.getToken(), insTaskImages);
-            BaseResponse body = hengbangRequestComponents.submitImage(insZmUploadImageVo, BaseResponse.class);
-            if (body.getCode() == 200) {
-                return HttpResult.ok("成功");
-            }
-            throw new SystemException("上传失败");
-        }
-        throw new SystemException("没有上传成功的影像");
-    }
-
-
-    private QuoteRespVo getQuoteRespVo(String orderNo, HengbangQuoteResponse response, YaQuoteInfoVo yaQuoteInfoVo) {
-        double jqPremium = response.getForceCarInsureRisk();
-        double syPremium = response.getBusiTotalPremium();
-
-        QuoteRespVo quoteRespVo = new QuoteRespVo();
-        List<QuoteRiskRespVo> riskList1 = new ArrayList<>();
-        List<QuoteKindRespVo> kindList1 = new ArrayList<>();
-        List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
-        for (RiskInfoVo riskInfoVo : riskList) {
-            if ("0507".equals(riskInfoVo.getRiskCode()) && jqPremium != 0) {
-                QuoteRiskRespVo risk = new QuoteRiskRespVo();
-                risk.setRiskCode("0507");
-                risk.setRiskName("机动车交通事故责任强制保险");
-                risk.setPremium(jqPremium);
-                risk.setStartDate(riskInfoVo.getStartDate());
-                risk.setEndDate(riskInfoVo.getEndDate());
-                riskList1.add(risk);
-            }
-            if ("0510".equals(riskInfoVo.getRiskCode()) && syPremium != 0) {
-                QuoteRiskRespVo risk = new QuoteRiskRespVo();
-                risk.setRiskCode("0510");
-                risk.setRiskName("机动车商业保险");
-                risk.setPremium(syPremium);
-                risk.setStartDate(riskInfoVo.getStartDate());
-                risk.setEndDate(riskInfoVo.getEndDate());
-                riskList1.add(risk);
-            }
-        }
-
-        QuoteKindRespVo kind;
-        Map<String, Double> map = response.getInsurance_type();
-        List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
-
-        for (KindInfoVo kindInfoVo : kindList) {
-            kind = new QuoteKindRespVo();
-            kind.setKindCode(kindInfoVo.getKindCode());
-            kind.setKindName(kindInfoVo.getKindName());
-            kind.setAmount(kindInfoVo.getAmount());
-            kind.setCoveragePremium(map.get(kindInfoVo.getKindCode()));
-            kind.setUnitAmount(kindInfoVo.getUnitAmount());
-            if (!ObjectUtils.isEmpty(kindInfoVo.getDeductibleRate())) {
-                kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
-            }
-            kindList1.add(kind);
-        }
-
-        quoteRespVo.setRiskList(riskList1);
-        quoteRespVo.setKindList(kindList1);
-
-        quoteRespVo.setCiSumPermium(CalculateUtils.add(response.getForceCarInsureRisk(), response.getCarInsureShiptax())); // 交强险和车船税合计
-        quoteRespVo.setSumPermium(response.getCarInsureMain()); // 保费合计
-        quoteRespVo.setTaxAmount(response.getCarInsureShiptax()); // 车船税
-        quoteRespVo.setTotalAdjustRate(1);
-        quoteRespVo.setILogPreUdwMess("0");//评分
-        quoteRespVo.setOrderno(orderNo); //订单号
-        return quoteRespVo;
-    }
-
-    private HttpResult responseOrder(InsOrder insOrder, HengbangQuoteResponse response, QuoteRespVo quoteRespVo) {
-        //保存订单信息
-        insOrder.setJqpremium(response.getForceCarInsureRisk());
-        insOrder.setSypremium(response.getBusiTotalPremium());
-        insOrder.setTaxamount(response.getCarInsureShiptax());
-        insOrder.setSumpremium(response.getCarInsureMain());
-        insOrder.setQuotestatus("1");
-        insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getRiskList())));
-        insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getKindList())));
-        insOrderService.insert(insOrder);
-        //插入轨迹表 报价中
-        insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.IN_QUOTATION, insOrder);
-        return HttpResult.ok("成功", quoteRespVo);
-    }
-
-    @Override
-    @Transactional
-    public HengbangPolicyPrintResponse getPolicyPrint(String orderNo) {
-        InsOrder insOrder = orderComponents.orderExists(orderNo);
-        String licenseNo = insOrder.getLicenseNo();
-        Map<String, Object> map = new HashMap<>();
-        map.put("license", licenseNo);
-        HengbangPolicyPrintResponse response = hengbangRequestComponents.getPolicyPrint(map, HengbangPolicyPrintResponse.class);
-        if (response.getCode() == 200) {
-            insOrder.setJqpolicyno(response.getJqxBusiNo());
-            insOrder.setSypolicyno(response.getSyxBusiNo());
-            insOrder.setOrderstatus(String.valueOf(InsTaskHistoryEnum.COVERED.getState()));//已承保
-//        order.setPaytype(payAppNo);
-//        order.setPaytime(payTime);
-            insOrderService.update(insOrder);
-            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.PAID, insOrder);
-            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.COVERED, insOrder);
-            return response;
-        }
-
-        throw new SystemException("没有查询到保单信息");
-    }
-
-    public HengbangLoginInfo getLoginInfo(String orderNo) {
-        String s = redisTemplate.opsForValue().get(INS_HENGBANG_KEY + orderNo);
-        return JSONObject.parseObject(s, HengbangLoginInfo.class);
-    }
-
-
-}
+//package com.ydtech.modules.ins.service.impl;
+//
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.JSONObject;
+//import com.fasterxml.jackson.core.JsonProcessingException;
+//import com.ydtech.components.HengbangRequestComponents;
+//import com.ydtech.components.InsTaskHistoryComponents;
+//import com.ydtech.components.OrderComponents;
+//import com.ydtech.constants.InsTaskHistoryEnum;
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.exception.SystemException;
+//import com.ydtech.modules.esm.model.InsTaskImage;
+//import com.ydtech.modules.esm.service.InsTaskImageService;
+//import com.ydtech.modules.ins.model.InsOrder;
+//import com.ydtech.modules.ins.model.hb.HengbangAuditResponse;
+//import com.ydtech.modules.ins.model.hb.HengbangLoginInfo;
+//import com.ydtech.modules.ins.model.hb.HengbangPolicyPrintResponse;
+//import com.ydtech.modules.ins.model.request.BaseResponse;
+//import com.ydtech.modules.ins.model.hb.HengbangQuoteResponse;
+//import com.ydtech.modules.ins.model.vo.*;
+//import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
+//import com.ydtech.modules.ins.service.InsHengbangService;
+//import com.ydtech.modules.ins.service.InsOrderService;
+//import com.ydtech.modules.ins.model.vo.req.InsZmUploadImageVo;
+//import com.ydtech.utils.CalculateUtils;
+//import org.springframework.data.redis.core.StringRedisTemplate;
+//import org.springframework.stereotype.Service;
+//import org.springframework.transaction.annotation.Transactional;
+//import org.springframework.util.ObjectUtils;
+//
+//import java.io.IOException;
+//import java.text.SimpleDateFormat;
+//import java.util.*;
+//
+//import static com.ydtech.constants.RedisConstant.INS_HENGBANG_KEY;
+//
+//@Service
+//public class InsHengbangServiceImpl implements InsHengbangService {
+//
+//    private final HengbangRequestComponents hengbangRequestComponents;
+//    private final OrderComponents orderComponents;
+//    private final StringRedisTemplate redisTemplate;
+//    private final InsTaskHistoryComponents insTaskHistoryComponents;
+//    private final InsOrderService insOrderService;
+//
+//    private final InsTaskImageService insTaskImageService;
+//
+//    public InsHengbangServiceImpl(HengbangRequestComponents hengbangRequestComponents, OrderComponents orderComponents, StringRedisTemplate redisTemplate, InsTaskHistoryComponents insTaskHistoryComponents, InsOrderService insOrderService, InsTaskImageService insTaskImageService) {
+//        this.hengbangRequestComponents = hengbangRequestComponents;
+//        this.orderComponents = orderComponents;
+//        this.redisTemplate = redisTemplate;
+//        this.insTaskHistoryComponents = insTaskHistoryComponents;
+//        this.insOrderService = insOrderService;
+//        this.insTaskImageService = insTaskImageService;
+//    }
+//
+//    @Override
+//    public HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
+//        // 1.请求报价接口
+//        InsOrder insOrder = orderComponents.geneOrder(yaQuoteInfoVo, "恒邦财险", "000003");
+//        HengbangQuoteResponse body = hengbangRequestComponents.quote(yaQuoteInfoVo, HengbangQuoteResponse.class);
+//        if (body.getCode() == 400) {
+//            throw new SystemException(body.getMessage());
+//        }
+//        // 2.将恒邦的的token存入redis
+//        HengbangLoginInfo hengbangLoginInfo = new HengbangLoginInfo(body.getPlyappno(), body.getRisktype(), body.getToken());
+//        String s = JSON.toJSONString(hengbangLoginInfo);
+//        // 3.将恒邦登录token存入redis
+//        redisTemplate.opsForValue().set(INS_HENGBANG_KEY + insOrder.getOrderno(), s);
+//        QuoteRespVo quoteRespVo = getQuoteRespVo(insOrder.getOrderno(), body, yaQuoteInfoVo);
+//        // 4.插入订单
+//        return responseOrder(insOrder, body, quoteRespVo);
+//    }
+//
+//    @Override
+//    @Transactional
+//    public HttpResult audit(String orderNo) throws IOException {
+//        // 1. 获取登录token
+//        HengbangLoginInfo loginInfo = getLoginInfo(orderNo);
+//        HengbangAuditResponse body = hengbangRequestComponents.audit(loginInfo, HengbangAuditResponse.class);
+//        // 2. 获取订单
+//        InsOrder order = insOrderService.selectByPk(orderNo);
+//        if (body.getCode() == 400) {
+//            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.UNDERWRITING_FAILED, order);
+//            return HttpResult.error("恒邦--核保失败:" + body.getMessage());
+//        }
+//        // 4. 更新订单表
+//        order.setAuditid(order.getUserid());
+//        order.setPaymenttype(body.getPay_url());
+//        order.setJqapplyno(body.getEfcProposalNo());
+//        order.setSyapplyno(body.getBizProposalNo());
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        order.setSubmittime(sdf.format(new Date()));
+////        order.setJqapplyno(jqApplyno == null ? "" : jqApplyno);
+////        order.setSyapplyno(syApplyno == null ? "" : syApplyno);
+//        order.setJqappoint(""); //交强特别约定
+//        order.setSyappoint(""); //商业特别约定
+//        order.setOrderstatus("5");
+//        insOrderService.update(order);
+//
+//        // 5.成功插入轨迹表
+//        insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.UNDERWRITTEN_TO_BE_PAID, order);
+//        return HttpResult.ok();
+//    }
+//
+//    @Override
+//    public HttpResult submitImage(String orderId) throws IOException {
+//        HengbangLoginInfo loginInfo = getLoginInfo(orderId);
+//
+//        List<InsTaskImage> insTaskImages = insTaskImageService.selectByTaskId(orderId);
+//        if (insTaskImages.size() > 0) {
+//            InsZmUploadImageVo insZmUploadImageVo = new InsZmUploadImageVo(loginInfo.getBusiNo(), loginInfo.getToken(), insTaskImages);
+//            BaseResponse body = hengbangRequestComponents.submitImage(insZmUploadImageVo, BaseResponse.class);
+//            if (body.getCode() == 200) {
+//                return HttpResult.ok("成功");
+//            }
+//            throw new SystemException("上传失败");
+//        }
+//        throw new SystemException("没有上传成功的影像");
+//    }
+//
+//
+//    private QuoteRespVo getQuoteRespVo(String orderNo, HengbangQuoteResponse response, YaQuoteInfoVo yaQuoteInfoVo) {
+//        double jqPremium = response.getForceCarInsureRisk();
+//        double syPremium = response.getBusiTotalPremium();
+//
+//        QuoteRespVo quoteRespVo = new QuoteRespVo();
+//        List<QuoteRiskRespVo> riskList1 = new ArrayList<>();
+//        List<QuoteKindRespVo> kindList1 = new ArrayList<>();
+//        List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
+//        for (RiskInfoVo riskInfoVo : riskList) {
+//            if ("0507".equals(riskInfoVo.getRiskCode()) && jqPremium != 0) {
+//                QuoteRiskRespVo risk = new QuoteRiskRespVo();
+//                risk.setRiskCode("0507");
+//                risk.setRiskName("机动车交通事故责任强制保险");
+//                risk.setPremium(jqPremium);
+//                risk.setStartDate(riskInfoVo.getStartDate());
+//                risk.setEndDate(riskInfoVo.getEndDate());
+//                riskList1.add(risk);
+//            }
+//            if ("0510".equals(riskInfoVo.getRiskCode()) && syPremium != 0) {
+//                QuoteRiskRespVo risk = new QuoteRiskRespVo();
+//                risk.setRiskCode("0510");
+//                risk.setRiskName("机动车商业保险");
+//                risk.setPremium(syPremium);
+//                risk.setStartDate(riskInfoVo.getStartDate());
+//                risk.setEndDate(riskInfoVo.getEndDate());
+//                riskList1.add(risk);
+//            }
+//        }
+//
+//        QuoteKindRespVo kind;
+//        Map<String, Double> map = response.getInsurance_type();
+//        List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
+//
+//        for (KindInfoVo kindInfoVo : kindList) {
+//            kind = new QuoteKindRespVo();
+//            kind.setKindCode(kindInfoVo.getKindCode());
+//            kind.setKindName(kindInfoVo.getKindName());
+//            kind.setAmount(kindInfoVo.getAmount());
+//            kind.setCoveragePremium(map.get(kindInfoVo.getKindCode()));
+//            kind.setUnitAmount(kindInfoVo.getUnitAmount());
+//            if (!ObjectUtils.isEmpty(kindInfoVo.getDeductibleRate())) {
+//                kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
+//            }
+//            kindList1.add(kind);
+//        }
+//
+//        quoteRespVo.setRiskList(riskList1);
+//        quoteRespVo.setKindList(kindList1);
+//
+//        quoteRespVo.setCiSumPermium(CalculateUtils.add(response.getForceCarInsureRisk(), response.getCarInsureShiptax())); // 交强险和车船税合计
+//        quoteRespVo.setSumPermium(response.getCarInsureMain()); // 保费合计
+//        quoteRespVo.setTaxAmount(response.getCarInsureShiptax()); // 车船税
+//        quoteRespVo.setTotalAdjustRate(1);
+//        quoteRespVo.setILogPreUdwMess("0");//评分
+//        quoteRespVo.setOrderno(orderNo); //订单号
+//        return quoteRespVo;
+//    }
+//
+//    private HttpResult responseOrder(InsOrder insOrder, HengbangQuoteResponse response, QuoteRespVo quoteRespVo) {
+//        //保存订单信息
+//        insOrder.setJqpremium(response.getForceCarInsureRisk());
+//        insOrder.setSypremium(response.getBusiTotalPremium());
+//        insOrder.setTaxamount(response.getCarInsureShiptax());
+//        insOrder.setSumpremium(response.getCarInsureMain());
+//        insOrder.setQuotestatus("1");
+//        insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getRiskList())));
+//        insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getKindList())));
+//        insOrderService.insert(insOrder);
+//        //插入轨迹表 报价中
+//        insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.IN_QUOTATION, insOrder);
+//        return HttpResult.ok("成功", quoteRespVo);
+//    }
+//
+//    @Override
+//    @Transactional
+//    public HengbangPolicyPrintResponse getPolicyPrint(String orderNo) {
+//        InsOrder insOrder = orderComponents.orderExists(orderNo);
+//        String licenseNo = insOrder.getLicenseNo();
+//        Map<String, Object> map = new HashMap<>();
+//        map.put("license", licenseNo);
+//        HengbangPolicyPrintResponse response = hengbangRequestComponents.getPolicyPrint(map, HengbangPolicyPrintResponse.class);
+//        if (response.getCode() == 200) {
+//            insOrder.setJqpolicyno(response.getJqxBusiNo());
+//            insOrder.setSypolicyno(response.getSyxBusiNo());
+//            insOrder.setOrderstatus(String.valueOf(InsTaskHistoryEnum.COVERED.getState()));//已承保
+////        order.setPaytype(payAppNo);
+////        order.setPaytime(payTime);
+//            insOrderService.update(insOrder);
+//            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.PAID, insOrder);
+//            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.COVERED, insOrder);
+//            return response;
+//        }
+//
+//        throw new SystemException("没有查询到保单信息");
+//    }
+//
+//    public HengbangLoginInfo getLoginInfo(String orderNo) {
+//        String s = redisTemplate.opsForValue().get(INS_HENGBANG_KEY + orderNo);
+//        return JSONObject.parseObject(s, HengbangLoginInfo.class);
+//    }
+//
+//
+//}

+ 504 - 504
src/main/java/com/ydtech/modules/ins/service/impl/InsRenbaoServiceImpl.java

@@ -1,504 +1,504 @@
-package com.ydtech.modules.ins.service.impl;
-
-import com.alibaba.fastjson.JSONObject;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.ydtech.components.OrderComponents;
-import com.ydtech.components.RenbaoRequestComponents;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.model.SysDept;
-import com.ydtech.modules.admin.model.SysUser;
-import com.ydtech.modules.admin.service.SysDeptService;
-import com.ydtech.modules.admin.service.SysUserService;
-import com.ydtech.modules.esm.model.EsmAgreement;
-import com.ydtech.modules.esm.model.EsmAgreementProd;
-import com.ydtech.modules.esm.service.*;
-import com.ydtech.modules.ins.convert.RenbaoCarModelConvert;
-import com.ydtech.modules.ins.convert.RenbaoQuoteResponseConvert;
-import com.ydtech.modules.ins.model.InsOrder;
-import com.ydtech.modules.ins.model.InsTaskHistory;
-import com.ydtech.modules.ins.model.request.*;
-import com.ydtech.modules.ins.model.vo.*;
-import com.ydtech.modules.ins.model.ya.*;
-import com.ydtech.modules.ins.service.*;
-import com.ydtech.utils.idgen.IdGenerate;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-import static com.ydtech.constants.RedisConstant.INS_RENBAO_KEY;
-
-
-@Slf4j
-@Service
-public class InsRenbaoServiceImpl implements InsRenbaoService {
-
-    private final StringRedisTemplate redisTemplate;
-    private final InsOrderService insOrderService;
-    private final SysUserService sysUserService;
-    private final SysDeptService sysDeptService;
-    private final EsmAgreementService esmAgreementService;
-    private final EsmAgreementProdService esmAgreementProdService;
-    private final InsTaskHistoryService insTaskHistoryService;
-    private static final ObjectMapper objectMapper = new ObjectMapper();
-    private final OrderComponents orderComponents;
-    private final RenbaoRequestComponents renbaoRequestComponents;
-
-    public InsRenbaoServiceImpl(StringRedisTemplate redisTemplate, InsOrderService insOrderService, SysUserService sysUserService, SysDeptService sysDeptService, EsmAgreementService esmAgreementService, EsmAgreementProdService esmAgreementProdService, InsTaskHistoryService insTaskHistoryService, OrderComponents orderComponents, RenbaoRequestComponents renbaoRequestComponents) {
-        this.redisTemplate = redisTemplate;
-        this.insOrderService = insOrderService;
-        this.sysUserService = sysUserService;
-        this.sysDeptService = sysDeptService;
-        this.esmAgreementService = esmAgreementService;
-        this.esmAgreementProdService = esmAgreementProdService;
-        this.renbaoRequestComponents = renbaoRequestComponents;
-        this.insTaskHistoryService = insTaskHistoryService;
-        this.orderComponents = orderComponents;
-    }
-
-    @Override
-    public HttpResult licensePlateQuery(String licensePlate) throws Exception {
-        Map<String, Object> map = new HashMap<>();
-        map.put("license", licensePlate);
-        RenbaoCarSearchResponse body = renbaoRequestComponents.licensePlateQuery(map, RenbaoCarSearchResponse.class);
-        if (body == null) {
-            throw new SystemException("人保接口请求失败");
-        }
-        if (body.getError() != null) {
-            throw new SystemException("人保查询车型失败");
-        }
-        RenbaoCarInfos carInfos = body.getCarInfos();
-        RenbaoCarModel result = carInfos.getResult().get(0);
-
-        // 调用永安车型具体查询
-        CarModelDTO carModelDTO = RenbaoCarModelConvert.INSTANCE.renbaoCar2YonganCar(result);
-        Map<String, Object> map1 = new HashMap<>();
-        map1.put("licenseNo", carInfos.getLicenseNo());
-        map1.put("frameNo", carInfos.getFrameNo());
-        map1.put("engineNo", carInfos.getEngineNo());
-        map1.put("carModel", carModelDTO);
-        return HttpResult.ok(map1);
-    }
-
-    @Override
-    public HttpResult modelsQuery(CarModel_Req carModelReq) {
-        if (StringUtils.isEmpty(carModelReq.getModelName())) {
-            throw new SystemException("车辆信息不能为空");
-        }
-        String modelName = carModelReq.getModelName();
-        Map<String, Object> map = new HashMap<>();
-        map.put("brandname", modelName);
-        RenbaoBrandSearchResponse body = renbaoRequestComponents.modelsQuery(map, RenbaoBrandSearchResponse.class);
-        if (body == null) {
-            throw new SystemException("人保接口请求失败");
-        }
-        if (body.getError() != null) {
-            throw new SystemException("人保查询车型失败");
-        }
-        List<RenbaoCarModel> result = body.getResult();
-        List<CarModelDTO> carModel = RenbaoCarModelConvert.INSTANCE.map(result);
-        return HttpResult.ok(carModel);
-    }
-
-    @Override
-    public HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
-
-        // 1.生成订单信息
-        InsOrder insOrder = geneOrder(yaQuoteInfoVo);
-        // 2.封装人保请求
-        RenbaoQuoteResponse body = renbaoRequestComponents.quote(yaQuoteInfoVo, RenbaoQuoteResponse.class);
-        if (body == null) {
-            throw new SystemException("人保接口请求失败");
-        }
-        log.info(body.toString());
-        if (body.getToken() == null) {
-            String message = "人保--报价失败:" + body.getError();
-            log.info(message);
-            return HttpResult.error(message);
-        }
-        // 3.将人保的token存入redis
-        RenbaoAuditBody renbaoAuditBody = RenbaoQuoteResponseConvert.INSTANCE.quote2Audit(body);
-        String s = objectMapper.writeValueAsString(renbaoAuditBody);
-        redisTemplate.opsForValue().set(INS_RENBAO_KEY + insOrder.getOrderno(), s);
-
-        RenbaoQuoteRespVo quoteRespVo = getQuoteRespVo(insOrder.getOrderno(), Integer.parseInt(yaQuoteInfoVo.getCarInfo().getSeatCount()), body, yaQuoteInfoVo);
-        // 4.插入订单
-        return responseOrder(insOrder, body, quoteRespVo);
-    }
-
-
-    @Override
-    public HttpResult audit(String orderno) throws IOException {
-        InsOrder order = insOrderService.selectByPk(orderno);
-        if (order == null) {
-            return HttpResult.error("订单不存在");
-        }
-
-        // 1.通过redis获取请求人保参数token
-        String s = redisTemplate.opsForValue().get(INS_RENBAO_KEY + order.getOrderno());
-        RenbaoAuditBody response = objectMapper.readValue(s, RenbaoAuditBody.class);
-        // 2.请求人保核保接口
-//        List<InsTaskImage> insTaskImages = insTaskImageService.selectByTaskId(orderno);
-//        response.setInsTaskImageList(insTaskImages);
-        Map body = renbaoRequestComponents.audit(response, Map.class);
-        if (body == null) {
-            throw new SystemException("人保接口请求失败");
-        }
-
-        // 3.核保不通过插入轨迹表
-        if (StringUtils.isEmpty(body.get("epolicyUrlImg"))) {
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            InsTaskHistory history = new InsTaskHistory();
-            history.setId(String.valueOf(new Date().getTime()));
-            history.setCompany(order.getInscompany());
-            history.setTaskid(order.getOrderno());
-            history.setOperatorid(order.getUserid());
-            history.setOperator(order.getUsername());
-            history.setCreatetime(sdf.format(new Date()));
-            history.setStatus("4");
-            history.setRemark("核保不通过");
-            insTaskHistoryService.insert(history);
-            return HttpResult.error("人保--核保失败:" + body.get("error"));
-        }
-
-        // 4. 更新订单表
-        String epolicyUrlImg = (String) body.get("epolicyUrlImg");
-        order.setAuditid(order.getUserid());
-        order.setPaymenttype(epolicyUrlImg);
-//        order.setOrderstatus(orderstatus);
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        order.setSubmittime(sdf.format(new Date()));
-//        order.setJqapplyno(jqApplyno == null ? "" : jqApplyno);
-//        order.setSyapplyno(syApplyno == null ? "" : syApplyno);
-        order.setJqappoint(""); //交强特别约定
-        order.setSyappoint(""); //商业特别约定
-        order.setOrderstatus("5");
-        insOrderService.update(order);
-
-        // 5.成功插入轨迹表
-        InsTaskHistory history = new InsTaskHistory();
-        history.setId(String.valueOf(new Date().getTime()));
-        history.setCompany(order.getInscompany());
-        history.setTaskid(order.getOrderno());
-        history.setOperatorid(order.getUserid());
-        history.setOperator(order.getUsername());
-        history.setCreatetime(sdf.format(new Date()));
-        history.setStatus(order.getOrderstatus());
-        history.setRemark("已核保待缴费");
-        insTaskHistoryService.insert(history);
-        return HttpResult.ok();
-    }
-
-    /**
-     * 生成订单信息
-     *
-     * @param record
-     * @return InsOrder
-     */
-    protected InsOrder geneOrder(YaQuoteInfoVo record) {
-        InsOrder insOrder = new InsOrder();
-        String orderno = IdGenerate.nextId();
-        insOrder.setOrderno(orderno);
-        insOrder.setQuoteno(String.valueOf(record.getQuoteno()));
-        insOrder.setOrderstatus("0");  // 0 报价 1 待核保 2 已核保待缴费 3 核保退回 4 核保不通过
-        insOrder.setFrameNo(record.getCarInfo().getFrameNo());
-        insOrder.setLicenseNo(record.getCarInfo().getLicenseNo());
-
-        insOrder.setCarinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getCarInfo())));
-        SysUser user = sysUserService.getById(record.getUserId());
-        if (user == null) {
-            throw new SystemException("userId不存在");
-        }
-        if (StringUtils.isEmpty(record.getCarInfo().getFrameNo())) {
-            throw new SystemException("车架号不能为空");
-        }
-        // 关闭订单 不含当前报价号
-        InsOrder orderObj = insOrderService.queryQuoteno(new Object[]{record.getUserId(), record.getCarInfo().getFrameNo(), record.getQuoteno()});
-        if (orderObj != null) {
-            List<InsOrder> listo = insOrderService.selectList(" where quoteno=?", new Object[]{orderObj.getQuoteno()});
-            String status = "0";
-            for (InsOrder order : listo) {
-                if (!"0".equals(order.getOrderstatus())) {
-                    status = order.getOrderstatus();
-                }
-            }
-            //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭
-            if ("0".equals(status)) {//关闭订单
-                insOrderService.closeOrder(orderObj.getOrderno(), "99");
-            } else if (!"99".equals(status)) {
-                throw new SystemException("此车辆已提交核保,重新报价请先关闭订单,任务号:" + orderObj.getQuoteno());
-            }
-        }
-        insOrder.setUserid(user.getId());
-        insOrder.setUsername(user.getName());
-        insOrder.setDeptid(user.getDeptId());
-        SysDept dept = sysDeptService.getById(user.getDeptId());
-        insOrder.setDeptname(dept == null ? "" : dept.getName());
-
-        double retailRate = orderComponents.countRetail(user.getDeptId(), user.getId());
-
-        insOrder.setOwnerinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getOwnerInfo())));
-        insOrder.setApplyinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getPolicyHolderInfo())));
-        insOrder.setInsureinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getInsuredPersonInfo())));
-
-        insOrder.setInsuredname(record.getPolicyHolderInfo().getName());
-
-        List<RiskInfoVo> risks = record.getRiskList();
-        for (RiskInfoVo risk : risks) {
-            if ("0507".equals(risk.getRiskCode())) {//交强
-                insOrder.setJqstartdate(risk.getStartDate());
-                insOrder.setJqenddate(risk.getEndDate());
-            }
-            if ("0510".equals(risk.getRiskCode())) {//商业
-                insOrder.setSystartdate(risk.getStartDate());
-                insOrder.setSyenddate(risk.getEndDate());
-            }
-        }
-
-        List<KindInfoVo> kinds = record.getKindList();
-        String productId = "";
-        String productname = "";
-
-        List<EsmAgreement> agreements = esmAgreementService.selectList(" where t.agreestatus='1' and t.insure1 like ? " + "and exists (select 1 from esm_agreement_prod t2 where t.id=t2.agreeid and t2.authcomcode like ?)", new Object[]{"000001%", "%" + user.getDeptId() + "%"});
-        if (agreements.size() == 0) {
-            throw new SystemException("不存在有效协议或机构" + user.getDeptId() + "未授权");
-        }
-        String agreeid = agreements.get(0).getId();
-        insOrder.setAgreeid(agreeid);
-        //匹配协议,获取费用
-        StringBuffer whereStr = new StringBuffer();
-        List params = new ArrayList();// where t.agreeid=? and t.productid in ()
-        whereStr.append("where t.agreeid=? ");
-        params.add(agreeid);
-        if (risks.size() == 1 && "0507".equals(risks.get(0).getRiskCode())) {
-            productId = "ZG01001";
-            productname = "单交强";
-            whereStr.append(" and t.productid=?");
-            params.add(productId);
-        } else if (risks.size() == 1 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
-            productId = "ZG01002";
-            productname = "单三者";
-            whereStr.append(" and t.productid=?");
-            params.add(productId);
-        } else if (risks.size() == 1) {
-            productId = "ZG01003";
-            productname = "单商业";
-            whereStr.append(" and t.productid=?");
-            params.add(productId);
-        } else if (risks.size() == 2 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
-            productId = "ZG01004";
-            productname = "交强+三者";
-            whereStr.append(" and t.productid in (?,?)");
-            params.add("ZG01004");
-            params.add("ZG01005");
-        } else {
-            productId = "ZG01006";
-            productname = "交强+商业";
-            whereStr.append(" and t.productid in (?,?)");
-            params.add("ZG01006");
-            params.add("ZG01007");
-        }
-
-        insOrder.setProductid(productId);
-        insOrder.setProduct(productname);
-        List<EsmAgreementProd> agreementProds = esmAgreementProdService.selectList(whereStr.toString(), params.toArray());
-        for (EsmAgreementProd prod : agreementProds) {
-            if ("ZG01001".equals(prod.getProductid()) || "ZG01004".equals(prod.getProductid()) || "ZG01006".equals(prod.getProductid())) {
-                insOrder.setFeerate(prod.getProductrate());//交强手续费比例
-                insOrder.setJqdiscountrate(prod.getFeerate() - retailRate); //交强优惠比例=业务员绩效-分销费用
-            } else {
-                insOrder.setDisrate(prod.getProductrate()); //商业手续费比例
-                insOrder.setSydiscountrate(prod.getFeerate() - retailRate); //商业优惠比例=业务员绩效-分销费用
-            }
-            insOrder.setProductid(prod.getId());
-        }
-
-        insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(record.getRiskList())));
-        insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(record.getKindList())));
-        SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
-        insOrder.setInscompany("人保财险");
-        insOrder.setCreatetime(sdfm.format(new Date()));
-
-        return insOrder;
-
-    }
-
-
-    private RenbaoQuoteRespVo getQuoteRespVo(String orderNo, int seatCount, RenbaoQuoteResponse response, YaQuoteInfoVo yaQuoteInfoVo) {
-
-        double jqPremium = response.getKindCode_jiaoqiang();
-        double syPremium = response.getKindCode_shangye();
-
-        RenbaoQuoteRespVo quoteRespVo = new RenbaoQuoteRespVo();
-
-        List<QuoteRiskRespVo> riskList1 = new ArrayList<>();
-        List<QuoteKindRespVo> kindList1 = new ArrayList<>();
-        List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
-        for (RiskInfoVo riskInfoVo : riskList) {
-
-            if ("0507".equals(riskInfoVo.getRiskCode()) && jqPremium != 0) {
-                QuoteRiskRespVo risk = new QuoteRiskRespVo();
-                risk.setRiskCode("0507");
-                risk.setRiskName("机动车交通事故责任强制保险");
-                risk.setPremium(jqPremium);
-                risk.setStartDate(riskInfoVo.getStartDate());
-                risk.setEndDate(riskInfoVo.getEndDate());
-                riskList1.add(risk);
-            }
-            if ("0510".equals(riskInfoVo.getRiskCode()) && syPremium != 0) {
-                QuoteRiskRespVo risk = new QuoteRiskRespVo();
-                risk.setRiskCode("0510");
-                risk.setRiskName("机动车商业保险");
-                risk.setPremium(syPremium);
-                risk.setStartDate(riskInfoVo.getStartDate());
-                risk.setEndDate(riskInfoVo.getEndDate());
-                riskList1.add(risk);
-            }
-        }
-
-        QuoteKindRespVo kind;
-        List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
-        for (KindInfoVo kindInfoVo : kindList) {
-            if ("A".equals(kindInfoVo.getKindCode())) {
-                kind = new QuoteKindRespVo();
-                kind.setKindCode("A");
-                kind.setKindName("车辆损失保险");
-                kind.setAmount(kindInfoVo.getAmount());
-                kind.setCoveragePremium(response.getKindCode_csx());
-                kindList1.add(kind);
-            }
-            if ("B".equals(kindInfoVo.getKindCode())) {
-                kind = new QuoteKindRespVo();
-                kind.setKindCode("B");
-                kind.setKindName("第三者责任险");
-                kind.setAmount(kindInfoVo.getAmount());
-                kind.setCoveragePremium(response.getKindCode_dsz());
-                kindList1.add(kind);
-            }
-            if ("D3".equals(kindInfoVo.getKindCode())) {
-                kind = new QuoteKindRespVo();
-                kind.setKindCode("D3");
-                kind.setKindName("司机责任险");
-                kind.setAmount(kindInfoVo.getAmount());
-                kind.setCoveragePremium(response.getKindCode_cssj());
-                kind.setUnitAmount(kindInfoVo.getUnitAmount());
-                kindList1.add(kind);
-            }
-            if ("D4".equals(kindInfoVo.getKindCode())) {
-                int seat = seatCount - 1;
-                kind = new QuoteKindRespVo();
-                kind.setKindCode("D4");
-                kind.setKindName("乘客责任险");
-                kind.setAmount(kindInfoVo.getAmount() / seat);
-                kind.setAmount(kindInfoVo.getAmount());
-                kind.setCoveragePremium(response.getKindCode_csck());
-                kind.setQuantity(String.valueOf(seat));
-                kind.setUnitAmount(kindInfoVo.getUnitAmount());
-                kindList1.add(kind);
-            }
-            if ("MJ1".equals(kindInfoVo.getKindCode())) {
-                kind = new QuoteKindRespVo();
-                kind.setKindCode("MJ1");
-                kind.setKindName("绝对免赔率特约险(车损)");
-                kind.setAmount(kindInfoVo.getAmount());
-                kind.setCoveragePremium(response.getKindCode_mplcs());
-                kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
-                kindList1.add(kind);
-            }
-            if ("MJ2".equals(kindInfoVo.getKindCode())) {
-                kind = new QuoteKindRespVo();
-                kind.setKindCode("MJ2");
-                kind.setKindName("绝对免赔率特约险(三者)");
-                kind.setAmount(kindInfoVo.getAmount());
-                kind.setCoveragePremium(response.getKindCode_dsz());
-                kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
-                kindList1.add(kind);
-            }
-            if ("MJ3".equals(kindInfoVo.getKindCode())) {
-                kind = new QuoteKindRespVo();
-                kind.setKindCode("MJ3");
-                kind.setKindName("绝对免赔率特约险(司机)");
-                kind.setAmount(kindInfoVo.getAmount());
-                kind.setCoveragePremium(response.getKindCode_sj());
-                kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
-                kindList1.add(kind);
-            }
-            if ("MJ4".equals(kindInfoVo.getKindCode())) {
-                kind = new QuoteKindRespVo();
-                kind.setKindCode("MJ4");
-                kind.setKindName("绝对免赔率特约险(乘客)");
-                kind.setAmount(kindInfoVo.getAmount());
-                kind.setCoveragePremium(response.getKindCode_ck());
-                kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
-                kindList1.add(kind);
-            }
-            if ("L".equals(kindInfoVo.getKindCode())) {
-                kind = new QuoteKindRespVo();
-                kind.setKindCode("L");
-                kind.setKindName("车身划痕损失险");
-                kind.setAmount(kindInfoVo.getAmount());
-                kind.setCoveragePremium(response.getKindCode_huahen());
-                kindList1.add(kind);
-            }
-            if ("BD".equals(kindInfoVo.getKindCode())) {
-                kind = new QuoteKindRespVo();
-                kind.setKindCode("BD");
-                kind.setKindName("法定节假日限额翻倍险");
-                kind.setAmount(kindInfoVo.getAmount());
-                kind.setCoveragePremium(response.getKindCode_fdfb());
-                kindList1.add(kind);
-            }
-        }
-
-        quoteRespVo.setDrivingAccidentPremium(response.getKindCode_EAD());
-        quoteRespVo.setRiskList(riskList1);
-        quoteRespVo.setKindList(kindList1);
-
-        quoteRespVo.setCiSumPermium(response.getKindCode_jiaoqiang() + response.getKindCode_chechuan());//交强险和车船税合计
-        quoteRespVo.setSumPermium(response.getAll_price());//保费合计
-        quoteRespVo.setTaxAmount(response.getKindCode_chechuan());//车船税
-        quoteRespVo.setTotalAdjustRate(1);
-        quoteRespVo.setILogPreUdwMess("0");//评分
-        quoteRespVo.setOrderno(orderNo); //订单号
-        return quoteRespVo;
-    }
-
-
-    private HttpResult responseOrder(InsOrder insOrder, RenbaoQuoteResponse response, QuoteRespVo quoteRespVo) {
-        //保存订单信息
-        insOrder.setJqpremium(response.getKindCode_jiaoqiang());
-        insOrder.setSypremium(response.getKindCode_shangye());
-        insOrder.setTaxamount(response.getKindCode_chechuan());
-        insOrder.setSumpremium(response.getAll_price());
-        insOrder.setQuotestatus("1");
-        insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getRiskList())));
-        insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getKindList())));
-        insOrder.setJypremium(response.getKindCode_EAD());
-        insOrderService.insert(insOrder);
-
-        //插入轨迹表
-        InsTaskHistory history = new InsTaskHistory();
-        history.setId(String.valueOf(new Date().getTime()));
-        history.setCompany(insOrder.getInscompany());
-        history.setTaskid(insOrder.getOrderno());
-        history.setOperatorid(insOrder.getUserid());
-        history.setOperator(insOrder.getUsername());
-        SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        history.setCreatetime(sdfm.format(new Date()));
-        history.setOperator(insOrder.getUsername());
-        history.setStatus("0");
-        history.setRemark("报价中");
-        insTaskHistoryService.insert(history);
-
-        return HttpResult.ok("成功", quoteRespVo);
-    }
-
-
-}
+//package com.ydtech.modules.ins.service.impl;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.fasterxml.jackson.core.JsonProcessingException;
+//import com.fasterxml.jackson.databind.ObjectMapper;
+//import com.ydtech.components.OrderComponents;
+//import com.ydtech.components.RenbaoRequestComponents;
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.exception.SystemException;
+//import com.ydtech.modules.admin.model.SysDept;
+//import com.ydtech.modules.admin.model.SysUser;
+//import com.ydtech.modules.admin.service.SysDeptService;
+//import com.ydtech.modules.admin.service.SysUserService;
+//import com.ydtech.modules.esm.model.EsmAgreement;
+//import com.ydtech.modules.esm.model.EsmAgreementProd;
+//import com.ydtech.modules.esm.service.*;
+//import com.ydtech.modules.ins.convert.RenbaoCarModelConvert;
+//import com.ydtech.modules.ins.convert.RenbaoQuoteResponseConvert;
+//import com.ydtech.modules.ins.model.InsOrder;
+//import com.ydtech.modules.ins.model.InsTaskHistory;
+//import com.ydtech.modules.ins.model.request.*;
+//import com.ydtech.modules.ins.model.vo.*;
+//import com.ydtech.modules.ins.model.ya.*;
+//import com.ydtech.modules.ins.service.*;
+//import com.ydtech.utils.idgen.IdGenerate;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.data.redis.core.StringRedisTemplate;
+//import org.springframework.stereotype.Service;
+//import org.springframework.util.StringUtils;
+//
+//import java.io.IOException;
+//import java.text.SimpleDateFormat;
+//import java.util.*;
+//
+//import static com.ydtech.constants.RedisConstant.INS_RENBAO_KEY;
+//
+//
+//@Slf4j
+//@Service
+//public class InsRenbaoServiceImpl implements InsRenbaoService {
+//
+//    private final StringRedisTemplate redisTemplate;
+//    private final InsOrderService insOrderService;
+//    private final SysUserService sysUserService;
+//    private final SysDeptService sysDeptService;
+//    private final EsmAgreementService esmAgreementService;
+//    private final EsmAgreementProdService esmAgreementProdService;
+//    private final InsTaskHistoryService insTaskHistoryService;
+//    private static final ObjectMapper objectMapper = new ObjectMapper();
+//    private final OrderComponents orderComponents;
+//    private final RenbaoRequestComponents renbaoRequestComponents;
+//
+//    public InsRenbaoServiceImpl(StringRedisTemplate redisTemplate, InsOrderService insOrderService, SysUserService sysUserService, SysDeptService sysDeptService, EsmAgreementService esmAgreementService, EsmAgreementProdService esmAgreementProdService, InsTaskHistoryService insTaskHistoryService, OrderComponents orderComponents, RenbaoRequestComponents renbaoRequestComponents) {
+//        this.redisTemplate = redisTemplate;
+//        this.insOrderService = insOrderService;
+//        this.sysUserService = sysUserService;
+//        this.sysDeptService = sysDeptService;
+//        this.esmAgreementService = esmAgreementService;
+//        this.esmAgreementProdService = esmAgreementProdService;
+//        this.renbaoRequestComponents = renbaoRequestComponents;
+//        this.insTaskHistoryService = insTaskHistoryService;
+//        this.orderComponents = orderComponents;
+//    }
+//
+//    @Override
+//    public HttpResult licensePlateQuery(String licensePlate) throws Exception {
+//        Map<String, Object> map = new HashMap<>();
+//        map.put("license", licensePlate);
+//        RenbaoCarSearchResponse body = renbaoRequestComponents.licensePlateQuery(map, RenbaoCarSearchResponse.class);
+//        if (body == null) {
+//            throw new SystemException("人保接口请求失败");
+//        }
+//        if (body.getError() != null) {
+//            throw new SystemException("人保查询车型失败");
+//        }
+//        RenbaoCarInfos carInfos = body.getCarInfos();
+//        RenbaoCarModel result = carInfos.getResult().get(0);
+//
+//        // 调用永安车型具体查询
+//        CarModelDTO carModelDTO = RenbaoCarModelConvert.INSTANCE.renbaoCar2YonganCar(result);
+//        Map<String, Object> map1 = new HashMap<>();
+//        map1.put("licenseNo", carInfos.getLicenseNo());
+//        map1.put("frameNo", carInfos.getFrameNo());
+//        map1.put("engineNo", carInfos.getEngineNo());
+//        map1.put("carModel", carModelDTO);
+//        return HttpResult.ok(map1);
+//    }
+//
+//    @Override
+//    public HttpResult modelsQuery(CarModel_Req carModelReq) {
+//        if (StringUtils.isEmpty(carModelReq.getModelName())) {
+//            throw new SystemException("车辆信息不能为空");
+//        }
+//        String modelName = carModelReq.getModelName();
+//        Map<String, Object> map = new HashMap<>();
+//        map.put("brandname", modelName);
+//        RenbaoBrandSearchResponse body = renbaoRequestComponents.modelsQuery(map, RenbaoBrandSearchResponse.class);
+//        if (body == null) {
+//            throw new SystemException("人保接口请求失败");
+//        }
+//        if (body.getError() != null) {
+//            throw new SystemException("人保查询车型失败");
+//        }
+//        List<RenbaoCarModel> result = body.getResult();
+//        List<CarModelDTO> carModel = RenbaoCarModelConvert.INSTANCE.map(result);
+//        return HttpResult.ok(carModel);
+//    }
+//
+//    @Override
+//    public HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
+//
+//        // 1.生成订单信息
+//        InsOrder insOrder = geneOrder(yaQuoteInfoVo);
+//        // 2.封装人保请求
+//        RenbaoQuoteResponse body = renbaoRequestComponents.quote(yaQuoteInfoVo, RenbaoQuoteResponse.class);
+//        if (body == null) {
+//            throw new SystemException("人保接口请求失败");
+//        }
+//        log.info(body.toString());
+//        if (body.getToken() == null) {
+//            String message = "人保--报价失败:" + body.getError();
+//            log.info(message);
+//            return HttpResult.error(message);
+//        }
+//        // 3.将人保的token存入redis
+//        RenbaoAuditBody renbaoAuditBody = RenbaoQuoteResponseConvert.INSTANCE.quote2Audit(body);
+//        String s = objectMapper.writeValueAsString(renbaoAuditBody);
+//        redisTemplate.opsForValue().set(INS_RENBAO_KEY + insOrder.getOrderno(), s);
+//
+//        RenbaoQuoteRespVo quoteRespVo = getQuoteRespVo(insOrder.getOrderno(), Integer.parseInt(yaQuoteInfoVo.getCarInfo().getSeatCount()), body, yaQuoteInfoVo);
+//        // 4.插入订单
+//        return responseOrder(insOrder, body, quoteRespVo);
+//    }
+//
+//
+//    @Override
+//    public HttpResult audit(String orderno) throws IOException {
+//        InsOrder order = insOrderService.selectByPk(orderno);
+//        if (order == null) {
+//            return HttpResult.error("订单不存在");
+//        }
+//
+//        // 1.通过redis获取请求人保参数token
+//        String s = redisTemplate.opsForValue().get(INS_RENBAO_KEY + order.getOrderno());
+//        RenbaoAuditBody response = objectMapper.readValue(s, RenbaoAuditBody.class);
+//        // 2.请求人保核保接口
+////        List<InsTaskImage> insTaskImages = insTaskImageService.selectByTaskId(orderno);
+////        response.setInsTaskImageList(insTaskImages);
+//        Map body = renbaoRequestComponents.audit(response, Map.class);
+//        if (body == null) {
+//            throw new SystemException("人保接口请求失败");
+//        }
+//
+//        // 3.核保不通过插入轨迹表
+//        if (StringUtils.isEmpty(body.get("epolicyUrlImg"))) {
+//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//            InsTaskHistory history = new InsTaskHistory();
+//            history.setId(String.valueOf(new Date().getTime()));
+//            history.setCompany(order.getInscompany());
+//            history.setTaskid(order.getOrderno());
+//            history.setOperatorid(order.getUserid());
+//            history.setOperator(order.getUsername());
+//            history.setCreatetime(sdf.format(new Date()));
+//            history.setStatus("4");
+//            history.setRemark("核保不通过");
+//            insTaskHistoryService.insert(history);
+//            return HttpResult.error("人保--核保失败:" + body.get("error"));
+//        }
+//
+//        // 4. 更新订单表
+//        String epolicyUrlImg = (String) body.get("epolicyUrlImg");
+//        order.setAuditid(order.getUserid());
+//        order.setPaymenttype(epolicyUrlImg);
+////        order.setOrderstatus(orderstatus);
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        order.setSubmittime(sdf.format(new Date()));
+////        order.setJqapplyno(jqApplyno == null ? "" : jqApplyno);
+////        order.setSyapplyno(syApplyno == null ? "" : syApplyno);
+//        order.setJqappoint(""); //交强特别约定
+//        order.setSyappoint(""); //商业特别约定
+//        order.setOrderstatus("5");
+//        insOrderService.update(order);
+//
+//        // 5.成功插入轨迹表
+//        InsTaskHistory history = new InsTaskHistory();
+//        history.setId(String.valueOf(new Date().getTime()));
+//        history.setCompany(order.getInscompany());
+//        history.setTaskid(order.getOrderno());
+//        history.setOperatorid(order.getUserid());
+//        history.setOperator(order.getUsername());
+//        history.setCreatetime(sdf.format(new Date()));
+//        history.setStatus(order.getOrderstatus());
+//        history.setRemark("已核保待缴费");
+//        insTaskHistoryService.insert(history);
+//        return HttpResult.ok();
+//    }
+//
+//    /**
+//     * 生成订单信息
+//     *
+//     * @param record
+//     * @return InsOrder
+//     */
+//    protected InsOrder geneOrder(YaQuoteInfoVo record) {
+//        InsOrder insOrder = new InsOrder();
+//        String orderno = IdGenerate.nextId();
+//        insOrder.setOrderno(orderno);
+//        insOrder.setQuoteno(String.valueOf(record.getQuoteno()));
+//        insOrder.setOrderstatus("0");  // 0 报价 1 待核保 2 已核保待缴费 3 核保退回 4 核保不通过
+//        insOrder.setFrameNo(record.getCarInfo().getFrameNo());
+//        insOrder.setLicenseNo(record.getCarInfo().getLicenseNo());
+//
+//        insOrder.setCarinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getCarInfo())));
+//        SysUser user = sysUserService.getById(record.getUserId());
+//        if (user == null) {
+//            throw new SystemException("userId不存在");
+//        }
+//        if (StringUtils.isEmpty(record.getCarInfo().getFrameNo())) {
+//            throw new SystemException("车架号不能为空");
+//        }
+//        // 关闭订单 不含当前报价号
+//        InsOrder orderObj = insOrderService.queryQuoteno(new Object[]{record.getUserId(), record.getCarInfo().getFrameNo(), record.getQuoteno()});
+//        if (orderObj != null) {
+//            List<InsOrder> listo = insOrderService.selectList(" where quoteno=?", new Object[]{orderObj.getQuoteno()});
+//            String status = "0";
+//            for (InsOrder order : listo) {
+//                if (!"0".equals(order.getOrderstatus())) {
+//                    status = order.getOrderstatus();
+//                }
+//            }
+//            //0报价中 1待核保 2已核保 3核保退回 4核保不通过 5已核保待缴费 6已缴费 7已承保 99已关闭
+//            if ("0".equals(status)) {//关闭订单
+//                insOrderService.closeOrder(orderObj.getOrderno(), "99");
+//            } else if (!"99".equals(status)) {
+//                throw new SystemException("此车辆已提交核保,重新报价请先关闭订单,任务号:" + orderObj.getQuoteno());
+//            }
+//        }
+//        insOrder.setUserid(user.getId());
+//        insOrder.setUsername(user.getName());
+//        insOrder.setDeptid(user.getDeptId());
+//        SysDept dept = sysDeptService.getById(user.getDeptId());
+//        insOrder.setDeptname(dept == null ? "" : dept.getName());
+//
+//        double retailRate = orderComponents.countRetail(user.getDeptId(), user.getId());
+//
+//        insOrder.setOwnerinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getOwnerInfo())));
+//        insOrder.setApplyinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getPolicyHolderInfo())));
+//        insOrder.setInsureinfo(JSONObject.parseObject(JSONObject.toJSONString(record.getInsuredPersonInfo())));
+//
+//        insOrder.setInsuredname(record.getPolicyHolderInfo().getName());
+//
+//        List<RiskInfoVo> risks = record.getRiskList();
+//        for (RiskInfoVo risk : risks) {
+//            if ("0507".equals(risk.getRiskCode())) {//交强
+//                insOrder.setJqstartdate(risk.getStartDate());
+//                insOrder.setJqenddate(risk.getEndDate());
+//            }
+//            if ("0510".equals(risk.getRiskCode())) {//商业
+//                insOrder.setSystartdate(risk.getStartDate());
+//                insOrder.setSyenddate(risk.getEndDate());
+//            }
+//        }
+//
+//        List<KindInfoVo> kinds = record.getKindList();
+//        String productId = "";
+//        String productname = "";
+//
+//        List<EsmAgreement> agreements = esmAgreementService.selectList(" where t.agreestatus='1' and t.insure1 like ? " + "and exists (select 1 from esm_agreement_prod t2 where t.id=t2.agreeid and t2.authcomcode like ?)", new Object[]{"000001%", "%" + user.getDeptId() + "%"});
+//        if (agreements.size() == 0) {
+//            throw new SystemException("不存在有效协议或机构" + user.getDeptId() + "未授权");
+//        }
+//        String agreeid = agreements.get(0).getId();
+//        insOrder.setAgreeid(agreeid);
+//        //匹配协议,获取费用
+//        StringBuffer whereStr = new StringBuffer();
+//        List params = new ArrayList();// where t.agreeid=? and t.productid in ()
+//        whereStr.append("where t.agreeid=? ");
+//        params.add(agreeid);
+//        if (risks.size() == 1 && "0507".equals(risks.get(0).getRiskCode())) {
+//            productId = "ZG01001";
+//            productname = "单交强";
+//            whereStr.append(" and t.productid=?");
+//            params.add(productId);
+//        } else if (risks.size() == 1 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
+//            productId = "ZG01002";
+//            productname = "单三者";
+//            whereStr.append(" and t.productid=?");
+//            params.add(productId);
+//        } else if (risks.size() == 1) {
+//            productId = "ZG01003";
+//            productname = "单商业";
+//            whereStr.append(" and t.productid=?");
+//            params.add(productId);
+//        } else if (risks.size() == 2 && kinds.size() == 1 && "B".equals(kinds.get(0).getKindCode())) {
+//            productId = "ZG01004";
+//            productname = "交强+三者";
+//            whereStr.append(" and t.productid in (?,?)");
+//            params.add("ZG01004");
+//            params.add("ZG01005");
+//        } else {
+//            productId = "ZG01006";
+//            productname = "交强+商业";
+//            whereStr.append(" and t.productid in (?,?)");
+//            params.add("ZG01006");
+//            params.add("ZG01007");
+//        }
+//
+//        insOrder.setProductid(productId);
+//        insOrder.setProduct(productname);
+//        List<EsmAgreementProd> agreementProds = esmAgreementProdService.selectList(whereStr.toString(), params.toArray());
+//        for (EsmAgreementProd prod : agreementProds) {
+//            if ("ZG01001".equals(prod.getProductid()) || "ZG01004".equals(prod.getProductid()) || "ZG01006".equals(prod.getProductid())) {
+//                insOrder.setFeerate(prod.getProductrate());//交强手续费比例
+//                insOrder.setJqdiscountrate(prod.getFeerate() - retailRate); //交强优惠比例=业务员绩效-分销费用
+//            } else {
+//                insOrder.setDisrate(prod.getProductrate()); //商业手续费比例
+//                insOrder.setSydiscountrate(prod.getFeerate() - retailRate); //商业优惠比例=业务员绩效-分销费用
+//            }
+//            insOrder.setProductid(prod.getId());
+//        }
+//
+//        insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(record.getRiskList())));
+//        insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(record.getKindList())));
+//        SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//
+//        insOrder.setInscompany("人保财险");
+//        insOrder.setCreatetime(sdfm.format(new Date()));
+//
+//        return insOrder;
+//
+//    }
+//
+//
+//    private RenbaoQuoteRespVo getQuoteRespVo(String orderNo, int seatCount, RenbaoQuoteResponse response, YaQuoteInfoVo yaQuoteInfoVo) {
+//
+//        double jqPremium = response.getKindCode_jiaoqiang();
+//        double syPremium = response.getKindCode_shangye();
+//
+//        RenbaoQuoteRespVo quoteRespVo = new RenbaoQuoteRespVo();
+//
+//        List<QuoteRiskRespVo> riskList1 = new ArrayList<>();
+//        List<QuoteKindRespVo> kindList1 = new ArrayList<>();
+//        List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
+//        for (RiskInfoVo riskInfoVo : riskList) {
+//
+//            if ("0507".equals(riskInfoVo.getRiskCode()) && jqPremium != 0) {
+//                QuoteRiskRespVo risk = new QuoteRiskRespVo();
+//                risk.setRiskCode("0507");
+//                risk.setRiskName("机动车交通事故责任强制保险");
+//                risk.setPremium(jqPremium);
+//                risk.setStartDate(riskInfoVo.getStartDate());
+//                risk.setEndDate(riskInfoVo.getEndDate());
+//                riskList1.add(risk);
+//            }
+//            if ("0510".equals(riskInfoVo.getRiskCode()) && syPremium != 0) {
+//                QuoteRiskRespVo risk = new QuoteRiskRespVo();
+//                risk.setRiskCode("0510");
+//                risk.setRiskName("机动车商业保险");
+//                risk.setPremium(syPremium);
+//                risk.setStartDate(riskInfoVo.getStartDate());
+//                risk.setEndDate(riskInfoVo.getEndDate());
+//                riskList1.add(risk);
+//            }
+//        }
+//
+//        QuoteKindRespVo kind;
+//        List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
+//        for (KindInfoVo kindInfoVo : kindList) {
+//            if ("A".equals(kindInfoVo.getKindCode())) {
+//                kind = new QuoteKindRespVo();
+//                kind.setKindCode("A");
+//                kind.setKindName("车辆损失保险");
+//                kind.setAmount(kindInfoVo.getAmount());
+//                kind.setCoveragePremium(response.getKindCode_csx());
+//                kindList1.add(kind);
+//            }
+//            if ("B".equals(kindInfoVo.getKindCode())) {
+//                kind = new QuoteKindRespVo();
+//                kind.setKindCode("B");
+//                kind.setKindName("第三者责任险");
+//                kind.setAmount(kindInfoVo.getAmount());
+//                kind.setCoveragePremium(response.getKindCode_dsz());
+//                kindList1.add(kind);
+//            }
+//            if ("D3".equals(kindInfoVo.getKindCode())) {
+//                kind = new QuoteKindRespVo();
+//                kind.setKindCode("D3");
+//                kind.setKindName("司机责任险");
+//                kind.setAmount(kindInfoVo.getAmount());
+//                kind.setCoveragePremium(response.getKindCode_cssj());
+//                kind.setUnitAmount(kindInfoVo.getUnitAmount());
+//                kindList1.add(kind);
+//            }
+//            if ("D4".equals(kindInfoVo.getKindCode())) {
+//                int seat = seatCount - 1;
+//                kind = new QuoteKindRespVo();
+//                kind.setKindCode("D4");
+//                kind.setKindName("乘客责任险");
+//                kind.setAmount(kindInfoVo.getAmount() / seat);
+//                kind.setAmount(kindInfoVo.getAmount());
+//                kind.setCoveragePremium(response.getKindCode_csck());
+//                kind.setQuantity(String.valueOf(seat));
+//                kind.setUnitAmount(kindInfoVo.getUnitAmount());
+//                kindList1.add(kind);
+//            }
+//            if ("MJ1".equals(kindInfoVo.getKindCode())) {
+//                kind = new QuoteKindRespVo();
+//                kind.setKindCode("MJ1");
+//                kind.setKindName("绝对免赔率特约险(车损)");
+//                kind.setAmount(kindInfoVo.getAmount());
+//                kind.setCoveragePremium(response.getKindCode_mplcs());
+//                kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
+//                kindList1.add(kind);
+//            }
+//            if ("MJ2".equals(kindInfoVo.getKindCode())) {
+//                kind = new QuoteKindRespVo();
+//                kind.setKindCode("MJ2");
+//                kind.setKindName("绝对免赔率特约险(三者)");
+//                kind.setAmount(kindInfoVo.getAmount());
+//                kind.setCoveragePremium(response.getKindCode_dsz());
+//                kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
+//                kindList1.add(kind);
+//            }
+//            if ("MJ3".equals(kindInfoVo.getKindCode())) {
+//                kind = new QuoteKindRespVo();
+//                kind.setKindCode("MJ3");
+//                kind.setKindName("绝对免赔率特约险(司机)");
+//                kind.setAmount(kindInfoVo.getAmount());
+//                kind.setCoveragePremium(response.getKindCode_sj());
+//                kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
+//                kindList1.add(kind);
+//            }
+//            if ("MJ4".equals(kindInfoVo.getKindCode())) {
+//                kind = new QuoteKindRespVo();
+//                kind.setKindCode("MJ4");
+//                kind.setKindName("绝对免赔率特约险(乘客)");
+//                kind.setAmount(kindInfoVo.getAmount());
+//                kind.setCoveragePremium(response.getKindCode_ck());
+//                kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
+//                kindList1.add(kind);
+//            }
+//            if ("L".equals(kindInfoVo.getKindCode())) {
+//                kind = new QuoteKindRespVo();
+//                kind.setKindCode("L");
+//                kind.setKindName("车身划痕损失险");
+//                kind.setAmount(kindInfoVo.getAmount());
+//                kind.setCoveragePremium(response.getKindCode_huahen());
+//                kindList1.add(kind);
+//            }
+//            if ("BD".equals(kindInfoVo.getKindCode())) {
+//                kind = new QuoteKindRespVo();
+//                kind.setKindCode("BD");
+//                kind.setKindName("法定节假日限额翻倍险");
+//                kind.setAmount(kindInfoVo.getAmount());
+//                kind.setCoveragePremium(response.getKindCode_fdfb());
+//                kindList1.add(kind);
+//            }
+//        }
+//
+//        quoteRespVo.setDrivingAccidentPremium(response.getKindCode_EAD());
+//        quoteRespVo.setRiskList(riskList1);
+//        quoteRespVo.setKindList(kindList1);
+//
+//        quoteRespVo.setCiSumPermium(response.getKindCode_jiaoqiang() + response.getKindCode_chechuan());//交强险和车船税合计
+//        quoteRespVo.setSumPermium(response.getAll_price());//保费合计
+//        quoteRespVo.setTaxAmount(response.getKindCode_chechuan());//车船税
+//        quoteRespVo.setTotalAdjustRate(1);
+//        quoteRespVo.setILogPreUdwMess("0");//评分
+//        quoteRespVo.setOrderno(orderNo); //订单号
+//        return quoteRespVo;
+//    }
+//
+//
+//    private HttpResult responseOrder(InsOrder insOrder, RenbaoQuoteResponse response, QuoteRespVo quoteRespVo) {
+//        //保存订单信息
+//        insOrder.setJqpremium(response.getKindCode_jiaoqiang());
+//        insOrder.setSypremium(response.getKindCode_shangye());
+//        insOrder.setTaxamount(response.getKindCode_chechuan());
+//        insOrder.setSumpremium(response.getAll_price());
+//        insOrder.setQuotestatus("1");
+//        insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getRiskList())));
+//        insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getKindList())));
+//        insOrder.setJypremium(response.getKindCode_EAD());
+//        insOrderService.insert(insOrder);
+//
+//        //插入轨迹表
+//        InsTaskHistory history = new InsTaskHistory();
+//        history.setId(String.valueOf(new Date().getTime()));
+//        history.setCompany(insOrder.getInscompany());
+//        history.setTaskid(insOrder.getOrderno());
+//        history.setOperatorid(insOrder.getUserid());
+//        history.setOperator(insOrder.getUsername());
+//        SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        history.setCreatetime(sdfm.format(new Date()));
+//        history.setOperator(insOrder.getUsername());
+//        history.setStatus("0");
+//        history.setRemark("报价中");
+//        insTaskHistoryService.insert(history);
+//
+//        return HttpResult.ok("成功", quoteRespVo);
+//    }
+//
+//
+//}

+ 281 - 281
src/main/java/com/ydtech/modules/ins/service/impl/InsYongchengServiceImpl.java

@@ -1,285 +1,285 @@
-package com.ydtech.modules.ins.service.impl;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.components.InsTaskHistoryComponents;
-import com.ydtech.components.OrderComponents;
-import com.ydtech.components.YongchengRequestComponents;
-import com.ydtech.constants.InsTaskHistoryEnum;
-import com.ydtech.constants.RedisConstant;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.service.SysDeptService;
-import com.ydtech.modules.admin.service.SysUserService;
-import com.ydtech.modules.esm.model.InsTaskImage;
-import com.ydtech.modules.esm.service.*;
-import com.ydtech.modules.ins.model.InsOrder;
-import com.ydtech.modules.ins.model.request.BaseResponse;
-import com.ydtech.modules.ins.model.vo.*;
-import com.ydtech.modules.ins.model.ya.*;
-import com.ydtech.modules.ins.model.yc.*;
-import com.ydtech.modules.ins.service.InsOrderService;
-import com.ydtech.modules.ins.service.InsTaskHistoryService;
-import com.ydtech.modules.ins.service.InsYongchengService;
-import com.ydtech.modules.order.service.InsAreaCompanyService;
-import com.ydtech.modules.order.service.InsOrdersService;
-import com.ydtech.utils.CalculateUtils;
-import com.ydtech.utils.StringUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.stereotype.Service;
-import org.springframework.util.ObjectUtils;
-
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-
-@Slf4j
-@Service
-public class InsYongchengServiceImpl implements InsYongchengService {
-
-
-    @Autowired
-    private YcBuildData ycBuildData;
-    @Autowired
-    private SysUserService sysUserService;
-    @Autowired
-    private SysDeptService sysDeptService;
-    @Autowired
-    private EsmRetailService esmRetailService;
-    @Autowired
-    private EsmAgreementService esmAgreementService;
-    @Autowired
-    private EsmAgreementProdService esmAgreementProdService;
-    @Autowired
-    private EsmUserInternalService esmUserInternalService;
-    @Autowired
-    private InsTaskHistoryService insTaskHistoryService;
-    @Autowired
-    private InsAreaCompanyService insAreaCompanyService;
-    @Autowired
-    private InsOrdersService insOrdersService;
-
-
-    private final YongchengRequestComponents yongchengRequestComponents;
-
-    private final OrderComponents orderComponents;
-
-    private final StringRedisTemplate redisTemplate;
-
-    private final InsOrderService insOrderService;
-
-    private final InsTaskHistoryComponents insTaskHistoryComponents;
-
-    private final InsTaskImageService insTaskImageService;
-
-    public InsYongchengServiceImpl(YongchengRequestComponents yongchengRequestComponents, OrderComponents orderComponents, StringRedisTemplate redisTemplate, InsOrderService insOrderService, InsTaskHistoryComponents insTaskHistoryComponents, InsTaskImageService insTaskImageService) {
-        this.yongchengRequestComponents = yongchengRequestComponents;
-        this.orderComponents = orderComponents;
-        this.redisTemplate = redisTemplate;
-        this.insOrderService = insOrderService;
-        this.insTaskHistoryComponents = insTaskHistoryComponents;
-        this.insTaskImageService = insTaskImageService;
-    }
-
-
-    @Override
-    public HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
-        // 1.生成订单信息
-        InsOrder insOrder = orderComponents.geneOrder(yaQuoteInfoVo, "永诚财险", "000008");
-        YongchengQuoteResponse body = yongchengRequestComponents.quote(yaQuoteInfoVo, YongchengQuoteResponse.class);
-        if (body.getCode() == 400) {
-            throw new SystemException(body.getResultMsg());
-        }
-        String orderno = insOrder.getOrderno();
-        // 2.将数据存入redis中
-        YongchengLoginInfo yongchengLoginInfo = new YongchengLoginInfo(
-                body.getCookies(), body.getLicenseNo(), body.getJqFee(), body.getSyFee(), body.getData(), insOrder.getFrameNo()
-        );
-        String s = JSON.toJSONString(yongchengLoginInfo);
-        redisTemplate.opsForValue().set(RedisConstant.INS_YONGCHENG_KEY + orderno, s);
-        QuoteRespVo quoteRespVo = getQuoteRespVo(insOrder.getOrderno(), body, yaQuoteInfoVo);
-        // 4.插入订单
-        return responseOrder(insOrder, body, quoteRespVo);
-    }
-
-    @Override
-    public HttpResult audit(String orderNo) throws IOException {
-        // 1. 获取登录token
-        YongchengAuditRequest loginInfo = getLoginInfo(orderNo);
-        YongchengAuditResponse body = yongchengRequestComponents.audit(loginInfo, YongchengAuditResponse.class);
-        // 2. 获取订单
-        InsOrder order = insOrderService.selectByPk(orderNo);
-        if (body.getCode() == 400) {
-            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.UNDERWRITING_FAILED, order);
-            return HttpResult.error("永城--核保失败:" + body.getMessage());
-        }
-        // 4. 更新订单表
-        InsTaskHistoryEnum underwrittenToBePaid = InsTaskHistoryEnum.UNDERWRITTEN_TO_BE_PAID;
-        order.setAuditid(order.getUserid());
-        order.setPaymenttype(body.getUrl());
-//        order.setJqapplyno();
-//        order.setSyapplyno();
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        order.setSubmittime(sdf.format(new Date()));
-//        order.setJqapplyno(jqApplyno == null ? "" : jqApplyno);
-//        order.setSyapplyno(syApplyno == null ? "" : syApplyno);
-        order.setJqappoint(""); //交强特别约定
-        order.setSyappoint(""); //商业特别约定
-        order.setOrderstatus(String.valueOf(underwrittenToBePaid.getState()));
-        insOrderService.update(order);
-
-        // 5.成功插入轨迹表
-        insTaskHistoryComponents.modifyStatus(underwrittenToBePaid, order);
-        return HttpResult.ok();
-    }
-
-
-    @Override
-    public HttpResult submitImage(String orderId) throws IOException {
-        YongchengLoginInfo loginInfo = getLoginInfo(orderId);
-
-        List<InsTaskImage> insTaskImages = insTaskImageService.selectByTaskId(orderId);
-        if (insTaskImages.size() > 0) {
-            InsYcSubmitImageResponse insYcSubmitImageResponse = new InsYcSubmitImageResponse(loginInfo.getFrameNo(), loginInfo.getCookies(), insTaskImages);
-            BaseResponse body = yongchengRequestComponents.submitImage(insYcSubmitImageResponse, BaseResponse.class);
-            if (body.getCode() == 200) {
-                return HttpResult.ok("成功");
-            }
-            throw new SystemException("上传失败");
-        }
-        throw new SystemException("没有上传成功的影像");
-    }
-
-    @Override
-    public YongchengPolicyPrintResponse getPolicyPrint(String orderno) {
-        InsOrder insOrder = insOrderService.selectByPk(orderno);
-        String policytype = insOrder.getPolicytype();
-        CustomerInfoVo customerInfoVo = JSONObject.parseObject(policytype, CustomerInfoVo.class);
-        YongchengPolicyPrintRequest yongchengPolicyPrintRequest = new YongchengPolicyPrintRequest(customerInfoVo.getIdentifyNumber(), insOrder.getLicenseNo());
-        YongchengPolicyPrintResponse body = yongchengRequestComponents.getPolicyPrint(yongchengPolicyPrintRequest, YongchengPolicyPrintResponse.class);
-        if (body.getCode() == 200) {
-            insOrder.setJqpolicyno(body.getJqNumber());
-            insOrder.setSypolicyno(body.getSyNumber());
-            insOrder.setOrderstatus(String.valueOf(InsTaskHistoryEnum.COVERED.getState()));//已承保
-            insOrderService.update(insOrder);
-            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.PAID, insOrder);
-            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.COVERED, insOrder);
-            return body;
-        }
-        throw new SystemException("没有查询到保单信息");
-    }
-
-    private QuoteRespVo getQuoteRespVo(String orderNo, YongchengQuoteResponse response, YaQuoteInfoVo yaQuoteInfoVo) {
-        double jqPremium = parseDouble(response.getForceCarInsureRisk());
-        double syPremium = parseDouble(response.getBusiTotalPremium());
-        QuoteRespVo quoteRespVo = new QuoteRespVo();
-        List<QuoteRiskRespVo> riskList1 = new ArrayList<>();
-        List<QuoteKindRespVo> kindList1 = new ArrayList<>();
-        List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
-        for (RiskInfoVo riskInfoVo : riskList) {
-            if ("0507".equals(riskInfoVo.getRiskCode()) && jqPremium != 0) {
-                QuoteRiskRespVo risk = new QuoteRiskRespVo();
-                risk.setRiskCode("0507");
-                risk.setRiskName("机动车交通事故责任强制保险");
-                risk.setPremium(jqPremium);
-                risk.setStartDate(riskInfoVo.getStartDate());
-                risk.setEndDate(riskInfoVo.getEndDate());
-                riskList1.add(risk);
-            }
-            if ("0510".equals(riskInfoVo.getRiskCode()) && syPremium != 0) {
-                QuoteRiskRespVo risk = new QuoteRiskRespVo();
-                risk.setRiskCode("0510");
-                risk.setRiskName("机动车商业保险");
-                risk.setPremium(syPremium);
-                risk.setStartDate(riskInfoVo.getStartDate());
-                risk.setEndDate(riskInfoVo.getEndDate());
-                riskList1.add(risk);
-            }
-        }
-
-        QuoteKindRespVo kind;
-        Map<String, String> map = response.getInsuranceType();
-        List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
-
-        for (KindInfoVo kindInfoVo : kindList) {
-            kind = new QuoteKindRespVo();
-            kind.setKindCode(kindInfoVo.getKindCode());
-            kind.setKindName(kindInfoVo.getKindName());
-            kind.setAmount(kindInfoVo.getAmount());
-            kind.setCoveragePremium(parseDouble(map.get(kindInfoVo.getKindCode())));
-            kind.setUnitAmount(kindInfoVo.getUnitAmount());
-            if (!ObjectUtils.isEmpty(kindInfoVo.getDeductibleRate())) {
-                kind.setDeductibleRate(parseDouble(kindInfoVo.getDeductibleRate()));
-            }
-            kindList1.add(kind);
-        }
-
-        quoteRespVo.setRiskList(riskList1);
-        quoteRespVo.setKindList(kindList1);
-
-        quoteRespVo.setCiSumPermium(CalculateUtils.add(parseDouble(response.getForceCarInsureRisk()), parseDouble(response.getCarInsureShiptax())));//交强险和车船税合计
-        quoteRespVo.setSumPermium(parseDouble(response.getCarInsureMain()));//保费合计
-        quoteRespVo.setTaxAmount(parseDouble(response.getCarInsureShiptax()));//车船税
-        quoteRespVo.setTotalAdjustRate(1);
-        quoteRespVo.setILogPreUdwMess("0");//评分
-        quoteRespVo.setOrderno(orderNo); //订单号
-        return quoteRespVo;
-    }
-
-    private HttpResult responseOrder(InsOrder insOrder, YongchengQuoteResponse response, QuoteRespVo quoteRespVo) {
-        //保存订单信息
-        insOrder.setJqpremium(parseDouble(response.getForceCarInsureRisk()));
-        insOrder.setSypremium(parseDouble(response.getBusiTotalPremium()));
-        insOrder.setTaxamount(parseDouble(response.getCarInsureShiptax()));
-        insOrder.setSumpremium(parseDouble(response.getCarInsureMain()));
-        insOrder.setQuotestatus("1");
-        insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getRiskList())));
-        insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getKindList())));
-        insOrderService.insert(insOrder);
-        //插入轨迹表 报价中
-        insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.IN_QUOTATION, insOrder);
-        return HttpResult.ok("成功", quoteRespVo);
-    }
-
-    public YongchengLoginInfo getLoginInfo(String orderNo) {
-        String s = redisTemplate.opsForValue().get(RedisConstant.INS_YONGCHENG_KEY + orderNo);
-        return JSONObject.parseObject(s, YongchengLoginInfo.class);
-    }
-
-    public double parseDouble(String s) {
-        if (StringUtils.isNullOrEmpty(s)) {
-            return 0;
-        }
-        return Double.parseDouble(s);
-    }
-
-
-//    public static double add(double v1, double v2) {
-//
-//        BigDecimal b1 = new BigDecimal(Double.toString(v1));
-//
-//        BigDecimal b2 = new BigDecimal(Double.toString(v2));
-//
-//        return b1.add(b2).doubleValue();
+//package com.ydtech.modules.ins.service.impl;
 //
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.JSONObject;
+//import com.fasterxml.jackson.core.JsonProcessingException;
+//import com.ydtech.components.InsTaskHistoryComponents;
+//import com.ydtech.components.OrderComponents;
+//import com.ydtech.components.YongchengRequestComponents;
+//import com.ydtech.constants.InsTaskHistoryEnum;
+//import com.ydtech.constants.RedisConstant;
+//import com.ydtech.core.page.HttpResult;
+//import com.ydtech.exception.SystemException;
+//import com.ydtech.modules.admin.service.SysDeptService;
+//import com.ydtech.modules.admin.service.SysUserService;
+//import com.ydtech.modules.esm.model.InsTaskImage;
+//import com.ydtech.modules.esm.service.*;
+//import com.ydtech.modules.ins.model.InsOrder;
+//import com.ydtech.modules.ins.model.request.BaseResponse;
+//import com.ydtech.modules.ins.model.vo.*;
+//import com.ydtech.modules.ins.model.ya.*;
+//import com.ydtech.modules.ins.model.yc.*;
+//import com.ydtech.modules.ins.service.InsOrderService;
+//import com.ydtech.modules.ins.service.InsTaskHistoryService;
+//import com.ydtech.modules.ins.service.InsYongchengService;
+//import com.ydtech.modules.order.service.InsAreaCompanyService;
+//import com.ydtech.modules.order.service.InsOrdersService;
+//import com.ydtech.utils.CalculateUtils;
+//import com.ydtech.utils.StringUtils;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.data.redis.core.StringRedisTemplate;
+//import org.springframework.stereotype.Service;
+//import org.springframework.util.ObjectUtils;
+//
+//import java.io.IOException;
+//import java.text.SimpleDateFormat;
+//import java.util.*;
+//
+//
+//@Slf4j
+//@Service
+//public class InsYongchengServiceImpl implements InsYongchengService {
+//
+//
+//    @Autowired
+//    private YcBuildData ycBuildData;
+//    @Autowired
+//    private SysUserService sysUserService;
+//    @Autowired
+//    private SysDeptService sysDeptService;
+//    @Autowired
+//    private EsmRetailService esmRetailService;
+//    @Autowired
+//    private EsmAgreementService esmAgreementService;
+//    @Autowired
+//    private EsmAgreementProdService esmAgreementProdService;
+//    @Autowired
+//    private EsmUserInternalService esmUserInternalService;
+//    @Autowired
+//    private InsTaskHistoryService insTaskHistoryService;
+//    @Autowired
+//    private InsAreaCompanyService insAreaCompanyService;
+//    @Autowired
+//    private InsOrdersService insOrdersService;
+//
+//
+//    private final YongchengRequestComponents yongchengRequestComponents;
+//
+//    private final OrderComponents orderComponents;
+//
+//    private final StringRedisTemplate redisTemplate;
+//
+//    private final InsOrderService insOrderService;
+//
+//    private final InsTaskHistoryComponents insTaskHistoryComponents;
+//
+//    private final InsTaskImageService insTaskImageService;
+//
+//    public InsYongchengServiceImpl(YongchengRequestComponents yongchengRequestComponents, OrderComponents orderComponents, StringRedisTemplate redisTemplate, InsOrderService insOrderService, InsTaskHistoryComponents insTaskHistoryComponents, InsTaskImageService insTaskImageService) {
+//        this.yongchengRequestComponents = yongchengRequestComponents;
+//        this.orderComponents = orderComponents;
+//        this.redisTemplate = redisTemplate;
+//        this.insOrderService = insOrderService;
+//        this.insTaskHistoryComponents = insTaskHistoryComponents;
+//        this.insTaskImageService = insTaskImageService;
+//    }
+//
+//
+//    @Override
+//    public HttpResult quote(YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
+//        // 1.生成订单信息
+//        InsOrder insOrder = orderComponents.geneOrder(yaQuoteInfoVo, "永诚财险", "000008");
+//        YongchengQuoteResponse body = yongchengRequestComponents.quote(yaQuoteInfoVo, YongchengQuoteResponse.class);
+//        if (body.getCode() == 400) {
+//            throw new SystemException(body.getResultMsg());
+//        }
+//        String orderno = insOrder.getOrderno();
+//        // 2.将数据存入redis中
+//        YongchengLoginInfo yongchengLoginInfo = new YongchengLoginInfo(
+//                body.getCookies(), body.getLicenseNo(), body.getJqFee(), body.getSyFee(), body.getData(), insOrder.getFrameNo()
+//        );
+//        String s = JSON.toJSONString(yongchengLoginInfo);
+//        redisTemplate.opsForValue().set(RedisConstant.INS_YONGCHENG_KEY + orderno, s);
+//        QuoteRespVo quoteRespVo = getQuoteRespVo(insOrder.getOrderno(), body, yaQuoteInfoVo);
+//        // 4.插入订单
+//        return responseOrder(insOrder, body, quoteRespVo);
+//    }
+//
+//    @Override
+//    public HttpResult audit(String orderNo) throws IOException {
+//        // 1. 获取登录token
+//        YongchengAuditRequest loginInfo = getLoginInfo(orderNo);
+//        YongchengAuditResponse body = yongchengRequestComponents.audit(loginInfo, YongchengAuditResponse.class);
+//        // 2. 获取订单
+//        InsOrder order = insOrderService.selectByPk(orderNo);
+//        if (body.getCode() == 400) {
+//            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.UNDERWRITING_FAILED, order);
+//            return HttpResult.error("永城--核保失败:" + body.getMessage());
+//        }
+//        // 4. 更新订单表
+//        InsTaskHistoryEnum underwrittenToBePaid = InsTaskHistoryEnum.UNDERWRITTEN_TO_BE_PAID;
+//        order.setAuditid(order.getUserid());
+//        order.setPaymenttype(body.getUrl());
+////        order.setJqapplyno();
+////        order.setSyapplyno();
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        order.setSubmittime(sdf.format(new Date()));
+////        order.setJqapplyno(jqApplyno == null ? "" : jqApplyno);
+////        order.setSyapplyno(syApplyno == null ? "" : syApplyno);
+//        order.setJqappoint(""); //交强特别约定
+//        order.setSyappoint(""); //商业特别约定
+//        order.setOrderstatus(String.valueOf(underwrittenToBePaid.getState()));
+//        insOrderService.update(order);
+//
+//        // 5.成功插入轨迹表
+//        insTaskHistoryComponents.modifyStatus(underwrittenToBePaid, order);
+//        return HttpResult.ok();
+//    }
+//
+//
+//    @Override
+//    public HttpResult submitImage(String orderId) throws IOException {
+//        YongchengLoginInfo loginInfo = getLoginInfo(orderId);
+//
+//        List<InsTaskImage> insTaskImages = insTaskImageService.selectByTaskId(orderId);
+//        if (insTaskImages.size() > 0) {
+//            InsYcSubmitImageResponse insYcSubmitImageResponse = new InsYcSubmitImageResponse(loginInfo.getFrameNo(), loginInfo.getCookies(), insTaskImages);
+//            BaseResponse body = yongchengRequestComponents.submitImage(insYcSubmitImageResponse, BaseResponse.class);
+//            if (body.getCode() == 200) {
+//                return HttpResult.ok("成功");
+//            }
+//            throw new SystemException("上传失败");
+//        }
+//        throw new SystemException("没有上传成功的影像");
+//    }
+//
+//    @Override
+//    public YongchengPolicyPrintResponse getPolicyPrint(String orderno) {
+//        InsOrder insOrder = insOrderService.selectByPk(orderno);
+//        String policytype = insOrder.getPolicytype();
+//        CustomerInfoVo customerInfoVo = JSONObject.parseObject(policytype, CustomerInfoVo.class);
+//        YongchengPolicyPrintRequest yongchengPolicyPrintRequest = new YongchengPolicyPrintRequest(customerInfoVo.getIdentifyNumber(), insOrder.getLicenseNo());
+//        YongchengPolicyPrintResponse body = yongchengRequestComponents.getPolicyPrint(yongchengPolicyPrintRequest, YongchengPolicyPrintResponse.class);
+//        if (body.getCode() == 200) {
+//            insOrder.setJqpolicyno(body.getJqNumber());
+//            insOrder.setSypolicyno(body.getSyNumber());
+//            insOrder.setOrderstatus(String.valueOf(InsTaskHistoryEnum.COVERED.getState()));//已承保
+//            insOrderService.update(insOrder);
+//            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.PAID, insOrder);
+//            insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.COVERED, insOrder);
+//            return body;
+//        }
+//        throw new SystemException("没有查询到保单信息");
+//    }
+//
+//    private QuoteRespVo getQuoteRespVo(String orderNo, YongchengQuoteResponse response, YaQuoteInfoVo yaQuoteInfoVo) {
+//        double jqPremium = parseDouble(response.getForceCarInsureRisk());
+//        double syPremium = parseDouble(response.getBusiTotalPremium());
+//        QuoteRespVo quoteRespVo = new QuoteRespVo();
+//        List<QuoteRiskRespVo> riskList1 = new ArrayList<>();
+//        List<QuoteKindRespVo> kindList1 = new ArrayList<>();
+//        List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
+//        for (RiskInfoVo riskInfoVo : riskList) {
+//            if ("0507".equals(riskInfoVo.getRiskCode()) && jqPremium != 0) {
+//                QuoteRiskRespVo risk = new QuoteRiskRespVo();
+//                risk.setRiskCode("0507");
+//                risk.setRiskName("机动车交通事故责任强制保险");
+//                risk.setPremium(jqPremium);
+//                risk.setStartDate(riskInfoVo.getStartDate());
+//                risk.setEndDate(riskInfoVo.getEndDate());
+//                riskList1.add(risk);
+//            }
+//            if ("0510".equals(riskInfoVo.getRiskCode()) && syPremium != 0) {
+//                QuoteRiskRespVo risk = new QuoteRiskRespVo();
+//                risk.setRiskCode("0510");
+//                risk.setRiskName("机动车商业保险");
+//                risk.setPremium(syPremium);
+//                risk.setStartDate(riskInfoVo.getStartDate());
+//                risk.setEndDate(riskInfoVo.getEndDate());
+//                riskList1.add(risk);
+//            }
+//        }
+//
+//        QuoteKindRespVo kind;
+//        Map<String, String> map = response.getInsuranceType();
+//        List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
+//
+//        for (KindInfoVo kindInfoVo : kindList) {
+//            kind = new QuoteKindRespVo();
+//            kind.setKindCode(kindInfoVo.getKindCode());
+//            kind.setKindName(kindInfoVo.getKindName());
+//            kind.setAmount(kindInfoVo.getAmount());
+//            kind.setCoveragePremium(parseDouble(map.get(kindInfoVo.getKindCode())));
+//            kind.setUnitAmount(kindInfoVo.getUnitAmount());
+//            if (!ObjectUtils.isEmpty(kindInfoVo.getDeductibleRate())) {
+//                kind.setDeductibleRate(parseDouble(kindInfoVo.getDeductibleRate()));
+//            }
+//            kindList1.add(kind);
+//        }
+//
+//        quoteRespVo.setRiskList(riskList1);
+//        quoteRespVo.setKindList(kindList1);
+//
+//        quoteRespVo.setCiSumPermium(CalculateUtils.add(parseDouble(response.getForceCarInsureRisk()), parseDouble(response.getCarInsureShiptax())));//交强险和车船税合计
+//        quoteRespVo.setSumPermium(parseDouble(response.getCarInsureMain()));//保费合计
+//        quoteRespVo.setTaxAmount(parseDouble(response.getCarInsureShiptax()));//车船税
+//        quoteRespVo.setTotalAdjustRate(1);
+//        quoteRespVo.setILogPreUdwMess("0");//评分
+//        quoteRespVo.setOrderno(orderNo); //订单号
+//        return quoteRespVo;
+//    }
+//
+//    private HttpResult responseOrder(InsOrder insOrder, YongchengQuoteResponse response, QuoteRespVo quoteRespVo) {
+//        //保存订单信息
+//        insOrder.setJqpremium(parseDouble(response.getForceCarInsureRisk()));
+//        insOrder.setSypremium(parseDouble(response.getBusiTotalPremium()));
+//        insOrder.setTaxamount(parseDouble(response.getCarInsureShiptax()));
+//        insOrder.setSumpremium(parseDouble(response.getCarInsureMain()));
+//        insOrder.setQuotestatus("1");
+//        insOrder.setRiskinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getRiskList())));
+//        insOrder.setKindinfo(JSONObject.parseArray(JSONObject.toJSONString(quoteRespVo.getKindList())));
+//        insOrderService.insert(insOrder);
+//        //插入轨迹表 报价中
+//        insTaskHistoryComponents.modifyStatus(InsTaskHistoryEnum.IN_QUOTATION, insOrder);
+//        return HttpResult.ok("成功", quoteRespVo);
 //    }
-
-
-//    public static String getUserName() {
-//        String userName = null;
-//        Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
-//
-//        if (principal instanceof UserDetails) {
-//            userName = ((UserDetails) principal).getUsername();
-//        } else {
-//            userName = principal.toString();
+//
+//    public YongchengLoginInfo getLoginInfo(String orderNo) {
+//        String s = redisTemplate.opsForValue().get(RedisConstant.INS_YONGCHENG_KEY + orderNo);
+//        return JSONObject.parseObject(s, YongchengLoginInfo.class);
+//    }
+//
+//    public double parseDouble(String s) {
+//        if (StringUtils.isNullOrEmpty(s)) {
+//            return 0;
 //        }
-//        return userName;
+//        return Double.parseDouble(s);
 //    }
-
-
-}
+//
+//
+////    public static double add(double v1, double v2) {
+////
+////        BigDecimal b1 = new BigDecimal(Double.toString(v1));
+////
+////        BigDecimal b2 = new BigDecimal(Double.toString(v2));
+////
+////        return b1.add(b2).doubleValue();
+////
+////    }
+//
+//
+////    public static String getUserName() {
+////        String userName = null;
+////        Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+////
+////        if (principal instanceof UserDetails) {
+////            userName = ((UserDetails) principal).getUsername();
+////        } else {
+////            userName = principal.toString();
+////        }
+////        return userName;
+////    }
+//
+//
+//}

File diff suppressed because it is too large
+ 171 - 563
src/main/java/com/ydtech/modules/ins/service/impl/YongAnServiceImpl.java


+ 11 - 12
src/main/java/com/ydtech/modules/order/controller/InsCrawlerOrderController.java

@@ -6,9 +6,10 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.order.components.InsOrdersComponents;
+import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
-import com.ydtech.modules.order.service.InsuranceCrawlerOrderService;
+import com.ydtech.modules.order.service.InsCrawlerOrderService;
 import com.ydtech.modules.protocol.service.PtlAgreementDeptService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -22,15 +23,15 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 public class InsCrawlerOrderController extends BaseController {
 
-    private final InsuranceCrawlerOrderService insuranceCrawlerOrderService;
+    private final InsCrawlerOrderService insuranceCrawlerOrderService;
 
     private final InsOrdersComponents insOrdersComponents;
 
     private final PtlAgreementDeptService ptlAgreementDeptService;
 
-    public InsCrawlerOrderController(InsOrdersComponents insOrdersComponents, InsuranceCrawlerOrderService insuranceCrawlerOrderService, PtlAgreementDeptService ptlAgreementDeptService) {
+    public InsCrawlerOrderController(InsOrdersComponents insOrdersComponents, InsCrawlerOrderService insCrawlerOrderService, PtlAgreementDeptService ptlAgreementDeptService) {
         this.insOrdersComponents = insOrdersComponents;
-        this.insuranceCrawlerOrderService = insuranceCrawlerOrderService;
+        this.insuranceCrawlerOrderService = insCrawlerOrderService;
         this.ptlAgreementDeptService = ptlAgreementDeptService;
     }
 
@@ -57,16 +58,14 @@ public class InsCrawlerOrderController extends BaseController {
 
     @PostMapping(value = "/verifyPayment")
     @ApiOperation(value = "缴费状态查询")
-    public HttpResult verifyPayment(@RequestSingleParam(value = "subOrderNo") String subOrderNo) {
+    public HttpResult<Object> verifyPayment(@RequestSingleParam(value = "subOrderNo") String subOrderNo) {
         return insuranceCrawlerOrderService.verifyPayment(subOrderNo);
     }
 
-//
-//    @PostMapping("/getPolicyPrint")
-//    @ApiOperation(value = "电子保单")
-//    public HttpResult getPolicyPrint(@RequestSingleParam(value = "subOrderNo") String subOrderNo) {
-//        return new HttpResult();
-//    }
-
+    @PostMapping("/getPolicyPrint")
+    @ApiOperation(value = "电子保单")
+    public HttpResult<CrawlerPolicyPrintVo> getPolicyPrint(@RequestSingleParam(value = "subOrderNo") String subOrderNo) {
+        return insuranceCrawlerOrderService.getPolicyPrint(subOrderNo);
+    }
 
 }

+ 6 - 8
src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java

@@ -19,10 +19,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.util.ObjectUtils;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -47,16 +44,17 @@ public class InsOrdersController extends BaseController {
         this.insAccidentalDrivingService = insAccidentalDrivingService;
     }
 
-    @PostMapping("/getAgreementInsCompany")
+    @GetMapping("/getAgreementInsCompany")
     @ApiOperation(value = "获取协议报价保险公司")
-    public HttpResult<List<PtlAgreementInsCompanyDto>> getAgreementInsCompany(){
+    public HttpResult<List<PtlAgreementInsCompanyDto>> getAgreementInsCompany() {
         return this.insOrdersService.getAgreementInsCompany(getDeptId());
     }
 
     @PostMapping("/generateOrder")
     @ApiOperation(value = "生成订单")
     public HttpResult<InsOrders> generateOrder(@Validated @RequestBody BaseQuoteInfoVo quoteInfoVo) {
-        InsOrders insOrders = this.insOrdersService.generateOrder(quoteInfoVo);
+        String userId = getUserId();
+        InsOrders insOrders = this.insOrdersService.generateOrder(userId, quoteInfoVo);
         return HttpResult.ok("success", insOrders);
     }
 
@@ -114,7 +112,7 @@ public class InsOrdersController extends BaseController {
 
     @PostMapping("/getAccidentalDriving")
     @ApiOperation(value = "获取驾意险")
-    public HttpResult getAccidentalDriving(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {
+    public HttpResult<List<InsAccidentalDriving>> getAccidentalDriving(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {
         LambdaQueryWrapper<InsAccidentalDriving> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(InsAccidentalDriving::getCompanyCode, accidentalDrivingVo.getCompanyCode()).and(i -> i.eq(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum()).or(j -> j.le(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum()).ge(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum())));
         List<InsAccidentalDriving> insAccidentalDrivings = insAccidentalDrivingService.list(wrapper);

+ 7 - 5
src/main/java/com/ydtech/modules/order/controller/OrderTaskImageController.java

@@ -6,6 +6,7 @@ import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.InsTaskImage;
 import com.ydtech.modules.esm.service.InsTaskImageService;
 import com.ydtech.modules.order.convert.InsTaskImageConvert;
+import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
 import com.ydtech.modules.order.entity.po.InsUploadFiles;
 import com.ydtech.modules.order.entity.vo.InsTaskImageVo;
 import com.ydtech.modules.order.entity.vo.InsTaskImagesVo;
@@ -26,6 +27,7 @@ import java.io.IOException;
 import java.util.Base64;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 
 @Api(tags = "影像")
@@ -100,17 +102,17 @@ public class OrderTaskImageController extends BaseController {
 
     @GetMapping(value = "/findByQuoteNo")
     @ApiOperation(value = "根据报价号查询")
-    public HttpResult findByQuoteNo(@RequestParam @NotBlank(message = "报价号ID不能为空") String quoteNo) {
+    public HttpResult<Map<String, List<InsTaskImagesDto>>> findByQuoteNo(@RequestParam @NotBlank(message = "报价号ID不能为空") String quoteNo) {
         return this.insTaskImagesService.findByQuoteNo(quoteNo);
     }
 
     @PostMapping("/imageCompression")
     @ApiOperation(value = "图片压缩")
-    public HttpResult imageCompression(@RequestParam(value = "file") MultipartFile file) {
+    public HttpResult<String> imageCompression(@RequestParam(value = "file") MultipartFile file) {
         try {
             // 转换后的图片
-            byte[] bytes_bytes = ImageCompressionUtils.compressPicForScale(file.getBytes(), 100);
-            String s = Base64.getEncoder().encodeToString(bytes_bytes);
+            byte[] bytesBytes = ImageCompressionUtils.compressPicForScale(file.getBytes(), 100);
+            String s = Base64.getEncoder().encodeToString(bytesBytes);
             return HttpResult.ok("转换成功", s);
         } catch (Exception e) {
             e.printStackTrace();
@@ -120,7 +122,7 @@ public class OrderTaskImageController extends BaseController {
 
     @PostMapping("/uploadFile")
     @ApiOperation(value = "文件上传")
-    public HttpResult uploadFile(@CheckObjectNotNull(message = "上传文件不能为空") MultipartFile multipartFile, String type, HttpServletRequest request) throws IOException {
+    public HttpResult<InsUploadFiles> uploadFile(@CheckObjectNotNull(message = "上传文件不能为空") MultipartFile multipartFile, String type, HttpServletRequest request) throws IOException {
         InsUploadFiles insUploadFiles = insUploadFilesService.uploadFile(multipartFile, getUserName(), type);
         return HttpResult.ok(insUploadFiles);
     }

+ 2 - 3
src/main/java/com/ydtech/modules/order/controller/RenewalController.java

@@ -36,7 +36,7 @@ public class RenewalController extends BaseController {
     @ApiOperation("查询续保")
     public HttpResult queryRenewal(@RequestBody QueryRenewalVo queryRenewalVo) {
         YaQuoteInfoVo quoteInfoVo = insRenewalService.queryRenewal(queryRenewalVo);
-        if(null == quoteInfoVo || null == quoteInfoVo.getCarInfo()){
+        if (null == quoteInfoVo || null == quoteInfoVo.getCarInfo()) {
             return HttpResult.error("未查询到续保信息");
         }
         return HttpResult.ok(quoteInfoVo);
@@ -64,13 +64,12 @@ public class RenewalController extends BaseController {
     @ApiOperation("[管理]分页获取")
     public HttpResult query(BasePageVO basePageVO) {
         return insRenewalService.manageQuery(basePageVO);
-
     }
 
     @DeleteMapping("/{id}")
     @ApiOperation("[管理]id删除")
     public HttpResult delete(@PathVariable Integer id) {
-       return insRenewalService.manageDelete(id);
+        return insRenewalService.manageDelete(id);
     }
 
 }

+ 16 - 0
src/main/java/com/ydtech/modules/order/entity/TaxArrears.java

@@ -1,9 +1,13 @@
 package com.ydtech.modules.order.entity;
 
+import com.ydtech.modules.order.entity.crawler.response.CrawlerQuoteResponse;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
@@ -23,4 +27,16 @@ public class TaxArrears {
      * 滞纳金
      */
     private double lateFee;
+
+    public TaxArrears(CrawlerQuoteResponse.TaxArrearsDto taxArrearsDto) {
+        this.years = taxArrearsDto.getStartDay() +"-" + taxArrearsDto.getEndDay() ;
+        this.taxDefault = taxArrearsDto.getLateFee();
+        this.lateFee = taxArrearsDto.getAllLateFee();
+    }
+
+    public static List<TaxArrears> toTaxArrears(List<CrawlerQuoteResponse.TaxArrearsDto> taxArrearsDtoList){
+        return taxArrearsDtoList.stream().map(TaxArrears::new).collect(Collectors.toList());
+    }
+
+
 }

+ 1 - 1
src/main/java/com/ydtech/modules/order/entity/api/zm/constants/TransCode.java

@@ -13,7 +13,7 @@ public class TransCode {
     }
 
     //车型查询
-   public static final String MODELS_QUERY = "ModelsQuery";
+    public static final String MODELS_QUERY = "ModelsQuery";
 
     //报价
     public static final String QUOTE_PRICE = "QuotedPrice";

+ 3 - 3
src/main/java/com/ydtech/modules/order/entity/crawler/request/CrawlerImageRequest.java

@@ -26,14 +26,14 @@ public class CrawlerImageRequest extends CrawlerBaseRequest {
         this.b64phoList = b64phoListDTO;
     }
 
-    public static List<B64phoListDTO> toB64phoListDTO(List<InsTaskImagesBase64> insTaskImagesBase64List){
-        return insTaskImagesBase64List.stream().map(a ->new B64phoListDTO(a.getBase64String(), a.getImageType())).collect(Collectors.toList());
+    public static List<B64phoListDTO> toB64phoListDTO(List<InsTaskImagesBase64> insTaskImagesBase64List) {
+        return insTaskImagesBase64List.stream().map(a -> new B64phoListDTO(a.getBase64String(), a.getImageType())).collect(Collectors.toList());
     }
 
     @AllArgsConstructor
     @NoArgsConstructor
     @Data
-    public static class B64phoListDTO implements Serializable{
+    public static class B64phoListDTO implements Serializable {
 
         private static final long serialVersionUID = 7315354165469344874L;
 

+ 12 - 2
src/main/java/com/ydtech/modules/order/entity/crawler/request/CrawlerLoginRequest.java

@@ -1,13 +1,17 @@
 package com.ydtech.modules.order.entity.crawler.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementAttributionDto;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.util.LinkedHashMap;
 
 
 @Data
-public class CrawlerLoginRequest<T extends Serializable> implements Serializable {
+@NoArgsConstructor
+public class CrawlerLoginRequest implements Serializable {
 
     private static final long serialVersionUID = -4537293917734598459L;
     /**
@@ -26,6 +30,12 @@ public class CrawlerLoginRequest<T extends Serializable> implements Serializable
      * 归属信息
      */
     @JsonProperty(value = "other")
-    private T other;
+    private LinkedHashMap<Object, Object> other;
+
+    public CrawlerLoginRequest(PtlAgreementAttributionDto attribution) {
+        this.username = attribution.getUsername();
+        this.password = attribution.getPassword();
+        this.other = attribution.getFields().stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getField(), v.getValue()), LinkedHashMap::putAll);
+    }
 
 }

+ 1 - 3
src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerAuditResponse.java

@@ -4,11 +4,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
-import java.io.Serializable;
-
 @NoArgsConstructor
 @Data
-public class CrawlerAuditResponse  extends  CrawlerBaseResponse {
+public class CrawlerAuditResponse extends CrawlerBaseResponse {
 
     private static final long serialVersionUID = 8990977573134495552L;
 

+ 39 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerPolicyPrintResponse.java

@@ -0,0 +1,39 @@
+package com.ydtech.modules.order.entity.crawler.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@NoArgsConstructor
+@Data
+public class CrawlerPolicyPrintResponse extends CrawlerBaseResponse {
+
+    private static final long serialVersionUID = 6273228244745645378L;
+
+    /**
+     * 交强险保单地址
+     */
+    @JsonProperty("jqx_policy_url")
+    private String jqxPolicyUrl;
+
+    /**
+     * 交强险标志地址
+     */
+    @JsonProperty("syx_policy_url")
+    private String syxPolicyUrl;
+
+    /**
+     * 商业险保单地址
+     */
+    @JsonProperty("jqx_flag_url")
+    private String jqxFlagUrl;
+
+    /**
+     * 驾意险保单地址
+     */
+    @JsonProperty("jyx_policy_url")
+    private String jyxPolicyUrl;
+
+}

+ 4 - 1
src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerQuoteResponse.java

@@ -2,10 +2,13 @@ package com.ydtech.modules.order.entity.crawler.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
+import java.util.List;
 import java.util.Map;
 
+@EqualsAndHashCode(callSuper = true)
 @Data
 public class CrawlerQuoteResponse extends CrawlerBaseResponse {
 
@@ -45,7 +48,7 @@ public class CrawlerQuoteResponse extends CrawlerBaseResponse {
      * 滞纳金参数
      */
     @JsonProperty(value = "tax_arrears")
-    private TaxArrearsDto taxArrears;
+    private List<TaxArrearsDto> taxArrears;
 
     @Data
     public static class TaxArrearsDto implements Serializable {

+ 1 - 1
src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerVerifyPaymentResponse.java

@@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
-public class CrawlerVerifyPaymentResponse extends CrawlerBaseResponse{
+public class CrawlerVerifyPaymentResponse extends CrawlerBaseResponse {
 
     private static final long serialVersionUID = 5344292346551122923L;
 

+ 35 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/vo/CrawlerPolicyPrintVo.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.order.entity.crawler.vo;
+
+import com.ydtech.modules.order.entity.crawler.response.CrawlerPolicyPrintResponse;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("保单地址")
+public class CrawlerPolicyPrintVo implements Serializable {
+
+    private static final long serialVersionUID = -1760478430310950471L;
+
+    @ApiModelProperty("交强险保单地址")
+    private String jqxPolicyUrl;
+
+    @ApiModelProperty("交强险标志地址")
+    private String syxPolicyUrl;
+
+    @ApiModelProperty("商业险保单地址")
+    private String jqxFlagUrl;
+
+    @ApiModelProperty("驾意险保单地址")
+    private String jyxPolicyUrl;
+
+    public CrawlerPolicyPrintVo(CrawlerPolicyPrintResponse crawlerPolicyPrintResponse) {
+        this.jqxPolicyUrl = crawlerPolicyPrintResponse.getJqxPolicyUrl();
+        this.syxPolicyUrl = crawlerPolicyPrintResponse.getSyxPolicyUrl();
+        this.jqxFlagUrl = crawlerPolicyPrintResponse.getJqxFlagUrl();
+        this.jyxPolicyUrl = crawlerPolicyPrintResponse.getJyxPolicyUrl();
+    }
+
+}

+ 0 - 2
src/main/java/com/ydtech/modules/order/entity/vo/AccidentalDrivingQueryVo.java

@@ -4,8 +4,6 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import javax.validation.Valid;
-import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;

+ 0 - 2
src/main/java/com/ydtech/modules/order/entity/vo/BaseQuoteVo.java

@@ -21,7 +21,6 @@ public class BaseQuoteVo<T> {
     private T accidentalDrivingVo;
 
 
-
     //add 交强转保确认码  lig  2023-05-23
     @ApiModelProperty("交强转保确认码")
     private String renewalCodeJq;
@@ -37,5 +36,4 @@ public class BaseQuoteVo<T> {
     private String cQryCdeSy;
 
 
-
 }

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/IdentifyService.java

@@ -9,6 +9,7 @@ public interface IdentifyService {
 
     /**
      * 身份证正反面识别
+     *
      * @param image1 正面
      * @param image2 反面
      * @return
@@ -18,6 +19,7 @@ public interface IdentifyService {
 
     /**
      * 行驶证正反面识别
+     *
      * @param image1 正面
      * @param image2 反面
      * @return

+ 20 - 0
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -10,8 +10,28 @@ import com.ydtech.modules.order.entity.InsAreaCompany;
  */
 public interface InsAreaCompanyService extends IService<InsAreaCompany> {
 
+    /**
+     * 通过子订单查询子订单
+     *
+     * @param companyId 子订单
+     * @return InsAreaCompany
+     */
     InsAreaCompany getByIdIsExist(String companyId);
 
+
+    /**
+     * 通过 保险公司订单号查询子订单
+     *
+     * @param insOrderNo 保险公司订单号
+     * @return InsAreaCompany
+     */
     InsAreaCompany getByInsOrderNo(String insOrderNo);
 
+    /**
+     * 修改子订单 并且修改订单状态
+     *
+     * @param insAreaCompany
+     */
+    void updateCompanyAndOrders(InsAreaCompany insAreaCompany);
+
 }

+ 35 - 0
src/main/java/com/ydtech/modules/order/service/InsCrawlerOrderService.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.order.service;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementAttributionDto;
+
+public interface InsCrawlerOrderService extends BaseOrderService<Object> {
+
+
+    /**
+     * 缴费状态查询
+     *
+     * @param subOrderNo 子订单
+     * @return HttpResult
+     */
+    HttpResult<Object> verifyPayment(String subOrderNo);
+
+    /**
+     * 获取电子保单
+     *
+     * @param subOrderNo 子订单
+     * @return HttpResult
+     */
+    HttpResult<CrawlerPolicyPrintVo> getPolicyPrint(String subOrderNo);
+
+    /**
+     * 判断是否登录成功 配置归属
+     *
+     * @param attribution    配置归属
+     * @param insCompanyName 保险公司名称
+     * @return 是否成功登陆
+     */
+    boolean isLogin(PtlAgreementAttributionDto attribution, String insCompanyName);
+
+}

+ 3 - 2
src/main/java/com/ydtech/modules/order/service/InsOrdersService.java

@@ -22,7 +22,8 @@ public interface InsOrdersService extends IService<InsOrders> {
 
     /**
      * 通过 部门id 获取协议授权权限
-     * @param deptId  部门id
+     *
+     * @param deptId 部门id
      * @return HttpResult
      */
     HttpResult<List<PtlAgreementInsCompanyDto>> getAgreementInsCompany(String deptId);
@@ -57,7 +58,7 @@ public interface InsOrdersService extends IService<InsOrders> {
      * @param quoteInfoVo 报价信息
      * @return 订单信息
      */
-    InsOrders generateOrder(BaseQuoteInfoVo quoteInfoVo);
+    InsOrders generateOrder(String userId, BaseQuoteInfoVo quoteInfoVo);
 
     /**
      * 查询订单接口

+ 3 - 1
src/main/java/com/ydtech/modules/order/service/InsTaskImagesService.java

@@ -2,11 +2,13 @@ package com.ydtech.modules.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
 import com.ydtech.modules.order.entity.po.InsTaskImages;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.vo.InsTaskImagesVo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author wenks
@@ -17,7 +19,7 @@ public interface InsTaskImagesService extends IService<InsTaskImages> {
 
     HttpResult uploadImages(InsTaskImagesVo insTaskImagesVo, String username);
 
-    HttpResult findByQuoteNo(String quoteNo);
+    HttpResult<Map<String, List<InsTaskImagesDto>>> findByQuoteNo(String quoteNo);
 
     /**
      * 获取文件的 文件的Base64 编码

+ 0 - 14
src/main/java/com/ydtech/modules/order/service/InsuranceCrawlerOrderService.java

@@ -1,14 +0,0 @@
-package com.ydtech.modules.order.service;
-
-import com.ydtech.core.page.HttpResult;
-
-public interface InsuranceCrawlerOrderService  extends BaseOrderService<Object> {
-
-
-    /**
-     * 缴费状态查询
-     * @param subOrderNo
-     * @return
-     */
-    HttpResult verifyPayment(String subOrderNo);
-}

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/ZhongMeiOrderApiService.java

@@ -13,6 +13,7 @@ public interface ZhongMeiOrderApiService extends BaseOrderService<AccidentalDriv
 
     /**
      * 车型查询
+     *
      * @param modelName 车型名称
      * @return
      */
@@ -20,6 +21,7 @@ public interface ZhongMeiOrderApiService extends BaseOrderService<AccidentalDriv
 
     /**
      * 提交影像信息
+     *
      * @param companyId 子订单编号
      * @return
      */

+ 1 - 1
src/main/java/com/ydtech/modules/order/service/impl/CarModelServiceImpl.java

@@ -26,7 +26,7 @@ public class CarModelServiceImpl implements CarModelService {
     }
 
     @Override
-    public HttpResult< List<CarModelDTO>> vinSearch(String frameNo) {
+    public HttpResult<List<CarModelDTO>> vinSearch(String frameNo) {
         List<CarModelDTO> carModelDTOS = insOrdersService.vinSearch(frameNo);
         if (!carModelDTOS.isEmpty()) {
             return HttpResult.ok(carModelDTOS);

+ 18 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -6,7 +6,10 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
+import com.ydtech.modules.order.service.InsOrdersService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 /**
@@ -18,6 +21,13 @@ import org.springframework.util.ObjectUtils;
 public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper, InsAreaCompany>
         implements InsAreaCompanyService {
 
+    private  InsOrdersService insOrdersService;
+
+    @Autowired
+    public void setInsOrdersService(InsOrdersService insOrdersService) {
+        this.insOrdersService = insOrdersService;
+    }
+
     @Override
     public InsAreaCompany getByIdIsExist(String companyId) {
         InsAreaCompany insAreaCompany = this.getById(companyId);
@@ -31,6 +41,14 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     public InsAreaCompany getByInsOrderNo(String insOrderNo) {
         return baseMapper.selectOne(new LambdaQueryWrapper<InsAreaCompany>().eq(InsAreaCompany::getInsOrderNo, insOrderNo));
     }
+
+    @Override
+    @Transactional
+    public void updateCompanyAndOrders(InsAreaCompany insAreaCompany) {
+        baseMapper.updateById(insAreaCompany);
+        insOrdersService.updateByOrderStatus(insAreaCompany.getOrderno(), insAreaCompany.getOrderstatus());
+    }
+
 }
 
 

+ 55 - 49
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -7,25 +7,24 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.components.InsCrawlerOrderComponents;
 import com.ydtech.modules.order.entity.InsAreaCompany;
+import com.ydtech.modules.order.entity.TaxArrears;
 import com.ydtech.modules.order.entity.crawler.constants.CrawlerVerifyPaymentConstants;
 import com.ydtech.modules.order.entity.crawler.request.CrawlerBaseRequest;
 import com.ydtech.modules.order.entity.crawler.request.CrawlerImageRequest;
+import com.ydtech.modules.order.entity.crawler.request.CrawlerLoginRequest;
 import com.ydtech.modules.order.entity.crawler.request.CrawlerQuoteRequest;
-import com.ydtech.modules.order.entity.crawler.response.CrawlerAuditResponse;
-import com.ydtech.modules.order.entity.crawler.response.CrawlerBaseResponse;
-import com.ydtech.modules.order.entity.crawler.response.CrawlerQuoteResponse;
-import com.ydtech.modules.order.entity.crawler.response.CrawlerVerifyPaymentResponse;
+import com.ydtech.modules.order.entity.crawler.response.*;
+import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
-import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.modules.order.service.InsCrawlerOrderService;
 import com.ydtech.modules.order.service.InsTaskImagesService;
-import com.ydtech.modules.order.service.InsuranceCrawlerOrderService;
 import com.ydtech.modules.protocol.entity.constants.PtlCrawlerApiType;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementAttributionDto;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
-import com.ydtech.modules.protocol.service.PtlAgreementService;
 import com.ydtech.modules.protocol.service.PtlCrawlerApiService;
 import com.ydtech.utils.CalculateUtils;
 import com.ydtech.utils.idgen.IdGenerate;
@@ -39,9 +38,7 @@ import java.util.Map;
 
 
 @Service
-public class InsCrawlerOrderServiceImpl implements InsuranceCrawlerOrderService {
-
-    private final PtlAgreementService ptlAgreementService;
+public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
 
     private final PtlCrawlerApiService ptlCrawlerApiService;
 
@@ -51,37 +48,38 @@ public class InsCrawlerOrderServiceImpl implements InsuranceCrawlerOrderService
 
     private final InsAreaCompanyService insAreaCompanyService;
 
-    private final InsOrdersService insOrdersService;
-
     private final InsTaskImagesService insTaskImagesService;
 
-    public InsCrawlerOrderServiceImpl(PtlAgreementService ptlAgreementService, PtlCrawlerApiService ptlCrawlerApiService, InsCrawlerOrderComponents insCrawlerOrderComponents, PtlAgreementAttributionService ptlAgreementAttributionService, InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, InsTaskImagesService insTaskImagesService) {
-        this.ptlAgreementService = ptlAgreementService;
+    public InsCrawlerOrderServiceImpl(PtlCrawlerApiService ptlCrawlerApiService, InsCrawlerOrderComponents insCrawlerOrderComponents, PtlAgreementAttributionService ptlAgreementAttributionService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService) {
         this.ptlCrawlerApiService = ptlCrawlerApiService;
         this.insCrawlerOrderComponents = insCrawlerOrderComponents;
         this.ptlAgreementAttributionService = ptlAgreementAttributionService;
         this.insAreaCompanyService = insAreaCompanyService;
-        this.insOrdersService = insOrdersService;
         this.insTaskImagesService = insTaskImagesService;
     }
 
+
+    @Override
+    public boolean isLogin(PtlAgreementAttributionDto attribution, String insCompanyName) {
+        String apiUrl = ptlCrawlerApiService.getByTemplateId(attribution.getTemplateId(), PtlCrawlerApiType.API_1);
+        CrawlerLoginRequest crawlerLoginRequest = new CrawlerLoginRequest(attribution);
+        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, insCompanyName, PtlCrawlerApiType.API_2.getDesc(), crawlerLoginRequest, CrawlerBaseResponse.class);
+        return response.getCode() == 200;
+    }
+
     @Override
     public HttpResult<QuoteRespVo> quote(BaseQuoteInfoVo quoteInfoVo, BaseQuoteVo<Object> t) {
         // 协议id
         String agreementId = t.getAgreementId();
         // 请求地址
-        String apiUrl = ptlCrawlerApiService.getApiUrl(agreementId, String.valueOf(PtlCrawlerApiType.API_2.getCode()));
+        String apiUrl = ptlCrawlerApiService.getApiUrl(agreementId, PtlCrawlerApiType.API_2);
         // 账号信息
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
         CrawlerQuoteRequest crawlerQuoteRequest = (CrawlerQuoteRequest) quoteInfoVo;
         crawlerQuoteRequest.setUsername(ptlAgreementAttribution.getUsername());
         String insCompanyName = ptlAgreementAttribution.getInsCompanyName();
         // 发送请求
-        CrawlerQuoteResponse response = insCrawlerOrderComponents.request(apiUrl,
-                insCompanyName,
-                PtlCrawlerApiType.API_2.getDesc(),
-                crawlerQuoteRequest,
-                CrawlerQuoteResponse.class);
+        CrawlerQuoteResponse response = insCrawlerOrderComponents.request(apiUrl, insCompanyName, PtlCrawlerApiType.API_2.getDesc(), crawlerQuoteRequest, CrawlerQuoteResponse.class);
         QuoteRespVo quoteRespVo = getQuoteRespVo(response, quoteInfoVo);
         return responseOrder(response, quoteRespVo, agreementId, insCompanyName);
     }
@@ -90,20 +88,14 @@ public class InsCrawlerOrderServiceImpl implements InsuranceCrawlerOrderService
     public HttpResult<Object> submitImage(String subOrderNo) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(subOrderNo);
         // 请求地址
-        String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), String.valueOf(PtlCrawlerApiType.API_3.getCode()));
+        String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_3);
         List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insAreaCompany.getOrderno());
         CrawlerImageRequest crawlerImageRequest = new CrawlerImageRequest(insAreaCompany.getInsOrderNo(), CrawlerImageRequest.toB64phoListDTO(insTaskImagesBase64s));
         // 发送请求
-        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl,
-                insAreaCompany.getInscompany(),
-                PtlCrawlerApiType.API_3.getDesc(),
-                crawlerImageRequest,
-                CrawlerBaseResponse.class);
-
+        CrawlerBaseResponse response = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getInscompany(), PtlCrawlerApiType.API_3.getDesc(), crawlerImageRequest, CrawlerBaseResponse.class);
         if (response.getCode() != 200) {
             throw new SystemException(response.getMessage());
         }
-
         return HttpResult.ok("上传成功");
     }
 
@@ -111,52 +103,62 @@ public class InsCrawlerOrderServiceImpl implements InsuranceCrawlerOrderService
     public HttpResult<Object> audit(String subOrderNo) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(subOrderNo);
         // 请求地址
-        String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), String.valueOf(PtlCrawlerApiType.API_4.getCode()));
+        String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_4);
         //组装参数
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
-        CrawlerAuditResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl,
-                insAreaCompany.getInscompany(),
-                PtlCrawlerApiType.API_4.getDesc(),
-                crawlerBaseRequest,
-                CrawlerAuditResponse.class);
+        CrawlerAuditResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getInscompany(), PtlCrawlerApiType.API_4.getDesc(), crawlerBaseRequest, CrawlerAuditResponse.class);
         if (crawlerAuditResponse.getCode() != 200) {
             throw new SystemException(crawlerAuditResponse.getMessage());
         }
-
         // 投保单号
         insAreaCompany.setPaymentLink(crawlerAuditResponse.getPayUrl());
         insAreaCompany.setJqapplyno(crawlerAuditResponse.getJqApplication());
         insAreaCompany.setSyapplyno(crawlerAuditResponse.getSyApplication());
         insAreaCompany.setJyapplyno(crawlerAuditResponse.getJyxApplication());
-
         // 保单号
         insAreaCompany.setJqpolicyno(crawlerAuditResponse.getJqPolicy());
         insAreaCompany.setSypolicyno(crawlerAuditResponse.getSyPolicy());
         insAreaCompany.setJypolicyno(crawlerAuditResponse.getJyxPolicy());
-
         insAreaCompany.setOrderstatus(InsOrderStatus.S_2.getCode());
-        insAreaCompanyService.updateById(insAreaCompany);
-        insOrdersService.updateByOrderStatus(insAreaCompany.getOrderno(), insAreaCompany.getOrderstatus());
+        insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
         return HttpResult.ok("核保成功");
     }
 
 
     @Override
-    public HttpResult verifyPayment(String subOrderNo) {
+    public HttpResult<Object> verifyPayment(String subOrderNo) {
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(subOrderNo);
+        // 请求地址
+        String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_4);
+        //组装参数
+        CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
+        CrawlerVerifyPaymentResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getInscompany(), PtlCrawlerApiType.API_4.getDesc(), crawlerBaseRequest, CrawlerVerifyPaymentResponse.class);
+
+        // 0未缴费,1已缴费
+        if (crawlerAuditResponse.getState() == CrawlerVerifyPaymentConstants.PAID) {
+            insAreaCompany.setOrderstatus(InsOrderStatus.S_3.getCode());//已承保
+            insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+            return HttpResult.ok("支付成功");
+        }
+
+        throw new SystemException("此订单还未缴费");
+    }
+
+    @Override
+    public HttpResult<CrawlerPolicyPrintVo> getPolicyPrint(String subOrderNo) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(subOrderNo);
         // 请求地址
-        String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), String.valueOf(PtlCrawlerApiType.API_4.getCode()));
+        String apiUrl = ptlCrawlerApiService.getApiUrl(insAreaCompany.getAgreementId(), PtlCrawlerApiType.API_6);
         //组装参数
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
-        CrawlerVerifyPaymentResponse crawlerAuditResponse = insCrawlerOrderComponents.request(apiUrl,
-                insAreaCompany.getInscompany(),
-                PtlCrawlerApiType.API_4.getDesc(),
-                crawlerBaseRequest,
-                CrawlerVerifyPaymentResponse.class);
-//        if(crawlerAuditResponse.getState() == CrawlerVerifyPaymentConstants.)
+        CrawlerPolicyPrintResponse request = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getInscompany(), PtlCrawlerApiType.API_6.getDesc(), crawlerBaseRequest, CrawlerPolicyPrintResponse.class);
 
+        if (request.getCode() != 200) {
+            throw new SystemException(request.getMessage());
+        }
 
-        return null;
+        CrawlerPolicyPrintVo crawlerPolicyPrintVo = new CrawlerPolicyPrintVo(request);
+        return HttpResult.ok(crawlerPolicyPrintVo);
     }
 
     public QuoteRespVo getQuoteRespVo(CrawlerQuoteResponse response, BaseQuoteInfoVo yaQuoteInfoVo) {
@@ -210,6 +212,7 @@ public class InsCrawlerOrderServiceImpl implements InsuranceCrawlerOrderService
         quoteRespVo.setCiSumPermium(CalculateUtils.add(response.getForceCarInsureRisk(), response.getCarInsureShipTax()));//交强险和车船税合计
         quoteRespVo.setSumPermium(response.getCarInsureMain());//保费合计
         quoteRespVo.setTaxAmount(response.getCarInsureShipTax());//车船税
+        quoteRespVo.setTaxArrears(TaxArrears.toTaxArrears(response.getTaxArrears()));
         quoteRespVo.setTotalAdjustRate(1);
         quoteRespVo.setILogPreUdwMess("0");//评分
         quoteRespVo.setOrderno(orderNo); //订单号
@@ -231,6 +234,9 @@ public class InsCrawlerOrderServiceImpl implements InsuranceCrawlerOrderService
         insAreaCompany.setKindinfo(JSON.parseArray(JSON.toJSONString(quoteRespVo.getKindList())));
         insAreaCompany.setInscompany(insCompanyName);
         insAreaCompany.setAgreementId(agreementId);
+
+        insAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(quoteRespVo.getTaxArrears())));
+
         // 保险公司订单号
         insAreaCompany.setInsOrderNo(response.getOrderNo());
         insAreaCompanyService.save(insAreaCompany);

+ 4 - 3
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -130,11 +130,11 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     }
 
     @Override
-    public InsOrders generateOrder(BaseQuoteInfoVo quoteInfoVo) {
+    public InsOrders generateOrder(String userId, BaseQuoteInfoVo quoteInfoVo) {
         // 1. 验证订单参数
         orderComponents.checkEmpty(quoteInfoVo);
         InsOrders insOrders = new InsOrders();
-        SysUser user = sysUserService.getById(quoteInfoVo.getUserId());
+        SysUser user = sysUserService.getById(userId);
         if (user == null) {
             throw new SystemException("userId不存在");
         }
@@ -262,7 +262,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         List<InsAreaCompany> insAreaCompanies = insAreaCompanyService.getBaseMapper()
                 .selectList(queryWrapper);
         // 3. 包装订单信息
-        List<InsOrders> ordersList = pageInfo.getList().stream().peek(insOrder -> insOrder.setInsAreaCompanyList(insAreaCompanies.stream().filter(insAreaCompany -> insAreaCompany.getOrderno().equals(insOrder.getOrderno())).collect(Collectors.toList()))).collect(Collectors.toList());
+        List<InsOrders> ordersList = pageInfo.getList().stream()
+                .peek(insOrder -> insOrder.setInsAreaCompanyList(insAreaCompanies.stream().filter(insAreaCompany -> insAreaCompany.getOrderno().equals(insOrder.getOrderno())).collect(Collectors.toList()))).collect(Collectors.toList());
         return new BasePageResult<>(orderQueryVo.getPageNum(), pageInfo.getSize(), pageInfo.getTotal(), pageInfo.getPages(), ordersList);
     }
 

+ 5 - 8
src/main/java/com/ydtech/modules/order/service/impl/InsRenewalServiceImpl.java

@@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.BasePageVO;
 import com.ydtech.core.page.HttpResult;
-import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.esm.model.EsmInsAttribution;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.esm.service.EsmInsAttributionService;
@@ -21,7 +19,6 @@ import com.ydtech.modules.order.entity.request.RenewalRequest;
 import com.ydtech.modules.order.entity.vo.InsRenewalVo;
 import com.ydtech.modules.order.entity.vo.QueryRenewalVo;
 import com.ydtech.modules.order.service.InsRenewalService;
-import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -63,13 +60,13 @@ public class InsRenewalServiceImpl extends ServiceImpl<InsRenewalMapper, InsRene
     }
 
     @Override
-    public HttpResult queryCompany() {
+    public HttpResult<List<EsmInsCompanyDto>> queryCompany() {
         List<EsmInsCompanyDto> esmInsCompany = baseMapper.getByIsOpen();
         return HttpResult.ok(esmInsCompany);
     }
 
     @Override
-    public HttpResult manageSave(InsRenewalVo insRenewalVo) {
+    public HttpResult<InsRenewal> manageSave(InsRenewalVo insRenewalVo) {
         EsmInsCompany esmInsCompany = esmInsCompanyService.isExists(insRenewalVo.getCompanyId());
         InsRenewal insRenewal = new InsRenewal(insRenewalVo, esmInsCompany);
         baseMapper.insert(insRenewal);
@@ -77,7 +74,7 @@ public class InsRenewalServiceImpl extends ServiceImpl<InsRenewalMapper, InsRene
     }
 
     @Override
-    public HttpResult manageRevise(Integer id, InsRenewalVo insRenewalVo) {
+    public HttpResult<InsRenewal> manageRevise(Integer id, InsRenewalVo insRenewalVo) {
         EsmInsCompany esmInsCompany = esmInsCompanyService.isExists(insRenewalVo.getCompanyId());
         InsRenewal insRenewal = new InsRenewal(insRenewalVo, esmInsCompany);
         insRenewal.setId(id);
@@ -86,7 +83,7 @@ public class InsRenewalServiceImpl extends ServiceImpl<InsRenewalMapper, InsRene
     }
 
     @Override
-    public HttpResult manageQuery(BasePageVO basePageVO) {
+    public HttpResult<BasePageResult<InsRenewal>> manageQuery(BasePageVO basePageVO) {
         LambdaQueryWrapper<InsRenewal> wrapper = new LambdaQueryWrapper<>();
         Page<InsRenewal> page = new Page<>(basePageVO.getPageNum(), basePageVO.getPageSize());
         Page<InsRenewal> insRenewalPage = baseMapper.selectPage(page, wrapper);
@@ -95,7 +92,7 @@ public class InsRenewalServiceImpl extends ServiceImpl<InsRenewalMapper, InsRene
     }
 
     @Override
-    public HttpResult manageDelete(Integer id) {
+    public HttpResult<Object> manageDelete(Integer id) {
         baseMapper.deleteById(id);
         return HttpResult.ok("删除成功");
     }

+ 1 - 1
src/main/java/com/ydtech/modules/order/service/impl/InsTaskImagesServiceImpl.java

@@ -59,7 +59,7 @@ public class InsTaskImagesServiceImpl extends ServiceImpl<InsTaskImagesMapper, I
     }
 
     @Override
-    public HttpResult findByQuoteNo(String quoteNo) {
+    public HttpResult<Map<String, List<InsTaskImagesDto>>> findByQuoteNo(String quoteNo) {
         List<InsTaskImagesDto> insTaskImagesDtos = baseMapper.getByQuoteNoInsTaskImagesDtoList(quoteNo);
         Map<String, List<InsTaskImagesDto>> collect = insTaskImagesDtos.stream().collect(Collectors.groupingBy(InsTaskImagesDto::getImageType));
         return HttpResult.ok(collect);

+ 4 - 2
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderServiceImpl.java

@@ -9,6 +9,7 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmInsAttribution;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.esm.model.InsTaskImage;
@@ -98,7 +99,7 @@ public class ZhongMeiOrderServiceImpl implements ZhongMeiOrderService {
     @Override
     public HttpResult quote(BaseQuoteInfoVo quoteInfoVo, BaseQuoteVo<AccidentalDrivingVo> quoteVo) {
         EsmInsCompany esmInsCompany = esmInsCompanyService.isOpen(quoteVo.getCompanyId());
-        SysUser sysUser = sysUserService.getById(quoteInfoVo.getUserId());
+        SysUser sysUser = sysUserService.getById(new BaseController().getUserId());
         // 保险公司是否授权
         EsmInsAttribution esmInsAttribution = esmInsAttributionService.gainAuthorizeAffiliation(sysUser, quoteVo.getCompanyId());
         if (ObjectUtils.isEmpty(esmInsAttribution)) {
@@ -312,7 +313,7 @@ public class ZhongMeiOrderServiceImpl implements ZhongMeiOrderService {
         insAreaCompany.setId(IdGenerate.nextId());
         insAreaCompany.setAttributionId(attributionId);
         insAreaCompany.setOrderno(orderNo);
-        insAreaCompany.setReptxt(JSONObject.parseObject(JSON.toJSONString(response)));
+        insAreaCompany.setReptxt(JSON.parseObject(JSON.toJSONString(response)));
         insAreaCompany.setJqpremium(BigDecimal.valueOf(response.getTrafficStrength()));
         insAreaCompany.setSypremium(BigDecimal.valueOf(response.getBusiness()));
         insAreaCompany.setTaxamount(BigDecimal.valueOf(response.getSumTax()));
@@ -338,6 +339,7 @@ public class ZhongMeiOrderServiceImpl implements ZhongMeiOrderService {
         // 车船税
         TaxArrears taxArrears = new TaxArrears("往年欠税", response.getSumTaxDefault(), response.getSumOverdue());
         List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
+
         insAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(taxArrearsList)));
         insAreaCompanyService.save(insAreaCompany);
         insOrdersService.updateByOrderStatus(orderNo, InsOrderStatus.S_0.getCode());

+ 15 - 1
src/main/java/com/ydtech/modules/protocol/controller/PtlAgreementController.java

@@ -4,12 +4,15 @@ package com.ydtech.modules.protocol.controller;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.service.InsCrawlerOrderService;
+import com.ydtech.modules.protocol.entity.constants.PtlApiType;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.vo.PtlAgreementAuditVo;
 import com.ydtech.modules.protocol.entity.vo.PtlAgreementPageVo;
 import com.ydtech.modules.protocol.entity.vo.PtlAgreementQueryVo;
 import com.ydtech.modules.protocol.entity.vo.PtlAgreementSaveVo;
 import com.ydtech.modules.protocol.service.PtlAgreementService;
+import com.ydtech.modules.protocol.utils.AssertionUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
@@ -26,8 +29,11 @@ public class PtlAgreementController extends BaseController {
 
     private final PtlAgreementService ptlAgreementService;
 
-    public PtlAgreementController(PtlAgreementService ptlAgreementService) {
+    private final InsCrawlerOrderService insCrawlerOrderController;
+
+    public PtlAgreementController(PtlAgreementService ptlAgreementService, InsCrawlerOrderService insCrawlerOrderController) {
         this.ptlAgreementService = ptlAgreementService;
+        this.insCrawlerOrderController = insCrawlerOrderController;
     }
 
     @PostMapping("/page")
@@ -40,6 +46,14 @@ public class PtlAgreementController extends BaseController {
     @ApiOperation("添加协议")
     public HttpResult<Object> save(@RequestBody PtlAgreementSaveVo agreement) {
         String userName = getUserName();
+
+        // 验证用户名密码 python api 对接需要验证用户名
+        if (PtlApiType.PTL_API_2.getCode() == agreement.getAttribution().getApiType()) {
+            String insuranceCompany = agreement.getAgreement().getInsuranceCompany();
+            boolean login = insCrawlerOrderController.isLogin(agreement.getAttribution(), insuranceCompany);
+            AssertionUtils.isSucceed(login, insuranceCompany + "登录用户名和密码不正确");
+        }
+
         return ptlAgreementService.saveAgreement(agreement, userName);
     }
 

+ 7 - 5
src/main/java/com/ydtech/modules/protocol/controller/PtlInsAttributionTemplateController.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.protocol.controller;
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.protocol.entity.dto.PtlInsAttributionTemplateQueryDto;
 import com.ydtech.modules.protocol.entity.po.PtlInsAttributionTemplate;
 import com.ydtech.modules.protocol.entity.vo.PtlInsAttributionTemplateQueryVo;
 import com.ydtech.modules.protocol.entity.vo.PtlInsAttributionTemplateSaveVo;
@@ -19,13 +20,14 @@ public class PtlInsAttributionTemplateController {
 
     private final PtlInsAttributionTemplateService ptlInsAttributionTemplateService;
 
+
     public PtlInsAttributionTemplateController(PtlInsAttributionTemplateService ptlInsAttributionTemplateService) {
         this.ptlInsAttributionTemplateService = ptlInsAttributionTemplateService;
     }
 
-    @GetMapping("/getPtlInsAttributionTemplate")
+    @PostMapping("/getPtlInsAttributionTemplate")
     @ApiOperation("通过保险公司id和api类型查询请求模板")
-    public HttpResult<PtlInsAttributionTemplate> getPtlInsAttributionTemplate(@RequestBody PtlInsAttributionTemplateVo ptlInsAttributionTemplateVo){
+    public HttpResult<PtlInsAttributionTemplate> getPtlInsAttributionTemplate(@RequestBody PtlInsAttributionTemplateVo ptlInsAttributionTemplateVo) {
         return ptlInsAttributionTemplateService.getPtlInsAttributionTemplate(ptlInsAttributionTemplateVo);
     }
 
@@ -37,13 +39,13 @@ public class PtlInsAttributionTemplateController {
 
     @GetMapping("/{id}")
     @ApiOperation("通过id获取模板信息")
-    public HttpResult<PtlInsAttributionTemplate> getByIdObtain(@PathVariable String id) {
+    public HttpResult<PtlInsAttributionTemplateQueryDto> getByIdObtain(@PathVariable String id) {
         return ptlInsAttributionTemplateService.getByIdObtain(id);
     }
 
-    @GetMapping
+    @PostMapping("/page")
     @ApiOperation("分页获取模板信息")
-    public HttpResult<BasePageResult<PtlInsAttributionTemplate>> getAll(PtlInsAttributionTemplateQueryVo ptlInsAttributionTemplateQueryVo) {
+    public HttpResult<BasePageResult<PtlInsAttributionTemplate>> getAll(@RequestBody PtlInsAttributionTemplateQueryVo ptlInsAttributionTemplateQueryVo) {
         return ptlInsAttributionTemplateService.getAll(ptlInsAttributionTemplateQueryVo);
     }
 

+ 5 - 5
src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementAttributionMapper.java

@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 
 /**
-* @author Administrator
-* @description 针对表【ptl_agreement_attribution(协议归属信息)】的数据库操作Mapper
-* @createDate 2023-07-03 09:31:16
-* @Entity generator.domain.PtlAgreementAttribution
-*/
+ * @author wenks
+ * @description 针对表【ptl_agreement_attribution(协议归属信息)】的数据库操作Mapper
+ * @createDate 2023-07-03 09:31:16
+ * @Entity generator.domain.PtlAgreementAttribution
+ */
 public interface PtlAgreementAttributionMapper extends BaseMapper<PtlAgreementAttribution> {
 
 }

+ 5 - 5
src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementDeptMapper.java

@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementDept;
 
 /**
-* @author Administrator
-* @description 针对表【ptl_agreement_dept(协议授权部门表)】的数据库操作Mapper
-* @createDate 2023-07-03 09:31:16
-* @Entity generator.domain.PtlAgreementDept
-*/
+ * @author wenks
+ * @description 针对表【ptl_agreement_dept(协议授权部门表)】的数据库操作Mapper
+ * @createDate 2023-07-03 09:31:16
+ * @Entity generator.domain.PtlAgreementDept
+ */
 public interface PtlAgreementDeptMapper extends BaseMapper<PtlAgreementDept> {
 
 }

+ 6 - 6
src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementMapper.java

@@ -9,14 +9,14 @@ import java.time.LocalDate;
 import java.util.List;
 
 /**
-* @author Administrator
-* @description 针对表【ptl_agreement(协议信息表)】的数据库操作Mapper
-* @createDate 2023-06-05 17:59:52
-* @Entity com.ydtech.modules.protocol.entity.po.PtlAgreement
-*/
+ * @author wenks
+ * @description 针对表【ptl_agreement(协议信息表)】的数据库操作Mapper
+ * @createDate 2023-06-05 17:59:52
+ * @Entity com.ydtech.modules.protocol.entity.po.PtlAgreement
+ */
 public interface PtlAgreementMapper extends BaseMapper<PtlAgreement> {
 
-    List<PtlAgreementInsCompanyDto> getAgreementCompany(@Param("localDate") LocalDate localDate,@Param("deptId") String deptId);
+    List<PtlAgreementInsCompanyDto> getAgreementCompany(@Param("localDate") LocalDate localDate, @Param("deptId") String deptId);
 
 }
 

+ 5 - 5
src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementProductCostsMapper.java

@@ -5,11 +5,11 @@ import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
 
 
 /**
-* @author Administrator
-* @description 针对表【ptl_agreement_product_costs(协议产品费用)】的数据库操作Mapper
-* @createDate 2023-06-05 17:59:52
-* @Entity com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts
-*/
+ * @author wenks
+ * @description 针对表【ptl_agreement_product_costs(协议产品费用)】的数据库操作Mapper
+ * @createDate 2023-06-05 17:59:52
+ * @Entity com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts
+ */
 public interface PtlAgreementProductCostsMapper extends BaseMapper<PtlAgreementProductCosts> {
 
 }

+ 5 - 5
src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementUnderwritingRulesMapper.java

@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementUnderwritingRules;
 
 /**
-* @author Administrator
-* @description 针对表【ptl_agreement_underwriting_rules(协议承保规则)】的数据库操作Mapper
-* @createDate 2023-06-05 17:59:52
-* @Entity com.ydtech.modules.protocol.entity.po.PtlAgreementUnderwritingRules
-*/
+ * @author wenks
+ * @description 针对表【ptl_agreement_underwriting_rules(协议承保规则)】的数据库操作Mapper
+ * @createDate 2023-06-05 17:59:52
+ * @Entity com.ydtech.modules.protocol.entity.po.PtlAgreementUnderwritingRules
+ */
 public interface PtlAgreementUnderwritingRulesMapper extends BaseMapper<PtlAgreementUnderwritingRules> {
 
 }

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/dao/PtlCrawlerApiMapper.java

@@ -5,7 +5,7 @@ import com.ydtech.modules.protocol.entity.po.PtlCrawlerApi;
 import org.apache.ibatis.annotations.Param;
 
 /**
- * @author Administrator
+ * @author wenks
  * @description 针对表【ptl_crawler_api(python对接接口)】的数据库操作Mapper
  * @createDate 2023-07-03 18:10:03
  * @Entity generator.domain.PtlCrawlerApi

+ 5 - 5
src/main/java/com/ydtech/modules/protocol/dao/PtlInsAttributionTemplateMapper.java

@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.protocol.entity.po.PtlInsAttributionTemplate;
 
 /**
-* @author Administrator
-* @description 针对表【ptl_ins_attribution_template(保险公司归属信息模板配置)】的数据库操作Mapper
-* @createDate 2023-07-03 09:31:16
-* @Entity generator.domain.PtlInsAttributionTemplate
-*/
+ * @author wenks
+ * @description 针对表【ptl_ins_attribution_template(保险公司归属信息模板配置)】的数据库操作Mapper
+ * @createDate 2023-07-03 09:31:16
+ * @Entity generator.domain.PtlInsAttributionTemplate
+ */
 public interface PtlInsAttributionTemplateMapper extends BaseMapper<PtlInsAttributionTemplate> {
 
 }

+ 3 - 7
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementAttributionDto.java

@@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
 import lombok.ToString;
 
 import java.io.Serializable;
+import java.util.List;
 
 
 @Data
@@ -15,13 +16,8 @@ import java.io.Serializable;
 @ApiModel("协议归属")
 public class PtlAgreementAttributionDto implements Serializable {
 
-    private static final long serialVersionUID = 5438498729372152816L;
 
-    /**
-     * 协议id
-     */
-    @ApiModelProperty("协议id")
-    private String agreementId;
+    private static final long serialVersionUID = 5438498729372152816L;
 
     /**
      * 模板id
@@ -39,7 +35,7 @@ public class PtlAgreementAttributionDto implements Serializable {
      * 字段集
      */
     @ApiModelProperty("字段集")
-    private PtlAttributionTemplateDto fields;
+    private List<PtlAttributionTemplateDto> fields;
 
     /**
      * 保险公司账号

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementDto.java

@@ -5,7 +5,7 @@ import lombok.Data;
 import java.io.Serializable;
 
 @Data
-public  class PtlAgreementDto implements Serializable {
+public class PtlAgreementDto implements Serializable {
 
     private static final long serialVersionUID = -9099368754131435612L;
 

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementInsCompanyDto.java

@@ -13,6 +13,6 @@ public class PtlAgreementInsCompanyDto extends EsmInsCompany implements Serializ
 
     private static final long serialVersionUID = -5790993730287966635L;
 
-    private List<PtlAgreementDto>  agreement;
+    private List<PtlAgreementDto> agreement;
 
 }

+ 4 - 1
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementSaveDto.java

@@ -26,9 +26,12 @@ public class PtlAgreementSaveDto implements Serializable {
     @ApiModelProperty("协议简称")
     private String agreementAbbreviation;
 
-    @ApiModelProperty("合作公司")
+    @ApiModelProperty("保险公司")
     private String insuranceCompany;
 
+    @ApiModelProperty("保险公司id")
+    private String insuranceCompanyId;
+
     @ApiModelProperty("协议起期")
     private LocalDate startDate;
 

+ 2 - 2
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAttributionTemplateDto.java

@@ -21,8 +21,8 @@ public class PtlAttributionTemplateDto implements Serializable {
     @ApiModelProperty(value = "类型(text 文本框,select 选择框)")
     private String type;
 
-    @ApiModelProperty(value = "是否允许修改(0 可修改,1 不可修改)")
-    private Integer isEdit;
+    @ApiModelProperty(value = "是否允许修改(true 可修改,false 不可修改)")
+    private Boolean isEdit;
 
     @ApiModelProperty(value = "值")
     private String value;

+ 22 - 0
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlInsAttributionTemplateQueryDto.java

@@ -0,0 +1,22 @@
+package com.ydtech.modules.protocol.entity.dto;
+
+import com.ydtech.modules.protocol.entity.po.PtlCrawlerApi;
+import com.ydtech.modules.protocol.entity.po.PtlInsAttributionTemplate;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class PtlInsAttributionTemplateQueryDto extends PtlInsAttributionTemplate {
+
+    private static final long serialVersionUID = -5994717653365872705L;
+
+    private List<PtlCrawlerApi> api;
+
+}

+ 8 - 1
src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreement.java

@@ -12,9 +12,10 @@ import java.time.LocalDateTime;
 
 /**
  * 协议信息表
+ *
  * @TableName ptl_agreement
  */
-@TableName(value ="ptl_agreement")
+@TableName(value = "ptl_agreement")
 @Data
 public class PtlAgreement implements Serializable {
     /**
@@ -53,6 +54,12 @@ public class PtlAgreement implements Serializable {
     @TableField(value = "insurance_company")
     private String insuranceCompany;
 
+    /**
+     * 合作公司
+     */
+    @TableField(value = "insurance_company_id")
+    private String insuranceCompanyId;
+
     /**
      * 协议起期
      */

+ 2 - 9
src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreementDept.java

@@ -2,10 +2,7 @@ package com.ydtech.modules.protocol.entity.po;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
+import lombok.*;
 
 import java.io.Serializable;
 import java.util.List;
@@ -21,6 +18,7 @@ import java.util.stream.Collectors;
 @ToString
 @EqualsAndHashCode
 @NoArgsConstructor
+@AllArgsConstructor
 public class PtlAgreementDept implements Serializable {
     /**
      * 协议id
@@ -41,9 +39,4 @@ public class PtlAgreementDept implements Serializable {
         return deptIdList.stream().map(d -> new PtlAgreementDept(agreementId, d)).collect(Collectors.toList());
     }
 
-    public PtlAgreementDept(String agreementId, String deptId) {
-        this.agreementId = String.valueOf(agreementId);
-        this.deptId = deptId;
-    }
-
 }

+ 4 - 0
src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreementUnderwritingRules.java

@@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 
@@ -17,6 +19,8 @@ import java.io.Serializable;
  */
 @TableName(value = "ptl_agreement_underwriting_rules", autoResultMap = true)
 @Data
+@NoArgsConstructor
+@AllArgsConstructor
 public class PtlAgreementUnderwritingRules implements Serializable {
 
     private static final long serialVersionUID = -5917413561899040616L;

+ 9 - 5
src/main/java/com/ydtech/modules/protocol/entity/po/PtlCrawlerApi.java

@@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ydtech.modules.protocol.entity.constants.PtlCrawlerApiType;
 import com.ydtech.modules.protocol.entity.vo.PtlCrawlerApiSaveVo;
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 import java.util.List;
@@ -19,18 +21,20 @@ import java.util.stream.Collectors;
  */
 @TableName(value = "ptl_crawler_api")
 @Data
+@AllArgsConstructor
+@NoArgsConstructor
 public class PtlCrawlerApi implements Serializable {
     /**
      *
      */
     @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
+    private String id;
 
     /**
      * 模板id
      */
     @TableField(value = "template_id")
-    private Long templateId;
+    private String templateId;
 
     /**
      * 1、归属配置;2、报价;3、影像上传;4、核保;5、缴费查询;6、保单下载;7、非车险查询
@@ -54,11 +58,11 @@ public class PtlCrawlerApi implements Serializable {
     private static final long serialVersionUID = 1L;
 
 
-    public static List<PtlCrawlerApi> toPtlCrawlerApiList(Long templateId, List<PtlCrawlerApiSaveVo> ptlCrawlerApiSaveVoList){
-        return ptlCrawlerApiSaveVoList.stream().map(a-> new PtlCrawlerApi(templateId, a)).collect(Collectors.toList());
+    public static List<PtlCrawlerApi> toPtlCrawlerApiList(String  templateId, List<PtlCrawlerApiSaveVo> ptlCrawlerApiSaveVoList) {
+        return ptlCrawlerApiSaveVoList.stream().map(a -> new PtlCrawlerApi(templateId, a)).collect(Collectors.toList());
     }
 
-    public PtlCrawlerApi(Long templateId, PtlCrawlerApiSaveVo ptlCrawlerApiSaveVo) {
+    public PtlCrawlerApi(String templateId, PtlCrawlerApiSaveVo ptlCrawlerApiSaveVo) {
         this.templateId = templateId;
         this.apiType = ptlCrawlerApiSaveVo.getApiType();
         this.apiName = Enum.valueOf(PtlCrawlerApiType.class, "API_" + ptlCrawlerApiSaveVo.getApiType()).getDesc();

+ 5 - 4
src/main/java/com/ydtech/modules/protocol/entity/po/PtlInsAttributionTemplate.java

@@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.ydtech.modules.protocol.entity.vo.PtlInsAttributionTemplateSaveVo;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
+import lombok.*;
 
 import java.io.Serializable;
 
@@ -22,12 +20,14 @@ import java.io.Serializable;
 @Data
 @ToString
 @EqualsAndHashCode
+@AllArgsConstructor
+@NoArgsConstructor
 public class PtlInsAttributionTemplate implements Serializable {
     /**
      *
      */
     @TableId(value = "id")
-    private Long id;
+    private String id;
 
     /**
      * api类型(1、api对接,2、python对接)
@@ -62,4 +62,5 @@ public class PtlInsAttributionTemplate implements Serializable {
         this.insCompanyName = insCompanyName;
         this.fields = JSON.parseArray(JSON.toJSONString(ptlInsAttributionTemplateSaveVo.getFields()));
     }
+
 }

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementSaveVo.java

@@ -27,7 +27,7 @@ public class PtlAgreementSaveVo {
     @ApiModelProperty("授权部门id")
     private List<String> dept;
 
-    @ApiModelProperty
+    @ApiModelProperty("协议归属")
     private PtlAgreementAttributionDto attribution;
 
 }

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/entity/vo/PtlInsAttributionTemplateQueryVo.java

@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 @Data
 @ApiModel("保险公司归属信息模板查询")
-public class PtlInsAttributionTemplateQueryVo extends BasePageVO  {
+public class PtlInsAttributionTemplateQueryVo extends BasePageVO {
 
 
     private static final long serialVersionUID = -2974470494991688201L;

+ 2 - 0
src/main/java/com/ydtech/modules/protocol/entity/vo/PtlInsAttributionTemplateVo.java

@@ -1,12 +1,14 @@
 package com.ydtech.modules.protocol.entity.vo;
 
 
+import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 
 @Data
+@ApiModel("保险公司归属信息模板查询")
 public class PtlInsAttributionTemplateVo implements Serializable {
 
     private static final long serialVersionUID = -7074257157706968442L;

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/entity/vo/PtlProductVo.java

@@ -21,7 +21,7 @@ public class PtlProductVo {
     private String name;
 
     public static List<PtlProductVo> toPtlProductVoList(List<PtlProduct> esProducts) {
-       return esProducts.stream().map(PtlProductVo::toPtlProductVo).collect(Collectors.toList());
+        return esProducts.stream().map(PtlProductVo::toPtlProductVo).collect(Collectors.toList());
     }
 
     public static PtlProductVo toPtlProductVo(PtlProduct esProducts) {

+ 5 - 4
src/main/java/com/ydtech/modules/protocol/service/PtlAgreementAttributionService.java

@@ -6,7 +6,7 @@ import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 
 
 /**
- * @author Administrator
+ * @author wenks
  * @description 针对表【ptl_agreement_attribution(协议归属信息)】的数据库操作Service
  * @createDate 2023-07-03 09:31:16
  */
@@ -15,10 +15,11 @@ public interface PtlAgreementAttributionService extends IService<PtlAgreementAtt
     /**
      * 添加协议归属信息
      *
-     * @param agreementId 协议id
-     * @param attribution 协议归属信息
+     * @param agreementId        协议id
+     * @param insuranceCompanyId 保险公司id
+     * @param attribution        协议归属信息
      */
-    void saveAttribution(String agreementId, String insuranceCompany, PtlAgreementAttributionDto attribution);
+    void saveAttribution(String agreementId, String insuranceCompanyId, PtlAgreementAttributionDto attribution);
 
 
 }

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/service/PtlAgreementDeptService.java

@@ -6,7 +6,7 @@ import com.ydtech.modules.protocol.entity.po.PtlAgreementDept;
 import java.util.List;
 
 /**
- * @author Administrator
+ * @author wenks
  * @description 针对表【ptl_agreement_dept(协议授权部门表)】的数据库操作Service
  * @createDate 2023-07-03 09:31:16
  */

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/service/PtlAgreementProductCostsService.java

@@ -8,7 +8,7 @@ import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
 import java.util.List;
 
 /**
- * @author Administrator
+ * @author wenks
  * @description 针对表【ptl_agreement_product_costs(协议产品费用)】的数据库操作Service
  * @createDate 2023-06-05 17:59:52
  */

+ 12 - 7
src/main/java/com/ydtech/modules/protocol/service/PtlAgreementService.java

@@ -13,7 +13,7 @@ import com.ydtech.modules.protocol.entity.vo.PtlAgreementSaveVo;
 import java.util.List;
 
 /**
- * @author Administrator
+ * @author wenks
  * @description 针对表【ptl_agreement(协议信息表)】的数据库操作Service
  * @createDate 2023-06-05 17:59:52
  */
@@ -21,6 +21,7 @@ public interface PtlAgreementService extends IService<PtlAgreement> {
 
     /**
      * 获取可以报价的 协议 及其保险公司
+     *
      * @return List<PtlAgreementInsCompanyDto>
      */
     List<PtlAgreementInsCompanyDto> getAgreementCompany(String deptId);
@@ -70,29 +71,33 @@ public interface PtlAgreementService extends IService<PtlAgreement> {
 
     /**
      * 修改协议
-     * @param userName 用户名
-     * @param agreementId  协议id
-     * @param agreement 上传的协议信息
+     *
+     * @param userName    用户名
+     * @param agreementId 协议id
+     * @param agreement   上传的协议信息
      * @return HttpResult
      */
     HttpResult<Object> reviseAgreement(String userName, String agreementId, PtlAgreementSaveVo agreement);
 
     /**
      * 提交 产品费用 承保规则 账号信息 授权部门
+     *
      * @param agreementId 协议id
-     * @param agreement 提交内容
+     * @param agreement   提交内容
      */
-    void saveAssociationInformation(String agreementId, String insuranceCompany, PtlAgreementSaveVo agreement);
+    void saveAssociationInformation(String agreementId, String insuranceCompanyId, PtlAgreementSaveVo agreement);
 
     /**
      * 删除关联信息  产品费用 承保规则 账号信息 授权部门
+     *
      * @param agreementId 协议id
      */
     void deleteAssociationInformation(String agreementId);
 
     /**
      * 审核协议
-     * @param agreementId 协议id
+     *
+     * @param agreementId         协议id
      * @param ptlAgreementAuditVo 审核内容
      * @return
      */

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/service/PtlAgreementUnderwritingRulesService.java

@@ -10,7 +10,7 @@ import java.util.Map;
 
 
 /**
- * @author Administrator
+ * @author wenks
  * @description 针对表【ptl_agreement_underwriting_rules(协议承保规则)】的数据库操作Service
  * @createDate 2023-06-05 17:59:52
  */

+ 30 - 2
src/main/java/com/ydtech/modules/protocol/service/PtlCrawlerApiService.java

@@ -1,15 +1,43 @@
 package com.ydtech.modules.protocol.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.protocol.entity.constants.PtlCrawlerApiType;
 import com.ydtech.modules.protocol.entity.po.PtlCrawlerApi;
 
+import java.util.List;
+
 /**
- * @author Administrator
+ * @author wenks
  * @description 针对表【ptl_crawler_api(python对接接口)】的数据库操作Service
  * @createDate 2023-07-03 18:10:03
  */
 public interface PtlCrawlerApiService extends IService<PtlCrawlerApi> {
 
-    String getApiUrl(String agreementId, String crawlerApiType);
+    /**
+     * 通过协议获取配置的请求地址
+     *
+     * @param agreementId       协议id
+     * @param ptlCrawlerApiType 请求的业务类型
+     * @return
+     */
+    String getApiUrl(String agreementId, PtlCrawlerApiType ptlCrawlerApiType);
+
+    /**
+     * 通过模版id获取请求地址
+     *
+     * @param templateId        模版id
+     * @param ptlCrawlerApiType 业务类型
+     * @return
+     */
+    String getByTemplateId(String templateId, PtlCrawlerApiType ptlCrawlerApiType);
+
+
+    /**
+     * 通过模版id获取请求
+     *
+     * @param templateId        模版id
+     * @return
+     */
+    List<PtlCrawlerApi> getByTemplateIdList(String templateId);
 
 }

+ 5 - 2
src/main/java/com/ydtech/modules/protocol/service/PtlInsAttributionTemplateService.java

@@ -3,13 +3,14 @@ package com.ydtech.modules.protocol.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.protocol.entity.dto.PtlInsAttributionTemplateQueryDto;
 import com.ydtech.modules.protocol.entity.po.PtlInsAttributionTemplate;
 import com.ydtech.modules.protocol.entity.vo.PtlInsAttributionTemplateQueryVo;
 import com.ydtech.modules.protocol.entity.vo.PtlInsAttributionTemplateSaveVo;
 import com.ydtech.modules.protocol.entity.vo.PtlInsAttributionTemplateVo;
 
 /**
- * @author Administrator
+ * @author wenks
  * @description 针对表【ptl_ins_attribution_template(保险公司归属信息模板配置)】的数据库操作Service
  * @createDate 2023-07-03 09:31:16
  */
@@ -37,7 +38,7 @@ public interface PtlInsAttributionTemplateService extends IService<PtlInsAttribu
      * @param id 保险公司归属信息模板id
      * @return PtlInsAttributionTemplate
      */
-    HttpResult<PtlInsAttributionTemplate> getByIdObtain(String id);
+    HttpResult<PtlInsAttributionTemplateQueryDto> getByIdObtain(String id);
 
     /**
      * 分页查询
@@ -65,8 +66,10 @@ public interface PtlInsAttributionTemplateService extends IService<PtlInsAttribu
 
     /**
      * 通过保险公司id和api类型查询请求模板
+     *
      * @param ptlInsAttributionTemplateVo 保险公司id和api类型
      * @return PtlInsAttributionTemplate
      */
     HttpResult<PtlInsAttributionTemplate> getPtlInsAttributionTemplate(PtlInsAttributionTemplateVo ptlInsAttributionTemplateVo);
+
 }

+ 6 - 5
src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementAttributionServiceImpl.java

@@ -10,13 +10,13 @@ import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
 import org.springframework.stereotype.Service;
 
 /**
-* @author wenks
-* @description 针对表【ptl_agreement_attribution(协议归属信息)】的数据库操作Service实现
-* @createDate 2023-07-03 09:31:16
-*/
+ * @author wenks
+ * @description 针对表【ptl_agreement_attribution(协议归属信息)】的数据库操作Service实现
+ * @createDate 2023-07-03 09:31:16
+ */
 @Service
 public class PtlAgreementAttributionServiceImpl extends ServiceImpl<PtlAgreementAttributionMapper, PtlAgreementAttribution>
-    implements PtlAgreementAttributionService {
+        implements PtlAgreementAttributionService {
 
     private final EsmInsCompanyService esmInsCompanyService;
 
@@ -31,4 +31,5 @@ public class PtlAgreementAttributionServiceImpl extends ServiceImpl<PtlAgreement
         save(ptlAgreementAttribution);
     }
 
+
 }

+ 6 - 3
src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementProductCostsServiceImpl.java

@@ -54,9 +54,12 @@ public class PtlAgreementProductCostsServiceImpl extends ServiceImpl<PtlAgreemen
     @Override
     @Transactional
     public void saveBatchProductCosts(String agreementId, List<PltAgreementSchemeSaveDto> scheme) {
-        List<PtlAgreementProductCosts> ptlAgreementProductCostsList = PtlAgreementProductCostsSaveDto.toPtlAgreementProductCosts(agreementId, scheme);
-        boolean b = saveBatch(ptlAgreementProductCostsList);
-        AssertionUtils.isSucceed(b, "批量添加产品费用失败");
+        if (scheme != null && !scheme.isEmpty()) {
+            List<PtlAgreementProductCosts> ptlAgreementProductCostsList = PtlAgreementProductCostsSaveDto.toPtlAgreementProductCosts(agreementId, scheme);
+            boolean b = saveBatch(ptlAgreementProductCostsList);
+            AssertionUtils.isSucceed(b, "批量添加产品费用失败");
+        }
+
     }
 
 }

+ 7 - 7
src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java

@@ -86,8 +86,8 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
         ptlAgreement.setCreateTime(LocalDateTime.now());
         save(ptlAgreement);
         // 产品费用
-        String insuranceCompany = ptlAgreement.getInsuranceCompany();
-        proxyObject.saveAssociationInformation(ptlAgreement.getId(), insuranceCompany, agreement);
+        String insuranceCompanyId = ptlAgreement.getInsuranceCompanyId();
+        proxyObject.saveAssociationInformation(ptlAgreement.getId(), insuranceCompanyId, agreement);
         return HttpResult.ok("添加成功");
     }
 
@@ -148,8 +148,8 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
         // 关联表都是先删除后添加
         proxyObject.deleteAssociationInformation(agreementId);
 
-        String insuranceCompany = ptlAgreement.getInsuranceCompany();
-        proxyObject.saveAssociationInformation(agreementId, insuranceCompany, agreement);
+        String insuranceCompanyId = ptlAgreement.getInsuranceCompanyId();
+        proxyObject.saveAssociationInformation(agreementId, insuranceCompanyId, agreement);
         return HttpResult.ok("修改成功");
     }
 
@@ -160,14 +160,14 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
      * @param agreement   协议信息全部实体
      */
     @Override
-    public void saveAssociationInformation(String agreementId, String insuranceCompany, PtlAgreementSaveVo agreement) {
+    public void saveAssociationInformation(String agreementId, String insuranceCompanyId, PtlAgreementSaveVo agreement) {
         // 产品费用
         ptlAgreementProductCostsService.saveBatchProductCosts(agreementId, agreement.getScheme());
         // 承包规则
         ptlAgreementUnderwritingRulesService.saveBatchUnderwritingRules(agreementId, agreement.getUnderwritingRules());
-        // 部门授权
-        ptlAgreementAttributionService.saveAttribution(agreementId, insuranceCompany, agreement.getAttribution());
         // 账号添加
+        ptlAgreementAttributionService.saveAttribution(agreementId, insuranceCompanyId, agreement.getAttribution());
+        // 部门授权
         ptlAgreementDeptService.saveBatchDept(agreementId, agreement.getDept());
     }
 

+ 24 - 3
src/main/java/com/ydtech/modules/protocol/service/impl/PtlCrawlerApiServiceImpl.java

@@ -1,14 +1,18 @@
 package com.ydtech.modules.protocol.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.protocol.dao.PtlCrawlerApiMapper;
+import com.ydtech.modules.protocol.entity.constants.PtlCrawlerApiType;
 import com.ydtech.modules.protocol.entity.po.PtlCrawlerApi;
 import com.ydtech.modules.protocol.service.PtlCrawlerApiService;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
- * @author Administrator
+ * @author wenks
  * @description 针对表【ptl_crawler_api(python对接接口)】的数据库操作Service实现
  * @createDate 2023-07-03 18:10:03
  */
@@ -17,12 +21,29 @@ public class PtlCrawlerApiServiceImpl extends ServiceImpl<PtlCrawlerApiMapper, P
         implements PtlCrawlerApiService {
 
     @Override
-    public String getApiUrl(String agreementId, String crawlerApiType) {
-        String apiUrl = baseMapper.getApiUrl(agreementId, crawlerApiType);
+    public String getApiUrl(String agreementId, PtlCrawlerApiType ptlCrawlerApiType) {
+        String apiUrl = baseMapper.getApiUrl(agreementId, String.valueOf(ptlCrawlerApiType.getCode()));
         AssertionUtils.isStringEmpty(apiUrl, "请求地址未配置");
         return apiUrl;
     }
 
+    @Override
+    public String getByTemplateId(String templateId, PtlCrawlerApiType ptlCrawlerApiType) {
+        LambdaQueryWrapper<PtlCrawlerApi> w = new LambdaQueryWrapper<>();
+        w.select(PtlCrawlerApi::getUrl)
+                .eq(PtlCrawlerApi::getTemplateId, templateId)
+                .eq(PtlCrawlerApi::getApiType, ptlCrawlerApiType.getCode());
+        PtlCrawlerApi one = getOne(w);
+        return one.getUrl();
+    }
+
+
+    public List<PtlCrawlerApi> getByTemplateIdList(String templateId) {
+        LambdaQueryWrapper<PtlCrawlerApi> w = new LambdaQueryWrapper<>();
+        w.eq(PtlCrawlerApi::getTemplateId, templateId).orderByAsc(PtlCrawlerApi::getApiType);
+        return list(w);
+    }
+
 }
 
 

+ 43 - 13
src/main/java/com/ydtech/modules/protocol/service/impl/PtlInsAttributionTemplateServiceImpl.java

@@ -10,6 +10,7 @@ import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.dao.PtlInsAttributionTemplateMapper;
 import com.ydtech.modules.protocol.entity.constants.PtlApiType;
+import com.ydtech.modules.protocol.entity.dto.PtlInsAttributionTemplateQueryDto;
 import com.ydtech.modules.protocol.entity.po.PtlCrawlerApi;
 import com.ydtech.modules.protocol.entity.po.PtlInsAttributionTemplate;
 import com.ydtech.modules.protocol.entity.vo.PtlInsAttributionTemplateQueryVo;
@@ -19,11 +20,13 @@ import com.ydtech.modules.protocol.service.PtlCrawlerApiService;
 import com.ydtech.modules.protocol.service.PtlInsAttributionTemplateService;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.utils.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @author wenks
@@ -56,10 +59,9 @@ public class PtlInsAttributionTemplateServiceImpl extends ServiceImpl<PtlInsAttr
         EsmInsCompany esmInsCompany = esmInsCompanyService.isExists(ptlInsAttributionTemplateSaveVo.getInsCompanyId());
 
         // 查询一个保险公司,一种api方式是否只有一种配置
-        LambdaQueryWrapper<PtlInsAttributionTemplate> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-        lambdaQueryWrapper.eq(PtlInsAttributionTemplate::getApiType, ptlInsAttributionTemplateSaveVo.getApiType())
-                .eq(PtlInsAttributionTemplate::getInsCompanyId, ptlInsAttributionTemplateSaveVo.getInsCompanyId());
-        List<PtlInsAttributionTemplate> list = list(lambdaQueryWrapper);
+        LambdaQueryWrapper<PtlInsAttributionTemplate> wrapper = byInsCompanyIdAndApiType(ptlInsAttributionTemplateSaveVo.getInsCompanyId(), ptlInsAttributionTemplateSaveVo.getApiType());
+
+        List<PtlInsAttributionTemplate> list = list(wrapper);
         if (!list.isEmpty()) {
             throw new SystemException("一个保险公司,一种api方式只能配置一种");
         }
@@ -86,15 +88,24 @@ public class PtlInsAttributionTemplateServiceImpl extends ServiceImpl<PtlInsAttr
     }
 
     @Override
-    public HttpResult<PtlInsAttributionTemplate> getByIdObtain(String id) {
-        return HttpResult.ok(getById(id));
+    public HttpResult<PtlInsAttributionTemplateQueryDto> getByIdObtain(String id) {
+        PtlInsAttributionTemplate ptlInsAttributionTemplate = getById(id);
+        PtlInsAttributionTemplateQueryDto ptlInsAttributionTemplateQueryDto = new PtlInsAttributionTemplateQueryDto();
+        BeanUtils.copyProperties(ptlInsAttributionTemplate, ptlInsAttributionTemplateQueryDto);
+
+        BeanUtils.copyProperties(ptlInsAttributionTemplate, ptlInsAttributionTemplateQueryDto);
+        if (PtlApiType.PTL_API_2.getCode() == ptlInsAttributionTemplate.getApiType()) {
+            List<PtlCrawlerApi> ptlCrawlerApiList = ptlCrawlerApiService.getByTemplateIdList(id);
+            ptlInsAttributionTemplateQueryDto.setApi(ptlCrawlerApiList);
+        }
+        return HttpResult.ok(ptlInsAttributionTemplateQueryDto);
     }
 
     @Override
     public HttpResult<BasePageResult<PtlInsAttributionTemplate>> getAll(PtlInsAttributionTemplateQueryVo queryVo) {
         Page<PtlInsAttributionTemplate> pageQuery = new Page<>(queryVo.getPageNum(), queryVo.getPageSize());
         LambdaQueryWrapper<PtlInsAttributionTemplate> queryWrapper = new LambdaQueryWrapper<PtlInsAttributionTemplate>()
-                .eq(StringUtils.isNullOrEmpty(queryVo.getInsCompanyId()), PtlInsAttributionTemplate::getInsCompanyId, queryVo.getInsCompanyId());
+                .eq(!StringUtils.isNullOrEmpty(queryVo.getInsCompanyId()), PtlInsAttributionTemplate::getInsCompanyId, queryVo.getInsCompanyId());
         Page<PtlInsAttributionTemplate> page = page(pageQuery, queryWrapper);
         BasePageResult<PtlInsAttributionTemplate> pageResult = new BasePageResult<>(queryVo.getPageNum(), page.getSize(), page.getTotal(), page.getPages(), page.getRecords());
         return HttpResult.ok("succeed", pageResult);
@@ -103,14 +114,28 @@ public class PtlInsAttributionTemplateServiceImpl extends ServiceImpl<PtlInsAttr
     @Override
     public HttpResult<Object> deleteById(String id) {
         boolean b = removeById(id);
+        LambdaQueryWrapper<PtlCrawlerApi> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PtlCrawlerApi::getTemplateId, id);
+        ptlCrawlerApiService.remove(wrapper);
+
         AssertionUtils.isSucceed(b, "保险公司归属信息模板删除失败");
         return HttpResult.ok("删除成功");
     }
 
     @Override
     public HttpResult<Object> revise(String id, PtlInsAttributionTemplateSaveVo ptlInsAttributionTemplateSaveVo) {
-        // 一个保险公司,一种api方式只能配置一种
-        PtlInsAttributionTemplate ptlInsAttributionTemplate = proxyService.getByApiTypeAndInsCompanyId(ptlInsAttributionTemplateSaveVo);
+        // 判断保险公司是否存在
+        EsmInsCompany esmInsCompany = esmInsCompanyService.isExists(ptlInsAttributionTemplateSaveVo.getInsCompanyId());
+        PtlInsAttributionTemplate ptlInsAttributionTemplate = new PtlInsAttributionTemplate(ptlInsAttributionTemplateSaveVo, esmInsCompany.getNamesimple());
+        ptlInsAttributionTemplate.setId(id);
+
+        LambdaQueryWrapper<PtlInsAttributionTemplate> wrapper = byInsCompanyIdAndApiType(ptlInsAttributionTemplateSaveVo.getInsCompanyId(), ptlInsAttributionTemplateSaveVo.getApiType());
+        PtlInsAttributionTemplate ptlInsAttributionTemplateOne = getOne(wrapper);
+
+        if (!Objects.equals(ptlInsAttributionTemplateOne.getId(), id)) {
+            throw new SystemException("一个保险公司,一种api方式只能配置一种");
+        }
+
         boolean b = updateById(ptlInsAttributionTemplate);
         AssertionUtils.isSucceed(b, "保险公司归属信息模板修改失败");
         return HttpResult.ok("修改成功");
@@ -118,14 +143,19 @@ public class PtlInsAttributionTemplateServiceImpl extends ServiceImpl<PtlInsAttr
 
     @Override
     public HttpResult<PtlInsAttributionTemplate> getPtlInsAttributionTemplate(PtlInsAttributionTemplateVo ptlInsAttributionTemplateVo) {
-        LambdaQueryWrapper<PtlInsAttributionTemplate> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(PtlInsAttributionTemplate::getInsCompanyId, ptlInsAttributionTemplateVo.getInsCompanyId())
-                .eq(PtlInsAttributionTemplate::getApiType, ptlInsAttributionTemplateVo.getApiType());
+        LambdaQueryWrapper<PtlInsAttributionTemplate> wrapper = byInsCompanyIdAndApiType(ptlInsAttributionTemplateVo.getInsCompanyId(), ptlInsAttributionTemplateVo.getApiType());
         PtlInsAttributionTemplate ptlInsAttributionTemplate = getOne(wrapper);
-        AssertionUtils.isEmpty(ptlInsAttributionTemplateVo, "保险公司归属信息模板查询失败");
+        AssertionUtils.isEmpty(ptlInsAttributionTemplate, "保险公司归属信息模板查询失败");
         return HttpResult.ok(ptlInsAttributionTemplate);
     }
 
+    private LambdaQueryWrapper<PtlInsAttributionTemplate> byInsCompanyIdAndApiType(String insCompanyId, Integer apiType) {
+        LambdaQueryWrapper<PtlInsAttributionTemplate> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PtlInsAttributionTemplate::getInsCompanyId, insCompanyId)
+                .eq(PtlInsAttributionTemplate::getApiType, apiType);
+        return wrapper;
+    }
+
 }
 
 

+ 3 - 1
src/main/java/com/ydtech/modules/protocol/utils/AssertionUtils.java

@@ -17,7 +17,9 @@ public class AssertionUtils {
 
 
     private static void assertion(boolean b, String message) {
-        if (b) throw new SystemException(message);
+        if (b) {
+            throw new SystemException(message);
+        }
     }
 
 

+ 0 - 6
src/main/resources/mapper/modules/protocol/EsProductMapper.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ydtech.modules.protocol.dao.EsProductMapper">
-
-
-</mapper>

+ 2 - 1
src/main/resources/mapper/modules/protocol/PtlAgreementMapper.xml

@@ -44,6 +44,7 @@
         <result property="delFlag" column="del_flag" jdbcType="TINYINT"/>
         <result property="openQuote" column="open_quote" jdbcType="TINYINT"/>
         <result property="cnName" column="cn_name" jdbcType="VARCHAR"/>
+        <result property="logo" column="logo" jdbcType="VARCHAR"/>
         <collection property="agreement" ofType="com.ydtech.modules.protocol.entity.dto.PtlAgreementDto">
             <id property="id" column="agreement_id"/>
             <result property="agreementName" column="agreement_name"/>
@@ -66,7 +67,7 @@
     <select id="getAgreementCompany" resultMap="AgreementCompanyResultMap">
         select eic.*, pa.id as agreement_id, pa.agreement_name, paa.api_type
         from esm_ins_company as eic
-                 right join ptl_agreement as pa on pa.insurance_company = eic.id
+                 right join ptl_agreement as pa on pa.insurance_company_id = eic.id
                  left join ptl_agreement_attribution as paa on paa.id = pa.id
         where (#{localDate} between start_date and end_date)
           and pa.id in (select distinct agreement_id

Some files were not shown because too many files changed in this diff