| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- package com.ydtech.constants.enums;
- import com.ydtech.constants.enums.dict.agreement.ProductsType;
- import com.ydtech.modules.ins.model.vo.KindInfoVo;
- import com.ydtech.modules.ins.model.vo.RiskInfoVo;
- import lombok.AllArgsConstructor;
- import lombok.Getter;
- import org.apache.commons.lang3.StringUtils;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @description: 晋掌柜 险种代码
- * @author: wenks
- * @date: 2023/8/11 10:24
- **/
- @Getter
- @AllArgsConstructor
- public enum InsuranceRisk {
- TRAFFIC("0507", "机动车交通事故责任强制保险", "交强"),
- BUSINESS("0510", "机动车商业保险", "商业"),
- ACCIDENT("0513", "意外险", "非车");
- public static final String TRAFFIC_CODE = "0507";
- public static final String BUSINESS_CODE = "0510";
- public static final String ACCIDENT_CODE = "0513";
- private static final List<InsuranceRisk> INSURANCE_RISK = new ArrayList<>();
- static {
- INSURANCE_RISK.add(TRAFFIC);
- INSURANCE_RISK.add(BUSINESS);
- }
- public static List<InsuranceRisk> getInsuranceRisk() {
- return INSURANCE_RISK;
- }
- private final String code;
- private final String desc;
- private final String shortName;
- /**
- * 判断险种信息
- *
- * @param kinds 险种信息
- * @param risks 商业险险种信息
- * @return
- */
- public static ProductsType determineInsuranceInformation(List<KindInfoVo> kinds, List<RiskInfoVo> risks) {
- boolean haveCarDamageKind = false;//是否含车损
- boolean haveBusiKind = false;//是否含车损外的商业险种
- for (KindInfoVo kindInfoVo : kinds) {
- String code = kindInfoVo.getKindCode();
- // 车损
- if (InsurKind.A.getCode().equalsIgnoreCase(code)) {
- haveCarDamageKind = true;
- }
- if (InsurKind.removalOfVehicleDamage().contains(code)) {
- haveBusiKind = true;
- }
- }
- if (risks.size() == 1 && InsuranceRisk.TRAFFIC.getCode().equals(risks.get(0).getRiskCode())) {
- return ProductsType.PT_0330;//单交
- } else if (risks.size() == 1 && !haveCarDamageKind && haveBusiKind) {
- return ProductsType.PT_034002;//单三
- } else if (risks.size() == 1) {
- return ProductsType.PT_034001;//单商
- } else if (risks.size() == 2 && !haveCarDamageKind && haveBusiKind) {
- return ProductsType.PT_0330034002;//交三
- } else {
- return ProductsType.PT_0330034001;//交商
- }
- }
- /**
- * 判断是否投保车损
- *
- * @param kinds 险种信息
- * @return
- */
- public static Boolean getFlagByA(List<KindInfoVo> kinds) {
- boolean haveCarDamageKind = false;//是否含车损
- for (KindInfoVo kindInfoVo : kinds) {
- String code = kindInfoVo.getKindCode();
- // 车损
- if (InsurKind.A.getCode().equalsIgnoreCase(code)) {
- haveCarDamageKind = true;
- }
- }
- return haveCarDamageKind;
- }
- /**
- * 判断是否投保三者险
- * @param kinds 险种信息
- * @return
- */
- public static String getStringByB(List<KindInfoVo> kinds) {
- String val=null;
- for (KindInfoVo kindInfoVo : kinds) {
- String code = kindInfoVo.getKindCode();
- // 车损
- if (InsurKind.B.getCode().equalsIgnoreCase(code) && StringUtils.isNotEmpty(kindInfoVo.getAmount()+"")) {
- val= kindInfoVo.getAmount()+"";
- }
- }
- return val;
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/5/28 10:14
- * @Description: 判断是否投保交强
- */
- public static Boolean getFlagByTRAFFIC(List<RiskInfoVo> risks) {
- boolean trafficFlag = false;//是否含交强
- for (RiskInfoVo risk : risks) {
- // 交强
- if (InsuranceRisk.TRAFFIC.getCode().equals(risk.getRiskCode())) {
- trafficFlag = true;
- }
- }
- return trafficFlag;
- }
- }
|