This commit is contained in:
yumoqing 2026-04-17 11:07:49 +08:00
parent dd001f63b4
commit 91270d6ced
8 changed files with 558 additions and 546 deletions

View File

@ -2,28 +2,26 @@
"tblname": "approval_instance", "tblname": "approval_instance",
"title": "审批实例", "title": "审批实例",
"params": { "params": {
"sortby": "created_at DESC", "sortby": ["created_at desc"],
"logined_userorgid": "org_id", "logined_userorgid": "org_id",
"browserfields": { "browserfields": {
"exclouded": ["id", "workflow_id", "module_record_id", "org_id"] "excluded": ["id", "workflow_id", "module_record_id", "org_id"]
}, },
"editexclouded": ["id", "workflow_id", "module_record_id", "org_id", "current_step_id"], "editexcluded": ["id", "workflow_id", "module_record_id", "org_id", "current_step_id"],
"alterations": [ "alters": {
{ "status": {
"field": "status", "uitype": "code",
"widgettype": "Select", "data": [
"options": { {"value": "pending", "text": "待审批"},
"data": "get_code('APPROVAL_STATUS')" {"value": "approved", "text": "已批准"},
{"value": "rejected", "text": "已拒绝"},
{"value": "cancelled", "text": "已取消"}
]
},
"module_type": {
"uitype": "text"
} }
}, },
{
"field": "module_type",
"widgettype": "Text",
"options": {
"readonly": true
}
}
],
"subtables": [ "subtables": [
{ {
"field": "id", "field": "id",

View File

@ -2,27 +2,31 @@
"tblname": "approval_step", "tblname": "approval_step",
"title": "审批步骤", "title": "审批步骤",
"params": { "params": {
"sortby": "step_order", "sortby": ["step_order"],
"logined_userorgid": "org_id", "logined_userorgid": "org_id",
"browserfields": { "browserfields": {
"exclouded": ["id", "workflow_id", "org_id"] "excluded": ["id", "workflow_id", "org_id"]
}, },
"editexclouded": ["id", "workflow_id", "org_id"], "editexcluded": ["id", "workflow_id", "org_id"],
"alterations": [ "alters": {
{ "approver_type": {
"field": "approver_type", "uitype": "code",
"widgettype": "Select", "data": [
"options": { {"value": "role", "text": "角色"},
"data": "get_code('APPROVER_TYPE')" {"value": "user", "text": "用户"},
} {"value": "department", "text": "部门"},
{"value": "dynamic", "text": "动态"}
]
}, },
{ "approval_type": {
"field": "approval_type", "uitype": "code",
"widgettype": "Select", "data": [
"options": { {"value": "single", "text": "单人审批"},
"data": "get_code('APPROVAL_TYPE')" {"value": "multiple", "text": "多人审批"},
} {"value": "sequential", "text": "顺序审批"},
} {"value": "parallel", "text": "并行审批"}
] ]
} }
} }
}
}

View File

@ -2,27 +2,21 @@
"tblname": "approval_task", "tblname": "approval_task",
"title": "审批任务", "title": "审批任务",
"params": { "params": {
"sortby": "assigned_at DESC", "sortby": ["assigned_at desc"],
"logined_userorgid": "org_id", "logined_userorgid": "org_id",
"browserfields": { "browserfields": {
"exclouded": ["id", "instance_id", "step_id", "org_id"] "excluded": ["id", "instance_id", "step_id", "org_id"]
}, },
"editexclouded": ["id", "instance_id", "step_id", "org_id"], "editexcluded": ["id", "instance_id", "step_id", "org_id"],
"alterations": [ "alters": {
{ "status": {
"field": "status", "uitype": "code",
"widgettype": "Select", "data": [
"options": { {"value": "pending", "text": "待审批"},
"data": "get_code('TASK_STATUS')" {"value": "approved", "text": "已批准"},
} {"value": "rejected", "text": "已拒绝"}
},
{
"field": "approver_id",
"widgettype": "Select",
"options": {
"data": "get_org_users(org_id)"
}
}
] ]
} }
} }
}
}

View File

@ -2,12 +2,12 @@
"tblname": "approval_workflow", "tblname": "approval_workflow",
"title": "审批工作流", "title": "审批工作流",
"params": { "params": {
"sortby": "workflow_name", "sortby": ["workflow_name"],
"logined_userorgid": "org_id", "logined_userorgid": "org_id",
"browserfields": { "browserfields": {
"exclouded": ["id", "org_id", "created_at", "updated_at"] "excluded": ["id", "org_id", "created_at", "updated_at"]
}, },
"editexclouded": ["id", "org_id"], "editexcluded": ["id", "org_id"],
"subtables": [ "subtables": [
{ {
"field": "id", "field": "id",

View File

@ -1,16 +1,19 @@
{ {
"summary": { "summary": [
{
"name": "approval_instance", "name": "approval_instance",
"label": "审批实例", "title": "审批实例",
"comment": "具体的审批实例记录" "primary": "id",
}, "catelog": "entity"
}
],
"fields": [ "fields": [
{ {
"name": "id", "name": "id",
"title": "ID", "title": "ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "主键UUID" "comments": "主键UUID"
}, },
{ {
@ -18,7 +21,7 @@
"title": "工作流ID", "title": "工作流ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "关联的工作流定义" "comments": "关联的工作流定义"
}, },
{ {
@ -26,7 +29,7 @@
"title": "模块类型", "title": "模块类型",
"type": "str", "type": "str",
"length": 50, "length": 50,
"nullable": false, "nullable": "no",
"comments": "customer/opportunity/contract/financial" "comments": "customer/opportunity/contract/financial"
}, },
{ {
@ -34,7 +37,7 @@
"title": "模块记录ID", "title": "模块记录ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "关联的具体业务记录ID" "comments": "关联的具体业务记录ID"
}, },
{ {
@ -42,7 +45,7 @@
"title": "当前步骤ID", "title": "当前步骤ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": true, "nullable": "yes",
"comments": "当前待审批的步骤" "comments": "当前待审批的步骤"
}, },
{ {
@ -50,7 +53,7 @@
"title": "状态", "title": "状态",
"type": "str", "type": "str",
"length": 20, "length": 20,
"nullable": false, "nullable": "no",
"comments": "pending/approved/rejected/cancelled" "comments": "pending/approved/rejected/cancelled"
}, },
{ {
@ -58,7 +61,7 @@
"title": "发起人ID", "title": "发起人ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "审批发起人用户ID" "comments": "审批发起人用户ID"
}, },
{ {
@ -66,7 +69,7 @@
"title": "标题", "title": "标题",
"type": "str", "type": "str",
"length": 200, "length": 200,
"nullable": false, "nullable": "no",
"comments": "审批标题" "comments": "审批标题"
}, },
{ {
@ -74,7 +77,7 @@
"title": "描述", "title": "描述",
"type": "str", "type": "str",
"length": 1000, "length": 1000,
"nullable": true, "nullable": "yes",
"comments": "审批详细描述" "comments": "审批详细描述"
}, },
{ {
@ -82,21 +85,21 @@
"title": "组织ID", "title": "组织ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "多租户组织隔离" "comments": "多租户组织隔离"
}, },
{ {
"name": "created_at", "name": "created_at",
"title": "创建时间", "title": "创建时间",
"type": "timestamp", "type": "timestamp",
"nullable": false, "nullable": "no",
"comments": "创建时间" "comments": "创建时间"
}, },
{ {
"name": "completed_at", "name": "completed_at",
"title": "完成时间", "title": "完成时间",
"type": "timestamp", "type": "timestamp",
"nullable": true, "nullable": "yes",
"comments": "完成时间" "comments": "完成时间"
} }
], ],
@ -104,30 +107,31 @@
{ {
"name": "idx_instance_workflow", "name": "idx_instance_workflow",
"idxtype": "index", "idxtype": "index",
"fields": ["workflow_id"] "idxfields": ["workflow_id"]
}, },
{ {
"name": "idx_instance_module", "name": "idx_instance_module",
"idxtype": "index", "idxtype": "index",
"fields": ["module_type", "module_record_id"] "idxfields": ["module_type", "module_record_id"]
}, },
{ {
"name": "idx_instance_status", "name": "idx_instance_status",
"idxtype": "index", "idxtype": "index",
"fields": ["status"] "idxfields": ["status"]
}, },
{ {
"name": "idx_instance_org", "name": "idx_instance_org",
"idxtype": "index", "idxtype": "index",
"fields": ["org_id"] "idxfields": ["org_id"]
} }
], ],
"codes": [ "codes": [
{ {
"tblname": "appcodes", "field": "status",
"codevalue": "APPROVAL_STATUS", "table": "appcodes",
"valuefield": "k", "valuefield": "k",
"textfield": "v" "textfield": "v",
"cond": "codetype='APPROVAL_STATUS'"
} }
] ]
} }

View File

@ -1,16 +1,19 @@
{ {
"summary": { "summary": [
{
"name": "approval_step", "name": "approval_step",
"label": "审批步骤", "title": "审批步骤",
"comment": "审批工作流步骤定义" "primary": "id",
}, "catelog": "entity"
}
],
"fields": [ "fields": [
{ {
"name": "id", "name": "id",
"title": "ID", "title": "ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "主键UUID" "comments": "主键UUID"
}, },
{ {
@ -18,7 +21,7 @@
"title": "工作流ID", "title": "工作流ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "关联的工作流" "comments": "关联的工作流"
}, },
{ {
@ -26,14 +29,14 @@
"title": "步骤名称", "title": "步骤名称",
"type": "str", "type": "str",
"length": 100, "length": 100,
"nullable": false, "nullable": "no",
"comments": "审批步骤名称" "comments": "审批步骤名称"
}, },
{ {
"name": "step_order", "name": "step_order",
"title": "步骤顺序", "title": "步骤顺序",
"type": "long", "type": "long",
"nullable": false, "nullable": "no",
"comments": "步骤执行顺序" "comments": "步骤执行顺序"
}, },
{ {
@ -41,7 +44,7 @@
"title": "审批人类型", "title": "审批人类型",
"type": "str", "type": "str",
"length": 20, "length": 20,
"nullable": false, "nullable": "no",
"comments": "role/user/department/dynamic" "comments": "role/user/department/dynamic"
}, },
{ {
@ -49,7 +52,7 @@
"title": "审批人值", "title": "审批人值",
"type": "str", "type": "str",
"length": 100, "length": 100,
"nullable": true, "nullable": "yes",
"comments": "角色ID/用户ID/部门ID/动态表达式" "comments": "角色ID/用户ID/部门ID/动态表达式"
}, },
{ {
@ -57,14 +60,14 @@
"title": "审批类型", "title": "审批类型",
"type": "str", "type": "str",
"length": 20, "length": 20,
"nullable": false, "nullable": "no",
"comments": "single/multiple/sequential/parallel" "comments": "single/multiple/sequential/parallel"
}, },
{ {
"name": "timeout_hours", "name": "timeout_hours",
"title": "超时小时数", "title": "超时小时数",
"type": "long", "type": "long",
"nullable": true, "nullable": "yes",
"comments": "审批超时时间(小时)" "comments": "审批超时时间(小时)"
}, },
{ {
@ -72,7 +75,7 @@
"title": "描述", "title": "描述",
"type": "str", "type": "str",
"length": 500, "length": 500,
"nullable": true, "nullable": "yes",
"comments": "步骤描述" "comments": "步骤描述"
}, },
{ {
@ -80,7 +83,7 @@
"title": "组织ID", "title": "组织ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "多租户组织隔离" "comments": "多租户组织隔离"
} }
], ],
@ -88,26 +91,28 @@
{ {
"name": "idx_step_workflow", "name": "idx_step_workflow",
"idxtype": "index", "idxtype": "index",
"fields": ["workflow_id"] "idxfields": ["workflow_id"]
}, },
{ {
"name": "idx_step_order", "name": "idx_step_order",
"idxtype": "index", "idxtype": "index",
"fields": ["workflow_id", "step_order"] "idxfields": ["workflow_id", "step_order"]
} }
], ],
"codes": [ "codes": [
{ {
"tblname": "appcodes", "field": "approver_type",
"codevalue": "APPROVER_TYPE", "table": "appcodes",
"valuefield": "k", "valuefield": "k",
"textfield": "v" "textfield": "v",
"cond": "codetype='APPROVER_TYPE'"
}, },
{ {
"tblname": "appcodes", "field": "approval_type",
"codevalue": "APPROVAL_TYPE", "table": "appcodes",
"valuefield": "k", "valuefield": "k",
"textfield": "v" "textfield": "v",
"cond": "codetype='APPROVAL_TYPE'"
} }
] ]
} }

View File

@ -1,16 +1,19 @@
{ {
"summary": { "summary": [
{
"name": "approval_task", "name": "approval_task",
"label": "审批任务", "title": "审批任务",
"comment": "具体的审批任务分配" "primary": "id",
}, "catelog": "entity"
}
],
"fields": [ "fields": [
{ {
"name": "id", "name": "id",
"title": "ID", "title": "ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "主键UUID" "comments": "主键UUID"
}, },
{ {
@ -18,7 +21,7 @@
"title": "实例ID", "title": "实例ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "关联的审批实例" "comments": "关联的审批实例"
}, },
{ {
@ -26,7 +29,7 @@
"title": "步骤ID", "title": "步骤ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "关联的审批步骤" "comments": "关联的审批步骤"
}, },
{ {
@ -34,7 +37,7 @@
"title": "审批人ID", "title": "审批人ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "具体审批人用户ID" "comments": "具体审批人用户ID"
}, },
{ {
@ -42,7 +45,7 @@
"title": "状态", "title": "状态",
"type": "str", "type": "str",
"length": 20, "length": 20,
"nullable": false, "nullable": "no",
"comments": "pending/approved/rejected" "comments": "pending/approved/rejected"
}, },
{ {
@ -50,7 +53,7 @@
"title": "决策", "title": "决策",
"type": "str", "type": "str",
"length": 1000, "length": 1000,
"nullable": true, "nullable": "yes",
"comments": "审批意见" "comments": "审批意见"
}, },
{ {
@ -58,28 +61,28 @@
"title": "组织ID", "title": "组织ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "多租户组织隔离" "comments": "多租户组织隔离"
}, },
{ {
"name": "assigned_at", "name": "assigned_at",
"title": "分配时间", "title": "分配时间",
"type": "timestamp", "type": "timestamp",
"nullable": false, "nullable": "no",
"comments": "任务分配时间" "comments": "任务分配时间"
}, },
{ {
"name": "completed_at", "name": "completed_at",
"title": "完成时间", "title": "完成时间",
"type": "timestamp", "type": "timestamp",
"nullable": true, "nullable": "yes",
"comments": "任务完成时间" "comments": "任务完成时间"
}, },
{ {
"name": "due_at", "name": "due_at",
"title": "截止时间", "title": "截止时间",
"type": "timestamp", "type": "timestamp",
"nullable": true, "nullable": "yes",
"comments": "任务截止时间" "comments": "任务截止时间"
} }
], ],
@ -87,25 +90,26 @@
{ {
"name": "idx_task_instance", "name": "idx_task_instance",
"idxtype": "index", "idxtype": "index",
"fields": ["instance_id"] "idxfields": ["instance_id"]
}, },
{ {
"name": "idx_task_approver", "name": "idx_task_approver",
"idxtype": "index", "idxtype": "index",
"fields": ["approver_id"] "idxfields": ["approver_id"]
}, },
{ {
"name": "idx_task_status", "name": "idx_task_status",
"idxtype": "index", "idxtype": "index",
"fields": ["status"] "idxfields": ["status"]
} }
], ],
"codes": [ "codes": [
{ {
"tblname": "appcodes", "field": "status",
"codevalue": "TASK_STATUS", "table": "appcodes",
"valuefield": "k", "valuefield": "k",
"textfield": "v" "textfield": "v",
"cond": "codetype='TASK_STATUS'"
} }
] ]
} }

View File

@ -1,16 +1,19 @@
{ {
"summary": { "summary": [
{
"name": "approval_workflow", "name": "approval_workflow",
"label": "审批工作流", "title": "审批工作流",
"comment": "跨模块审批工作流定义" "primary": "id",
}, "catelog": "entity"
}
],
"fields": [ "fields": [
{ {
"name": "id", "name": "id",
"title": "ID", "title": "ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "主键UUID" "comments": "主键UUID"
}, },
{ {
@ -18,7 +21,7 @@
"title": "工作流名称", "title": "工作流名称",
"type": "str", "type": "str",
"length": 100, "length": 100,
"nullable": false, "nullable": "no",
"comments": "审批工作流名称" "comments": "审批工作流名称"
}, },
{ {
@ -26,7 +29,7 @@
"title": "模块类型", "title": "模块类型",
"type": "str", "type": "str",
"length": 50, "length": 50,
"nullable": false, "nullable": "no",
"comments": "关联的模块类型(customer/opportunity/contract/financial)" "comments": "关联的模块类型(customer/opportunity/contract/financial)"
}, },
{ {
@ -34,7 +37,7 @@
"title": "触发条件", "title": "触发条件",
"type": "str", "type": "str",
"length": 500, "length": 500,
"nullable": true, "nullable": "yes",
"comments": "JSON格式的触发条件表达式" "comments": "JSON格式的触发条件表达式"
}, },
{ {
@ -42,7 +45,7 @@
"title": "描述", "title": "描述",
"type": "str", "type": "str",
"length": 500, "length": 500,
"nullable": true, "nullable": "yes",
"comments": "工作流描述" "comments": "工作流描述"
}, },
{ {
@ -50,21 +53,21 @@
"title": "组织ID", "title": "组织ID",
"type": "str", "type": "str",
"length": 32, "length": 32,
"nullable": false, "nullable": "no",
"comments": "多租户组织隔离" "comments": "多租户组织隔离"
}, },
{ {
"name": "created_at", "name": "created_at",
"title": "创建时间", "title": "创建时间",
"type": "timestamp", "type": "timestamp",
"nullable": false, "nullable": "no",
"comments": "创建时间" "comments": "创建时间"
}, },
{ {
"name": "updated_at", "name": "updated_at",
"title": "更新时间", "title": "更新时间",
"type": "timestamp", "type": "timestamp",
"nullable": false, "nullable": "no",
"comments": "更新时间" "comments": "更新时间"
}, },
{ {
@ -72,7 +75,7 @@
"title": "是否激活", "title": "是否激活",
"type": "str", "type": "str",
"length": 1, "length": 1,
"nullable": false, "nullable": "no",
"comments": "Y/N" "comments": "Y/N"
} }
], ],
@ -80,17 +83,17 @@
{ {
"name": "idx_workflow_org", "name": "idx_workflow_org",
"idxtype": "index", "idxtype": "index",
"fields": ["org_id"] "idxfields": ["org_id"]
}, },
{ {
"name": "idx_workflow_module", "name": "idx_workflow_module",
"idxtype": "index", "idxtype": "index",
"fields": ["module_type"] "idxfields": ["module_type"]
}, },
{ {
"name": "uk_workflow_name_org", "name": "uk_workflow_name_org",
"idxtype": "unique", "idxtype": "unique",
"fields": ["workflow_name", "org_id"] "idxfields": ["workflow_name", "org_id"]
} }
], ],
"codes": [] "codes": []