|
|
@@ -311,12 +311,11 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
throw new SystemException("批量模式下父规则ID不能为空");
|
|
|
}
|
|
|
|
|
|
- // 查询协议下所有规则,计算最大orderNum(排除当前parentId下的旧规则)
|
|
|
+ // 查询协议下所有规则,计算全局最大orderNum
|
|
|
List<AgreementRulesVo> allRules = baseMapper.queryList(param.getAgreementId());
|
|
|
int maxOrderNum = 0;
|
|
|
if (CollUtil.isNotEmpty(allRules)) {
|
|
|
maxOrderNum = allRules.stream()
|
|
|
- .filter(r -> !parentId.equals(r.getParentId()))
|
|
|
.mapToInt(r -> r.getOrderNum() != null ? r.getOrderNum() : 0)
|
|
|
.max().orElse(0);
|
|
|
}
|
|
|
@@ -341,14 +340,17 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
String ruleId;
|
|
|
boolean isExisting;
|
|
|
String oldRuleDescription = null;
|
|
|
+ Integer oldOrderNum = null;
|
|
|
|
|
|
if (hasRuleIds) {
|
|
|
// ID模式:精确匹配
|
|
|
ruleId = group.getId();
|
|
|
isExisting = ruleId != null && !ruleId.isEmpty() && oldRuleMap.containsKey(ruleId);
|
|
|
if (isExisting) {
|
|
|
+ AgreementRulesVo oldVo = oldRuleMap.get(ruleId);
|
|
|
matchedOldIds.add(ruleId);
|
|
|
- oldRuleDescription = oldRuleMap.get(ruleId).getRuleDescription();
|
|
|
+ oldRuleDescription = oldVo.getRuleDescription();
|
|
|
+ oldOrderNum = oldVo.getOrderNum();
|
|
|
} else {
|
|
|
ruleId = IdGenerate.nextId();
|
|
|
}
|
|
|
@@ -360,6 +362,7 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
ruleId = oldVo.getId();
|
|
|
matchedOldIds.add(ruleId);
|
|
|
oldRuleDescription = oldVo.getRuleDescription();
|
|
|
+ oldOrderNum = oldVo.getOrderNum();
|
|
|
} else {
|
|
|
ruleId = IdGenerate.nextId();
|
|
|
}
|
|
|
@@ -378,7 +381,8 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
}
|
|
|
|
|
|
String inputDesc = group.getInputDescription() != null ? group.getInputDescription() : param.getInputDescription();
|
|
|
- int currentOrderNum = maxOrderNum + i + 1;
|
|
|
+ // 已有规则保留原排序,新增排序从全局最大值递增
|
|
|
+ int currentOrderNum = isExisting ? oldOrderNum : ++maxOrderNum;
|
|
|
// ruleDescription:有新的属性链接则重新生成,否则保留旧值
|
|
|
String ruleDescription = CollUtil.isNotEmpty(andAttrLinks)
|
|
|
? buildDesc(andAttrLinks, undwrtRulesAttrList)
|
|
|
@@ -388,7 +392,6 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
|
|
|
// 使用 LambdaUpdateWrapper 显式指定更新字段,避免 updateById 将 null 字段写入 SQL
|
|
|
LambdaUpdateWrapper<PtlAgreementUndwrtRules> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
updateWrapper.eq(PtlAgreementUndwrtRules::getId, ruleId)
|
|
|
- .set(PtlAgreementUndwrtRules::getOrderNum, currentOrderNum)
|
|
|
.set(PtlAgreementUndwrtRules::getStartTime, param.getStartTime())
|
|
|
.set(PtlAgreementUndwrtRules::getEndTime, param.getEndTime())
|
|
|
.set(PtlAgreementUndwrtRules::getAgreementId, param.getAgreementId())
|