|
|
|
@ -225,8 +225,23 @@ public class BaseServiceImpl implements BaseService { |
|
|
|
public void updateCustomerLabelSetting(CustomerLabelSettingData inData) { |
|
|
|
// 统一规范输入数据 |
|
|
|
normalizeCustomerLabelSettingData(inData); |
|
|
|
// 业务校验 |
|
|
|
// 业务校验(会按标签主数据回填标签类型) |
|
|
|
validateCustomerLabelSettingData(inData); |
|
|
|
// 未传原标签时按当前值定位,兼容只改备注的旧请求 |
|
|
|
if (isBlank(inData.getOriginalLabelNo())) { |
|
|
|
inData.setOriginalLabelNo(inData.getLabelNo()); |
|
|
|
} |
|
|
|
if (isBlank(inData.getOriginalLabelType())) { |
|
|
|
inData.setOriginalLabelType(inData.getLabelType()); |
|
|
|
} |
|
|
|
// 编号、类型或地址变了,新键可能撞上另一条配置;原记录不在这个新键上,不能靠更新行数判断重复 |
|
|
|
boolean labelChanged = !inData.getLabelNo().equalsIgnoreCase(inData.getOriginalLabelNo()) |
|
|
|
|| !inData.getLabelType().equals(inData.getOriginalLabelType()); |
|
|
|
boolean addressChanged = inData.getOriginalAddressNo() != null |
|
|
|
&& !inData.getAddressNo().equalsIgnoreCase(inData.getOriginalAddressNo()); |
|
|
|
if ((labelChanged || addressChanged) && baseMapper.countCustomerLabelSetting(inData) > 0) { |
|
|
|
throw new XJException(labelSettingI18n.text("label.error.customerExists")); |
|
|
|
} |
|
|
|
// 执行更新并校验是否更新成功 |
|
|
|
int effectRows = baseMapper.updateCustomerLabelSetting(inData); |
|
|
|
if (effectRows <= 0) { |
|
|
|
@ -319,6 +334,12 @@ public class BaseServiceImpl implements BaseService { |
|
|
|
inData.setSubLabelFlag(subLabelFlag); |
|
|
|
String parentLabelNo = trimUpper(inData.getParentLabelNo()); |
|
|
|
inData.setParentLabelNo("Y".equals(subLabelFlag) ? parentLabelNo : "*"); |
|
|
|
// 原编号、原类型允许为空,更新时再回退到当前值;原地址要区分“未传”和“原来就是空” |
|
|
|
inData.setOriginalLabelNo(trimUpper(inData.getOriginalLabelNo())); |
|
|
|
inData.setOriginalLabelType(trimToEmpty(inData.getOriginalLabelType())); |
|
|
|
if (inData.getOriginalAddressNo() != null) { |
|
|
|
inData.setOriginalAddressNo(trimUpper(inData.getOriginalAddressNo())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
|