{ "schemaVersion": "1.2", "profileType": "readonly_low_code_metadata_review", "database": { "name": "lserp_AI", "sqlServerMajorVersion": 16, "compatibilityLevel": 100, "compatibilityContract": "fixed_scalar_and_schema_validated_xml_rowsets_in_trusted_erp_process", "userTableCount": 832, "userViewCount": 109, "userProcedureCount": 319, "userTriggerCount": 31, "agentWorkflowObjectsPresent": false, "criticalCatalogContract": { "contractVersion": "1.0", "requirements": [ { "schemaName": "dbo", "objectName": "p_systembilltype", "objectKind": "table", "requiredColumns": ["typeCode", "masterTable", "detailTable", "MasterSql", "DetailSql", "formKey"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "P_systemdlltab", "objectKind": "table", "requiredColumns": ["typeCode", "SQLDT1", "SQL", "formKey"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "p_systembillInfo", "objectKind": "table", "requiredColumns": ["typeCode", "fieldName", "defaultValue"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "p_systembillDetail", "objectKind": "table", "requiredColumns": ["typeCode", "fieldName", "isVisible"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "scm_BillPoMainTab", "objectKind": "table", "requiredColumns": ["scm_mpo_Billdocument_Id", "scm_mpo_handcraftId", "scm_mpo_Providerid", "scm_mpo_Currency", "scm_mpo_ExchangeRate", "scm_mpo_stepover", "scm_mpo_cancelFlag", "scm_mpo_wasteoper", "scm_mpo_ban", "scm_mpo_Groupid", "scm_mpo_Departmentid", "scm_mpo_PurchaseUserId"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "scm_BillPolistTab", "objectKind": "table", "requiredColumns": ["scm_lpo_Billdocument_id", "scm_lpo_id", "scm_lpo_Productid", "scm_lpo_ProductUnitName", "scm_lpo_Amount", "scm_lpo_Fprice", "scm_lpo_taxRate", "scm_lpo_ExchangeRate"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "ACC_billscmInvoicemainPIDHxtab", "objectKind": "table", "requiredColumns": ["acc_mphhscm_billdocument_id", "acc_mphhscm_groupid", "acc_mphhscm_Departmentid", "acc_mphhscm_Providerid", "acc_mphhscm_billtype", "acc_mphhscm_InvoiceType", "acc_mphhscm_SettlementType", "acc_mphhscm_invoice", "acc_mphhscm_summoney", "acc_mphhscm_nosummoney", "acc_mphhscm_taxsummoney", "acc_mphhscm_invoiceDate", "acc_mphhscm_operatorid", "acc_mphhscm_operatedate", "acc_mphhscm_currency", "acc_mphhscm_sign", "acc_mphhscm_Affirmer", "acc_mphhscm_cancelFlag", "acc_mphhscm_wasteoper", "acc_mphhscm_delid"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "ACC_billscmInvoicelistPIDHxtab", "objectKind": "table", "requiredColumns": ["acc_lphhscm_billdocument_id", "acc_lphhscm_productid", "acc_lphhscm_Productunitname", "acc_lphhscm_amount", "acc_lphhscm_price", "acc_lphhscm_summoney", "acc_lphhscm_taxsummoney", "acc_lphhscm_taxRate", "acc_lphhscm_exchangeRate", "acc_lphhscm_ScmPrid", "acc_lphhscm_ScmPoid", "acc_lphhscm_ScmJoinid", "acc_lphhscm_ScmDzid", "acc_lphhscm_sourcebillid", "acc_lphhscm_sourcename"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "ACC_billscmInvoicelistPIDHxtab_temp", "objectKind": "table", "requiredColumns": ["acc_lphhscm_productid", "acc_lphhscm_Productunitname", "acc_lphhscm_amount", "acc_lphhscm_price", "acc_lphhscm_summoney", "acc_lphhscm_taxsummoney", "acc_lphhscm_taxRate", "acc_lphhscm_exchangeRate", "acc_lphhscm_ScmPrid", "acc_lphhscm_ScmPoid", "acc_lphhscm_ScmJoinid", "acc_lphhscm_ScmDzid", "acc_lphhscm_sourcebillid", "acc_lphhscm_sourcename", "sysstr"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "HR_EmpLeaveAloneTab", "objectKind": "table", "requiredColumns": ["hr_ela_id", "hr_ela_no", "hr_ela_empid", "hr_ela_employeename", "hr_ela_depid", "hr_ela_postid", "hr_ela_type", "hr_ela_billtype", "hr_ela_starttime", "hr_ela_finishtime", "hr_ela_totals", "hr_ela_totals1", "hr_ela_Leavebak", "hr_ela_operatorid", "hr_ela_operatorname", "hr_ela_operatedate", "hr_ela_cancelFlag"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "p_employeetab", "objectKind": "table", "requiredColumns": ["employeeid", "EmployeeName", "p_emp_status", "Departmentid", "p_emp_postid"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "p_SubsysPurviewTab", "objectKind": "table", "requiredColumns": ["employeeid", "scmPurview", "accPurview", "hrPurview"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "p_systemdlltabflowtype", "objectKind": "table", "requiredColumns": ["id", "typeCode", "billTypeName", "billflowban"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "p_systemdlltabflowtypestep", "objectKind": "table", "requiredColumns": ["typeCode", "billType", "stepClosed", "autoStep", "comfirmOper"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "p_systemNotification", "objectKind": "table", "requiredColumns": ["stepCode"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "p_baseflowOper", "objectKind": "table", "requiredColumns": ["modid", "keyvalue", "billtype"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "HR_ScheduleTab", "objectKind": "table", "requiredColumns": ["HR_Schedule_billdocument_d", "HR_Schedule_employeeid", "HR_Schedule_Date"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "P_SystemCheckParamTab", "objectKind": "table", "requiredColumns": ["Billdocument_Id", "shichang"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "P_CurrencyType", "objectKind": "table", "requiredColumns": ["id"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "P_BaseMixInfoTab", "objectKind": "table", "requiredColumns": ["ID", "Tag", "Ban", "Delid"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "p_systembillflowtype", "objectKind": "table", "requiredColumns": ["id", "typeCode", "billflowban", "operUser"], "requiredParameters": [] }, { "schemaName": "dbo", "objectName": "P_BillSavePr70", "objectKind": "procedure", "requiredColumns": [], "requiredParameters": ["@Sql", "@billdocument_id", "@tmpstr", "@Operatorid", "@Fbilltagid", "@operateway", "@msg", "@auditFlag", "@comfirmFlag"] }, { "schemaName": "dbo", "objectName": "p_BaseSave70", "objectKind": "procedure", "requiredColumns": [], "requiredParameters": ["@baseSql", "@saveType", "@modid", "@tablename", "@keyfield", "@keyvalue", "@Operatorid", "@operatorName", "@msg", "@comfirmFlag"] }, { "schemaName": "dbo", "objectName": "p_baseApply", "objectKind": "procedure", "requiredColumns": [], "requiredParameters": ["@typeCode", "@billDocumentId", "@Operatorid", "@operatorName", "@comfirmType", "@msg"] } ] } }, "safety": { "source": "system_catalog_and_low_code_configuration_only", "businessRowsRead": false, "storedProceduresExecuted": false, "writesPerformed": false, "runtimeEnabled": false, "requiresCustomerReview": true }, "purchaseTargetSelection": { "selectedModuleCode": "acc_1007", "selectedRole": "purchase_invoice_draft_write_candidate", "selectionState": "selected_but_activation_blocked", "activationAllowed": false, "onlineRevalidationRequiredBeforeActivation": true, "candidatesEvaluated": [ { "moduleCode": "PUR_5001", "moduleKind": "bill", "decision": "source_only", "reasonCode": "purchase_order_source_only" }, { "moduleCode": "acc_1002", "moduleKind": "base", "decision": "rejected", "reasonCode": "base_module_without_purchase_invoice_detail_contract" }, { "moduleCode": "acc_1007", "moduleKind": "bill", "decision": "selected_but_activation_blocked", "reasonCodes": [ "purchase_currency_field_not_configured", "purchase_currency_crosswalk_not_approved", "purchase_row_scope_not_approved", "purchase_compat100_write_contract_not_approved", "purchase_windows_integration_not_verified" ] } ] }, "purchaseActivationBlockers": [ { "code": "purchase_currency_field_not_configured", "status": "open", "resolution": null, "evidence": "acc_mphhscm_currency 是物理列,但 acc_1007 的 p_systembillInfo 没有对应主表控件。" }, { "code": "purchase_currency_crosswalk_not_approved", "status": "open", "resolution": null, "evidence": "采购订单与目标发票使用不同币种字典,候选 1→22、2→23、3→24 尚未由财务/DBA 签字。" }, { "code": "purchase_row_scope_not_approved", "status": "open", "resolution": null, "evidence": "已识别采购订单组织、部门和采购员字段,并补充默认空表、无通配符的精确签字范围契约;客户尚未批准或填充任何账套/子系统/ERP 用户范围。" }, { "code": "purchase_compat100_write_contract_not_approved", "status": "open", "resolution": null, "evidence": "已形成固定标量加受信任 XmlWriter 行集的 NOEXEC 审查草案并在客户库只编译通过;ERP 网关已有受商用证据门禁保护的精确分派,但 SQL 两道审核开关、运行配置和数据库 V2 就绪证据仍关闭。" }, { "code": "purchase_windows_integration_not_verified", "status": "open", "resolution": null, "evidence": "尚未在客户 Windows ERP 进程内完成保存链、回滚、幂等、审计和原生确认验收。" } ], "leaveActivationBlockers": [ { "code": "leave_flow_type_rules_stale", "status": "open", "resolution": null, "evidence": "请假天数联动仍返回已不存在的旧流转配置行 3195-3200;当前有效行是 3629-3634,修复前只能要求用户显式选择候选。" }, { "code": "leave_agent_schema_not_deployed", "status": "open", "resolution": null, "evidence": "客户库尚无只读/写兼容过程、V2 就绪证据表及 Agent 幂等审计对象;当前只存在不落库的审查草案。" }, { "code": "leave_compat100_write_contract_not_approved", "status": "open", "resolution": null, "evidence": "固定强类型草案已补 ERP 用户作用域、hr_4011 编辑权限复核和按幂等键的数据库应用锁,但 DBA 审核开关仍固定关闭。" }, { "code": "leave_windows_integration_not_verified", "status": "open", "resolution": null, "evidence": "尚未在客户 Windows ERP 进程内完成草稿创建、独立二次提交、回滚、重复请求、只读权限拒绝及审计验收。" } ], "menus": [ { "menuId": 187, "caption": "采购订单下达", "moduleCode": "PUR_5001", "dllFileName": "Lskj.PubBill.dll", "subSystemId": 5, "enabled": true }, { "menuId": 2413, "caption": "采购发票登记", "moduleCode": "acc_1002", "dllFileName": "Lskj.PubModule.dll", "subSystemId": 10, "enabled": true }, { "menuId": 18848, "caption": "采购开票核销", "moduleCode": "acc_1007", "dllFileName": "Lskj.PubBill.dll", "subSystemId": 5, "enabled": true }, { "menuId": 16629, "caption": "请假申请管理", "moduleCode": "hr_4011", "dllFileName": "Lskj.PubModuleDetail.dll", "subSystemId": 7, "enabled": true } ], "modules": { "purchaseOrderSource": { "moduleCode": "PUR_5001", "kind": "bill", "masterTable": "scm_BillPoMainTab", "detailTable": "scm_BillPolistTab", "formKey": "89010284-C0C0-4A64-996D-7F0FDB9C83B0", "sourceFields": { "supplierCode": "scm_mpo_Providerid", "currencyCode": "scm_mpo_Currency", "materialCode": "scm_lpo_Productid", "unit": "scm_lpo_ProductUnitName", "quantity": "scm_lpo_Amount", "unitPrice": "scm_lpo_Fprice", "taxRate": "scm_lpo_taxRate", "exchangeRate": "scm_lpo_ExchangeRate", "lineAmount": "scm_lpo_FSummoney", "sourceOrderId": "scm_lpo_Billdocument_id", "sourceOrderNumber": "scm_mpo_handcraftId", "sourceLineId": "scm_lpo_id" } }, "purchaseInvoiceWriteCandidate": { "moduleCode": "acc_1007", "kind": "bill", "caption": "采购发票核销", "masterTable": "ACC_billscmInvoicemainPIDHxtab", "detailTable": "ACC_billscmInvoicelistPIDHxtab", "formKey": "E7CF6797-E68F-4922-925D-B2BD6165B249", "requiredMatchOptions": { "lineAmountMode": 2, "unitPriceBasis": "purchase_order_original_currency_tax_inclusive", "mixedExchangeRatesAllowed": false }, "compatibilityWriteCandidate": { "procedure": "p_lserp_agent_workflow_write_purchase_compat100", "status": "inert_review_draft", "inputContract": "fixed_scalars_and_schema_validated_xml_rowsets", "legacySaveChain": "P_BillSavePr70_to_P_BillSavePr70_3", "creates": "unsubmitted_draft_only", "rowScopeContract": "exact_signed_account_subsystem_erp_user_group_department_purchase_user_tuple", "gatewayRoute": "implemented_fail_closed_by_commercial_readiness_and_signed_acceptance", "runtimeRegistered": false }, "fieldMap": { "supplierCode": "acc_mphhscm_Providerid", "invoiceNumber": "acc_mphhscm_invoice", "invoiceDate": "acc_mphhscm_invoiceDate", "currencyCode": "acc_mphhscm_currency", "materialCode": "acc_lphhscm_productid", "unit": "acc_lphhscm_Productunitname", "quantity": "acc_lphhscm_amount", "unitPrice": "acc_lphhscm_price", "taxRate": "acc_lphhscm_taxRate", "exchangeRate": "acc_lphhscm_exchangeRate", "lineAmount": "acc_lphhscm_summoney", "sourceOrderId": "acc_lphhscm_sourcebillid", "sourceLineId": "acc_lphhscm_ScmPoid" }, "reviewFindings": [ "主表物理列 acc_mphhscm_currency 存在,但 p_systembillInfo 未为 acc_1007 暴露该主表控件;字段门禁必须失败关闭。", "采购订单 scm_mpo_Currency 使用 P_CurrencyType.id(当前只读证据为 1/2/3),目标发票币种使用 P_BaseMixInfoTab Tag=L000101(当前只读证据为 22/23/24);1→22、2→23、3→24 只能作为待签字候选映射。", "resolve_currency 只通过有效签字映射返回采购订单使用的来源币种 ID;来源字典 ID/代码/名称与发票目标字典 ID/编号/名称均为精确匹配,未审批映射固定失败关闭。", "Proc_GetScmMainBillInfo 与 Scm_ScminvoiceMoneyView 均证明 acc_lphhscm_ScmPoid 对应 scm_lpo_id;acc_lphhscm_ScmPrid 标注为申请id,不得当成采购订单明细。", "acc_1007 的 p_systembillsource 未配置采购订单,但现有流程过程和视图已给出来源行语义;open_sources 只读草案可供 DBA 审核,全部激活门禁完成前采购写入仍不得注册。", "采购订单低代码配置明确暴露组织 scm_mpo_Groupid、部门 scm_mpo_Departmentid 和采购员 scm_mpo_PurchaseUserId;兼容草案要求三者与当前账套、子系统、ERP 用户组成一个有效期内且带签字哈希的精确范围元组,不支持 NULL 或通配符,空表默认拒绝。", "acc_1007 明细公式使用 amount*price 作为含税金额,正式匹配必须配置 lineAmountMode=2(TaxInclusive)。", "WinForm 的 GetAddRecord/GetDetailRecord/BillSave 会先把明细写入 ACC_billscmInvoicelistPIDHxtab_temp,再由 P_BillSavePr70 路由到 P_BillSavePr70_3;正式包装不得绕开这条保存链直接插入最终主从表。", "P_BillSavePr70_3 会生成正式单号、迁移临时明细、写 ERP 日志并调用 eventType=1 业务处理;acc_1007 的当前保存事件没有额外配置逻辑,eventType=98/99 属于后续流转,所以 Agent 创建只能停在未提交草稿。", "临时明细表的数量、单价、税率和汇率均为 decimal(18,2),兼容写候选因此拒绝超过两位小数的值,避免保存链静默舍入后破坏来源快照。", "acc_1007 当前唯一可用流转类别是 p_systembillflowtype.id=4869,且只向其 operUser 中的操作员开放;包装过程必须在保存前重新校验。" ] }, "purchaseInvoiceRegistrationMenu": { "moduleCode": "acc_1002", "kind": "base", "table": "ACC_billscminvoicemaintab", "formKey": "BAE677C9-18DE-4257-8E83-C4D88B33371D", "use": "navigation_or_read_only_diagnosis_only", "reason": "该菜单是基础档案型发票登记,当前没有采购明细字段,不能替代 acc_1007 的主从单据写入契约。" }, "leave": { "moduleCode": "hr_4011", "kind": "base", "table": "HR_EmpLeaveAloneTab", "formKey": "65C24153-A824-40E8-B8D9-CD817E448DEF", "compatibilityWriteCandidate": { "procedure": "p_lserp_agent_workflow_write_leave_compat100", "status": "inert_review_draft", "inputContract": "fixed_typed_scalars", "legacyCreateChain": "p_BaseSave70", "legacySubmitChain": "p_baseApply", "menuPermission": "edit_token_16629_only", "approvalSchemaColumnsPresent": true, "gatewayRoute": "implemented_fail_closed_by_commercial_readiness_and_signed_acceptance", "runtimeRegistered": false }, "fieldMap": { "employeeId": "hr_ela_empid", "leaveTypeCode": "hr_ela_type", "flowTypeCode": "hr_ela_billtype", "startLocal": "hr_ela_starttime", "endLocal": "hr_ela_finishtime", "requestedHours": "hr_ela_totals", "reason": "hr_ela_Leavebak" }, "derivedWriteFields": { "employeeName": "hr_ela_employeename", "departmentId": "hr_ela_depid", "postId": "hr_ela_postid", "calculatedDays": "hr_ela_totals1", "operatorId": "hr_ela_operatorid", "operatorName": "hr_ela_operatorname", "operateDate": "hr_ela_operatedate" }, "flowTypeLookup": { "candidateCode": "p_systemdlltabflowtype.id", "candidateName": "p_systemdlltabflowtype.billTypeName", "stepJoin": "p_systemdlltabflowtypestep.billType = CONVERT(varchar(10), p_systemdlltabflowtype.id)" }, "reviewFindings": [ "流转类别控件以配置行 id 为保存值;p_systemdlltabflowtype.billType 存在重复值,不能作为 Agent 候选编码。", "请假天数联动配置仍返回已不存在的旧流转 id 3195-3200,而当前有效配置 id 为 3629-3634;正式修复前必须显式选择流转类别,禁止自动推断。", "审批步骤会引用 hr_ela_depid;Agent 写过程必须从请假人员主数据重新派生并保存部门、岗位和姓名快照。", "p_BaseSave70_3 的成功路径会产生多个旧调试结果集;ERP 网关必须忽略这些输出,并且只接受列集合完全匹配固定 BusinessWriteResult 的唯一结果集。", "p_SubsysPurviewTab.hrPurview 是 hr_4011 的权限来源;16629| 仅为只读,兼容写草案只接受完整编辑标记 16629,并在确认后、保存前再次复核。", "p_systemdlltabflowtypestep.autoStep/comfirmOper 与 p_systemNotification.stepCode 当前物理列均存在,提交草案仍会在每次调用前复核,禁止触发 p_baseApply 的旧自迁移分支。" ], "workflowDependencies": [ "p_employeetab", "P_EmployeePostTab", "P_DepartmentTab", "p_systemdlltabflow", "p_systemdlltabflowtype", "p_systemdlltabflowtypestep", "p_baseflowOper" ] } } }