外协人员批量审批

This commit is contained in:
2025-12-11 14:49:20 +08:00
parent 0b48e4d785
commit 470e14e7a2
28 changed files with 2304 additions and 35 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,233 @@
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail';
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "TABLE_NAME", "TABLE_DESCRIBE", "TABLE_TYPE", "TABLE_CLASSIFY", "TABLE_ID_TYPE", "TABLE_SELECT", "IS_DB_SYNC", "IS_DES_FORM", "SUB_TABLE_MAPPING", "SUB_TABLE_SORT", "SUB_TABLE_TITLE", "THEME_TEMPLATE", "DESFORM_WEB_ID", "TREE_STYLE", "TREE_MODE", "TREE_LABEL_FIELD", "OPERATE_MENU_STYLE", "MAX_MENU_NUM", "FORM_STYLE", "SUB_TABLE_LIST_STR", "VIEW_DEFAULT_FIELD", "GROUP_DBFORM_ID", "ORDERBY_CONFIG", "WHERE_CONFIG", "DATA_CONFIG", "BASIC_FUNCTION", "BASIC_CONFIG", "TABLE_CONFIG", "DATA_SOURCES_CONFIG", "TABLE_STYLE", "IMPORT_DUPLICATE_TYPE") values(1998219204777533442, 1, 1, '2025-12-09 10:32:38', 100, 1, '2025-12-09 11:14:03', 0, 'lc_outside_batch_approval_detail', '外协批量审批明细', 4, 1, 'NATIVE', 'multiple', 'Y', 'N', 'many', 1, '外协批量审批明细', 'normal', null, 'default', 'default', '', 'more', 1, 2, '', 'N', 1960949902852292609, '[{"order":"desc","column":"id"}]', null, 'page,initDataReq,authFalse', 'viewBtn', '', 'height,header,menu,index,border,rollBottom', '', '{"singleStyle":"default","searchStyle":"default"}', 'update');
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM_ENHANCE_JAVA" where dbform_id in (select id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD" where dbform_id in (select id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077762, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077763, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'batchApprovalId', '批量审批Id', 128, 0, '', 'BigInt', '', 'N', 'Y', 2, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077764, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'outsideId', '外协人员Id', 128, 0, '', 'BigInt', '', 'N', 'Y', 3, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077765, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandId', '用人单位', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077766, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandName', '用人单位名称', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077767, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceName', '工作地点名称', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077768, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceId', '工作地点', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077769, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierId', '供应商Id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077770, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierName', '供应商名称', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077771, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'personName', '人员姓名', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077772, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'mobile', '手机号', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077773, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'cardNo', '证件号', 128, 0, '', 'String', '', 'N', 'Y', 12, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077774, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077775, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077776, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 15, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077777, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 16, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077778, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 17, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077779, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 18, 'Y');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "FIELD_NAME", "FIELD_LEN", "FIELD_POINT_LEN", "FIELD_DEFAULT_VAL", "FIELD_TYPE", "FIELD_REMARK", "IS_PRIMARY_KEY", "IS_NULL", "SORT_NUM", "IS_DB") values(1998219205113077780, 1, 1, '2025-12-09 10:32:38', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 19, 'Y');
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT" where dbform_id in (select id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643650, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'id', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643651, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'batchApprovalId', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643652, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'outsideId', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643653, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandId', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643654, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandName', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643655, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceName', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643656, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceId', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643657, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierId', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643658, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierName', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643659, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'personName', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643660, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'mobile', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643661, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'cardNo', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643662, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'tenant_id', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643663, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_user', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643664, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_time', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643665, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_dept', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643666, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_user', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643667, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_time', '', '', '', '', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_DICT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "DICT_TYPE", "DICT_CODE", "DICT_TABLE", "DICT_TEXT", "DICT_TABLE_COLUMN", "DICT_TEXT_FORMATTER", "DICT_TABLE_SEARCH") values(1998219206463643668, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'is_deleted', '', '', '', '', '', '', '');
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT" where dbform_id in (select id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638594, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'id', 'N', 'N', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638595, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'batchApprovalId', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638596, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'outsideId', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638597, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandId', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638598, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandName', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638599, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceName', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638600, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceId', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638601, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierId', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638602, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierName', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638603, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'personName', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638604, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'mobile', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638605, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'cardNo', 'Y', 'Y', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638606, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'tenant_id', 'N', 'N', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638607, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_user', 'N', 'N', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638608, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_time', 'N', 'N', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638609, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_dept', 'N', 'N', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638610, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_user', 'N', 'N', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638611, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_time', 'N', 'N', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_EXPORT"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_IMPORT", "IS_EXPORT", "IMPORT_EXAMPLE_TXT", "IS_IMPORT_DUPLICATE") values(1998219206614638612, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'is_deleted', 'N', 'N', '', '');
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY" where dbform_id in (select id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690497, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'id', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690498, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'batchApprovalId', 'lc_outside_batch_approval', 'id');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690499, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'outsideId', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690500, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandId', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690501, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandName', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690502, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceName', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690503, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceId', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690504, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierId', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690505, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierName', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690506, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'personName', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690507, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'mobile', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690508, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'cardNo', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690509, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'tenant_id', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690510, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_user', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690511, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_time', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690512, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_dept', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690513, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_user', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690514, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_time', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_FOREIGNKEY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "MAIN_TABLE", "MAIN_FIELD") values(1998219206723690515, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'is_deleted', '', '');
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY" where dbform_id in (select id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960130, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'id', 'Y', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960131, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'batchApprovalId', 'Y', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960132, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'outsideId', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960133, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandId', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960134, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandName', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960135, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceName', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960136, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceId', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960137, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierId', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960138, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierName', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960139, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'personName', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960140, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'mobile', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960141, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'cardNo', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960142, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'tenant_id', 'N', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960143, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_user', 'Y', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960144, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_time', 'Y', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960145, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_dept', 'Y', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960146, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_user', 'Y', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960147, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_time', 'Y', 'N', 'EQ', '', '', '');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_QUERY"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "QUERY_IS_DB", "QUERY_IS_WEB", "QUERY_MODE", "QUERY_CONFIG", "QUERY_DEFAULT_VAL", "FILTER_AUTH") values(1998219206966960148, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'is_deleted', 'Y', 'N', 'EQ', '', '', '');
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB" where dbform_id in (select id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548097, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''主键'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548098, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'batchApprovalId', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''批量审批Id'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548099, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'outsideId', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''外协人员Id'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548100, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandId', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''用人单位'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548101, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'demandName', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''用人单位名称'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548102, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceName', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''工作地点名称'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548103, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'workPlaceId', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''工作地点'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548104, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierId', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''供应商Id'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548105, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'supplierName', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''供应商名称'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548106, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'personName', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''人员姓名'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548107, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'mobile', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''手机号'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548108, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'cardNo', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''证件号'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548109, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''租户编号'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548110, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''创建人'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548111, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''创建时间'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548112, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''创建部门id'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548113, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''更新人'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548114, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''更新时间'',
//English
''en'': '''',
}');
insert into "LOWCODE_FRAME"."LOWCODE_DBFORM_FIELD_WEB"("ID", "TENANT_ID", "CREATE_USER", "CREATE_TIME", "CREATE_DEPT", "UPDATE_USER", "UPDATE_TIME", "IS_DELETED", "DBFORM_ID", "FIELD_CODE", "IS_DB_SELECT", "IS_SHOW_LIST", "IS_SHOW_FORM", "IS_SHOW_COLUMN", "IS_SHOW_SORT", "IS_REQUIRED", "CONTROL_TYPE", "CONTROLS_CONFIG", "CELL_WIDTH", "CELL_WIDTH_TYPE", "VERIFY_CONFIG", "FORMAT_CONFIG", "LABEL_I18N") values(1998219206828548115, 1, 1, '2025-12-09 10:32:39', 100, null, '2025-12-09 11:13:57', 0, 1998219204777533442, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{"formatType":"","formatJson":{"sql":{},"java":{},"fun":""}}', 'return {
//简体中文
''zh-CN'': ''是否删除'',
//English
''en'': '''',
}');
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM_BUTTON" where dbform_id in (select id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');
delete from "LOWCODE_FRAME"."LOWCODE_DESFORM" where id in (select desform_web_id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM_ENHANCE_JS" where dbform_id in (select id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');
delete from "LOWCODE_FRAME"."LOWCODE_DBFORM_ENHANCE_SQL" where dbform_id in (select id from "LOWCODE_FRAME"."LOWCODE_DBFORM" where TABLE_NAME = 'lc_outside_batch_approval_detail');

File diff suppressed because one or more lines are too long

View File

@@ -23,7 +23,7 @@ public enum ApproveStatusEnum {
*/ */
private final String desc; private final String desc;
public static final String codeField ="ApproveStatus"; public static final String codeField ="approveStatus";
public static final String nameField ="ApproveStatusName"; public static final String nameField ="approveStatusName";
} }

