{"name":"anivia","describe":"anivia","avatar":"","version":"4.9.2","createdTime":"2024-8-30 21:54:48","updatedTime":"2025-1-22 19:18:45","dbConns":[],"profile":{"default":{"db":"29D1CE08-4C35-4D2D-AAA9-23D93305B52E","dbConn":"","entityInitFields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"E137F423-7AE9-4472-B16B-D5D961727564"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"BC663EF5-9E2D-40F5-AB23-65CD9CC1063D"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"B0004A9D-176F-401D-BA77-AF0C6463F633"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"956A2043-60BF-4B5C-942F-EF33FDE43BFB"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"DB221D64-476F-4285-91F3-150DFCDB1158"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"666A863C-A7C1-4052-8834-6CD71600ED04"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"44E2D71A-B47F-40B0-9B7B-4D24F6326B6D"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"3F6E8056-8827-4E66-A9FA-57D5AC67EE98"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"725786FC-F633-4DBA-A77C-7FAE5A7577A9"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"7B08070B-99E0-45B3-AA01-9B549E0D26C6"}],"entityInitProperties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""}},"javaHome":"","sql":{"delimiter":""},"dataTypeSupports":[{"defKey":"MYSQL","id":"29D1CE08-4C35-4D2D-AAA9-23D93305B52E"},{"defKey":"ORACLE","id":"A4E23CB7-BB01-4BD1-9F71-F73F3E15A542"},{"defKey":"SQLServer","id":"BFC87171-C74F-494A-B7C2-76B9C55FACC9"},{"defKey":"PostgreSQL","id":"DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022"},{"defKey":"DB2","id":"89504F5D-94BF-4C9E-8B2E-44F37305FED5"},{"defKey":"DM","id":"0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307"},{"defKey":"GaussDB","id":"592C7013-143D-4E7B-AF64-0D7BF1E28230"},{"defKey":"Kingbase","id":"77BD85E5-9D0D-4096-8427-CBA306FC9C6A"},{"defKey":"GBase","id":"56F4B55B-F0B8-4049-9E6B-50B95C1D793A"},{"defKey":"MaxCompute","id":"11D1FB71-A587-4217-89BA-611B8A1F83E0"},{"defKey":"SQLite","id":"B363BE0B-F852-49B8-9B2E-F6D2174DEAC1"},{"defKey":"Hive","id":"81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2"},{"defKey":"JAVA","id":"797A1496-D649-4261-89B4-544132EC3F36"},{"defKey":"JavaMybatis","id":"895CFD1D-4273-4D32-A2C4-CAC70200AB5B"},{"defKey":"JavaMybatisPlus","id":"A2EE7B4A-CE62-4290-B00C-B26C1BF18073"},{"defKey":"C#","id":"F3AC2415-E86B-40C6-9FEB-F4B7937D2C30"},{"defKey":"Golang","id":"B91D99E0-9B7C-416C-8737-B760957DAF09"},{"defKey":"Rust","id":"BDF457FD-9F98-4AC3-A705-7587B00A3BAB"},{"defKey":"Doris","id":"483F9346-C99E-4014-A1D2-A554606BD8A3"},{"defKey":"HighGo","id":"ABF5836C-0B7C-4007-A41C-F869325E5842"}],"codeTemplates":[{"type":"appCode","applyFor":"797A1496-D649-4261-89B4-544132EC3F36"," JpaBean":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}package {{=pkgName}}.entity;\n$blankline\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.persistence.*;\nimport java.io.Serializable;\nimport java.util.Date;\n$blankline\n\n /**\n * {{=it.entity.defName}};{{=it.entity.comment}}\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@ApiModel(value = \"{{=it.entity.defName}}\",description = \"{{=it.entity.comment}}\")\n@Table(name=\"{{=it.entity.defKey}}\")\npublic class {{=beanClass}} implements Serializable,Cloneable{\n{{~it.entity.fields:field:index}}\n /** {{=it.func.join(field.defName,field.comment,';')}} */\n {{? field.primaryKey }}\n @Id\n @GeneratedValue\n {{?}}\n @ApiModelProperty(name = \"{{=field.defName}}\",notes = \"{{=field.comment}}\")\n private {{=field.type}} {{=it.func.camel(field.defKey,false)}} ;\n{{~}}\n$blankline\n\n{{~it.entity.fields:field:index}}\n /** {{=it.func.join(field.defName,field.comment,';')}} */\n public {{=field.type}} get{{=it.func.camel(field.defKey,true)}}(){\n return this.{{=it.func.camel(field.defKey,false)}};\n }\n /** {{=it.func.join(field.defName,field.comment,';')}} */\n public void set{{=it.func.camel(field.defKey,true)}}({{=field.type}} {{= it.func.camel(field.defKey,false) }}){\n this.{{=it.func.camel(field.defKey,false)}}={{=it.func.camel(field.defKey,false)}};\n }\n{{~}}\n}"},{"type":"appCode","applyFor":"F3AC2415-E86B-40C6-9FEB-F4B7937D2C30","Default":"using System;\nusing System.Collections.Generic;\n\n$blankline\n{{\n var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n}}\n/*\n * @author : http://www.chiner.com.cn\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n * @desc : {{=it.func.join(it.entity.defName,it.entity.comment,'-')}}\n */\nnamespace PDManer.Application\n{\n public partial class {{=it.func.camel(it.entity.defKey,true) }}\n {\n \n {{~it.entity.fields:field:index}}\n /// \n /// {{=it.func.join(field.defName,field.comment,';')}}\n /// \n public {{=field.type}} {{=it.func.camel(field.defKey,true)}} { get; set; }\n $blankline\n {{~}}\n \n }\n}","SqlSugar":"using System;\nusing System.Collections.Generic;\nusing SqlSugar;\n\n$blankline\n{{\n var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n var sqlSugartable='[SugarTable(\"{{=it.entity.defKey}}\", TableDescription = \"{{=it.func.join(it.entity.defName,it.entity.comment,';')}}\")]';\n}}\n/*\n * @author : xkdong@163.com\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n * @desc : {{=it.func.join(it.entity.defName,it.entity.comment,'-')}}\n */\nnamespace Model.DBModel\n{\n /// \n /// {{=it.func.join(it.entity.defName,it.entity.comment,';')}}\n /// \n {{=sqlSugartable}}\n public class {{=it.entity.defKey}}\n {\n {{~it.entity.fields:field:index}}\n /// \n /// {{=it.func.join(field.defName,field.comment,';')}}\n /// \n {{? field.primaryKey }}\n [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]\n {{?}}\n public {{=field.type}} {{=it.func.camel(field.defKey,true)}}{ get; set; }\n $blankline\n {{~}}\n }\n}"},{"applyFor":"895CFD1D-4273-4D32-A2C4-CAC70200AB5B","type":"appCode","Controller":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}package {{=pkgName}}.controller;\n$blankline\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageRequest;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.*;\nimport {{=pkgName}}.entity.{{=beanClass}};\nimport {{=pkgName}}.service.{{=serviceClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表控制层\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Api(tags = \"{{=it.entity.defName}}对象功能接口\")\n@RestController\n@RequestMapping(\"/{{=it.func.camel(it.entity.defKey,false)}}\")\npublic class {{=beanClass}}Controller{\n @Autowired\n private {{=serviceClass}} {{=serviceVarName}};\n $blankline\n /** \n * 通过ID查询单条数据 \n *\n * @param {{=pkVarName}} 主键\n * @return 实例对象\n */\n @ApiOperation(\"通过ID查询单条数据\")\n @GetMapping(\"{{{=it.func.camel(pkVarName,false)}}}\")\n public ResponseEntity<{{=beanClass}}> queryById({{=pkDataType}} {{=pkVarName}}){\n return ResponseEntity.ok({{=serviceVarName}}.queryById({{=pkVarName}}));\n }\n $blankline\n /** \n * 分页查询\n *\n * @param {{=beanVarName}} 筛选条件\n * @param pageRequest 分页对象\n * @return 查询结果\n */\n @ApiOperation(\"分页查询\")\n @GetMapping\n public ResponseEntity> paginQuery({{=beanClass}} {{=beanVarName}}, PageRequest pageRequest){\n return ResponseEntity.ok({{=serviceVarName}}.paginQuery({{=beanVarName}}, pageRequest));\n }\n $blankline\n /** \n * 新增数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n @ApiOperation(\"新增数据\")\n @PostMapping\n public ResponseEntity<{{=beanClass}}> add({{=beanClass}} {{=beanVarName}}){\n return ResponseEntity.ok({{=serviceVarName}}.insert({{=beanVarName}}));\n }\n $blankline\n /** \n * 更新数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n @ApiOperation(\"更新数据\")\n @PutMapping\n public ResponseEntity<{{=beanClass}}> edit({{=beanClass}} {{=beanVarName}}){\n return ResponseEntity.ok({{=serviceVarName}}.update({{=beanVarName}}));\n }\n $blankline\n /** \n * 通过主键删除数据\n *\n * @param {{=pkVarName}} 主键\n * @return 是否成功\n */\n @ApiOperation(\"通过主键删除数据\")\n @DeleteMapping\n public ResponseEntity deleteById({{=pkDataType}} {{=pkVarName}}){\n return ResponseEntity.ok({{=serviceVarName}}.deleteById({{=pkVarName}}));\n }\n}","Service":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}package {{=pkgName}}.service;\n$blankline\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageRequest;\nimport {{=pkgName}}.entity.{{=beanClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表服务接口\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\npublic interface {{=serviceClass}}{\n /** \n * 通过ID查询单条数据 \n *\n * @param {{=pkVarName}} 主键\n * @return 实例对象\n */\n {{=beanClass}} queryById({{=pkDataType}} {{=pkVarName}});\n \n /** \n * 分页查询\n *\n * @param {{=beanVarName}} 筛选条件\n * @param pageRequest 分页对象\n * @return 查询结果\n */\n Page<{{=beanClass}}> paginQuery({{=beanClass}} {{=beanVarName}}, PageRequest pageRequest);\n\n /** \n * 新增数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n {{=beanClass}} insert({{=beanClass}} {{=beanVarName}});\n\n \n /** \n * 更新数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n {{=beanClass}} update({{=beanClass}} {{=beanVarName}});\n\n /** \n * 通过主键删除数据\n *\n * @param {{=pkVarName}} 主键\n * @return 是否成功\n */\n boolean deleteById({{=pkDataType}} {{=pkVarName}});\n}","ServiceImpl":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkVarNameU = \"UndefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkVarNameU = it.func.camel(field.defKey,true);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n var mapperName = beanVarName+'Mapper';\n \n}}package {{=pkgName}}.service.impl;\n$blankline\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageImpl;\nimport org.springframework.data.domain.PageRequest;\nimport {{=pkgName}}.entity.{{=beanClass}};\nimport {{=pkgName}}.mapper.{{=beanClass}}Mapper;\nimport {{=pkgName}}.service.{{=serviceClass}};\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表服务实现类\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Service\npublic class {{=serviceClass}}Impl implements {{=serviceClass}}{\n @Autowired\n private {{=beanClass}}Mapper {{=mapperName}};\n $blankline\n /** \n * 通过ID查询单条数据 \n *\n * @param {{=pkVarName}} 主键\n * @return 实例对象\n */\n public {{=beanClass}} queryById({{=pkDataType}} {{=pkVarName}}){\n return {{=mapperName}}.queryById({{=pkVarName}});\n }\n $blankline\n /** \n * 分页查询\n *\n * @param {{=beanVarName}} 筛选条件\n * @param pageRequest 分页对象\n * @return 查询结果\n */\n public Page<{{=beanClass}}> paginQuery({{=beanClass}} {{=beanVarName}}, PageRequest pageRequest){\n long total = {{=mapperName}}.count({{=beanVarName}});\n return new PageImpl<>({{=mapperName}}.queryAllByLimit({{=beanVarName}}, pageRequest), pageRequest, total);\n }\n $blankline\n /** \n * 新增数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n public {{=beanClass}} insert({{=beanClass}} {{=beanVarName}}){\n {{=mapperName}}.insert({{=beanVarName}});\n return {{=beanVarName}};\n }\n $blankline\n /** \n * 更新数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n public {{=beanClass}} update({{=beanClass}} {{=beanVarName}}){\n {{=mapperName}}.update({{=beanVarName}});\n return queryById({{=beanVarName}}.get{{=pkVarNameU}}());\n }\n $blankline\n /** \n * 通过主键删除数据\n *\n * @param {{=pkVarName}} 主键\n * @return 是否成功\n */\n public boolean deleteById({{=pkDataType}} {{=pkVarName}}){\n int total = {{=mapperName}}.deleteById({{=pkVarName}});\n return total > 0;\n }\n}","Mapper":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}package {{=pkgName}}.mapper;\n$blankline\nimport java.util.List;\nimport org.apache.ibatis.annotations.Mapper;\nimport org.apache.ibatis.annotations.Param;\nimport org.springframework.data.domain.Pageable;\nimport {{=pkgName}}.entity.{{=beanClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表数据库访问层\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Mapper\npublic interface {{=beanClass}}Mapper{\n /** \n * 通过ID查询单条数据 \n *\n * @param {{=pkVarName}} 主键\n * @return 实例对象\n */\n {{=beanClass}} queryById({{=pkDataType}} {{=pkVarName}});\n \n /** \n * 分页查询指定行数据\n *\n * @param {{=beanVarName}} 查询条件\n * @param pageable 分页对象\n * @return 对象列表\n */\n List<{{=beanClass}}> queryAllByLimit({{=beanClass}} {{=beanVarName}}, @Param(\"pageable\") Pageable pageable);\n\n /** \n * 统计总行数\n *\n * @param {{=beanVarName}} 查询条件\n * @return 总行数\n */\n long count({{=beanClass}} {{=beanVarName}});\n\n /** \n * 新增数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 影响行数\n */\n int insert({{=beanClass}} {{=beanVarName}});\n\n /** \n * 批量新增数据\n *\n * @param entities List<{{=beanClass}}> 实例对象列表\n * @return 影响行数\n */\n int insertBatch(@Param(\"entities\") List<{{=beanClass}}> entities);\n \n /** \n * 批量新增或按主键更新数据\n *\n * @param entities List<{{=beanClass}}> 实例对象列表\n * @return 影响行数\n */\n int insertOrUpdateBatch(@Param(\"entities\") List<{{=beanClass}}> entities);\n \n /** \n * 更新数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 影响行数\n */\n int update({{=beanClass}} {{=beanVarName}});\n\n /** \n * 通过主键删除数据\n *\n * @param {{=pkVarName}} 主键\n * @return 影响行数\n */\n int deleteById({{=pkDataType}} {{=pkVarName}});\n}","Mapper.xml":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n var pkField = \"UNDEFINED_ID\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkField = field.defKey;\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}\n\n\n \n {{~it.entity.fields:field:index}}\n \n {{~}}\n \n $blankline\n \n \n $blankline\n \n \n $blankline\n \n \n $blankline\n \n \n insert into {{=it.entity.defKey}}({{=it.entity.fields.map(function(e,i){return e.defKey}).join(',')}})\n values ({{=it.entity.fields.map(function(e,i){return '#{'+it.func.camel(e.defKey,false)+'}'}).join(',')}})\n \n $blankline\n \n \n insert into {{=it.entity.defKey}}({{=it.entity.fields.map(function(e,i){return e.defKey}).join(',')}})\n values\n \n ({{=it.entity.fields.map(function(e,i){return '#{entity.'+it.func.camel(e.defKey,false)+'}'}).join(',')}})\n \n \n $blankline\n \n \n insert into {{=it.entity.defKey}}({{=it.entity.fields.map(function(e,i){return e.defKey}).join(',')}})\n values\n \n ({{=it.entity.fields.map(function(e,i){return '#{entity.'+it.func.camel(e.defKey,false)+'}'}).join(',')}})\n \n on duplicate key update\n {{=it.entity.fields.map(function(e,i){return e.defKey + '=values('+e.defKey+')'}).join(',\\n\\t\\t')}}\n \n $blankline\n \n \n update {{=it.entity.defKey}}\n \n {{~it.entity.fields:field:index}}\n \n {{=field.defKey}} = #{{{=it.func.camel(field.defKey,false)}}},\n \n {{~}}\n \n where {{=pkField}} = #{{{=pkVarName}}}\n \n $blankline\n \n \n delete from {{=it.entity.defKey}} where {{=pkField}} = #{{{=pkVarName}}}\n \n\n\n","Entity":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}package {{=pkgName}}.entity;\n$blankline\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport java.io.Serializable;\nimport java.util.Date;\n$blankline\n\n /**\n * {{=it.entity.defName}};{{=it.entity.comment}}\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@ApiModel(value = \"{{=it.entity.defName}}\",description = \"{{=it.entity.comment}}\")\npublic class {{=beanClass}} implements Serializable,Cloneable{\n{{~it.entity.fields:field:index}}\n /** {{=it.func.join(field.defName,field.comment,';')}} */\n @ApiModelProperty(name = \"{{=field.defName}}\",notes = \"{{=field.comment}}\")\n private {{=field.type}} {{=it.func.camel(field.defKey,false)}} ;\n{{~}}\n$blankline\n\n{{~it.entity.fields:field:index}}\n /** {{=it.func.join(field.defName,field.comment,';')}} */\n public {{=field.type}} get{{=it.func.camel(field.defKey,true)}}(){\n return this.{{=it.func.camel(field.defKey,false)}};\n }\n /** {{=it.func.join(field.defName,field.comment,';')}} */\n public void set{{=it.func.camel(field.defKey,true)}}({{=field.type}} {{= it.func.camel(field.defKey,false) }}){\n this.{{=it.func.camel(field.defKey,false)}}={{=it.func.camel(field.defKey,false)}};\n }\n{{~}}\n}"},{"applyFor":"A2EE7B4A-CE62-4290-B00C-B26C1BF18073","type":"appCode","Controller":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}package {{=pkgName}}.controller;\n$blankline\nimport java.util.List;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.PageImpl;\nimport org.springframework.data.domain.PageRequest;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.*;\nimport {{=pkgName}}.entity.{{=beanClass}};\nimport {{=pkgName}}.service.{{=serviceClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表控制层\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Api(tags = \"{{=it.entity.defName}}对象功能接口\")\n@RestController\n@RequestMapping(\"/{{=it.func.camel(it.entity.defKey,false)}}\")\npublic class {{=beanClass}}Controller{\n @Autowired\n private {{=serviceClass}} {{=serviceVarName}};\n $blankline\n /** \n * 通过ID查询单条数据 \n *\n * @param {{=pkVarName}} 主键\n * @return 实例对象\n */\n @ApiOperation(\"通过ID查询单条数据\")\n @GetMapping(\"{{{=it.func.camel(pkVarName,false)}}}\")\n public ResponseEntity<{{=beanClass}}> queryById({{=pkDataType}} {{=pkVarName}}){\n return ResponseEntity.ok({{=serviceVarName}}.queryById({{=pkVarName}}));\n }\n $blankline\n /** \n * 分页查询\n *\n * @param {{=beanVarName}} 筛选条件\n * @param pageRequest 分页对象\n * @return 查询结果\n */\n @ApiOperation(\"分页查询\")\n @GetMapping\n public ResponseEntity> paginQuery({{=beanClass}} {{=beanVarName}}, PageRequest pageRequest){\n //1.分页参数\n long current = pageRequest.getPageNumber();\n long size = pageRequest.getPageSize();\n\n //2.分页查询\n /*把Mybatis的分页对象做封装转换,MP的分页对象上有一些SQL敏感信息,还是通过spring的分页模型来封装数据吧*/\n com.baomidou.mybatisplus.extension.plugins.pagination.Page<{{=beanClass}}> pageResult = {{=serviceVarName}}.paginQuery({{=beanVarName}}, current,size);\n\n //3. 分页结果组装\n List<{{=beanClass}}> dataList = pageResult.getRecords();\n long total = pageResult.getTotal();\n PageImpl<{{=beanClass}}> retPage = new PageImpl<{{=beanClass}}>(dataList,pageRequest,total);\n return ResponseEntity.ok(retPage);\n }\n $blankline\n /** \n * 新增数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n @ApiOperation(\"新增数据\")\n @PostMapping\n public ResponseEntity<{{=beanClass}}> add({{=beanClass}} {{=beanVarName}}){\n return ResponseEntity.ok({{=serviceVarName}}.insert({{=beanVarName}}));\n }\n $blankline\n /** \n * 更新数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n @ApiOperation(\"更新数据\")\n @PutMapping\n public ResponseEntity<{{=beanClass}}> edit({{=beanClass}} {{=beanVarName}}){\n return ResponseEntity.ok({{=serviceVarName}}.update({{=beanVarName}}));\n }\n $blankline\n /** \n * 通过主键删除数据\n *\n * @param {{=pkVarName}} 主键\n * @return 是否成功\n */\n @ApiOperation(\"通过主键删除数据\")\n @DeleteMapping\n public ResponseEntity deleteById({{=pkDataType}} {{=pkVarName}}){\n return ResponseEntity.ok({{=serviceVarName}}.deleteById({{=pkVarName}}));\n }\n}","Service":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}package {{=pkgName}}.service;\n$blankline\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport {{=pkgName}}.entity.{{=beanClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表服务接口\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\npublic interface {{=serviceClass}}{\n $blankline\n /** \n * 通过ID查询单条数据 \n *\n * @param {{=pkVarName}} 主键\n * @return 实例对象\n */\n {{=beanClass}} queryById({{=pkDataType}} {{=pkVarName}});\n $blankline\n /**\n * 分页查询\n *\n * @param {{=beanVarName}} 筛选条件\n * @param current 当前页码\n * @param size 每页大小\n * @return\n */\n Page<{{=beanClass}}> paginQuery({{=beanClass}} {{=beanVarName}}, long current, long size);\n\n /** \n * 新增数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n {{=beanClass}} insert({{=beanClass}} {{=beanVarName}});\n\n \n /** \n * 更新数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n {{=beanClass}} update({{=beanClass}} {{=beanVarName}});\n\n /** \n * 通过主键删除数据\n *\n * @param {{=pkVarName}} 主键\n * @return 是否成功\n */\n boolean deleteById({{=pkDataType}} {{=pkVarName}});\n}","ServiceImpl":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkVarNameU = \"UndefinedId\";\n var pkFieldKey = \"UNDEFINED\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkFieldKey = field.defKey;\n pkVarName = it.func.camel(field.defKey,false);\n pkVarNameU = it.func.camel(field.defKey,true);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n var mapperName = beanVarName+'Mapper';\n \n}}package {{=pkgName}}.service.impl;\n$blankline\nimport cn.hutool.core.util.StrUtil;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;\nimport com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;\n\nimport {{=pkgName}}.entity.{{=beanClass}};\nimport {{=pkgName}}.mapper.{{=beanClass}}Mapper;\nimport {{=pkgName}}.service.{{=serviceClass}};\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表服务实现类\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Service\npublic class {{=serviceClass}}Impl implements {{=serviceClass}}{\n @Autowired\n private {{=beanClass}}Mapper {{=mapperName}};\n $blankline\n /** \n * 通过ID查询单条数据 \n *\n * @param {{=pkVarName}} 主键\n * @return 实例对象\n */\n public {{=beanClass}} queryById({{=pkDataType}} {{=pkVarName}}){\n return {{=mapperName}}.selectById({{=pkVarName}});\n }\n $blankline\n /**\n * 分页查询\n *\n * @param {{=beanVarName}} 筛选条件\n * @param current 当前页码\n * @param size 每页大小\n * @return\n */\n public Page<{{=beanClass}}> paginQuery({{=beanClass}} {{=beanVarName}}, long current, long size){\n //1. 构建动态查询条件\n LambdaQueryWrapper<{{=beanClass}}> queryWrapper = new LambdaQueryWrapper<>();\n {{~it.entity.fields.filter(function(e){return e[\"type\"]===\"String\"&&e.defKey !== pkFieldKey}):field:index}}\n if(StrUtil.isNotBlank({{=beanVarName}}.get{{=it.func.camel(field.defKey,true)}}())){\n queryWrapper.eq({{=beanClass}}::get{{=it.func.camel(field.defKey,true)}}, {{=beanVarName}}.get{{=it.func.camel(field.defKey,true)}}());\n }\n {{~}}\n\n //2. 执行分页查询\n Page<{{=beanClass}}> pagin = new Page<>(current , size , true);\n IPage<{{=beanClass}}> selectResult = {{=mapperName}}.selectByPage(pagin , queryWrapper);\n pagin.setPages(selectResult.getPages());\n pagin.setTotal(selectResult.getTotal());\n pagin.setRecords(selectResult.getRecords());\n\n //3. 返回结果\n return pagin;\n }\n $blankline\n /** \n * 新增数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n public {{=beanClass}} insert({{=beanClass}} {{=beanVarName}}){\n {{=mapperName}}.insert({{=beanVarName}});\n return {{=beanVarName}};\n }\n $blankline\n /** \n * 更新数据\n *\n * @param {{=beanVarName}} 实例对象\n * @return 实例对象\n */\n public {{=beanClass}} update({{=beanClass}} {{=beanVarName}}){\n //1. 根据条件动态更新\n LambdaUpdateChainWrapper<{{=beanClass}}> chainWrapper = new LambdaUpdateChainWrapper<{{=beanClass}}>({{=mapperName}});\n {{~it.entity.fields.filter(function(e){return e[\"type\"]===\"String\"&&e.defKey !== pkFieldKey}):field:index}}\n if(StrUtil.isNotBlank({{=beanVarName}}.get{{=it.func.camel(field.defKey,true)}}())){\n chainWrapper.eq({{=beanClass}}::get{{=it.func.camel(field.defKey,true)}}, {{=beanVarName}}.get{{=it.func.camel(field.defKey,true)}}());\n }\n {{~}}\n //2. 设置主键,并更新\n chainWrapper.set({{=beanClass}}::get{{=pkVarNameU}}, {{=beanVarName}}.get{{=pkVarNameU}}());\n boolean ret = chainWrapper.update();\n //3. 更新成功了,查询最最对象返回\n if(ret){\n return queryById({{=beanVarName}}.get{{=pkVarNameU}}());\n }else{\n return {{=beanVarName}};\n }\n }\n $blankline\n /** \n * 通过主键删除数据\n *\n * @param {{=pkVarName}} 主键\n * @return 是否成功\n */\n public boolean deleteById({{=pkDataType}} {{=pkVarName}}){\n int total = {{=mapperName}}.deleteById({{=pkVarName}});\n return total > 0;\n }\n}","Mapper":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}package {{=pkgName}}.mapper;\n$blankline\n\nimport com.baomidou.mybatisplus.core.conditions.Wrapper;\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.core.toolkit.Constants;\nimport org.apache.ibatis.annotations.Mapper;\nimport org.apache.ibatis.annotations.Param;\nimport {{=pkgName}}.entity.{{=beanClass}};\n$blankline\n\n /**\n * {{=it.entity.defName}};({{=it.entity.defKey}})表数据库访问层\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@Mapper\npublic interface {{=beanClass}}Mapper extends BaseMapper<{{=beanClass}}>{\n /** \n * 分页查询指定行数据\n *\n * @param page 分页参数\n * @param wrapper 动态查询条件\n * @return 分页对象列表\n */\n IPage<{{=beanClass}}> selectByPage(IPage<{{=beanClass}}> page , @Param(Constants.WRAPPER) Wrapper<{{=beanClass}}> wrapper);\n}","Mapper.xml":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n var pkField = \"UNDEFINED_ID\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkField = field.defKey;\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}\n\n$blankline\n\n\n \n\n\n","Entity":"{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n var serviceClass = beanClass+'Service';\n var serviceVarName= beanVarName+'Service';\n \n}}package {{=pkgName}}.entity;\n$blankline\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport com.baomidou.mybatisplus.annotation.TableName;\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport java.io.Serializable;\nimport java.util.Date;\n$blankline\n\n /**\n * {{=it.entity.defName}};{{=it.entity.comment}}\n * @author : http://www.chiner.pro\n * @date : {{=fullYear}}-{{=month}}-{{=days}}\n */\n@ApiModel(value = \"{{=it.entity.defName}}\",description = \"{{=it.entity.comment}}\")\n@TableName(\"{{=it.entity.defKey}}\")\npublic class {{=beanClass}} implements Serializable,Cloneable{\n{{~it.entity.fields:field:index}}\n /** {{=it.func.join(field.defName,field.comment,';')}} */\n @ApiModelProperty(name = \"{{=field.defName}}\",notes = \"{{=field.comment}}\")\n {{? field.primaryKey }}\n @TableId\n {{?}}\n private {{=field.type}} {{=it.func.camel(field.defKey,false)}} ;\n{{~}}\n$blankline\n\n{{~it.entity.fields:field:index}}\n /** {{=it.func.join(field.defName,field.comment,';')}} */\n public {{=field.type}} get{{=it.func.camel(field.defKey,true)}}(){\n return this.{{=it.func.camel(field.defKey,false)}};\n }\n /** {{=it.func.join(field.defName,field.comment,';')}} */\n public void set{{=it.func.camel(field.defKey,true)}}({{=field.type}} {{= it.func.camel(field.defKey,false) }}){\n this.{{=it.func.camel(field.defKey,false)}}={{=it.func.camel(field.defKey,false)}};\n }\n{{~}}\n}"},{"applyFor":"29D1CE08-4C35-4D2D-AAA9-23D93305B52E","type":"dbDDL","createTable":"DROP TABLE IF EXISTS {{=it.entity.defKey}};\nCREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n `{{=field.defKey}}` {{?field.autoIncrement}}BIGINT AUTO_INCREMENT{{??}}{{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}} {{= field.notNull ? 'NOT NULL' : '' }} {{= field.defaultValue ? it.func.join('DEFAULT',field.defaultValue,' ') : '' }}{{?}} COMMENT '{{=it.func.join(field.defName,field.comment,';')}}' {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i'+(after.defKey||'NULL'));\n }\n if(before.defName !== after.defName){\n ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n }\n if(before.comment !== after.comment){\n ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n }\n if(ret.length>0){\n return ' 基本信息:\\n\\t'+ret.join('\\n\\t');\n }\n return '';\n };\n \n function buildAddedDesc(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n \n for (let field of fieldAdded) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildRemovedDesc(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n \n for (let field of fieldRemoved) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildModifiedDesc(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n for (let field1 of fieldModified) { \n let row = [];\n let field = field1.before;\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n}}\n\n\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n{{? modifyEntities && modifyEntities.length > 0}}\n/* --------------- 修改表 --------------- */\n{{~ modifyEntities:entity}}\n{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n {{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n 修改字段:\n {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}{{?}}{{\n /*计算是否调整了属性*/\n let propAdded = entity.data.propAdded || [];\n let propRemoved = entity.data.propRemoved || [];\n let propModified = entity.data.propModified || [];\n let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n /*计算关联是否调整*/\n let refEntityAdd = entity.data.refEntityAdd || [];\n let refEntityRemoved = entity.data.refEntityRemoved || [];\n let relaArray = [];\n for (let rela of refEntityAdd) {\n relaArray.push('建立关联:'+rela.defKey+'['+rela.defName+']');\n }\n for (let rela of refEntityRemoved) {\n relaArray.push('解除关联:'+rela.defKey+'['+rela.defName+']');\n }\n /*索引是否修改过*/\n let indexChanged = entity.data.indexChanged;\n }}{{=indexChanged?'\\n\\t更改了索引':''}}{{=changed?'\\n\\t更改了属性':''}}{{=relaArray.length>0?('\\n\\t'+relaArray.join('\\n\\t')):''}}\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n 添加字段:\n{{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n{{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n 删除字段:\n{{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n{{?}}\n{{~}}\n{{?}}\n","update":"{{\n let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n let dropEntities = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n \n function baseChangedDDL(beforeAfter){\n if(beforeAfter == null){\n return '';\n }\n let ret = [];\n let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n if(before.defKey !== after.defKey){\n ret.push('ALTER TABLE '+before.defKey+' RENAME TO '+after.defKey);\n }\n let commentText = '';\n let commentChanged = false;\n if(before.defName !== after.defName){\n commentText = after.defName;\n commentChanged = true;\n }\n if(before.comment !== after.comment){\n commentChanged = true;\n if(commentText){\n commentText = (commentText+ ';'+after.comment)\n }else{\n commentText = after.comment\n }\n }\n if(commentChanged){\n ret.push('ALTER TABLE '+after.defKey+' COMMENT \\''+commentText+'\\'');\n }\n let baseText = '-- 基本信息:\\n';\n return baseText+ret.join(';\\n')+';';\n };\n \n function buildAddedDDL(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n if(fieldAdded.length == 0){\n return '';\n }\n \n let firstDDL = 'ALTER TABLE '+entity.data.baseInfo.defKey;\n for (let field of fieldAdded) { \n let ddlItem = 'ADD COLUMN `'+field.defKey+'` '+field.dbType;\n /*处理数据类型长度*/\n if(field.len>0){\n ddlItem += ('('+field.len);\n if(parseInt(field.scale)>0){\n ddlItem += (','+field.scale);\n }\n ddlItem += ')';\n }\n if(field.notNull){\n ddlItem += ' NOT NULL';\n }\n if(field.autoIncrement){\n ddlItem += ' AUTO_INCREMENT';\n }\n if(field.defaultValue){\n ddlItem += (' DEFAULT ' + field.defaultValue);\n }\n ddlItem += (' COMMENT \\''+field.defName+';'+field.comment+'\\'');\n \n if(field.index>0 && field.afterFieldKey){\n ddlItem += (' AFTER '+field.afterFieldKey);\n }\n ret.push(ddlItem);\n }\n return firstDDL+'\\n'+ret.join(',\\n');\n };\n \n function buildRemovedDDL(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n if(fieldRemoved.length == 0){\n return '';\n }\n \n let firstDDL = 'ALTER TABLE '+entity.data.baseInfo.defKey;\n for (let field of fieldRemoved) { \n ret.push('DROP '+field.defKey);\n }\n return firstDDL+'\\n'+ret.join(',\\n');\n };\n \n function buildModifiedDDL(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n let firstDDL = 'ALTER TABLE '+entity.data.baseInfo.defKey;\n for (let field of fieldModified) { \n let changeDDL = '';\n let before = field.before || {};\n let after = field.after || {};\n if(before.defKey === after.defKey){\n changeDDL += (' MODIFY COLUMN `'+after.defKey+'`');\n }else{\n changeDDL += (' CHANGE COLUMN `'+before.defKey+'` `'+after.defKey+'`');\n }\n changeDDL += (' '+after.dbType);\n if(after.len>0){\n changeDDL += ('('+after.len);\n if(parseInt(after.scale)>0){\n changeDDL += (','+after.scale);\n }\n changeDDL += ')';\n }\n if(after.notNull){\n changeDDL += ' NOT NULL';\n }\n let defaultValue = '';\n if(after.defaultValue != null && after.defaultValue.length>0){\n defaultValue = (after.defaultValue);\n }else{\n defaultValue = 'NULL';\n }\n if(defaultValue != 'NULL'){\n changeDDL += (' DEFAULT ' + defaultValue);\n }\n\n let comment = after.defName;\n if(after.comment){\n comment = comment + ';' + (after.comment||'');\n }\n if(comment){\n changeDDL += (' COMMENT \\''+comment+'\\';');\n }\n \n ret.push(firstDDL+' '+changeDDL);\n }\n return ret;\n };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表:{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段:\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段:\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段:\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"},{"applyFor":"A4E23CB7-BB01-4BD1-9F71-F73F3E15A542","type":"dbDDL","createTable":"CREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n {{=field.defKey}} {{?field.autoIncrement}}NUMBER(11) generated by default as IDENTITY, {{??}}{{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= field.notNull ? ' NOT NULL' : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}{{?}}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i'+(after.defKey||'NULL'));\n }\n if(before.defName !== after.defName){\n ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n }\n if(before.comment !== after.comment){\n ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n }\n if(ret.length>0){\n return ' 基本信息:\\n\\t'+ret.join('\\n\\t');\n }\n return '';\n };\n \n function buildAddedDesc(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n \n for (let field of fieldAdded) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildRemovedDesc(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n \n for (let field of fieldRemoved) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildModifiedDesc(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n for (let field1 of fieldModified) { \n let row = [];\n let field = field1.before;\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* -------------------------------------------------- */\n创建表:\n{{~ createEntities:entity}}\n {{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* -------------------------------------------------- */\n删除表:\n{{~ dropEntities:entity}}\n {{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* -------------------------------------------------- */\n修改表:{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n {{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n 添加字段:\n {{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n {{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n 删除字段:\n {{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n {{?}}{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n 修改字段:\n {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}\n {{?}}{{\n /*计算是否调整了属性*/\n let propAdded = entity.data.propAdded || [];\n let propRemoved = entity.data.propRemoved || [];\n let propModified = entity.data.propModified || [];\n let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n /*计算关联是否调整*/\n let refEntityAdd = entity.data.refEntityAdd || [];\n let refEntityRemoved = entity.data.refEntityRemoved || [];\n let relaArray = [];\n for (let rela of refEntityAdd) {\n relaArray.push('\\n\\t建立关联:'+rela.defKey+'['+rela.defName+']');\n }\n for (let rela of refEntityRemoved) {\n relaArray.push('\\n\\t解除关联:'+rela.defKey+'['+rela.defName+']');\n }\n /*索引是否修改过*/\n let indexChanged = entity.data.indexChanged;\n }}\n{{=indexChanged?'\\n\\t更改了索引':''}}\n{{=changed?'\\n\\t更改了属性':''}}\n{{=relaArray.length>0?relaArray.join(''):''}}\n{{~}}\n{{?}}","update":"{{\n let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n let dropEntities = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n \n function baseChangedDDL(beforeAfter){\n if(beforeAfter == null){\n return '';\n }\n let ret = [];\n let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n if(before.defKey !== after.defKey){\n ret.push(`ALTER TABLE ${before.defKey} RENAME TO ${after.defKey}`);\n }\n let commentText = '';\n let commentChanged = false;\n if(before.defName !== after.defName){\n commentText = after.defName;\n commentChanged = true;\n }\n if(before.comment !== after.comment){\n commentChanged = true;\n if(commentText){\n commentText = (commentText+ ';'+after.comment)\n }else{\n commentText = after.comment\n }\n }\n if(commentChanged){\n let myText = `COMMENT ON TABLE ${after.defKey} IS '${commentText}'`;\n ret.push(myText);\n }\n let baseText = '-- 基本信息:\\n';\n return baseText+ret.join(';\\n')+';';\n };\n \n function buildAddedDDL(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n if(fieldAdded.length == 0){\n return '';\n }\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldAdded) { \n let ddlItem = `ADD (${field.defKey} ${field.dbType}`;\n /*处理数据类型长度*/\n if(field.len>0){\n ddlItem += ('('+field.len);\n if(parseInt(field.scale)>0){\n ddlItem += (','+field.scale);\n }\n ddlItem += ')';\n }\n let defaultValue = field.defaultValue;\n defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n if(defaultValue.length>0){\n ddlItem += (' DEFAULT ' + defaultValue);\n }\n if(field.notNull){\n ddlItem += ' NOT NULL';\n }\n ddlItem += ')';\n ret.push(`${firstDDL} ${ddlItem}`);\n \n /*处理字段注释*/\n let fieldComments = [];\n if(field.defName != null &&field.defName.length>0){\n fieldComments.push(field.defName);\n }\n if(field.comment != null &&field.comment.length>0){\n fieldComments.push(field.comment);\n }\n let commentText = fieldComments.join(';');\n if(commentText != null && commentText.length > 0){\n let commentDDL = `COMMENT ON COLUMN ${entity.data.baseInfo.defKey}.${field.defKey} IS '${commentText}'`;\n ret.push(commentDDL);\n }\n }\n return '\\n'+ret.join(';\\n');\n };\n \n function buildRemovedDDL(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n if(fieldRemoved.length == 0){\n return '';\n }\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldRemoved) { \n ret.push(`${firstDDL} DROP COLUMN ${field.defKey}`);\n }\n return '\\n'+ret.join(';\\n');\n };\n \n function buildModifiedDDL(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldModified) { \n let changeDDL = '';\n let before = field.before || {};\n let after = field.after || {};\n if(before.defKey !== after.defKey){\n let renameText = `ALTER TABLE ${entity.data.baseInfo.defKey} RENAME COLUMN ${before.defKey} TO ${after.defKey};`;\n ret.push(renameText);\n }\n /*如果没有变化,则不生成变更语句*/\n if(before.dbType === after.dbType \n && before['len'] === after['len'] \n && before.scale === after.scale\n && before.primaryKey === after.primaryKey\n && before.notNull === after.notNull\n && before.autoIncrement === after.autoIncrement\n && before.defaultValue === after.defaultValue){\n continue;\n }\n changeDDL += ('MODIFY ('+after.defKey+'');\n changeDDL += (' '+after.dbType);\n if(after.len>0){\n changeDDL += ('('+after.len);\n if(parseInt(after.scale)>0){\n changeDDL += (','+after.scale);\n }\n changeDDL += ')';\n }\n let defaultValue = after.defaultValue;\n defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n if(defaultValue.length>0){\n changeDDL += (' DEFAULT ' + defaultValue);\n }\n \n if(after.notNull){\n changeDDL += ' NOT NULL';\n }\n changeDDL += ')';\n ret.push(`${firstDDL} ${changeDDL};`);\n }\n return ret;\n };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表:{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段:\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段:\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段:\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"},{"applyFor":"BFC87171-C74F-494A-B7C2-76B9C55FACC9","type":"dbDDL","createTable":"IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[{{=it.entity.defKey}}]') AND type in (N'U')) DROP TABLE [dbo].[{{=it.entity.defKey}}];\n\nCREATE TABLE [dbo].[{{=it.entity.defKey}}](\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n {{=field.defKey}} {{?field.autoIncrement}}INT IDENTITY(1,1) {{??}}{{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}{{?}}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i'+(after.defKey||'NULL'));\n }\n if(before.defName !== after.defName){\n ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n }\n if(before.comment !== after.comment){\n ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n }\n if(ret.length>0){\n return ' 基本信息:\\n\\t'+ret.join('\\n\\t');\n }\n return '';\n };\n \n function buildAddedDesc(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n \n for (let field of fieldAdded) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildRemovedDesc(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n \n for (let field of fieldRemoved) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildModifiedDesc(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n for (let field1 of fieldModified) { \n let row = [];\n let field = field1.before;\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n}}\n\n\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n{{? modifyEntities && modifyEntities.length > 0}}\n/* --------------- 修改表 --------------- */\n{{~ modifyEntities:entity}}\n{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n {{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n 修改字段:\n {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}{{?}}{{\n /*计算是否调整了属性*/\n let propAdded = entity.data.propAdded || [];\n let propRemoved = entity.data.propRemoved || [];\n let propModified = entity.data.propModified || [];\n let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n /*计算关联是否调整*/\n let refEntityAdd = entity.data.refEntityAdd || [];\n let refEntityRemoved = entity.data.refEntityRemoved || [];\n let relaArray = [];\n for (let rela of refEntityAdd) {\n relaArray.push('建立关联:'+rela.defKey+'['+rela.defName+']');\n }\n for (let rela of refEntityRemoved) {\n relaArray.push('解除关联:'+rela.defKey+'['+rela.defName+']');\n }\n /*索引是否修改过*/\n let indexChanged = entity.data.indexChanged;\n }}{{=indexChanged?'\\n\\t更改了索引':''}}{{=changed?'\\n\\t更改了属性':''}}{{=relaArray.length>0?('\\n\\t'+relaArray.join('\\n\\t')):''}}\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n 添加字段:\n{{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n{{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n 删除字段:\n{{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n{{?}}\n{{~}}\n{{?}}","update":"{{\n let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n let dropEntities = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n \n function baseChangedDDL(beforeAfter){\n if(beforeAfter == null){\n return '';\n }\n let ret = [];\n let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n if(before.defKey !== after.defKey){\n ret.push(`EXEC sp_rename '${before.defKey}','${after.defKey}'`);\n }\n let commentText = '';\n let commentChanged = false;\n if(before.defName !== after.defName){\n commentText = after.defName;\n commentChanged = true;\n }\n if(before.comment !== after.comment){\n commentChanged = true;\n if(commentText){\n commentText = (commentText+ ';'+after.comment)\n }else{\n commentText = after.comment\n }\n }\n if(commentChanged){\n let myText = `IF ((SELECT COUNT(*) FROM ::fn_listextendedproperty('MS_Description','SCHEMA', 'dbo','TABLE', '${after.defKey}', NULL, NULL)) > 0)\n \\n\\tEXEC sp_updateextendedproperty 'MS_Description', '${commentText}','SCHEMA', 'dbo','TABLE', '${after.defKey}'\n \\nELSE\n \\n\\tEXEC sp_addextendedproperty 'MS_Description', '${commentText}', 'SCHEMA', 'dbo','TABLE', '${after.defKey}'\n `;\n ret.push(myText);\n /*ret.push('ALTER TABLE '+after.defKey+' COMMENT \\''+commentText+'\\'');*/\n }\n let baseText = '-- 基本信息:\\n';\n return baseText+ret.join(';\\n')+';';\n };\n \n function buildAddedDDL(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n if(fieldAdded.length == 0){\n return '';\n }\n \n let firstDDL = `ALTER TABLE [dbo].[${entity.data.baseInfo.defKey}]`;\n for (let field of fieldAdded) { \n let ddlItem = `ADD [${field.defKey}] ${field.dbType}`;\n /*处理数据类型长度*/\n if(field.len>0){\n ddlItem += ('('+field.len);\n if(parseInt(field.scale)>0){\n ddlItem += (','+field.scale);\n }\n ddlItem += ')';\n }\n let defaultValue = field.defaultValue;\n defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n if(defaultValue.length>0){\n ddlItem += (' DEFAULT ' + defaultValue);\n }\n if(field.notNull){\n ddlItem += ' NOT NULL';\n }\n ret.push(`${firstDDL} ${ddlItem}`);\n \n /*处理字段注释*/\n let fieldComments = [];\n if(field.defName != null &&field.defName.length>0){\n fieldComments.push(field.defName);\n }\n if(field.comment != null &&field.comment.length>0){\n fieldComments.push(field.comment);\n }\n let commentText = fieldComments.join(';');\n if(commentText != null && commentText.length > 0){\n let commentDDL = `EXEC sp_addextendedproperty 'MS_Description', N'${commentText}','SCHEMA', N'dbo','TABLE', N'${entity.data.baseInfo.defKey}','COLUMN', N'${field.defKey}'`;\n ret.push(commentDDL);\n }\n }\n return '\\n'+ret.join(';\\n');\n };\n \n function buildRemovedDDL(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n if(fieldRemoved.length == 0){\n return '';\n }\n \n let firstDDL = `ALTER TABLE [dbo].[${entity.data.baseInfo.defKey}]`;\n for (let field of fieldRemoved) { \n ret.push(`${firstDDL} DROP COLUMN [${field.defKey}]`);\n }\n return '\\n'+ret.join(';\\n');\n };\n \n function buildModifiedDDL(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n let firstDDL = `ALTER TABLE [dbo].[${entity.data.baseInfo.defKey}]`;\n for (let field of fieldModified) { \n let changeDDL = '';\n let before = field.before || {};\n let after = field.after || {};\n if(before.defKey === after.defKey){\n changeDDL += (' ALTER COLUMN ['+after.defKey+']');\n }else{\n let renameText = `EXEC sp_rename '[dbo].[${entity.data.baseInfo.defKey}].[${before.defKey}]','${after.defKey}','COLUMN';`;\n ret.push(renameText);\n continue;\n }\n changeDDL += (' '+after.dbType);\n if(after.len>0){\n changeDDL += ('('+after.len);\n if(parseInt(after.scale)>0){\n changeDDL += (','+after.scale);\n }\n changeDDL += ')';\n }\n let defaultValue = after.defaultValue;\n defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n if(defaultValue.length>0){\n changeDDL += (' DEFAULT ' + defaultValue);\n }\n \n if(after.notNull){\n changeDDL += ' NOT NULL';\n }\n ret.push(`${firstDDL} ${changeDDL};`);\n }\n return ret;\n };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表:{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段:\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段:\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段:\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"},{"applyFor":"DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022","type":"dbDDL","createTable":"DROP TABLE IF EXISTS {{=it.entity.defKey}};\nCREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n {{=field.defKey}} {{? field.autoIncrement}}SERIAL{{??}}{{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i'+(after.defKey||'NULL'));\n }\n if(before.defName !== after.defName){\n ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n }\n if(before.comment !== after.comment){\n ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n }\n if(ret.length>0){\n return ' 基本信息:\\n\\t'+ret.join('\\n\\t');\n }\n return '';\n };\n \n function buildAddedDesc(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n \n for (let field of fieldAdded) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildRemovedDesc(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n \n for (let field of fieldRemoved) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildModifiedDesc(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n for (let field1 of fieldModified) { \n let row = [];\n let field = field1.before;\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n}}\n\n\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n{{? modifyEntities && modifyEntities.length > 0}}\n/* --------------- 修改表 --------------- */\n{{~ modifyEntities:entity}}\n{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n {{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n 修改字段:\n {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}{{?}}{{\n /*计算是否调整了属性*/\n let propAdded = entity.data.propAdded || [];\n let propRemoved = entity.data.propRemoved || [];\n let propModified = entity.data.propModified || [];\n let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n /*计算关联是否调整*/\n let refEntityAdd = entity.data.refEntityAdd || [];\n let refEntityRemoved = entity.data.refEntityRemoved || [];\n let relaArray = [];\n for (let rela of refEntityAdd) {\n relaArray.push('建立关联:'+rela.defKey+'['+rela.defName+']');\n }\n for (let rela of refEntityRemoved) {\n relaArray.push('解除关联:'+rela.defKey+'['+rela.defName+']');\n }\n /*索引是否修改过*/\n let indexChanged = entity.data.indexChanged;\n }}{{=indexChanged?'\\n\\t更改了索引':''}}{{=changed?'\\n\\t更改了属性':''}}{{=relaArray.length>0?('\\n\\t'+relaArray.join('\\n\\t')):''}}\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n 添加字段:\n{{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n{{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n 删除字段:\n{{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n{{?}}\n{{~}}\n{{?}}","update":"{{\n let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n let dropEntities = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n \n function baseChangedDDL(beforeAfter){\n if(beforeAfter == null){\n return '';\n }\n let ret = [];\n let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n if(before.defKey !== after.defKey){\n ret.push(`ALTER TABLE ${before.defKey} RENAME TO ${after.defKey}`);\n }\n let commentText = '';\n let commentChanged = false;\n if(before.defName !== after.defName){\n commentText = after.defName;\n commentChanged = true;\n }\n if(before.comment !== after.comment){\n commentChanged = true;\n if(commentText){\n commentText = (commentText+ ';'+after.comment)\n }else{\n commentText = after.comment\n }\n }\n if(commentChanged){\n let myText = `COMMENT ON TABLE ${after.defKey} IS '${commentText}'`;\n ret.push(myText);\n }\n let baseText = '-- 基本信息:\\n';\n return baseText+ret.join(';\\n')+';';\n };\n \n function buildAddedDDL(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n if(fieldAdded.length == 0){\n return '';\n }\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldAdded) { \n let ddlItem = `ADD COLUMN ${field.defKey} ${field.dbType}`;\n /*处理数据类型长度*/\n if(field.len>0){\n ddlItem += ('('+field.len);\n if(parseInt(field.scale)>0){\n ddlItem += (','+field.scale);\n }\n ddlItem += ')';\n }\n if(field.notNull){\n ddlItem += ' NOT NULL';\n } \n let defaultValue = field.defaultValue;\n defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n if(defaultValue.length>0){\n ddlItem += (' DEFAULT ' + defaultValue);\n }\n\n ret.push(`${firstDDL} ${ddlItem}`);\n \n /*处理字段注释*/\n let fieldComments = [];\n if(field.defName != null &&field.defName.length>0){\n fieldComments.push(field.defName);\n }\n if(field.comment != null &&field.comment.length>0){\n fieldComments.push(field.comment);\n }\n let commentText = fieldComments.join(';');\n if(commentText != null && commentText.length > 0){\n let commentDDL = `COMMENT ON COLUMN ${entity.data.baseInfo.defKey}.${field.defKey} IS '${commentText}'`;\n ret.push(commentDDL);\n }\n }\n return '\\n'+ret.join(';\\n');\n };\n \n function buildRemovedDDL(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n if(fieldRemoved.length == 0){\n return '';\n }\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldRemoved) { \n ret.push(`${firstDDL} DROP COLUMN ${field.defKey}`);\n }\n return '\\n'+ret.join(';\\n');\n };\n \n function buildModifiedDDL(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldModified) { \n let before = field.before || {};\n let after = field.after || {};\n if(before.defKey !== after.defKey){\n let renameText = `ALTER TABLE ${entity.data.baseInfo.defKey} RENAME COLUMN ${before.defKey} TO ${after.defKey};`;\n ret.push(renameText);\n }\n /*如果没有变化,则不生成变更语句*/\n if(before.dbType === after.dbType \n && before['len'] === after['len'] \n && before.scale === after.scale\n && before.primaryKey === after.primaryKey\n && before.notNull === after.notNull\n && before.autoIncrement === after.autoIncrement\n && before.defaultValue === after.defaultValue){\n continue;\n }\n if(before.dbType !== after.dbType || before.len !== after.len || before.scale !== after.scale){\n let dbTypeDDL = `ALTER TABLE ${entity.data.baseInfo.defKey} ALTER COLUMN ${after.defKey} TYPE ${before.dbType}`;\n if(after.len>0){\n dbTypeDDL += ('('+after.len);\n if(parseInt(after.scale)>0){\n dbTypeDDL += (','+after.scale);\n }\n dbTypeDDL += ')';\n }\n ret.push(dbTypeDDL+';');\n }\n \n if(before.defaultValue !== after.defaultValue){\n let defaultDDL = '';\n let defaultValue = after.defaultValue;\n defaultValue = (defaultValue==null)?\"NULL\":(\"\"+defaultValue);\n if(defaultValue.length>0){\n defaultDDL += ('SET DEFAULT ' + defaultValue);\n }\n let defaultTpl = `ALTER TABLE ${entity.data.baseInfo.defKey} ALTER COLUMN ${defaultDDL};`;\n ret.push(defaultTpl);\n }\n \n if(before.notNull !== after.notNull){\n let notNullDDL= 'SET NULL';\n if(after.notNull){\n let notNullDDL= 'SET NOT NULL';\n }\n let notNullTpl = `ALTER TABLE ${entity.data.baseInfo.defKey} ALTER COLUMN ${notNullDDL};`;\n ret.push(notNullTpl);\n }\n }\n return ret;\n };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表:{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段:\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n-- 索引重建\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段:\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段:\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"},{"type":"dbDDL","applyFor":"89504F5D-94BF-4C9E-8B2E-44F37305FED5","createTable":"CREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n {{=field.defKey}} {{?field.autoIncrement}}DECIMAL(17) GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1),{{??}}{{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}{{?}}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{?}}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.autoIncrement ? ' AUTO_INCREMENT' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}} {{= field.notNull ? 'NOT NULL' : '' }} {{= field.autoIncrement ? 'AUTOINCREMENT' : '' }} {{= field.defaultValue ? it.func.join('DEFAULT',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }} --{{=it.func.join(field.defName,field.comment,';')}}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i0只有为decimal类型或double类型时才保留长度和小数的位数*/\n{{~it.entity.fields:field:index}}\n {{=it.func.lowerCase(field.defKey)}} {{=it.func.lowerCase(field.type)=='varchar'||it.func.lowerCase(field.type)=='char'||it.func.lowerCase(field.type)=='text'||it.func.lowerCase(field.type)=='date'||it.func.lowerCase(field.type)=='datetime' ? 'string':it.func.lowerCase(field.type)=='tinyint unsigned'||it.func.lowerCase(field.type)=='bit'||it.func.lowerCase(field.type)=='integer'||it.func.lowerCase(field.type)=='tinyint'||it.func.lowerCase(field.type)=='smallint'||it.func.lowerCase(field.type)=='mediumint' ? 'int':it.func.lowerCase(field.type)=='int unsigned' ? 'bigint':it.func.lowerCase(field.type)}}{{?field.len>0&&(it.func.lowerCase(field.type)=='decimal'||it.func.lowerCase(field.type)=='double')}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{=')'}}{{?}}{{?}} comment '{{=it.func.join(field.defName,field.comment,'')}}' {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n{{?}}\n)\n{{\n let partitionedBy = it.entity.properties['partitioned by'];\n partitionedBy = partitionedBy?partitionedBy:'请在扩展属性中配置[partitioned by]属性';\n}}\ncomment '{{=it.func.join(it.entity.defName,';') }}'\n/**是否分区表,分区字段名和字段注释自定义*/\n[partitioned by {{=partitionedBy}}]\n/**文件存储格式自定义*/\n[stored as orc]\n/**hdfs上的地址自定义*/\n[location xxx]\n;","createView":"","deleteTable":"","createIndex":"","deleteIndex":"","message":"","update":""},{"applyFor":"B91D99E0-9B7C-416C-8737-B760957DAF09","type":"appCode","content":"{{\n var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1<10?\"0\"+today.getMonth():today.getMonth();\n var days=today.getDate()<10?\"0\"+today.getDate():today.getDate();\n var hours = today.getHours()<10?\"0\"+today.getHours():today.getHours(); \n\tvar minutes = today.getMinutes()<10?\"0\"+today.getMinutes():today.getMinutes(); \n\tvar seconds = today.getSeconds()<10?\"0\"+today.getSeconds():today.getSeconds(); \n}}\n// Package models {{=it.func.join(it.entity.defName,it.entity.comment,',')}}\n// author : http://www.liyang.love\n// date : {{=fullYear}}-{{=month}}-{{=days}} {{=hours}}:{{=minutes}}\n// desc : {{=it.func.join(it.entity.defName,it.entity.comment,',')}}\npackage models\n\n$blankline\n\n// {{=it.func.camel(it.entity.defKey,true) }} {{=it.func.join(it.entity.defName,it.entity.comment,',')}}。\n// 说明:{{=it.entity.comment}}\n// 表名:{{=it.entity.defKey}}\n// group: {{=it.func.camel(it.entity.defKey,true) }}\n// obsolete:\n// appliesto:go 1.8+;\n// namespace:hongmouer.his.models.{{=it.func.camel(it.entity.defKey,true) }}\n// assembly: hongmouer.his.models.go\n// class:HongMouer.HIS.Models.{{=it.func.camel(it.entity.defKey,true) }}\n// version:{{=fullYear}}-{{=month}}-{{=days}} {{=hours}}:{{=minutes}}\ntype {{=it.func.camel(it.entity.defKey,true) }} struct {\n {{~it.entity.fields:field:index}}\n {{=formatGoLang(it.func.camel(field.defKey,true),null,field,it.entity.fields,null,1)}} {{=formatGoLang(field.type,\"type\",field,it.entity.fields,10,3)}} `gorm:\"column:{{=field.primaryKey?\"primaryKey;\":\"\"}}{{=field.defKey}}\" json:\"{{=it.func.camel(field.defKey,true)}}\"` {{=formatGoLang(\"gorm:column:\"+field.defKey+\" json:\"+it.func.camel(field.defKey,true),null,field,it.entity.fields,null,2)}} //type:{{=formatGoLang(field.type,\"type\",field,it.entity.fields,null,3)}} comment:{{=formatGoLang(it.func.join(field.defName,field.comment,';'),\"defName\",field,it.entity.fields,null,4)}} version:{{=fullYear}}-{{=month}}-{{=days}} {{=hours}}:{{=minutes}}\n {{~}}\n}\n\n\n$blankline\n// TableName 表名:{{=it.entity.defKey}},{{=it.entity.defName}}。\n// 说明:{{=it.entity.comment}}\nfunc (ZentaoUserInfo) TableName() string {\n\treturn \"{{=it.entity.defKey}}\"\n}\n\n{{\n\nfunction formatGoLang(str, fieldName, field, fileds, emptLength, isFiled) {\n var maxLength = 0;\n\n if (isFiled == 1) {\n for (var i = 0; i < fileds.length; i++) {\n if (getBlength(it.func.camel(fileds[i].defKey, true)) > maxLength) {\n maxLength = getBlength(it.func.camel(fileds[i].defKey, true)) + 2;\n }\n }\n } else if (isFiled == 2) {\n for (var i = 0; i < fileds.length; i++) {\n var newStr = \"gorm:column:\" + fileds[i].defKey + \" json:\" + it.func.camel(fileds[i].defKey, true);\n if (getBlength(newStr) > maxLength) {\n maxLength = getBlength(newStr) + 2;\n }\n }\n var empt = \"\";\n var strLength = getBlength(str);\n if (field.primaryKey) {\n strLength += getBlength(\"primaryKey;\");\n }\n for (var j = 0; j < maxLength - strLength; j++) {\n empt += ' ';\n }\n return empt;\n } else if (isFiled == 3) {\n /*获取某个字段的最大长度*/\n for (var i = 0; i < fileds.length; i++) {\n var newStr = eval(\"fileds[\" + i + \"].\" + fieldName);\n if (getBlength(newStr) > maxLength) {\n maxLength = getBlength(newStr) + 1;\n }\n }\n } else if (isFiled == 4) {\n /*获取某个字段的最大长度*/\n for (var i = 0; i < fileds.length; i++) {\n var newStr = fileds[i].comment + \";\" + fileds[i].defName;\n if (getBlength(newStr) > maxLength) {\n maxLength = getBlength(newStr) + 1;\n }\n }\n }\n else {\n maxLength = emptLength;\n }\n\n var strLength = getBlength(str);\n for (var j = 0; j < maxLength - strLength; j++) {\n str += ' ';\n }\n return str;\n}\n\nfunction getBlength(str) {\n var n = 0;\n for (var i = str.length; i--;) {\n n += str.charCodeAt(i) > 255 ? 2 : 1;\n }\n return n;\n} \n\n}}"},{"applyFor":"BDF457FD-9F98-4AC3-A705-7587B00A3BAB","type":"appCode","struct":"use chrono::{DateTime, Local};\nuse serde::{Deserialize, Serialize};\n$blankline\n/// {{=it.entity.defName}}\n#[derive(Serialize, Deserialize, Debug, Clone)]\n{{ var today=new Date();\n var fullYear=today.getFullYear();\n var month=today.getMonth() + 1;\n var days=today.getDate();\n \n var pkVarName = \"undefinedId\";\n var pkDataType = \"String\";\n it.entity.fields.forEach(function(field){\n if(field.primaryKey){\n pkVarName = it.func.camel(field.defKey,false);\n pkDataType = field[\"type\"];\n return;\n }\n });\n \n var pkgName = it.entity.env.base.nameSpace;\n var beanClass = it.entity.env.base.codeRoot;\n var beanVarName = beanClass.charAt(0).toLowerCase()+beanClass.slice(1);\n \n}}\npub struct {{=beanClass}} {\n {{~it.entity.fields:field:index}}\n {{\n let fieldDateType = field.type;\n if(!field.notNull){\n fieldDateType = 'Option<'+fieldDateType+'>';\n }\n }}/// {{=field.defName}}\n pub {{=it.func.camel(field.defKey,false)}}: {{=fieldDateType}},\n {{~}}\n}\n"},{"applyFor":"56F4B55B-F0B8-4049-9E6B-50B95C1D793A","type":"dbDDL","createTable":"CREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n {{=field.defKey}} {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.autoIncrement ? '' : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i'+(after.defKey||'NULL'));\n }\n if(before.defName !== after.defName){\n ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n }\n if(before.comment !== after.comment){\n ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n }\n if(ret.length>0){\n return ' 基本信息:\\n\\t'+ret.join('\\n\\t');\n }\n return '';\n };\n \n function buildAddedDesc(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n \n for (let field of fieldAdded) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildRemovedDesc(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n \n for (let field of fieldRemoved) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildModifiedDesc(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n for (let field1 of fieldModified) { \n let row = [];\n let field = field1.before;\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* -------------------------------------------------- */\n创建表:\n{{~ createEntities:entity}}\n {{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* -------------------------------------------------- */\n删除表:\n{{~ dropEntities:entity}}\n {{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* -------------------------------------------------- */\n修改表:{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n {{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n 添加字段:\n {{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n {{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n 删除字段:\n {{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n {{?}}{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n 修改字段:\n {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}\n {{?}}{{\n /*计算是否调整了属性*/\n let propAdded = entity.data.propAdded || [];\n let propRemoved = entity.data.propRemoved || [];\n let propModified = entity.data.propModified || [];\n let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n /*计算关联是否调整*/\n let refEntityAdd = entity.data.refEntityAdd || [];\n let refEntityRemoved = entity.data.refEntityRemoved || [];\n let relaArray = [];\n for (let rela of refEntityAdd) {\n relaArray.push('\\n\\t建立关联:'+rela.defKey+'['+rela.defName+']');\n }\n for (let rela of refEntityRemoved) {\n relaArray.push('\\n\\t解除关联:'+rela.defKey+'['+rela.defName+']');\n }\n /*索引是否修改过*/\n let indexChanged = entity.data.indexChanged;\n }}\n{{=indexChanged?'\\n\\t更改了索引':''}}\n{{=changed?'\\n\\t更改了属性':''}}\n{{=relaArray.length>0?relaArray.join(''):''}}\n{{~}}\n{{?}}","update":"{{\n let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n let dropEntities = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n \n function baseChangedDDL(beforeAfter){\n if(beforeAfter == null){\n return '';\n }\n let ret = [];\n let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n if(before.defKey !== after.defKey){\n ret.push(`ALTER TABLE ${before.defKey} RENAME TO ${after.defKey}`);\n }\n let commentText = '';\n let commentChanged = false;\n if(before.defName !== after.defName){\n commentText = after.defName;\n commentChanged = true;\n }\n if(before.comment !== after.comment){\n commentChanged = true;\n if(commentText){\n commentText = (commentText+ ';'+after.comment)\n }else{\n commentText = after.comment\n }\n }\n if(commentChanged){\n let myText = `COMMENT ON TABLE ${after.defKey} IS '${commentText}'`;\n ret.push(myText);\n }\n let baseText = '-- 基本信息:\\n';\n return baseText+ret.join(';\\n')+';';\n };\n \n function buildAddedDDL(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n if(fieldAdded.length == 0){\n return '';\n }\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldAdded) { \n let ddlItem = `ADD (${field.defKey} ${field.dbType}`;\n /*处理数据类型长度*/\n if(field.len>0){\n ddlItem += ('('+field.len);\n if(parseInt(field.scale)>0){\n ddlItem += (','+field.scale);\n }\n ddlItem += ')';\n }\n let defaultValue = field.defaultValue;\n defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n if(defaultValue.length>0){\n ddlItem += (' DEFAULT ' + defaultValue);\n }\n if(field.notNull){\n ddlItem += ' NOT NULL';\n }\n ddlItem += ')';\n ret.push(`${firstDDL} ${ddlItem}`);\n \n /*处理字段注释*/\n let fieldComments = [];\n if(field.defName != null &&field.defName.length>0){\n fieldComments.push(field.defName);\n }\n if(field.comment != null &&field.comment.length>0){\n fieldComments.push(field.comment);\n }\n let commentText = fieldComments.join(';');\n if(commentText != null && commentText.length > 0){\n let commentDDL = `COMMENT ON COLUMN ${entity.data.baseInfo.defKey}.${field.defKey} IS '${commentText}'`;\n ret.push(commentDDL);\n }\n }\n return '\\n'+ret.join(';\\n');\n };\n \n function buildRemovedDDL(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n if(fieldRemoved.length == 0){\n return '';\n }\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldRemoved) { \n ret.push(`${firstDDL} DROP COLUMN ${field.defKey}`);\n }\n return '\\n'+ret.join(';\\n');\n };\n \n function buildModifiedDDL(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldModified) { \n let changeDDL = '';\n let before = field.before || {};\n let after = field.after || {};\n if(before.defKey !== after.defKey){\n let renameText = `ALTER TABLE ${entity.data.baseInfo.defKey} RENAME COLUMN ${before.defKey} TO ${after.defKey};`;\n ret.push(renameText);\n }\n /*如果没有变化,则不生成变更语句*/\n if(before.dbType === after.dbType \n && before['len'] === after['len'] \n && before.scale === after.scale\n && before.primaryKey === after.primaryKey\n && before.notNull === after.notNull\n && before.autoIncrement === after.autoIncrement\n && before.defaultValue === after.defaultValue){\n continue;\n }\n changeDDL += ('MODIFY ('+after.defKey+'');\n changeDDL += (' '+after.dbType);\n if(after.len>0){\n changeDDL += ('('+after.len);\n if(parseInt(after.scale)>0){\n changeDDL += (','+after.scale);\n }\n changeDDL += ')';\n }\n let defaultValue = after.defaultValue;\n defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n if(defaultValue.length>0){\n changeDDL += (' DEFAULT ' + defaultValue);\n }\n \n if(after.notNull){\n changeDDL += ' NOT NULL';\n }\n changeDDL += ')';\n ret.push(`${firstDDL} ${changeDDL};`);\n }\n return ret;\n };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表:{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段:\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段:\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段:\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"},{"applyFor":"483F9346-C99E-4014-A1D2-A554606BD8A3","type":"dbDDL","createTable":"{{let dorisDistributedBy = it.entity.properties['dorisDistributedBy'];\n dorisDistributedBy = dorisDistributedBy?dorisDistributedBy:'请在表的扩展属性中配置[dorisDistributedBy]属性';\n}}CREATE TABLE IF NOT EXISTS {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n `{{=field.defKey}}` {{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}} {{= field.notNull ? 'NOT NULL' : '' }} COMMENT '{{=it.func.join(field.defName,field.comment,';')}}' {{= index < it.entity.fields.length-1 ? ',' : '' }}\n{{~}}\n) COMMENT '{{=it.func.join(it.entity.defName,it.entity.comment,';') }}'\n{{=dorisDistributedBy}} ;\n$blankline\n","createView":"","deleteTable":"DROP TABLE IF EXISTS {{=it.entity.defKey}};","createIndex":"","deleteIndex":"","message":"{{\n let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n let dropEntities = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n \n function baseChanged(beforeAfter){\n if(beforeAfter == null){\n return '';\n }\n let ret = [];\n let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n if(before.defKey !== after.defKey){\n ret.push('代码:'+(before.defKey||'NULL')+'->'+(after.defKey||'NULL'));\n }\n if(before.defName !== after.defName){\n ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n }\n if(before.comment !== after.comment){\n ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n }\n if(ret.length>0){\n return ' 基本信息:\\n\\t'+ret.join('\\n\\t');\n }\n return '';\n };\n \n function buildAddedDesc(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n \n for (let field of fieldAdded) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildRemovedDesc(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n \n for (let field of fieldRemoved) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildModifiedDesc(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n for (let field1 of fieldModified) { \n let row = [];\n let field = field1.before;\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n}}\n\n\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n{{? modifyEntities && modifyEntities.length > 0}}\n/* --------------- 修改表 --------------- */\n{{~ modifyEntities:entity}}\n{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n {{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n 修改字段:\n {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}{{?}}{{\n /*计算是否调整了属性*/\n let propAdded = entity.data.propAdded || [];\n let propRemoved = entity.data.propRemoved || [];\n let propModified = entity.data.propModified || [];\n let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n /*计算关联是否调整*/\n let refEntityAdd = entity.data.refEntityAdd || [];\n let refEntityRemoved = entity.data.refEntityRemoved || [];\n let relaArray = [];\n for (let rela of refEntityAdd) {\n relaArray.push('建立关联:'+rela.defKey+'['+rela.defName+']');\n }\n for (let rela of refEntityRemoved) {\n relaArray.push('解除关联:'+rela.defKey+'['+rela.defName+']');\n }\n /*索引是否修改过*/\n let indexChanged = entity.data.indexChanged;\n }}{{=indexChanged?'\\n\\t更改了索引':''}}{{=changed?'\\n\\t更改了属性':''}}{{=relaArray.length>0?('\\n\\t'+relaArray.join('\\n\\t')):''}}\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n 添加字段:\n{{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n{{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n 删除字段:\n{{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n{{?}}\n{{~}}\n{{?}}\n","update":"{{\n let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n let dropEntities = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n \n function baseChangedDDL(beforeAfter){\n if(beforeAfter == null){\n return '';\n }\n let ret = [];\n let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n if(before.defKey !== after.defKey){\n ret.push('ALTER TABLE '+before.defKey+' RENAME TO '+after.defKey);\n }\n let commentText = '';\n let commentChanged = false;\n if(before.defName !== after.defName){\n commentText = after.defName;\n commentChanged = true;\n }\n if(before.comment !== after.comment){\n commentChanged = true;\n if(commentText){\n commentText = (commentText+ ';'+after.comment)\n }else{\n commentText = after.comment\n }\n }\n if(commentChanged){\n ret.push('ALTER TABLE '+after.defKey+' COMMENT \\''+commentText+'\\'');\n }\n let baseText = '-- 基本信息:\\n';\n return baseText+ret.join(';\\n')+';';\n };\n \n function buildAddedDDL(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n if(fieldAdded.length == 0){\n return '';\n }\n \n let firstDDL = 'ALTER TABLE '+entity.data.baseInfo.defKey;\n for (let field of fieldAdded) { \n let ddlItem = 'ADD COLUMN `'+field.defKey+'` '+field.dbType;\n /*处理数据类型长度*/\n if(field.len>0){\n ddlItem += ('('+field.len);\n if(parseInt(field.scale)>0){\n ddlItem += (','+field.scale);\n }\n ddlItem += ')';\n }\n if(field.notNull){\n ddlItem += ' NOT NULL';\n }\n if(field.autoIncrement){\n ddlItem += ' AUTO_INCREMENT';\n }\n if(field.defaultValue){\n ddlItem += (' DEFAULT ' + field.defaultValue);\n }\n ddlItem += (' COMMENT \\''+field.defName+';'+field.comment+'\\'');\n \n if(field.index>0 && field.afterFieldKey){\n ddlItem += (' AFTER '+field.afterFieldKey);\n }\n ret.push(ddlItem);\n }\n return firstDDL+'\\n'+ret.join(',\\n');\n };\n \n function buildRemovedDDL(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n if(fieldRemoved.length == 0){\n return '';\n }\n \n let firstDDL = 'ALTER TABLE '+entity.data.baseInfo.defKey;\n for (let field of fieldRemoved) { \n ret.push('DROP '+field.defKey);\n }\n return firstDDL+'\\n'+ret.join(',\\n');\n };\n \n function buildModifiedDDL(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n let firstDDL = 'ALTER TABLE '+entity.data.baseInfo.defKey;\n for (let field of fieldModified) { \n let changeDDL = '';\n let before = field.before || {};\n let after = field.after || {};\n if(before.defKey === after.defKey){\n changeDDL += (' MODIFY COLUMN `'+after.defKey+'`');\n }else{\n changeDDL += (' CHANGE COLUMN `'+before.defKey+'` `'+after.defKey+'`');\n }\n changeDDL += (' '+after.dbType);\n if(after.len>0){\n changeDDL += ('('+after.len);\n if(parseInt(after.scale)>0){\n changeDDL += (','+after.scale);\n }\n changeDDL += ')';\n }\n if(after.notNull){\n changeDDL += ' NOT NULL';\n }\n let defaultValue = '';\n if(after.defaultValue != null && after.defaultValue.length>0){\n defaultValue = (after.defaultValue);\n }else{\n defaultValue = 'NULL';\n }\n if(defaultValue != 'NULL'){\n changeDDL += (' DEFAULT ' + defaultValue);\n }\n\n let comment = after.defName;\n if(after.comment){\n comment = comment + ';' + (after.comment||'');\n }\n if(comment){\n changeDDL += (' COMMENT \\''+comment+'\\';');\n }\n \n ret.push(firstDDL+' '+changeDDL);\n }\n return ret;\n };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表:{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段:\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段:\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段:\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"},{"applyFor":"ABF5836C-0B7C-4007-A41C-F869325E5842","type":"dbDDL","createTable":"DROP TABLE IF EXISTS {{=it.entity.defKey}};\nCREATE TABLE {{=it.entity.defKey}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}\n {{=field.defKey}} {{? field.autoIncrement}}SERIAL{{??}}{{=field.type}}{{?field.len>0}}{{='('}}{{=field.len}}{{?field.scale>0}}{{=','}}{{=field.scale}}{{?}}{{=')'}}{{?}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= field.defaultValue ? it.func.join(' DEFAULT ',field.defaultValue,' ') : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i'+(after.defKey||'NULL'));\n }\n if(before.defName !== after.defName){\n ret.push('显示名称:'+(before.defName||'NULL')+'->'+(after.defName||'NULL'));\n }\n if(before.comment !== after.comment){\n ret.push('说明:'+(before.comment||'NULL')+'->'+(after.comment||'NULL'));\n }\n if(ret.length>0){\n return ' 基本信息:\\n\\t'+ret.join('\\n\\t');\n }\n return '';\n };\n \n function buildAddedDesc(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n \n for (let field of fieldAdded) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildRemovedDesc(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n \n for (let field of fieldRemoved) { \n let row = [];\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n \n function buildModifiedDesc(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n for (let field1 of fieldModified) { \n let row = [];\n let field = field1.before;\n row.push(field.defKey+'['+field.defName+']');\n ret.push(row.join(\"\"))\n }\n return ret;\n };\n}}\n\n\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=entity.data.defKey}}[{{=entity.data.defName}}]\n{{~}}\n{{?}}\n\n{{? modifyEntities && modifyEntities.length > 0}}\n/* --------------- 修改表 --------------- */\n{{~ modifyEntities:entity}}\n{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]{{let changeText=baseChanged(entity.data.baseChanged);}}\n{{=baseChanged(entity.data.baseChanged)}}\n {{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n 修改字段:\n {{='\\t'}}{{=buildModifiedDesc(entity).join('\\n\\t')}}{{?}}{{\n /*计算是否调整了属性*/\n let propAdded = entity.data.propAdded || [];\n let propRemoved = entity.data.propRemoved || [];\n let propModified = entity.data.propModified || [];\n let changed = propAdded.length>0 || propRemoved.length>0 || propModified.length>0;\n /*计算关联是否调整*/\n let refEntityAdd = entity.data.refEntityAdd || [];\n let refEntityRemoved = entity.data.refEntityRemoved || [];\n let relaArray = [];\n for (let rela of refEntityAdd) {\n relaArray.push('建立关联:'+rela.defKey+'['+rela.defName+']');\n }\n for (let rela of refEntityRemoved) {\n relaArray.push('解除关联:'+rela.defKey+'['+rela.defName+']');\n }\n /*索引是否修改过*/\n let indexChanged = entity.data.indexChanged;\n }}{{=indexChanged?'\\n\\t更改了索引':''}}{{=changed?'\\n\\t更改了属性':''}}{{=relaArray.length>0?('\\n\\t'+relaArray.join('\\n\\t')):''}}\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n 添加字段:\n{{='\\t'}}{{=buildAddedDesc(entity).join('\\n\\t')}}\n{{?}}{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n 删除字段:\n{{='\\t'}}{{=buildRemovedDesc(entity).join('\\n\\t')}}\n{{?}}\n{{~}}\n{{?}}","update":"{{\n let createEntities = it.changes.filter(function(row){return (row.opt==='add'&&row['type']==='entity');});\n let dropEntities = it.changes.filter(function(row){return (row.opt==='delete'&&row['type']==='entity');});\n let modifyEntities = it.changes.filter(function(row){return (row.opt==='update'&&row['type']==='entity');});\n \n function baseChangedDDL(beforeAfter){\n if(beforeAfter == null){\n return '';\n }\n let ret = [];\n let before = beforeAfter.before || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n let after = beforeAfter.after || {\"defKey\":\"\",\"defName\":\"\",\"comment\":\"\"};\n if(before.defKey !== after.defKey){\n ret.push(`ALTER TABLE ${before.defKey} RENAME TO ${after.defKey}`);\n }\n let commentText = '';\n let commentChanged = false;\n if(before.defName !== after.defName){\n commentText = after.defName;\n commentChanged = true;\n }\n if(before.comment !== after.comment){\n commentChanged = true;\n if(commentText){\n commentText = (commentText+ ';'+after.comment)\n }else{\n commentText = after.comment\n }\n }\n if(commentChanged){\n let myText = `COMMENT ON TABLE ${after.defKey} IS '${commentText}'`;\n ret.push(myText);\n }\n let baseText = '-- 基本信息:\\n';\n return baseText+ret.join(';\\n')+';';\n };\n \n function buildAddedDDL(entity){\n let ret = [];\n let fieldAdded = entity.data.fieldAdded||[];\n if(fieldAdded.length == 0){\n return '';\n }\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldAdded) { \n let ddlItem = `ADD COLUMN ${field.defKey} ${field.dbType}`;\n /*处理数据类型长度*/\n if(field.len>0){\n ddlItem += ('('+field.len);\n if(parseInt(field.scale)>0){\n ddlItem += (','+field.scale);\n }\n ddlItem += ')';\n }\n if(field.notNull){\n ddlItem += ' NOT NULL';\n } \n let defaultValue = field.defaultValue;\n defaultValue = (defaultValue==null)?\"\":(\"\"+defaultValue);\n if(defaultValue.length>0){\n ddlItem += (' DEFAULT ' + defaultValue);\n }\n\n ret.push(`${firstDDL} ${ddlItem}`);\n \n /*处理字段注释*/\n let fieldComments = [];\n if(field.defName != null &&field.defName.length>0){\n fieldComments.push(field.defName);\n }\n if(field.comment != null &&field.comment.length>0){\n fieldComments.push(field.comment);\n }\n let commentText = fieldComments.join(';');\n if(commentText != null && commentText.length > 0){\n let commentDDL = `COMMENT ON COLUMN ${entity.data.baseInfo.defKey}.${field.defKey} IS '${commentText}'`;\n ret.push(commentDDL);\n }\n }\n return '\\n'+ret.join(';\\n');\n };\n \n function buildRemovedDDL(entity){\n let ret = [];\n let fieldRemoved = entity.data.fieldRemoved||[];\n if(fieldRemoved.length == 0){\n return '';\n }\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldRemoved) { \n ret.push(`${firstDDL} DROP COLUMN ${field.defKey}`);\n }\n return '\\n'+ret.join(';\\n');\n };\n \n function buildModifiedDDL(entity){\n let ret = [];\n let fieldModified = entity.data.fieldModified||[];\n \n let firstDDL = `ALTER TABLE ${entity.data.baseInfo.defKey}`;\n for (let field of fieldModified) { \n let before = field.before || {};\n let after = field.after || {};\n if(before.defKey !== after.defKey){\n let renameText = `ALTER TABLE ${entity.data.baseInfo.defKey} RENAME COLUMN ${before.defKey} TO ${after.defKey};`;\n ret.push(renameText);\n }\n /*如果没有变化,则不生成变更语句*/\n if(before.dbType === after.dbType \n && before['len'] === after['len'] \n && before.scale === after.scale\n && before.primaryKey === after.primaryKey\n && before.notNull === after.notNull\n && before.autoIncrement === after.autoIncrement\n && before.defaultValue === after.defaultValue){\n continue;\n }\n if(before.dbType !== after.dbType || before.len !== after.len || before.scale !== after.scale){\n let dbTypeDDL = `ALTER TABLE ${entity.data.baseInfo.defKey} ALTER COLUMN ${after.defKey} TYPE ${before.dbType}`;\n if(after.len>0){\n dbTypeDDL += ('('+after.len);\n if(parseInt(after.scale)>0){\n dbTypeDDL += (','+after.scale);\n }\n dbTypeDDL += ')';\n }\n ret.push(dbTypeDDL+';');\n }\n \n if(before.defaultValue !== after.defaultValue){\n let defaultDDL = '';\n let defaultValue = after.defaultValue;\n defaultValue = (defaultValue==null)?\"NULL\":(\"\"+defaultValue);\n if(defaultValue.length>0){\n defaultDDL += ('SET DEFAULT ' + defaultValue);\n }\n let defaultTpl = `ALTER TABLE ${entity.data.baseInfo.defKey} ALTER COLUMN ${defaultDDL};`;\n ret.push(defaultTpl);\n }\n \n if(before.notNull !== after.notNull){\n let notNullDDL= 'SET NULL';\n if(after.notNull){\n let notNullDDL= 'SET NOT NULL';\n }\n let notNullTpl = `ALTER TABLE ${entity.data.baseInfo.defKey} ALTER COLUMN ${notNullDDL};`;\n ret.push(notNullTpl);\n }\n }\n return ret;\n };\n}}\n{{? createEntities && createEntities.length > 0}}\n/* --------------- 创建表 --------------- */\n{{~ createEntities:entity}}\n{{=it.func.createDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? dropEntities && dropEntities.length > 0}}\n/* --------------- 删除表 --------------- */\n{{~ dropEntities:entity}}\n{{=it.func.dropDDL(entity.data,entity['type'])}}\n{{~}}\n{{?}}\n\n\n{{? modifyEntities && modifyEntities.length > 0}}\n{{~ modifyEntities:entity}}\n/* --------------- 修改表 --------------- */\n-- 修改表:{{=entity.data.baseInfo.defKey}}[{{=entity.data.baseInfo.defName}}]\n{{=baseChangedDDL(entity.data.baseChanged)}}\n{{? entity.data.fieldModified && entity.data.fieldModified.length > 0}}\n-- 修改字段:\n{{=buildModifiedDDL(entity).join('\\n')}}\n{{?}}{{\n/*索引是否修改过*/\nlet indexChanged = entity.data.indexChanged;\n}}\n{{? indexChanged }}\n-- 索引重建\n{{=it.func.indexRebuildDDL(entity.data.baseInfo,entity.data.newIndexes,entity.data.fullFields,entity['type'])}}\n{{?}}\n\n{{? entity.data.fieldAdded && entity.data.fieldAdded.length > 0}}\n-- 添加字段:\n{{=buildAddedDDL(entity)}};\n{{?}}\n\n{{? entity.data.fieldRemoved && entity.data.fieldRemoved.length > 0}}\n-- 删除字段:\n{{=buildRemovedDDL(entity)}};\n{{?}}\n{{~}}\n{{?}}"}],"generatorDoc":{"docTemplate":""},"relationFieldSize":"15","uiHint":[{"defKey":"Input","defName":"普通输入框","id":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"Select","defName":"下拉输入框","id":"FB111359-2B73-4443-926C-08A98E446448"},{"defKey":"CheckBox","defName":"复选框","id":"0CB8A6C9-1115-4FC0-B51E-5C028065082F"},{"defKey":"RadioBox","defName":"单选框","id":"5C04987A-260F-4B7C-A5D5-22A181AAE9CA"},{"defKey":"Double","defName":"小数输入","id":"8D5BAFE4-E15C-4707-A047-8EE59C58E70F"},{"defKey":"Integer","defName":"整数输入","id":"9999AF2A-A44E-415C-A2DC-D7C613BD0073"},{"defKey":"Money","defName":"金额输入","id":"2B0C3D0C-7BAF-4B36-81AD-9362B5E5DC2E"},{"defKey":"Date","defName":"日期输入","id":"E4D94E14-F695-487F-AFC2-4D888009B7DA"},{"defKey":"DataYearMonth","defName":"年月输入","id":"936927E3-DD2D-4096-87FD-074CDE278D59"},{"defKey":"Text","defName":"长文本输入","id":"D89DD4F1-ADAC-4469-BF8D-B3FF41AE7963"},{"defKey":"RichText","defName":"富文本输入","id":"C134EB1F-4CFF-49E0-882F-2C6FB275CB20"}],"headers":[{"refKey":"defKey","hideInGraph":false,"value":"字段代码","freeze":false},{"refKey":"defName","hideInGraph":false,"value":"显示名称","freeze":false},{"refKey":"primaryKey","hideInGraph":false,"value":"主键","freeze":false},{"refKey":"notNull","hideInGraph":true,"value":"不为空","freeze":false},{"refKey":"autoIncrement","hideInGraph":true,"value":"自增","freeze":false},{"refKey":"domain","hideInGraph":true,"value":"数据域","freeze":false},{"refKey":"type","hideInGraph":false,"value":"数据类型","freeze":false},{"refKey":"len","hideInGraph":false,"value":"长度","freeze":false},{"refKey":"scale","hideInGraph":false,"value":"小数位数","freeze":false},{"refKey":"comment","hideInGraph":true,"value":"说明","freeze":false},{"refKey":"refDict","hideInGraph":true,"value":"数据字典","freeze":false},{"refKey":"defaultValue","hideInGraph":true,"value":"默认值","freeze":false},{"refKey":"isStandard","hideInGraph":false,"value":"标准字段","enable":false,"freeze":false},{"refKey":"uiHint","hideInGraph":true,"value":"UI建议","enable":true,"freeze":false},{"refKey":"extProps","hideInGraph":true,"value":"拓展属性","enable":true,"freeze":false},{"refKey":"attr1","value":"属性1","hideInGraph":true,"enable":true,"freeze":false},{"refKey":"attr2","value":"属性2","hideInGraph":true,"enable":false,"freeze":false},{"refKey":"attr3","value":"属性3","hideInGraph":true,"enable":false,"freeze":false},{"refKey":"attr4","value":"属性4","hideInGraph":true,"enable":false,"freeze":false},{"refKey":"attr5","value":"属性5","hideInGraph":true,"enable":false,"freeze":false},{"refKey":"attr6","value":"属性6","hideInGraph":true,"enable":false,"freeze":false},{"refKey":"attr7","value":"属性7","hideInGraph":true,"enable":false,"freeze":false},{"refKey":"attr8","value":"属性8","hideInGraph":true,"enable":false,"freeze":false},{"refKey":"attr9","value":"属性9","hideInGraph":true,"enable":false,"freeze":false}],"modelType":"modalGroup","recentColors":["#d148d1","#ce4bce","#831b83","#dd31dd","#da2fda","#e988e9","#000000","#DDE5FF"],"DDLToggleCase":"L","menuWidth":"241px"},"entities":[{"id":"2686504C-2B1C-42D8-831F-5BD8BCA96AFE","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"AUTH_CLIENT","defName":"应用管理","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"应用ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"D77FD2B4-6EEB-438B-A9F3-25E0EA767723"},{"defKey":"secret_key","defName":"应用秘钥","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"2767190C-B4F8-4E03-8A43-E47B14142713"},{"defKey":"name","defName":"应用名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"931C904D-9647-4461-8581-529CA4730B7F","id":"1A68745F-CF07-48F5-8372-78597B62DE6A"},{"defKey":"type","defName":"应用类型","comment":"0:Web,1:App,2:小程序","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"27488113-972E-470D-BB7B-E127496C90D3"},{"defKey":"icon","defName":"应用图标","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"D6A9D6EC-B748-411C-9296-44AFB9B8650D"},{"defKey":"home_url","defName":"应用首页","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"77C04266-5BBE-4898-96B5-880CD6E26D18"},{"defKey":"sync_url","defName":"同步地址","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"284ACB39-A616-4CB1-8427-01675CCD4C9E"},{"defKey":"redirect_url","defName":"允许授权的url","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"E5260A3B-E03B-4C60-AC92-0D649AC12E18"},{"defKey":"public_flag","defName":"是否公开","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"1BC530BF-9046-4604-A869-4FB849766CED"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"CF96F938-DA93-48EF-A5C7-31117953D7D0"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"9F4C5ADC-FD9B-4630-A5E4-1A4FBD79AE7D"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"931C904D-9647-4461-8581-529CA4730B7F","id":"BBFBC6F0-0400-4DB6-A139-59C1F6A971F9"},{"defKey":"creator_id","defName":"创建人id","comment":"创建者的sys_user_id","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"5D42884C-8A38-4CAB-8A26-082896745450"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"D87F1759-877E-4E11-9538-694FCB3A9D4E"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"931C904D-9647-4461-8581-529CA4730B7F","id":"69F38ECD-5533-4E21-8578-327DB42F6881"},{"defKey":"updator_id","defName":"更新人id","comment":"更新者的sys_user_id","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"25263600-616D-42AA-8B40-A5BBF5A54459"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"8F2FACCC-FDA8-42B6-A68F-5571A40F9695"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"A900529E-607B-4BB9-A2D5-6D7A565C3A8F"}],"correlations":[],"indexes":[],"type":"P"},{"id":"30E630FA-6365-4175-B89D-87906DF59757","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"AUTH_CLIENT_USER","defName":"应用和用户关联表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"client_id","defName":"应用ID","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"D751A971-F4E0-45FF-9EAD-96175715CA8A"},{"defKey":"user_id","defName":"用户ID","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"F11684D9-022F-4B95-B193-2153E34FC6A8"},{"defKey":"open_id","defName":"open_id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"24566189-CCD1-4EE5-A474-E28905EDFEC8"}],"correlations":[],"indexes":[],"type":"P"},{"id":"940575BF-97DC-4655-9E32-73ED81694B25","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"EXAMPLE_USER","defName":"示例用户表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"4AEF43E3-653E-4C0E-9879-88DDDDB5E231"},{"defKey":"name","defName":"名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"A9F4F0F3-78E1-4805-B374-B2DF999C01D0"},{"defKey":"age","defName":"年龄","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"A4709293-3DDC-4DE1-97DC-343D71392E3D"},{"defKey":"phone","defName":"手机号","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"0A080648-EF9C-46C0-9CC1-B98481F77F96"},{"defKey":"type_id","defName":"用户类型","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"2B370E79-1CDB-41C6-83FE-20A091440452"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":true,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"461B980B-45FD-4CAB-BCB1-B12A59176DDB"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"71592095-1053-4ACD-9063-8F6328B7E31C"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"2628A1F8-EAA3-40C8-B222-C0A39C42129B"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"C0992178-02BF-4A76-B5D9-3A8DD643013E"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"E7C1BBD6-2B34-4CA1-8ABA-355C069C2FE3"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"12DA1EA2-663F-420D-BBF1-68E73717F90C"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"2367B59B-BF06-4121-838B-86D47F5B5CCE"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"1DF3578E-D8D6-471A-986E-CE46C97771DA"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"EA1AF088-BD10-48CA-8BCD-E656AFEA1BD6"}],"correlations":[],"indexes":[],"type":"P"},{"id":"FADAFD12-9039-4AE2-A563-57866DE970BE","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"USER_TYPE","defName":"用户类型","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"D8C7321C-2412-4A91-8393-49C33665588D"},{"defKey":"name","defName":"类型名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","id":"8257B5AD-69B7-4E69-AB34-6447151942F1"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"8E044FA8-5C33-4D14-813A-1507D77669B6"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"1F2B245C-3E66-4A65-B005-5BA1593EC862"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"1DA4B154-55E2-4942-B3F5-C1F35BCCFEF7"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"B453007A-AB32-4384-BC49-39565F276BBD"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"5B9A95F1-1881-49D1-A0C7-F11063756BCE"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"6440B50C-8C22-4221-B7E8-B6E4CB11CA73"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"25C62751-31CD-4FF4-A115-AA62CB7609A5"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"BD5F7033-BD52-4FF3-9484-8AFCA5B9D57F"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"E8EC0AD7-9A7E-4200-BE4E-00337543D3DD"}],"correlations":[],"indexes":[],"type":"P"},{"id":"2927AFC1-172C-4C56-9886-71D0D1361242","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"message_template","defName":"消息模板","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"6E784186-C693-476F-AB7A-E4AD32D0C1DD"},{"defKey":"title","defName":"消息标题","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","id":"A9B50592-49C8-480E-BA1F-AF5C3352F932"},{"defKey":"content","defName":"消息模板内容","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"E4740BE7-5EDA-47FD-85A5-892DB977CDE5"},{"defKey":"category","defName":"消息类别","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"B3E60B0F-883B-402F-9248-B6316B0C8AFE"},{"defKey":"level","defName":"消息等级","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"96BC2CDE-8FF1-4190-8FF0-771F067F520E"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"707B0A14-28EB-4907-AF9F-F855B97D40E8"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"043C27E8-1248-4B66-99D2-D6CA1A19D092"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"19A71521-970B-4B40-A6D2-0F0441D1F142"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"DBA83249-416F-469F-AECF-38D537FF3DEA"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"E00E64A2-6120-4731-9E73-4E78CB3DC492"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"48F7A3AC-6CAD-43F5-915D-A5E89ECA221D"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"5E0C83C1-6E97-425D-B387-15E99D159FF3"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"AB7D60C9-9909-4C3E-98B6-E302977E0A1D"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"47600E66-9C54-4265-88A0-47832A0B6FCA"}],"correlations":[],"indexes":[],"type":"P"},{"id":"547234B4-485C-4289-9E1C-C24DAC8B7C3E","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"message","defName":"消息","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"E848EE8E-1CF6-4118-B7FF-E7EA1399D41A"},{"defKey":"sender_id","defName":"发送人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"39616675-949C-4602-88F8-67BB6D7655CB"},{"defKey":"receiver_id","defName":"接收人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"B42301E9-FCAA-48A7-8E6D-8C405B5884F6"},{"defKey":"title","defName":"消息标题","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"73DE0F71-F708-4C82-9832-BEE9E8249E9D","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"content","defName":"消息模板内容","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"A8131EDA-A386-47D1-ADD9-73CE7373EB55","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"category","defName":"消息类别","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"EF18201C-DEAB-4FB1-90A0-6876A269E36A","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744"},{"defKey":"level","defName":"消息等级","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"24B5DEB9-9207-4864-A87D-E81726A9F900","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744"},{"defKey":"module","defName":"消息模块","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"D2D98C35-971A-4F67-B734-5D38432A58F8","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744"},{"defKey":"entity_type","defName":"实体类型","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"4AB87422-B6C1-4B53-96F1-E6B79560CF08"},{"defKey":"entity_id","defName":"实体id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"0B8143FE-71EB-4EF3-82EF-BB1A198AD6BB"},{"defKey":"entity_url","defName":"消息链接","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"5278F892-723D-472C-AAA5-8B2E8319FE7E"},{"defKey":"has_read","defName":"是否已读","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"17792597-F02A-4C0D-AD38-5708F6E3AAF2"},{"defKey":"has_retraction","defName":"是否撤回","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"EB899BB6-62B0-47FB-A141-4F9B6FAE28AD"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"7C543E12-E493-430D-BB4E-91877AC29278"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"BD75F77D-6E03-42C0-BD50-196EAF1BB97E"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"01E2BCD0-FD16-4D2E-BE8C-732D41D9D83A"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"0C9B141F-1D5A-424D-B5F1-69FDEF098D4F"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"940AB245-34B5-49F2-84CF-283524E049D7"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"CD30DCFA-7CF9-4A21-8C5D-3ADAA472E336"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"B81DE3B9-0BDD-4CC2-A618-6BAA69C9795F"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"010ABF1D-FE5A-4315-B055-BBC5B6DBD197"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"0C1A07BD-E607-4BC9-8372-7EB60E0120F3"}],"correlations":[],"indexes":[],"type":"P"},{"id":"629B3699-68AD-4CEF-9E8F-7EC292B2C1D5","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"rel_user_auth_product","defName":"用户与认证中心关系表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"user_id","defName":"用户ID","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"0EEDF639-1A59-4FA5-8666-7C7B7C15F726"},{"defKey":"auth_id","defName":"统一身份认证id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"34464C82-D764-4F00-961A-3CA1726A30B5"},{"defKey":"auth_product_type","defName":"认证平台类型","comment":"0:冰凤框架;1:微信;2:支付宝","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"35DB50F8-BE8E-482E-A0EC-1ED9820B3647"}],"correlations":[],"indexes":[],"type":"P"},{"id":"9C506352-A9C9-4000-8B9F-228F1E595225","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"EXAMPLE_DEPT","defName":"示例部门表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"A7FC288D-B413-49E8-9785-97ABB6134917"},{"defKey":"parent_id","defName":"父部门id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"07FE4F03-7880-4A99-A73A-EE7D9B049BAC"},{"defKey":"name","defName":"部门名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","id":"B970B265-1FEC-423B-BFC0-B1456A3D3DA4"},{"defKey":"leader","defName":"负责人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"37AC5374-5AD8-4B89-B2BB-972D3175DE42"},{"defKey":"phone","defName":"联系电话","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"4FE83AF7-3661-43B9-A4EC-F9E46D0D64E9"},{"defKey":"email","defName":"邮箱","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","id":"897F41EA-5343-43A9-A5AD-378FB13CFC96"},{"defKey":"status","defName":"部门状态","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"718EBFDD-23FF-4340-87D8-E91590AACBFE"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"9D269BFE-21E6-416E-B58D-F34D05DF12CB"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"64D797C8-C828-4DEF-BE4E-2A54027067E7"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"2C9FE5FD-CBEF-4D0C-A8FA-4567DDC818F8"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"61B483A0-5C8F-4E92-AEB6-58B657F83490"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"1F9E0C2F-F4D5-4D93-B910-7B53F6C71D34"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"D5A2F0B9-EE65-4F27-85FD-A1ABE4991D18"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"49822AEF-18FB-494B-AC5D-2B3DE95D3BB2"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"6D798D25-5BB8-4453-AE2C-DBAE7284A2AE"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"B1F0DF92-9B85-4C1B-BB45-82058EA6168B"}],"correlations":[],"indexes":[],"type":"P"},{"id":"660CAD2E-4A06-4CF7-B1D2-F12F01DC48D9","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"example_student","defName":"学生表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"3866410C-799E-4B63-B5F7-31926BACECAC"},{"defKey":"name","defName":"姓名","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"0F2FD105-B855-4588-9CCB-DCACBB41802B"},{"defKey":"picture_url","defName":"学生照","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"07983264-AFED-4BCB-BAC1-1DCE960DB1D9"},{"defKey":"experience","defName":"教育经历","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"5333CE9A-1C80-42B1-89AC-186AEAC1440C"},{"defKey":"sex","defName":"性别","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"7A118342-6ABB-431F-87F1-D6AF31D83639"},{"defKey":"age","defName":"年龄","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"50943AA5-348B-4349-BD20-72A2A4D3FE07"},{"defKey":"student_number","defName":"学号","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","id":"C34E0B44-C2FD-4C54-8E3E-1F5592EBC084"},{"defKey":"grade","defName":"班级","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"567C82E3-FB92-4486-9BB8-D80149E11133"},{"defKey":"hobby","defName":"爱好","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"FB9770DB-57CA-43C5-95BE-69C36980E22A"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"C5ABAE74-E111-4072-994F-1EFAED1DD3FB"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"72D94D10-82FB-4008-AC82-D0443FF72BD4"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"597A750E-513C-42DC-B3F4-8472B9A9D33A"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"14DB6DBC-6215-4F52-8417-EDB42A1B0D69"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"158D2B33-D715-4F8E-B168-9375FECB5F63"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"38AF5B1C-9DA1-46D3-A6B7-66BD56949DA3"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"45B74496-8CC6-4495-8119-ACBE7B7BAE00"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"DCB4E2BB-EF24-48EC-A383-7DC332337DF7"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"22E72477-6D47-4420-9876-FF51B5F36780"}],"correlations":[],"indexes":[],"type":"P"},{"id":"0404E9CF-B9B0-42E4-9240-C24839643BCB","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"bid","defName":"标书主表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"880D673C-FE79-4A42-B181-20831EDA4230"},{"defKey":"name","defName":"标书名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","id":"66713297-5D9B-41FF-9AD0-05CE5AE573AD"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"D310E2A0-36E9-43B9-854B-BA947E0DF9A3"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"86A79D27-389E-480F-89D3-4E2874764CBD"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"14B6E637-C61A-4870-A076-1985B1084B45"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"A45FC4D0-6508-4242-A37A-AA15B7C07363"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"CD442E0B-4158-4CD4-9A9C-8F1AA8964932"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"AB753335-1925-4067-85B6-261C15C8E3A1"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"06E2CBBD-1019-4DCF-90E9-78896E8258B7"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"57EA7F08-C64E-4A16-88C6-7136CDFEA40F"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"930DFAEA-3EAE-456C-ADEC-06EEF4BFC63D"}],"correlations":[],"indexes":[],"type":"P"},{"id":"691172D1-1D2A-4D2D-9460-4AC9CF25DE1E","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"bid_details","defName":"标书详情表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"DCEA9462-F8C7-44B9-B4C5-CA16017E6A4C"},{"defKey":"parent_id","defName":"父id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"DD4FD695-5FA4-4D1C-AE19-E3BE5959A510"},{"defKey":"bid_id","defName":"标书id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"77C1DCCC-762C-4C53-998D-2A7601767506"},{"defKey":"title","defName":"标题","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","id":"17833074-86AC-44C7-A2EF-9D64326355DB"},{"defKey":"content","defName":"内容","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"B17BDED3-085F-40E1-9019-3B79CF2BF075","extProps":{},"domain":"D3C06E04-3E8E-4FA7-BD2F-A62B5206E305","id":"D3565CBF-7AEA-4924-B9B4-3CD302DD92A1"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"3D62BB5A-A5D3-48F1-AB8E-023DE581B3F6"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"EFAE0A30-C51F-435D-91B8-B76F70F4852B"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"9592F2A3-7017-4B9B-AF3C-C0632C5E7CB6"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"80782CF0-C264-450E-AD1B-0FCC01EAB1E6"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"DD34CF27-8B25-40E4-8C20-B72AA95E255D"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"C6068916-ACB9-4B67-84A1-252CB0F94B59"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"736F31BB-7FFB-4180-B9DA-47B0C9A78790"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"867F3631-4EFA-4F1E-846C-82676FED70D0"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"46732CCE-91F5-4498-AF4F-DF4DA38BD299"}],"correlations":[],"indexes":[],"type":"P"},{"id":"33B5C3D0-2DBC-4835-90EC-10E4DBC99A2E","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"bid_attachments","defName":"标书附件表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"E110F9B2-222B-410A-8732-9C46C0A39E12"},{"defKey":"bid_id","defName":"标书id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"98DE4403-5CED-49B1-A11E-721873D712AF","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"name","defName":"文件名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"F1BBF88E-D719-4673-9684-A9AAD21A25D8"},{"defKey":"url","defName":"文件地址","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"3A27865F-B4F5-4733-BB0A-648C9CEF8760"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"5BA18D9F-A5FC-4DEE-B47A-89A499602E77"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"3BC2CFF0-6CC7-41BB-9A09-FB2023C35A75"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"7D636DA3-CD09-4B1D-B2D6-582C26936851"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"FCD7BE0E-E489-413C-A82F-B151E385379A"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"5CDB0A20-A749-4690-A17B-25C56A3D0DB9"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"831E9862-E72E-4942-B03E-697BA5CE7737"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"2D27301D-9C1A-4FC9-9BCA-DA040F5BB23F"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"9AE618C5-900E-40B0-B2F7-32DF14960225"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"D4AC4827-D866-4ED9-95FB-35AD01EDB535"}],"correlations":[],"indexes":[],"type":"P"},{"id":"DD0AB927-6E56-4160-BE38-885EA5A64F92","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"kmc_knowledge","defName":"知识表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"C18349CF-C544-4E11-BA90-DD7AF74A4CEB"},{"defKey":"name","defName":"名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"63F46C57-EDB7-4467-AAC1-92FB9D903489"},{"defKey":"introduction","defName":"简介","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"70457999-01DE-44BE-83C7-8ED9F2A3EEAF"},{"defKey":"type","defName":"知识分类","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"629E062E-A370-482E-B5AB-3B3CD59E9BE6"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"703F0E65-7CEE-4853-97D4-BF30455C68DB"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"7BB96400-55F7-49FD-B93D-848A6AE451E4"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"F2E8EAC0-9141-471B-B261-22A231AB1A28"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"3EF5E530-6834-4EA2-A7B2-C2F2D52CA3C7"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"B1FEF9AB-7B1B-4DE3-92E0-AB24C04D8BD0"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"85D561A2-4F6B-4A99-8D6C-84F2FF78DE80"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"A3C33C5E-1D32-4E42-A30E-9721D10C6ABE"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"D316D980-A3FF-422F-8DF0-01719009FF04"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"D2D7FD71-D6E3-425E-B180-C5D0AB606BB2"}],"correlations":[],"indexes":[],"type":"P"},{"id":"FFDC294C-CB63-4BCE-8367-A614D65BC890","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"kmc_docment","defName":"知识文件表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"057B24AD-4225-4F0A-9CAC-C021093CE277"},{"defKey":"knowledge_id","defName":"知识id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"3315A0FE-0EA2-4930-89F5-B842204E5DB3"},{"defKey":"name","defName":"文件名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"624C7EC8-6D78-4428-A645-F2B7A6D8C01F"},{"defKey":"url","defName":"文件地址","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"5EBC7B8A-BC88-4113-9039-0C82CAFE8AF1"},{"defKey":"introduction","defName":"文件描述","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"7DD4A063-AE18-4A6E-952B-4A9C1A88AB26"},{"defKey":"type","defName":"文件类型","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"D55637B1-6EBA-4EAE-8E6C-B1023D35C1FB"},{"defKey":"size","defName":"文件大小","comment":"","type":"BIGINT","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"","id":"A20EA9C8-2901-415F-A467-FF8F390B0BB9"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"7F70E892-B4B2-45C8-AA67-E578C5E7F215"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"AB0CAF16-9588-44DD-8975-4FB33A10F93B"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"3A425F18-C392-475D-824D-526E1A2CEFE0"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"EA599FC1-9AAD-4D70-ABB2-51729AA3E4C1"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"55913BE7-2AA2-4D9E-BF10-81FD01645975"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"B3B7CD16-B6D2-4AB0-8979-ECF9A12974B8"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"651BD06C-B0F4-45A4-A064-1855F07C22E5"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"7CBEAB69-1E55-4A98-BBC2-7CBA5BFAAF29"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"60FD1525-2ABA-4995-82FE-9C28B2269243"}],"correlations":[],"indexes":[],"type":"P"},{"id":"CA5F725A-8031-40BE-90D2-F444C2B2EE85","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"pmc_project","defName":"项目表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"B5324698-CE43-4C4B-8901-7EEEE6F968E0"},{"defKey":"name","defName":"项目名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"98534CE6-42C4-4CB8-8AFD-C1642EA4BDB7"},{"defKey":"description","defName":"项目描述","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"13B331F7-48A1-4DC1-9026-980ACCF51754"},{"defKey":"icon","defName":"项目图标","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"B1320E7A-0F53-4B25-BE4D-9D49960BB21B"},{"defKey":"begin_time","defName":"开始时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"8EBC0DBD-F4CB-43B8-B975-E836BCAF7972"},{"defKey":"end_time","defName":"结束时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"10B9C61F-C8D2-4ED8-9D3E-753F61D8BBF0"},{"defKey":"status","defName":"项目状态","comment":"0:活动,1:已结束2:未开始","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"8FFF573D-03DD-45C1-966A-679BBC53D307","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744"},{"defKey":"owner_id","defName":"负责人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"EF86AB05-9800-4CE2-ADE0-C753167C81C6"},{"defKey":"owner_name","defName":"负责人名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"6BA1003A-E2B4-4B92-8ECF-32DEC0BC5A95"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"F7F80DB5-2028-4A05-9E1F-44C1C553348D"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"CBD6C930-4984-41D9-BEC6-12528A73AE2C"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"9C94E77C-118B-45FD-A543-2CA4B02E720E"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"BB43F5A7-3796-45F7-ABB5-50E0D75C27A8"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"F76F7DE3-13FD-4327-AEC1-BC18568CAB31"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"BA41712F-12D6-41F3-9F0E-22367D802C8A"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"63286A56-5124-41E9-86D6-335A47D770D3"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"8930EEBE-2128-459C-990D-32CC51F14241"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"BACA99C9-D90E-48C0-A37B-C1C9723F3C86"}],"correlations":[],"indexes":[],"type":"P"},{"id":"91636B86-0D92-4AA9-B0A3-E5F154CBDB12","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"pmc_story","defName":"故事表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"37F06483-9D67-40EB-A106-702000783005"},{"defKey":"project_id","defName":"项目id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"C7351864-397D-48C5-9CA3-53D3CF419D3C"},{"defKey":"sprint_id","defName":"sprint id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"3410D824-4719-4B0B-A510-689646D769A9"},{"defKey":"title","defName":"标题","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"624A4B73-D15F-4306-9B45-2B835485BDB7"},{"defKey":"content","defName":"内容","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"B17BDED3-085F-40E1-9019-3B79CF2BF075","extProps":{},"domain":"D3C06E04-3E8E-4FA7-BD2F-A62B5206E305","id":"3EF3F2EC-2C78-40CA-8684-19CD150E3A64"},{"defKey":"begin_time","defName":"开始时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"240A3AA1-0B80-400F-9195-270AF2707BEF","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098"},{"defKey":"end_time","defName":"结束时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"E72BA8E5-62F4-4AED-8367-3D39E34C0A7D","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098"},{"defKey":"priority","defName":"优先级","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"EA65F639-6415-43D5-926F-9FAC4C1099B9"},{"defKey":"duration","defName":"时间估算","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"5987E52E-13EC-4372-A965-A07AAB8D8500"},{"defKey":"true_duration","defName":"实际耗时","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"DB7811EA-A575-445D-B03E-AA0BE1283BD6"},{"defKey":"owner_id","defName":"负责人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"8384A906-4B2A-4EA0-AA54-C1A27EA36A5C"},{"defKey":"owner_name","defName":"负责人名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","id":"5F82B9D2-4AEE-4419-A532-DDEADB6BCEFC"},{"defKey":"demo","defName":"如何演示","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"1AB1B6DC-8706-4ECD-BA77-BED44D956ABC"},{"defKey":"status","defName":"状态","comment":"状态 0:规划中,1:进行中,2:已结束,3:已拒绝","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"C0EF5F9F-B5FC-4E5B-8FF1-ED49EC87E4DE"},{"defKey":"task_count","defName":"任务数","comment":"冗余字段","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"278F7BEF-3544-412F-95DB-BB50B7B8F456"},{"defKey":"test_case_count","defName":"测试用例数","comment":"冗余字段","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"7046A346-6DB1-4CEE-8AD5-CB616EC005B2"},{"defKey":"sort_order","defName":"排序","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"EBC965AE-8A36-4365-A96F-51F958871AA3"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"2657A546-BF67-49C9-A257-97CA411AA800"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"342D2C74-5099-4651-9B84-A17130E82429"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"3D75B7CE-075F-4293-B2A4-9A078320D12F"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"9CE2E80E-4C7E-4212-8412-D9415EDBC0F5"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"F1E4A696-CC96-42E8-9D08-9890FB21FA97"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"A004AF1C-F5BE-445F-85A1-3313DF2B40D9"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"01F2D7C8-5704-4E59-9BF8-179C7BE37671"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"EEBB5249-0FC2-4B5F-B154-DFF08B63ED67"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"5D275C00-4415-47E1-AA08-A3CF82F93633"}],"correlations":[],"indexes":[],"type":"P"},{"id":"9BACA5C1-26CB-4576-ABCC-B13899A14ED9","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"pmc_task","defName":"任务表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"735B20DB-6F11-4BB6-BF15-F99F38575F80"},{"defKey":"project_id","defName":"项目id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"3F146417-87B3-415E-B350-66A61BAA72CD"},{"defKey":"story_id","defName":"故事id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"27A6950A-9424-4856-8093-6AAE75FE1C9C"},{"defKey":"title","defName":"标题","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"3F67274F-6EF0-4965-9C31-476408F92420","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"content","defName":"内容","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D3C06E04-3E8E-4FA7-BD2F-A62B5206E305","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"ACB1C367-E7C0-4EE6-92C1-2E03FE7FB1D7","baseType":"B17BDED3-085F-40E1-9019-3B79CF2BF075"},{"defKey":"priority","defName":"优先级","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"C0645874-2CB1-4B58-830C-51307A255631","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"2DD7550C-3A89-40BF-BC50-756D2A08090E","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0"},{"defKey":"duration","defName":"时间估算","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"C0645874-2CB1-4B58-830C-51307A255631","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"D36756FC-E550-4838-B731-90391B66EEC7","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0"},{"defKey":"true_duration","defName":"实际耗时","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"C0645874-2CB1-4B58-830C-51307A255631","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"85A32C16-407B-4B52-BD80-BF626690DEAA","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0"},{"defKey":"owner_id","defName":"负责人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"692814E8-B2B4-44E7-8DE0-CA289611EE86","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"owner_name","defName":"负责人名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"F3640AB5-09FA-41AD-9A20-A8A9F99E90FB","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"status","defName":"状态","comment":"状态 0:未开始,1:进行中,2:已完成","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"B24C2F40-6BA0-4FD5-BDBD-C148C45CD230","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744"},{"defKey":"sort_order","defName":"排序","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"C0645874-2CB1-4B58-830C-51307A255631","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"4595D56E-3868-4E28-A3A0-F579F18BE0F6","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"3818668F-E5B3-47ED-B9D2-00988D6512DE"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"C744D6C5-8CFF-407D-A12B-D07E6B29D973"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"192CE9E4-2FA7-4FCC-807D-13C644D5534A"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"B92BF31F-C87F-40E5-8F64-CBFBEAB0EE61"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"A2C9F4B0-A7D9-49F3-82CA-A6EBDD58C647"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"96A8A0E5-D1AC-4274-9924-2929872B3CF7"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"022A6EB9-0C45-4436-B8C4-466779D3BCBD"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"6E61D6BA-D5C1-4F59-ADCA-47BD94BB20AD"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"79027EB6-4F2B-4A3A-98FA-222245D6B2D1"}],"correlations":[],"indexes":[],"type":"P"},{"id":"047D8826-16DC-4C9E-87D6-7CB33ADBC100","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"pmc_sprint","defName":"冲刺管理","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"70FE026C-3EB5-42A5-AB55-AA65346C9B0C"},{"defKey":"project_id","defName":"项目id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"46FBDF3D-A4E5-4E98-AC37-167BD13C0ABC","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"title","defName":"标题","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","id":"06F19BE4-143A-4CF4-8B4F-D640E92AE235"},{"defKey":"target","defName":"目标","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"59FC146B-20DC-43B4-A150-9E610299AFF7"},{"defKey":"begin_time","defName":"开始时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"BCA845D0-11BE-4FC3-B3F7-831F9FAC8151"},{"defKey":"end_time","defName":"结束时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"75AF7B4E-4481-45C1-85D2-E7B5EDEF12A6"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"C4EC0FB1-FB4D-4610-BC70-141B9FB7893F"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"827D9173-B364-4AC8-9AC7-1F5AF28F8ACB"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"B0491343-8F52-4441-8744-4BF0B06C8D5F"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"72D85C1E-07E3-4010-8CE3-BD55382C5D9B"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"277B8A28-7ED6-4379-826E-55E6C7016C54"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"937452AB-6E0D-40F2-910B-51B9406D0501"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"CFF78CC9-16F4-43F2-A52B-22ECE650F673"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"358F562E-97F7-4E33-8679-80075E9C40D9"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"023B1554-56B3-481D-A850-2A1640858741"}],"correlations":[],"indexes":[],"type":"P"},{"id":"E3D507C6-44C4-47B1-B95D-C06C8DAADFF4","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"pmc_apply","defName":"报销管理","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"6787F9D5-5918-4441-A7D0-087A60E1C5E0"},{"defKey":"project_id","defName":"项目id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"B0D07939-7F7E-47BF-BD2A-B09640DBA6A3","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"type","defName":"报销类型","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"49540AB2-6882-4514-B175-0FAF8EC09086"},{"defKey":"cost","defName":"报销金额","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"1CC7EA70-DF00-4ADD-940D-11B14B1C8BBF"},{"defKey":"time","defName":"报销时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"A00BA814-B4AB-4967-888A-7F5346F8F823"},{"defKey":"status","defName":"审核状态","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"1145B3FD-1962-4C98-8DB1-32DB11600A40"},{"defKey":"check_time","defName":"审核时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"3782D174-5AF4-44E7-855C-E8ADE2E25405"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"6757F851-2262-4DF7-BE9C-3B734D82AD62"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"E94F32D2-6402-4209-B507-6D2038CC5731"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"E3DA1271-E623-4F58-AA55-D4BAB7CBD023"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"09C4D51F-2D34-4562-8EE8-F0D20BECD793"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"72DC9D18-DBFB-47ED-9773-699149B2AA56"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"750016A5-1E1E-4328-80A9-6E598B2C3131"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"0762EB4F-684A-4AEC-B42A-75C56BA6DCFE"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"CDE8E6C1-E7F2-4F6D-AE70-6157EFEC341A"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"231B59F3-8207-4DFC-BAAD-B84340A2F0CB"}],"correlations":[],"indexes":[],"type":"P"},{"id":"43D215A4-41EE-4A2B-83B9-734B967F5C75","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"pmc_apply_item","defName":"报销明细表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"B90F52C5-D74E-4C38-8179-B5DEE2B38B88"},{"defKey":"project_id","defName":"项目id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"406F9CF8-6FA4-40A4-8CB6-456EA3818809","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"apply_id","defName":"报销id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"ED7DF008-FD4F-4F87-B467-CCAEAFAEC879"},{"defKey":"type","defName":"费用类型","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"48143B20-1B4D-4D57-B948-868FCA6D3627"},{"defKey":"expense_time","defName":"费用发生时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"0087BA5B-E797-4270-B910-8869709DFBBD"},{"defKey":"cost","defName":"费用金额","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"AC728BFD-310E-41F3-9982-D052DAEB7D9F"},{"defKey":"reason","defName":"费用事由","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"7C4A2C2E-9801-41E9-A0CE-CBEDD424E88B"},{"defKey":"file","defName":"相关凭证","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"23015E0D-D599-45B9-9725-E1764AA5FC56"},{"defKey":"rank","defName":"报销顺序","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"AC9A0B01-8257-4C63-889C-8496098146D2"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"636F89A1-0426-4CF2-8118-D16166C60C9E"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"0BFCC0EC-5D60-4D70-B14F-8D8495C9532B"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"01BB6B4B-0075-480D-BB69-399616B006FF"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"EFE74DEC-35A5-4902-B224-DF4D7B7E648F"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"29D8A02A-0394-40A6-9D40-B1D632675993"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"266EFAFD-3207-40B1-B851-33FB1ABFDB2B"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"D2B06A0D-F63E-4285-91A2-2F6B0B154233"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"4D17C670-FEC9-4177-BFCC-9AD99DFEC432"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"A3F59504-23CF-421D-A7B8-6C6CDEBB9562"}],"correlations":[],"indexes":[],"type":"P"},{"id":"D80C18DF-4800-4994-8357-13ACAC8BCEDF","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"pmc_work_report","defName":"报工表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"CB35A2B5-6851-44C8-B40E-595E8A1519FC"},{"defKey":"status","defName":"当日状态","comment":"0:上班,1:请假","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"A5E79CDC-EAC5-4FCE-8356-F10B0CE005AD"},{"defKey":"report_by","defName":"报工人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"D727EFC5-553A-461F-9D40-AA4993F04205"},{"defKey":"report_time","defName":"报工时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"78F31FF1-DCB2-4B87-B1B5-82CA5072807D"},{"defKey":"report_content","defName":"报工内容","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"42650E95-C2AD-4054-BA55-A4022C4D612B"},{"defKey":"report_experience","defName":"工作心得","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"6BAC9134-FF55-4F80-A225-B69BED138EED"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"D52FC3DB-0EC3-440E-B759-C7F7B377541E"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"29331F16-77C9-499E-BABC-2ADA4FEB34FF"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"B3BB6A9C-11F1-40A1-8029-ADA1B051A902"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"BC43D52A-6BAD-428A-9627-1D853EF4299B"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"6DA56AE2-5F8F-4681-BFE4-54ACEC9FD0F5"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"F013B39A-EA40-474E-8BDE-FD3B2A66E4CD"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"C31F4407-89DC-4C7C-B312-6374D68DF1CC"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"A6A0DEF9-22E2-406A-8064-FCAC62689892"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"0797FDB6-4DF7-4A65-AD70-4731AC68527E"}],"correlations":[],"indexes":[],"type":"P"},{"id":"94B25D62-6EAC-4A67-945F-564FEE7091E2","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"pmc_work_report_item","defName":"报工明细","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"1073475F-E31F-4431-BA18-FB852B0A53E5"},{"defKey":"project_id","defName":"项目id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"376498F5-BC7A-42EF-9336-F5C19219D1AD","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"work_report_id","defName":"报工id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"43B0D8A5-45E6-45F3-96E3-2EEBD5113E6B"},{"defKey":"duration","defName":"工作时长","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"C0645874-2CB1-4B58-830C-51307A255631","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"0296F356-2910-4F4D-9781-998A1CC3ACC7","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0"},{"defKey":"reporter_name","defName":"报工人名字","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5","id":"E62FA1BB-A8A3-4D0A-9B3E-2244A77A91B1"},{"defKey":"report_by","defName":"报工人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"3C3F0356-FC53-490A-AD90-16E2FB300B64"},{"defKey":"report_time","defName":"报工日期","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"789F107D-F4AE-4A2E-912D-26E34F7163F7"},{"defKey":"status","defName":"报工状态","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"FC9CA0FB-33A3-4269-B8C1-AB2BB7B3D283"},{"defKey":"audit_id","defName":"审核人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"5D92C0BF-6871-47BC-9BC8-78ADFC369204","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"audit_by","defName":"审核人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"ACE51D1A-6D48-47F7-9FBE-77705716F5FC","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"audit_time","defName":"审核时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"4C8F2100-4385-4407-B11E-F97910D60066","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098"},{"defKey":"audit_reason","defName":"审核原因","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"D859AD9F-9830-436D-90FF-F25D2E26CB41","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"ADE37EEC-7B72-4668-B7C1-3C46F48C727C"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"D0F53CAB-4C1C-45C7-8CAC-1BCE1CDEF5BC"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"92974599-9305-4D97-BE23-E71BFDFC1924"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"07D6DC94-1E88-40C9-9681-4DC9BD4A10E6"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"7D72EFCE-2703-4A37-9A8E-708A18B637C9"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"0195EF09-5623-4268-9DF6-B877D819A155"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"15BACD0A-0724-4C4F-996F-DC9363CD28C7"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"A674D031-F5C0-4DF7-9BF1-4EE97622B71E"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"A2C4C260-8EF7-406F-90DD-A6436BB1B8DC"}],"correlations":[],"indexes":[],"type":"P"},{"id":"75194151-C6E3-4B9D-BC9D-9D36E10A4B18","env":{"base":{"nameSpace":"","codeRoot":""}},"defKey":"pmc_issue","defName":"缺陷管理表","comment":"","properties":{"partitioned by":"(date string)","row format delimited":"","fields terminated by ','":"","collection items terminated by '-'":"","map keys terminated by ':'":"","store as textfile;":""},"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"notes":{},"headers":[{"refKey":"hideInGraph","hideInGraph":true},{"refKey":"defKey","freeze":false,"hideInGraph":false},{"refKey":"defName","freeze":false,"hideInGraph":false},{"refKey":"primaryKey","freeze":false,"hideInGraph":false},{"refKey":"notNull","freeze":false,"hideInGraph":true},{"refKey":"autoIncrement","freeze":false,"hideInGraph":true},{"refKey":"domain","freeze":false,"hideInGraph":true},{"refKey":"type","freeze":false,"hideInGraph":false},{"refKey":"len","freeze":false,"hideInGraph":false},{"refKey":"scale","freeze":false,"hideInGraph":false},{"refKey":"comment","freeze":false,"hideInGraph":true},{"refKey":"refDict","freeze":false,"hideInGraph":true},{"refKey":"defaultValue","freeze":false,"hideInGraph":true},{"refKey":"isStandard","freeze":false,"hideInGraph":false},{"refKey":"uiHint","freeze":false,"hideInGraph":true},{"refKey":"extProps","freeze":false,"hideInGraph":true},{"refKey":"attr1","freeze":false,"hideInGraph":true},{"refKey":"attr2","freeze":false,"hideInGraph":true},{"refKey":"attr3","freeze":false,"hideInGraph":true},{"refKey":"attr4","freeze":false,"hideInGraph":true},{"refKey":"attr5","freeze":false,"hideInGraph":true},{"refKey":"attr6","freeze":false,"hideInGraph":true},{"refKey":"attr7","freeze":false,"hideInGraph":true},{"refKey":"attr8","freeze":false,"hideInGraph":true},{"refKey":"attr9","freeze":false,"hideInGraph":true}],"fields":[{"defKey":"id","defName":"ID","comment":"","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"F399DACB-99A8-4525-9C2C-675A88DB4670"},{"defKey":"project_id","defName":"项目id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","refDict":"","extProps":{},"notes":{},"attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"A1EE1413-019A-4B26-990F-01854CA80AF8","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"title","defName":"标题","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"87B2EE29-14E3-4CF8-AF5B-95A2EB05433C"},{"defKey":"content","defName":"内容","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"8BAA6D36-E861-475C-A009-C032754D764F"},{"defKey":"severity","defName":"严重程度","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"F8B5BCA5-C59E-4BE4-B6F1-78332704A306"},{"defKey":"priority","defName":"优先级","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"C8863F2C-CDC0-4D4E-B7A8-4175F259DC65"},{"defKey":"begin_time","defName":"开始时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"3314AE9C-88CD-4100-8964-957D0B83A09B"},{"defKey":"end_time","defName":"结束时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"6C04CA4D-F1D4-4198-BECC-CA2B73D737CB"},{"defKey":"duration","defName":"时间估算","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"446D7A84-7A18-4BC7-9ED4-69E1FABD8764"},{"defKey":"true_duration","defName":"实际耗时","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","extProps":{},"domain":"C0645874-2CB1-4B58-830C-51307A255631","id":"ABA1C9B0-4988-4427-834B-5A2015A14B8D"},{"defKey":"demo","defName":"如何演示","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140","id":"B0F1B582-95AF-400D-97EC-75E4F6BD4B50"},{"defKey":"owner_id","defName":"负责人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"86216967-D22E-4F90-9AEE-88253445FD78"},{"defKey":"owner_name","defName":"负责人名称","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"118A9191-7E4C-4F66-96D0-EFE23833A5EA","id":"164CD9BC-334D-43EC-A0AF-C8E5A4623354"},{"defKey":"status","defName":"状态","comment":"状态 0:规划中,1:进行中,2:已结束,3:已拒绝","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"80DA554F-03A8-499C-A2BE-605035BBA744","extProps":{},"domain":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919","id":"D8608390-225A-48F3-91F8-BFF3596A6A80"},{"defKey":"valid_flag","defName":"是否有效","comment":"0:无效,1:有效","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"1","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"043BB9CA-5C02-4CDF-B4EC-30BBED620EF1"},{"defKey":"del_flag","defName":"删除标志","comment":"1:已删除,0:未删除","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","baseType":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","extProps":{},"domain":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA","id":"2565BE7E-C6A6-4D17-8D7F-BE145A51C1EC"},{"defKey":"create_by","defName":"创建人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"B1CACFB3-A865-46AE-ACE6-F357AD144F66"},{"defKey":"creator_id","defName":"创建人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"B6343310-92E2-4302-B06E-81AE314FFF9E"},{"defKey":"create_time","defName":"创建时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"21E225D4-D093-4A96-90B2-FDDF2789AD87"},{"defKey":"update_by","defName":"更新人","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"7B55AA86-D2C8-46AC-82D6-80455B687987","id":"7BDF8F14-9088-46A0-9074-457D19EC8CBA"},{"defKey":"updator_id","defName":"更新人id","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"domain":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE","id":"F50EF299-FFA6-44B9-9A14-75F6B558FE40"},{"defKey":"update_time","defName":"更新时间","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"CURRENT_TIMESTAMP","hideInGraph":false,"refDict":"","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"domain":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD","id":"D544D053-1C13-476F-9E96-AAFEFE697FFE"},{"defKey":"remark","defName":"备注","comment":"","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"domain":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E","id":"5CB8C84B-CC16-416F-BFC2-F4ADB51AFC3D"}],"correlations":[],"indexes":[],"type":"P"}],"views":[],"dicts":[],"viewGroups":[{"defKey":"AUTH","defName":"统一认证","refEntities":["2686504C-2B1C-42D8-831F-5BD8BCA96AFE","30E630FA-6365-4175-B89D-87906DF59757"],"refViews":[],"refDiagrams":[],"refDicts":[],"id":"6D4FA24B-B740-4C4B-8C9F-BF51AB41F924","undefined":[]},{"defKey":"KMC","defName":"知识中心","refEntities":["DD0AB927-6E56-4160-BE38-885EA5A64F92","FFDC294C-CB63-4BCE-8367-A614D65BC890"],"refViews":[],"refDiagrams":[],"refDicts":[],"id":"94FDE775-C9A8-4026-8CB5-A58D02EB3457"},{"defKey":"EXAMPLE","defName":"示例模块","refEntities":["940575BF-97DC-4655-9E32-73ED81694B25","FADAFD12-9039-4AE2-A563-57866DE970BE","9C506352-A9C9-4000-8B9F-228F1E595225","660CAD2E-4A06-4CF7-B1D2-F12F01DC48D9","E3D507C6-44C4-47B1-B95D-C06C8DAADFF4","43D215A4-41EE-4A2B-83B9-734B967F5C75"],"refViews":[],"refDiagrams":[],"refDicts":[],"id":"CED18F73-6B40-4B92-BF09-9C7872CFA9E8","undefined":[]},{"defKey":"BASIC","defName":"系统基础","refEntities":["2927AFC1-172C-4C56-9886-71D0D1361242","547234B4-485C-4289-9E1C-C24DAC8B7C3E","629B3699-68AD-4CEF-9E8F-7EC292B2C1D5"],"refViews":[],"refDiagrams":[],"refDicts":[],"id":"9FB8A362-DA83-440D-AFA7-001D34D7F9FB"},{"defKey":"AI","defName":"AI模块","refEntities":["0404E9CF-B9B0-42E4-9240-C24839643BCB","691172D1-1D2A-4D2D-9460-4AC9CF25DE1E","33B5C3D0-2DBC-4835-90EC-10E4DBC99A2E"],"refViews":[],"refDiagrams":[],"refDicts":[],"id":"B65015BD-7CC8-4C44-BC17-669FC5C17FD1"},{"defKey":"PMC","defName":"项目中心","refEntities":["CA5F725A-8031-40BE-90D2-F444C2B2EE85","91636B86-0D92-4AA9-B0A3-E5F154CBDB12","9BACA5C1-26CB-4576-ABCC-B13899A14ED9","047D8826-16DC-4C9E-87D6-7CB33ADBC100","D80C18DF-4800-4994-8357-13ACAC8BCEDF","94B25D62-6EAC-4A67-945F-564FEE7091E2","75194151-C6E3-4B9D-BC9D-9D36E10A4B18"],"refViews":[],"refDiagrams":[],"refDicts":[],"id":"0E3793EA-EB34-47DB-956D-E3AFF84BEEB6"}],"dataTypeMapping":{"referURL":"","mappings":[{"defKey":"string","id":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","defName":"字串","29D1CE08-4C35-4D2D-AAA9-23D93305B52E":"VARCHAR","A4E23CB7-BB01-4BD1-9F71-F73F3E15A542":"VARCHAR2","BFC87171-C74F-494A-B7C2-76B9C55FACC9":"VARCHAR","DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022":"VARCHAR","89504F5D-94BF-4C9E-8B2E-44F37305FED5":"VARCHAR","0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307":"VARCHAR2","592C7013-143D-4E7B-AF64-0D7BF1E28230":"VARCHAR","77BD85E5-9D0D-4096-8427-CBA306FC9C6A":"VARCHAR","11D1FB71-A587-4217-89BA-611B8A1F83E0":"STRING","B363BE0B-F852-49B8-9B2E-F6D2174DEAC1":"TEXT","797A1496-D649-4261-89B4-544132EC3F36":"String","895CFD1D-4273-4D32-A2C4-CAC70200AB5B":"String","A2EE7B4A-CE62-4290-B00C-B26C1BF18073":"String","F3AC2415-E86B-40C6-9FEB-F4B7937D2C30":"string","81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2":"string","B91D99E0-9B7C-416C-8737-B760957DAF09":"string","BDF457FD-9F98-4AC3-A705-7587B00A3BAB":"String","56F4B55B-F0B8-4049-9E6B-50B95C1D793A":"VARCHAR","483F9346-C99E-4014-A1D2-A554606BD8A3":"VARCHAR","ABF5836C-0B7C-4007-A41C-F869325E5842":"VARCHAR"},{"defKey":"double","id":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","defName":"小数","29D1CE08-4C35-4D2D-AAA9-23D93305B52E":"DECIMAL","A4E23CB7-BB01-4BD1-9F71-F73F3E15A542":"DECIMAL","BFC87171-C74F-494A-B7C2-76B9C55FACC9":"DECIMAL","DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022":"NUMERIC","89504F5D-94BF-4C9E-8B2E-44F37305FED5":"DECIMAL","0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307":"DECIMAL","592C7013-143D-4E7B-AF64-0D7BF1E28230":"NUMERIC","77BD85E5-9D0D-4096-8427-CBA306FC9C6A":"NUMERIC","11D1FB71-A587-4217-89BA-611B8A1F83E0":"DOUBLE","B363BE0B-F852-49B8-9B2E-F6D2174DEAC1":"REAL","797A1496-D649-4261-89B4-544132EC3F36":"Double","895CFD1D-4273-4D32-A2C4-CAC70200AB5B":"Double","A2EE7B4A-CE62-4290-B00C-B26C1BF18073":"Double","F3AC2415-E86B-40C6-9FEB-F4B7937D2C30":"decimal","81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2":"double","B91D99E0-9B7C-416C-8737-B760957DAF09":"*float64","BDF457FD-9F98-4AC3-A705-7587B00A3BAB":"f64","56F4B55B-F0B8-4049-9E6B-50B95C1D793A":"DECIMAL","483F9346-C99E-4014-A1D2-A554606BD8A3":"DECIMAL","ABF5836C-0B7C-4007-A41C-F869325E5842":"NUMERIC"},{"defKey":"int1","id":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","defName":"整数","29D1CE08-4C35-4D2D-AAA9-23D93305B52E":"INT","A4E23CB7-BB01-4BD1-9F71-F73F3E15A542":"INT","BFC87171-C74F-494A-B7C2-76B9C55FACC9":"INT","DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022":"INTEGER","89504F5D-94BF-4C9E-8B2E-44F37305FED5":"INT","0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307":"INTEGER","592C7013-143D-4E7B-AF64-0D7BF1E28230":"INTEGER","77BD85E5-9D0D-4096-8427-CBA306FC9C6A":"INT4","11D1FB71-A587-4217-89BA-611B8A1F83E0":"INT","B363BE0B-F852-49B8-9B2E-F6D2174DEAC1":"INTEGER","797A1496-D649-4261-89B4-544132EC3F36":"Integer","895CFD1D-4273-4D32-A2C4-CAC70200AB5B":"Integer","A2EE7B4A-CE62-4290-B00C-B26C1BF18073":"Integer","F3AC2415-E86B-40C6-9FEB-F4B7937D2C30":"float","81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2":"int","B91D99E0-9B7C-416C-8737-B760957DAF09":"*int","BDF457FD-9F98-4AC3-A705-7587B00A3BAB":"i32","56F4B55B-F0B8-4049-9E6B-50B95C1D793A":"INTEGER","483F9346-C99E-4014-A1D2-A554606BD8A3":"INT","ABF5836C-0B7C-4007-A41C-F869325E5842":"INTEGER"},{"defKey":"BIGINT","id":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","defName":"ID","29D1CE08-4C35-4D2D-AAA9-23D93305B52E":"BIGINT","A4E23CB7-BB01-4BD1-9F71-F73F3E15A542":"INT","BFC87171-C74F-494A-B7C2-76B9C55FACC9":"INT","DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022":"INTEGER","89504F5D-94BF-4C9E-8B2E-44F37305FED5":"INT","0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307":"BIGINT","592C7013-143D-4E7B-AF64-0D7BF1E28230":"INTEGER","77BD85E5-9D0D-4096-8427-CBA306FC9C6A":"INT4","11D1FB71-A587-4217-89BA-611B8A1F83E0":"INT","B363BE0B-F852-49B8-9B2E-F6D2174DEAC1":"INTEGER","797A1496-D649-4261-89B4-544132EC3F36":"Integer","895CFD1D-4273-4D32-A2C4-CAC70200AB5B":"Integer","A2EE7B4A-CE62-4290-B00C-B26C1BF18073":"Integer","F3AC2415-E86B-40C6-9FEB-F4B7937D2C30":"float","81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2":"int","B91D99E0-9B7C-416C-8737-B760957DAF09":"*int","BDF457FD-9F98-4AC3-A705-7587B00A3BAB":"i32","56F4B55B-F0B8-4049-9E6B-50B95C1D793A":"INTEGER","483F9346-C99E-4014-A1D2-A554606BD8A3":"INT","ABF5836C-0B7C-4007-A41C-F869325E5842":"INTEGER"},{"defKey":"date","id":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","defName":"日期","29D1CE08-4C35-4D2D-AAA9-23D93305B52E":"DATETIME","A4E23CB7-BB01-4BD1-9F71-F73F3E15A542":"DATE","BFC87171-C74F-494A-B7C2-76B9C55FACC9":"DATETIME","DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022":"TIMESTAMP","89504F5D-94BF-4C9E-8B2E-44F37305FED5":"DATE","0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307":"DATETIME","592C7013-143D-4E7B-AF64-0D7BF1E28230":"DATE","77BD85E5-9D0D-4096-8427-CBA306FC9C6A":"DATE","11D1FB71-A587-4217-89BA-611B8A1F83E0":"DATETIME","B363BE0B-F852-49B8-9B2E-F6D2174DEAC1":"NUMERIC","797A1496-D649-4261-89B4-544132EC3F36":"Date","895CFD1D-4273-4D32-A2C4-CAC70200AB5B":"Date","A2EE7B4A-CE62-4290-B00C-B26C1BF18073":"Date","F3AC2415-E86B-40C6-9FEB-F4B7937D2C30":"DateTime","81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2":"timestamp","B91D99E0-9B7C-416C-8737-B760957DAF09":"*time.Time","BDF457FD-9F98-4AC3-A705-7587B00A3BAB":"DateTime","56F4B55B-F0B8-4049-9E6B-50B95C1D793A":"DATE","483F9346-C99E-4014-A1D2-A554606BD8A3":"DATETIME","ABF5836C-0B7C-4007-A41C-F869325E5842":"DATE"},{"defKey":"bytes","id":"D516E75B-90F5-4741-B9B3-A186A263F04C","defName":"二进制","29D1CE08-4C35-4D2D-AAA9-23D93305B52E":"BLOB","A4E23CB7-BB01-4BD1-9F71-F73F3E15A542":"BLOB","BFC87171-C74F-494A-B7C2-76B9C55FACC9":"VARBINARY","DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022":"BYTEA","89504F5D-94BF-4C9E-8B2E-44F37305FED5":"BLOB","0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307":"BLOB","592C7013-143D-4E7B-AF64-0D7BF1E28230":"BYTEA","77BD85E5-9D0D-4096-8427-CBA306FC9C6A":"BYTEA","11D1FB71-A587-4217-89BA-611B8A1F83E0":"BINARY","B363BE0B-F852-49B8-9B2E-F6D2174DEAC1":"NONE","797A1496-D649-4261-89B4-544132EC3F36":"byte[]","895CFD1D-4273-4D32-A2C4-CAC70200AB5B":"byte[]","A2EE7B4A-CE62-4290-B00C-B26C1BF18073":"byte[]","F3AC2415-E86B-40C6-9FEB-F4B7937D2C30":"binary","81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2":"binary","B91D99E0-9B7C-416C-8737-B760957DAF09":"[]byte","56F4B55B-F0B8-4049-9E6B-50B95C1D793A":"BYTE","ABF5836C-0B7C-4007-A41C-F869325E5842":"BYTEA"},{"defKey":"largeText","id":"B17BDED3-085F-40E1-9019-3B79CF2BF075","defName":"大文本","29D1CE08-4C35-4D2D-AAA9-23D93305B52E":"TEXT","A4E23CB7-BB01-4BD1-9F71-F73F3E15A542":"CLOB","BFC87171-C74F-494A-B7C2-76B9C55FACC9":"TEXT","DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022":"TEXT","89504F5D-94BF-4C9E-8B2E-44F37305FED5":"CLOB","0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307":"TEXT","592C7013-143D-4E7B-AF64-0D7BF1E28230":"TEXT","77BD85E5-9D0D-4096-8427-CBA306FC9C6A":"TEXT","11D1FB71-A587-4217-89BA-611B8A1F83E0":"STRING","B363BE0B-F852-49B8-9B2E-F6D2174DEAC1":"TEXT","797A1496-D649-4261-89B4-544132EC3F36":"String","895CFD1D-4273-4D32-A2C4-CAC70200AB5B":"String","A2EE7B4A-CE62-4290-B00C-B26C1BF18073":"String","F3AC2415-E86B-40C6-9FEB-F4B7937D2C30":"string","81CCA482-3F4D-4EAC-8CF9-F5E7BC098AD2":"string","B91D99E0-9B7C-416C-8737-B760957DAF09":"string","BDF457FD-9F98-4AC3-A705-7587B00A3BAB":"String","56F4B55B-F0B8-4049-9E6B-50B95C1D793A":"TEXT","483F9346-C99E-4014-A1D2-A554606BD8A3":"STRING","ABF5836C-0B7C-4007-A41C-F869325E5842":"TEXT"},{"defKey":"TINYINT","defName":"字节类型","id":"80DA554F-03A8-499C-A2BE-605035BBA744","29D1CE08-4C35-4D2D-AAA9-23D93305B52E":"TINYINT(4) UNSIGNED","0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307":"char(1)"},{"defKey":"tinyint-1","defName":"BOOL","id":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","29D1CE08-4C35-4D2D-AAA9-23D93305B52E":"TINYINT(1)","0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307":"VARCHAR2(1)","89504F5D-94BF-4C9E-8B2E-44F37305FED5":"VARCHAR2(1)","DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022":"VARCHAR2(1)","BFC87171-C74F-494A-B7C2-76B9C55FACC9":"VARCHAR2(1)","A4E23CB7-BB01-4BD1-9F71-F73F3E15A542":"VARCHAR2(1)"},{"defKey":"IntUnsigned","defName":"非负整数","id":"0913CE50-C75E-4445-8C28-850A1929DCDA","29D1CE08-4C35-4D2D-AAA9-23D93305B52E":"INT(10) UNSIGNED","A4E23CB7-BB01-4BD1-9F71-F73F3E15A542":"INT","BFC87171-C74F-494A-B7C2-76B9C55FACC9":"INT","DFBEC1DD-AA84-456E-BBF3-C95DD0DB2022":"INT","89504F5D-94BF-4C9E-8B2E-44F37305FED5":"INT","0BBCABA5-B8E4-41B0-B8E4-8F5EA6029307":"INT"}]},"domains":[{"defKey":"ID","defName":"ID","applyFor":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","len":"","scale":"","uiHint":"","id":"D9CF4D8E-CD60-499C-B46E-2304C7ED36DE"},{"defKey":"name4","defName":"字串32","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":32,"scale":"","uiHint":"","id":"7B55AA86-D2C8-46AC-82D6-80455B687987"},{"defKey":"name6","defName":"字串128","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":128,"scale":"","uiHint":"","id":"D50BCA5E-B26F-40B7-B0ED-DAB2C1BF77A5"},{"defKey":"name3","defName":"字串256","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":256,"scale":"","uiHint":"","id":"118A9191-7E4C-4F66-96D0-EFE23833A5EA"},{"defKey":"name5","defName":"字串1024","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":3072,"scale":"","uiHint":"","id":"99C4A946-2FC2-4470-AC6E-1CB1E24E8140"},{"defKey":"Intro","defName":"备注说明","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":512,"scale":"","uiHint":"","id":"F3FBE692-EA98-420A-BC09-CC3A68CA0F1E"},{"defKey":"Byte","defName":"字节整型(字典)","applyFor":"80DA554F-03A8-499C-A2BE-605035BBA744","len":"","scale":"","uiHint":"","id":"DFC2F6CB-AB7C-4B82-A45D-3EDC26759919"},{"defKey":"tinyint-1","defName":"BOOL","applyFor":"DF3C37DA-5934-40A4-913C-756D5AAA79ED","len":"","scale":"","uiHint":"","id":"81DA4EBC-5A13-4CC2-8359-7C76F17726BA"},{"defKey":"DateTime","defName":"日期时间","applyFor":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","len":"","scale":"","uiHint":"","id":"C49EBB99-CEE0-40B1-9146-6779D2CEC2FD"},{"defKey":"LongText","defName":"大文本","applyFor":"B17BDED3-085F-40E1-9019-3B79CF2BF075","len":"","scale":"","uiHint":"","id":"D3C06E04-3E8E-4FA7-BD2F-A62B5206E305"},{"defKey":"Double","defName":"小数","applyFor":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","len":"","scale":"","uiHint":"","id":"04BC21E4-0215-4A29-BD61-D3161851A44B"},{"defKey":"INT","defName":"整数","applyFor":"6D9D4A5F-CAC4-471F-ADFE-D046ABB5ABD0","len":"","scale":"","uiHint":"","id":"C0645874-2CB1-4B58-830C-51307A255631"}],"diagrams":[],"standardFields":[],"dbConn":[],"logicEntities":[],"namingRules":[{"id":"63F1DC0E-6A76-4B75-B3DA-4B00657B4E1B","defName":"属性代码不能超过32","intro":"","controlIntensity":"S","applyObjectType":"L","applyFieldType":"field","programCode":"return (data.field.defName||\"\").length <= 32","enable":true},{"id":"668CBEE6-E0B7-4ACE-B72E-63942963B191","defName":"长度不能超过32位","intro":"","controlIntensity":"F","applyObjectType":"P","applyFieldType":"entity","programCode":"return (data.entity.defName||\"\").length <= 32","enable":true},{"id":"11BD987F-82E7-418E-A752-FDD84F1582A2","defName":"长度不能超过32位","intro":"","controlIntensity":"F","applyObjectType":"P","applyFieldType":"field","programCode":"return (data.field.defName||\"\").length <= 32","enable":true},{"id":"29D0A8D9-ABE2-451F-8A39-52FAB02E62B9","defName":"索引名-长度不超过32个字符","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"index","programCode":"return (data.index.defName||\"\").length <= 32","enable":true},{"id":"B425A96F-6A31-4DBD-8743-A00DE28FB50F","defName":"不能使用保留字","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"index","programCode":"let sysWords = \"action,add,aggregate,all,alter,after,and,as,asc,avg,avg_row_length,auto_increment,between,bigint,bit,binary,blob,bool,both,by,cascade,case,char,character,change,check,checksum,column,columns,comment,constraint,create,cross,current_date,current_time,current_timestamp,data,database,databases,date,datetime,day,day_hour,day_minute,day_second,dayofmonth,dayofweek,dayofyear,dec,decimal,default,delayed,delay_key_write,delete,desc,describe,distinct,distinctrow,double,drop,end,else,escape,escaped,enclosed,enum,explain,exists,fields,file,first,float,float4,float8,flush,foreign,from,for,full,function,global,grant,grants,group,having,heap,high_priority,hour,hour_minute,hour_second,hosts,identified,ignore,in,index,infile,inner,insert,insert_id,int,integer,interval,int1,int2,int3,int4,int8,into,if,is,isam,join,key,keys,kill,last_insert_id,leading,left,length,like,lines,limit,load,local,lock,logs,long,longblob,longtext,low_priority,max,max_rows,match,mediumblob,mediumtext,mediumint,middleint,min_rows,minute,minute_second,modify,month,monthname,myisam,natural,numeric,no,not,null,on,optimize,option,optionally,or,order,outer,outfile,pack_keys,partial,password,precision,primary,procedure,process,processlist,privileges,read,real,references,reload,regexp,rename,replace,restrict,returns,revoke,rlike,row,rows,second,select,set,show,shutdown,smallint,soname,sql_big_tables,sql_big_selects,sql_low_priority_updates,sql_log_off,sql_log_update,sql_select_limit,sql_small_result,sql_big_result,sql_warnings,straight_join,starting,status,string,table,tables,temporary,terminated,text,then,time,timestamp,tinyblob,tinytext,tinyint,trailing,to,type,use,using,unique,unlock,unsigned,update,usage,values,varchar,variables,varying,varbinary,with,write,when,where,year,year_month,zerofill\".split(\",\");\nreturn sysWords.indexOf(data.index.defKey.toLowerCase())<0;","enable":true},{"id":"EF9E44D0-691A-4352-A079-CFF300107531","defName":"索引名-全小写","intro":"","controlIntensity":"F","applyObjectType":"P","applyFieldType":"index","programCode":"return !/[A-Z]+/.test(data.index.defKey);","enable":true},{"id":"972EB2FB-4428-429D-8B0A-F082A8C7A94D","defName":"名称不能为空","intro":"","controlIntensity":"F","applyObjectType":"L","applyFieldType":"entity","programCode":"return data.logicEntity.defName","enable":true},{"id":"EEAEB9C5-BB6C-4E92-949B-D27928690D85","defName":"名称长度不超过32","intro":"","controlIntensity":"S","applyObjectType":"L","applyFieldType":"entity","programCode":"return (data.logicEntity.defName||\"\").length <=32","enable":true},{"id":"24E3F7E5-730D-4378-B72D-195D6B940352","defName":"不能使用保留字","intro":"","controlIntensity":"F","applyObjectType":"P","applyFieldType":"entity","programCode":"let sysWords = \"action,add,aggregate,all,alter,after,and,as,asc,avg,avg_row_length,auto_increment,between,bigint,bit,binary,blob,bool,both,by,cascade,case,char,character,change,check,checksum,column,columns,comment,constraint,create,cross,current_date,current_time,current_timestamp,data,database,databases,date,datetime,day,day_hour,day_minute,day_second,dayofmonth,dayofweek,dayofyear,dec,decimal,default,delayed,delay_key_write,delete,desc,describe,distinct,distinctrow,double,drop,end,else,escape,escaped,enclosed,enum,explain,exists,fields,file,first,float,float4,float8,flush,foreign,from,for,full,function,global,grant,grants,group,having,heap,high_priority,hour,hour_minute,hour_second,hosts,identified,ignore,in,index,infile,inner,insert,insert_id,int,integer,interval,int1,int2,int3,int4,int8,into,if,is,isam,join,key,keys,kill,last_insert_id,leading,left,length,like,lines,limit,load,local,lock,logs,long,longblob,longtext,low_priority,max,max_rows,match,mediumblob,mediumtext,mediumint,middleint,min_rows,minute,minute_second,modify,month,monthname,myisam,natural,numeric,no,not,null,on,optimize,option,optionally,or,order,outer,outfile,pack_keys,partial,password,precision,primary,procedure,process,processlist,privileges,read,real,references,reload,regexp,rename,replace,restrict,returns,revoke,rlike,row,rows,second,select,set,show,shutdown,smallint,soname,sql_big_tables,sql_big_selects,sql_low_priority_updates,sql_log_off,sql_log_update,sql_select_limit,sql_small_result,sql_big_result,sql_warnings,straight_join,starting,status,string,table,tables,temporary,terminated,text,then,time,timestamp,tinyblob,tinytext,tinyint,trailing,to,type,use,using,unique,unlock,unsigned,update,usage,values,varchar,variables,varying,varbinary,with,write,when,where,year,year_month,zerofill\".split(\",\");\nreturn sysWords.indexOf(data.entity.defKey.toLowerCase())<0;","enable":true},{"id":"039BF435-DC77-4DA4-81C7-7F8076BF22BB","defName":"表名-全小写","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"entity","programCode":"return !/[A-Z]+/.test(data.entity.defKey);","enable":true},{"id":"CBEB0E30-19C6-427D-A8BF-61FF10E27A0B","defName":"表名-不允许空格","intro":"","controlIntensity":"F","applyObjectType":"P","applyFieldType":"entity","programCode":"return !/\\s+/.test(data.entity.defKey);","enable":true},{"id":"1168C7C2-8E8E-4FB7-B639-B3DE839C395A","defName":"表名-英文及下划线","intro":"","controlIntensity":"F","applyObjectType":"P","applyFieldType":"entity","programCode":"return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(data.entity.defKey);","enable":true},{"id":"D373637C-D3A6-4621-B656-6841A5444A76","defName":"表必须有comment注释","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"entity","programCode":"return (data.entity.defName||\"\").length > 0 || (data.entity.comment||\"\").length > 0","enable":true},{"id":"2BAB122B-8811-40BB-89F3-CDC24B5862D3","defName":"主键命名为 id,类型为 int 或 bigint,且为自增","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"entity","programCode":"let fields = data.entity.fields;\nfor(let i=0;i=0){\n count ++;\n }\n}\nreturn count==2;","enable":true},{"id":"BEC54F19-52D5-4882-BCE1-4439785F8001","defName":"不能使用保留字","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"field","programCode":"let sysWords = \"action,add,aggregate,all,alter,after,and,as,asc,avg,avg_row_length,auto_increment,between,bigint,bit,binary,blob,bool,both,by,cascade,case,char,character,change,check,checksum,column,columns,comment,constraint,create,cross,current_date,current_time,current_timestamp,data,database,databases,date,datetime,day,day_hour,day_minute,day_second,dayofmonth,dayofweek,dayofyear,dec,decimal,default,delayed,delay_key_write,delete,desc,describe,distinct,distinctrow,double,drop,end,else,escape,escaped,enclosed,enum,explain,exists,fields,file,first,float,float4,float8,flush,foreign,from,for,full,function,global,grant,grants,group,having,heap,high_priority,hour,hour_minute,hour_second,hosts,identified,ignore,in,index,infile,inner,insert,insert_id,int,integer,interval,int1,int2,int3,int4,int8,into,if,is,isam,join,key,keys,kill,last_insert_id,leading,left,length,like,lines,limit,load,local,lock,logs,long,longblob,longtext,low_priority,max,max_rows,match,mediumblob,mediumtext,mediumint,middleint,min_rows,minute,minute_second,modify,month,monthname,myisam,natural,numeric,no,not,null,on,optimize,option,optionally,or,order,outer,outfile,pack_keys,partial,password,precision,primary,procedure,process,processlist,privileges,read,real,references,reload,regexp,rename,replace,restrict,returns,revoke,rlike,row,rows,second,select,set,show,shutdown,smallint,soname,sql_big_tables,sql_big_selects,sql_low_priority_updates,sql_log_off,sql_log_update,sql_select_limit,sql_small_result,sql_big_result,sql_warnings,straight_join,starting,status,string,table,tables,temporary,terminated,text,then,time,timestamp,tinyblob,tinytext,tinyint,trailing,to,type,use,using,unique,unlock,unsigned,update,usage,values,varchar,variables,varying,varbinary,with,write,when,where,year,year_month,zerofill\".split(\",\");\nreturn sysWords.indexOf(data.field.defKey.toLowerCase())<0;","enable":true},{"id":"082E186D-7B02-4F1C-9ECE-378AB98C4845","defName":"字段-全小写","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"field","programCode":"return !/[A-Z]+/.test(data.field.defKey);","enable":true},{"id":"F3CE5C67-23B6-4E7B-BA91-D5F0BCBC9E6A","defName":"字段-不允许空格","intro":"","controlIntensity":"F","applyObjectType":"P","applyFieldType":"field","programCode":"return !/\\s+/.test(data.field.defKey);","enable":true},{"id":"21AFEAC8-96D7-467F-8320-A33887FC0C5D","defName":"字段-英文及下划线","intro":"","controlIntensity":"F","applyObjectType":"P","applyFieldType":"field","programCode":"return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(data.field.defKey);","enable":true},{"id":"2BBDE47B-6926-4E1A-AE57-D4F6E5399EE6","defName":"字段-必需有comment注释","intro":"","controlIntensity":"F","applyObjectType":"P","applyFieldType":"field","programCode":"return (data.field.defName||\"\").length > 0 || (data.field.comment||\"\").length > 0","enable":true},{"id":"5E181E43-0D72-498F-8178-4C1CDBC89A16","defName":"字段-不能与表名相同","intro":"","controlIntensity":"F","applyObjectType":"P","applyFieldType":"field","programCode":"return data.field.defKey != data.entity.defKey;","enable":true},{"id":"DE8F8598-5D53-4727-A837-7816C2AF99D9","defName":"外键-字段必须具有表名及其主键","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"field","programCode":"let relas = data.entity.correlations;\nfor(let i=0;i=0 || data.field.defName.lastIndexOf(\"时间\")>=0 ){\n if(data.field.dbType.toLowerCase().indexOf(\"date\")>=0){\n return true;\n }else{\n return false;\n }\n};\nreturn true;","enable":true},{"id":"2E7FDA44-989A-4C5B-A0C5-12B1E40E57B1","defName":"索引名-英文及下划线","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"index","programCode":"return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(data.index.defKey);","enable":true},{"id":"023450B3-AAE2-4DC1-AE63-2196DD82823D","defName":"索引名-主键的名称以pk_开头,唯一键以uk_开头,普通索引以 ix_开头","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"index","programCode":"if(data.index.unique){\n return data.index.defKey.indexOf(\"uk_\")==0;\n}else{\n return data.index.defKey.indexOf(\"ix_\")==0;\n}","enable":true},{"id":"1C563E17-262B-4EB6-87F0-203CAC667CF0","defName":"不允许存在blob、text等大字段","intro":"","controlIntensity":"S","applyObjectType":"P","applyFieldType":"field","programCode":"if(\"blob,text\".indexOf(data.field.dbType.toLowerCase())>=0){\n return false;\n}\nreturn true;","enable":true}]}