InsuranceRisk.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.ydtech.constants.enums;
  2. import com.ydtech.constants.enums.dict.agreement.ProductsType;
  3. import com.ydtech.modules.ins.model.vo.KindInfoVo;
  4. import com.ydtech.modules.ins.model.vo.RiskInfoVo;
  5. import lombok.AllArgsConstructor;
  6. import lombok.Getter;
  7. import org.apache.commons.lang3.StringUtils;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. /**
  11. * @description: 晋掌柜 险种代码
  12. * @author: wenks
  13. * @date: 2023/8/11 10:24
  14. **/
  15. @Getter
  16. @AllArgsConstructor
  17. public enum InsuranceRisk {
  18. TRAFFIC("0507", "机动车交通事故责任强制保险", "交强"),
  19. BUSINESS("0510", "机动车商业保险", "商业"),
  20. ACCIDENT("0513", "意外险", "非车");
  21. public static final String TRAFFIC_CODE = "0507";
  22. public static final String BUSINESS_CODE = "0510";
  23. public static final String ACCIDENT_CODE = "0513";
  24. private static final List<InsuranceRisk> INSURANCE_RISK = new ArrayList<>();
  25. static {
  26. INSURANCE_RISK.add(TRAFFIC);
  27. INSURANCE_RISK.add(BUSINESS);
  28. }
  29. public static List<InsuranceRisk> getInsuranceRisk() {
  30. return INSURANCE_RISK;
  31. }
  32. private final String code;
  33. private final String desc;
  34. private final String shortName;
  35. /**
  36. * 判断险种信息
  37. *
  38. * @param kinds 险种信息
  39. * @param risks 商业险险种信息
  40. * @return
  41. */
  42. public static ProductsType determineInsuranceInformation(List<KindInfoVo> kinds, List<RiskInfoVo> risks) {
  43. boolean haveCarDamageKind = false;//是否含车损
  44. boolean haveBusiKind = false;//是否含车损外的商业险种
  45. for (KindInfoVo kindInfoVo : kinds) {
  46. String code = kindInfoVo.getKindCode();
  47. // 车损
  48. if (InsurKind.A.getCode().equalsIgnoreCase(code)) {
  49. haveCarDamageKind = true;
  50. }
  51. if (InsurKind.removalOfVehicleDamage().contains(code)) {
  52. haveBusiKind = true;
  53. }
  54. }
  55. if (risks.size() == 1 && InsuranceRisk.TRAFFIC.getCode().equals(risks.get(0).getRiskCode())) {
  56. return ProductsType.PT_0330;//单交
  57. } else if (risks.size() == 1 && !haveCarDamageKind && haveBusiKind) {
  58. return ProductsType.PT_034002;//单三
  59. } else if (risks.size() == 1) {
  60. return ProductsType.PT_034001;//单商
  61. } else if (risks.size() == 2 && !haveCarDamageKind && haveBusiKind) {
  62. return ProductsType.PT_0330034002;//交三
  63. } else {
  64. return ProductsType.PT_0330034001;//交商
  65. }
  66. }
  67. /**
  68. * 判断是否投保车损
  69. *
  70. * @param kinds 险种信息
  71. * @return
  72. */
  73. public static Boolean getFlagByA(List<KindInfoVo> kinds) {
  74. boolean haveCarDamageKind = false;//是否含车损
  75. for (KindInfoVo kindInfoVo : kinds) {
  76. String code = kindInfoVo.getKindCode();
  77. // 车损
  78. if (InsurKind.A.getCode().equalsIgnoreCase(code)) {
  79. haveCarDamageKind = true;
  80. }
  81. }
  82. return haveCarDamageKind;
  83. }
  84. /**
  85. * 判断是否投保三者险
  86. * @param kinds 险种信息
  87. * @return
  88. */
  89. public static String getStringByB(List<KindInfoVo> kinds) {
  90. String val=null;
  91. for (KindInfoVo kindInfoVo : kinds) {
  92. String code = kindInfoVo.getKindCode();
  93. // 车损
  94. if (InsurKind.B.getCode().equalsIgnoreCase(code) && StringUtils.isNotEmpty(kindInfoVo.getAmount()+"")) {
  95. val= kindInfoVo.getAmount()+"";
  96. }
  97. }
  98. return val;
  99. }
  100. /**
  101. * @version
  102. * @author: hxl
  103. * @Date: 2024/5/28 10:14
  104. * @Description: 判断是否投保交强
  105. */
  106. public static Boolean getFlagByTRAFFIC(List<RiskInfoVo> risks) {
  107. boolean trafficFlag = false;//是否含交强
  108. for (RiskInfoVo risk : risks) {
  109. // 交强
  110. if (InsuranceRisk.TRAFFIC.getCode().equals(risk.getRiskCode())) {
  111. trafficFlag = true;
  112. }
  113. }
  114. return trafficFlag;
  115. }
  116. }