diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index 42585748..8c981b7a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -1255,6 +1255,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl wrapper = Wrappers.lambdaQuery(YieldOrder.class) + .likeRight(YieldOrder::getYoCode, codePattern) + .orderBy(true, false, YieldOrder::getYoCode) + .last("FOR UPDATE"); - // 当前模式下最大编码 - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(YieldOrder.class).likeRight(YieldOrder::getYoCode, codePattern).orderBy(true, false, YieldOrder::getYoCode); - YieldOrder yieldOrder = baseMapper.selectOne(wrapper); + List list = baseMapper.selectList(wrapper); - if (yieldOrder != null) { - num = Integer.parseInt(yieldOrder.getYoCode().substring(codePattern.length())); + Integer num = 0; + if (!list.isEmpty()) { + String maxCode = list.get(0).getYoCode(); + num = Integer.parseInt(maxCode.substring(codePattern.length())); } num++; - - // 下个编码 + int len = Math.max(2, String.valueOf(num).length()); return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len); }