智慧水务管理系统 - 精河县供水工程综合管理平台

V2__command_lifecycle.sql 3.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. -- V2: 调度指令全生命周期管理
  2. -- 新增/重建表,支持 创建→下发→接收确认→执行反馈→完成归档 全流程
  3. -- 1. 调度指令主表(增强)
  4. CREATE TABLE IF NOT EXISTS disp_dispatch_command (
  5. id BIGSERIAL PRIMARY KEY,
  6. command_no VARCHAR(64) NOT NULL UNIQUE,
  7. title VARCHAR(200) NOT NULL,
  8. content TEXT,
  9. command_type VARCHAR(30) NOT NULL DEFAULT 'NORMAL', -- NORMAL / EMERGENCY / MAINTENANCE
  10. priority VARCHAR(20) NOT NULL DEFAULT 'MEDIUM', -- LOW / MEDIUM / HIGH / URGENT
  11. status VARCHAR(30) NOT NULL DEFAULT 'DRAFT', -- DRAFT / ISSUED / RECEIVED / EXECUTING / COMPLETED / REJECTED / CANCELLED
  12. issuer_id BIGINT,
  13. issuer_name VARCHAR(64),
  14. receiver_id BIGINT,
  15. receiver_name VARCHAR(64),
  16. facility_id BIGINT,
  17. deadline TIMESTAMP,
  18. issued_at TIMESTAMP,
  19. received_at TIMESTAMP,
  20. executed_at TIMESTAMP,
  21. completed_at TIMESTAMP,
  22. rejected_at TIMESTAMP,
  23. reject_reason TEXT,
  24. execute_result TEXT,
  25. remark TEXT,
  26. deleted INT DEFAULT 0,
  27. created_at TIMESTAMP DEFAULT NOW(),
  28. updated_at TIMESTAMP DEFAULT NOW()
  29. );
  30. CREATE INDEX idx_cmd_status ON disp_dispatch_command(status);
  31. CREATE INDEX idx_cmd_type ON disp_dispatch_command(command_type);
  32. CREATE INDEX idx_cmd_priority ON disp_dispatch_command(priority);
  33. CREATE INDEX idx_cmd_issuer ON disp_dispatch_command(issuer_id);
  34. CREATE INDEX idx_cmd_receiver ON disp_dispatch_command(receiver_id);
  35. CREATE INDEX idx_cmd_deadline ON disp_dispatch_command(deadline);
  36. CREATE INDEX idx_cmd_created_at ON disp_dispatch_command(created_at);
  37. -- 2. 执行记录表
  38. CREATE TABLE IF NOT EXISTS disp_command_execution_record (
  39. id BIGSERIAL PRIMARY KEY,
  40. command_id BIGINT NOT NULL,
  41. command_no VARCHAR(64),
  42. executor_id BIGINT NOT NULL,
  43. executor_name VARCHAR(64),
  44. action VARCHAR(30) NOT NULL, -- RECEIVE / START / PROGRESS / COMPLETE / REJECT
  45. description TEXT,
  46. attachments TEXT, -- JSON array of file URLs
  47. progress INT DEFAULT 0, -- 0-100
  48. created_at TIMESTAMP DEFAULT NOW()
  49. );
  50. CREATE INDEX idx_exec_cmd_id ON disp_command_execution_record(command_id);
  51. CREATE INDEX idx_exec_cmd_no ON disp_command_execution_record(command_no);
  52. -- 3. 过程追踪表(时间线)
  53. CREATE TABLE IF NOT EXISTS disp_command_tracking (
  54. id BIGSERIAL PRIMARY KEY,
  55. command_id BIGINT NOT NULL,
  56. command_no VARCHAR(64),
  57. stage VARCHAR(30) NOT NULL, -- CREATED / ISSUED / RECEIVED / EXECUTING / COMPLETED / REJECTED / CANCELLED
  58. operator_id BIGINT,
  59. operator_name VARCHAR(64),
  60. action_desc VARCHAR(500),
  61. from_status VARCHAR(30),
  62. to_status VARCHAR(30),
  63. created_at TIMESTAMP DEFAULT NOW()
  64. );
  65. CREATE INDEX idx_track_cmd_id ON disp_command_tracking(command_id);
  66. CREATE INDEX idx_track_cmd_no ON disp_command_tracking(command_no);
  67. CREATE INDEX idx_track_stage ON disp_command_tracking(stage);