Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzlite
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzlite
提交
5dc9819a
提交
5dc9819a
编写于
11月 06, 2020
作者:
sq3536
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
model 设计
上级
4ac44d13
变更
5
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
196 行增加
和
63 行删除
+196
-63
app-form-json.vue
app_web/src/components/app-form-json/app-form-json.vue
+6
-61
MetaModelExService.java
...n/ibizlab/core/extensions/service/MetaModelExService.java
+30
-0
Model.java
...ain/java/cn/ibizlab/core/lite/extensions/model/Model.java
+2
-2
TmpModel.java
.../java/cn/ibizlab/core/lite/extensions/model/TmpModel.java
+144
-0
LiteCoreResource.java
...java/cn/ibizlab/api/rest/extensions/LiteCoreResource.java
+14
-0
未找到文件。
app_web/src/components/app-form-json/app-form-json.vue
浏览文件 @
5dc9819a
...
@@ -122,50 +122,11 @@ export default class AppFormJson extends Vue {
...
@@ -122,50 +122,11 @@ export default class AppFormJson extends Vue {
}
}
let
_schema
=
{
let
_schema
=
{
"title"
:
"model"
,
"$ref"
:
"#/definitions/model"
,
"type"
:
"object"
,
"format"
:
"grid"
,
"properties"
:
{
"id"
:
{
"title"
:
"标识"
,
"type"
:
"string"
,
"options"
:
{
"grid_columns"
:
4
},
"propertyOrder"
:
1
},
"name"
:
{
"title"
:
"名称"
,
"type"
:
"string"
,
"options"
:
{
"grid_columns"
:
4
},
"propertyOrder"
:
2
},
"system"
:
{
"title"
:
"系统"
,
"type"
:
"string"
,
"options"
:
{
"grid_columns"
:
4
},
"propertyOrder"
:
3
},
"factEntity"
:
{
"title"
:
"事实实体"
,
"type"
:
"string"
,
"options"
:
{
"grid_columns"
:
4
},
"propertyOrder"
:
4
},
"model"
:
{
"$ref"
:
"#/definitions/model"
}
},
"definitions"
:
{
"definitions"
:
{
"model"
:
{
"model"
:
{
"title"
:
"模型"
,
"title"
:
"模型"
,
"headerTemplate"
:
"{{ self.dataModelName }}"
,
"headerTemplate"
:
"{{ self.dataModelName }}"
,
"type"
:
"object"
,
"type"
:
"object"
,
"format"
:
"grid"
,
"format"
:
"grid"
,
"properties"
:
{
"properties"
:
{
...
@@ -184,7 +145,7 @@ export default class AppFormJson extends Vue {
...
@@ -184,7 +145,7 @@ export default class AppFormJson extends Vue {
"uniqueItems"
:
true
,
"uniqueItems"
:
true
,
"items"
:
{
"items"
:
{
"title"
:
"对象"
,
"title"
:
"对象"
,
"headerTemplate"
:
"{{ self.propertyName }}"
,
"headerTemplate"
:
"{{ self.propertyName }}"
,
"type"
:
"object"
,
"type"
:
"object"
,
"properties"
:
{
"properties"
:
{
"propertyName"
:
{
"propertyName"
:
{
...
@@ -258,7 +219,7 @@ export default class AppFormJson extends Vue {
...
@@ -258,7 +219,7 @@ export default class AppFormJson extends Vue {
"format"
:
"tabs"
,
"format"
:
"tabs"
,
"uniqueItems"
:
true
,
"uniqueItems"
:
true
,
"items"
:
{
"items"
:
{
"title"
:
"子模型"
,
"title"
:
"子模型"
,
"$ref"
:
"#/definitions/model"
"$ref"
:
"#/definitions/model"
},
},
"propertyOrder"
:
3
"propertyOrder"
:
3
...
@@ -272,29 +233,13 @@ export default class AppFormJson extends Vue {
...
@@ -272,29 +233,13 @@ export default class AppFormJson extends Vue {
"title"
:
"映射"
,
"title"
:
"映射"
,
"type"
:
"object"
,
"type"
:
"object"
,
"properties"
:
{
"properties"
:
{
"selfPropertyName"
:
{
"title"
:
"对象"
,
"type"
:
"string"
,
"options"
:
{
"grid_columns"
:
4
},
"propertyOrder"
:
1
},
"selfPropertyColumn"
:
{
"selfPropertyColumn"
:
{
"title"
:
"列"
,
"title"
:
"列"
,
"type"
:
"string"
,
"type"
:
"string"
,
"options"
:
{
"options"
:
{
"grid_columns"
:
4
"grid_columns"
:
4
},
},
"propertyOrder"
:
2
"propertyOrder"
:
1
},
"parentPropertyName"
:
{
"title"
:
"父模型对象"
,
"type"
:
"string"
,
"options"
:
{
"grid_columns"
:
4
},
"propertyOrder"
:
3
},
},
"parentPropertyColumn"
:
{
"parentPropertyColumn"
:
{
"title"
:
"父模型列"
,
"title"
:
"父模型列"
,
...
@@ -302,7 +247,7 @@ export default class AppFormJson extends Vue {
...
@@ -302,7 +247,7 @@ export default class AppFormJson extends Vue {
"options"
:
{
"options"
:
{
"grid_columns"
:
4
"grid_columns"
:
4
},
},
"propertyOrder"
:
4
"propertyOrder"
:
2
}
}
}
}
},
},
...
...
ibzlite-core/src/main/java/cn/ibizlab/core/extensions/service/MetaModelExService.java
浏览文件 @
5dc9819a
package
cn
.
ibizlab
.
core
.
extensions
.
service
;
package
cn
.
ibizlab
.
core
.
extensions
.
service
;
import
cn.ibizlab.core.lite.extensions.model.DataModel
;
import
cn.ibizlab.core.lite.extensions.model.TmpModel
;
import
cn.ibizlab.core.lite.service.impl.MetaModelServiceImpl
;
import
cn.ibizlab.core.lite.service.impl.MetaModelServiceImpl
;
import
cn.ibizlab.util.errors.BadRequestAlertException
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
cn.ibizlab.core.lite.domain.MetaModel
;
import
cn.ibizlab.core.lite.domain.MetaModel
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.util.StringUtils
;
import
java.util.*
;
import
java.util.*
;
/**
/**
...
@@ -29,7 +35,31 @@ public class MetaModelExService extends MetaModelServiceImpl {
...
@@ -29,7 +35,31 @@ public class MetaModelExService extends MetaModelServiceImpl {
@Override
@Override
@Transactional
@Transactional
public
MetaModel
change
(
MetaModel
et
)
{
public
MetaModel
change
(
MetaModel
et
)
{
if
((!
StringUtils
.
isEmpty
(
et
.
getConfig
()))&&
et
.
getConfig
().
indexOf
(
"releations"
)>
0
)
{
TmpModel
tmpModel
=
JSONObject
.
parseObject
(
et
.
getConfig
(),
TmpModel
.
class
);
DataModel
root
=
tmpModel
.
getDataModels
();
if
(
tmpModel
.
getTables
().
size
()>
0
)
{
System
.
out
.
println
(
tmpModel
.
getTables
());
//throw new BadRequestAlertException("结构分析失败","MetaModel",tmpModel.getFactEntity());
}
else
et
.
setConfig
(
JSONObject
.
toJSONString
(
root
));
}
return
super
.
change
(
et
);
return
super
.
change
(
et
);
}
}
@Override
public
boolean
create
(
MetaModel
et
)
{
change
(
et
);
return
super
.
create
(
et
);
}
@Override
public
boolean
update
(
MetaModel
et
)
{
change
(
et
);
return
super
.
update
(
et
);
}
}
}
ibzlite-core/src/main/java/cn/ibizlab/core/lite/extensions/model/Model.java
浏览文件 @
5dc9819a
...
@@ -38,11 +38,11 @@ public class Model {
...
@@ -38,11 +38,11 @@ public class Model {
public
static
void
main
(
String
[]
arg
)
public
static
void
main
(
String
[]
arg
)
{
{
String
jsonstr
=
"{\"
id\":\"sjmx1\",\"name\":\"一审公诉\",\"system\":\"tyyw2plus\",\"factEntity\":\"T_TYYW_XJ_YSGS_AJ\",\"model\":{\"dataModelName1\":\"案件\",\"objectProperties\":[{\"propertyName\":\"审查起诉表\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_XJ_YSGS_AJ\",\"propertyMappings\":[]},{\"propertyName\":\"案情摘要表\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_AQZY\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"JoinPropertyName1\":\"审查起诉表\",\"joinPropertyColumn\":\"BMSAH\"}]},{\"propertyName\":\"案件运行表\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"AJ_YX_AJ\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"JoinPropertyName1\":\"审查起诉表\",\"joinPropertyColumn\":\"BMSAH\"}]},{\"propertyName\":\"侦查活动监督表\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_ZCHDJD\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"JoinPropertyName1\":\"审查起诉表\",\"joinPropertyColumn\":\"BMSAH\"}]},{\"propertyName\":\"审判活动监督表\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_SPHDJD\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"JoinPropertyName1\":\"审查起诉表\",\"joinPropertyColumn\":\"BMSAH\"}]}],\"nestedDataModels\":[{\"dataModelName\":\"嫌疑人\",\"objectProperties\":[{\"propertyName\":\"嫌疑人一审\",\"system\":\"tyywplus\",\"propertyEntity\":\"T_TYYW_XJ_YSGS_XYR\",\"propertyMappings\":[]},{\"propertyName\":\"自然人历史信息\",\"system\":\"tyywplus\",\"propertyEntity\":\"T_TYYW_GG_ZRRSJLS\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"JoinPropertyName1\":\"嫌疑人一审\",\"joinPropertyColumn\":\"BMSAH\"},{\"selfPropertyColumn\":\"ZRRBM\",\"JoinPropertyName1\":\"嫌疑人一审\",\"joinPropertyColumn\":\"ZRRBM\"}]}],\"layerMappings\":[{\"selfPropertyName1\":\"嫌疑人一审\",\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyName1\":\"审查起诉表\",\"parentPropertyColumn\":\"BMSAH\"}],\"nestedDataModels\":[{\"dataModelName\":\"强制措施\",\"objectProperties\":[{\"propertyName\":\"强制措施表\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_QZCSQK\",\"propertyMappings\":[]}],\"nestedDataModels\":[],\"layerMappings\":[{\"selfPropertyName1\":\"强制措施表\",\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyName1\":\"嫌疑人一审\",\"parentPropertyColumn\":\"BMSAH\"},{\"selfPropertyName1\":\"强制措施表\",\"selfPropertyColumn\":\"ZRRBM\",\"parentPropertyName1\":\"嫌疑人一审\",\"parentPropertyColumn\":\"ZRRBM\"}]},{\"dataModelName\":\"留置措施\",\"objectProperties\":[{\"propertyName\":\"留置措施表\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_LZCSQK\",\"propertyMappings\":[]}],\"nestedDataModels\":[],\"layerMappings\":[{\"selfPropertyName1\":\"留置措施表\",\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyName1\":\"嫌疑人一审\",\"parentPropertyColumn\":\"BMSAH\"},{\"selfPropertyName1\":\"留置措施表\",\"selfPropertyColumn\":\"ZRRBM\",\"parentPropertyName1\":\"嫌疑人一审\",\"parentPropertyColumn\":\"ZRRBM\"}]}]},{\"dataModelName\":\"受理日志\",\"objectProperties\":[{\"propertyName\":\"受理日志表\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"AJ_YX_SLRZ\",\"propertyMappings\":[]}],\"layerMappings\":[{\"selfPropertyName1\":\"受理日志表\",\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyName1\":\"审查起诉表\",\"parentPropertyColumn\":\"BMSAH\"}]},{\"dataModelName\":\"线索移交\",\"objectProperties\":[{\"propertyName\":\"线索移交情况表\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_XSYJQK\",\"propertyMappings\":[]}],\"nestedDataModels\":[],\"layerMappings\":[{\"selfPropertyName1\":\"线索移交情况表\",\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyName1\":\"审查起诉表\",\"parentPropertyColumn\":\"BMSAH\"}]},{\"dataModelName\":\"检察建议\",\"objectProperties\":[{\"propertyName\":\"检察建议表\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_JCJYQK\",\"propertyMappings\":[]}],\"nestedDataModels\":[],\"layerMappings\":[{\"selfPropertyName1\":\"检察建议表\",\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyName1\":\"审查起诉表\",\"parentPropertyColumn\":\"BMSAH\"}]}]}
}"
;
String
jsonstr
=
"{\"
dataModelName\":\"T_TYYW_XJ_YSGS_AJ\",\"objectProperties\":[{\"propertyName\":\"T_TYYW_XJ_YSGS_AJ\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_XJ_YSGS_AJ\",\"propertyMappings\":[]},{\"propertyName\":\"T_TYYW_GG_AQZY\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_AQZY\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"joinPropertyName\":\"T_TYYW_XJ_YSGS_AJ\",\"joinPropertyColumn\":\"BMSAH\"}]},{\"propertyName\":\"AJ_YX_AJ\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"AJ_YX_AJ\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"joinPropertyName\":\"T_TYYW_XJ_YSGS_AJ\",\"joinPropertyColumn\":\"BMSAH\"}]},{\"propertyName\":\"T_TYYW_GG_ZCHDJD\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_ZCHDJD\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"joinPropertyName\":\"T_TYYW_XJ_YSGS_AJ\",\"joinPropertyColumn\":\"BMSAH\"}]},{\"propertyName\":\"T_TYYW_GG_SPHDJD\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_SPHDJD\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"joinPropertyName\":\"T_TYYW_XJ_YSGS_AJ\",\"joinPropertyColumn\":\"BMSAH\"}]},{\"propertyName\":\"T_TYYW_GG_ZSCQQK\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_ZSCQQK\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"joinPropertyName\":\"T_TYYW_XJ_YSGS_AJ\",\"joinPropertyColumn\":\"BMSAH\"}]}],\"nestedDataModels\":[{\"dataModelName\":\"T_TYYW_XJ_YSGS_XYR\",\"objectProperties\":[{\"propertyName\":\"T_TYYW_XJ_YSGS_XYR\",\"system\":\"tyywplus\",\"propertyEntity\":\"T_TYYW_XJ_YSGS_XYR\",\"propertyMappings\":[]},{\"propertyName\":\"T_TYYW_GG_ZRRSJLS\",\"system\":\"tyywplus\",\"propertyEntity\":\"T_TYYW_GG_ZRRSJLS\",\"propertyMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"joinPropertyName\":\"T_TYYW_XJ_YSGS_XYR\",\"joinPropertyColumn\":\"BMSAH\"},{\"selfPropertyColumn\":\"ZRRBM\",\"joinPropertyName\":\"T_TYYW_XJ_YSGS_XYR\",\"joinPropertyColumn\":\"ZRRBM\"}]}],\"nestedDataModels\":[{\"dataModelName\":\"T_TYYW_GG_QZCSQK\",\"objectProperties\":[{\"propertyName\":\"T_TYYW_GG_QZCSQK\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_QZCSQK\",\"propertyMappings\":[]}],\"nestedDataModels\":[],\"layerMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyColumn\":\"BMSAH\"},{\"selfPropertyColumn\":\"ZRRBM\",\"parentPropertyColumn\":\"ZRRBM\"}]},{\"dataModelName\":\"T_TYYW_GG_LZCSQK\",\"objectProperties\":[{\"propertyName\":\"T_TYYW_GG_LZCSQK\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_LZCSQK\",\"propertyMappings\":[]}],\"nestedDataModels\":[],\"layerMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyColumn\":\"BMSAH\"},{\"selfPropertyColumn\":\"ZRRBM\",\"parentPropertyColumn\":\"ZRRBM\"}]}],\"layerMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyColumn\":\"BMSAH\"}]},{\"dataModelName\":\"AJ_YX_SLRZ\",\"objectProperties\":[{\"propertyName\":\"AJ_YX_SLRZ\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"AJ_YX_SLRZ\",\"propertyMappings\":[]}],\"nestedDataModels\":[],\"layerMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyColumn\":\"BMSAH\"}]},{\"dataModelName\":\"T_TYYW_GG_XSYJQK\",\"objectProperties\":[{\"propertyName\":\"T_TYYW_GG_XSYJQK\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_XSYJQK\",\"propertyMappings\":[]}],\"nestedDataModels\":[],\"layerMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyColumn\":\"BMSAH\"}]},{\"dataModelName\":\"T_TYYW_GG_JCJYQK\",\"objectProperties\":[{\"propertyName\":\"T_TYYW_GG_JCJYQK\",\"system\":\"tyyw2plus\",\"propertyEntity\":\"T_TYYW_GG_JCJYQK\",\"propertyMappings\":[]}],\"nestedDataModels\":[],\"layerMappings\":[{\"selfPropertyColumn\":\"BMSAH\",\"parentPropertyColumn\":\"BMSAH\"}]}],\"layerMappings\":[]
}"
;
JSONObject
jo
=
JSON
.
parseObject
(
jsonstr
);
JSONObject
jo
=
JSON
.
parseObject
(
jsonstr
);
Model
model
=
JSONObject
.
toJavaObject
(
jo
,
Model
.
class
);
DataModel
model
=
JSONObject
.
toJavaObject
(
jo
,
Data
Model
.
class
);
System
.
out
.
println
(
JSONObject
.
toJSONString
(
model
));
System
.
out
.
println
(
JSONObject
.
toJSONString
(
model
));
...
...
ibzlite-core/src/main/java/cn/ibizlab/core/lite/extensions/model/TmpModel.java
0 → 100644
浏览文件 @
5dc9819a
package
cn
.
ibizlab
.
core
.
lite
.
extensions
.
model
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.experimental.Accessors
;
import
org.springframework.util.ObjectUtils
;
import
java.util.LinkedHashSet
;
@Getter
@Setter
@NoArgsConstructor
@Accessors
(
chain
=
true
)
public
class
TmpModel
{
@JSONField
(
ordinal
=
3
)
private
String
id
;
@JSONField
(
ordinal
=
1
)
private
String
factEntity
;
@JSONField
(
ordinal
=
2
)
private
String
factEntityName
;
@JSONField
(
ordinal
=
4
)
private
LinkedHashSet
<
String
>
tables
;
@JSONField
(
ordinal
=
5
)
private
LinkedHashSet
<
ReleationModel
>
releations
=
new
LinkedHashSet
<>();
@Getter
@Setter
@NoArgsConstructor
@Accessors
(
chain
=
true
)
public
static
class
ReleationModel
{
@JSONField
(
ordinal
=
1
)
private
String
entity
;
@JSONField
(
ordinal
=
3
)
private
String
entityName
;
@JSONField
(
ordinal
=
2
)
private
String
refEntity
;
@JSONField
(
ordinal
=
4
)
private
String
refEntityName
;
@JSONField
(
ordinal
=
5
)
private
LinkedHashSet
<
LookupModel
>
lookups
;
}
@Getter
@Setter
@NoArgsConstructor
@Accessors
(
chain
=
true
)
public
static
class
LookupModel
{
@JSONField
(
ordinal
=
1
)
private
String
field
;
@JSONField
(
ordinal
=
2
)
private
String
refField
;
}
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
DataModel
getDataModels
()
{
DataModel
dataModel
=
new
DataModel
();
dataModel
.
setDataModelName
(
this
.
getFactEntity
());
Property
property
=
new
Property
();
property
.
setOwnerDataModel
(
dataModel
);
property
.
setPropertyEntity
(
this
.
getFactEntity
());
property
.
setPropertyName
(
this
.
getFactEntity
());
property
.
setSystem
(
"tyyw2plus"
);
tables
.
remove
(
this
.
getFactEntity
());
dataModel
.
getObjectProperties
().
add
(
property
);
getPropertyByEntity
(
dataModel
).
forEach
(
item
->
dataModel
.
getObjectProperties
().
add
(
item
));
dataModel
.
setNestedDataModels
(
getDataModelsByParent
(
dataModel
));
return
dataModel
;
}
public
LinkedHashSet
<
DataModel
>
getDataModelsByParent
(
DataModel
parentEntity
)
{
LinkedHashSet
<
DataModel
>
list
=
new
LinkedHashSet
<>();
this
.
getReleations
().
forEach
(
releationModel
->
{
if
(
releationModel
.
getRefEntity
().
equalsIgnoreCase
(
parentEntity
.
getDataModelName
()))
{
DataModel
dataModel
=
new
DataModel
();
dataModel
.
setDataModelName
(
releationModel
.
getEntity
());
LinkedHashSet
<
LayerMapping
>
layerMappings
=
new
LinkedHashSet
<>();
releationModel
.
getLookups
().
forEach
(
lookupModel
->
{
LayerMapping
layerMapping
=
new
LayerMapping
();
layerMapping
.
setSelfPropertyColumn
(
lookupModel
.
getField
());
layerMapping
.
setParentPropertyColumn
(
lookupModel
.
getRefField
());
layerMappings
.
add
(
layerMapping
);
});
Property
property
=
new
Property
();
property
.
setOwnerDataModel
(
dataModel
);
property
.
setPropertyEntity
(
releationModel
.
getEntity
());
property
.
setPropertyName
(
releationModel
.
getEntity
());
property
.
setSystem
(
"tyyw2plus"
);
tables
.
remove
(
releationModel
.
getEntity
());
dataModel
.
getObjectProperties
().
add
(
property
);
dataModel
.
setLayerMappings
(
layerMappings
);
dataModel
.
setParentDataModel
(
parentEntity
);
getPropertyByEntity
(
dataModel
).
forEach
(
item
->
dataModel
.
getObjectProperties
().
add
(
item
));
LinkedHashSet
<
DataModel
>
nestedDataModels
=
getDataModelsByParent
(
dataModel
);
if
(!
ObjectUtils
.
isEmpty
(
nestedDataModels
))
dataModel
.
setNestedDataModels
(
nestedDataModels
);
list
.
add
(
dataModel
);
}
});
return
list
;
}
public
LinkedHashSet
<
Property
>
getPropertyByEntity
(
DataModel
dataModel
)
{
LinkedHashSet
<
Property
>
list
=
new
LinkedHashSet
<>();
this
.
getReleations
().
forEach
(
releationModel
->
{
if
(
releationModel
.
getEntity
().
equalsIgnoreCase
(
dataModel
.
getFactPorperty
().
getPropertyEntity
()))
{
if
(
dataModel
.
getParentDataModel
()!=
null
&&
dataModel
.
getParentDataModel
().
getDataModelName
().
equalsIgnoreCase
(
releationModel
.
getRefEntity
()))
return
;
Property
property
=
new
Property
();
property
.
setOwnerDataModel
(
dataModel
);
property
.
setPropertyEntity
(
releationModel
.
getRefEntity
());
property
.
setPropertyName
(
releationModel
.
getRefEntity
());
property
.
setSystem
(
"tyyw2plus"
);
tables
.
remove
(
releationModel
.
getRefEntity
());
releationModel
.
getLookups
().
forEach
(
lookupModel
->
{
PropertyMapping
propertyMapping
=
new
PropertyMapping
();
propertyMapping
.
setSelfPropertyColumn
(
lookupModel
.
getRefField
());
propertyMapping
.
setSelfProperty
(
property
);
propertyMapping
.
setJoinPropertyColumn
(
lookupModel
.
getField
());
propertyMapping
.
setJoinPropertyName
(
releationModel
.
getEntity
());
property
.
getPropertyMappings
().
add
(
propertyMapping
);
});
dataModel
.
getObjectProperties
().
add
(
property
);
}
});
return
list
;
}
}
ibzlite-provider/ibzlite-provider-api/src/main/java/cn/ibizlab/api/rest/extensions/LiteCoreResource.java
浏览文件 @
5dc9819a
...
@@ -22,6 +22,8 @@ import org.springframework.http.ResponseEntity;
...
@@ -22,6 +22,8 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.util.StringUtils
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.io.UnsupportedEncodingException
;
import
java.util.Base64
;
import
java.util.List
;
import
java.util.List
;
@Slf4j
@Slf4j
...
@@ -41,6 +43,18 @@ public class LiteCoreResource {
...
@@ -41,6 +43,18 @@ public class LiteCoreResource {
LiteCoreService
liteCoreService
;
LiteCoreService
liteCoreService
;
@RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"/lite/test"
)
public
ResponseEntity
<
String
>
getstr
()
{
String
str
=
"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"
;
try
{
// str= new String(Base64.getDecoder().decode(str.getBytes("UTF-8")),"UTF-8");
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
ResponseEntity
.
ok
(
str
);
}
@RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"/lite/{system}/entitys"
)
@RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"/lite/{system}/entitys"
)
public
ResponseEntity
<
List
<
EntityModel
>>
getEntityModel
(
@PathVariable
(
"system"
)
String
system
)
{
public
ResponseEntity
<
List
<
EntityModel
>>
getEntityModel
(
@PathVariable
(
"system"
)
String
system
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
liteModelService
.
getEntityModel
(
system
));
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
liteModelService
.
getEntityModel
(
system
));
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录