|
|
@@ -1,7 +1,9 @@
|
|
|
package com.ydtech.modules.fee.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.ydtech.constants.enums.dict.agreement.ProductsType;
|
|
|
import com.ydtech.constants.enums.dict.insurance.EnergyType;
|
|
|
+import com.ydtech.constants.enums.dict.insurance.NatureOfVehicleUse;
|
|
|
import com.ydtech.constants.enums.dict.insurance.VehicleType;
|
|
|
import com.ydtech.exception.SystemException;
|
|
|
import com.ydtech.modules.admin.model.SysUser;
|
|
|
@@ -46,6 +48,7 @@ import org.springframework.stereotype.Service;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
@@ -1621,10 +1624,6 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
//默认分销比例设置
|
|
|
RetailProportion retailProportion = new RetailProportion();
|
|
|
if (!Objects.isNull(esmRetailList) && !esmRetailList.isEmpty()) {
|
|
|
- //处理数据空指针异常 add by hxl 2024-12-19
|
|
|
- if(esmRetailList.get(0).getRetailtype()==null){
|
|
|
- esmRetailList.get(0).setRetailtype("0");
|
|
|
- }
|
|
|
retailLevel = Integer.parseInt(esmRetailList.get(0).getRetailtype());
|
|
|
//赋值默认的分销比例
|
|
|
retailProportion.setProportion(esmRetailList.get(0).getDisrate1(), esmRetailList.get(0).getDisrate2(), esmRetailList.get(0).getDisrate3());
|
|
|
@@ -2829,7 +2828,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
|
|
|
for (int i = 0; i < ptlAgreementUndwrtRulesNews.size(); i++) {
|
|
|
//判断是否匹配
|
|
|
- if (!judgementsRules(ptlAgreementUndwrtRulesNews.get(i).getRulesAttrList(), undwrtRulesAttrList, ruleAttrMappingVoList, logs)) {
|
|
|
+ if (!judgementsRules(ptlAgreementUndwrtRulesNews.get(i).getRulesAttrList(), undwrtRulesAttrList, ruleAttrMappingVoList, logs,insOrders)) {
|
|
|
throw new SystemException(logs.toString());
|
|
|
}
|
|
|
}
|
|
|
@@ -2928,7 +2927,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
*/
|
|
|
private boolean judgementsRules(List<PtlAgreementUndwrtRulesAttrLink> ptlAgreementUndwrtRulesAttrLinks,
|
|
|
List<PtlAgreementUndwrtRulesAttr> rulesAttrs, List<RuleAttrMappingVo> ruleAttrMappingVoList,
|
|
|
- StringBuilder logs) {
|
|
|
+ StringBuilder logs,InsOrders insOrders) {
|
|
|
boolean useFlag = true;
|
|
|
|
|
|
for (int i = 0; i < ptlAgreementUndwrtRulesAttrLinks.size(); i++) {
|
|
|
@@ -2963,7 +2962,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
}
|
|
|
}
|
|
|
if(!Objects.isNull(ruleAttrMappingVo.getValue())) {
|
|
|
- useFlag = attrEqual(ptlAgreementUndwrtRulesAttrLinks.get(i), ptlAgreementUndwrtRulesAttr, ruleAttrMappingVo.getValue());
|
|
|
+ useFlag = attrEqual(ptlAgreementUndwrtRulesAttrLinks.get(i), ptlAgreementUndwrtRulesAttr, ruleAttrMappingVo.getValue(),insOrders);
|
|
|
}else{
|
|
|
useFlag = false;
|
|
|
}
|
|
|
@@ -3072,7 +3071,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
}
|
|
|
|
|
|
private boolean attrEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink,
|
|
|
- PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, String value) {
|
|
|
+ PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, String value,InsOrders insOrders) {
|
|
|
if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
|
|
|
return checkBoxEqual(ptlAgreementUndwrtRulesAttrLink, value);
|
|
|
} else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("inputNumber")) {
|
|
|
@@ -3092,7 +3091,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
} else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio")) {
|
|
|
return radioEqual(ptlAgreementUndwrtRulesAttrLink, value);
|
|
|
} else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("datetime")){
|
|
|
- return dateTimeEqual(ptlAgreementUndwrtRulesAttrLink, value);
|
|
|
+ return dateTimeEqual(ptlAgreementUndwrtRulesAttrLink, value, insOrders);
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
@@ -3354,37 +3353,49 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- public boolean dateTimeEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value){
|
|
|
+ public boolean dateTimeEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value, InsOrders insOrders){
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
- LocalDateTime v = LocalDateTime.parse(value,formatter);
|
|
|
- LocalDateTime min = null,max = null;
|
|
|
- if(!Objects.isNull(ptlAgreementUndwrtRulesAttrLink.getMin())){
|
|
|
- min = LocalDateTime.parse(ptlAgreementUndwrtRulesAttrLink.getMin(),formatter);
|
|
|
- }
|
|
|
- if(!Objects.isNull(ptlAgreementUndwrtRulesAttrLink.getMax())){
|
|
|
- max = LocalDateTime.parse(ptlAgreementUndwrtRulesAttrLink.getMax(),formatter);
|
|
|
- }
|
|
|
-
|
|
|
- //统一处理数值
|
|
|
- if ("1".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
|
|
|
- if (!v.isAfter(min) && v.isBefore(max)) {
|
|
|
+ //判断险种 的起保时间
|
|
|
+ if(ptlAgreementUndwrtRulesAttrLink.getAttrCode().equals("SyStartTime") || ptlAgreementUndwrtRulesAttrLink.getAttrCode().equals("JqStartTime"))
|
|
|
+ {
|
|
|
+ if(insOrders.getProductid().equals(ProductsType.PT_0330.getCode()) && ptlAgreementUndwrtRulesAttrLink.getAttrCode().equals("SyStartTime")){
|
|
|
return true;
|
|
|
}
|
|
|
- } else if ("2".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
|
|
|
- if (!v.isBefore(min)) {
|
|
|
+ if(insOrders.getProductid().equals(ProductsType.PT_034001.getCode()) && ptlAgreementUndwrtRulesAttrLink.getAttrCode().equals("JqStartTime")){
|
|
|
return true;
|
|
|
}
|
|
|
- } else if ("3".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
|
|
|
- if (!v.isBefore(min)) {
|
|
|
- return true;
|
|
|
+ }
|
|
|
+ if(!Objects.isNull(value) && !value.isEmpty()) {
|
|
|
+ LocalDateTime v = LocalDateTime.parse(value, formatter);
|
|
|
+ LocalDateTime min = null, max = null;
|
|
|
+ if (!Objects.isNull(ptlAgreementUndwrtRulesAttrLink.getMin())) {
|
|
|
+ min = LocalDateTime.parse(ptlAgreementUndwrtRulesAttrLink.getMin(), formatter);
|
|
|
}
|
|
|
- } else if ("4".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
|
|
|
- if (!v.isAfter(max)) {
|
|
|
- return true;
|
|
|
+ if (!Objects.isNull(ptlAgreementUndwrtRulesAttrLink.getMax())) {
|
|
|
+ max = LocalDateTime.parse(ptlAgreementUndwrtRulesAttrLink.getMax(), formatter);
|
|
|
}
|
|
|
- } else if ("5".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
|
|
|
- if (!v.isAfter(max)) {
|
|
|
- return true;
|
|
|
+
|
|
|
+ //统一处理数值
|
|
|
+ if ("1".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
|
|
|
+ if (!v.isAfter(min) && v.isBefore(max)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ } else if ("2".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
|
|
|
+ if (!v.isBefore(min)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ } else if ("3".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
|
|
|
+ if (!v.isBefore(min)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ } else if ("4".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
|
|
|
+ if (!v.isAfter(max)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ } else if ("5".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
|
|
|
+ if (!v.isAfter(max)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return false;
|