提交 050402ad 编写于 作者: sq3536's avatar sq3536

拉平model属性

上级 224da2a8
package cn.ibizlab.codegen.model;
import net.ibizsys.model.app.IPSApplication;
public class ApiModel extends BaseModel{
}
package cn.ibizlab.codegen.model;
import net.ibizsys.model.app.IPSApplication;
public class AppModel extends BaseModel{
public IPSApplication getApplication()
{
return (IPSApplication)opt;
}
public String getMain()
{
return getApplication().getDefaultPSAppIndexView().getName();
}
}
package cn.ibizlab.codegen.model;
public class CtrlModel extends BaseModel{
}
......@@ -49,7 +49,7 @@ public class DataSetModel extends BaseModel{
*/
private String dsModel;
public IPSDEDataSet getDataSets()
public IPSDEDataSet getDataSet()
{
return (IPSDEDataSet)opt;
}
......
......@@ -47,12 +47,14 @@ public class DynamicModelStorage {
return this;
}
private IPSSystem iPSSystem = null;
public IPSSystem getPSSystem()
private SystemModel systemModel = null;
public SystemModel getSystemModel()
{
if(iPSSystem==null)
{
if(systemModel==null) {
String strPSModelFolderPath=null;
if(Files.exists(Paths.get(getModelPath(),"PSSYSTEM.json"))) {
strPSModelFolderPath= Paths.get(getModelPath()).toString();
......@@ -67,26 +69,26 @@ public class DynamicModelStorage {
PSModelServiceImpl psModelService = new PSModelServiceImpl();
psModelService.setPSModelFolderPath(strPSModelFolderPath);
try {
iPSSystem = psModelService.getPSSystem();
IPSSystem iPSSystem = psModelService.getPSSystem();
systemModel = new SystemModel().setOpt(iPSSystem);
Assert.notNull(iPSSystem,"加载系统模型错误:"+strPSModelFolderPath);
} catch (Exception e) {
throw new RuntimeException("加载系统模型错误"+strPSModelFolderPath,e);
}
}
return iPSSystem;
return systemModel;
}
private Map<String,EntityModel> entities=new HashMap<>();
public EntityModel getDynamicEntity(String entity) throws Exception
{
if(entities.containsKey(entity))
return entities.get(entity);
IPSSystem iPSSystem=getPSSystem();
IPSSystem iPSSystem=getSystemModel().getSystem();
IPSDataEntity dataEntity = iPSSystem.getPSDataEntity(entity,true);
Assert.notNull(dataEntity,"未找到对应的实体模型:"+entity);
EntityModel entityModel=new EntityModel().setOpt(dataEntity);
......
......@@ -46,14 +46,14 @@ public class ModelStorage {
opt.putAll(config.getAdditionalProperties());
opt.setTemplateFileType(type);
IPSSystem ipsSystem=dynamicService.getPSSystem();
SystemModel systemModel=dynamicService.getSystemModel();
if(StringUtils.isEmpty(config.getAdditionalProperties().get(CodegenConstants.PROJECT_NAME)))
opt.setProjectName(ipsSystem.getCodeName().toLowerCase()).toString();
opt.setProjectName(systemModel.getProjectName());
if(StringUtils.isEmpty(config.getAdditionalProperties().get(CodegenConstants.PROJECT_DESC)))
opt.setProjectDesc(ipsSystem.getName().toLowerCase()).toString();
opt.setProjectDesc(systemModel.getProjectDesc());
if(StringUtils.isEmpty(config.getAdditionalProperties().get(CodegenConstants.PACKAGE_NAME)))
opt.setPackageName(ipsSystem.getCodeName().toLowerCase()).toString();
opt.set("system",ipsSystem);
opt.setPackageName(systemModel.getPackageName());
opt.set("system",systemModel);
return opt;
}
......@@ -69,9 +69,9 @@ public class ModelStorage {
CliData rt=new CliData();
if(type.equals(TemplateFileType.api))
{
if(dynamicService.getPSSystem().getAllPSSysServiceAPIs()!=null)
if(dynamicService.getSystemModel().getSystem().getAllPSSysServiceAPIs()!=null)
{
dynamicService.getPSSystem().getAllPSSysServiceAPIs().forEach(item->{
dynamicService.getSystemModel().getSystem().getAllPSSysServiceAPIs().forEach(item->{
CliOption opt=newCliOption(TemplateFileType.api).baseData(item,item.getCodeName().toLowerCase());
rt.addOption(opt);
});
......@@ -79,17 +79,18 @@ public class ModelStorage {
}
else if(type.equals(TemplateFileType.app))
{
if(dynamicService.getPSSystem().getAllPSApps()!=null)
if(dynamicService.getSystemModel().getSystem().getAllPSApps()!=null)
{
dynamicService.getPSSystem().getAllPSApps().forEach(item->{
CliOption opt=newCliOption(TemplateFileType.app).baseData(item,item.getCodeName().toLowerCase());
dynamicService.getSystemModel().getSystem().getAllPSApps().forEach(item->{
AppModel appModel=new AppModel().setOpt(item);
CliOption opt=newCliOption(TemplateFileType.app).baseData(appModel,item.getCodeName().toLowerCase());
rt.addOption(opt);
});
}
}
else if(type.equals(TemplateFileType.serviceApi))
{
dynamicService.getPSSystem().getAllPSSysServiceAPIs().forEach(api->{
dynamicService.getSystemModel().getSystem().getAllPSSysServiceAPIs().forEach(api->{
if(api.getPSDEServiceAPIs()!=null)
{
api.getPSDEServiceAPIs().forEach(item->{
......@@ -101,7 +102,7 @@ public class ModelStorage {
}
else if(type.equals(TemplateFileType.entity))
{
dynamicService.getPSSystem().getAllPSDataEntities().forEach(item->{
dynamicService.getSystemModel().getSystem().getAllPSDataEntities().forEach(item->{
EntityModel schema=dynamicService.getEntitySchema(item.getId());
CliOption opt=newCliOption(TemplateFileType.entity).setCliSubType(schema.getStorageMode()).setModule(schema.getModule())
.baseData(schema,item.getCodeName());
......@@ -110,12 +111,30 @@ public class ModelStorage {
}
else if(type.equals(TemplateFileType.module))
{
dynamicService.getPSSystem().getAllPSSystemModules().forEach(item->{
dynamicService.getSystemModel().getSystem().getAllPSSystemModules().forEach(item->{
CliOption opt=newCliOption(TemplateFileType.module)
.baseData(item,item.getCodeName());
rt.addOption(opt);
});
}
else if(type.equals(TemplateFileType.page))
{
dynamicService.getSystemModel().getSystem().getAllPSApps().forEach(app->{
if(app.getAllPSAppViews()!=null)
{
app.getAllPSAppViews().forEach(item->{
PageModel pageModel=new PageModel().setOpt(item);
CliOption opt=newCliOption(TemplateFileType.page)
.set("apps",app.getCodeName().toLowerCase())
.set("appModules",pageModel.getAppModule())
.baseData(pageModel,item.getCodeName().toLowerCase());
rt.addOption(opt);
});
}
});
}
else if(type.equals(TemplateFileType.supportingFiles))
{
CliOption opt=newCliOption(TemplateFileType.supportingFiles)
......
package cn.ibizlab.codegen.model;
import net.ibizsys.model.app.view.IPSAppView;
import org.springframework.util.StringUtils;
public class PageModel extends BaseModel{
public IPSAppView getAppView()
{
return (IPSAppView)opt;
}
public String getAppModule()
{
if(getAppView().getPSAppDataEntity()==null)
return "default";
String appModules=getAppView().getPSAppDataEntity().getCodeName();
appModules=appModules.toLowerCase();
return appModules;
}
}
package cn.ibizlab.codegen.model;
public class SystemModel {
import net.ibizsys.model.IPSSystem;
public class SystemModel extends BaseModel {
public IPSSystem getSystem()
{
return (IPSSystem)opt;
}
public String getProjectName()
{
return getSystem().getCodeName().toLowerCase();
}
public String getProjectDesc()
{
return getSystem().getName();
}
public String getPackageName()
{
return getSystem().getCodeName().toLowerCase();
}
}
const path = require('path');
const os = require('os');
function resolve(dir) {
return path.join(__dirname, dir)
}
//{{app.codeName}}
module.exports = {
publicPath: './',
// 去除 map 文件 1
productionSourceMap: false,
outputDir:"../{{projectName}}-app/{{projectName}}-app-{{apps}}/target/classes/META-INF/resources",
devServer: {
host: '0.0.0.0',
port: 8111,
compress: true,
disableHostCheck: true,
// proxy: "http://127.0.0.1:8080/",
historyApiFallback: {
rewrites: [
]
}
},
pages: {
apiview: {
// page 的入口
entry: 'src/pages/api/{{app.main}}/main.ts',
// 模板来源
template: 'src/template.html',
// 在 dist/index.html 的输出
filename: 'index.html',
// 当使用 title 选项时,
// template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
title: '{{app.defaultPSAppIndexView.title}}',
// 在这个页面中包含的块,默认情况下会包含
// 提取出来的通用 chunk 和 vendor chunk。
// chunks: ['chunk-vendors', 'chunk-common', 'index']
},
},
// 多核打包
parallel: os.cpus().length > 1,
chainWebpack: (config) => {
// 删除自动计算预加载资源
config.plugins.delete('preload-apiview')
// 删除预加载资源
config.plugins.delete('prefetch-apiview')
config.resolve.alias
.set('@ibizsys', resolve('src/ibizsys'))
.set('@pages', resolve('src/pages'))
.set('@components', resolve('src/components'))
.set('@widgets', resolve('src/widgets'))
.set('@engine', resolve('src/engine'))
.set('@interface', resolve('src/interface'))
.set('@locale', resolve('src/locale'))
.set('@mock', resolve('src/mock'))
.set('@service', resolve('src/service'))
.set('@codelist', resolve('src/codelist'))
},
configureWebpack: config => {
let ForkTsCheckerPlugin;
if(config.plugins.length > 0){
ForkTsCheckerPlugin = config.plugins.find(element =>{
return element.workersNumber && element.memoryLimit;
})
}
if (Object.is(config.mode, 'production')) {
// 最大进程数
ForkTsCheckerPlugin.workersNumber = os.cpus().length > 4 ? 4 : os.cpus().length; // 会占用额外内存不释放,不建议开发阶段使用
// 单个进程最大使用内存
ForkTsCheckerPlugin.memoryLimit = 4096;
} else {
// 最大进程数
// ForkTsCheckerPlugin.workersNumber = os.cpus().length > 4 ? 4 : os.cpus().length; // 会占用额外内存不释放,不建议开发阶段使用
// 单个进程最大使用内存
ForkTsCheckerPlugin.memoryLimit = 4096;
}
},
}
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册