View File

@@ -14,6 +14,8 @@ import com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore;
import com.jeelowcode.framework.utils.model.ResultDataModel; import com.jeelowcode.framework.utils.model.ResultDataModel;
import com.jeelowcode.framework.utils.tool.CollectionUtil; import com.jeelowcode.framework.utils.tool.CollectionUtil;
import com.jeelowcode.service.infra.service.IFileService; import com.jeelowcode.service.infra.service.IFileService;
import com.jeelowcode.service.system.api.IApiAdminUserApi;
import com.jeelowcode.service.system.dto.AdminUserRespDTO;
import com.jeelowcode.tool.framework.common.pojo.CommonResult; import com.jeelowcode.tool.framework.common.pojo.CommonResult;
import com.jeelowcode.tool.framework.common.util.io.FileUtil; import com.jeelowcode.tool.framework.common.util.io.FileUtil;
import com.jeelowcode.tool.framework.common.util.string.StrUtils; import com.jeelowcode.tool.framework.common.util.string.StrUtils;
@@ -27,8 +29,10 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -51,6 +55,9 @@ public class OutSidePersonController extends BaseController {
@Autowired @Autowired
private IFrameSqlService sqlService; private IFrameSqlService sqlService;
@Autowired
private IApiAdminUserApi apiAdminUserApi;
@GetMapping({"/importOutside"}) @GetMapping({"/importOutside"})
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
@Operation(summary = "引入外协人员") @Operation(summary = "引入外协人员")
@@ -90,6 +97,93 @@ public class OutSidePersonController extends BaseController {
} }
/**
* 批量发起审批
* 1) 校验外协人员审批状态未发起approveStatus != 1否则抛出姓名
* 2) 生成批量审批主表数据lc_outside_batch_approval
* 3) 按外协人员生成批量审批明细数据lc_outside_batch_approval_detail
*/
@PostMapping({"/batchApproval"})
@ApiOperationSupport(order = 6)
@Operation(summary = "批量发起审批")
public CommonResult<Map<String, Object>> batchApproval(@RequestParam("ids") String ids) {
String[] idArr = ids.split(Pattern.quote(","));
if (Objects.isNull(idArr) || idArr.length == 0) {
throw new JeeLowCodeException("缺少必要参数");
}
Long personFormId = dbFormService.getDbFormIdByTableName("lc_outside_person");
Long batchFormId = dbFormService.getDbFormIdByTableName("lc_outside_batch_approval");
Long detailFormId = dbFormService.getDbFormIdByTableName("lc_outside_batch_approval_detail");
List<String> invalidNames = new ArrayList<>();
List<JSONObject> detailDataList = new ArrayList<>();
for (String idStr : idArr) {
Long dataId = Long.valueOf(idStr);
ResultDataModel dataDetail = super.getDataDetail(personFormId, dataId, new HashMap<>());
if (CollectionUtil.isEmpty(dataDetail.getRecords())) {
continue;
}
Map<String, Object> person = (Map<String, Object>) dataDetail.getRecords().get(0);
Object approveStatus = person.get("approveStatus");
if (approveStatus != null && !"0".equals(String.valueOf(approveStatus))) {
invalidNames.add(String.valueOf(person.get("personName")));
continue;
}
JSONObject detail = new JSONObject();
detail.put("batchApprovalId", 0); // 先占位,主表保存后再回填
detail.put("outsideId", person.get("id"));
detail.put("demandId", person.get("demandId"));
detail.put("demandName", person.get("demandName"));
detail.put("workPlaceId", person.get("workPlaceId"));
detail.put("workPlaceName", person.get("workPlaceName"));
detail.put("supplierId", person.get("supplierId"));
detail.put("supplierName", person.get("supplierName"));
detail.put("personName", person.get("personName"));
detail.put("mobile", person.get("mobile"));
detail.put("cardNo", person.get("cardNo"));
detailDataList.add(detail);
}
if (CollectionUtil.isNotEmpty(invalidNames)) {
throw new JeeLowCodeException("以下人员已发起审批或状态异常:" + String.join(",", invalidNames));
}
if (CollectionUtil.isEmpty(detailDataList)) {
throw new JeeLowCodeException("未找到可发起审批的外协人员");
}
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
Long initiatorId = loginUser != null ? loginUser.getId() : -1L;
JSONObject batchData = new JSONObject();
batchData.put("billNo", "PZ" + System.currentTimeMillis());
batchData.put("initiatorId", initiatorId);
//TODO:获取到当前登录用户的用户名
AdminUserRespDTO initiator = apiAdminUserApi.getUser(initiatorId);
batchData.put("initiator", initiator.getNickname());
batchData.put("start_time", LocalDateTime.now());
batchData.put("lc_outside_batch_approval_detail", detailDataList);
// 获取插入后的主键
String batchId = super.addJsonData(batchFormId, batchData);
// 构建返回结果
Map<String, Object> result = new HashMap<>();
result.put("batchFormId", batchFormId);
result.put("batchId", batchId);
result.put("message", "批量审批发起成功");
return success(result);
}
public Map<String, Object> getOutSideByCardNo(String cardNo) { public Map<String, Object> getOutSideByCardNo(String cardNo) {
SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper(); SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper();
wrapper.setTableName("lc_outside_person"); wrapper.setTableName("lc_outside_person");

View File

@@ -0,0 +1,46 @@
package com.jeelowcode.module.biz.enhance;
import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext;
import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin;
import com.jeelowcode.core.framework.controller.BaseController;
import com.jeelowcode.framework.utils.tool.NumberUtil;
import com.jeelowcode.module.biz.service.IDrillPlanService;
import com.jeelowcode.module.biz.service.IWorkItemService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Map;
/**
* 删除前校验
*/
@Slf4j
@Component("afterItemResultCreateEnhance")
public class AfterDrillTaskCreateEnhance extends BaseController implements AfterAdvicePlugin {
@Autowired
private IDrillPlanService drillPlanService;
private static AfterDrillTaskCreateEnhance ADTE;
@PostConstruct
public void init(){
ADTE = this;
}
@Override
public void execute(EnhanceContext enhanceContext) {
Map<String, Object> params = enhanceContext.getParam().getParams();
if(!params.containsKey("id")){
return;
}
Long id = NumberUtil.toLong(params.get("id").toString());
// 发送代办消息
ADTE.drillPlanService.pushDrillTaskWorkflow(id,"DRILL_TASK_TODO");
}
}

View File

@@ -84,6 +84,14 @@ public class AfterDrillTaskEditEnhance extends BaseController implements AfterAd
currentPlan.put("drill_plan_status_type", planStatus); currentPlan.put("drill_plan_status_type", planStatus);
super.editJsonData(planFormId, JSONUtil.parseObj(currentPlan)); super.editJsonData(planFormId, JSONUtil.parseObj(currentPlan));
} }
// 发送已办消息
if(currentTask.get("task_status").equals("3"))
{
// 发送已办消息
ADTE.iDrillPlanService.pushDrillTaskWorkflow(id,"DRILL_TASK_DONE");
}
} }
} }

