This commit is contained in:
zc
2026-02-27 10:50:07 +08:00
parent 0ee56404c2
commit 86527b9c21
611 changed files with 2741 additions and 2752 deletions

View File

@@ -3,11 +3,11 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>top.ysoft</groupId>
<artifactId>ysoft-plugin</artifactId>
<groupId>top.wms</groupId>
<artifactId>wms-plugin</artifactId>
<version>3.6.0-SNAPSHOT</version>
</parent>
<artifactId>ysoft-plugin-generator</artifactId>
<artifactId>wms-plugin-generator</artifactId>
<version>3.6.0-SNAPSHOT</version>
<description>代码生成器插件</description>
<licenses>

View File

@@ -4,11 +4,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>top.ysoft</groupId>
<artifactId>ysoft-plugin</artifactId>
<groupId>top.wms</groupId>
<artifactId>wms-plugin</artifactId>
<version>${revision}</version>
</parent>
<artifactId>ysoft-plugin-generator</artifactId>
<artifactId>wms-plugin-generator</artifactId>
<description>代码生成器插件</description>
</project>

View File

@@ -1,4 +1,4 @@
package top.ysoft.admin.generator.config.properties;
package top.wms.admin.generator.config.properties;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.map.MapUtil;

View File

@@ -1,4 +1,4 @@
package top.ysoft.admin.generator.enums;
package top.wms.admin.generator.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

View File

@@ -1,4 +1,4 @@
package top.ysoft.admin.generator.enums;
package top.wms.admin.generator.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

View File

@@ -1,8 +1,8 @@
package top.ysoft.admin.generator.mapper;
package top.wms.admin.generator.mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import top.ysoft.admin.generator.model.entity.FieldConfigDO;
import top.wms.admin.generator.model.entity.FieldConfigDO;
import top.continew.starter.data.mp.base.BaseMapper;
import java.util.List;

View File

