diff --git a/T20240607160901.pdma.json b/T20240607160901.pdma.json index b22d699..a1bd5a5 100644 --- a/T20240607160901.pdma.json +++ b/T20240607160901.pdma.json @@ -1 +1,14276 @@ -{"name":"成本管理二期","describe":"成本管理","avatar":"","version":"4.9.2","createdTime":"2024-5-23 16:36:04","updatedTime":"2024-6-7 16:09:01","dbConns":[],"profile":{"default":{"db":"29D1CE08-4C35-4D2D-AAA9-23D93305B52E","dbConn":"AB260C61-FBEB-4832-ADBD-E03CCFE82D96","entityInitFields":[{"defKey":"TENANT_ID","defName":"租户号","comment":"","type":"","len":32,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":true,"domain":"16120F75-6AA7-4483-868D-F07F511BB081","refDict":"","uiHint":"","id":"ADB3AD14-6603-43E2-8261-114E32442B5B","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"REVISION","defName":"乐观锁","comment":"","domain":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":true,"refDict":"","uiHint":"","id":"92BF430E-01FA-4AEF-944F-25A142632654","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"CREATED_BY","defName":"创建人","comment":"","domain":"16120F75-6AA7-4483-868D-F07F511BB081","type":"","len":32,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":true,"refDict":"","uiHint":"","id":"C8BE2C7A-8251-4ADD-BB4F-411C5754DA62","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"CREATED_TIME","defName":"创建时间","comment":"","domain":"7CFFA0D3-6A93-4DDC-BC10-DF21211064DC","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":true,"refDict":"","uiHint":"","id":"4E471FD6-3E73-4A90-B660-51598A482409","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098"},{"defKey":"UPDATED_BY","defName":"更新人","comment":"","domain":"16120F75-6AA7-4483-868D-F07F511BB081","type":"","len":32,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":true,"refDict":"","uiHint":"","id":"0DC24AA9-4CD0-45D8-95CF-FA546BE343AB","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"UPDATED_TIME","defName":"更新时间","comment":"","domain":"7CFFA0D3-6A93-4DDC-BC10-DF21211064DC","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":true,"refDict":"","uiHint":"","id":"09F64AC4-4DEE-428F-AF64-4C103884E1AC","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098"}],"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}}INT 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":false,"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":"modalAll","recentColors":["#d148d1","#ce4bce","#831b83","#dd31dd","#da2fda","#e988e9","#000000","#DDE5FF"],"DDLToggleCase":"L","extAttrProps":{"attr1":{"editType":"","optionsData":"","optionsFetcher":""},"attr2":{"editType":"","optionsData":"","optionsFetcher":""},"attr3":{"editType":"","optionsData":"","optionsFetcher":""},"attr4":{"editType":"","optionsData":"","optionsFetcher":""},"attr5":{"editType":"","optionsData":"","optionsFetcher":""},"attr6":{"editType":"","optionsData":"","optionsFetcher":""},"attr7":{"editType":"","optionsData":"","optionsFetcher":""},"attr8":{"editType":"","optionsData":"","optionsFetcher":""},"attr9":{"editType":"","optionsData":"","optionsFetcher":""}},"menuWidth":"241px"},"entities":[{"id":"15372773-A008-4A5F-B23E-75E100F99B47","defKey":"cost_center","defName":"成本中心表","comment":"","properties":{},"fields":[{"defKey":"company_code","defName":"","comment":"","domain":"","type":"VARCHAR","len":20,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"E49448AA-E299-4E2A-B4DD-E2A5A4DC2965","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"cost_center_code","defName":"","comment":"","domain":"","type":"VARCHAR","len":50,"scale":"","primaryKey":true,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"1AD66764-F41C-4547-B1FA-20A935807D71","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"cost_center_name","defName":"","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"2D8FEB6B-498E-47A7-AA36-B48F60A08A26","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"cost_category","defName":"","comment":"","domain":"","type":"VARCHAR","len":10,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"0170012C-B492-4B0D-8DFC-A846C2432623","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"status","defName":"","comment":"","domain":"","type":"VARCHAR","len":10,"scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"F8C747B6-4A23-4DD2-8548-7450C794D881","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"}],"indexes":[],"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"headers":[{"freeze":false,"refKey":"hideInGraph","hideInGraph":true},{"freeze":true,"refKey":"defKey","hideInGraph":false},{"freeze":true,"refKey":"defName","hideInGraph":false},{"freeze":false,"refKey":"primaryKey","hideInGraph":false},{"freeze":false,"refKey":"notNull","hideInGraph":true},{"freeze":false,"refKey":"autoIncrement","hideInGraph":true},{"freeze":false,"refKey":"domain","hideInGraph":true},{"freeze":false,"refKey":"type","hideInGraph":false},{"freeze":false,"refKey":"len","hideInGraph":false},{"freeze":false,"refKey":"scale","hideInGraph":false},{"freeze":false,"refKey":"comment","hideInGraph":true},{"freeze":false,"refKey":"refDict","hideInGraph":true},{"freeze":false,"refKey":"defaultValue","hideInGraph":true},{"freeze":false,"refKey":"isStandard","hideInGraph":false},{"freeze":false,"refKey":"uiHint","hideInGraph":true},{"freeze":false,"refKey":"extProps","hideInGraph":true}],"correlations":[]},{"id":"65E2E950-34BE-49A8-98A3-9EB13E974B8F","defKey":"hour_rate","defName":"小时费率表","comment":"","properties":{},"fields":[{"defKey":"year","defName":"年度","comment":"","domain":"","type":"VARCHAR","len":4,"scale":"","primaryKey":true,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"B7294178-FFFD-44E1-9096-43DA30382968","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"cost_center_code","defName":"成本中心代码","comment":"","domain":"","type":"VARCHAR","len":20,"scale":"","primaryKey":true,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"67E63272-228B-4A7B-A9ED-562B24F20D0A","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"factory","defName":"工厂代码","comment":"","domain":"","type":"VARCHAR","len":20,"scale":"","primaryKey":true,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"3A505DE2-B4D2-4203-AAC0-FA6D90EDC1A6","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"labor_hour_rate","defName":"人工小时费率","comment":"","domain":"","type":"DECIMAL","len":13,"scale":3,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"0621221F-577F-410E-9099-AD251DAEC448","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"equip_hour_rate","defName":"设备小时费率","comment":"","domain":"","type":"DECIMAL","len":13,"scale":3,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"8D540C7B-955B-45E2-8F7A-8D2F09ADBCEA","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"fuel_hour_rate","defName":"燃动小时费率","comment":"","domain":"","type":"DECIMAL","len":13,"scale":3,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"350088D8-058E-484B-9D64-828870A3E635","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"auxiliary_hour_rate","defName":"辅料小时费率","comment":"","domain":"","type":"DECIMAL","len":13,"scale":3,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"061734C8-8B5B-442D-8009-F7CFC44D3480","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"other_hour_rate","defName":"其他小时费率","comment":"","domain":"","type":"DECIMAL","len":13,"scale":3,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"2A092CB8-230B-411D-9926-9006108D302F","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"effective_date","defName":"生效日期","comment":"","domain":"","type":"DATE","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"4D1F80F6-B100-46BD-AB14-46E781970172","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"expiration_date","defName":"失效日期","comment":"","domain":"","type":"DATE","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"629B4427-C314-46B4-A5EF-9F9BCC72CE44","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"guardian","defName":"维护人员","comment":"","domain":"","type":"VARCHAR","len":30,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"B22F9668-187E-4910-B315-93BD87BC904E","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"maintenance_time","defName":"维护时间","comment":"","domain":"","type":"VARCHAR","len":20,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"799A2E1C-891C-4C1A-B831-2488ED50F4BC","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"reserve_1","defName":"预留字段1","comment":"","domain":"","type":"VARCHAR","len":20,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"924EB0A3-3B36-49EF-B6E1-3175E207CD22","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"reserve_2","defName":"预留字段2","comment":"","domain":"","type":"DECIMAL","len":6,"scale":3,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"11EF41CC-1975-421B-A3CC-C703DCA1BE9F","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"id","defName":"主键","comment":"","domain":"16120F75-6AA7-4483-868D-F07F511BB081","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"91AC3D31-CB32-454B-B563-C05155DFBC7F","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"}],"indexes":[],"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"headers":[{"freeze":false,"refKey":"hideInGraph","hideInGraph":true},{"freeze":true,"refKey":"defKey","hideInGraph":false},{"freeze":true,"refKey":"defName","hideInGraph":false},{"freeze":false,"refKey":"primaryKey","hideInGraph":false},{"freeze":false,"refKey":"notNull","hideInGraph":true},{"freeze":false,"refKey":"autoIncrement","hideInGraph":true},{"freeze":false,"refKey":"domain","hideInGraph":true},{"freeze":false,"refKey":"type","hideInGraph":false},{"freeze":false,"refKey":"len","hideInGraph":false},{"freeze":false,"refKey":"scale","hideInGraph":false},{"freeze":false,"refKey":"comment","hideInGraph":true},{"freeze":false,"refKey":"refDict","hideInGraph":true},{"freeze":false,"refKey":"defaultValue","hideInGraph":true},{"freeze":false,"refKey":"isStandard","hideInGraph":false},{"freeze":false,"refKey":"uiHint","hideInGraph":true},{"freeze":false,"refKey":"extProps","hideInGraph":true}],"correlations":[]},{"id":"0C137DAC-F352-41FC-83D4-852123619E5C","defKey":"sap_subfactory","defName":"同步SAP工厂信息","comment":"","properties":{},"fields":[{"defKey":"id","defName":"主键","comment":"","domain":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"894B4818-0F6B-4ABC-80C3-EDEC93A699F0","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"company_code","defName":"公司代码","comment":"","domain":"","type":"VARCHAR","len":20,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"6B3D866D-6236-44F2-A78C-F60CD70D1971","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"factory","defName":"工厂代码","comment":"","domain":"","type":"VARCHAR","len":20,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"92D955D7-1331-428E-B725-66F8203F9225","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"}],"indexes":[],"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"headers":[{"freeze":false,"refKey":"hideInGraph","hideInGraph":true},{"freeze":true,"refKey":"defKey","hideInGraph":false},{"freeze":true,"refKey":"defName","hideInGraph":false},{"freeze":false,"refKey":"primaryKey","hideInGraph":false},{"freeze":false,"refKey":"notNull","hideInGraph":true},{"freeze":false,"refKey":"autoIncrement","hideInGraph":true},{"freeze":false,"refKey":"domain","hideInGraph":true},{"freeze":false,"refKey":"type","hideInGraph":false},{"freeze":false,"refKey":"len","hideInGraph":false},{"freeze":false,"refKey":"scale","hideInGraph":false},{"freeze":false,"refKey":"comment","hideInGraph":true},{"freeze":false,"refKey":"refDict","hideInGraph":true},{"freeze":false,"refKey":"defaultValue","hideInGraph":true},{"freeze":false,"refKey":"isStandard","hideInGraph":false},{"freeze":false,"refKey":"uiHint","hideInGraph":true},{"freeze":false,"refKey":"extProps","hideInGraph":true}],"correlations":[]},{"id":"1271309E-2310-435D-B129-DC3F72BBA013","defKey":"diy_version_new","defName":"物料号最新的版本号","comment":"","properties":{},"fields":[{"defKey":"id","defName":"主键","comment":"","domain":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"2244E62A-31B7-4046-9B5A-04D57AA6234D","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"projectName","defName":"项目名称","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"44F69E4B-9E02-40CE-A66D-690B5F3D8E57","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"stage","defName":"阶段","comment":"","domain":"","type":"VARCHAR","len":10,"scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"3E8FAD6B-B69F-4F76-889D-DC491B3C779C","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"date","defName":"日期","comment":"","domain":"","type":"VARCHAR","len":30,"scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"B62BC5EC-DE88-4D1A-B2AD-C2A6C7015CE7","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"version","defName":"版本号","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"EEBE305F-AB80-43B1-A620-33BD97232162","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"werks","defName":"工厂","comment":"","domain":"","type":"VARCHAR","len":10,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"F0B74C38-D122-426E-9967-A019E9C3FC0C","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"matnr","defName":"物料号","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"73E27B7A-9823-411B-A52E-18428B09C45C","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"status","defName":"状态","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"83603E78-9A0D-43EF-A75B-A11B3809060D","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"createdTime","defName":"创建时间","comment":"","domain":"7CFFA0D3-6A93-4DDC-BC10-DF21211064DC","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"CCAAB7F6-3A10-407E-948E-04C9E691C23D","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"finishTime","defName":"完成时间","comment":"","domain":"7CFFA0D3-6A93-4DDC-BC10-DF21211064DC","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"6C3F517D-46A7-43CC-80D1-2C9DEC854725","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"batchname","defName":"批次","comment":"","domain":"","type":"VARCHAR","len":50,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"2D3DA37F-EDC1-4DE4-AC02-8FF542EB49C7","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"userid","defName":"用户id","comment":"","domain":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"A071A8A1-1840-4D15-A38B-245895B95FA2","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"graphicnumber","defName":"图号","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"1038828B-161A-4DFF-ADE4-DCAEFDD60D1C","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"projectPspid","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"8C4F8BA2-1D57-4A3F-B750-DBF1D32D4450","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"projectCate","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"3A20DC52-B11A-4270-BF81-302A75F86334","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"keylost","defName":"","comment":"","domain":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"8E90BC94-31A1-426B-9932-8F6390B8FD21","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"mknum","defName":"","comment":"","domain":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"ADC8DB96-7D3D-45B2-8330-88CAD4766C88","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"}],"indexes":[{"defKey":"matnr","unique":false,"defName":null,"comment":"","fields":[{"ascOrDesc":"A","id":"B61421F5-E4B2-41B8-8A69-6388C765522C","fieldDefKey":"73E27B7A-9823-411B-A52E-18428B09C45C"}],"id":"68BA8FC5-24D4-43EC-A8BD-246FD00E6CDF"},{"defKey":"projectName","unique":false,"defName":null,"comment":"","fields":[{"ascOrDesc":"A","id":"68B13AA4-882A-419A-9700-7F374F53CCA8","fieldDefKey":"44F69E4B-9E02-40CE-A66D-690B5F3D8E57"}],"id":"FE00E4C5-C452-47AF-89C4-0EC4B3C38FEC"},{"defKey":"stage","unique":false,"defName":null,"comment":"","fields":[{"ascOrDesc":"A","id":"A742D85E-6452-49B8-B7A1-3830E1AF3D7B","fieldDefKey":"3E8FAD6B-B69F-4F76-889D-DC491B3C779C"}],"id":"067B888B-EC47-4035-B2B1-18F3116AD387"},{"defKey":"version","unique":false,"defName":null,"comment":"","fields":[{"ascOrDesc":"A","id":"356E024E-D277-42E0-B754-3C27DFE73C18","fieldDefKey":"EEBE305F-AB80-43B1-A620-33BD97232162"}],"id":"5E5131A7-531C-497A-88CB-E93AFABCAC10"},{"defKey":"werks","unique":false,"defName":null,"comment":"","fields":[{"ascOrDesc":"A","id":"BE36E2BE-9FFD-4BD4-A687-D9A992A3B889","fieldDefKey":"F0B74C38-D122-426E-9967-A019E9C3FC0C"}],"id":"63D92237-2877-4AE3-A01E-64F5F51CAAFE"}],"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"headers":[{"freeze":false,"refKey":"hideInGraph","hideInGraph":true},{"freeze":true,"refKey":"defKey","hideInGraph":false},{"freeze":true,"refKey":"defName","hideInGraph":false},{"freeze":false,"refKey":"primaryKey","hideInGraph":false},{"freeze":false,"refKey":"notNull","hideInGraph":true},{"freeze":false,"refKey":"autoIncrement","hideInGraph":true},{"freeze":false,"refKey":"domain","hideInGraph":true},{"freeze":false,"refKey":"type","hideInGraph":false},{"freeze":false,"refKey":"len","hideInGraph":false},{"freeze":false,"refKey":"scale","hideInGraph":false},{"freeze":false,"refKey":"comment","hideInGraph":true},{"freeze":false,"refKey":"refDict","hideInGraph":true},{"freeze":false,"refKey":"defaultValue","hideInGraph":true},{"freeze":false,"refKey":"isStandard","hideInGraph":false},{"freeze":false,"refKey":"uiHint","hideInGraph":true},{"freeze":false,"refKey":"extProps","hideInGraph":true}],"correlations":[]},{"id":"FDB6475C-445C-40D7-A2E7-AE1392BD75D7","defKey":"sys_dict_data","defName":"字典数据表","comment":"","properties":{},"fields":[{"defKey":"dict_code","defName":"字典编码","comment":"","domain":"","type":"BIGINT","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"FEED7E2A-5221-452A-A815-5EA98492BEDB","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"dict_sort","defName":"字典排序","comment":"","domain":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"0","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"D4745119-96BC-41A3-9BAA-5D3104B5483C","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"dict_label","defName":"字典标签","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"73FE5FBD-9454-4B5B-AE16-85C93BE1013F","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"dict_value","defName":"字典键值","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"13CF3B5E-575F-4E4B-902E-6627AC12410F","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"dict_type","defName":"字典类型","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"DDC8F344-BE93-4676-A40C-C76EFB7D8F9D","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"css_class","defName":"样式属性(其他样式扩展)","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"C4989163-0CF7-4BE5-88A6-A70310EA6992","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"list_class","defName":"表格回显样式","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"E7A2B940-FA0F-43D3-A360-524A0D860A1D","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"is_default","defName":"是否默认(Y是 N否)","comment":"","domain":"","type":"CHAR","len":1,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"'N'","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"CFD012FA-79C9-4053-BED2-D5F756601572","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"status","defName":"状态(0正常 1停用)","comment":"","domain":"","type":"CHAR","len":1,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"'0'","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"CB0752C8-CEC3-4F0A-89B1-1AE20B8F4968","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"create_by","defName":"创建者","comment":"","domain":"","type":"VARCHAR","len":64,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"EE91C7C2-98D5-4A94-86FD-D1B969AE6EF8","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"create_time","defName":"创建时间","comment":"","domain":"7CFFA0D3-6A93-4DDC-BC10-DF21211064DC","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"20FAA003-BC26-4D1A-9BCF-A2615C8FFB5C","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"update_by","defName":"更新者","comment":"","domain":"","type":"VARCHAR","len":64,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"E7777E3B-52A8-4D8E-83A4-EE30FD9E7A47","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"update_time","defName":"更新时间","comment":"","domain":"7CFFA0D3-6A93-4DDC-BC10-DF21211064DC","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"6D27918B-2ED7-4DF5-AFD8-6EC92D5E4053","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"remark","defName":"备注","comment":"","domain":"","type":"VARCHAR","len":500,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"A644FBD0-A87B-4059-9147-8A65EE5535B2","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"}],"indexes":[],"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"headers":[{"freeze":false,"refKey":"hideInGraph","hideInGraph":true},{"freeze":true,"refKey":"defKey","hideInGraph":false},{"freeze":true,"refKey":"defName","hideInGraph":false},{"freeze":false,"refKey":"primaryKey","hideInGraph":false},{"freeze":false,"refKey":"notNull","hideInGraph":true},{"freeze":false,"refKey":"autoIncrement","hideInGraph":true},{"freeze":false,"refKey":"domain","hideInGraph":true},{"freeze":false,"refKey":"type","hideInGraph":false},{"freeze":false,"refKey":"len","hideInGraph":false},{"freeze":false,"refKey":"scale","hideInGraph":false},{"freeze":false,"refKey":"comment","hideInGraph":true},{"freeze":false,"refKey":"refDict","hideInGraph":true},{"freeze":false,"refKey":"defaultValue","hideInGraph":true},{"freeze":false,"refKey":"isStandard","hideInGraph":false},{"freeze":false,"refKey":"uiHint","hideInGraph":true},{"freeze":false,"refKey":"extProps","hideInGraph":true}],"correlations":[]},{"id":"7AE6268A-7B4D-4F6A-8E6C-19F7C93C3C49","defKey":"sys_dict_type","defName":"字典类型表","comment":"","properties":{},"fields":[{"defKey":"dict_id","defName":"字典主键","comment":"","domain":"","type":"BIGINT","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"2864CC80-6949-4C21-809A-53003E91BDF8","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"dict_name","defName":"字典名称","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"71A78792-B4DD-432F-B636-E1376EFC2C86","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"dict_type","defName":"字典类型","comment":"","domain":"","type":"VARCHAR","len":100,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"6E210E32-73F7-470D-880B-CE5D4A959652","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"status","defName":"状态(0正常 1停用)","comment":"","domain":"","type":"CHAR","len":1,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"'0'","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"F0CBB590-1BBA-4E38-9850-3BB064F008C2","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"create_by","defName":"创建者","comment":"","domain":"","type":"VARCHAR","len":64,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"34DB7AEC-5048-47A7-9F8F-AAFB15D387C5","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"create_time","defName":"创建时间","comment":"","domain":"7CFFA0D3-6A93-4DDC-BC10-DF21211064DC","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"7436C7CA-53F7-4D54-88CF-E30135945EF1","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"update_by","defName":"更新者","comment":"","domain":"","type":"VARCHAR","len":64,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"DEDD8E11-31EA-4D18-A272-D8126090DD04","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"update_time","defName":"更新时间","comment":"","domain":"7CFFA0D3-6A93-4DDC-BC10-DF21211064DC","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"35339139-B2AD-4E26-BE49-FD973FA944FB","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"remark","defName":"备注","comment":"","domain":"","type":"VARCHAR","len":500,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"7E6A9ABC-F1B5-434E-8A88-AFA76836F474","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"}],"indexes":[{"defKey":"dict_type","unique":true,"defName":null,"comment":"","fields":[{"ascOrDesc":"A","id":"5780595B-CF9F-45BC-B2ED-671B7930E9EF","fieldDefKey":"6E210E32-73F7-470D-880B-CE5D4A959652"}],"id":"D5C9FC5C-3A0C-4B51-A325-B0BC5E0C1CE8"}],"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"headers":[{"freeze":false,"refKey":"hideInGraph","hideInGraph":true},{"freeze":true,"refKey":"defKey","hideInGraph":false},{"freeze":true,"refKey":"defName","hideInGraph":false},{"freeze":false,"refKey":"primaryKey","hideInGraph":false},{"freeze":false,"refKey":"notNull","hideInGraph":true},{"freeze":false,"refKey":"autoIncrement","hideInGraph":true},{"freeze":false,"refKey":"domain","hideInGraph":true},{"freeze":false,"refKey":"type","hideInGraph":false},{"freeze":false,"refKey":"len","hideInGraph":false},{"freeze":false,"refKey":"scale","hideInGraph":false},{"freeze":false,"refKey":"comment","hideInGraph":true},{"freeze":false,"refKey":"refDict","hideInGraph":true},{"freeze":false,"refKey":"defaultValue","hideInGraph":true},{"freeze":false,"refKey":"isStandard","hideInGraph":false},{"freeze":false,"refKey":"uiHint","hideInGraph":true},{"freeze":false,"refKey":"extProps","hideInGraph":true}],"correlations":[]},{"id":"7D1DEA8A-7373-4659-B1A7-B0E72416EDA7","defKey":"material","defName":"物料表,该表内容从sap里抓取获得","comment":"","properties":{},"fields":[{"defKey":"factory","defName":"工厂代号(工厂id)","comment":"","domain":"","type":"VARCHAR","len":20,"scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"F2B3E4D0-1A13-44E0-AD48-10D4AF232781","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"material_number","defName":"物料号","comment":"","domain":"","type":"VARCHAR","len":54,"scale":"","primaryKey":false,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"BADBBE3C-453A-47BD-A255-3A2DE31ADDE5","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"material_type","defName":"物料类型","comment":"","domain":"","type":"VARCHAR","len":15,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"485350D5-E666-46F8-B466-C83BDF026B36","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"product_category","defName":"产品类型","comment":"","domain":"","type":"VARCHAR","len":30,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"4C4B6C92-49BE-4E9B-88AD-D7793AD854D2","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"product_name","defName":"物料名称","comment":"","domain":"","type":"VARCHAR","len":120,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"3251CEF5-A600-4CA4-9E41-A523F9B93D49","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"norms","defName":"","comment":"","domain":"","type":"VARCHAR","len":210,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"9E52044E-B5F5-485C-AAD7-C1599C1E230A","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"manufacturing_type","defName":"制造类型","comment":"","domain":"","type":"VARCHAR","len":30,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"F4309FEF-1AB9-4D28-A84B-7C007AD1614C","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"inventory_unit","defName":"库存单位","comment":"","domain":"","type":"VARCHAR","len":10,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"175E90FD-3C70-4CBB-AF86-76824E14D07E","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"purchasing_unit","defName":"购买单价","comment":"","domain":"","type":"VARCHAR","len":60,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"9A5908FE-AF1E-447A-B3AF-8572BD5F95AB","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"old_material_group","defName":"所属旧物料组","comment":"","domain":"","type":"VARCHAR","len":30,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"DD057882-55E4-483E-8341-E410EADE15F9","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"standard_cost","defName":"标准成本","comment":"","domain":"","type":"VARCHAR","len":20,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"16A0AAF5-C15D-4BC3-A963-0122A49AEDA0","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"abc_level","defName":"","comment":"","domain":"","type":"VARCHAR","len":10,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"56133029-8ADA-4AF0-9B6B-54FD99817269","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"effective_state","defName":"","comment":"","domain":"","type":"VARCHAR","len":10,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"7A70E0A5-37EB-4B82-ABD4-735B45F27441","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"profit_center","defName":"","comment":"","domain":"","type":"VARCHAR","len":50,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"38041E3A-1584-4559-926E-4CA0CE5EC744","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"iswbs","defName":"","comment":"","domain":"","type":"VARCHAR","len":10,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"AB65B9E4-26FE-4826-A59C-6E7D606EEC95","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"graph_number","defName":"图号","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"E6B036D1-0DC2-48AA-B679-C11312FEFE21","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"mtbez","defName":"","comment":"","domain":"","type":"VARCHAR","len":80,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"98F2AC12-1185-4AFE-97D2-FDF6D6D7A5B1","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"wgbez","defName":"","comment":"","domain":"","type":"VARCHAR","len":80,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"7615D684-08BE-460C-9D4A-3C1AABEF2A9E","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"sobsl","defName":"","comment":"","domain":"","type":"VARCHAR","len":10,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"BC35E308-2D86-4CC5-8AC4-A3FF1759F97E","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"}],"indexes":[{"defKey":"factory","unique":false,"defName":null,"comment":"","fields":[{"ascOrDesc":"A","id":"F710200A-3C28-4D7A-9D40-53081AD9B4CE","fieldDefKey":"F2B3E4D0-1A13-44E0-AD48-10D4AF232781"}],"id":"EC09805C-86B4-415B-921D-E173A8E7F11D"},{"defKey":"materialNumber","unique":false,"defName":null,"comment":"","fields":[{"ascOrDesc":"A","id":"6241323A-7DA4-4229-BD76-6D2D2F9CCB52","fieldDefKey":"BADBBE3C-453A-47BD-A255-3A2DE31ADDE5"}],"id":"A8CC9685-8808-48A7-95D7-60CEDA5848F8"}],"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"headers":[{"freeze":false,"refKey":"hideInGraph","hideInGraph":true},{"freeze":true,"refKey":"defKey","hideInGraph":false},{"freeze":true,"refKey":"defName","hideInGraph":false},{"freeze":false,"refKey":"primaryKey","hideInGraph":false},{"freeze":false,"refKey":"notNull","hideInGraph":true},{"freeze":false,"refKey":"autoIncrement","hideInGraph":true},{"freeze":false,"refKey":"domain","hideInGraph":true},{"freeze":false,"refKey":"type","hideInGraph":false},{"freeze":false,"refKey":"len","hideInGraph":false},{"freeze":false,"refKey":"scale","hideInGraph":false},{"freeze":false,"refKey":"comment","hideInGraph":true},{"freeze":false,"refKey":"refDict","hideInGraph":true},{"freeze":false,"refKey":"defaultValue","hideInGraph":true},{"freeze":false,"refKey":"isStandard","hideInGraph":false},{"freeze":false,"refKey":"uiHint","hideInGraph":true},{"freeze":false,"refKey":"extProps","hideInGraph":true}],"correlations":[]},{"id":"236F8414-6100-429D-8DEC-A223B0BDA052","defKey":"avl_project","defName":"AVL项目","comment":"","properties":{},"fields":[{"defKey":"mpvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"CE881FE8-29DB-4676-ACAB-525BCEC8F1DC","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"code","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"E1714B7E-289C-45CC-9286-58482060DD1A","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"prps_posid","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"7E953CFE-3A5F-4E83-B9F0-79914766D827","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"factory","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"531CCF0B-0723-485D-B0BD-EE75AABA552D","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"material_number","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"13EC0E8D-4C11-499A-8185-8CAC56C318E3","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"mnvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"BF6CF3EE-81FD-4F7C-A801-BC17C44904F4","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"ptname","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"754E892C-06A1-4074-B9DD-1634AD3B29D2","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"snvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"6CA5ED47-41A0-4A5D-A4F1-B6895C7BC3E6","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"resb_bdmng","defName":"","comment":"","domain":"","type":"DOUBLE","len":255,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"B18DD194-6A50-4AF1-B3E6-C859C0889653","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"prps_pspnr","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"81113555-896B-4020-8355-869AF729C071","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"product_name","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"8E58B44F-C0A9-43EA-B506-725768AB1CAB","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"graph_number","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"6092E10E-002C-4FDD-8262-21BA22E58A16","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"A_version_number","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"71E444DB-7EEB-41E2-968C-31CBA26E425D","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"A_material_cost_total","defName":"","comment":"","domain":"","type":"DECIMAL","len":15,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"E0E36FBE-EF12-4576-B11F-027B4CC448B4","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"A_material_cost_accumulated_em","defName":"","comment":"","domain":"","type":"DECIMAL","len":15,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"D8D63239-9252-44DF-9A6B-220087D98760","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"A_total_standard_cost","defName":"","comment":"","domain":"","type":"DECIMAL","len":15,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"1946D1E3-1944-48AF-9884-2954BB5BA627","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"A_labor_cost_total_unit_product_cost","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"3EA74F84-2EEF-41AF-AB7B-A18D6AD4576B","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"A_material_cost_total_em","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"83705511-37D9-4345-A9C4-43F8909C8F81","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"A_material_cost_total_edcu","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"88EA6551-4EEF-465F-9C2C-5115928C2E5B","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"A_total_standard_cost_lie","defName":"","comment":"","domain":"","type":"DOUBLE","len":22,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"8A709E17-C9C9-44AE-B494-7E878A810F1E","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"B_version_number","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"4F0E4D8C-1D1C-4743-86E6-E4896006396D","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"B_material_cost_total","defName":"","comment":"","domain":"","type":"DECIMAL","len":15,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"D67C50FA-D192-4112-A907-346274D908BC","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"B_material_cost_accumulated_em","defName":"","comment":"","domain":"","type":"DECIMAL","len":15,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"1BC655B5-FCC9-44FB-A6EE-654F78584F8D","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"B_total_standard_cost","defName":"","comment":"","domain":"","type":"DECIMAL","len":15,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"ADEFB32A-829E-47DD-BF5A-8EFC1DCFA46F","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"B_labor_cost_total_unit_product_cost","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"16FEA032-1D87-480B-8AFF-F523C3D1E8F0","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"B_material_cost_total_em","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"1816C315-27F2-4512-9650-AE7765B25FE3","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"B_material_cost_total_edcu","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"C79DCDF4-37BD-4D46-A975-21984C945D77","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"B_total_standard_cost_lie","defName":"","comment":"","domain":"","type":"DOUBLE","len":22,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"432611A9-249D-49CE-84E3-6E717444E743","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"C_version_number","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"A05AE17F-2A86-426B-97A3-BCE3F87FC1E0","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"C_material_cost_total","defName":"","comment":"","domain":"","type":"DECIMAL","len":15,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"44753482-08A5-4647-8231-DD694135DF19","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"C_material_cost_accumulated_em","defName":"","comment":"","domain":"","type":"DECIMAL","len":15,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"5FF9B3F7-1B73-400A-8409-B2B69EB4B168","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"C_total_standard_cost","defName":"","comment":"","domain":"","type":"DECIMAL","len":15,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"C00999A5-FA00-48E7-AC49-438BE151BD6F","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"C_labor_cost_total_unit_product_cost","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"B0C0D1FF-F4C5-4B42-AE0F-9A8C6F5D0884","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"C_material_cost_total_em","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"EE7A6FFC-2382-4FBA-9542-93F2AD2C22C9","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"C_material_cost_total_edcu","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"1B62BA2D-CCEE-4683-900B-988689AF4283","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"C_total_standard_cost_lie","defName":"","comment":"","domain":"","type":"DOUBLE","len":22,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"CDAD5BF3-CCA3-40A5-9446-8007FA4D5BF2","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"crm_proj_scmingxi_num","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"DA9DAF78-F236-4245-A1E0-587D1EEE3D70","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"crm_proj_zz3_stitle","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"A3F98CDA-B948-4C04-B522-8544053F7F5C","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"crm_proj_Shichangyuce_jiaoriqi","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"5229E8E1-07A7-4FB3-BAA8-CB610541D7EA","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"sap_sale_VBPA_PERNR","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"4EE717A5-1A2D-4D90-9BD3-96AA4D299B34","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"crm_proj_org_employee_sname","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"077F3240-3952-4EC8-9EE6-A53DB8FE38E7","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"sap_log_shipped_qty","defName":"","comment":"","domain":"","type":"DOUBLE","len":22,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"52A0BC33-E49F-4818-ACC1-E84B9CF5A596","baseType":"","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"crm_proj_account_sname","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"BE132171-DAFB-4683-997C-DB7405873920","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"sap_log_ship_to_name","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"F33F68D4-9402-4A96-BE2D-E5C55474E9C2","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"id","defName":"","comment":"","domain":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":true,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"12E787AD-1EF6-4547-80C1-9D626D6CEE8E","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"qiname","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"384DEDA1-EF05-4B5C-831B-7A8F12854CB9","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"proj_zzls","defName":"","comment":"","domain":"","type":"VARCHAR","len":50,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"FBCAA72E-FAB0-4198-A044-007887E9AFC8","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"prps_post1","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"CB8FE5D9-4C2A-4CBC-BAE2-3A7AFBC3B5D0","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"proj_verna","defName":"","comment":"","domain":"","type":"VARCHAR","len":50,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"3D29AE55-DF54-4835-865A-019302F16503","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"A_total_lie","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"1A857BF2-0C7A-43C7-8BF7-08A16F177CE0","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"A_unit_cost","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"6A6FA6DE-CC5F-4C9E-8193-C9067D4A5452","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"B_total_lie","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"B5A8DDB8-796D-4C78-B71F-5D0376D85ACC","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"B_unit_cost","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"19463F68-54C7-44AB-A242-AE4372E99719","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"C_total_lie","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"3E9F8AE9-F6C4-4DF1-9D2B-79691B6D61F9","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"C_unit_cost","defName":"","comment":"","domain":"","type":"DECIMAL","len":16,"scale":4,"primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"158FD5D2-0527-4382-9CBA-9778D48E48B2","baseType":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"}],"indexes":[{"defKey":"code","unique":false,"defName":null,"comment":"","fields":[{"ascOrDesc":"A","id":"8E038BB9-DFAB-4043-82A3-55BC2A43DFD9","fieldDefKey":"E1714B7E-289C-45CC-9286-58482060DD1A"}],"id":"5C7355F1-FFE0-4FF6-B6FD-7A8D262DBDD5"}],"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"headers":[{"freeze":false,"refKey":"hideInGraph","hideInGraph":true},{"freeze":true,"refKey":"defKey","hideInGraph":false},{"freeze":true,"refKey":"defName","hideInGraph":false},{"freeze":false,"refKey":"primaryKey","hideInGraph":false},{"freeze":false,"refKey":"notNull","hideInGraph":true},{"freeze":false,"refKey":"autoIncrement","hideInGraph":true},{"freeze":false,"refKey":"domain","hideInGraph":true},{"freeze":false,"refKey":"type","hideInGraph":false},{"freeze":false,"refKey":"len","hideInGraph":false},{"freeze":false,"refKey":"scale","hideInGraph":false},{"freeze":false,"refKey":"comment","hideInGraph":true},{"freeze":false,"refKey":"refDict","hideInGraph":true},{"freeze":false,"refKey":"defaultValue","hideInGraph":true},{"freeze":false,"refKey":"isStandard","hideInGraph":false},{"freeze":false,"refKey":"uiHint","hideInGraph":true},{"freeze":false,"refKey":"extProps","hideInGraph":true}],"correlations":[]},{"id":"BC5A6F14-212E-45C2-9D41-DC1F439AC619","defKey":"mdm_project","defName":"MDM项目","comment":"","properties":{},"fields":[{"defKey":"code","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":true,"notNull":true,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"27CF4B08-8915-4A63-AFAD-2E8731206725","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"ptvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"AFD8FC89-6141-4341-A284-1EB7FD555F94","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"ptname","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"B5987D38-9752-444D-95DC-27F97EA91D9F","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"mpvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"9C8CDEF3-2896-40BC-A143-BF034A8C5D8A","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"mnvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"9D356679-CFFB-4EEF-A077-0CCBDB361836","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"snvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"135538D2-344C-4187-AFBE-81EB16817278","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"ccvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"6508D50D-6E68-427D-BBF5-3DACCACA4744","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"nvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"1FBBF001-F985-4D18-ACDE-52FE5611092C","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"buvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"1DB0DA93-2900-4649-BC95-67D62AA6AD1C","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"buname","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"65E76D0F-6D21-4BE1-B340-F14466EC82B0","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"divalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"FB8C8AC6-6633-475A-AE49-98E11C7C1930","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"qivalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"A3FA0C86-AF0E-4B05-8A10-E520AEC3EFAC","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"qiname","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"F2E40A12-F242-4B10-9FDA-DA73ABD06179","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"dqvalue","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"B000D214-9D5D-4916-901D-709D9B6B2E3A","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"dqname","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"730770B3-36F0-4848-ADDC-AB0182744CF3","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"billname","defName":"","comment":"","domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","type":"","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"E058648B-D1C4-4F10-B264-9C6759F423BF","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"},{"defKey":"starttime","defName":"","comment":"","domain":"","type":"VARCHAR","len":50,"scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"refDict":"","attr1":"","attr2":"","attr3":"","attr4":"","attr5":"","attr6":"","attr7":"","attr8":"","attr9":"","id":"93581770-00F3-428A-BD56-0124F07699F0","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","extProps":{},"uiHint":"642D2E0A-8846-4549-BE56-8C0473F26EDE"}],"indexes":[],"sysProps":{"nameTemplate":"{defKey}[{defName}]"},"headers":[{"freeze":false,"refKey":"hideInGraph","hideInGraph":true},{"freeze":true,"refKey":"defKey","hideInGraph":false},{"freeze":true,"refKey":"defName","hideInGraph":false},{"freeze":false,"refKey":"primaryKey","hideInGraph":false},{"freeze":false,"refKey":"notNull","hideInGraph":true},{"freeze":false,"refKey":"autoIncrement","hideInGraph":true},{"freeze":false,"refKey":"domain","hideInGraph":true},{"freeze":false,"refKey":"type","hideInGraph":false},{"freeze":false,"refKey":"len","hideInGraph":false},{"freeze":false,"refKey":"scale","hideInGraph":false},{"freeze":false,"refKey":"comment","hideInGraph":true},{"freeze":false,"refKey":"refDict","hideInGraph":true},{"freeze":false,"refKey":"defaultValue","hideInGraph":true},{"freeze":false,"refKey":"isStandard","hideInGraph":false},{"freeze":false,"refKey":"uiHint","hideInGraph":true},{"freeze":false,"refKey":"extProps","hideInGraph":true}],"correlations":[]}],"views":[],"dicts":[{"defKey":"Gender","defName":"性别","intro":"","items":[{"defKey":"M","defName":"男","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"1","id":"3622D417-DA1A-408F-BEE1-11D328D534A0"},{"defKey":"F","defName":"女","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"2","id":"380A0790-64A7-481E-831C-32F7BEE1502B"},{"defKey":"U","defName":"未知","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"3","id":"FA239F4D-1276-40D9-B230-F66BD35C3C27"}],"id":"BF9E20E0-80D3-486D-BD58-5FADCF3E4A1D"},{"defKey":"Political","defName":"政治面貌","intro":"","items":[{"defKey":"10","defName":"共青团员","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"61F3145A-7599-4CCB-B298-D5EE788107BE"},{"defKey":"20","defName":"中共党员","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"ED16D25A-AB2F-4FA0-BB48-2B9031FA28C4"},{"defKey":"30","defName":"民主党派","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"0FB7974A-AE11-438F-86E0-B163316F9272"},{"defKey":"40","defName":"群众","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"7D247234-7E97-45B1-8C56-4A17A370854A"},{"defKey":"90","defName":"未知","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"DA65D752-AF04-4A11-81D8-14A38692A64A"}],"id":"06EED564-BBA9-4747-8D73-AF809A330CB8"},{"defKey":"Marital","defName":"婚姻状况","intro":"婚姻状况的码表","items":[{"defKey":"UNMARRIED","defName":"未婚","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"1","id":"20EE81BC-74EE-47DA-A56F-9663B23F44BD"},{"defKey":"MARRIED","defName":"已婚","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"2","id":"4DCA10A8-417E-4A8D-BDF6-0A278C060ADC"},{"defKey":"WIDOWED","defName":"丧偶","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"3","id":"826062A7-057C-4892-B338-06459F5B808D"},{"defKey":"DIVORCE","defName":"离婚","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"4","id":"B23200B4-5E59-4F5E-A779-D981A040FA32"},{"defKey":"UNSPECIFIED","defName":"未说明","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"5","id":"A7928FE2-349A-4702-9682-2EF7205E077B"}],"id":"EA1587B7-3954-437A-BFE0-FCB0453BCABA"},{"defKey":"StudentStatus","defName":"学生状态","intro":"","items":[{"defKey":"Normal","defName":"正常","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"1","id":"E9CA1CC9-8851-4F6B-86BA-B9CF0E44EB73"},{"defKey":"Graduated","defName":"毕业","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"2","id":"DEC51D7C-99DF-430C-817D-0499862D3CCC"},{"defKey":"Studied","defName":"肄业","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"3","id":"8853D6B6-75D3-4479-9006-FC731CD85B20"},{"defKey":"Stop","defName":"休学","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","sort":"4","id":"C74BA8CF-1DC6-4C79-BAAC-F11EB9C6AF01"}],"id":"4642BC5F-02EE-4E17-A60C-CF22F86A0282"},{"defKey":"GBNation","defName":"民族","intro":"","items":[{"defKey":"01","defName":"汉族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"9224DF53-F7C0-447D-B8ED-0A39F799EE19"},{"defKey":"02","defName":"蒙古族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"D57818E3-9206-45BB-AE79-27C64A4AB80F"},{"defKey":"03","defName":"回族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"0A1A3CA9-6D68-4E15-8BD0-9A2FF428D804"},{"defKey":"04","defName":"藏族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"7CC6B6BE-47EA-460E-ACFA-C377468DEA11"},{"defKey":"05","defName":"维吾尔族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"A666D51F-D249-4FAC-B1F3-78C371836CB3"},{"defKey":"06","defName":"苗族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"A0C9E1BA-D87B-4695-ADFA-287FDA32BB5A"},{"defKey":"07","defName":"彝族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"149B5B9E-C1D1-4790-8CCF-0ED5F4B25172"},{"defKey":"08","defName":"壮族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"F9A3E65C-BF4D-4C6B-ADB7-8C9CF0487360"},{"defKey":"09","defName":"布依族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"14F17DE4-E96A-460B-98A6-F84EC8CF9885"},{"defKey":"10","defName":"朝鲜族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"8A81AB18-B1BF-4797-A6E5-DEDB2C6566B0"},{"defKey":"11","defName":"满族","intro":"","parentKey":"","enabled":true,"attr1":"","attr2":"","attr3":"","id":"7D460947-FBD2-4E4D-8366-3B38DCAF09D1"}],"id":"115EDEFC-0323-410E-81AB-CCAB8879837A"},{"defKey":"GradeLevel","defName":"受教育程度","sort":"","intro":"","items":[],"id":"9E7C9788-B805-4C7D-8531-FD1D9DC79B05"}],"viewGroups":[{"defKey":"base","defName":"基础数据维护","refEntities":["15372773-A008-4A5F-B23E-75E100F99B47","65E2E950-34BE-49A8-98A3-9EB13E974B8F","FDB6475C-445C-40D7-A2E7-AE1392BD75D7","7AE6268A-7B4D-4F6A-8E6C-19F7C93C3C49","236F8414-6100-429D-8DEC-A223B0BDA052","BC5A6F14-212E-45C2-9D41-DC1F439AC619"],"refViews":[],"refDiagrams":[],"refDicts":["BF9E20E0-80D3-486D-BD58-5FADCF3E4A1D","06EED564-BBA9-4747-8D73-AF809A330CB8","EA1587B7-3954-437A-BFE0-FCB0453BCABA","4642BC5F-02EE-4E17-A60C-CF22F86A0282","115EDEFC-0323-410E-81AB-CCAB8879837A","9E7C9788-B805-4C7D-8531-FD1D9DC79B05"],"id":"2DA923AD-EB8E-4D32-BBCE-E3781E01B9F0","refLogicEntities":[]},{"defKey":"sap","defName":"SAP导出数据","refEntities":["0C137DAC-F352-41FC-83D4-852123619E5C","1271309E-2310-435D-B129-DC3F72BBA013","7D1DEA8A-7373-4659-B1A7-B0E72416EDA7"],"refViews":[],"refDiagrams":[],"refDicts":[],"id":"65FC6BC3-1799-4797-BFFD-24BAAFBABC21","refLogicEntities":[]},{"defKey":"cost","defName":"卷积","refEntities":[],"refViews":[],"refDiagrams":[],"refDicts":[],"id":"401851EF-F256-40D3-87FD-420C871DEFFF","refLogicEntities":[]},{"defKey":"cost-compare","defName":"成本对比","refEntities":[],"refViews":[],"refDiagrams":[],"refDicts":[],"id":"78EA1BE7-E8DA-4B0C-8EA3-6930F9D08558","refLogicEntities":[]},{"defKey":"excavate","defName":"成本挖掘","refEntities":[],"refViews":[],"refDiagrams":[],"refDicts":[],"id":"8C87C2BA-BBDF-43A2-A8D6-0E35AE171A35","refLogicEntities":[]}],"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":"int","id":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","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":"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":"DATE","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":"CLOB","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"}]},"domains":[{"defKey":"DefaultString","defName":"默认字串","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":255,"scale":"","uiHint":"","id":"9092C4E0-1A54-4859-ABBB-5B62DBC27573"},{"defKey":"IdOrKey","defName":"主键标识","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":32,"scale":"","uiHint":"","id":"16120F75-6AA7-4483-868D-F07F511BB081"},{"defKey":"Name","defName":"名称","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":90,"scale":"","uiHint":"","id":"54611CCC-CA4B-42E1-9F32-4944C85B85A6"},{"defKey":"Int","defName":"整数","applyFor":"1D764C4A-6F9F-421E-B11A-6F3E23B51811","len":"","scale":"","uiHint":"","id":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E"},{"defKey":"Double","defName":"小数","applyFor":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","len":24,"scale":6,"uiHint":"","id":"FF4459C5-6B45-4DBF-8FC0-E06239BC05B4"},{"defKey":"Money","defName":"金额","applyFor":"1A0BDC09-0792-4174-9E8E-80BE8DF44B8E","len":24,"scale":6,"uiHint":"","id":"C3B1681B-99F9-4818-9E80-DE1652A51D85"},{"defKey":"DateTime","defName":"日期时间","applyFor":"89D69E81-EA34-42EE-9FA2-93B8BD27E098","len":"","scale":"","uiHint":"","id":"7CFFA0D3-6A93-4DDC-BC10-DF21211064DC"},{"defKey":"YesNo","defName":"是否","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":"1","scale":"","uiHint":"","id":"6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF"},{"defKey":"Dict","defName":"数据字典","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":"32","scale":"","uiHint":"","id":"73FD2BAD-2358-4336-B96D-45DC897BD792"},{"defKey":"DescText","defName":"描述文本","applyFor":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64","len":"900","scale":"","uiHint":"","id":"3E948CEC-3070-472C-AF92-F3CA11EC9D15"}],"diagrams":[{"defKey":"1逻辑模型","defName":"","relationType":"field","canvasData":{"cells":[{"id":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","shape":"group","position":{"x":-10,"y":510},"label":"### 界面与表关系图","size":{"width":1230,"height":2370},"children":["e6458913-d5bb-4d3e-8194-4e983ee9561b","e9895e8e-4c87-4ca5-9855-3155b08e1e9a","50255b65-de6e-4032-b606-58482a662442","71e702a2-681a-453f-a15e-30ff10e3b439","32dfec65-cfe2-4f80-9f86-6dfd50c2f07f","c306ccee-689c-49cf-a846-ec1e6a451eb7","ff5515d5-21a9-4272-86b2-c984273febc1","ab4a33f9-98c1-4690-87aa-46e590bd7b0c","8e8dd851-2e95-4bd5-8623-645b6e590bab","aa15bf4b-eb5c-4beb-94be-98c9cf34c41a","d9b4230a-9a29-4b06-9bc2-7d0021d99423","a2aac2ea-416f-4c73-81c2-cd1000ccd7fe","d97d6f07-8365-40ab-bde8-34511452e62f","ea0f4b6c-37b3-42f7-8f12-0a946e1ae841","a9ad3011-be3b-45ce-9200-cbd99874e48d","96e751a3-f338-4cc1-937a-b8d1a6acfa1d","db2e0214-00dd-4c58-ba37-627fd8cba8d2","aa201a0f-fd7d-4393-b33a-589fa51f91b6","7f4cc984-aefc-452a-bd22-39ddc3fd7a43","14b1e9e8-3950-432b-9efd-83bfe8ce0d37","bd6cd2f6-55ae-43fd-af6c-22bdbaf96a00","ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2","764cbe48-4a33-4752-94a9-67bda1226718","5bed2e45-b438-46cc-8ee1-72eeaa2c78c6","06ca758c-3187-47bd-8136-ca10dd94640b","b0b6d230-8b0f-4f2f-9d2e-b3d8cd88b234","e4c40d33-e4c2-4dea-9413-62f7c9d772db","06ca758c-3187-47bd-8136-ca10dd94640b","96e751a3-f338-4cc1-937a-b8d1a6acfa1d","db2e0214-00dd-4c58-ba37-627fd8cba8d2","aa201a0f-fd7d-4393-b33a-589fa51f91b6","a9ad3011-be3b-45ce-9200-cbd99874e48d","ea0f4b6c-37b3-42f7-8f12-0a946e1ae841","7b27855a-7467-439b-b846-fb7a369f80ae","f2344237-4b72-4042-a531-097f8f467b64","5278e0a2-f809-4023-b439-b35ae083a325","182b311f-746e-49c8-8bfa-c0fec449eb2a","c306ccee-689c-49cf-a846-ec1e6a451eb7","d9b4230a-9a29-4b06-9bc2-7d0021d99423","ff5515d5-21a9-4272-86b2-c984273febc1","32dfec65-cfe2-4f80-9f86-6dfd50c2f07f","e6458913-d5bb-4d3e-8194-4e983ee9561b","50255b65-de6e-4032-b606-58482a662442","9015a485-4289-4b5e-925c-5d5dc7851d2e","54f3478c-85b5-4b98-8c68-332a9a037140","182b311f-746e-49c8-8bfa-c0fec449eb2a","db184b6f-8cb3-4bbb-8290-9c5438f9c11b","80e84e01-fbda-4caf-a016-eae9c69aea5f","bd3bbe46-89e6-43dc-a1a0-59968252238d","14913b43-5f56-45c0-8a8b-128685ae8831","db184b6f-8cb3-4bbb-8290-9c5438f9c11b","9015a485-4289-4b5e-925c-5d5dc7851d2e","e4d93dce-4df5-403b-bd9d-f126fd1cb7ee","b27fbbab-850d-4577-bd84-dfec38412d43","b82b944c-8659-4720-b69e-e6e066b53882","bbf38d0b-7d61-4a17-b39c-c56ae830f9bd","ab4a33f9-98c1-4690-87aa-46e590bd7b0c","9a99fd26-86c6-42b3-9fe1-5380d3314003","4e142b26-fa22-4806-aee3-7b598f1eaede","a2c4ce7b-8f43-4dc6-b29f-71454f6de700","11267869-dc5a-411d-b763-fc0ad08db8a6"]},{"id":"d97d6f07-8365-40ab-bde8-34511452e62f","shape":"edit-node","position":{"x":200.00000000001478,"y":1809.9999999999893},"label":"### 最近采购价\n---\nid\n工厂代号(工厂id)\n门控料号(?物料id)\n产品名称(?与物料有什么区别)\n规格\n单位\n不含税价格\n估算日期\n采购类型\n是否启用\n维护人\n维护时间","fontColor":"#000000","fillColor":"rgb(117, 190, 250)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":180,"height":270},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"},{"id":"bottom4","group":"bottom"}]}},{"id":"f2344237-4b72-4042-a531-097f8f467b64","shape":"erdRelation","source":{"cell":"ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2","port":"bottom2"},"target":{"cell":"5bed2e45-b438-46cc-8ee1-72eeaa2c78c6","port":"bottom2"},"relation":"none:none","fillColor":"rgb(247, 151, 128)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"7b27855a-7467-439b-b846-fb7a369f80ae","shape":"erdRelation","source":{"cell":"ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2","port":"out2"},"target":{"cell":"764cbe48-4a33-4752-94a9-67bda1226718","port":"in2"},"relation":"none:none","fillColor":"rgb(247, 151, 128)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"182b311f-746e-49c8-8bfa-c0fec449eb2a","shape":"erdRelation","source":{"cell":"96e751a3-f338-4cc1-937a-b8d1a6acfa1d","port":"out3"},"target":{"cell":"aa201a0f-fd7d-4393-b33a-589fa51f91b6","port":"in3"},"relation":"none:concave","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"db184b6f-8cb3-4bbb-8290-9c5438f9c11b","shape":"erdRelation","source":{"cell":"96e751a3-f338-4cc1-937a-b8d1a6acfa1d","port":"out2"},"target":{"cell":"db2e0214-00dd-4c58-ba37-627fd8cba8d2","port":"in3"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"9015a485-4289-4b5e-925c-5d5dc7851d2e","shape":"erdRelation","source":{"cell":"a9ad3011-be3b-45ce-9200-cbd99874e48d","port":"top2"},"target":{"cell":"50255b65-de6e-4032-b606-58482a662442","port":"bottom2"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"e4d93dce-4df5-403b-bd9d-f126fd1cb7ee","shape":"erdRelation","source":{"cell":"ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2","port":"top3"},"target":{"cell":"50255b65-de6e-4032-b606-58482a662442","port":"bottom"},"relation":"none:n","fillColor":"rgb(247, 151, 128)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"5278e0a2-f809-4023-b439-b35ae083a325","shape":"erdRelation","source":{"cell":"ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2","port":"top4"},"target":{"cell":"bd6cd2f6-55ae-43fd-af6c-22bdbaf96a00","port":"top3"},"relation":"none:n","fillColor":"rgb(247, 151, 128)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"54f3478c-85b5-4b98-8c68-332a9a037140","shape":"erdRelation","source":{"cell":"a9ad3011-be3b-45ce-9200-cbd99874e48d","port":"top"},"target":{"cell":"e6458913-d5bb-4d3e-8194-4e983ee9561b","port":"bottom2"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"9a99fd26-86c6-42b3-9fe1-5380d3314003","shape":"erdRelation","source":{"cell":"a9ad3011-be3b-45ce-9200-cbd99874e48d","port":"top3"},"target":{"cell":"ab4a33f9-98c1-4690-87aa-46e590bd7b0c","port":"bottom"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"14913b43-5f56-45c0-8a8b-128685ae8831","shape":"erdRelation","source":{"cell":"ea0f4b6c-37b3-42f7-8f12-0a946e1ae841","port":"top2"},"target":{"cell":"e6458913-d5bb-4d3e-8194-4e983ee9561b","port":"bottom"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"b27fbbab-850d-4577-bd84-dfec38412d43","shape":"erdRelation","source":{"cell":"ea0f4b6c-37b3-42f7-8f12-0a946e1ae841","port":"top3"},"target":{"cell":"50255b65-de6e-4032-b606-58482a662442","port":"in3"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"4e142b26-fa22-4806-aee3-7b598f1eaede","shape":"erdRelation","source":{"cell":"ea0f4b6c-37b3-42f7-8f12-0a946e1ae841","port":"top3"},"target":{"cell":"ab4a33f9-98c1-4690-87aa-46e590bd7b0c","port":"bottom2"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"a2c4ce7b-8f43-4dc6-b29f-71454f6de700","shape":"erdRelation","source":{"cell":"96e751a3-f338-4cc1-937a-b8d1a6acfa1d","port":"top2"},"target":{"cell":"ab4a33f9-98c1-4690-87aa-46e590bd7b0c","port":"in3"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"80e84e01-fbda-4caf-a016-eae9c69aea5f","shape":"erdRelation","source":{"cell":"96e751a3-f338-4cc1-937a-b8d1a6acfa1d","port":"top3"},"target":{"cell":"bd6cd2f6-55ae-43fd-af6c-22bdbaf96a00","port":"in3"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"bd3bbe46-89e6-43dc-a1a0-59968252238d","shape":"erdRelation","source":{"cell":"96e751a3-f338-4cc1-937a-b8d1a6acfa1d","port":"top"},"target":{"cell":"e6458913-d5bb-4d3e-8194-4e983ee9561b","port":"bottom"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"b82b944c-8659-4720-b69e-e6e066b53882","shape":"erdRelation","source":{"cell":"96e751a3-f338-4cc1-937a-b8d1a6acfa1d","port":"top2"},"target":{"cell":"50255b65-de6e-4032-b606-58482a662442","port":"in3"},"relation":"none:n","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"ad80ead0-2c42-49a0-9571-931e4536609a","shape":"erdRelation","source":{"cell":"e9895e8e-4c87-4ca5-9855-3155b08e1e9a","port":"bottom"},"target":{"cell":"c306ccee-689c-49cf-a846-ec1e6a451eb7","port":"top2"},"relation":"none:n","fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"a1e1cd85-61f6-4ff4-a6c1-b7057722d9c5","shape":"erdRelation","source":{"cell":"e9895e8e-4c87-4ca5-9855-3155b08e1e9a","port":"bottom2"},"target":{"cell":"32dfec65-cfe2-4f80-9f86-6dfd50c2f07f","port":"top"},"relation":"none:n","fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"c45fd09f-f5e0-4a1b-905a-b6623ed429ec","shape":"erdRelation","source":{"cell":"e9895e8e-4c87-4ca5-9855-3155b08e1e9a","port":"bottom2"},"target":{"cell":"e6458913-d5bb-4d3e-8194-4e983ee9561b","port":"top2"},"relation":"none:n","fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"80ff1b9b-450a-4838-ba92-1780c4c3edde","shape":"erdRelation","source":{"cell":"71e702a2-681a-453f-a15e-30ff10e3b439","port":"bottom"},"target":{"cell":"50255b65-de6e-4032-b606-58482a662442","port":"top"},"relation":"none:n","vertices":[{"x":480,"y":790}],"fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"bbf38d0b-7d61-4a17-b39c-c56ae830f9bd","shape":"erdRelation","source":{"cell":"ff5515d5-21a9-4272-86b2-c984273febc1","port":"bottom"},"target":{"cell":"50255b65-de6e-4032-b606-58482a662442","port":"top2"},"relation":"none:n","vertices":[{"x":470,"y":770}],"fillColor":"rgb(245, 220, 78)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"11267869-dc5a-411d-b763-fc0ad08db8a6","shape":"erdRelation","source":{"cell":"ff5515d5-21a9-4272-86b2-c984273febc1","port":"bottom3"},"target":{"cell":"ab4a33f9-98c1-4690-87aa-46e590bd7b0c","port":"top2"},"relation":"none:n","vertices":[{"x":520,"y":780},{"x":880,"y":850}],"fillColor":"rgb(245, 220, 78)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","attrs":{"line":{"strokeDasharray":""}}},{"id":"f5f60922-9d66-4f92-9a70-11c6cce0e702","shape":"erdRelation","source":{"cell":"8e8dd851-2e95-4bd5-8623-645b6e590bab","port":"in2"},"target":{"cell":"c306ccee-689c-49cf-a846-ec1e6a451eb7","port":"top3"},"relation":"none:n","fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"339ae80b-97a9-47d5-a701-742796f5143e","shape":"erdRelation","source":{"cell":"8e8dd851-2e95-4bd5-8623-645b6e590bab","port":"bottom"},"target":{"cell":"e6458913-d5bb-4d3e-8194-4e983ee9561b","port":"top"},"relation":"none:concave","vertices":[{"x":500,"y":730}],"fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"3623f1fd-62e0-4004-a07c-61e6c35c15fc","shape":"erdRelation","source":{"cell":"8e8dd851-2e95-4bd5-8623-645b6e590bab","port":"bottom2"},"target":{"cell":"c306ccee-689c-49cf-a846-ec1e6a451eb7","port":"top2"},"relation":"none:n","fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"36e0a409-a617-465a-bd82-435826d7af9b","shape":"erdRelation","source":{"cell":"8e8dd851-2e95-4bd5-8623-645b6e590bab","port":"bottom3"},"target":{"cell":"50255b65-de6e-4032-b606-58482a662442","port":"top3"},"relation":"none:n","vertices":[{"x":570,"y":770}],"fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"35690dd6-bb9b-44bd-95cb-60ba826eb886","shape":"erdRelation","source":{"cell":"aa15bf4b-eb5c-4beb-94be-98c9cf34c41a","port":"bottom3"},"target":{"cell":"d9b4230a-9a29-4b06-9bc2-7d0021d99423","port":"top2"},"relation":"none:n","fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"7450b679-24ae-438a-94d9-3619edf7d17b","shape":"erdRelation","source":{"cell":"aa15bf4b-eb5c-4beb-94be-98c9cf34c41a","port":"bottom2"},"target":{"cell":"e6458913-d5bb-4d3e-8194-4e983ee9561b","port":"top3"},"relation":"none:n","vertices":[{"x":590,"y":770}],"fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"26caad8d-227c-4985-a343-e647e69c682e","shape":"erdRelation","source":{"cell":"aa15bf4b-eb5c-4beb-94be-98c9cf34c41a","port":"bottom"},"target":{"cell":"50255b65-de6e-4032-b606-58482a662442","port":"top2"},"relation":"none:n","vertices":[{"x":660,"y":770}],"fillColor":"rgb(245, 220, 78)","attrs":{"line":{"strokeDasharray":""}}},{"id":"e9895e8e-4c87-4ca5-9855-3155b08e1e9a","link":"{\"type\":\"internally\",\"value\":\"65E2E950-34BE-49A8-98A3-9EB13E974B8F\"}","shape":"edit-node","position":{"x":90.000000000015,"y":629.9999999999891},"label":"### 小时费用率\n---\n年度\n工厂代码(工厂id)\n成本中心代码(成本中心id)\n成本中心名称(成本中心id)\n人工小时费率\n设备小时费率\n燃动小时费率\n辅料小时费率\n其他小时费率\n生效日期\n失效日期\n维护人员(用户id)\n维护时间","fillColor":"rgb(245, 220, 78)","size":{"width":180,"height":270},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"},{"id":"bottom4","group":"bottom"}]}},{"id":"71e702a2-681a-453f-a15e-30ff10e3b439","shape":"edit-node","position":{"x":310.000000000015,"y":629.9999999999891},"label":"### 7525价格\n---\nid\n年份\n门控料号(物料id)\n物料规格信息\n价格","fillColor":"rgb(245, 220, 78)","size":{"width":120,"height":160},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"}]}},{"id":"ff5515d5-21a9-4272-86b2-c984273febc1","shape":"edit-node","position":{"x":465.000000000015,"y":629.9999999999891},"label":"### 预算价格\n---\n年度\n物料号(物料id)\n物料描述(物料id)\n项目编号(项目id)\n预算价格","fillColor":"rgb(245, 220, 78)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":160,"height":130},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"}]}},{"id":"8e8dd851-2e95-4bd5-8623-645b6e590bab","shape":"edit-node","position":{"x":660.0000000000183,"y":629.9999999999891},"label":"### 生产批量设置\n---\nid\n门控料号(物料id)\n工厂代号(工厂id)\n生产批量\n维护人(用户id)\n维护时间","fillColor":"rgb(245, 220, 78)","size":{"width":140,"height":160},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"bottom4","group":"bottom"}]}},{"id":"aa15bf4b-eb5c-4beb-94be-98c9cf34c41a","shape":"edit-node","position":{"x":870.0000000000183,"y":619.9999999999891},"label":"### 最近采购价格\n---\nid\n工厂代号(工厂id)\n门控料号(物料id)\n产品名称(?与物料有什么区别)\n规格\n单位\n不含税价格\n估算日期\n采购类型\n是否启用","fillColor":"rgb(245, 220, 78)","size":{"width":150,"height":220},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"bottom4","group":"bottom"}]}},{"id":"aa201a0f-fd7d-4393-b33a-589fa51f91b6","shape":"edit-node","position":{"x":1310,"y":1570},"label":"### 标准成本结果\n---\n工厂代码\n物料编码\n版本号\n机械材料\n门控\n电机\nMK物料\n包装箱\n人工\n运输费\n制费\n成本合计\n7525门控\n7525合计","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":150,"height":290},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"},{"id":"bottom4","group":"bottom"}]}},{"id":"14b1e9e8-3950-432b-9efd-83bfe8ce0d37","shape":"edit-node","position":{"x":950.000000000015,"y":1799.9999999999927},"label":"### 标准成本结果BOM结构树查询\n---\n物料名称\n总标准成本-电子实际\t\n结构总成本-电子实际\t\n结构人工成本\t\n结构材料成本-电子实际\t\n本阶材料成本-电子实际\t\n本阶材料成本-电子实际-材料\t\n本阶材料成本-电子实际-门控\t\n本阶材料成本-电子实际-电机\t\n本阶材料成本-7525\t\n本阶材料成本-7525-材料\t\n本阶材料成本-7525-门控\t\n本阶材料成本-7525-电机\t\n本阶人工成本\t\n本阶设备成本\t\n本阶燃动成本\t\n本阶辅料成本\t\n本阶其他成本\t\n物料图号\n总标准成本-7525\t\n结构总成本-7525\t\n结构制费成本\t\n结构材料成本-7525\t\n累计材料成本-电子实际\t\n累计材料成本-电子实际-材料\t\n累计材料成本-电子实际-门控\t\n累计材料成本-电子实际-电机\t\n累计材料成本-7525\t\n累计材料成本-7525-材料\t\n累计材料成本-7525-门控\t\n累计材料成本-7525-电机\t\n累计人工成本\t\n累计设备成本\t\n累计燃动成本\t\n累计辅料成本\t\n累计其他成本","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":210,"height":690},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"},{"id":"bottom4","group":"bottom"}]}},{"id":"7f4cc984-aefc-452a-bd22-39ddc3fd7a43","shape":"edit-node","position":{"x":690.0000000000107,"y":1799.9999999999927},"label":"### 标准成本结果单行查询\n---\n工厂\n低阶码\n物料编码\n品名\n图号\n规格\n相对用量\n单位\n制造类型\n本阶单位成本\n本阶相对成本\n相对材料成本\n相对人工成本\n相对制费成本\n总标准成本--电子实际\n总标准成本--7525\n本阶材料成本--电子实际\n本阶材料成本-7525\n本阶人工成本\n本阶设备成本\n本阶燃动成本\n本阶辅料成本\n本阶其它成本\n累计材料成本-电子实际\n累计材料成本-7525\n累计人工成本\n累计设备成本\n累计燃动成本\n累计辅料成本\n累计其它成本\n相对材料成本-7525\n相对总成本\n相对总成本-7525\n层级\n版本","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":210,"height":670},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"},{"id":"bottom4","group":"bottom"}]}},{"id":"db2e0214-00dd-4c58-ba37-627fd8cba8d2","shape":"edit-node","position":{"x":975.000000000015,"y":1649.9999999999927},"label":"### 部件缺失信息\n---\n工厂\n物料号\n版本号\n缺失信息(缺失备注信息)","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":160,"height":150},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"},{"id":"bottom4","group":"bottom"}]}},{"id":"e6458913-d5bb-4d3e-8194-4e983ee9561b","link":"{\"type\":\"internally\",\"value\":\"0C137DAC-F352-41FC-83D4-852123619E5C\"}","shape":"edit-node","position":{"x":790.0000000000183,"y":1050},"label":"### 工厂\n---\nid\n工厂代码","fillColor":"#DDE5FF","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":80,"height":70},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}},{"id":"a2aac2ea-416f-4c73-81c2-cd1000ccd7fe","shape":"edit-node","position":{"x":425.000000000015,"y":1809.9999999999893},"label":"### 产品工序\n---\n工厂代码\n自制料号(?)\n工艺路线号\n序号\n工序名称\n成本中心代码\n成本中心名称\n人工工时\n人工费率\n设备工时\n设备费率\n燃动工时\n燃动费率\n辅料工时\n辅料费率\n其他工时\n其他费率\n版本(?)","fillColor":"rgb(117, 190, 250)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":200,"height":360},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"},{"id":"bottom4","group":"bottom"}]}},{"id":"96e751a3-f338-4cc1-937a-b8d1a6acfa1d","shape":"edit-node","position":{"x":700.000000000015,"y":1570},"label":"### 成本计算和数据导出(计算计划)\n---\n项目名称\n阶段\n日期\n版本号\n工厂\n物料号\n状态\n关键部件缺失信息(该字段的用意?)","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":210,"height":250},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"},{"id":"bottom4","group":"bottom"},{"id":"top4","group":"top"}]}},{"id":"a9ad3011-be3b-45ce-9200-cbd99874e48d","shape":"edit-node","position":{"x":1060,"y":1470},"label":"### 当月入库标准成本缺失\n---\n工厂代码(工厂id)\n物料料号(物料id)\n产品名称\nWBS号\n项目名称(项目id)\n库存地点编号","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":160,"height":160},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"},{"id":"bottom4","group":"bottom"},{"id":"top4","group":"top"}]}},{"id":"764cbe48-4a33-4752-94a9-67bda1226718","shape":"edit-node","position":{"x":180.000000000015,"y":1240},"label":"### 成本挖掘任务结果\n---\nid\n任务id\n实际总成本\n标准总成本\n总差额\n差额比\n是否有传输过账\n报告状态\n","fillColor":"rgb(247, 151, 128)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":130,"height":190},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}},{"id":"ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2","shape":"edit-node","position":{"x":20,"y":1240},"label":"### 成本挖掘任务\n---\nid\n工厂\n年\n月\n物料号\nWBS号\n标准版本号","fillColor":"rgb(247, 151, 128)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":130,"height":180},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}},{"id":"5bed2e45-b438-46cc-8ee1-72eeaa2c78c6","shape":"edit-node","position":{"x":190,"y":1460},"label":"### 成本挖掘报告\n---\n对比分析\n原因分析\n","fillColor":"rgb(247, 151, 128)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":110,"height":150},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}},{"id":"b0b6d230-8b0f-4f2f-9d2e-b3d8cd88b234","shape":"edit-node","position":{"x":160,"y":1019.9999999999891},"label":"### 角色管理\n---\nid\n角色名称\n是否启用\n操作权限","fillColor":"#DDE5FF","size":{"width":170,"height":150},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}},{"id":"c306ccee-689c-49cf-a846-ec1e6a451eb7","shape":"edit-node","position":{"x":360.0000000000148,"y":1029.999999999989},"label":"### 用户\n---\nid\n用户名\n昵称\n是否启用\n所属角色\n密码\n创建时间\n\n","fillColor":"#DDE5FF","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":90,"height":160},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}},{"id":"32dfec65-cfe2-4f80-9f86-6dfd50c2f07f","link":"{\"type\":\"internally\",\"value\":\"15372773-A008-4A5F-B23E-75E100F99B47\"}","shape":"edit-node","position":{"x":660.0000000000183,"y":1064.999999999989},"label":"### 成本中心\n---\nid\n成本中心代码","fillColor":"#DDE5FF","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":90,"height":70},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"}]}},{"id":"50255b65-de6e-4032-b606-58482a662442","link":"{\"type\":\"internally\",\"value\":\"7D1DEA8A-7373-4659-B1A7-B0E72416EDA7\"}","shape":"edit-node","position":{"x":910.000000000015,"y":1029.999999999989},"label":"### 物料\n---\nid\n工厂代号(工厂id)\n物料号\n物料名称\n图号","fillColor":"#DDE5FF","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":140,"height":140},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}},{"id":"ab4a33f9-98c1-4690-87aa-46e590bd7b0c","link":"{\"type\":\"internally\",\"value\":\"236F8414-6100-429D-8DEC-A223B0BDA052\"}","shape":"edit-node","position":{"x":1080,"y":1029.999999999989},"label":"### 项目\n---\nid\n项目编号\n项目名称\n项目类型\n计划开始时间\n计划结束时间\n项目状态","fillColor":"#DDE5FF","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":120,"height":160},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"}]}},{"id":"06ca758c-3187-47bd-8136-ca10dd94640b","shape":"edit-node","position":{"x":425.000000000015,"y":1300},"label":"### 成本挖掘统计\n---\n工厂\n年度\n月度\n库存地点\n材料成本-实际\n人工成本-实际\n制造费用-实际\n总成本-电子实际\n材料成本-标准\n人工成本-标准\n制造费用-标准\n标准成本-电子实际\n材料成本-差异\n人工成本-差异\n制造费用-差异\n总成本差异-电子实际\n---\n原因分析","fillColor":"rgb(247, 151, 128)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":140,"height":350},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}},{"id":"ea0f4b6c-37b3-42f7-8f12-0a946e1ae841","shape":"edit-node","position":{"x":840,"y":1290},"label":"### 项目标准成本缺失\n---\n工厂代码(工厂id)\n物料料号(物料id)\n产品名称\n项目名称","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":130,"height":150},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"in4","group":"in"},{"id":"bottom4","group":"bottom"}]}},{"id":"bd6cd2f6-55ae-43fd-af6c-22bdbaf96a00","link":"{\"type\":\"internally\",\"value\":\"1271309E-2310-435D-B129-DC3F72BBA013\"}","shape":"edit-node","position":{"x":1030,"y":1240},"label":"### 物料号最新的版本号\n---\n项目类型\n子项目号\n项目名称\n项目阶段\n项目日期\n图号\n工厂\n物料号\n版本号\n版本状态","fillColor":"rgb(90, 213, 198)","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":170,"height":220},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}},{"id":"d9b4230a-9a29-4b06-9bc2-7d0021d99423","link":"{\"type\":\"internally\",\"value\":\"7AE6268A-7B4D-4F6A-8E6C-19F7C93C3C49\"}","shape":"edit-node","position":{"x":465.000000000015,"y":1050},"label":"### 数据字典\n---\n采购类型(一般采购、外协采购)\n是否启用(是、否)\n项目阶段(初始、首批、量\n产)\n制造类型\n版本状态","fillColor":"#DDE5FF","parent":"4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c","size":{"width":170,"height":150},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}},{"id":"e4c40d33-e4c2-4dea-9413-62f7c9d772db","shape":"edit-node","position":{"x":0,"y":1019.9999999999891},"label":"### 菜单管理\n---\nid\n菜单名称\n菜单路径\n菜单模块\n是否启用\n说明\n创建人\n创建时间\n","fillColor":"#DDE5FF","size":{"width":150,"height":180},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"},{"id":"top4","group":"top"}]}}]},"id":"49BB7996-5205-4A52-96A3-FE87B1D8C4AC","comment":""},{"defKey":"2","defName":"逻辑关系","relationType":"field","canvasData":{"cells":[]},"id":"0D56908B-B619-4D80-A491-DE9808D9FFEB","comment":""},{"defKey":"3","defName":"物理模型","canvasData":{"cells":[{"id":"02b64cef-3ee3-48a5-9867-9dc4e9726bfd","shape":"group","position":{"x":903.9999999999982,"y":-40.00000000000006},"label":"学生行为","size":{"width":960,"height":760},"children":["9a5658de-7e28-4815-95c2-ccf5ff90e6c1","26b28925-27ed-488d-b20d-2abbcafa5057","8fad7c2e-d083-4589-b938-071541a6cea1","60b8fc40-2b82-4b9a-8da2-5234582e31f6"]},{"id":"8fad7c2e-d083-4589-b938-071541a6cea1","shape":"edit-node","position":{"x":1142,"y":459.999999999998},"label":"课程信息表为镜像,所以后面的“:1\"标识,是指第1个镜像副本,仅关系图需要","fontColor":"#f62b07","fillColor":"#fcfcac","parent":"02b64cef-3ee3-48a5-9867-9dc4e9726bfd","size":{"width":460,"height":90},"ports":{"groups":{"in":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"left"}},"out":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"right"}},"top":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"top"}},"bottom":{"attrs":{"fo":{"width":8,"height":8,"x":-4,"y":-4,"magnet":"true","style":{"visibility":"hidden"}}},"zIndex":3,"position":{"name":"bottom"}}},"items":[{"group":"in","id":"in"},{"group":"in","id":"in2"},{"group":"in","id":"in3"},{"group":"out","id":"out"},{"group":"out","id":"out2"},{"group":"out","id":"out3"},{"group":"top","id":"top"},{"group":"top","id":"top2"},{"group":"top","id":"top3"},{"group":"bottom","id":"bottom"},{"group":"bottom","id":"bottom2"},{"group":"bottom","id":"bottom3"}]}},{"id":"60b8fc40-2b82-4b9a-8da2-5234582e31f6","shape":"erdRelation","source":{"cell":"9a5658de-7e28-4815-95c2-ccf5ff90e6c1","port":"5FAE5CA5-B7A6-40C3-878D-1BB3D4A45B5C%out"},"target":{"cell":"26b28925-27ed-488d-b20d-2abbcafa5057","port":"0C5A31BB-2855-4BB9-84D1-7E63B37A71E1%in"},"relation":"1:n","fillColor":"#c00000","parent":"02b64cef-3ee3-48a5-9867-9dc4e9726bfd","attrs":{"line":{"strokeDasharray":""}}},{"id":"de986735-cd84-4bd5-b50f-6b5a70df984d","shape":"group","position":{"x":-130.00000000000023,"y":-40},"label":"学院设置部分","size":{"width":1010,"height":760},"children":["444bdcfa-cc31-4b36-892b-9caef73cc863","4a31fc9b-4f5a-4f2c-880b-409d433ba848","9972b579-d4c5-4520-9202-7a57bf539151","4bbe78ce-9511-471b-bea0-bcdfa333b636","b9e17f34-b032-4b33-b78b-618b7e046614","925b71be-5cf6-48d7-aea2-5c49e68a5d8b","6210b0eb-8566-4b64-885b-f1b00d6078d7","914c8f40-8cff-49ed-86a9-4dcad63ad668","56317816-819f-41ea-a6ef-bdcd0027fb68","979dfa9f-475a-4be8-8ddc-1f2500ff212b","f03ab359-7568-4402-bc56-4593bf5e1420","5428380e-8314-4f6f-9048-43eff1b48ee5"]},{"id":"f03ab359-7568-4402-bc56-4593bf5e1420","shape":"erdRelation","source":{"cell":"56317816-819f-41ea-a6ef-bdcd0027fb68","port":"9651B83A-2208-4F1E-A870-C3C4E1FAF103%out"},"target":{"cell":"6210b0eb-8566-4b64-885b-f1b00d6078d7","port":"D793F097-1364-49FD-B02C-D4EBBA5A055A%in"},"relation":"1:n","vertices":[],"labels":[{"attrs":{"text":{"text":""},"rect":{}}}],"fillColor":"#ACDAFC","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d"},{"id":"979dfa9f-475a-4be8-8ddc-1f2500ff212b","shape":"erdRelation","source":{"cell":"9972b579-d4c5-4520-9202-7a57bf539151","port":"8707AEB9-3EC5-4EEA-9E14-99BAF28B46B4%out"},"target":{"cell":"6210b0eb-8566-4b64-885b-f1b00d6078d7","port":"63130D1B-63C8-491C-B36D-5603A30BFB37%in"},"relation":"1:n","vertices":[{"x":400,"y":73.00000000000045}],"fillColor":"#ACDAFC","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d"},{"id":"b9e17f34-b032-4b33-b78b-618b7e046614","shape":"erdRelation","source":{"cell":"4a31fc9b-4f5a-4f2c-880b-409d433ba848","port":"3D337B5E-182D-45C7-9752-E2DD4D7CF2BD%out"},"target":{"cell":"4bbe78ce-9511-471b-bea0-bcdfa333b636","port":"AE73CBE3-577D-4457-8987-5BEFDECAEED9%in"},"relation":"1:n","vertices":[{"x":371,"y":319.00000000000045}],"fillColor":"#ACDAFC","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d"},{"id":"925b71be-5cf6-48d7-aea2-5c49e68a5d8b","shape":"erdRelation","source":{"cell":"444bdcfa-cc31-4b36-892b-9caef73cc863","port":"C5916046-F140-4B0C-BF84-EBD7DDB38EAA%out"},"target":{"cell":"4bbe78ce-9511-471b-bea0-bcdfa333b636","port":"AE73CBE3-577D-4457-8987-5BEFDECAEED9%out"},"relation":"1:n","fillColor":"#ACDAFC","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d"},{"id":"5428380e-8314-4f6f-9048-43eff1b48ee5","shape":"erdRelation","source":{"cell":"56317816-819f-41ea-a6ef-bdcd0027fb68","port":"9651B83A-2208-4F1E-A870-C3C4E1FAF103%in"},"target":{"cell":"444bdcfa-cc31-4b36-892b-9caef73cc863","port":"EFD22F94-E1D0-4CAD-947D-E856A997D7B5%in"},"relation":"1:n","vertices":[{"x":-79,"y":620.0000000000005},{"x":381,"y":620.0000000000005}],"fillColor":"#ACDAFC","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d"},{"id":"914c8f40-8cff-49ed-86a9-4dcad63ad668","shape":"erdRelation","source":{"cell":"6210b0eb-8566-4b64-885b-f1b00d6078d7","port":"6D6BC6AA-8114-4B91-8A2C-4B5FEACEB347%in"},"target":{"cell":"4bbe78ce-9511-471b-bea0-bcdfa333b636","port":"A23704D2-7128-41A2-988C-D20CB984FA83%in"},"relation":"1:n","fillColor":"#ACDAFC","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d"},{"id":"47d951f9-c6b0-4407-b2e3-e66f4b2931ec","shape":"erdRelation","source":{"cell":"6210b0eb-8566-4b64-885b-f1b00d6078d7","port":"6D6BC6AA-8114-4B91-8A2C-4B5FEACEB347%out"},"target":{"cell":"9a5658de-7e28-4815-95c2-ccf5ff90e6c1","port":"1BCE9672-14BA-4B2B-B8C6-222CC6CF0F61%in"},"relation":"1:n","vertices":[{"x":890,"y":83}],"fillColor":"#dce775","attrs":{"line":{"strokeDasharray":""}}},{"id":"26b28925-27ed-488d-b20d-2abbcafa5057","shape":"table","position":{"x":1421,"y":19.99999999999801},"count":0,"originKey":"6B1610FB-364F-4514-95D6-9DDA681BFC61","fillColor":"#9acc98","parent":"02b64cef-3ee3-48a5-9867-9dc4e9726bfd","size":{"width":362,"height":146}},{"id":"6210b0eb-8566-4b64-885b-f1b00d6078d7","shape":"table","position":{"x":442,"y":10.000000000000455},"count":0,"originKey":"C698249E-307D-4087-9EC4-3BABCFC00660","fontColor":"#555555","fillColor":"#dce775","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d","size":{"width":393,"height":192}},{"id":"56317816-819f-41ea-a6ef-bdcd0027fb68","shape":"table","position":{"x":-44.5,"y":10.000000000000455},"count":0,"originKey":"26B8D13E-BE37-4E20-8496-13A586E84581","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d","size":{"width":409,"height":192}},{"id":"9972b579-d4c5-4520-9202-7a57bf539151","shape":"table","position":{"x":-48.5,"y":233.00000000000045},"count":0,"originKey":"C2F51B91-7C24-4CB4-8406-706F4851EB0B","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d","size":{"width":352,"height":169}},{"id":"4a31fc9b-4f5a-4f2c-880b-409d433ba848","shape":"table","position":{"x":-59,"y":450.00000000000045},"count":0,"originKey":"9095C2A1-EF4C-4357-AAB2-26F99C1845CA","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d","size":{"width":355,"height":146}},{"id":"444bdcfa-cc31-4b36-892b-9caef73cc863","shape":"table","position":{"x":396,"y":405.00000000000045},"count":0,"originKey":"536B8B19-C2B3-45D1-ADA8-402C0083FC31","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d","size":{"width":451,"height":284}},{"id":"9a5658de-7e28-4815-95c2-ccf5ff90e6c1","shape":"table","position":{"x":950,"y":19.99999999999801},"count":0,"originKey":"0FC9DB49-4FDB-437E-83E9-7EE803F1CC84","fontColor":"#0d0d0d","fillColor":"#c00000","parent":"02b64cef-3ee3-48a5-9867-9dc4e9726bfd","size":{"width":403,"height":330}},{"id":"4bbe78ce-9511-471b-bea0-bcdfa333b636","shape":"table","position":{"x":472,"y":233.00000000000045},"count":0,"originKey":"1A50AEEB-F956-4275-AE11-5D6F1F471FBE","parent":"de986735-cd84-4bd5-b50f-6b5a70df984d","size":{"width":334,"height":123}}]},"id":"9427DD89-11C0-431F-9BB0-8353A2725174","comment":""}],"standardFields":[{"defKey":"personInfo","defName":"个人基本信息要素","fields":[{"defKey":"ID_CARD_NO","defName":"身份证号","comment":"","type":"VARCHAR","len":"60","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","refDict":"","uiHint":"","id":"A64A91C8-A41F-4113-92FB-7563D7EF054D","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"MOBILE_PHONE","defName":"手机号","comment":"","type":"VARCHAR","len":"60","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","refDict":"","uiHint":"","id":"479DA2AB-1974-411A-A81E-92FB939E75EB","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"GENDER","defName":"性别","comment":"","type":"VARCHAR","len":"32","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"73FD2BAD-2358-4336-B96D-45DC897BD792","refDict":"BF9E20E0-80D3-486D-BD58-5FADCF3E4A1D","uiHint":"","id":"48473E29-6594-4912-AADE-C8AB44FCA3E9","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"BIRTH","defName":"出生日期","comment":"","type":"DATETIME","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"7CFFA0D3-6A93-4DDC-BC10-DF21211064DC","refDict":"","uiHint":"","id":"2BD3D2EE-2411-49A6-983D-84B81057312F","baseType":"89D69E81-EA34-42EE-9FA2-93B8BD27E098"},{"defKey":"AVATAR","defName":"头像","comment":"","type":"VARCHAR","len":"60","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","refDict":"","uiHint":"","id":"FDD67CEE-4B52-4BD1-A1A3-9C5EBC6037E6","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"HEIGHT","defName":"身高","comment":"","type":"INT","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E","refDict":"","uiHint":"","id":"CAAA0E79-41A1-4758-B481-D171168C4D68","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"WEIGHT","defName":"体重","comment":"","type":"INT","len":"","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"6BC8F04B-6CFA-4995-98D3-318F5CDD774E","refDict":"","uiHint":"","id":"575482CE-64A6-4CB9-99DC-8E126D190AAA","baseType":"1D764C4A-6F9F-421E-B11A-6F3E23B51811"},{"defKey":"NATION","defName":"名族","comment":"","type":"VARCHAR","len":"32","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"73FD2BAD-2358-4336-B96D-45DC897BD792","refDict":"115EDEFC-0323-410E-81AB-CCAB8879837A","uiHint":"","id":"15B0D75D-0B97-4985-A816-D0EAFA90446B","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"POLITICAL","defName":"政治面貌","comment":"","type":"VARCHAR","len":"32","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"73FD2BAD-2358-4336-B96D-45DC897BD792","refDict":"06EED564-BBA9-4747-8D73-AF809A330CB8","uiHint":"","id":"F458E86D-84D6-45A1-9DD3-51E6C8170D7F","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"MARITAL","defName":"婚姻状况","comment":"","type":"VARCHAR","len":"32","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"73FD2BAD-2358-4336-B96D-45DC897BD792","refDict":"EA1587B7-3954-437A-BFE0-FCB0453BCABA","uiHint":"","id":"7275E578-6893-4922-AC69-95B261BFBD61","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"DOMICILE_PLACE_PROVINCE","defName":"籍贯(省)","comment":"","type":"VARCHAR","len":"60","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","refDict":"","uiHint":"","id":"F04BF130-3EC1-4E02-9DED-3214CA88E352","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"DOMICILE_PLACE_CITY","defName":"籍贯(市)","comment":"","type":"VARCHAR","len":"32","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"73FD2BAD-2358-4336-B96D-45DC897BD792","refDict":"","uiHint":"","id":"B97F5BC2-33DE-4857-9DB8-ECFD02C9040C","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"},{"defKey":"DOMICILE_PLACE_ADDRESS","defName":"户籍地址","comment":"","type":"VARCHAR","len":"60","scale":"","primaryKey":false,"notNull":false,"autoIncrement":false,"defaultValue":"","hideInGraph":false,"domain":"9092C4E0-1A54-4859-ABBB-5B62DBC27573","refDict":"","uiHint":"","id":"812ADF1D-8C03-40CA-B030-E539838FB889","baseType":"FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"}],"id":"F30202B9-4B5D-4CE7-87CE-B3890C84D3F2"}],"dbConn":[{"defKey":"AB260C61-FBEB-4832-ADBD-E03CCFE82D96","defName":"成本管理","type":"29D1CE08-4C35-4D2D-AAA9-23D93305B52E","properties":{"driver_class_name":"com.mysql.cj.jdbc.Driver","url":"jdbc:mysql://121.40.189.20:3306/costmanage?characterEncoding=UTF-8&useSSL=false&useUnicode=true&serverTimezone=UTC","password":"YMzc157#","username":"root"}}],"homeCoverDiagram":{"defKey":"home-cover","defName":"首页封面","relationType":"entity","canvasData":{"cells":[{"id":"01ac9826-9c2a-457a-8922-e6f8f25d9561","shape":"mind-edge","source":{"cell":"1bdf13d1-c491-4652-9abd-0929fe040e7f","port":"right"},"target":{"cell":"a6aa31ba-f93c-4652-b293-51bbca33fa87","port":"left"},"fillColor":"rgb(183, 185, 189)"},{"id":"b47d896a-fc4f-4ac9-b011-68a447df24a8","shape":"mind-edge","source":{"cell":"1bdf13d1-c491-4652-9abd-0929fe040e7f","port":"right"},"target":{"cell":"bbf7eeb7-2b33-4594-b2d5-2ec520405479","port":"left"},"fillColor":"rgb(183, 185, 189)"},{"id":"07be3bc0-a68e-476f-ba3d-331fe552faee","shape":"mind-edge","source":{"cell":"1bdf13d1-c491-4652-9abd-0929fe040e7f","port":"right"},"target":{"cell":"7392ebc5-1080-4250-99cb-34fa24f3050b","port":"left"},"fillColor":"rgb(183, 185, 189)"},{"id":"921ED3D8-5A8E-4A84-96AE-978C200C1E93","shape":"mind-edge","source":{"cell":"1bdf13d1-c491-4652-9abd-0929fe040e7f","port":"right"},"target":{"cell":"3795e95d-3f10-46a3-94af-2fc4b0b944b8","port":"left"}},{"id":"46C14C41-47AE-4CCA-B6F4-9EE675B3746F","shape":"mind-edge","source":{"cell":"1bdf13d1-c491-4652-9abd-0929fe040e7f","port":"right"},"target":{"cell":"f286d37f-d476-461d-b42d-4246f376b2a3","port":"left"}},{"id":"1bdf13d1-c491-4652-9abd-0929fe040e7f","shape":"mind-topic","position":{"x":-170,"y":-30},"label":"成本管理","fillColor":"rgb(247, 151, 128)","layout":"right","size":{"width":160,"height":70},"children":["a6aa31ba-f93c-4652-b293-51bbca33fa87","bbf7eeb7-2b33-4594-b2d5-2ec520405479","3795e95d-3f10-46a3-94af-2fc4b0b944b8","7392ebc5-1080-4250-99cb-34fa24f3050b","f286d37f-d476-461d-b42d-4246f376b2a3"]},{"id":"a6aa31ba-f93c-4652-b293-51bbca33fa87","link":"{\"type\":\"\",\"value\":\"\"}","shape":"mind-topic-branch","position":{"x":70,"y":-225},"label":"基础信息维护","fillColor":"rgb(245, 220, 78)","layout":"right","size":{"width":160,"height":60},"children":[]},{"id":"bbf7eeb7-2b33-4594-b2d5-2ec520405479","link":"{\"type\":\"\",\"value\":\"\"}","shape":"mind-topic-branch","position":{"x":70,"y":-125},"label":"SAP导出版本基础数据","fillColor":"rgb(245, 220, 78)","layout":"right","size":{"width":160,"height":60},"children":[]},{"id":"3795e95d-3f10-46a3-94af-2fc4b0b944b8","link":"{\"type\":\"\",\"value\":\"\"}","shape":"mind-topic-branch","position":{"x":70,"y":-25},"label":"成本卷积","fillColor":"rgb(245, 220, 78)","parent":"7392ebc5-1080-4250-99cb-34fa24f3050b","layout":"right","size":{"width":160,"height":60},"children":[]},{"id":"7392ebc5-1080-4250-99cb-34fa24f3050b","link":"{\"type\":\"\",\"value\":\"\"}","shape":"mind-topic-branch","position":{"x":70,"y":75},"label":"挖掘分析系统","fillColor":"rgb(245, 220, 78)","layout":"right","size":{"width":160,"height":60},"children":[]},{"id":"f286d37f-d476-461d-b42d-4246f376b2a3","link":"{\"type\":\"\",\"value\":\"\"}","shape":"mind-topic-branch","position":{"x":70,"y":175},"label":"系统管理","fillColor":"rgb(245, 220, 78)","layout":"right","size":{"width":160,"height":60},"children":[]}]},"id":"home-cover","comment":""},"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}]} \ No newline at end of file +{ + "name": "成本管理二期", + "describe": "成本管理", + "avatar": "", + "version": "4.9.2", + "createdTime": "2024-5-23 16:36:04", + "updatedTime": "2024-6-7 17:26:00", + "dbConns": [], + "profile": { + "default": { + "db": "29D1CE08-4C35-4D2D-AAA9-23D93305B52E", + "dbConn": "AB260C61-FBEB-4832-ADBD-E03CCFE82D96", + "entityInitFields": [ + { + "defKey": "TENANT_ID", + "defName": "租户号", + "comment": "", + "type": "", + "len": 32, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": true, + "domain": "16120F75-6AA7-4483-868D-F07F511BB081", + "refDict": "", + "uiHint": "", + "id": "ADB3AD14-6603-43E2-8261-114E32442B5B", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "REVISION", + "defName": "乐观锁", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": true, + "refDict": "", + "uiHint": "", + "id": "92BF430E-01FA-4AEF-944F-25A142632654", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811" + }, + { + "defKey": "CREATED_BY", + "defName": "创建人", + "comment": "", + "domain": "16120F75-6AA7-4483-868D-F07F511BB081", + "type": "", + "len": 32, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": true, + "refDict": "", + "uiHint": "", + "id": "C8BE2C7A-8251-4ADD-BB4F-411C5754DA62", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "CREATED_TIME", + "defName": "创建时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": true, + "refDict": "", + "uiHint": "", + "id": "4E471FD6-3E73-4A90-B660-51598A482409", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098" + }, + { + "defKey": "UPDATED_BY", + "defName": "更新人", + "comment": "", + "domain": "16120F75-6AA7-4483-868D-F07F511BB081", + "type": "", + "len": 32, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": true, + "refDict": "", + "uiHint": "", + "id": "0DC24AA9-4CD0-45D8-95CF-FA546BE343AB", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "UPDATED_TIME", + "defName": "更新时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": true, + "refDict": "", + "uiHint": "", + "id": "09F64AC4-4DEE-428F-AF64-4C103884E1AC", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098" + } + ], + "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}}INT 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": false, + "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": "modalAll", + "recentColors": [ + "#d148d1", + "#ce4bce", + "#831b83", + "#dd31dd", + "#da2fda", + "#e988e9", + "#000000", + "#DDE5FF" + ], + "DDLToggleCase": "L", + "extAttrProps": { + "attr1": { + "editType": "", + "optionsData": "", + "optionsFetcher": "" + }, + "attr2": { + "editType": "", + "optionsData": "", + "optionsFetcher": "" + }, + "attr3": { + "editType": "", + "optionsData": "", + "optionsFetcher": "" + }, + "attr4": { + "editType": "", + "optionsData": "", + "optionsFetcher": "" + }, + "attr5": { + "editType": "", + "optionsData": "", + "optionsFetcher": "" + }, + "attr6": { + "editType": "", + "optionsData": "", + "optionsFetcher": "" + }, + "attr7": { + "editType": "", + "optionsData": "", + "optionsFetcher": "" + }, + "attr8": { + "editType": "", + "optionsData": "", + "optionsFetcher": "" + }, + "attr9": { + "editType": "", + "optionsData": "", + "optionsFetcher": "" + } + }, + "menuWidth": "241px" + }, + "entities": [ + { + "id": "15372773-A008-4A5F-B23E-75E100F99B47", + "defKey": "cost_center", + "defName": "成本中心表", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "company_code", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E49448AA-E299-4E2A-B4DD-E2A5A4DC2965", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "cost_center_code", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 50, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "1AD66764-F41C-4547-B1FA-20A935807D71", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "cost_center_name", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "2D8FEB6B-498E-47A7-AA36-B48F60A08A26", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "cost_category", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "0170012C-B492-4B0D-8DFC-A846C2432623", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "status", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "F8C747B6-4A23-4DD2-8548-7450C794D881", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "65E2E950-34BE-49A8-98A3-9EB13E974B8F", + "defKey": "hour_rate", + "defName": "小时费率表", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "year", + "defName": "年度", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 4, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "B7294178-FFFD-44E1-9096-43DA30382968", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "cost_center_code", + "defName": "成本中心代码", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "67E63272-228B-4A7B-A9ED-562B24F20D0A", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "factory", + "defName": "工厂代码", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3A505DE2-B4D2-4203-AAC0-FA6D90EDC1A6", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "labor_hour_rate", + "defName": "人工小时费率", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 13, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "0621221F-577F-410E-9099-AD251DAEC448", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "equip_hour_rate", + "defName": "设备小时费率", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 13, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "8D540C7B-955B-45E2-8F7A-8D2F09ADBCEA", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "fuel_hour_rate", + "defName": "燃动小时费率", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 13, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "350088D8-058E-484B-9D64-828870A3E635", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "auxiliary_hour_rate", + "defName": "辅料小时费率", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 13, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "061734C8-8B5B-442D-8009-F7CFC44D3480", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "other_hour_rate", + "defName": "其他小时费率", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 13, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "2A092CB8-230B-411D-9926-9006108D302F", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "effective_date", + "defName": "生效日期", + "comment": "", + "domain": "", + "type": "DATE", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "4D1F80F6-B100-46BD-AB14-46E781970172", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "expiration_date", + "defName": "失效日期", + "comment": "", + "domain": "", + "type": "DATE", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "629B4427-C314-46B4-A5EF-9F9BCC72CE44", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "guardian", + "defName": "维护人员", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 30, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "B22F9668-187E-4910-B315-93BD87BC904E", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "maintenance_time", + "defName": "维护时间", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "799A2E1C-891C-4C1A-B831-2488ED50F4BC", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "reserve_1", + "defName": "预留字段1", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "924EB0A3-3B36-49EF-B6E1-3175E207CD22", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "reserve_2", + "defName": "预留字段2", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 6, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "11EF41CC-1975-421B-A3CC-C703DCA1BE9F", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "id", + "defName": "主键", + "comment": "", + "domain": "16120F75-6AA7-4483-868D-F07F511BB081", + "type": "", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "91AC3D31-CB32-454B-B563-C05155DFBC7F", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "0C137DAC-F352-41FC-83D4-852123619E5C", + "defKey": "sap_subfactory", + "defName": "同步SAP工厂信息", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "id", + "defName": "主键", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": true, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "894B4818-0F6B-4ABC-80C3-EDEC93A699F0", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "company_code", + "defName": "公司代码", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "6B3D866D-6236-44F2-A78C-F60CD70D1971", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "factory", + "defName": "工厂代码", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "92D955D7-1331-428E-B725-66F8203F9225", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "1271309E-2310-435D-B129-DC3F72BBA013", + "defKey": "diy_version_new", + "defName": "物料号最新的版本号", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "id", + "defName": "主键", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": true, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "2244E62A-31B7-4046-9B5A-04D57AA6234D", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "projectName", + "defName": "项目名称", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "44F69E4B-9E02-40CE-A66D-690B5F3D8E57", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "stage", + "defName": "阶段", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3E8FAD6B-B69F-4F76-889D-DC491B3C779C", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "date", + "defName": "日期", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 30, + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "B62BC5EC-DE88-4D1A-B2AD-C2A6C7015CE7", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "version", + "defName": "版本号", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "EEBE305F-AB80-43B1-A620-33BD97232162", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "werks", + "defName": "工厂", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "F0B74C38-D122-426E-9967-A019E9C3FC0C", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "matnr", + "defName": "物料号", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "73E27B7A-9823-411B-A52E-18428B09C45C", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "status", + "defName": "状态", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "83603E78-9A0D-43EF-A75B-A11B3809060D", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "createdTime", + "defName": "创建时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "CCAAB7F6-3A10-407E-948E-04C9E691C23D", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "finishTime", + "defName": "完成时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "6C3F517D-46A7-43CC-80D1-2C9DEC854725", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "batchname", + "defName": "批次", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 50, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "2D3DA37F-EDC1-4DE4-AC02-8FF542EB49C7", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "userid", + "defName": "用户id", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "A071A8A1-1840-4D15-A38B-245895B95FA2", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "graphicnumber", + "defName": "图号", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "1038828B-161A-4DFF-ADE4-DCAEFDD60D1C", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "projectPspid", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "8C4F8BA2-1D57-4A3F-B750-DBF1D32D4450", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "projectCate", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3A20DC52-B11A-4270-BF81-302A75F86334", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "keylost", + "defName": "", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "8E90BC94-31A1-426B-9932-8F6390B8FD21", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "mknum", + "defName": "", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "ADC8DB96-7D3D-45B2-8330-88CAD4766C88", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [ + { + "defKey": "matnr", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "B61421F5-E4B2-41B8-8A69-6388C765522C", + "fieldDefKey": "73E27B7A-9823-411B-A52E-18428B09C45C" + } + ], + "id": "68BA8FC5-24D4-43EC-A8BD-246FD00E6CDF" + }, + { + "defKey": "projectName", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "68B13AA4-882A-419A-9700-7F374F53CCA8", + "fieldDefKey": "44F69E4B-9E02-40CE-A66D-690B5F3D8E57" + } + ], + "id": "FE00E4C5-C452-47AF-89C4-0EC4B3C38FEC" + }, + { + "defKey": "stage", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "A742D85E-6452-49B8-B7A1-3830E1AF3D7B", + "fieldDefKey": "3E8FAD6B-B69F-4F76-889D-DC491B3C779C" + } + ], + "id": "067B888B-EC47-4035-B2B1-18F3116AD387" + }, + { + "defKey": "version", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "356E024E-D277-42E0-B754-3C27DFE73C18", + "fieldDefKey": "EEBE305F-AB80-43B1-A620-33BD97232162" + } + ], + "id": "5E5131A7-531C-497A-88CB-E93AFABCAC10" + }, + { + "defKey": "werks", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "BE36E2BE-9FFD-4BD4-A687-D9A992A3B889", + "fieldDefKey": "F0B74C38-D122-426E-9967-A019E9C3FC0C" + } + ], + "id": "63D92237-2877-4AE3-A01E-64F5F51CAAFE" + } + ], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "FDB6475C-445C-40D7-A2E7-AE1392BD75D7", + "defKey": "sys_dict_data", + "defName": "字典数据表", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "dict_code", + "defName": "字典编码", + "comment": "", + "domain": "", + "type": "BIGINT", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": true, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "FEED7E2A-5221-452A-A815-5EA98492BEDB", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "dict_sort", + "defName": "字典排序", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "0", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "D4745119-96BC-41A3-9BAA-5D3104B5483C", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "dict_label", + "defName": "字典标签", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "73FE5FBD-9454-4B5B-AE16-85C93BE1013F", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "dict_value", + "defName": "字典键值", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "13CF3B5E-575F-4E4B-902E-6627AC12410F", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "dict_type", + "defName": "字典类型", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "DDC8F344-BE93-4676-A40C-C76EFB7D8F9D", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "css_class", + "defName": "样式属性(其他样式扩展)", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "C4989163-0CF7-4BE5-88A6-A70310EA6992", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "list_class", + "defName": "表格回显样式", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E7A2B940-FA0F-43D3-A360-524A0D860A1D", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "is_default", + "defName": "是否默认(Y是 N否)", + "comment": "", + "domain": "", + "type": "CHAR", + "len": 1, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "'N'", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "CFD012FA-79C9-4053-BED2-D5F756601572", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "status", + "defName": "状态(0正常 1停用)", + "comment": "", + "domain": "", + "type": "CHAR", + "len": 1, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "'0'", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "CB0752C8-CEC3-4F0A-89B1-1AE20B8F4968", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "create_by", + "defName": "创建者", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 64, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "EE91C7C2-98D5-4A94-86FD-D1B969AE6EF8", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "create_time", + "defName": "创建时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "20FAA003-BC26-4D1A-9BCF-A2615C8FFB5C", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "update_by", + "defName": "更新者", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 64, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E7777E3B-52A8-4D8E-83A4-EE30FD9E7A47", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "update_time", + "defName": "更新时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "6D27918B-2ED7-4DF5-AFD8-6EC92D5E4053", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "remark", + "defName": "备注", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 500, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "A644FBD0-A87B-4059-9147-8A65EE5535B2", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "7AE6268A-7B4D-4F6A-8E6C-19F7C93C3C49", + "defKey": "sys_dict_type", + "defName": "字典类型表", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "dict_id", + "defName": "字典主键", + "comment": "", + "domain": "", + "type": "BIGINT", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": true, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "2864CC80-6949-4C21-809A-53003E91BDF8", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "dict_name", + "defName": "字典名称", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "71A78792-B4DD-432F-B636-E1376EFC2C86", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "dict_type", + "defName": "字典类型", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "6E210E32-73F7-470D-880B-CE5D4A959652", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "status", + "defName": "状态(0正常 1停用)", + "comment": "", + "domain": "", + "type": "CHAR", + "len": 1, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "'0'", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "F0CBB590-1BBA-4E38-9850-3BB064F008C2", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "create_by", + "defName": "创建者", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 64, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "34DB7AEC-5048-47A7-9F8F-AAFB15D387C5", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "create_time", + "defName": "创建时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "7436C7CA-53F7-4D54-88CF-E30135945EF1", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "update_by", + "defName": "更新者", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 64, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "DEDD8E11-31EA-4D18-A272-D8126090DD04", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "update_time", + "defName": "更新时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "35339139-B2AD-4E26-BE49-FD973FA944FB", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "remark", + "defName": "备注", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 500, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "7E6A9ABC-F1B5-434E-8A88-AFA76836F474", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [ + { + "defKey": "dict_type", + "unique": true, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "5780595B-CF9F-45BC-B2ED-671B7930E9EF", + "fieldDefKey": "6E210E32-73F7-470D-880B-CE5D4A959652" + } + ], + "id": "D5C9FC5C-3A0C-4B51-A325-B0BC5E0C1CE8" + } + ], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "7D1DEA8A-7373-4659-B1A7-B0E72416EDA7", + "defKey": "material", + "defName": "物料表,该表内容从sap里抓取获得", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "factory", + "defName": "工厂代号(工厂id)", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "F2B3E4D0-1A13-44E0-AD48-10D4AF232781", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "material_number", + "defName": "物料号", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 54, + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "BADBBE3C-453A-47BD-A255-3A2DE31ADDE5", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "material_type", + "defName": "物料类型", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 15, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "485350D5-E666-46F8-B466-C83BDF026B36", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "product_category", + "defName": "产品类型", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 30, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "4C4B6C92-49BE-4E9B-88AD-D7793AD854D2", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "product_name", + "defName": "物料名称", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 120, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3251CEF5-A600-4CA4-9E41-A523F9B93D49", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "norms", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 210, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "9E52044E-B5F5-485C-AAD7-C1599C1E230A", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "manufacturing_type", + "defName": "制造类型", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 30, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "F4309FEF-1AB9-4D28-A84B-7C007AD1614C", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "inventory_unit", + "defName": "库存单位", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "175E90FD-3C70-4CBB-AF86-76824E14D07E", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "purchasing_unit", + "defName": "购买单价", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 60, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "9A5908FE-AF1E-447A-B3AF-8572BD5F95AB", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "old_material_group", + "defName": "所属旧物料组", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 30, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "DD057882-55E4-483E-8341-E410EADE15F9", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "standard_cost", + "defName": "标准成本", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "16A0AAF5-C15D-4BC3-A963-0122A49AEDA0", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "abc_level", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "56133029-8ADA-4AF0-9B6B-54FD99817269", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "effective_state", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "7A70E0A5-37EB-4B82-ABD4-735B45F27441", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "profit_center", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 50, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "38041E3A-1584-4559-926E-4CA0CE5EC744", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "iswbs", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "AB65B9E4-26FE-4826-A59C-6E7D606EEC95", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "graph_number", + "defName": "图号", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E6B036D1-0DC2-48AA-B679-C11312FEFE21", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "mtbez", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 80, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "98F2AC12-1185-4AFE-97D2-FDF6D6D7A5B1", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "wgbez", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 80, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "7615D684-08BE-460C-9D4A-3C1AABEF2A9E", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "sobsl", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "BC35E308-2D86-4CC5-8AC4-A3FF1759F97E", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [ + { + "defKey": "factory", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "F710200A-3C28-4D7A-9D40-53081AD9B4CE", + "fieldDefKey": "F2B3E4D0-1A13-44E0-AD48-10D4AF232781" + } + ], + "id": "EC09805C-86B4-415B-921D-E173A8E7F11D" + }, + { + "defKey": "materialNumber", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "6241323A-7DA4-4229-BD76-6D2D2F9CCB52", + "fieldDefKey": "BADBBE3C-453A-47BD-A255-3A2DE31ADDE5" + } + ], + "id": "A8CC9685-8808-48A7-95D7-60CEDA5848F8" + } + ], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "236F8414-6100-429D-8DEC-A223B0BDA052", + "defKey": "avl_project", + "defName": "AVL项目", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "mpvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "CE881FE8-29DB-4676-ACAB-525BCEC8F1DC", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "code", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E1714B7E-289C-45CC-9286-58482060DD1A", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "prps_posid", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "7E953CFE-3A5F-4E83-B9F0-79914766D827", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "factory", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "531CCF0B-0723-485D-B0BD-EE75AABA552D", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "material_number", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "13EC0E8D-4C11-499A-8185-8CAC56C318E3", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "mnvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "BF6CF3EE-81FD-4F7C-A801-BC17C44904F4", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "ptname", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "754E892C-06A1-4074-B9DD-1634AD3B29D2", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "snvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "6CA5ED47-41A0-4A5D-A4F1-B6895C7BC3E6", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "resb_bdmng", + "defName": "", + "comment": "", + "domain": "", + "type": "DOUBLE", + "len": 255, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "B18DD194-6A50-4AF1-B3E6-C859C0889653", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "prps_pspnr", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "81113555-896B-4020-8355-869AF729C071", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "product_name", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "8E58B44F-C0A9-43EA-B506-725768AB1CAB", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "graph_number", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "6092E10E-002C-4FDD-8262-21BA22E58A16", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "A_version_number", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "71E444DB-7EEB-41E2-968C-31CBA26E425D", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "A_material_cost_total", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 15, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E0E36FBE-EF12-4576-B11F-027B4CC448B4", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "A_material_cost_accumulated_em", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 15, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "D8D63239-9252-44DF-9A6B-220087D98760", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "A_total_standard_cost", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 15, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "1946D1E3-1944-48AF-9884-2954BB5BA627", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "A_labor_cost_total_unit_product_cost", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3EA74F84-2EEF-41AF-AB7B-A18D6AD4576B", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "A_material_cost_total_em", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "83705511-37D9-4345-A9C4-43F8909C8F81", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "A_material_cost_total_edcu", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "88EA6551-4EEF-465F-9C2C-5115928C2E5B", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "A_total_standard_cost_lie", + "defName": "", + "comment": "", + "domain": "", + "type": "DOUBLE", + "len": 22, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "8A709E17-C9C9-44AE-B494-7E878A810F1E", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "B_version_number", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "4F0E4D8C-1D1C-4743-86E6-E4896006396D", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "B_material_cost_total", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 15, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "D67C50FA-D192-4112-A907-346274D908BC", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "B_material_cost_accumulated_em", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 15, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "1BC655B5-FCC9-44FB-A6EE-654F78584F8D", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "B_total_standard_cost", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 15, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "ADEFB32A-829E-47DD-BF5A-8EFC1DCFA46F", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "B_labor_cost_total_unit_product_cost", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "16FEA032-1D87-480B-8AFF-F523C3D1E8F0", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "B_material_cost_total_em", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "1816C315-27F2-4512-9650-AE7765B25FE3", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "B_material_cost_total_edcu", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "C79DCDF4-37BD-4D46-A975-21984C945D77", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "B_total_standard_cost_lie", + "defName": "", + "comment": "", + "domain": "", + "type": "DOUBLE", + "len": 22, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "432611A9-249D-49CE-84E3-6E717444E743", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "C_version_number", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "A05AE17F-2A86-426B-97A3-BCE3F87FC1E0", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "C_material_cost_total", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 15, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "44753482-08A5-4647-8231-DD694135DF19", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "C_material_cost_accumulated_em", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 15, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "5FF9B3F7-1B73-400A-8409-B2B69EB4B168", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "C_total_standard_cost", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 15, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "C00999A5-FA00-48E7-AC49-438BE151BD6F", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "C_labor_cost_total_unit_product_cost", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "B0C0D1FF-F4C5-4B42-AE0F-9A8C6F5D0884", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "C_material_cost_total_em", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "EE7A6FFC-2382-4FBA-9542-93F2AD2C22C9", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "C_material_cost_total_edcu", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "1B62BA2D-CCEE-4683-900B-988689AF4283", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "C_total_standard_cost_lie", + "defName": "", + "comment": "", + "domain": "", + "type": "DOUBLE", + "len": 22, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "CDAD5BF3-CCA3-40A5-9446-8007FA4D5BF2", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "crm_proj_scmingxi_num", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "DA9DAF78-F236-4245-A1E0-587D1EEE3D70", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "crm_proj_zz3_stitle", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "A3F98CDA-B948-4C04-B522-8544053F7F5C", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "crm_proj_Shichangyuce_jiaoriqi", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "5229E8E1-07A7-4FB3-BAA8-CB610541D7EA", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "sap_sale_VBPA_PERNR", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "4EE717A5-1A2D-4D90-9BD3-96AA4D299B34", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "crm_proj_org_employee_sname", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "077F3240-3952-4EC8-9EE6-A53DB8FE38E7", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "sap_log_shipped_qty", + "defName": "", + "comment": "", + "domain": "", + "type": "DOUBLE", + "len": 22, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "52A0BC33-E49F-4818-ACC1-E84B9CF5A596", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "crm_proj_account_sname", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "BE132171-DAFB-4683-997C-DB7405873920", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "sap_log_ship_to_name", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "F33F68D4-9402-4A96-BE2D-E5C55474E9C2", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "id", + "defName": "", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": true, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "12E787AD-1EF6-4547-80C1-9D626D6CEE8E", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "qiname", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "384DEDA1-EF05-4B5C-831B-7A8F12854CB9", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "proj_zzls", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 50, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "FBCAA72E-FAB0-4198-A044-007887E9AFC8", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "prps_post1", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "CB8FE5D9-4C2A-4CBC-BAE2-3A7AFBC3B5D0", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "proj_verna", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 50, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3D29AE55-DF54-4835-865A-019302F16503", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "A_total_lie", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "1A857BF2-0C7A-43C7-8BF7-08A16F177CE0", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "A_unit_cost", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "6A6FA6DE-CC5F-4C9E-8193-C9067D4A5452", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "B_total_lie", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "B5A8DDB8-796D-4C78-B71F-5D0376D85ACC", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "B_unit_cost", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "19463F68-54C7-44AB-A242-AE4372E99719", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "C_total_lie", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3E9F8AE9-F6C4-4DF1-9D2B-79691B6D61F9", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "C_unit_cost", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 16, + "scale": 4, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "158FD5D2-0527-4382-9CBA-9778D48E48B2", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [ + { + "defKey": "code", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "8E038BB9-DFAB-4043-82A3-55BC2A43DFD9", + "fieldDefKey": "E1714B7E-289C-45CC-9286-58482060DD1A" + } + ], + "id": "5C7355F1-FFE0-4FF6-B6FD-7A8D262DBDD5" + } + ], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "BC5A6F14-212E-45C2-9D41-DC1F439AC619", + "defKey": "mdm_project", + "defName": "MDM项目", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "code", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "27CF4B08-8915-4A63-AFAD-2E8731206725", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "ptvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "AFD8FC89-6141-4341-A284-1EB7FD555F94", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "ptname", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "B5987D38-9752-444D-95DC-27F97EA91D9F", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "mpvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "9C8CDEF3-2896-40BC-A143-BF034A8C5D8A", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "mnvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "9D356679-CFFB-4EEF-A077-0CCBDB361836", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "snvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "135538D2-344C-4187-AFBE-81EB16817278", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "ccvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "6508D50D-6E68-427D-BBF5-3DACCACA4744", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "nvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "1FBBF001-F985-4D18-ACDE-52FE5611092C", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "buvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "1DB0DA93-2900-4649-BC95-67D62AA6AD1C", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "buname", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "65E76D0F-6D21-4BE1-B340-F14466EC82B0", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "divalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "FB8C8AC6-6633-475A-AE49-98E11C7C1930", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "qivalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "A3FA0C86-AF0E-4B05-8A10-E520AEC3EFAC", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "qiname", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "F2E40A12-F242-4B10-9FDA-DA73ABD06179", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "dqvalue", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "B000D214-9D5D-4916-901D-709D9B6B2E3A", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "dqname", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "730770B3-36F0-4848-ADDC-AB0182744CF3", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "billname", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E058648B-D1C4-4F10-B264-9C6759F423BF", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "starttime", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 50, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "93581770-00F3-428A-BD56-0124F07699F0", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "4438394B-60D7-4566-91D1-4A14E2E16314", + "defKey": "c7525cost", + "defName": "7525价格表", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "year", + "defName": "年份", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 4, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3A22605A-0317-44DD-8710-50A0E296C320", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "material_number", + "defName": "门控料号(物料id)", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 18, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "D5BC39FE-0C18-4F6B-B44A-14FA3DCE3BB6", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "zzggxh", + "defName": "物料规格信息", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3905485A-E2F7-4B8F-9B8D-13ADC9CD2B27", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "price_7525", + "defName": "价格", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 15, + "scale": 2, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "0.00", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "8A94BFD6-1F9A-4376-809C-4668AC043364", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "id", + "defName": "id", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": true, + "autoIncrement": true, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "9F4F7CF7-861E-41AB-94F0-AE30EDAF0446", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [ + { + "defKey": "id", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "2AFF0351-3C7C-444F-929B-ADD47665DA7C", + "fieldDefKey": "9F4F7CF7-861E-41AB-94F0-AE30EDAF0446" + } + ], + "id": "DEE61AE2-C71B-4077-9E4D-6577E025CA0E" + } + ], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "9D89F846-66FC-42B0-B655-7083874263E1", + "defKey": "latest_purchase_price", + "defName": "最近采购价格表", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "material_number", + "defName": "门控料号(物料id)", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "52FFA4F5-50D7-4CFF-B51B-AC692AE44215", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "name", + "defName": "产品名称", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 15, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E15CCC39-CBE4-4E7A-B775-E977F3A93F6F", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "norms", + "defName": "规格", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 15, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "74CABA30-81CC-41CC-89EF-A168641912AE", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "unit", + "defName": "单位", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "14ABF3E1-E0E5-4928-AF72-044C6EF217E9", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "latest_Invoice_no", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "ADCDC3F3-32CC-442B-9ADD-45D65EDC9CFF", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "latest_invoice_date", + "defName": "估算日期", + "comment": "", + "domain": "", + "type": "DATE", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "9AC219B4-85A0-4D3C-8C78-14D562BF5166", + "baseType": "", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "latest_invoice_supplier", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 30, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E0DD3EB2-E94E-4D91-AC09-0EA67C39FEED", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "latest_invoice_price", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 10, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "84585C2D-C31B-423B-A33A-BF2F7EE9E21F", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "unit_price_without_tax", + "defName": "不含税价格", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 10, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "CDF2E069-6D95-40D0-87B5-46DBDB9FB1B3", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "inter_exam_cost", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 10, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "FA344283-0FC8-4643-AAD7-939A18F0B9A6", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "factory", + "defName": "工厂代号(工厂id)", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "96289761-97D9-4D2A-AAD0-1DF1DA955E57", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "guardian", + "defName": "维护人", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 50, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3BF0A59D-D45A-4872-91AA-6E02AE83A590", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "maintenance_time", + "defName": "维护时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "8532E9C1-4603-40AD-BB00-31DE4BBD7D5A", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "isadd", + "defName": "", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "0", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "65A6114C-4EC5-4E80-BE3F-F35DF10E8F5F", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "purchase_type", + "defName": "采购类型", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "A6FB5AB3-D128-48E2-99B4-8285422362F1", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "isinvalid", + "defName": "是否启用", + "comment": "", + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "0", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "83DE4E95-B02E-4AC0-BEA9-E5405F9A1D24", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [ + { + "defKey": "factory2", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "391B736A-5711-4A6C-B4BF-B8328CEC2D1E", + "fieldDefKey": "96289761-97D9-4D2A-AAD0-1DF1DA955E57" + } + ], + "id": "F4CA52D8-5FC0-4514-AE34-557DB4C96154" + }, + { + "defKey": "key_vaild", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "34A90113-5035-4CC0-A0FA-56738E435BEC", + "fieldDefKey": "83DE4E95-B02E-4AC0-BEA9-E5405F9A1D24" + } + ], + "id": "F6C1E683-7991-47F7-BA4D-D63E11371D5A" + }, + { + "defKey": "materialNumber2", + "unique": false, + "defName": null, + "comment": "", + "fields": [ + { + "ascOrDesc": "A", + "id": "63FAFD76-0001-4EFC-8F51-032084749F0D", + "fieldDefKey": "52FFA4F5-50D7-4CFF-B51B-AC692AE44215" + } + ], + "id": "8F771AC7-C324-4DAD-8C24-654C5E7B56DE" + } + ], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "38DC4808-C376-4C0A-9E1D-9BE756B68A7D", + "defKey": "produce_batch", + "defName": "生产批量设置表", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "material_number", + "defName": "门控料号(物料id)", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "167E3EE8-5483-4DF5-B45D-E6E3EC795B6D", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "factory", + "defName": "工厂代号(工厂id)", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "D917286B-79A8-48DF-A60D-9E9DE4089C2F", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "batch", + "defName": "生产批量", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 20, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "0.000", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "9182E958-FC7A-4F42-981E-02B4B7ED65A2", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "guardian", + "defName": "维护人(用户id)", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 30, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "419A387E-769A-42FC-8805-73E19549DA2E", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "maintenance_time", + "defName": "维护时间", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "A0DE46AE-072D-4CEE-97D4-E7ADFE699401", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "aufnr", + "defName": "", + "comment": "", + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "F5B8C8BC-66CC-40E4-9A71-EA97CAF45FF6", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + }, + { + "id": "7891EB10-2F25-42A4-AC94-980756D9F709", + "defKey": "product_process_maintenance", + "defName": "标准成本模型-产品工序", + "comment": "", + "properties": {}, + "fields": [ + { + "defKey": "factory", + "defName": "维护人", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "820E9FDC-AE16-4B76-8C51-EC8A2B71A051", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "main_part_number", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "D479F4A5-B62D-43D1-9166-9CC0BCAFEE4E", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "process_route_number", + "defName": "工艺路线号", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "11445EE1-9840-4D63-8D2E-72BB4D84344F", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "serial_number", + "defName": "序号", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "0F010A63-F7EE-4282-AB72-24527A7B8333", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "process_name", + "defName": "工序名称", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 80, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "60227289-4099-4B31-907E-630014FDF1C8", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "cost_center_code", + "defName": "成本中心代码", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "A43A43A3-CA8F-4FD5-895E-8892D1192C10", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "prepare_hour", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 10, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "C3A3FF08-2489-43F8-AA41-B6D208D4B041", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "labor_hour", + "defName": "人工工时", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 10, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "4FA3644E-7239-4699-ADFF-37E2F10AB255", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "machine_hour", + "defName": "设备工时", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 10, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "AE6379E1-C229-4051-90E7-E82BD29253D8", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "burning_hour", + "defName": "燃动工时", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 10, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "A6FC4B23-A4EE-466D-BADC-BE196E0AE49B", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "auxiliary_hour", + "defName": "辅料工时", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 10, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "CD6F866D-5E43-4C90-BE93-B77B33BEA643", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "other_hour", + "defName": "其他工时", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 10, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "0E208726-ACA6-47B3-A18A-2662CF8EA899", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "hour_type", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 6, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "3EA597FD-B184-4D7F-9ABE-3DAA1F3C04FB", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "version_number", + "defName": "版本", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 100, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E4D67C7F-83A1-445A-8099-50953B0DE6A3", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "guardian", + "defName": "维护人", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 10, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "681B88F7-9E47-48A5-B920-582008B12826", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "maintenance_time", + "defName": "维护时间", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "6DFCBEE0-02B1-4728-9D4C-710BC594BBE3", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "reserve_1", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 20, + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "071B3010-70EA-4EAC-9A8C-074DA2861DEA", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "reserve_2", + "defName": "", + "comment": "", + "domain": "", + "type": "DECIMAL", + "len": 10, + "scale": 3, + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "B06A30C0-3ECB-4D3D-B672-3048C31A3989", + "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + }, + { + "defKey": "job_code", + "defName": "", + "comment": "", + "domain": "", + "type": "VARCHAR", + "len": 40, + "scale": "", + "primaryKey": true, + "notNull": true, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "attr1": "", + "attr2": "", + "attr3": "", + "attr4": "", + "attr5": "", + "attr6": "", + "attr7": "", + "attr8": "", + "attr9": "", + "id": "E578A939-FE75-4B59-AB84-9D499C9FD1C8", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" + } + ], + "indexes": [], + "sysProps": { + "nameTemplate": "{defKey}[{defName}]" + }, + "headers": [ + { + "freeze": false, + "refKey": "hideInGraph", + "hideInGraph": true + }, + { + "freeze": true, + "refKey": "defKey", + "hideInGraph": false + }, + { + "freeze": true, + "refKey": "defName", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "primaryKey", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "notNull", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "autoIncrement", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "domain", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "type", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "len", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "scale", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "comment", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "refDict", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "defaultValue", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "isStandard", + "hideInGraph": false + }, + { + "freeze": false, + "refKey": "uiHint", + "hideInGraph": true + }, + { + "freeze": false, + "refKey": "extProps", + "hideInGraph": true + } + ], + "correlations": [] + } + ], + "views": [], + "dicts": [ + { + "defKey": "Gender", + "defName": "性别", + "intro": "", + "items": [ + { + "defKey": "M", + "defName": "男", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "1", + "id": "3622D417-DA1A-408F-BEE1-11D328D534A0" + }, + { + "defKey": "F", + "defName": "女", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "2", + "id": "380A0790-64A7-481E-831C-32F7BEE1502B" + }, + { + "defKey": "U", + "defName": "未知", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "3", + "id": "FA239F4D-1276-40D9-B230-F66BD35C3C27" + } + ], + "id": "BF9E20E0-80D3-486D-BD58-5FADCF3E4A1D" + }, + { + "defKey": "Political", + "defName": "政治面貌", + "intro": "", + "items": [ + { + "defKey": "10", + "defName": "共青团员", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "61F3145A-7599-4CCB-B298-D5EE788107BE" + }, + { + "defKey": "20", + "defName": "中共党员", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "ED16D25A-AB2F-4FA0-BB48-2B9031FA28C4" + }, + { + "defKey": "30", + "defName": "民主党派", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "0FB7974A-AE11-438F-86E0-B163316F9272" + }, + { + "defKey": "40", + "defName": "群众", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "7D247234-7E97-45B1-8C56-4A17A370854A" + }, + { + "defKey": "90", + "defName": "未知", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "DA65D752-AF04-4A11-81D8-14A38692A64A" + } + ], + "id": "06EED564-BBA9-4747-8D73-AF809A330CB8" + }, + { + "defKey": "Marital", + "defName": "婚姻状况", + "intro": "婚姻状况的码表", + "items": [ + { + "defKey": "UNMARRIED", + "defName": "未婚", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "1", + "id": "20EE81BC-74EE-47DA-A56F-9663B23F44BD" + }, + { + "defKey": "MARRIED", + "defName": "已婚", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "2", + "id": "4DCA10A8-417E-4A8D-BDF6-0A278C060ADC" + }, + { + "defKey": "WIDOWED", + "defName": "丧偶", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "3", + "id": "826062A7-057C-4892-B338-06459F5B808D" + }, + { + "defKey": "DIVORCE", + "defName": "离婚", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "4", + "id": "B23200B4-5E59-4F5E-A779-D981A040FA32" + }, + { + "defKey": "UNSPECIFIED", + "defName": "未说明", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "5", + "id": "A7928FE2-349A-4702-9682-2EF7205E077B" + } + ], + "id": "EA1587B7-3954-437A-BFE0-FCB0453BCABA" + }, + { + "defKey": "StudentStatus", + "defName": "学生状态", + "intro": "", + "items": [ + { + "defKey": "Normal", + "defName": "正常", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "1", + "id": "E9CA1CC9-8851-4F6B-86BA-B9CF0E44EB73" + }, + { + "defKey": "Graduated", + "defName": "毕业", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "2", + "id": "DEC51D7C-99DF-430C-817D-0499862D3CCC" + }, + { + "defKey": "Studied", + "defName": "肄业", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "3", + "id": "8853D6B6-75D3-4479-9006-FC731CD85B20" + }, + { + "defKey": "Stop", + "defName": "休学", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "sort": "4", + "id": "C74BA8CF-1DC6-4C79-BAAC-F11EB9C6AF01" + } + ], + "id": "4642BC5F-02EE-4E17-A60C-CF22F86A0282" + }, + { + "defKey": "GBNation", + "defName": "民族", + "intro": "", + "items": [ + { + "defKey": "01", + "defName": "汉族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "9224DF53-F7C0-447D-B8ED-0A39F799EE19" + }, + { + "defKey": "02", + "defName": "蒙古族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "D57818E3-9206-45BB-AE79-27C64A4AB80F" + }, + { + "defKey": "03", + "defName": "回族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "0A1A3CA9-6D68-4E15-8BD0-9A2FF428D804" + }, + { + "defKey": "04", + "defName": "藏族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "7CC6B6BE-47EA-460E-ACFA-C377468DEA11" + }, + { + "defKey": "05", + "defName": "维吾尔族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "A666D51F-D249-4FAC-B1F3-78C371836CB3" + }, + { + "defKey": "06", + "defName": "苗族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "A0C9E1BA-D87B-4695-ADFA-287FDA32BB5A" + }, + { + "defKey": "07", + "defName": "彝族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "149B5B9E-C1D1-4790-8CCF-0ED5F4B25172" + }, + { + "defKey": "08", + "defName": "壮族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "F9A3E65C-BF4D-4C6B-ADB7-8C9CF0487360" + }, + { + "defKey": "09", + "defName": "布依族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "14F17DE4-E96A-460B-98A6-F84EC8CF9885" + }, + { + "defKey": "10", + "defName": "朝鲜族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "8A81AB18-B1BF-4797-A6E5-DEDB2C6566B0" + }, + { + "defKey": "11", + "defName": "满族", + "intro": "", + "parentKey": "", + "enabled": true, + "attr1": "", + "attr2": "", + "attr3": "", + "id": "7D460947-FBD2-4E4D-8366-3B38DCAF09D1" + } + ], + "id": "115EDEFC-0323-410E-81AB-CCAB8879837A" + }, + { + "defKey": "GradeLevel", + "defName": "受教育程度", + "sort": "", + "intro": "", + "items": [], + "id": "9E7C9788-B805-4C7D-8531-FD1D9DC79B05" + } + ], + "viewGroups": [ + { + "defKey": "base", + "defName": "基础数据维护", + "refEntities": [ + "15372773-A008-4A5F-B23E-75E100F99B47", + "65E2E950-34BE-49A8-98A3-9EB13E974B8F", + "FDB6475C-445C-40D7-A2E7-AE1392BD75D7", + "7AE6268A-7B4D-4F6A-8E6C-19F7C93C3C49", + "236F8414-6100-429D-8DEC-A223B0BDA052", + "BC5A6F14-212E-45C2-9D41-DC1F439AC619", + "4438394B-60D7-4566-91D1-4A14E2E16314", + "9D89F846-66FC-42B0-B655-7083874263E1", + "38DC4808-C376-4C0A-9E1D-9BE756B68A7D" + ], + "refViews": [], + "refDiagrams": [], + "refDicts": [ + "BF9E20E0-80D3-486D-BD58-5FADCF3E4A1D", + "06EED564-BBA9-4747-8D73-AF809A330CB8", + "EA1587B7-3954-437A-BFE0-FCB0453BCABA", + "4642BC5F-02EE-4E17-A60C-CF22F86A0282", + "115EDEFC-0323-410E-81AB-CCAB8879837A", + "9E7C9788-B805-4C7D-8531-FD1D9DC79B05" + ], + "id": "2DA923AD-EB8E-4D32-BBCE-E3781E01B9F0", + "refLogicEntities": [] + }, + { + "defKey": "sap", + "defName": "SAP导出数据", + "refEntities": [ + "0C137DAC-F352-41FC-83D4-852123619E5C", + "1271309E-2310-435D-B129-DC3F72BBA013", + "7D1DEA8A-7373-4659-B1A7-B0E72416EDA7", + "7891EB10-2F25-42A4-AC94-980756D9F709" + ], + "refViews": [], + "refDiagrams": [], + "refDicts": [], + "id": "65FC6BC3-1799-4797-BFFD-24BAAFBABC21", + "refLogicEntities": [] + }, + { + "defKey": "cost", + "defName": "卷积", + "refEntities": [], + "refViews": [], + "refDiagrams": [], + "refDicts": [], + "id": "401851EF-F256-40D3-87FD-420C871DEFFF", + "refLogicEntities": [] + }, + { + "defKey": "cost-compare", + "defName": "成本对比", + "refEntities": [], + "refViews": [], + "refDiagrams": [], + "refDicts": [], + "id": "78EA1BE7-E8DA-4B0C-8EA3-6930F9D08558", + "refLogicEntities": [] + }, + { + "defKey": "excavate", + "defName": "成本挖掘", + "refEntities": [], + "refViews": [], + "refDiagrams": [], + "refDicts": [], + "id": "8C87C2BA-BBDF-43A2-A8D6-0E35AE171A35", + "refLogicEntities": [] + } + ], + "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": "int", + "id": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "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": "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": "DATE", + "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": "CLOB", + "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" + } + ] + }, + "domains": [ + { + "defKey": "DefaultString", + "defName": "默认字串", + "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "len": 255, + "scale": "", + "uiHint": "", + "id": "9092C4E0-1A54-4859-ABBB-5B62DBC27573" + }, + { + "defKey": "IdOrKey", + "defName": "主键标识", + "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "len": 32, + "scale": "", + "uiHint": "", + "id": "16120F75-6AA7-4483-868D-F07F511BB081" + }, + { + "defKey": "Name", + "defName": "名称", + "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "len": 90, + "scale": "", + "uiHint": "", + "id": "54611CCC-CA4B-42E1-9F32-4944C85B85A6" + }, + { + "defKey": "Int", + "defName": "整数", + "applyFor": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "len": "", + "scale": "", + "uiHint": "", + "id": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E" + }, + { + "defKey": "Double", + "defName": "小数", + "applyFor": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "len": 24, + "scale": 6, + "uiHint": "", + "id": "FF4459C5-6B45-4DBF-8FC0-E06239BC05B4" + }, + { + "defKey": "Money", + "defName": "金额", + "applyFor": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", + "len": 24, + "scale": 6, + "uiHint": "", + "id": "C3B1681B-99F9-4818-9E80-DE1652A51D85" + }, + { + "defKey": "DateTime", + "defName": "日期时间", + "applyFor": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", + "len": "", + "scale": "", + "uiHint": "", + "id": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC" + }, + { + "defKey": "YesNo", + "defName": "是否", + "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "len": "1", + "scale": "", + "uiHint": "", + "id": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF" + }, + { + "defKey": "Dict", + "defName": "数据字典", + "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "len": "32", + "scale": "", + "uiHint": "", + "id": "73FD2BAD-2358-4336-B96D-45DC897BD792" + }, + { + "defKey": "DescText", + "defName": "描述文本", + "applyFor": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "len": "900", + "scale": "", + "uiHint": "", + "id": "3E948CEC-3070-472C-AF92-F3CA11EC9D15" + } + ], + "diagrams": [ + { + "defKey": "1逻辑模型", + "defName": "", + "relationType": "field", + "canvasData": { + "cells": [ + { + "id": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "shape": "group", + "position": { + "x": 410, + "y": 500 + }, + "label": "### 界面与表关系图", + "size": { + "width": 1230, + "height": 2370 + }, + "children": [ + "e6458913-d5bb-4d3e-8194-4e983ee9561b", + "e9895e8e-4c87-4ca5-9855-3155b08e1e9a", + "50255b65-de6e-4032-b606-58482a662442", + "71e702a2-681a-453f-a15e-30ff10e3b439", + "32dfec65-cfe2-4f80-9f86-6dfd50c2f07f", + "c306ccee-689c-49cf-a846-ec1e6a451eb7", + "ff5515d5-21a9-4272-86b2-c984273febc1", + "ab4a33f9-98c1-4690-87aa-46e590bd7b0c", + "8e8dd851-2e95-4bd5-8623-645b6e590bab", + "aa15bf4b-eb5c-4beb-94be-98c9cf34c41a", + "d9b4230a-9a29-4b06-9bc2-7d0021d99423", + "a2aac2ea-416f-4c73-81c2-cd1000ccd7fe", + "d97d6f07-8365-40ab-bde8-34511452e62f", + "ea0f4b6c-37b3-42f7-8f12-0a946e1ae841", + "a9ad3011-be3b-45ce-9200-cbd99874e48d", + "96e751a3-f338-4cc1-937a-b8d1a6acfa1d", + "db2e0214-00dd-4c58-ba37-627fd8cba8d2", + "aa201a0f-fd7d-4393-b33a-589fa51f91b6", + "7f4cc984-aefc-452a-bd22-39ddc3fd7a43", + "14b1e9e8-3950-432b-9efd-83bfe8ce0d37", + "bd6cd2f6-55ae-43fd-af6c-22bdbaf96a00", + "ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2", + "764cbe48-4a33-4752-94a9-67bda1226718", + "5bed2e45-b438-46cc-8ee1-72eeaa2c78c6", + "06ca758c-3187-47bd-8136-ca10dd94640b", + "b0b6d230-8b0f-4f2f-9d2e-b3d8cd88b234", + "e4c40d33-e4c2-4dea-9413-62f7c9d772db", + "06ca758c-3187-47bd-8136-ca10dd94640b", + "96e751a3-f338-4cc1-937a-b8d1a6acfa1d", + "db2e0214-00dd-4c58-ba37-627fd8cba8d2", + "aa201a0f-fd7d-4393-b33a-589fa51f91b6", + "a9ad3011-be3b-45ce-9200-cbd99874e48d", + "ea0f4b6c-37b3-42f7-8f12-0a946e1ae841", + "7b27855a-7467-439b-b846-fb7a369f80ae", + "f2344237-4b72-4042-a531-097f8f467b64", + "5278e0a2-f809-4023-b439-b35ae083a325", + "182b311f-746e-49c8-8bfa-c0fec449eb2a", + "c306ccee-689c-49cf-a846-ec1e6a451eb7", + "d9b4230a-9a29-4b06-9bc2-7d0021d99423", + "ff5515d5-21a9-4272-86b2-c984273febc1", + "32dfec65-cfe2-4f80-9f86-6dfd50c2f07f", + "e6458913-d5bb-4d3e-8194-4e983ee9561b", + "50255b65-de6e-4032-b606-58482a662442", + "9015a485-4289-4b5e-925c-5d5dc7851d2e", + "54f3478c-85b5-4b98-8c68-332a9a037140", + "182b311f-746e-49c8-8bfa-c0fec449eb2a", + "db184b6f-8cb3-4bbb-8290-9c5438f9c11b", + "80e84e01-fbda-4caf-a016-eae9c69aea5f", + "bd3bbe46-89e6-43dc-a1a0-59968252238d", + "14913b43-5f56-45c0-8a8b-128685ae8831", + "db184b6f-8cb3-4bbb-8290-9c5438f9c11b", + "9015a485-4289-4b5e-925c-5d5dc7851d2e", + "e4d93dce-4df5-403b-bd9d-f126fd1cb7ee", + "b27fbbab-850d-4577-bd84-dfec38412d43", + "b82b944c-8659-4720-b69e-e6e066b53882", + "bbf38d0b-7d61-4a17-b39c-c56ae830f9bd", + "ab4a33f9-98c1-4690-87aa-46e590bd7b0c", + "9a99fd26-86c6-42b3-9fe1-5380d3314003", + "4e142b26-fa22-4806-aee3-7b598f1eaede", + "a2c4ce7b-8f43-4dc6-b29f-71454f6de700", + "11267869-dc5a-411d-b763-fc0ad08db8a6" + ] + }, + { + "id": "e9895e8e-4c87-4ca5-9855-3155b08e1e9a", + "link": "{\"type\":\"internally\",\"value\":\"65E2E950-34BE-49A8-98A3-9EB13E974B8F\"}", + "shape": "edit-node", + "position": { + "x": 510.000000000015, + "y": 619.9999999999891 + }, + "label": "### 小时费用率\n---\n年度\n工厂代码(工厂id)\n成本中心代码(成本中心id)\n成本中心名称(成本中心id)\n人工小时费率\n设备小时费率\n燃动小时费率\n辅料小时费率\n其他小时费率\n生效日期\n失效日期\n维护人员(用户id)\n维护时间", + "fillColor": "rgb(245, 220, 78)", + "size": { + "width": 180, + "height": 270 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + }, + { + "id": "bottom4", + "group": "bottom" + } + ] + } + }, + { + "id": "71e702a2-681a-453f-a15e-30ff10e3b439", + "link": "{\"type\":\"internally\",\"value\":\"4438394B-60D7-4566-91D1-4A14E2E16314\"}", + "shape": "edit-node", + "position": { + "x": 730.000000000015, + "y": 619.9999999999891 + }, + "label": "### 7525价格\n---\nid\n年份\n门控料号(物料id)\n物料规格信息\n价格", + "fillColor": "rgb(245, 220, 78)", + "size": { + "width": 120, + "height": 160 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + } + ] + } + }, + { + "id": "8e8dd851-2e95-4bd5-8623-645b6e590bab", + "link": "{\"type\":\"internally\",\"value\":\"38DC4808-C376-4C0A-9E1D-9BE756B68A7D\"}", + "shape": "edit-node", + "position": { + "x": 1080.0000000000182, + "y": 619.9999999999891 + }, + "label": "### 生产批量设置\n---\nid\n门控料号(物料id)\n工厂代号(工厂id)\n生产批量\n维护人(用户id)\n维护时间", + "fillColor": "rgb(245, 220, 78)", + "size": { + "width": 140, + "height": 160 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "bottom4", + "group": "bottom" + } + ] + } + }, + { + "id": "aa15bf4b-eb5c-4beb-94be-98c9cf34c41a", + "link": "{\"type\":\"internally\",\"value\":\"9D89F846-66FC-42B0-B655-7083874263E1\"}", + "shape": "edit-node", + "position": { + "x": 1290.0000000000182, + "y": 609.9999999999891 + }, + "label": "### 最近采购价格\n---\nid\n工厂代号(工厂id)\n门控料号(物料id)\n产品名称(?与物料有什么区别)\n规格\n单位\n不含税价格\n估算日期\n采购类型\n是否启用", + "fillColor": "rgb(245, 220, 78)", + "size": { + "width": 150, + "height": 220 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "bottom4", + "group": "bottom" + } + ] + } + }, + { + "id": "d97d6f07-8365-40ab-bde8-34511452e62f", + "link": "{\"type\":\"internally\",\"value\":\"9D89F846-66FC-42B0-B655-7083874263E1\"}", + "shape": "edit-node", + "position": { + "x": 620.0000000000148, + "y": 1799.9999999999893 + }, + "label": "### 最近采购价\n---\nid\n工厂代号(工厂id)\n门控料号(?物料id)\n产品名称(?与物料有什么区别)\n规格\n单位\n不含税价格\n估算日期\n采购类型\n是否启用\n维护人\n维护时间", + "fontColor": "#000000", + "fillColor": "rgb(117, 190, 250)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 180, + "height": 270 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + }, + { + "id": "bottom4", + "group": "bottom" + } + ] + } + }, + { + "id": "7f4cc984-aefc-452a-bd22-39ddc3fd7a43", + "shape": "edit-node", + "position": { + "x": 1110.0000000000107, + "y": 1789.9999999999927 + }, + "label": "### 标准成本结果单行查询\n---\n工厂\n低阶码\n物料编码\n品名\n图号\n规格\n相对用量\n单位\n制造类型\n本阶单位成本\n本阶相对成本\n相对材料成本\n相对人工成本\n相对制费成本\n总标准成本--电子实际\n总标准成本--7525\n本阶材料成本--电子实际\n本阶材料成本-7525\n本阶人工成本\n本阶设备成本\n本阶燃动成本\n本阶辅料成本\n本阶其它成本\n累计材料成本-电子实际\n累计材料成本-7525\n累计人工成本\n累计设备成本\n累计燃动成本\n累计辅料成本\n累计其它成本\n相对材料成本-7525\n相对总成本\n相对总成本-7525\n层级\n版本", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 210, + "height": 670 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + }, + { + "id": "bottom4", + "group": "bottom" + } + ] + } + }, + { + "id": "bd6cd2f6-55ae-43fd-af6c-22bdbaf96a00", + "link": "{\"type\":\"internally\",\"value\":\"1271309E-2310-435D-B129-DC3F72BBA013\"}", + "shape": "edit-node", + "position": { + "x": 1450, + "y": 1230 + }, + "label": "### 物料号最新的版本号\n---\n项目类型\n子项目号\n项目名称\n项目阶段\n项目日期\n图号\n工厂\n物料号\n版本号\n版本状态", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 170, + "height": 220 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2", + "shape": "edit-node", + "position": { + "x": 440, + "y": 1230 + }, + "label": "### 成本挖掘任务\n---\nid\n工厂\n年\n月\n物料号\nWBS号\n标准版本号", + "fillColor": "rgb(247, 151, 128)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 130, + "height": 180 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "764cbe48-4a33-4752-94a9-67bda1226718", + "shape": "edit-node", + "position": { + "x": 600.000000000015, + "y": 1230 + }, + "label": "### 成本挖掘任务结果\n---\nid\n任务id\n实际总成本\n标准总成本\n总差额\n差额比\n是否有传输过账\n报告状态\n", + "fillColor": "rgb(247, 151, 128)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 130, + "height": 190 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "5bed2e45-b438-46cc-8ee1-72eeaa2c78c6", + "shape": "edit-node", + "position": { + "x": 610, + "y": 1450 + }, + "label": "### 成本挖掘报告\n---\n对比分析\n原因分析\n", + "fillColor": "rgb(247, 151, 128)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 110, + "height": 150 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "b0b6d230-8b0f-4f2f-9d2e-b3d8cd88b234", + "shape": "edit-node", + "position": { + "x": 580, + "y": 1009.9999999999891 + }, + "label": "### 角色管理\n---\nid\n角色名称\n是否启用\n操作权限", + "fillColor": "#DDE5FF", + "size": { + "width": 170, + "height": 150 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "e4c40d33-e4c2-4dea-9413-62f7c9d772db", + "shape": "edit-node", + "position": { + "x": 420, + "y": 1009.9999999999891 + }, + "label": "### 菜单管理\n---\nid\n菜单名称\n菜单路径\n菜单模块\n是否启用\n说明\n创建人\n创建时间\n", + "fillColor": "#DDE5FF", + "size": { + "width": 150, + "height": 180 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "db2e0214-00dd-4c58-ba37-627fd8cba8d2", + "shape": "edit-node", + "position": { + "x": 1815.000000000015, + "y": 1629.9999999999927 + }, + "label": "### 部件缺失信息\n---\n工厂\n物料号\n版本号\n缺失信息(缺失备注信息)", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 160, + "height": 150 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + }, + { + "id": "bottom4", + "group": "bottom" + } + ] + } + }, + { + "id": "aa201a0f-fd7d-4393-b33a-589fa51f91b6", + "shape": "edit-node", + "position": { + "x": 2150, + "y": 1550 + }, + "label": "### 标准成本结果\n---\n工厂代码\n物料编码\n版本号\n机械材料\n门控\n电机\nMK物料\n包装箱\n人工\n运输费\n制费\n成本合计\n7525门控\n7525合计", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 150, + "height": 290 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + }, + { + "id": "bottom4", + "group": "bottom" + } + ] + } + }, + { + "id": "a9ad3011-be3b-45ce-9200-cbd99874e48d", + "shape": "edit-node", + "position": { + "x": 1900, + "y": 1450 + }, + "label": "### 当月入库标准成本缺失\n---\n工厂代码(工厂id)\n物料料号(物料id)\n产品名称\nWBS号\n项目名称(项目id)\n库存地点编号", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 160, + "height": 160 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + }, + { + "id": "bottom4", + "group": "bottom" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "ea0f4b6c-37b3-42f7-8f12-0a946e1ae841", + "shape": "edit-node", + "position": { + "x": 1680, + "y": 1270 + }, + "label": "### 项目标准成本缺失\n---\n工厂代码(工厂id)\n物料料号(物料id)\n产品名称\n项目名称", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 130, + "height": 150 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + }, + { + "id": "bottom4", + "group": "bottom" + } + ] + } + }, + { + "id": "d9b4230a-9a29-4b06-9bc2-7d0021d99423", + "link": "{\"type\":\"internally\",\"value\":\"7AE6268A-7B4D-4F6A-8E6C-19F7C93C3C49\"}", + "shape": "edit-node", + "position": { + "x": 1305.000000000015, + "y": 1030 + }, + "label": "### 数据字典\n---\n采购类型(一般采购、外协采购)\n是否启用(是、否)\n项目阶段(初始、首批、量\n产)\n制造类型\n版本状态", + "fillColor": "#DDE5FF", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 170, + "height": 150 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "ff5515d5-21a9-4272-86b2-c984273febc1", + "shape": "edit-node", + "position": { + "x": 1305.000000000015, + "y": 609.9999999999891 + }, + "label": "### 预算价格\n---\n年度\n物料号(物料id)\n物料描述(物料id)\n项目编号(项目id)\n预算价格", + "fillColor": "rgb(245, 220, 78)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 160, + "height": 130 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + } + ] + } + }, + { + "id": "32dfec65-cfe2-4f80-9f86-6dfd50c2f07f", + "link": "{\"type\":\"internally\",\"value\":\"15372773-A008-4A5F-B23E-75E100F99B47\"}", + "shape": "edit-node", + "position": { + "x": 1500.0000000000182, + "y": 1044.999999999989 + }, + "label": "### 成本中心\n---\nid\n成本中心代码", + "fillColor": "#DDE5FF", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 90, + "height": 70 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + } + ] + } + }, + { + "id": "e6458913-d5bb-4d3e-8194-4e983ee9561b", + "link": "{\"type\":\"internally\",\"value\":\"0C137DAC-F352-41FC-83D4-852123619E5C\"}", + "shape": "edit-node", + "position": { + "x": 1630.0000000000182, + "y": 1030 + }, + "label": "### 工厂\n---\nid\n工厂代码", + "fillColor": "#DDE5FF", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 80, + "height": 70 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "50255b65-de6e-4032-b606-58482a662442", + "link": "{\"type\":\"internally\",\"value\":\"7D1DEA8A-7373-4659-B1A7-B0E72416EDA7\"}", + "shape": "edit-node", + "position": { + "x": 1750.000000000015, + "y": 1009.9999999999891 + }, + "label": "### 物料\n---\nid\n工厂代号(工厂id)\n物料号\n物料名称\n图号", + "fillColor": "#DDE5FF", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 140, + "height": 140 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "ab4a33f9-98c1-4690-87aa-46e590bd7b0c", + "link": "{\"type\":\"internally\",\"value\":\"236F8414-6100-429D-8DEC-A223B0BDA052\"}", + "shape": "edit-node", + "position": { + "x": 1920, + "y": 1009.9999999999891 + }, + "label": "### 项目\n---\nid\n项目编号\n项目名称\n项目类型\n计划开始时间\n计划结束时间\n项目状态", + "fillColor": "#DDE5FF", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 120, + "height": 160 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + } + ] + } + }, + { + "id": "f2344237-4b72-4042-a531-097f8f467b64", + "shape": "erdRelation", + "source": { + "cell": "ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2", + "port": "bottom2" + }, + "target": { + "cell": "5bed2e45-b438-46cc-8ee1-72eeaa2c78c6", + "port": "bottom2" + }, + "relation": "none:none", + "fillColor": "rgb(247, 151, 128)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "7b27855a-7467-439b-b846-fb7a369f80ae", + "shape": "erdRelation", + "source": { + "cell": "ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2", + "port": "out2" + }, + "target": { + "cell": "764cbe48-4a33-4752-94a9-67bda1226718", + "port": "in2" + }, + "relation": "none:none", + "fillColor": "rgb(247, 151, 128)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "182b311f-746e-49c8-8bfa-c0fec449eb2a", + "shape": "erdRelation", + "source": { + "cell": "96e751a3-f338-4cc1-937a-b8d1a6acfa1d", + "port": "out3" + }, + "target": { + "cell": "aa201a0f-fd7d-4393-b33a-589fa51f91b6", + "port": "in3" + }, + "relation": "none:concave", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "db184b6f-8cb3-4bbb-8290-9c5438f9c11b", + "shape": "erdRelation", + "source": { + "cell": "96e751a3-f338-4cc1-937a-b8d1a6acfa1d", + "port": "out2" + }, + "target": { + "cell": "db2e0214-00dd-4c58-ba37-627fd8cba8d2", + "port": "in3" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "9015a485-4289-4b5e-925c-5d5dc7851d2e", + "shape": "erdRelation", + "source": { + "cell": "a9ad3011-be3b-45ce-9200-cbd99874e48d", + "port": "top2" + }, + "target": { + "cell": "50255b65-de6e-4032-b606-58482a662442", + "port": "bottom2" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "e4d93dce-4df5-403b-bd9d-f126fd1cb7ee", + "shape": "erdRelation", + "source": { + "cell": "ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2", + "port": "top3" + }, + "target": { + "cell": "50255b65-de6e-4032-b606-58482a662442", + "port": "bottom" + }, + "relation": "none:n", + "fillColor": "rgb(247, 151, 128)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "5278e0a2-f809-4023-b439-b35ae083a325", + "shape": "erdRelation", + "source": { + "cell": "ecf1f808-4e1e-4f2f-bb68-016cfd5d76b2", + "port": "top4" + }, + "target": { + "cell": "bd6cd2f6-55ae-43fd-af6c-22bdbaf96a00", + "port": "top3" + }, + "relation": "none:n", + "fillColor": "rgb(247, 151, 128)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "54f3478c-85b5-4b98-8c68-332a9a037140", + "shape": "erdRelation", + "source": { + "cell": "a9ad3011-be3b-45ce-9200-cbd99874e48d", + "port": "top" + }, + "target": { + "cell": "e6458913-d5bb-4d3e-8194-4e983ee9561b", + "port": "bottom2" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "9a99fd26-86c6-42b3-9fe1-5380d3314003", + "shape": "erdRelation", + "source": { + "cell": "a9ad3011-be3b-45ce-9200-cbd99874e48d", + "port": "top3" + }, + "target": { + "cell": "ab4a33f9-98c1-4690-87aa-46e590bd7b0c", + "port": "bottom" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "14913b43-5f56-45c0-8a8b-128685ae8831", + "shape": "erdRelation", + "source": { + "cell": "ea0f4b6c-37b3-42f7-8f12-0a946e1ae841", + "port": "top2" + }, + "target": { + "cell": "e6458913-d5bb-4d3e-8194-4e983ee9561b", + "port": "bottom" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "b27fbbab-850d-4577-bd84-dfec38412d43", + "shape": "erdRelation", + "source": { + "cell": "ea0f4b6c-37b3-42f7-8f12-0a946e1ae841", + "port": "top3" + }, + "target": { + "cell": "50255b65-de6e-4032-b606-58482a662442", + "port": "in3" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "4e142b26-fa22-4806-aee3-7b598f1eaede", + "shape": "erdRelation", + "source": { + "cell": "ea0f4b6c-37b3-42f7-8f12-0a946e1ae841", + "port": "top3" + }, + "target": { + "cell": "ab4a33f9-98c1-4690-87aa-46e590bd7b0c", + "port": "bottom2" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "a2c4ce7b-8f43-4dc6-b29f-71454f6de700", + "shape": "erdRelation", + "source": { + "cell": "96e751a3-f338-4cc1-937a-b8d1a6acfa1d", + "port": "top2" + }, + "target": { + "cell": "ab4a33f9-98c1-4690-87aa-46e590bd7b0c", + "port": "in3" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "80e84e01-fbda-4caf-a016-eae9c69aea5f", + "shape": "erdRelation", + "source": { + "cell": "96e751a3-f338-4cc1-937a-b8d1a6acfa1d", + "port": "top3" + }, + "target": { + "cell": "bd6cd2f6-55ae-43fd-af6c-22bdbaf96a00", + "port": "in3" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "bd3bbe46-89e6-43dc-a1a0-59968252238d", + "shape": "erdRelation", + "source": { + "cell": "96e751a3-f338-4cc1-937a-b8d1a6acfa1d", + "port": "top" + }, + "target": { + "cell": "e6458913-d5bb-4d3e-8194-4e983ee9561b", + "port": "bottom" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "b82b944c-8659-4720-b69e-e6e066b53882", + "shape": "erdRelation", + "source": { + "cell": "96e751a3-f338-4cc1-937a-b8d1a6acfa1d", + "port": "top2" + }, + "target": { + "cell": "50255b65-de6e-4032-b606-58482a662442", + "port": "in3" + }, + "relation": "none:n", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "ad80ead0-2c42-49a0-9571-931e4536609a", + "shape": "erdRelation", + "source": { + "cell": "e9895e8e-4c87-4ca5-9855-3155b08e1e9a", + "port": "bottom" + }, + "target": { + "cell": "c306ccee-689c-49cf-a846-ec1e6a451eb7", + "port": "top2" + }, + "relation": "none:n", + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "a1e1cd85-61f6-4ff4-a6c1-b7057722d9c5", + "shape": "erdRelation", + "source": { + "cell": "e9895e8e-4c87-4ca5-9855-3155b08e1e9a", + "port": "bottom2" + }, + "target": { + "cell": "32dfec65-cfe2-4f80-9f86-6dfd50c2f07f", + "port": "top" + }, + "relation": "none:n", + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "c45fd09f-f5e0-4a1b-905a-b6623ed429ec", + "shape": "erdRelation", + "source": { + "cell": "e9895e8e-4c87-4ca5-9855-3155b08e1e9a", + "port": "bottom2" + }, + "target": { + "cell": "e6458913-d5bb-4d3e-8194-4e983ee9561b", + "port": "top2" + }, + "relation": "none:n", + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "80ff1b9b-450a-4838-ba92-1780c4c3edde", + "shape": "erdRelation", + "source": { + "cell": "71e702a2-681a-453f-a15e-30ff10e3b439", + "port": "bottom" + }, + "target": { + "cell": "50255b65-de6e-4032-b606-58482a662442", + "port": "top" + }, + "relation": "none:n", + "vertices": [ + { + "x": 480, + "y": 790 + } + ], + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "bbf38d0b-7d61-4a17-b39c-c56ae830f9bd", + "shape": "erdRelation", + "source": { + "cell": "ff5515d5-21a9-4272-86b2-c984273febc1", + "port": "bottom" + }, + "target": { + "cell": "50255b65-de6e-4032-b606-58482a662442", + "port": "top2" + }, + "relation": "none:n", + "vertices": [ + { + "x": 890, + "y": 760 + } + ], + "fillColor": "rgb(245, 220, 78)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "11267869-dc5a-411d-b763-fc0ad08db8a6", + "shape": "erdRelation", + "source": { + "cell": "ff5515d5-21a9-4272-86b2-c984273febc1", + "port": "bottom3" + }, + "target": { + "cell": "ab4a33f9-98c1-4690-87aa-46e590bd7b0c", + "port": "top2" + }, + "relation": "none:n", + "vertices": [ + { + "x": 940, + "y": 770 + }, + { + "x": 1300, + "y": 840 + } + ], + "fillColor": "rgb(245, 220, 78)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "f5f60922-9d66-4f92-9a70-11c6cce0e702", + "shape": "erdRelation", + "source": { + "cell": "8e8dd851-2e95-4bd5-8623-645b6e590bab", + "port": "in2" + }, + "target": { + "cell": "c306ccee-689c-49cf-a846-ec1e6a451eb7", + "port": "top3" + }, + "relation": "none:n", + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "339ae80b-97a9-47d5-a701-742796f5143e", + "shape": "erdRelation", + "source": { + "cell": "8e8dd851-2e95-4bd5-8623-645b6e590bab", + "port": "bottom" + }, + "target": { + "cell": "e6458913-d5bb-4d3e-8194-4e983ee9561b", + "port": "top" + }, + "relation": "none:concave", + "vertices": [ + { + "x": 500, + "y": 730 + } + ], + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "3623f1fd-62e0-4004-a07c-61e6c35c15fc", + "shape": "erdRelation", + "source": { + "cell": "8e8dd851-2e95-4bd5-8623-645b6e590bab", + "port": "bottom2" + }, + "target": { + "cell": "c306ccee-689c-49cf-a846-ec1e6a451eb7", + "port": "top2" + }, + "relation": "none:n", + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "36e0a409-a617-465a-bd82-435826d7af9b", + "shape": "erdRelation", + "source": { + "cell": "8e8dd851-2e95-4bd5-8623-645b6e590bab", + "port": "bottom3" + }, + "target": { + "cell": "50255b65-de6e-4032-b606-58482a662442", + "port": "top3" + }, + "relation": "none:n", + "vertices": [ + { + "x": 570, + "y": 770 + } + ], + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "35690dd6-bb9b-44bd-95cb-60ba826eb886", + "shape": "erdRelation", + "source": { + "cell": "aa15bf4b-eb5c-4beb-94be-98c9cf34c41a", + "port": "bottom3" + }, + "target": { + "cell": "d9b4230a-9a29-4b06-9bc2-7d0021d99423", + "port": "top2" + }, + "relation": "none:n", + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "7450b679-24ae-438a-94d9-3619edf7d17b", + "shape": "erdRelation", + "source": { + "cell": "aa15bf4b-eb5c-4beb-94be-98c9cf34c41a", + "port": "bottom2" + }, + "target": { + "cell": "e6458913-d5bb-4d3e-8194-4e983ee9561b", + "port": "top3" + }, + "relation": "none:n", + "vertices": [ + { + "x": 590, + "y": 770 + } + ], + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "26caad8d-227c-4985-a343-e647e69c682e", + "shape": "erdRelation", + "source": { + "cell": "aa15bf4b-eb5c-4beb-94be-98c9cf34c41a", + "port": "bottom" + }, + "target": { + "cell": "50255b65-de6e-4032-b606-58482a662442", + "port": "top2" + }, + "relation": "none:n", + "vertices": [ + { + "x": 660, + "y": 770 + } + ], + "fillColor": "rgb(245, 220, 78)", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "96e751a3-f338-4cc1-937a-b8d1a6acfa1d", + "shape": "edit-node", + "position": { + "x": 1540.000000000015, + "y": 1550 + }, + "label": "### 成本计算和数据导出(计算计划)\n---\n项目名称\n阶段\n日期\n版本号\n工厂\n物料号\n状态\n关键部件缺失信息(该字段的用意?)", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 210, + "height": 250 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + }, + { + "id": "bottom4", + "group": "bottom" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "c306ccee-689c-49cf-a846-ec1e6a451eb7", + "shape": "edit-node", + "position": { + "x": 1200.0000000000148, + "y": 1009.9999999999891 + }, + "label": "### 用户\n---\nid\n用户名\n昵称\n是否启用\n所属角色\n密码\n创建时间\n\n", + "fillColor": "#DDE5FF", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 90, + "height": 160 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + }, + { + "id": "a2aac2ea-416f-4c73-81c2-cd1000ccd7fe", + "link": "{\"type\":\"internally\",\"value\":\"7891EB10-2F25-42A4-AC94-980756D9F709\"}", + "shape": "edit-node", + "position": { + "x": 845.000000000015, + "y": 1799.9999999999893 + }, + "label": "### 产品工序\n---\n工厂代码\n自制料号(?)\n工艺路线号\n序号\n工序名称\n成本中心代码\n成本中心名称\n人工工时\n人工费率\n设备工时\n设备费率\n燃动工时\n燃动费率\n辅料工时\n辅料费率\n其他工时\n其他费率\n版本(?)", + "fillColor": "rgb(117, 190, 250)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 200, + "height": 360 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + }, + { + "id": "bottom4", + "group": "bottom" + } + ] + } + }, + { + "id": "14b1e9e8-3950-432b-9efd-83bfe8ce0d37", + "shape": "edit-node", + "position": { + "x": 1370.000000000015, + "y": 1789.9999999999927 + }, + "label": "### 标准成本结果BOM结构树查询\n---\n物料名称\n总标准成本-电子实际\t\n结构总成本-电子实际\t\n结构人工成本\t\n结构材料成本-电子实际\t\n本阶材料成本-电子实际\t\n本阶材料成本-电子实际-材料\t\n本阶材料成本-电子实际-门控\t\n本阶材料成本-电子实际-电机\t\n本阶材料成本-7525\t\n本阶材料成本-7525-材料\t\n本阶材料成本-7525-门控\t\n本阶材料成本-7525-电机\t\n本阶人工成本\t\n本阶设备成本\t\n本阶燃动成本\t\n本阶辅料成本\t\n本阶其他成本\t\n物料图号\n总标准成本-7525\t\n结构总成本-7525\t\n结构制费成本\t\n结构材料成本-7525\t\n累计材料成本-电子实际\t\n累计材料成本-电子实际-材料\t\n累计材料成本-电子实际-门控\t\n累计材料成本-电子实际-电机\t\n累计材料成本-7525\t\n累计材料成本-7525-材料\t\n累计材料成本-7525-门控\t\n累计材料成本-7525-电机\t\n累计人工成本\t\n累计设备成本\t\n累计燃动成本\t\n累计辅料成本\t\n累计其他成本", + "fillColor": "rgb(90, 213, 198)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 210, + "height": 690 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "in4", + "group": "in" + }, + { + "id": "bottom4", + "group": "bottom" + } + ] + } + }, + { + "id": "06ca758c-3187-47bd-8136-ca10dd94640b", + "shape": "edit-node", + "position": { + "x": 1265.000000000015, + "y": 1280 + }, + "label": "### 成本挖掘统计\n---\n工厂\n年度\n月度\n库存地点\n材料成本-实际\n人工成本-实际\n制造费用-实际\n总成本-电子实际\n材料成本-标准\n人工成本-标准\n制造费用-标准\n标准成本-电子实际\n材料成本-差异\n人工成本-差异\n制造费用-差异\n总成本差异-电子实际\n---\n原因分析", + "fillColor": "rgb(247, 151, 128)", + "parent": "4fa67bb0-fbbe-4388-ac9e-6bb32e9cb04c", + "size": { + "width": 140, + "height": 350 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + }, + { + "id": "top4", + "group": "top" + } + ] + } + } + ] + }, + "id": "49BB7996-5205-4A52-96A3-FE87B1D8C4AC", + "comment": "" + }, + { + "defKey": "2", + "defName": "逻辑关系", + "relationType": "field", + "canvasData": { + "cells": [] + }, + "id": "0D56908B-B619-4D80-A491-DE9808D9FFEB", + "comment": "" + }, + { + "defKey": "3", + "defName": "物理模型", + "canvasData": { + "cells": [ + { + "id": "02b64cef-3ee3-48a5-9867-9dc4e9726bfd", + "shape": "group", + "position": { + "x": 903.9999999999982, + "y": -40.00000000000006 + }, + "label": "学生行为", + "size": { + "width": 960, + "height": 760 + }, + "children": [ + "9a5658de-7e28-4815-95c2-ccf5ff90e6c1", + "26b28925-27ed-488d-b20d-2abbcafa5057", + "8fad7c2e-d083-4589-b938-071541a6cea1", + "60b8fc40-2b82-4b9a-8da2-5234582e31f6" + ] + }, + { + "id": "8fad7c2e-d083-4589-b938-071541a6cea1", + "shape": "edit-node", + "position": { + "x": 1142, + "y": 459.999999999998 + }, + "label": "课程信息表为镜像,所以后面的“:1\"标识,是指第1个镜像副本,仅关系图需要", + "fontColor": "#f62b07", + "fillColor": "#fcfcac", + "parent": "02b64cef-3ee3-48a5-9867-9dc4e9726bfd", + "size": { + "width": 460, + "height": 90 + }, + "ports": { + "groups": { + "in": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "left" + } + }, + "out": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "right" + } + }, + "top": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "top" + } + }, + "bottom": { + "attrs": { + "fo": { + "width": 8, + "height": 8, + "x": -4, + "y": -4, + "magnet": "true", + "style": { + "visibility": "hidden" + } + } + }, + "zIndex": 3, + "position": { + "name": "bottom" + } + } + }, + "items": [ + { + "group": "in", + "id": "in" + }, + { + "group": "in", + "id": "in2" + }, + { + "group": "in", + "id": "in3" + }, + { + "group": "out", + "id": "out" + }, + { + "group": "out", + "id": "out2" + }, + { + "group": "out", + "id": "out3" + }, + { + "group": "top", + "id": "top" + }, + { + "group": "top", + "id": "top2" + }, + { + "group": "top", + "id": "top3" + }, + { + "group": "bottom", + "id": "bottom" + }, + { + "group": "bottom", + "id": "bottom2" + }, + { + "group": "bottom", + "id": "bottom3" + } + ] + } + }, + { + "id": "60b8fc40-2b82-4b9a-8da2-5234582e31f6", + "shape": "erdRelation", + "source": { + "cell": "9a5658de-7e28-4815-95c2-ccf5ff90e6c1", + "port": "5FAE5CA5-B7A6-40C3-878D-1BB3D4A45B5C%out" + }, + "target": { + "cell": "26b28925-27ed-488d-b20d-2abbcafa5057", + "port": "0C5A31BB-2855-4BB9-84D1-7E63B37A71E1%in" + }, + "relation": "1:n", + "fillColor": "#c00000", + "parent": "02b64cef-3ee3-48a5-9867-9dc4e9726bfd", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "de986735-cd84-4bd5-b50f-6b5a70df984d", + "shape": "group", + "position": { + "x": -130.00000000000023, + "y": -40 + }, + "label": "学院设置部分", + "size": { + "width": 1010, + "height": 760 + }, + "children": [ + "444bdcfa-cc31-4b36-892b-9caef73cc863", + "4a31fc9b-4f5a-4f2c-880b-409d433ba848", + "9972b579-d4c5-4520-9202-7a57bf539151", + "4bbe78ce-9511-471b-bea0-bcdfa333b636", + "b9e17f34-b032-4b33-b78b-618b7e046614", + "925b71be-5cf6-48d7-aea2-5c49e68a5d8b", + "6210b0eb-8566-4b64-885b-f1b00d6078d7", + "914c8f40-8cff-49ed-86a9-4dcad63ad668", + "56317816-819f-41ea-a6ef-bdcd0027fb68", + "979dfa9f-475a-4be8-8ddc-1f2500ff212b", + "f03ab359-7568-4402-bc56-4593bf5e1420", + "5428380e-8314-4f6f-9048-43eff1b48ee5" + ] + }, + { + "id": "f03ab359-7568-4402-bc56-4593bf5e1420", + "shape": "erdRelation", + "source": { + "cell": "56317816-819f-41ea-a6ef-bdcd0027fb68", + "port": "9651B83A-2208-4F1E-A870-C3C4E1FAF103%out" + }, + "target": { + "cell": "6210b0eb-8566-4b64-885b-f1b00d6078d7", + "port": "D793F097-1364-49FD-B02C-D4EBBA5A055A%in" + }, + "relation": "1:n", + "vertices": [], + "labels": [ + { + "attrs": { + "text": { + "text": "" + }, + "rect": {} + } + } + ], + "fillColor": "#ACDAFC", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d" + }, + { + "id": "979dfa9f-475a-4be8-8ddc-1f2500ff212b", + "shape": "erdRelation", + "source": { + "cell": "9972b579-d4c5-4520-9202-7a57bf539151", + "port": "8707AEB9-3EC5-4EEA-9E14-99BAF28B46B4%out" + }, + "target": { + "cell": "6210b0eb-8566-4b64-885b-f1b00d6078d7", + "port": "63130D1B-63C8-491C-B36D-5603A30BFB37%in" + }, + "relation": "1:n", + "vertices": [ + { + "x": 400, + "y": 73.00000000000045 + } + ], + "fillColor": "#ACDAFC", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d" + }, + { + "id": "b9e17f34-b032-4b33-b78b-618b7e046614", + "shape": "erdRelation", + "source": { + "cell": "4a31fc9b-4f5a-4f2c-880b-409d433ba848", + "port": "3D337B5E-182D-45C7-9752-E2DD4D7CF2BD%out" + }, + "target": { + "cell": "4bbe78ce-9511-471b-bea0-bcdfa333b636", + "port": "AE73CBE3-577D-4457-8987-5BEFDECAEED9%in" + }, + "relation": "1:n", + "vertices": [ + { + "x": 371, + "y": 319.00000000000045 + } + ], + "fillColor": "#ACDAFC", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d" + }, + { + "id": "925b71be-5cf6-48d7-aea2-5c49e68a5d8b", + "shape": "erdRelation", + "source": { + "cell": "444bdcfa-cc31-4b36-892b-9caef73cc863", + "port": "C5916046-F140-4B0C-BF84-EBD7DDB38EAA%out" + }, + "target": { + "cell": "4bbe78ce-9511-471b-bea0-bcdfa333b636", + "port": "AE73CBE3-577D-4457-8987-5BEFDECAEED9%out" + }, + "relation": "1:n", + "fillColor": "#ACDAFC", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d" + }, + { + "id": "5428380e-8314-4f6f-9048-43eff1b48ee5", + "shape": "erdRelation", + "source": { + "cell": "56317816-819f-41ea-a6ef-bdcd0027fb68", + "port": "9651B83A-2208-4F1E-A870-C3C4E1FAF103%in" + }, + "target": { + "cell": "444bdcfa-cc31-4b36-892b-9caef73cc863", + "port": "EFD22F94-E1D0-4CAD-947D-E856A997D7B5%in" + }, + "relation": "1:n", + "vertices": [ + { + "x": -79, + "y": 620.0000000000005 + }, + { + "x": 381, + "y": 620.0000000000005 + } + ], + "fillColor": "#ACDAFC", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d" + }, + { + "id": "914c8f40-8cff-49ed-86a9-4dcad63ad668", + "shape": "erdRelation", + "source": { + "cell": "6210b0eb-8566-4b64-885b-f1b00d6078d7", + "port": "6D6BC6AA-8114-4B91-8A2C-4B5FEACEB347%in" + }, + "target": { + "cell": "4bbe78ce-9511-471b-bea0-bcdfa333b636", + "port": "A23704D2-7128-41A2-988C-D20CB984FA83%in" + }, + "relation": "1:n", + "fillColor": "#ACDAFC", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d" + }, + { + "id": "47d951f9-c6b0-4407-b2e3-e66f4b2931ec", + "shape": "erdRelation", + "source": { + "cell": "6210b0eb-8566-4b64-885b-f1b00d6078d7", + "port": "6D6BC6AA-8114-4B91-8A2C-4B5FEACEB347%out" + }, + "target": { + "cell": "9a5658de-7e28-4815-95c2-ccf5ff90e6c1", + "port": "1BCE9672-14BA-4B2B-B8C6-222CC6CF0F61%in" + }, + "relation": "1:n", + "vertices": [ + { + "x": 890, + "y": 83 + } + ], + "fillColor": "#dce775", + "attrs": { + "line": { + "strokeDasharray": "" + } + } + }, + { + "id": "26b28925-27ed-488d-b20d-2abbcafa5057", + "shape": "table", + "position": { + "x": 1421, + "y": 19.99999999999801 + }, + "count": 0, + "originKey": "6B1610FB-364F-4514-95D6-9DDA681BFC61", + "fillColor": "#9acc98", + "parent": "02b64cef-3ee3-48a5-9867-9dc4e9726bfd", + "size": { + "width": 362, + "height": 146 + } + }, + { + "id": "6210b0eb-8566-4b64-885b-f1b00d6078d7", + "shape": "table", + "position": { + "x": 442, + "y": 10.000000000000455 + }, + "count": 0, + "originKey": "C698249E-307D-4087-9EC4-3BABCFC00660", + "fontColor": "#555555", + "fillColor": "#dce775", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d", + "size": { + "width": 393, + "height": 192 + } + }, + { + "id": "56317816-819f-41ea-a6ef-bdcd0027fb68", + "shape": "table", + "position": { + "x": -44.5, + "y": 10.000000000000455 + }, + "count": 0, + "originKey": "26B8D13E-BE37-4E20-8496-13A586E84581", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d", + "size": { + "width": 409, + "height": 192 + } + }, + { + "id": "9972b579-d4c5-4520-9202-7a57bf539151", + "shape": "table", + "position": { + "x": -48.5, + "y": 233.00000000000045 + }, + "count": 0, + "originKey": "C2F51B91-7C24-4CB4-8406-706F4851EB0B", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d", + "size": { + "width": 352, + "height": 169 + } + }, + { + "id": "4a31fc9b-4f5a-4f2c-880b-409d433ba848", + "shape": "table", + "position": { + "x": -59, + "y": 450.00000000000045 + }, + "count": 0, + "originKey": "9095C2A1-EF4C-4357-AAB2-26F99C1845CA", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d", + "size": { + "width": 355, + "height": 146 + } + }, + { + "id": "444bdcfa-cc31-4b36-892b-9caef73cc863", + "shape": "table", + "position": { + "x": 396, + "y": 405.00000000000045 + }, + "count": 0, + "originKey": "536B8B19-C2B3-45D1-ADA8-402C0083FC31", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d", + "size": { + "width": 451, + "height": 284 + } + }, + { + "id": "9a5658de-7e28-4815-95c2-ccf5ff90e6c1", + "shape": "table", + "position": { + "x": 950, + "y": 19.99999999999801 + }, + "count": 0, + "originKey": "0FC9DB49-4FDB-437E-83E9-7EE803F1CC84", + "fontColor": "#0d0d0d", + "fillColor": "#c00000", + "parent": "02b64cef-3ee3-48a5-9867-9dc4e9726bfd", + "size": { + "width": 403, + "height": 330 + } + }, + { + "id": "4bbe78ce-9511-471b-bea0-bcdfa333b636", + "shape": "table", + "position": { + "x": 472, + "y": 233.00000000000045 + }, + "count": 0, + "originKey": "1A50AEEB-F956-4275-AE11-5D6F1F471FBE", + "parent": "de986735-cd84-4bd5-b50f-6b5a70df984d", + "size": { + "width": 334, + "height": 123 + } + } + ] + }, + "id": "9427DD89-11C0-431F-9BB0-8353A2725174", + "comment": "" + } + ], + "standardFields": [ + { + "defKey": "personInfo", + "defName": "个人基本信息要素", + "fields": [ + { + "defKey": "ID_CARD_NO", + "defName": "身份证号", + "comment": "", + "type": "VARCHAR", + "len": "60", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "refDict": "", + "uiHint": "", + "id": "A64A91C8-A41F-4113-92FB-7563D7EF054D", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "MOBILE_PHONE", + "defName": "手机号", + "comment": "", + "type": "VARCHAR", + "len": "60", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "refDict": "", + "uiHint": "", + "id": "479DA2AB-1974-411A-A81E-92FB939E75EB", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "GENDER", + "defName": "性别", + "comment": "", + "type": "VARCHAR", + "len": "32", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "refDict": "BF9E20E0-80D3-486D-BD58-5FADCF3E4A1D", + "uiHint": "", + "id": "48473E29-6594-4912-AADE-C8AB44FCA3E9", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "BIRTH", + "defName": "出生日期", + "comment": "", + "type": "DATETIME", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "refDict": "", + "uiHint": "", + "id": "2BD3D2EE-2411-49A6-983D-84B81057312F", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098" + }, + { + "defKey": "AVATAR", + "defName": "头像", + "comment": "", + "type": "VARCHAR", + "len": "60", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "refDict": "", + "uiHint": "", + "id": "FDD67CEE-4B52-4BD1-A1A3-9C5EBC6037E6", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "HEIGHT", + "defName": "身高", + "comment": "", + "type": "INT", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "refDict": "", + "uiHint": "", + "id": "CAAA0E79-41A1-4758-B481-D171168C4D68", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811" + }, + { + "defKey": "WEIGHT", + "defName": "体重", + "comment": "", + "type": "INT", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "refDict": "", + "uiHint": "", + "id": "575482CE-64A6-4CB9-99DC-8E126D190AAA", + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811" + }, + { + "defKey": "NATION", + "defName": "名族", + "comment": "", + "type": "VARCHAR", + "len": "32", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "refDict": "115EDEFC-0323-410E-81AB-CCAB8879837A", + "uiHint": "", + "id": "15B0D75D-0B97-4985-A816-D0EAFA90446B", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "POLITICAL", + "defName": "政治面貌", + "comment": "", + "type": "VARCHAR", + "len": "32", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "refDict": "06EED564-BBA9-4747-8D73-AF809A330CB8", + "uiHint": "", + "id": "F458E86D-84D6-45A1-9DD3-51E6C8170D7F", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "MARITAL", + "defName": "婚姻状况", + "comment": "", + "type": "VARCHAR", + "len": "32", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "refDict": "EA1587B7-3954-437A-BFE0-FCB0453BCABA", + "uiHint": "", + "id": "7275E578-6893-4922-AC69-95B261BFBD61", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "DOMICILE_PLACE_PROVINCE", + "defName": "籍贯(省)", + "comment": "", + "type": "VARCHAR", + "len": "60", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "refDict": "", + "uiHint": "", + "id": "F04BF130-3EC1-4E02-9DED-3214CA88E352", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "DOMICILE_PLACE_CITY", + "defName": "籍贯(市)", + "comment": "", + "type": "VARCHAR", + "len": "32", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "refDict": "", + "uiHint": "", + "id": "B97F5BC2-33DE-4857-9DB8-ECFD02C9040C", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "DOMICILE_PLACE_ADDRESS", + "defName": "户籍地址", + "comment": "", + "type": "VARCHAR", + "len": "60", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "refDict": "", + "uiHint": "", + "id": "812ADF1D-8C03-40CA-B030-E539838FB889", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + } + ], + "id": "F30202B9-4B5D-4CE7-87CE-B3890C84D3F2" + } + ], + "dbConn": [ + { + "defKey": "AB260C61-FBEB-4832-ADBD-E03CCFE82D96", + "defName": "成本管理", + "type": "29D1CE08-4C35-4D2D-AAA9-23D93305B52E", + "properties": { + "driver_class_name": "com.mysql.cj.jdbc.Driver", + "url": "jdbc:mysql://121.40.189.20:3306/costmanage?characterEncoding=UTF-8&useSSL=false&useUnicode=true&serverTimezone=UTC", + "password": "YMzc157#", + "username": "root" + } + } + ], + "homeCoverDiagram": { + "defKey": "home-cover", + "defName": "首页封面", + "relationType": "entity", + "canvasData": { + "cells": [ + { + "id": "01ac9826-9c2a-457a-8922-e6f8f25d9561", + "shape": "mind-edge", + "source": { + "cell": "1bdf13d1-c491-4652-9abd-0929fe040e7f", + "port": "right" + }, + "target": { + "cell": "a6aa31ba-f93c-4652-b293-51bbca33fa87", + "port": "left" + }, + "fillColor": "rgb(183, 185, 189)" + }, + { + "id": "b47d896a-fc4f-4ac9-b011-68a447df24a8", + "shape": "mind-edge", + "source": { + "cell": "1bdf13d1-c491-4652-9abd-0929fe040e7f", + "port": "right" + }, + "target": { + "cell": "bbf7eeb7-2b33-4594-b2d5-2ec520405479", + "port": "left" + }, + "fillColor": "rgb(183, 185, 189)" + }, + { + "id": "07be3bc0-a68e-476f-ba3d-331fe552faee", + "shape": "mind-edge", + "source": { + "cell": "1bdf13d1-c491-4652-9abd-0929fe040e7f", + "port": "right" + }, + "target": { + "cell": "7392ebc5-1080-4250-99cb-34fa24f3050b", + "port": "left" + }, + "fillColor": "rgb(183, 185, 189)" + }, + { + "id": "921ED3D8-5A8E-4A84-96AE-978C200C1E93", + "shape": "mind-edge", + "source": { + "cell": "1bdf13d1-c491-4652-9abd-0929fe040e7f", + "port": "right" + }, + "target": { + "cell": "3795e95d-3f10-46a3-94af-2fc4b0b944b8", + "port": "left" + } + }, + { + "id": "46C14C41-47AE-4CCA-B6F4-9EE675B3746F", + "shape": "mind-edge", + "source": { + "cell": "1bdf13d1-c491-4652-9abd-0929fe040e7f", + "port": "right" + }, + "target": { + "cell": "f286d37f-d476-461d-b42d-4246f376b2a3", + "port": "left" + } + }, + { + "id": "1bdf13d1-c491-4652-9abd-0929fe040e7f", + "shape": "mind-topic", + "position": { + "x": -170, + "y": -30 + }, + "label": "成本管理", + "fillColor": "rgb(247, 151, 128)", + "layout": "right", + "size": { + "width": 160, + "height": 70 + }, + "children": [ + "a6aa31ba-f93c-4652-b293-51bbca33fa87", + "bbf7eeb7-2b33-4594-b2d5-2ec520405479", + "3795e95d-3f10-46a3-94af-2fc4b0b944b8", + "7392ebc5-1080-4250-99cb-34fa24f3050b", + "f286d37f-d476-461d-b42d-4246f376b2a3" + ] + }, + { + "id": "a6aa31ba-f93c-4652-b293-51bbca33fa87", + "link": "{\"type\":\"\",\"value\":\"\"}", + "shape": "mind-topic-branch", + "position": { + "x": 70, + "y": -225 + }, + "label": "基础信息维护", + "fillColor": "rgb(245, 220, 78)", + "layout": "right", + "size": { + "width": 160, + "height": 60 + }, + "children": [] + }, + { + "id": "bbf7eeb7-2b33-4594-b2d5-2ec520405479", + "link": "{\"type\":\"\",\"value\":\"\"}", + "shape": "mind-topic-branch", + "position": { + "x": 70, + "y": -125 + }, + "label": "SAP导出版本基础数据", + "fillColor": "rgb(245, 220, 78)", + "layout": "right", + "size": { + "width": 160, + "height": 60 + }, + "children": [] + }, + { + "id": "3795e95d-3f10-46a3-94af-2fc4b0b944b8", + "link": "{\"type\":\"\",\"value\":\"\"}", + "shape": "mind-topic-branch", + "position": { + "x": 70, + "y": -25 + }, + "label": "成本卷积", + "fillColor": "rgb(245, 220, 78)", + "parent": "7392ebc5-1080-4250-99cb-34fa24f3050b", + "layout": "right", + "size": { + "width": 160, + "height": 60 + }, + "children": [] + }, + { + "id": "7392ebc5-1080-4250-99cb-34fa24f3050b", + "link": "{\"type\":\"\",\"value\":\"\"}", + "shape": "mind-topic-branch", + "position": { + "x": 70, + "y": 75 + }, + "label": "挖掘分析系统", + "fillColor": "rgb(245, 220, 78)", + "layout": "right", + "size": { + "width": 160, + "height": 60 + }, + "children": [] + }, + { + "id": "f286d37f-d476-461d-b42d-4246f376b2a3", + "link": "{\"type\":\"\",\"value\":\"\"}", + "shape": "mind-topic-branch", + "position": { + "x": 70, + "y": 175 + }, + "label": "系统管理", + "fillColor": "rgb(245, 220, 78)", + "layout": "right", + "size": { + "width": 160, + "height": 60 + }, + "children": [] + } + ] + }, + "id": "home-cover", + "comment": "" + }, + "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 + } + ] +} \ No newline at end of file