View File

@@ -17,7 +17,7 @@ import java.util.Map;
* 删除前校验 * 删除前校验
*/ */
@Slf4j @Slf4j
@Component("afterItemResultCreateEnhance") @Component("AfterItemResultCreateEnhance")
public class AfterItemResultCreateEnhance extends BaseController implements AfterAdvicePlugin { public class AfterItemResultCreateEnhance extends BaseController implements AfterAdvicePlugin {
@Autowired @Autowired

View File

@@ -0,0 +1,147 @@
package com.jeelowcode.module.biz.enhance;
import cn.hutool.json.JSONObject;
import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext;
import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin;
import com.jeelowcode.core.framework.controller.BaseController;
import com.jeelowcode.core.framework.enums.ApproveStatusEnum;
import com.jeelowcode.core.framework.service.IFormService;
import com.jeelowcode.core.framework.service.IFrameSqlService;
import com.jeelowcode.framework.plus.SqlHelper;
import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper;
import com.jeelowcode.framework.utils.model.ResultDataModel;
import com.jeelowcode.framework.utils.tool.CollectionUtil;
import com.jeelowcode.framework.utils.tool.NumberUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 批量审批编辑后增强处理
* 根据lc_outside_batch_approval的审批状态同步更新lc_outside_person表的审批状态和流程实例ID
*/
@Slf4j
@Component("AfterOutsideBatchApprovalEditEnhance")
public class AfterOutsideBatchApprovalEditEnhance extends BaseController implements AfterAdvicePlugin {
@Autowired
IFormService dbFormService;
@Autowired
IFrameSqlService sqlService;
private static AfterOutsideBatchApprovalEditEnhance ADTE;
@PostConstruct
public void init(){
ADTE = this;
}
@Override
public void execute(EnhanceContext enhanceContext) {
Map<String, Object> params = enhanceContext.getParam().getParams();
if(!params.containsKey("id")){
return;
}
Long dataId = NumberUtil.toLong(params.get("id").toString());
Long personFormId = ADTE.dbFormService.getDbFormIdByTableName("lc_outside_person");
Long batchFormId = ADTE.dbFormService.getDbFormIdByTableName("lc_outside_batch_approval");
ResultDataModel resultDataModel = super.getDataDetail(batchFormId, dataId, new HashMap<>());
if (CollectionUtil.isNotEmpty(resultDataModel.getRecords())) {
if (resultDataModel.getRecords().get(0).containsKey("jeelowcode_subtable_data")) {
HashMap<String, Object> details = (HashMap<String, Object>) resultDataModel.getRecords().get(0).get("jeelowcode_subtable_data");
if (details.containsKey("lc_outside_batch_approval_detail")) {
List<HashMap<String, Object>> detailList = (List<HashMap<String, Object>>) details.get("lc_outside_batch_approval_detail");
// 从params中获取审批状态和流程实例ID
// 尝试多种可能的字段名(框架可能返回不同的大小写格式)
Object approveStatusObj = params.get(ApproveStatusEnum.codeField);
if (approveStatusObj == null) {
approveStatusObj = params.get("approveStatus");
}
Object processInstanceIdObj = params.get("processInstanceId");
if (processInstanceIdObj == null) {
processInstanceIdObj = params.get("ProcessInstanceId");
}
if (approveStatusObj == null) {
log.warn("批量审批记录 {} 的审批状态为空,跳过同步", dataId);
return;
}
Integer approveStatus = NumberUtil.toInt(approveStatusObj.toString());
String processInstanceId = processInstanceIdObj != null ? processInstanceIdObj.toString() : null;
// 根据审批状态获取对应的描述
String approveStatusName = getApproveStatusName(approveStatus);
if (CollectionUtil.isEmpty(detailList)) {
log.warn("批量审批记录 {} 没有关联的明细数据,跳过同步", dataId);
return;
}
// 收集需要更新的外协人员ID
List<Long> outsideIdList = new ArrayList<>();
for (Map<String, Object> detail : detailList) {
Object outsideIdObj = detail.get("outsideId");
if (outsideIdObj != null) {
Long outsideId = NumberUtil.toLong(outsideIdObj.toString());
if (outsideId != null) {
outsideIdList.add(outsideId);
}
}
}
if (CollectionUtil.isEmpty(outsideIdList)) {
log.warn("批量审批记录 {} 没有有效的外协人员ID跳过同步", dataId);
return;
}
// 批量更新外协人员表的审批状态和流程实例ID
List<JSONObject> updateList = new ArrayList<>();
for (Long outsideId : outsideIdList) {
JSONObject updateData = new JSONObject();
updateData.put("id", outsideId);
updateData.put(ApproveStatusEnum.codeField, approveStatus);
updateData.put(ApproveStatusEnum.nameField, approveStatusName);
if (processInstanceId != null) {
updateData.put("processInstanceId", processInstanceId);
}
updateList.add(updateData);
}
// 执行批量更新
if (CollectionUtil.isNotEmpty(updateList)) {
super.editJsonData(personFormId, updateList);
log.info("批量审批记录 {} 同步更新了 {} 条外协人员记录的审批状态", dataId, updateList.size());
}
}
}
}
}
/**
* 根据审批状态码获取对应的描述
*/
private String getApproveStatusName(Integer approveStatus) {
if (approveStatus == null) {
return ApproveStatusEnum.UNAPPROVED.getDesc();
}
for (ApproveStatusEnum statusEnum : ApproveStatusEnum.values()) {
if (statusEnum.getCode() == approveStatus) {
return statusEnum.getDesc();
}
}
return ApproveStatusEnum.UNAPPROVED.getDesc();
}
}

View File

@@ -16,4 +16,6 @@ public interface IDrillPlanService {
Map<String, Object> getDrillTaskById(long id); Map<String, Object> getDrillTaskById(long id);
List<Map<String, Object>> getDrillTaskByPlanId(Long drillPlanId); List<Map<String, Object>> getDrillTaskByPlanId(Long drillPlanId);
boolean pushDrillTaskWorkflow(Long drillTaskId, String todoType);
} }

View File

@@ -1,18 +1,30 @@
package com.jeelowcode.module.biz.service.impl; package com.jeelowcode.module.biz.service.impl;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.jeelowcode.core.framework.service.IFrameSqlService; import com.jeelowcode.core.framework.service.IFrameSqlService;
import com.jeelowcode.framework.plus.SqlHelper; import com.jeelowcode.framework.plus.SqlHelper;
import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper;
import com.jeelowcode.framework.plus.core.toolkit.StringUtils;
import com.jeelowcode.framework.utils.tool.spring.SpringUtils;
import com.jeelowcode.module.biz.mapper.DrillPlanMapper; import com.jeelowcode.module.biz.mapper.DrillPlanMapper;
import com.jeelowcode.module.biz.service.IDrillPlanService; import com.jeelowcode.module.biz.service.IDrillPlanService;
import com.jeelowcode.module.biz.service.ITodoRequestService;
import com.jeelowcode.service.bpm.config.framework.portal.core.PortalRequest;
import com.jeelowcode.service.bpm.config.framework.portal.core.dto.ReceiveRequestInfoDTO;
import com.jeelowcode.service.system.api.IApiAdminUserApi;
import com.jeelowcode.service.system.dto.AdminUserRespDTO;
import com.jeelowcode.tool.framework.common.util.object.BeanUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections; import javax.annotation.Resource;
import java.util.List; import java.util.*;
import java.util.Map;
/** /**
@@ -23,9 +35,29 @@ import java.util.Map;
public class DrillPlanServiceImpl implements IDrillPlanService { public class DrillPlanServiceImpl implements IDrillPlanService {
private static final String SPACE = " ";
private static final String WORK_NODE_NAME = "下发演练计划";
private static final String WORK_FLOW_NAME = "演练计划信息";
// TODO 待办跳转链接,这个以后需要优化,通过配置去取这个链接,不能写死在这里
private static final String RISK_PC_URL = "/yljg/table/view/1966394259751907330";
private static final String WORK_STATUS_TODO = "0";
private static final String WORK_STATUS_DONE = "2";
private static final String WORK_STATUS_COMPLETE = "4";
private static final String VIEW_TYPE_UNREAD = "0";
private static final String VIEW_TYPE_READ = "1";
private static final String Bill_Table_Name = "lc_drill_task";
@Autowired @Autowired
private IFrameSqlService sqlService; private IFrameSqlService sqlService;
@Resource
private ITodoRequestService todoRequestService;
@Resource
private IApiAdminUserApi apiAdminUserApi;
@Override @Override
public Map<String, Object> getDrillPlanById(long id) { public Map<String, Object> getDrillPlanById(long id) {
SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper(); SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper();
@@ -71,5 +103,112 @@ public class DrillPlanServiceImpl implements IDrillPlanService {
return dataMapList; return dataMapList;
} }
@Override
public boolean pushDrillTaskWorkflow(Long drillTaskId, String todoType) {
// 0.1.查找工作事项数据,如果查不到则放弃推送
Map<String, Object> drillTask = getDrillTaskById(drillTaskId);
if (MapUtil.isEmpty(drillTask)) return false;
// 0.2.从容器中获取 PortalRequest 对象,如果没有配置则放弃通知
PortalRequest portalRequest = SpringUtils.getBean(PortalRequest.class);
if (ObjectUtil.isNull(portalRequest)) return false;
// 0.3.判断是否存在 场景下发送的消息,已经发送过消息的不重复发送
boolean isExist = todoRequestService.isExistTodoRequest(drillTaskId, todoType);
if(isExist)
{
return true;
}
// 1.构建请求参数,准备推送待办信息
String creator="";
String receiver="";
String isRemark="";
String viewType="";
// 1.1.拼接标题
String requestName = "计划于【"+
DateUtil.formatDate( (Date) drillTask.getOrDefault("sDate", new Date()))
+ "】-【" +
DateUtil.formatDate( (Date) drillTask.getOrDefault("sDate", new Date()))
+"】进行"+
drillTask.getOrDefault("drill_plan_name", "");
// 1.2.根据代办类型取消息发送者 TODO 需要升级存储检查人的username
if(todoType.equals("DRILL_TASK_TODO"))
{
isRemark=WORK_STATUS_TODO;
viewType=VIEW_TYPE_UNREAD;
}else
{
isRemark=WORK_STATUS_DONE;
viewType=VIEW_TYPE_READ;
}
// 消息发送者为 工作事项 发起人
Long createUserId = Objects.isNull(drillTask.get("create_user")) ? null : Long.valueOf(drillTask.get("create_user").toString());
AdminUserRespDTO createUser = Optional.ofNullable(createUserId)
.map(userId -> apiAdminUserApi.getUser(userId))
.orElse(new AdminUserRespDTO());
if(StringUtils.isEmpty(createUser.getUsername()))
{
return false;
}else
{
creator=createUser.getUsername();
}
// 消息接受者为 事项结果 责任人
Long receiveId = Objects.isNull(drillTask.get("charge_id")) ? null : Long.valueOf( drillTask.get("charge_id").toString());
AdminUserRespDTO receiveUser = Optional.ofNullable(receiveId)
.map(userId -> apiAdminUserApi.getUser(userId))
.orElse(new AdminUserRespDTO());
if(StringUtils.isEmpty(receiveUser.getUsername()))
{
return false;
}else
{
receiver=receiveUser.getUsername();
}
// 1.2.组织请求数据
ReceiveRequestInfoDTO todoRequestDTO = new ReceiveRequestInfoDTO()
.setFlowId(Base64.encode(String.valueOf(drillTaskId)))
.setRequestName(requestName)
.setWorkflowName(WORK_FLOW_NAME)
.setNodeName(WORK_NODE_NAME)
.setPcUrl(RISK_PC_URL)
.setIsRemark(isRemark)
.setViewType(viewType)
.setCreator(creator)
.setCreateDateTime(new Date())
.setReceiver(receiver)
.setReceiveDateTime(new Date())
.setReceiveTs(String.valueOf(System.currentTimeMillis()));
ReceiveRequestInfoDTO completeRequestDTO = BeanUtils.toBean(todoRequestDTO, ReceiveRequestInfoDTO.class);
completeRequestDTO.setIsRemark(WORK_STATUS_COMPLETE);
// 1.3.构建发送消息详情
HashMap<String, Object> newRecord = new HashMap<>();
newRecord.put("bill_id", drillTaskId);
newRecord.put("bill_table_name", Bill_Table_Name);
newRecord.put("bill_action", todoType);
newRecord.put("todo_request", JSONUtil.toJsonStr(todoRequestDTO));
// 2.推送待办信息使用try-catch避免影响上层调用方法的事务回滚
try {
portalRequest.receiveRequestInfo(todoRequestDTO);
newRecord.put("is_success", 1);
todoRequestService.addTodoRequest(newRecord);
if(todoType.equals("DRILL_TASK_DONE"))
{
portalRequest.receiveRequestInfo(completeRequestDTO);
}
} catch (Exception e) {
log.error("推送待办信息失败", e);
newRecord.put("is_success", 0);
todoRequestService.addTodoRequest(newRecord);
return false;
}
return true;
}
} }

View File

@@ -3,6 +3,7 @@ package com.jeelowcode.service.bpm.config.framework.portal.core.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date; import java.util.Date;
@@ -12,6 +13,7 @@ import static com.jeelowcode.tool.framework.common.util.date.DateUtils.TIME_ZONE
/** /**
* 描述:接收待阅流程请求参数 * 描述:接收待阅流程请求参数
*/ */
@Accessors(chain = true)
@Data @Data
public class ReceiveCCRequestDTO { public class ReceiveCCRequestDTO {

View File

@@ -6,10 +6,12 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Collection; import java.util.Collection;
@Schema(description = "管理后台 - 流程实例抄送的创建 Request VO") @Schema(description = "管理后台 - 流程实例抄送的创建 Request VO")
@Accessors(chain = true)
@Data @Data
public class BpmProcessInstanceCopyCreateReqVO { public class BpmProcessInstanceCopyCreateReqVO {

View File

@@ -4,6 +4,7 @@ import com.jeelowcode.tool.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*; import lombok.*;
import lombok.experimental.Accessors;
/** /**
* 流程抄送 DO * 流程抄送 DO
@@ -12,6 +13,7 @@ import lombok.*;
* @since 2024-01-22 * @since 2024-01-22
*/ */
@TableName(value = "bpm_process_instance_copy", autoResultMap = true) @TableName(value = "bpm_process_instance_copy", autoResultMap = true)
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)

View File

@@ -1,5 +1,6 @@
package com.jeelowcode.service.bpm.service.impl; package com.jeelowcode.service.bpm.service.impl;
import cn.hutool.json.JSONObject;
import com.jeelowcode.core.framework.entity.FormEntity; import com.jeelowcode.core.framework.entity.FormEntity;
import com.jeelowcode.core.framework.enums.ApproveStatusEnum; import com.jeelowcode.core.framework.enums.ApproveStatusEnum;
import com.jeelowcode.core.framework.mapper.FormMapper; import com.jeelowcode.core.framework.mapper.FormMapper;
@@ -9,13 +10,9 @@ import com.jeelowcode.service.bpm.controller.vo.instance.BpmProcessInstanceRespV
import com.jeelowcode.service.bpm.service.IBpmProcessInstanceService; import com.jeelowcode.service.bpm.service.IBpmProcessInstanceService;
import com.jeelowcode.tool.framework.datapermission.core.annotation.DataPermission; import com.jeelowcode.tool.framework.datapermission.core.annotation.DataPermission;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
@Service @Service
@Slf4j @Slf4j
@@ -27,8 +24,6 @@ public class BillApproveStatusService {
public void afterSubmit(String processInstanceId){ public void afterSubmit(String processInstanceId){
Map<String,Object> map = new HashMap<>();
//流程实例id //流程实例id
BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId); BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId);
//获取到的自定义表单数据id //获取到的自定义表单数据id
@@ -37,17 +32,16 @@ public class BillApproveStatusService {
Long formId = vo.getProcessDefinition().getFormId(); Long formId = vo.getProcessDefinition().getFormId();
FormEntity formEntity = SpringUtils.getBean(FormMapper.class).getByWebId(formId); FormEntity formEntity = SpringUtils.getBean(FormMapper.class).getByWebId(formId);
Map<String,Object> json = new HashMap<>(); // 使用 editJsonData 方法,这样会触发增强机制
JSONObject json = new JSONObject();
json.put("id", id);
json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.APPROVING.getCode()); json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.APPROVING.getCode());
json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.APPROVING.getDesc()); json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.APPROVING.getDesc());
json.put("ProcessInstanceId", processInstanceId); json.put("processInstanceId", processInstanceId);
dbformDataService.update(formEntity.getTableName(),id,json); dbformDataService.editJsonData(formEntity.getId(), json);
} }
public void afterApproved(String processInstanceId){ public void afterApproved(String processInstanceId){
Map<String,Object> map = new HashMap<>();
//流程实例id //流程实例id
BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId); BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId);
//获取到的自定义表单数据id //获取到的自定义表单数据id
@@ -55,17 +49,15 @@ public class BillApproveStatusService {
//数据表id //数据表id
Long formId = vo.getProcessDefinition().getFormId(); Long formId = vo.getProcessDefinition().getFormId();
FormEntity formEntity = SpringUtils.getBean(FormMapper.class).getByWebId(formId); FormEntity formEntity = SpringUtils.getBean(FormMapper.class).getByWebId(formId);
// 使用 editJsonData 方法,这样会触发增强机制
Map<String,Object> json = new HashMap<>(); JSONObject json = new JSONObject();
json.put("id", id);
json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.APPROVED.getCode()); json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.APPROVED.getCode());
json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.APPROVED.getDesc()); json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.APPROVED.getDesc());
dbformDataService.update(formEntity.getTableName(),id,json); dbformDataService.editJsonData(formEntity.getId(), json);
} }
public void afterRejected(String processInstanceId){ public void afterRejected(String processInstanceId){
Map<String,Object> map = new HashMap<>();
//流程实例id //流程实例id
BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId); BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId);
//获取到的自定义表单数据id //获取到的自定义表单数据id
@@ -73,18 +65,16 @@ public class BillApproveStatusService {
//数据表id //数据表id
Long formId = vo.getProcessDefinition().getFormId(); Long formId = vo.getProcessDefinition().getFormId();
FormEntity formEntity = SpringUtils.getBean(FormMapper.class).getByWebId(formId); FormEntity formEntity = SpringUtils.getBean(FormMapper.class).getByWebId(formId);
// 使用 editJsonData 方法,这样会触发增强机制
Map<String,Object> json = new HashMap<>(); JSONObject json = new JSONObject();
json.put("id", id);
json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.REJECTED.getCode()); json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.REJECTED.getCode());
json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.REJECTED.getDesc()); json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.REJECTED.getDesc());
dbformDataService.update(formEntity.getTableName(),id,json); dbformDataService.editJsonData(formEntity.getId(), json);
} }
public void afterCancel(String processInstanceId){ public void afterCancel(String processInstanceId){
Map<String,Object> map = new HashMap<>();
//流程实例id //流程实例id
BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId); BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId);
//获取到的自定义表单数据id //获取到的自定义表单数据id
@@ -92,11 +82,11 @@ public class BillApproveStatusService {
//数据表id //数据表id
Long formId = vo.getProcessDefinition().getFormId(); Long formId = vo.getProcessDefinition().getFormId();
FormEntity formEntity = SpringUtils.getBean(FormMapper.class).getByWebId(formId); FormEntity formEntity = SpringUtils.getBean(FormMapper.class).getByWebId(formId);
// 使用 editJsonData 方法,这样会触发增强机制
Map<String,Object> json = new HashMap<>(); JSONObject json = new JSONObject();
json.put("id", id);
json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.UNAPPROVED.getCode()); json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.UNAPPROVED.getCode());
json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.UNAPPROVED.getDesc()); json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.UNAPPROVED.getDesc());
dbformDataService.update(formEntity.getTableName(),id,json); dbformDataService.editJsonData(formEntity.getId(), json);
} }
} }

