1.0.574.sql 5.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. -- 1.0.574 开通 S1–S4 / C-4 推送实体与授权。
  2. -- 只新增登记。不删除行,不改已有实体的来源、蛇形贴源表和游标,不改 mdp_tenant_std_source。
  3. -- 唯一的既有行改动:把报工实体的 Pascal 列改成与蛇形列一致。
  4. -- 模板取现有 S5_INVENTORY_TXN 的最早一行;没有模板则本脚本不插入,避免造出一个没有来源的实体。
  5. INSERT INTO mdp_entity (
  6. `tenant_id`, `source_id`, `entity_code`, `entity_name`, `entity_type`, `source_table_name`, `source_api_path`, `api_config_id`, `target_table_name`,
  7. `sync_mode`, `incr_column`, `batch_size`, `response_data_path`, `dedup_key_path`, `last_cursor`, `last_sync_to`, `job_id`, `status`, `remark`, `create_time`, `update_time`,
  8. `TenantId`, `SourceId`, `EntityCode`, `EntityName`, `EntityType`, `SourceTableName`, `SourceApiPath`, `ApiConfigId`, `TargetTableName`,
  9. `SyncMode`, `IncrColumn`, `BatchSize`, `ResponseDataPath`, `DedupKeyPath`, `LastCursor`,
  10. `biz_key_expr`, `file_config_json`, `is_public_template`, `inbound_enabled`, `inbound_max_rows`, `stale_guard_enabled`, `silence_calendar`, `silence_alert_hours`)
  11. SELECT
  12. src.tenant_id, src.source_id, d.entity_code, d.entity_name, src.entity_type, d.entity_code, src.source_api_path, src.api_config_id, d.target_table,
  13. src.sync_mode, src.incr_column, src.batch_size, src.response_data_path, src.dedup_key_path, NULL, NULL, NULL, 1, d.remark, NOW(), NOW(),
  14. src.TenantId, src.SourceId, d.entity_code, d.entity_name, src.EntityType, d.entity_code, src.SourceApiPath, src.ApiConfigId, d.target_table,
  15. src.SyncMode, src.IncrColumn, src.BatchSize, src.ResponseDataPath, src.DedupKeyPath, NULL,
  16. d.biz_key, src.file_config_json, src.is_public_template, 1, 500, 1, NULL, NULL
  17. FROM (
  18. SELECT * FROM (
  19. SELECT * FROM mdp_entity WHERE entity_code='S5_INVENTORY_TXN' ORDER BY id LIMIT 1
  20. ) tmpl
  21. ) src
  22. JOIN (
  23. SELECT 'S2_WORK_ORDER_SCHEDULE' AS entity_code, '排程工单' AS entity_name, 'mdp_stg_schedule' AS target_table, 'WorkOrder,ItemCode' AS biz_key, '推送契约,不改既有来源登记' AS remark
  24. UNION ALL SELECT 'S3_PURCHASE_ORDER', '采购订单', 'mdp_stg_purchase_order', 'PoNo,PoLine', '推送契约,不改既有来源登记'
  25. UNION ALL SELECT 'S3_PURCHASE_RECEIPT', '采购收货', 'mdp_stg_purchase_receipt', 'Domain,Receiver,Line', '推送契约,不改既有来源登记'
  26. UNION ALL SELECT 'S4_SHIPMENT', '供应商发货', 'mdp_stg_s4_shipment', 'ShipmentNo', '推送契约,不改既有来源登记'
  27. UNION ALL SELECT 'S4_IQC', '来料检验', 'mdp_stg_s4_iqc', 'PoNo,PoLine,ItemCode', '推送契约,不改既有来源登记'
  28. UNION ALL SELECT 'S4_RETURN', '采购退货', 'mdp_stg_s4_return', 'PoNo,PoLine,ItemCode', '推送契约,不改既有来源登记'
  29. UNION ALL SELECT 'S4_SHORTAGE', '缺料', 'mdp_stg_s4_shortage', 'WorkOrder,ItemCode', '推送契约,不改既有来源登记'
  30. UNION ALL SELECT 'S6_WORK_ORDER_LINE', '生产工单行', 'mdp_stg_wo_line', 'Domain,OrderNo', '推送契约,不改既有来源登记'
  31. UNION ALL SELECT 'S7_SALES_ORDER_LINE', '销售订单行', 'mdp_stg_wo_line', 'Domain,OrderNo,LineNo', '推送契约,不改既有来源登记'
  32. UNION ALL SELECT 'S5_WORK_ORDER_BOM', '工单用料', 'mdp_stg_wo_bom', 'Domain,OrderNo,ItemCode', '推送契约,不改既有来源登记'
  33. UNION ALL SELECT 'S6_REPORT_TXN', '报工', 'mdp_stg_s6_report', 'Domain,ReportId', '推送契约,不改既有来源登记'
  34. UNION ALL SELECT 'S7_FQC_TASK_TXN', 'FQC任务', 'mdp_stg_fqc_pull', 'BillNo', '推送契约,不改既有来源登记'
  35. UNION ALL SELECT 'S5_INVENTORY_BALANCE_MONTHLY', '月度库存金额', 'mdp_stg_inv_bal_monthly', 'PeriodYm,ItemCode', '推送契约,不改既有来源登记'
  36. ) d
  37. WHERE NOT EXISTS (SELECT 1 FROM mdp_entity e WHERE e.entity_code = d.entity_code);
  38. INSERT INTO mdp_inbound_grant
  39. (tenant_id, access_key, entity_code, factory_id, source_code, rate_limit_per_min, batch_row_limit, status, remark, create_time, update_time)
  40. SELECT g.tenant_id, g.access_key, d.entity_code, g.factory_id, g.source_code, g.rate_limit_per_min, g.batch_row_limit, 1, '沿用已有入站密钥', NOW(), NOW()
  41. FROM mdp_inbound_grant g
  42. JOIN (
  43. SELECT 'S2_WORK_ORDER_SCHEDULE' AS entity_code
  44. UNION ALL SELECT 'S3_PURCHASE_ORDER'
  45. UNION ALL SELECT 'S3_PURCHASE_RECEIPT'
  46. UNION ALL SELECT 'S4_SHIPMENT'
  47. UNION ALL SELECT 'S4_IQC'
  48. UNION ALL SELECT 'S4_RETURN'
  49. UNION ALL SELECT 'S4_SHORTAGE'
  50. UNION ALL SELECT 'S6_WORK_ORDER_LINE'
  51. UNION ALL SELECT 'S7_SALES_ORDER_LINE'
  52. UNION ALL SELECT 'S5_WORK_ORDER_BOM'
  53. UNION ALL SELECT 'S6_REPORT_TXN'
  54. UNION ALL SELECT 'S7_FQC_TASK_TXN'
  55. UNION ALL SELECT 'S5_INVENTORY_BALANCE_MONTHLY'
  56. ) d
  57. WHERE g.entity_code='S5_INVENTORY_TXN' AND g.status=1
  58. AND NOT EXISTS (
  59. SELECT 1 FROM mdp_inbound_grant x
  60. WHERE x.access_key=g.access_key AND x.entity_code=d.entity_code);
  61. UPDATE mdp_entity
  62. SET inbound_enabled=1, update_time=NOW()
  63. WHERE entity_code IN ('MDM_CUSTOMER', 'MDM_SUPPLIER', 'MDM_LOCATION')
  64. AND inbound_enabled=0;
  65. UPDATE mdp_entity
  66. SET EntityCode = entity_code,
  67. EntityName = entity_name,
  68. SourceTableName = source_table_name,
  69. TargetTableName = target_table_name,
  70. update_time = NOW()
  71. WHERE entity_code = 'S6_EMP_WORK_ORD_TRANS_SQLSERVER'
  72. AND (
  73. IFNULL(EntityCode, '') <> entity_code
  74. OR IFNULL(SourceTableName, '') <> IFNULL(source_table_name, '')
  75. OR IFNULL(TargetTableName, '') <> IFNULL(target_table_name, '')
  76. );