diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/MasterOrderMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/MasterOrderMapper.java index 0b7862f..b279b73 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/MasterOrderMapper.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/MasterOrderMapper.java @@ -1,7 +1,10 @@ /** BladeX Commercial License Agreement */ package org.springblade.transport.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.springblade.transport.pojo.entity.MasterOrder; /** @@ -10,4 +13,9 @@ import org.springblade.transport.pojo.entity.MasterOrder; * @author Chill */ public interface MasterOrderMapper extends BaseMapper { + + @InterceptorIgnore(tenantLine = "true") + @Select("SELECT COALESCE(MAX(CAST(SUBSTRING_INDEX(master_no, '-', -1) AS UNSIGNED)), 0) " + + "FROM blade_master_order WHERE master_no LIKE CONCAT(#{prefix}, '%')") + int selectMaxSerial(@Param("prefix") String prefix); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MasterOrderServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MasterOrderServiceImpl.java index 782c24b..e2b5196 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MasterOrderServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MasterOrderServiceImpl.java @@ -517,5 +517,9 @@ public class MasterOrderServiceImpl extends BaseServiceImpl values, String key) { String value = string(values, key); if (Func.isEmpty(value)) return null; try { return LocalDate.parse(value.substring(0, 10)); } catch (Exception exception) { throw new ServiceException("日期格式不正确"); } } private String string(Map values, String key) { return string(values, key, null); } private String string(Map values, String key, String fallback) { Object value = values.get(key); return value == null ? fallback : String.valueOf(value); } - private synchronized String nextCode() { String prefix = "DL-" + LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE) + "-"; long count = count(new LambdaQueryWrapper().likeRight(MasterOrder::getMasterNo, prefix)); return prefix + String.format("%04d", count + 1); } + private synchronized String nextCode() { + String prefix = "DL-" + LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE) + "-"; + int serial = baseMapper.selectMaxSerial(prefix) + 1; + return prefix + String.format("%04d", serial); + } }