demand: tms-基础管理-产品类型管理-新增时产品类型code重复问题修复
committer: heyu
This commit is contained in:
parent
8049915cd8
commit
36e2e496d8
@ -67,10 +67,36 @@ public class EmisTransProductServiceImpl implements IEmisTransProductService
|
||||
public int insertEmisTransProduct(EmisTransProduct emisTransProduct)
|
||||
{
|
||||
// 获取线路编号
|
||||
QueryWrapper<EmisTransProduct> queryWrapper=new QueryWrapper();
|
||||
queryWrapper.eq("trans_line_code",emisTransProduct.getTransLineCode());
|
||||
Long count = emisTransProductMapper.selectCount(queryWrapper);
|
||||
String prodCode=emisTransProduct.getTransLineCode()+"-"+ StringUtils.leftPad(String.valueOf(count),4,"0");
|
||||
QueryWrapper<EmisTransProduct> queryWrapper=new QueryWrapper<>();
|
||||
queryWrapper.likeRight("prod_code",emisTransProduct.getTransLineCode()+"-");
|
||||
queryWrapper.select("prod_code");
|
||||
queryWrapper.orderByDesc("prod_code");
|
||||
queryWrapper.last("LIMIT 1");
|
||||
List<EmisTransProduct> productList = emisTransProductMapper.selectList(queryWrapper);
|
||||
|
||||
String prodCode;
|
||||
if (productList == null || productList.isEmpty()) {
|
||||
// 如果查询结果为空,使用0000
|
||||
prodCode = emisTransProduct.getTransLineCode()+"-"+"0000";
|
||||
} else {
|
||||
// 获取最大的prod_code,提取数字部分加1
|
||||
String maxProdCode = productList.get(0).getProdCode();
|
||||
String prefix = emisTransProduct.getTransLineCode()+"-";
|
||||
if (maxProdCode != null && maxProdCode.startsWith(prefix)) {
|
||||
String numberPart = maxProdCode.substring(prefix.length());
|
||||
try {
|
||||
int maxNumber = Integer.parseInt(numberPart);
|
||||
int newNumber = maxNumber + 1;
|
||||
prodCode = prefix + StringUtils.leftPad(String.valueOf(newNumber), 4, "0");
|
||||
} catch (NumberFormatException e) {
|
||||
// 如果解析失败,使用0000
|
||||
prodCode = emisTransProduct.getTransLineCode()+"-"+"0000";
|
||||
}
|
||||
} else {
|
||||
// 如果格式不匹配,使用0000
|
||||
prodCode = emisTransProduct.getTransLineCode()+"-"+"0000";
|
||||
}
|
||||
}
|
||||
emisTransProduct.setProdCode(prodCode);
|
||||
|
||||
emisTransProduct.preInsert();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user