Browse Source

修改客户标签

master
han\hanst 4 weeks ago
parent
commit
fd0226570b
  1. 27
      src/main/java/com/gaotao/modules/base/entity/CustomerLabelSettingData.java
  2. 23
      src/main/java/com/gaotao/modules/base/service/Impl/BaseServiceImpl.java
  3. 19
      src/main/resources/mapper/base/BaseMapper.xml

27
src/main/java/com/gaotao/modules/base/entity/CustomerLabelSettingData.java

@ -18,6 +18,9 @@ public class CustomerLabelSettingData {
private String parentLabelNo;//父级标签编码 private String parentLabelNo;//父级标签编码
private String searchFlag;//是否查询 private String searchFlag;//是否查询
private String checkFlag;//是否检查 private String checkFlag;//是否检查
private String originalLabelNo;//修改前的标签编号,用于定位原记录
private String originalLabelType;//修改前的标签类型,用于定位原记录
private String originalAddressNo;//修改前的地址编码,用于定位原记录
public CustomerLabelSettingData() { public CustomerLabelSettingData() {
@ -134,4 +137,28 @@ public class CustomerLabelSettingData {
public void setCheckFlag(String checkFlag) { public void setCheckFlag(String checkFlag) {
this.checkFlag = checkFlag; this.checkFlag = checkFlag;
} }
public String getOriginalLabelNo() {
return originalLabelNo;
}
public void setOriginalLabelNo(String originalLabelNo) {
this.originalLabelNo = originalLabelNo;
}
public String getOriginalLabelType() {
return originalLabelType;
}
public void setOriginalLabelType(String originalLabelType) {
this.originalLabelType = originalLabelType;
}
public String getOriginalAddressNo() {
return originalAddressNo;
}
public void setOriginalAddressNo(String originalAddressNo) {
this.originalAddressNo = originalAddressNo;
}
} }

23
src/main/java/com/gaotao/modules/base/service/Impl/BaseServiceImpl.java

@ -225,8 +225,23 @@ public class BaseServiceImpl implements BaseService {
public void updateCustomerLabelSetting(CustomerLabelSettingData inData) { public void updateCustomerLabelSetting(CustomerLabelSettingData inData) {
// 统一规范输入数据 // 统一规范输入数据
normalizeCustomerLabelSettingData(inData); normalizeCustomerLabelSettingData(inData);
// 业务校验
// 业务校验(会按标签主数据回填标签类型)
validateCustomerLabelSettingData(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); int effectRows = baseMapper.updateCustomerLabelSetting(inData);
if (effectRows <= 0) { if (effectRows <= 0) {
@ -319,6 +334,12 @@ public class BaseServiceImpl implements BaseService {
inData.setSubLabelFlag(subLabelFlag); inData.setSubLabelFlag(subLabelFlag);
String parentLabelNo = trimUpper(inData.getParentLabelNo()); String parentLabelNo = trimUpper(inData.getParentLabelNo());
inData.setParentLabelNo("Y".equals(subLabelFlag) ? parentLabelNo : "*"); 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()));
}
} }
/** /**

19
src/main/resources/mapper/base/BaseMapper.xml

@ -208,16 +208,25 @@
VALUES (#{site}, #{customerId}, #{addressNo}, '*', #{labelType}, #{labelNo}, #{remark}, #{subLabelFlag}, #{parentLabelNo}) VALUES (#{site}, #{customerId}, #{addressNo}, '*', #{labelType}, #{labelNo}, #{remark}, #{subLabelFlag}, #{parentLabelNo})
</insert> </insert>
<!--修改客制化标签配置信息-->
<!--修改客制化标签配置信息。标签编号允许修改,定位必须用原编号,否则改编号后匹配不到原记录-->
<update id="updateCustomerLabelSetting" parameterType="CustomerLabelSettingData"> <update id="updateCustomerLabelSetting" parameterType="CustomerLabelSettingData">
UPDATE ReportFileDefCustomer SET AddressNo = #{addressNo}, SubReportFlag = #{subLabelFlag}, ParentReportID = #{parentLabelNo}, Remark = #{remark}
UPDATE ReportFileDefCustomer
SET AddressNo = #{addressNo},
ReportID = #{labelNo},
ReportFamily = #{labelType},
SubReportFlag = #{subLabelFlag},
ParentReportID = #{parentLabelNo},
Remark = #{remark}
<where> <where>
AND Site = #{site} AND Site = #{site}
AND ReportID = #{labelNo}
AND ReportID = #{originalLabelNo}
AND CustomerID = #{customerId} AND CustomerID = #{customerId}
AND FamilyID = '*' AND FamilyID = '*'
<if test="labelType != null and labelType != ''">
AND ReportFamily = #{labelType}
<if test="originalLabelType != null and originalLabelType != ''">
AND ReportFamily = #{originalLabelType}
</if>
<if test="originalAddressNo != null">
AND ISNULL(AddressNo, '') = #{originalAddressNo}
</if> </if>
</where> </where>
</update> </update>

Loading…
Cancel
Save