@@ -1,6 +1,6 @@
package top.ysoft.admin.generator.mapper;
package top.wms.admin.generator.mapper;
import top.ysoft.admin.generator.model.entity.GenConfigDO;
import top.wms.admin.generator.model.entity.GenConfigDO;
import top.continew.starter.data.mp.base.BaseMapper;
/**

View File

@@ -1,4 +1,4 @@
package top.ysoft.admin.generator.model.entity;
package top.wms.admin.generator.model.entity;
import cn.hutool.core.util.StrUtil;
import cn.hutool.db.meta.Column;
@@ -12,8 +12,8 @@ import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import top.ysoft.admin.generator.enums.FormTypeEnum;
import top.ysoft.admin.generator.enums.QueryTypeEnum;
import top.wms.admin.generator.enums.FormTypeEnum;
import top.wms.admin.generator.enums.QueryTypeEnum;
import top.continew.starter.core.constant.StringConstants;
import java.io.Serial;

View File

@@ -1,4 +1,4 @@
package top.ysoft.admin.generator.model.entity;
package top.wms.admin.generator.model.entity;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.*;
@@ -9,7 +9,7 @@ import jakarta.validation.constraints.Pattern;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import top.ysoft.admin.common.constant.RegexConstants;
import top.wms.admin.common.constant.RegexConstants;
import top.continew.starter.core.constant.CharConstants;
import top.continew.starter.core.util.StrUtils;
@@ -50,7 +50,7 @@ public class GenConfigDO implements Serializable {
/**
* 模块名称
*/
@Schema(description = "模块名称", example = "ysoft-admin-system")
@Schema(description = "模块名称", example = "wms-admin-system")
@NotBlank(message = "模块名称不能为空")
@Length(max = 60, message = "模块名称不能超过 {max} 个字符")
private String moduleName;
@@ -58,7 +58,7 @@ public class GenConfigDO implements Serializable {
/**
* 包名称
*/
@Schema(description = "包名称", example = "top.ysoft.admin.system")
@Schema(description = "包名称", example = "top.wms.admin.system")
@NotBlank(message = "包名称不能为空")
@Pattern(regexp = RegexConstants.PACKAGE_NAME, message = "包名称格式错误")
@Length(max = 60, message = "包名称不能超过 {max} 个字符")

View File

@@ -1,4 +1,4 @@
package top.ysoft.admin.generator.model.entity;
package top.wms.admin.generator.model.entity;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;

View File

@@ -1,4 +1,4 @@
package top.ysoft.admin.generator.model.query;
package top.wms.admin.generator.model.query;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

View File

@@ -1,12 +1,12 @@
package top.ysoft.admin.generator.model.req;
package top.wms.admin.generator.model.req;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import top.ysoft.admin.generator.model.entity.FieldConfigDO;
import top.ysoft.admin.generator.model.entity.GenConfigDO;
import top.wms.admin.generator.model.entity.FieldConfigDO;
import top.wms.admin.generator.model.entity.GenConfigDO;
import java.io.Serial;
import java.io.Serializable;

View File

@@ -1,4 +1,4 @@
package top.ysoft.admin.generator.model.resp;
package top.wms.admin.generator.model.resp;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -20,7 +20,7 @@ public class GeneratePreviewResp implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "生成的文件路径", example = "ysoft-admin\\ysoft-admin\\ysoft-admin-generator\\src\\main\\java\\top\\ysoft\\admin\\generator\\service")
@Schema(description = "生成的文件路径", example = "wms-admin\\wms-admin\\wms-admin-generator\\src\\main\\java\\top\\wms\\admin\\generator\\service")
private String path;
/**

View File

@@ -1,11 +1,11 @@
package top.ysoft.admin.generator.service;
package top.wms.admin.generator.service;
import jakarta.servlet.http.HttpServletResponse;
import top.ysoft.admin.generator.model.entity.FieldConfigDO;
import top.ysoft.admin.generator.model.entity.GenConfigDO;
import top.ysoft.admin.generator.model.query.GenConfigQuery;
import top.ysoft.admin.generator.model.req.GenConfigReq;
import top.ysoft.admin.generator.model.resp.GeneratePreviewResp;
import top.wms.admin.generator.model.entity.FieldConfigDO;
import top.wms.admin.generator.model.entity.GenConfigDO;
import top.wms.admin.generator.model.query.GenConfigQuery;
import top.wms.admin.generator.model.req.GenConfigReq;
import top.wms.admin.generator.model.resp.GeneratePreviewResp;
import top.continew.starter.extension.crud.model.query.PageQuery;
import top.continew.starter.extension.crud.model.resp.PageResp;

View File

@@ -1,4 +1,4 @@
package top.ysoft.admin.generator.service.impl;
package top.wms.admin.generator.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
@@ -24,18 +24,18 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import top.ysoft.admin.generator.config.properties.GeneratorProperties;
import top.ysoft.admin.generator.enums.FormTypeEnum;
import top.ysoft.admin.generator.enums.QueryTypeEnum;
import top.ysoft.admin.generator.mapper.FieldConfigMapper;
import top.ysoft.admin.generator.mapper.GenConfigMapper;
import top.ysoft.admin.generator.model.entity.FieldConfigDO;
import top.ysoft.admin.generator.model.entity.GenConfigDO;
import top.ysoft.admin.generator.model.entity.InnerGenConfigDO;
import top.ysoft.admin.generator.model.query.GenConfigQuery;
import top.ysoft.admin.generator.model.req.GenConfigReq;
import top.ysoft.admin.generator.model.resp.GeneratePreviewResp;
import top.ysoft.admin.generator.service.GeneratorService;
import top.wms.admin.generator.config.properties.GeneratorProperties;
import top.wms.admin.generator.enums.FormTypeEnum;
import top.wms.admin.generator.enums.QueryTypeEnum;
import top.wms.admin.generator.mapper.FieldConfigMapper;
import top.wms.admin.generator.mapper.GenConfigMapper;
import top.wms.admin.generator.model.entity.FieldConfigDO;
import top.wms.admin.generator.model.entity.GenConfigDO;
import top.wms.admin.generator.model.entity.InnerGenConfigDO;
import top.wms.admin.generator.model.query.GenConfigQuery;
import top.wms.admin.generator.model.req.GenConfigReq;
import top.wms.admin.generator.model.resp.GeneratePreviewResp;
import top.wms.admin.generator.service.GeneratorService;
import top.continew.starter.core.autoconfigure.project.ProjectProperties;
import top.continew.starter.core.constant.StringConstants;
import top.continew.starter.core.exception.BusinessException;
@@ -105,8 +105,8 @@ public class GeneratorServiceImpl implements GeneratorService {
genConfig = new GenConfigDO(tableName);
// 默认包名(当前包名)
String packageName = ClassUtil.getPackage(GeneratorService.class);
genConfig.setPackageName(StrUtil.subBefore("top.ysoft.admin.", StringConstants.DOT, true));
genConfig.setModuleName("ysoft-module-system");
genConfig.setPackageName(StrUtil.subBefore("top.wms.admin.", StringConstants.DOT, true));
genConfig.setModuleName("wms-module-system");
// 默认业务名(表注释)
List<Table> tableList = MetaUtils.getTables(dataSource, tableName);
if (CollUtil.isNotEmpty(tableList)) {
@@ -245,10 +245,10 @@ public class GeneratorServiceImpl implements GeneratorService {
List<GeneratePreviewResp> generatePreviewList = this.preview(tableName);
// 生成代码
for (GeneratePreviewResp generatePreview : generatePreviewList) {
// 后端:ysoft-admin/ysoft-system/src/main/java/top/ysoft/admin/system/service/impl/XxxServiceImpl.java
// 前端:ysoft-admin/ysoft-admin-ui/src/views/system/user/index.vue
// 后端:wms-admin/wms-system/src/main/java/top/wms/admin/system/service/impl/XxxServiceImpl.java
// 前端:wms-admin/wms-admin-ui/src/views/system/user/index.vue
File file = new File(projectPath + generatePreview.getPath()
.replace("ysoft-admin\\ysoft-admin", ""), generatePreview.getFileName());
.replace("wms-admin\\wms-admin", ""), generatePreview.getFileName());
// 如果已经存在,且不允许覆盖,则跳过
if (!file.exists() || Boolean.TRUE.equals(genConfigMapper.selectById(tableName).getIsOverride())) {
FileUtil.writeUtf8String(generatePreview.getContent(), file);
@@ -335,14 +335,14 @@ public class GeneratorServiceImpl implements GeneratorService {
.getAppName() + "-ui");
String packagePath;
if (generatePreview.isBackend()) {
// 例如:ysoft-admin/ysoft-system/src/main/java/top/ysoft/admin/system/service/impl
// 例如:wms-admin/wms-system/src/main/java/top/wms/admin/system/service/impl
packagePath = String.join(File.separator, backendBasicPackagePath, templateConfig.getPackageName()
.replace(StringConstants.DOT, File.separator));
} else {
// 例如:ysoft-admin/ysoft-admin-ui/src/views/system
// 例如:wms-admin/wms-admin-ui/src/views/system
packagePath = String.join(File.separator, frontendBasicPackagePath, templateConfig.getPackageName()
.replace(StringConstants.SLASH, File.separator), genConfig.getApiModuleName());
// 例如:ysoft-admin/ysoft-admin-ui/src/views/system/user
// 例如:wms-admin/wms-admin-ui/src/views/system/user
packagePath = ".vue".equals(templateConfig.getExtension())
? packagePath + File.separator + StrUtil.lowerFirst(genConfig.getClassNamePrefix())
: packagePath;
@@ -358,8 +358,8 @@ public class GeneratorServiceImpl implements GeneratorService {
*/
private void generateCode(List<GeneratePreviewResp> generatePreviewList, GenConfigDO genConfig) {
for (GeneratePreviewResp generatePreview : generatePreviewList) {
// 后端:ysoft-admin/ysoft-system/src/main/java/top/ysoft/admin/system/service/impl/XxxServiceImpl.java
// 前端:ysoft-admin/ysoft-admin-ui/src/views/system/user/index.vue
// 后端:wms-admin/wms-system/src/main/java/top/wms/admin/system/service/impl/XxxServiceImpl.java
// 前端:wms-admin/wms-admin-ui/src/views/system/user/index.vue
File file = new File(SystemUtil.getUserInfo().getTempDir() + generatePreview.getPath(), generatePreview
.getFileName());
// 如果已经存在,且不允许覆盖,则跳过
@@ -379,7 +379,7 @@ public class GeneratorServiceImpl implements GeneratorService {
private String buildBackendBasicPackagePath(GenConfigDO genConfig,
GeneratorProperties.TemplateConfig templateConfig) {
String extension = templateConfig.getExtension();
// 例如:ysoft-admin/ysoft-system/src/main/java/top/ysoft/admin/system
// 例如:wms-admin/wms-system/src/main/java/top/wms/admin/system
return String.join(File.separator, projectProperties.getAppName(), projectProperties.getAppName(), genConfig
.getModuleName(), "src", "main", FileNameUtil.EXT_JAVA.equals(extension)
? "java"

View File

@@ -1,4 +1,4 @@
package top.ysoft.admin.controller.${subPackageName};
package top.wms.admin.controller.${subPackageName};
import top.continew.starter.extension.crud.enums.Api;
@@ -8,7 +8,7 @@ import org.springframework.web.bind.annotation.*;
import lombok.RequiredArgsConstructor;
import top.continew.starter.extension.crud.annotation.CrudRequestMapping;
import top.ysoft.admin.common.controller.BaseController;
import top.wms.admin.common.controller.BaseController;
import ${packageName}.model.query.${classNamePrefix}Query;
import ${packageName}.model.req.${classNamePrefix}Req;
import ${packageName}.model.resp.${classNamePrefix}DetailResp;

View File

@@ -7,7 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import top.ysoft.admin.common.model.resp.BaseDetailResp;
import top.wms.admin.common.model.resp.BaseDetailResp;
import java.io.Serial;
<#if hasTimeField>

View File

@@ -4,7 +4,7 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
import top.ysoft.admin.common.model.entity.BaseDO;
import top.wms.admin.common.model.entity.BaseDO;
import java.io.Serial;
<#if hasTimeField>

View File

@@ -4,7 +4,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import top.ysoft.admin.common.model.resp.BaseDetailResp;
import top.wms.admin.common.model.resp.BaseDetailResp;
import java.io.Serial;
<#if hasTimeField>