View File

@@ -24,7 +24,6 @@ import com.jeelowcode.service.bpm.service.IBpmProcessInstanceCopyService;
import com.jeelowcode.service.bpm.service.IBpmProcessInstanceService; import com.jeelowcode.service.bpm.service.IBpmProcessInstanceService;
import com.jeelowcode.service.bpm.service.IBpmTaskService; import com.jeelowcode.service.bpm.service.IBpmTaskService;
import com.jeelowcode.service.bpm.dto.BpmDelegateExecutionDTO; import com.jeelowcode.service.bpm.dto.BpmDelegateExecutionDTO;
import com.jeelowcode.tool.framework.common.util.object.ObjectUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.RuntimeService; import org.flowable.engine.RuntimeService;
import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.DelegateExecution;

View File

@@ -2,12 +2,14 @@ package com.jeelowcode.service.system.controller.vo.permission.role;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
@Schema(description = "管理后台 - 角色创建 Request VO") @Schema(description = "管理后台 - 角色创建 Request VO")
@Accessors(chain = true)
@Data @Data
public class RoleSaveReqVO { public class RoleSaveReqVO {

View File

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*; import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -18,6 +19,7 @@ import java.time.LocalDateTime;
*/ */
@TableName(value = "system_users", autoResultMap = true) // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users @TableName(value = "system_users", autoResultMap = true) // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users
@KeySequence("system_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("system_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Builder @Builder

View File

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;
import lombok.experimental.Accessors;
/** /**
* 错误码表 * 错误码表
@@ -16,6 +17,7 @@ import lombok.ToString;
*/ */
@TableName(value = "system_error_code") @TableName(value = "system_error_code")
@KeySequence("system_error_code_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("system_error_code_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)

View File

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Set; import java.util.Set;
@@ -21,6 +22,7 @@ import java.util.Set;
*/ */
@TableName(value = "system_role", autoResultMap = true) @TableName(value = "system_role", autoResultMap = true)
@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class RoleDO extends TenantBaseDO { public class RoleDO extends TenantBaseDO {

View File

@@ -5,6 +5,7 @@ import com.jeelowcode.tool.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*; import lombok.*;
import lombok.experimental.Accessors;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -15,6 +16,7 @@ import java.time.LocalDateTime;
*/ */
@TableName(value = "system_tenant", autoResultMap = true) @TableName(value = "system_tenant", autoResultMap = true)
@KeySequence("system_tenant_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("system_tenant_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/** /**
* 用户和部门关联 * 用户和部门关联
@@ -14,6 +15,7 @@ import lombok.EqualsAndHashCode;
*/ */
@TableName("system_user_dept") @TableName("system_user_dept")
@KeySequence("system_user_dept_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("system_user_dept_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class UserDeptDO extends BaseDO { public class UserDeptDO extends BaseDO {

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/** /**
* 用户和岗位关联 * 用户和岗位关联
@@ -14,6 +15,7 @@ import lombok.EqualsAndHashCode;
*/ */
@TableName("system_user_duty") @TableName("system_user_duty")
@KeySequence("system_user_duty_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("system_user_duty_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class UserDutyDO extends BaseDO { public class UserDutyDO extends BaseDO {

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/** /**
* 用户和职位关联 * 用户和职位关联
@@ -14,6 +15,7 @@ import lombok.EqualsAndHashCode;
*/ */
@TableName("system_user_position") @TableName("system_user_position")
@KeySequence("system_user_position_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("system_user_position_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class UserPositionDO extends BaseDO { public class UserPositionDO extends BaseDO {

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/** /**
* 用户和岗位关联 * 用户和岗位关联
@@ -14,6 +15,7 @@ import lombok.EqualsAndHashCode;
*/ */
@TableName("system_user_post") @TableName("system_user_post")
@KeySequence("system_user_post_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("system_user_post_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class UserPostDO extends BaseDO { public class UserPostDO extends BaseDO {

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/** /**
* 用户和职级关联 * 用户和职级关联
@@ -14,6 +15,7 @@ import lombok.EqualsAndHashCode;
*/ */
@TableName("system_user_rank") @TableName("system_user_rank")
@KeySequence("system_user_rank_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("system_user_rank_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class UserRankDO extends BaseDO { public class UserRankDO extends BaseDO {

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/** /**
* 用户和角色关联 * 用户和角色关联
@@ -14,6 +15,7 @@ import lombok.EqualsAndHashCode;
*/ */
@TableName("system_user_role") @TableName("system_user_role")
@KeySequence("system_user_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @KeySequence("system_user_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Accessors(chain = true)
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class UserRoleDO extends BaseDO { public class UserRoleDO extends BaseDO {