提交 2cc395b8 编写于 作者: sq3536's avatar sq3536

提交

上级 89676e0c
......@@ -14,7 +14,7 @@ module.exports = {
port: 8111,
compress: true,
disableHostCheck: true,
// proxy: "http://127.0.0.1:8080/",
proxy: "http://127.0.0.1:8087/",
historyApiFallback: {
rewrites: [
]
......
......@@ -3,6 +3,7 @@ package cn.ibizlab.core.lite.extensions.domain;
import cn.ibizlab.util.domain.DTOBase;
import cn.ibizlab.util.domain.EntityBase;
import cn.ibizlab.util.helper.DataObject;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.springframework.util.ObjectUtils;
......@@ -61,6 +62,17 @@ public class DataObj<K,V> extends HashMap<K,V> {
return DataObject.getJSONObjectValue(this.get(strParamName),jDefault);
}
public <T> List<T> getListValue(String strParamName,Class<T> clazz)
{
List<T> list= new ArrayList<>();
Object val=this.get(strParamName);
if(val != null && val instanceof List)
{
list=JSONArray.parseArray(JSON.toJSONString(val),clazz);
}
return list;
}
public List<String> getListValue( String strParamName) {
return DataObject.getListValue(strParamName);
}
......
......@@ -58,7 +58,7 @@ public class EntityModel {
return getEntity().getSystemId();
}
private MetaEntity entity;
private MetaEntityModel entity;
private List<MetaDataSet> dataSets;
......
......@@ -179,8 +179,24 @@ public class EntityObj extends DataObj<String,Object> {
}
}
@JsonIgnore
@JSONField(serialize = false)
public boolean isEmpty()
{
int cnt=0;
for(String key:keySet())
{
if(!key.startsWith("_"))
cnt++;
}
return cnt==0;
}
public boolean isDelete()
{
if(this.getEntityModel()==null)
return false;
if(!this.getEntityModel().isLogicValid())
return false;
if(this.getEntityModel().getLogicValidField()==null)
......
......@@ -25,7 +25,7 @@ public class FieldModel {
private String comment;
private MetaField field;
private MetaFieldModel field;
private RelationshipModel reference;
......
package cn.ibizlab.core.lite.extensions.domain;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.sql.Timestamp;
import java.util.List;
/**
......@@ -85,6 +87,32 @@ public class MetaEntityModel{
@JSONField(name = "module_name")
@JsonProperty("module_name")
private String moduleName;
/**
* 扩展参数
*/
@JSONField(name = "ext_params")
@JsonProperty("ext_params")
private String extParams;
/**
* 排序
*/
@JSONField(name = "show_order")
@JsonProperty("show_order")
private Integer showOrder;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
@JSONField(name = "createdate", format = "yyyy-MM-dd HH:mm:ss")
@JsonProperty("createdate")
private Timestamp createdate;
/**
* 最后修改时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
@JSONField(name = "updatedate", format = "yyyy-MM-dd HH:mm:ss")
@JsonProperty("updatedate")
private Timestamp updatedate;
/**
* 数据集
......
package cn.ibizlab.core.lite.extensions.domain;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.sql.Timestamp;
/**
* 实体[属性]
*/
@Getter
@Setter
@NoArgsConstructor
@JsonIgnoreProperties(value = "handler")
@ApiModel("属性")
public class MetaFieldModel {
/**
* 属性标识
*/
@JSONField(name = "field_id")
@JsonProperty("field_id")
@ApiModelProperty("属性标识")
private String fieldId;
/**
* 属性名称
*/
@JSONField(name = "field_name")
@JsonProperty("field_name")
@ApiModelProperty("属性名称")
private String fieldName;
/**
* 代码名称
*/
@JSONField(name = "code_name")
@JsonProperty("code_name")
@ApiModelProperty("代码名称")
private String codeName;
/**
* 实体标识
*/
@JSONField(name = "entity_id")
@JsonProperty("entity_id")
@ApiModelProperty("实体标识")
private String entityId;
/**
* 实体名称
*/
@JSONField(name = "entity_name")
@JsonProperty("entity_name")
@ApiModelProperty("实体名称")
private String entityName;
/**
* 实体代码名称
*/
@JSONField(name = "entity_code_name")
@JsonProperty("entity_code_name")
@ApiModelProperty("实体代码名称")
private String entityCodeName;
/**
* 系统
*/
@JSONField(name = "system_id")
@JsonProperty("system_id")
@ApiModelProperty("系统")
private String systemId;
/**
* 属性逻辑名
*/
@JSONField(name = "field_logic_name")
@JsonProperty("field_logic_name")
@ApiModelProperty("属性逻辑名")
private String fieldLogicName;
/**
* 属性全路径名称
*/
@JSONField(name = "field_uni_name")
@JsonProperty("field_uni_name")
@ApiModelProperty("属性全路径名称")
private String fieldUniName;
/**
* 显示名称
*/
@JSONField(name = "field_show_name")
@JsonProperty("field_show_name")
@ApiModelProperty("显示名称")
private String fieldShowName;
/**
* 引用属性标识
*/
@JSONField(name = "ref_field_id")
@JsonProperty("ref_field_id")
@ApiModelProperty("引用属性标识")
private String refFieldId;
/**
* 引用属性名称
*/
@JSONField(name = "ref_field_name")
@JsonProperty("ref_field_name")
@ApiModelProperty("引用属性名称")
private String refFieldName;
/**
* 引用关系标识
*/
@JSONField(name = "relation_id")
@JsonProperty("relation_id")
@ApiModelProperty("引用关系标识")
private String relationId;
/**
* 引用关系
*/
@JSONField(name = "relation_name")
@JsonProperty("relation_name")
@ApiModelProperty("引用关系")
private String relationName;
/**
* 关系代码
*/
@JSONField(name = "relation_code_name")
@JsonProperty("relation_code_name")
@ApiModelProperty("关系代码")
private String relationCodeName;
/**
* 引用实体
*/
@JSONField(name = "ref_entity_name")
@JsonProperty("ref_entity_name")
@ApiModelProperty("引用实体")
private String refEntityName;
/**
* 主键
*/
@JSONField(name = "key_field")
@JsonProperty("key_field")
@ApiModelProperty("主键")
private Integer keyField;
/**
* 主信息
*/
@JSONField(name = "major_field")
@JsonProperty("major_field")
@ApiModelProperty("主信息")
private Integer majorField;
/**
* 联合主键
*/
@JSONField(name = "union_key")
@JsonProperty("union_key")
@ApiModelProperty("联合主键")
private String unionKey;
/**
* 属性类型
*/
@JSONField(name = "field_type")
@JsonProperty("field_type")
@ApiModelProperty("属性类型")
private String fieldType;
/**
* 预定义类型
*/
@JSONField(name = "predefined")
@JsonProperty("predefined")
@ApiModelProperty("预定义类型")
private String predefined;
/**
* 数据字典
*/
@JSONField(name = "dict")
@JsonProperty("dict")
@ApiModelProperty("数据字典")
private String dict;
/**
* 允许为空
*/
@JSONField(name = "nullable")
@JsonProperty("nullable")
@ApiModelProperty("允许为空")
private Integer nullable;
/**
* 物理属性
*/
@JSONField(name = "physical_field")
@JsonProperty("physical_field")
@ApiModelProperty("物理属性")
private Integer physicalField;
/**
* 数据类型
*/
@JSONField(name = "data_type")
@JsonProperty("data_type")
@ApiModelProperty("数据类型")
private String dataType;
/**
* 长度
*/
@JSONField(name = "data_length")
@JsonProperty("data_length")
@ApiModelProperty("长度")
private Integer dataLength;
/**
* 精度
*/
@JSONField(name = "data_preci")
@JsonProperty("data_preci")
@ApiModelProperty("精度")
private Integer dataPreci;
/**
* 逻辑表达式
*/
@JSONField(name = "expression")
@JsonProperty("expression")
@ApiModelProperty("逻辑表达式")
private String expression;
/**
* 扩展属性
*/
@JSONField(name = "extension_field")
@JsonProperty("extension_field")
@ApiModelProperty("扩展属性")
private Integer extensionField;
/**
* 审计
*/
@JSONField(name = "is_enable_audit")
@JsonProperty("is_enable_audit")
@ApiModelProperty("审计")
private Integer isEnableAudit;
/**
* 排序
*/
@JSONField(name = "show_order")
@JsonProperty("show_order")
@ApiModelProperty("排序")
private Integer showOrder;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
@JSONField(name = "createdate", format = "yyyy-MM-dd HH:mm:ss")
@JsonProperty("createdate")
@ApiModelProperty("创建时间")
private Timestamp createdate;
/**
* 最后修改时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
@JSONField(name = "updatedate", format = "yyyy-MM-dd HH:mm:ss")
@JsonProperty("updatedate")
@ApiModelProperty("最后修改时间")
private Timestamp updatedate;
}
......@@ -4,6 +4,7 @@ import cn.ibizlab.core.lite.extensions.model.DataModel;
import cn.ibizlab.core.lite.extensions.model.Property;
import cn.ibizlab.util.helper.DataObject;
import cn.ibizlab.util.helper.RuleUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.springframework.util.StringUtils;
......@@ -11,13 +12,97 @@ import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.*;
public class ModelObj extends DataObj<String,Object> {
public ModelObj(ModelObj modelObj)
{
if(modelObj.dataModel!=null)
this.setDataModel(modelObj.dataModel);
if(this.getDataModel()!=null)
{
this.getDataModel().getObjectProperties().forEach(property -> {
Object obj=modelObj.get(property.getPropertyName());
if(obj!=null&&obj instanceof EntityObj)
{
this.setEntity(property.getPropertyName(),((EntityObj)obj).copy());
}
});
this.getDataModel().getNestedDataModels().forEach(dm -> {
Object list=modelObj.get(dm.getDataModelName());
if(list!=null&&list instanceof NestedArray)
{
NestedArray nestedArray=(NestedArray) list;
nestedArray.forEach(sub->{
sub.copy().setParent(this);
});
}
});
}
if(!StringUtils.isEmpty(modelObj.getRowKey()))
this.setRowKey(modelObj.getRowKey());
}
public ModelObj()
{
}
public ModelObj build(DataModel dataModel)
{
this.setDataModel(dataModel);
if(this.getDataModel()!=null)
{
this.getDataModel().getObjectProperties().forEach(property -> {
Object obj=this.get(property.getPropertyName());
if(obj!=null&&obj instanceof EntityObj)
{
}
else if(obj!=null&&obj instanceof Map)
{
this.setEntity(property.getPropertyName(), JSON.parseObject(JSON.toJSONString(obj),EntityObj.class));
}
});
this.getDataModel().getNestedDataModels().forEach(dm -> {
Object list=this.get(dm.getDataModelName());
if(list!=null&&list instanceof NestedArray)
{
}
else if(list!=null&&list instanceof List)
{
NestedArray nestedArray=new NestedArray().setParent(this);
this.set(dm.getDataModelName(),nestedArray);
((List)list).forEach(sub->{
if(sub instanceof ModelObj)
{
nestedArray.add((ModelObj)sub);
}
else if(sub instanceof Map)
{
ModelObj subObj=JSON.parseObject(JSON.toJSONString(sub),ModelObj.class);
subObj.build(dm).setParent(this);
}
});
}
});
}
return this;
}
@JsonIgnore
@JSONField(serialize = false)
......@@ -155,6 +240,40 @@ public class ModelObj extends DataObj<String,Object> {
return this;
}
public ModelObj setEntityValue(String name, Object value)
{
if(name.indexOf(".")>0) {
String[] epair = name.split("[.]");
if (epair.length >= 2) {
String propertyName = epair[0];
String columnName = epair[1];
return this.setEntityValue(propertyName,columnName,value);
}
}
return this;
}
public ModelObj setEntityValue(String propertyName,String columnName, Object value)
{
EntityObj entityObj=null;
Object obj=this.get(propertyName);
if(obj!=null&&obj instanceof EntityObj)
entityObj = (EntityObj) obj;
else
{
Property property=this.getDataModel().getObjectProperty(propertyName);
if(property!=null) {
entityObj = new EntityObj().setProperty(property).setRowKey(this.getRowKey());
this.setEntity(property.getPropertyName(),entityObj);
}
else
return this;
}
entityObj.put(columnName,value);
return this;
}
public ModelObj setFactEntity(EntityObj entityObj)
{
this.setEntity(this.getDataModel().getFactPorperty().getPropertyName(),entityObj);
......@@ -474,6 +593,26 @@ public class ModelObj extends DataObj<String,Object> {
return null;
}
@JsonIgnore
@JSONField(serialize = false)
public boolean isEmpty()
{
int cnt=0;
for(String key:keySet())
{
if(key.startsWith("_"))
continue;
Object obj=this.get(key);
if(obj!=null && obj instanceof EntityObj &&((EntityObj)obj).isEmpty())
continue;
cnt++;
}
if(this.get("_IGNO")!=null)
return true;
return cnt==0;
}
@JsonIgnore
@JSONField(serialize = false)
public Boolean isDelete()
......
package cn.ibizlab.core.lite.extensions.mapping;
import cn.ibizlab.core.lite.domain.MetaEntity;
import cn.ibizlab.core.lite.domain.MetaField;
import cn.ibizlab.core.lite.extensions.domain.MetaEntityModel;
import cn.ibizlab.core.lite.extensions.domain.MetaFieldModel;
import cn.ibizlab.util.domain.MappingBase;
import org.mapstruct.Mapper;
import org.mapstruct.NullValueCheckStrategy;
import org.mapstruct.NullValuePropertyMappingStrategy;
@Mapper(componentModel = "spring", uses = {},implementationName="metaFieldModelMapping",
nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE,
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface MetaFieldMapping extends MappingBase<MetaFieldModel, MetaField> {
}
......@@ -7,6 +7,8 @@ import cn.ibizlab.core.lite.domain.MetaModel;
import cn.ibizlab.core.lite.extensions.domain.EntityModel;
import cn.ibizlab.core.lite.extensions.domain.FieldModel;
import cn.ibizlab.core.lite.extensions.domain.RelationshipModel;
import cn.ibizlab.core.lite.extensions.mapping.MetaEntityMapping;
import cn.ibizlab.core.lite.extensions.mapping.MetaFieldMapping;
import cn.ibizlab.core.lite.extensions.model.DataModel;
import cn.ibizlab.core.lite.extensions.model.Property;
import cn.ibizlab.core.lite.extensions.model.PropertyMapping;
......@@ -48,6 +50,13 @@ public class LiteModelService {
public void init(){
LiteStorage.setLiteModelService(this);
}
@Autowired
@Lazy
MetaEntityMapping entityMapping;
@Autowired
@Lazy
MetaFieldMapping fieldMapping;
@Autowired
@Lazy
......@@ -79,7 +88,7 @@ public class LiteModelService {
List<EntityModel> list = new ArrayList<>();
metaEntityService.list(Wrappers.<MetaEntity>lambdaQuery().eq(MetaEntity::getSystemId,systemId).orderByAsc(MetaEntity::getEntityName)).forEach(entity -> {
EntityModel entityModel = new EntityModel();
entityModel.setEntity(entity);
entityModel.setEntity(entityMapping.toDto(entity));
list.add(entityModel);
});
return list;
......@@ -96,7 +105,7 @@ public class LiteModelService {
MetaEntity entity = LiteStorage.getMetaEntity(String.format("%1$s.%2$s",systemId,name));
EntityModel entityModel = new EntityModel();
entityModel.setEntity(entity);
entityModel.setEntity(entityMapping.toDto(entity));
Map<String, RelationshipModel> parentSet = new LinkedHashMap();
List<RelationshipModel> references = new ArrayList<>();
......@@ -151,7 +160,7 @@ public class LiteModelService {
metaFieldService.searchDefault(searchContext).getContent().forEach(item->
{
FieldModel model = new FieldModel();
model.setField(item);
model.setField(fieldMapping.toDto(item));
model.setCodeName(item.getCodeName());
model.setColumnName(item.getFieldName());
model.setComment(item.getFieldLogicName());
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册