diff --git a/klp-crm/src/main/java/com/klp/crm/mapper/CrmCustomerMapper.java b/klp-crm/src/main/java/com/klp/crm/mapper/CrmCustomerMapper.java index afba5029..29e6bec1 100644 --- a/klp-crm/src/main/java/com/klp/crm/mapper/CrmCustomerMapper.java +++ b/klp-crm/src/main/java/com/klp/crm/mapper/CrmCustomerMapper.java @@ -12,4 +12,9 @@ import com.klp.common.core.mapper.BaseMapperPlus; */ public interface CrmCustomerMapper extends BaseMapperPlus { + /** + * 查询当前最大的customer_code,用于自动生成新编码 + */ + String selectMaxCustomerCode(); + } diff --git a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmCustomerServiceImpl.java b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmCustomerServiceImpl.java index 8218fa94..a2369575 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmCustomerServiceImpl.java +++ b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmCustomerServiceImpl.java @@ -91,6 +91,25 @@ public class CrmCustomerServiceImpl implements ICrmCustomerService { @Override public Boolean insertByBo(CrmCustomerBo bo) { CrmCustomer add = BeanUtil.toBean(bo, CrmCustomer.class); + // 自动生成customer_code:查询最大编码并加1 + if (StringUtils.isBlank(add.getCustomerCode())) { + String maxCode = baseMapper.selectMaxCustomerCode(); + if (StringUtils.isBlank(maxCode)) { + add.setCustomerCode("00001"); + } else { + // 提取末尾数字后缀并递增,支持纯数字("00001")和带前缀("KH00001")两种格式 + java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("^(.*?)(\\d+)$"); + java.util.regex.Matcher matcher = pattern.matcher(maxCode); + if (matcher.matches()) { + String prefix = matcher.group(1); + String numStr = matcher.group(2); + long num = Long.parseLong(numStr) + 1; + add.setCustomerCode(prefix + String.format("%0" + numStr.length() + "d", num)); + } else { + add.setCustomerCode(maxCode + "1"); + } + } + } validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/klp-crm/src/main/resources/mapper/CrmCustomerMapper.xml b/klp-crm/src/main/resources/mapper/CrmCustomerMapper.xml index 0d7f9832..f8cbc6e3 100644 --- a/klp-crm/src/main/resources/mapper/CrmCustomerMapper.xml +++ b/klp-crm/src/main/resources/mapper/CrmCustomerMapper.xml @@ -23,5 +23,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +