|
|
@@ -16,6 +16,7 @@ import com.jzg.commons.entity.vo.CostListVo;
|
|
|
import com.jzg.commons.exception.SystemException;
|
|
|
import com.jzg.commons.util.StringUtils;
|
|
|
import com.jzg.commons.util.idgen.IdGenerate;
|
|
|
+import com.jzg.organization.component.BuildDescUtils;
|
|
|
import com.jzg.organization.mapper.PtlAgreementUndwrtRulesAttrLinkMapper;
|
|
|
import com.jzg.organization.mapper.PtlAgreementUndwrtRulesMapper;
|
|
|
import com.jzg.organization.service.*;
|
|
|
@@ -195,7 +196,7 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
|
|
|
// andAttrLinks 为空时不设置 ruleDescription,避免 updateById 覆盖已有数据
|
|
|
if (CollUtil.isNotEmpty(andAttrLinks)) {
|
|
|
- rules.setRuleDescription(buildDesc(andAttrLinks, undwrtRulesAttrList));
|
|
|
+ rules.setRuleDescription(BuildDescUtils.buildDesc(andAttrLinks, undwrtRulesAttrList));
|
|
|
}
|
|
|
baseMapper.insert(rules);
|
|
|
}
|
|
|
@@ -219,7 +220,7 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
}
|
|
|
});
|
|
|
agreementUndwrtRulesAttrLinkMapper.insert(costsAttrLink);
|
|
|
- rules.setRuleDescription(buildDesc(costsAttrLink, undwrtRulesAttrList));
|
|
|
+ rules.setRuleDescription(BuildDescUtils.buildDesc(costsAttrLink, undwrtRulesAttrList));
|
|
|
baseMapper.insert(rules);
|
|
|
baseMapper.updateById(rules);
|
|
|
return true;
|
|
|
@@ -393,7 +394,7 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
int currentOrderNum = isExisting ? oldOrderNum : ++maxOrderNum;
|
|
|
// ruleDescription:有新的属性链接则重新生成,否则保留旧值
|
|
|
String ruleDescription = CollUtil.isNotEmpty(andAttrLinks)
|
|
|
- ? buildDesc(andAttrLinks, undwrtRulesAttrList)
|
|
|
+ ? BuildDescUtils.buildDesc(andAttrLinks, undwrtRulesAttrList)
|
|
|
: oldRuleDescription;
|
|
|
// 相邻的","或","转换为"或"字
|
|
|
ruleDescription = StringUtils.convertAdjacentCommaToOr(ruleDescription);
|
|
|
@@ -475,7 +476,7 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
mergeAttrLinks(oldLinks, costsAttrLink);
|
|
|
rules.setStartTime(param.getStartTime());
|
|
|
rules.setEndTime(param.getEndTime());
|
|
|
- rules.setRuleDescription(buildDesc(costsAttrLink, attrList));
|
|
|
+ rules.setRuleDescription(BuildDescUtils.buildDesc(costsAttrLink, attrList));
|
|
|
baseMapper.updateById(rules);
|
|
|
return true;
|
|
|
}
|
|
|
@@ -658,7 +659,7 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
agreementUndwrtRulesAttrLinkMapper.insert(newAttrLinks);
|
|
|
}
|
|
|
|
|
|
- newRules.setRuleDescription(buildDesc(newAttrLinks, undwrtRulesAttrList));
|
|
|
+ newRules.setRuleDescription(BuildDescUtils.buildDesc(newAttrLinks, undwrtRulesAttrList));
|
|
|
baseMapper.insert(newRules);
|
|
|
|
|
|
// 组装返回的 groups
|
|
|
@@ -755,130 +756,6 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
// 批量删除规则
|
|
|
return baseMapper.deleteBatchIds(deleteRuleIds) > 0;
|
|
|
}
|
|
|
- /**
|
|
|
- * 遍历费用属性描述文字
|
|
|
- *
|
|
|
- * @param linkList
|
|
|
- * @param undwrtRulesAttrList
|
|
|
- * @return
|
|
|
- */
|
|
|
- private String buildDesc(List<PtlAgreementUndwrtRulesAttrLink> linkList, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
|
|
|
- StringBuilder desc = new StringBuilder();
|
|
|
- // 这里进行排序,保证生成的承保规则描述是有序的
|
|
|
- linkList = linkList.stream().sorted(Comparator.comparing(PtlAgreementUndwrtRulesAttrLink::getAttrCode)).toList();
|
|
|
- List<PtlAgreementUndwrtRulesAttrLink> sortedLinks = new ArrayList<>(linkList);
|
|
|
-
|
|
|
- for (int i = 0; i < sortedLinks.size(); i++) {
|
|
|
- int finalI = i;
|
|
|
- PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = undwrtRulesAttrList.stream()
|
|
|
- .filter(x -> x.getAttrCode().equals(sortedLinks.get(finalI).getAttrCode()))
|
|
|
- .findAny()
|
|
|
- .get();
|
|
|
-
|
|
|
- //数值范围判断
|
|
|
-
|
|
|
- if ("inputNumber".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
|
|
|
- desc.append(inputNumberIdentifying(ptlAgreementUndwrtRulesAttr, sortedLinks.get(i))).append(",");
|
|
|
- }
|
|
|
- if ("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
|
|
|
- desc.append(radioIdentifying(ptlAgreementUndwrtRulesAttr, sortedLinks.get(i))).append(",");
|
|
|
- }
|
|
|
- if ("select".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
|
|
|
- desc.append(selectIdentifying(ptlAgreementUndwrtRulesAttr, sortedLinks.get(i)));
|
|
|
- }
|
|
|
- if ("checkbox".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
|
|
|
- desc.append(checkBoxIdentifying(ptlAgreementUndwrtRulesAttr, sortedLinks.get(i)));
|
|
|
- }
|
|
|
- if ("inputTag".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
|
|
|
- if (sortedLinks.get(i).getOperator() != null && sortedLinks.get(i).getOperator().equals("1")) {
|
|
|
- desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(sortedLinks.get(i).getMin()).append(",");
|
|
|
- } else {
|
|
|
- desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("不包含").append(sortedLinks.get(i).getMin()).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // 相邻的","或","转换为"或"字
|
|
|
- return StringUtils.convertAdjacentCommaToOr(desc.toString());
|
|
|
- }
|
|
|
-
|
|
|
- private String radioIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {
|
|
|
- PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x -> x.getCode().equals(ptlAgreementProductCostsAttrLink.getMin())).findAny().get();
|
|
|
- return ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + ptlAgreementUndwrtRulesDictLabal.getName();
|
|
|
- }
|
|
|
-
|
|
|
- private String selectIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {
|
|
|
- StringBuilder returnMsg = new StringBuilder();
|
|
|
- returnMsg.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("为");
|
|
|
- // 兼容 min 逗号分隔存储,保证 minArray 有值
|
|
|
- if (ptlAgreementProductCostsAttrLink.getMinArray() == null) {
|
|
|
- String minStr = ptlAgreementProductCostsAttrLink.getMin();
|
|
|
- if (minStr != null && !minStr.isEmpty()) {
|
|
|
- ptlAgreementProductCostsAttrLink.setMinArray(minStr.split(","));
|
|
|
- }
|
|
|
- }
|
|
|
- // 优先取 link 上的字典标签列表(JSONArray -> List),为空时回退到属性自带字典
|
|
|
- List<PtlAgreementUndwrtRulesDictLabal> dictLabalList = new ArrayList<>();
|
|
|
- if (ptlAgreementProductCostsAttrLink.getDictLabal() != null && !ptlAgreementProductCostsAttrLink.getDictLabal().isEmpty()) {
|
|
|
- dictLabalList = ptlAgreementProductCostsAttrLink.getDictLabal().toJavaList(PtlAgreementUndwrtRulesDictLabal.class);
|
|
|
- } else if (ptlAgreementUndwrtRulesAttr.getDictLabal() != null) {
|
|
|
- dictLabalList = ptlAgreementUndwrtRulesAttr.getDictLabal();
|
|
|
- }
|
|
|
- // 用字典标签的 code 匹配 minArray 中的每一项
|
|
|
- if (ptlAgreementProductCostsAttrLink.getMinArray() != null) {
|
|
|
- for (String item : ptlAgreementProductCostsAttrLink.getMinArray()) {
|
|
|
- PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = dictLabalList.stream()
|
|
|
- .filter(x -> x.getCode() != null && x.getCode().equals(item)).findAny().orElse(null);
|
|
|
- if (ptlAgreementUndwrtRulesDictLabal != null) {
|
|
|
- returnMsg.append(ptlAgreementUndwrtRulesDictLabal.getName()).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return returnMsg.toString();
|
|
|
- }
|
|
|
-
|
|
|
- private String checkBoxIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink linkList) {
|
|
|
- StringBuilder returnMsg = new StringBuilder();
|
|
|
- returnMsg.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("为");
|
|
|
- if (linkList.getMinArray() == null) {
|
|
|
- String minStr = linkList.getMin();
|
|
|
- if (minStr != null && minStr.length() > 0) {
|
|
|
- String[] minArray = minStr.split(",");
|
|
|
- linkList.setMinArray(minArray);
|
|
|
- }
|
|
|
- }
|
|
|
- if (linkList.getMinArray() != null) {
|
|
|
- StringBuilder licenseInfo = new StringBuilder();
|
|
|
- for(int i=0;i<linkList.getMinArray().length;i++) {
|
|
|
- int finalI = i;
|
|
|
- if(ptlAgreementUndwrtRulesAttr.getAttrCode().equals("LicenseNo") || ptlAgreementUndwrtRulesAttr.getAttrCode().equals("LicenseArea")) {
|
|
|
- licenseInfo.append(linkList.getMinArray()[i]).append(",");
|
|
|
- }else {
|
|
|
- PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x -> x.getCode().equals(linkList.getMinArray()[finalI])).findAny().get();
|
|
|
- returnMsg.append(ptlAgreementUndwrtRulesDictLabal.getName()).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- if(StrUtil.isNotEmpty(licenseInfo.toString())){
|
|
|
- String licenseName = ptlAreaLicenseService.convertAreaNumber2License(licenseInfo.toString());
|
|
|
- returnMsg.append(licenseName).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- return returnMsg.toString();
|
|
|
- }
|
|
|
-
|
|
|
- private String inputNumberIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {
|
|
|
- if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
|
|
|
- return ptlAgreementUndwrtRulesAttr.getAttrName() + "范围值" + ptlAgreementProductCostsAttrLink.getMin() + "到" + ptlAgreementProductCostsAttrLink.getMax();
|
|
|
- } else if ("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
|
|
|
- return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于" + ptlAgreementProductCostsAttrLink.getMin();
|
|
|
- } else if ("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
|
|
|
- return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于等于" + ptlAgreementProductCostsAttrLink.getMin();
|
|
|
- } else if ("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
|
|
|
- return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于" + ptlAgreementProductCostsAttrLink.getMax();
|
|
|
- } else if ("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
|
|
|
- return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于等于" + ptlAgreementProductCostsAttrLink.getMax();
|
|
|
- }
|
|
|
- return "";
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
|