inventory.sql 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. -- 设备商品库存表
  2. CREATE TABLE IF NOT EXISTS `t_device_inventory` (
  3. `id` BIGINT NOT NULL COMMENT '主键ID(雪花算法生成)',
  4. `device_id` VARCHAR(50) NOT NULL COMMENT '设备ID(SN号)',
  5. `product_id` BIGINT NOT NULL COMMENT '商品ID(本地)',
  6. `product_code` VARCHAR(50) DEFAULT NULL COMMENT '商品编码(哈哈平台code)',
  7. `product_name` VARCHAR(200) DEFAULT NULL COMMENT '商品名称(冗余)',
  8. `stock` INT NOT NULL DEFAULT 0 COMMENT '当前库存数量',
  9. `shelf_num` INT DEFAULT NULL COMMENT '所在货架层号',
  10. `position` VARCHAR(20) DEFAULT NULL COMMENT '货道位置(left/right)',
  11. `warning_threshold` INT DEFAULT 5 COMMENT '库存预警阈值',
  12. `last_restock_time` DATETIME DEFAULT NULL COMMENT '最后补货时间',
  13. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  14. `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  15. `version` INT DEFAULT 0 COMMENT '乐观锁版本号',
  16. PRIMARY KEY (`id`),
  17. UNIQUE KEY `uk_device_product` (`device_id`, `product_id`),
  18. INDEX `idx_device_id` (`device_id`),
  19. INDEX `idx_product_id` (`product_id`),
  20. INDEX `idx_stock` (`stock`)
  21. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='设备商品库存表';
  22. -- 库存变动日志表
  23. CREATE TABLE IF NOT EXISTS `t_inventory_log` (
  24. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  25. `device_id` VARCHAR(50) NOT NULL COMMENT '设备ID',
  26. `product_id` BIGINT NOT NULL COMMENT '商品ID',
  27. `product_code` VARCHAR(50) DEFAULT NULL COMMENT '商品编码',
  28. `product_name` VARCHAR(200) DEFAULT NULL COMMENT '商品名称',
  29. `change_type` TINYINT NOT NULL COMMENT '变动类型:1上货增加,2销售减少,3调整增加,4调整减少,5盘点调整',
  30. `change_quantity` INT NOT NULL COMMENT '变动数量(正数增加,负数减少)',
  31. `before_stock` INT NOT NULL COMMENT '变动前库存',
  32. `after_stock` INT NOT NULL COMMENT '变动后库存',
  33. `order_id` VARCHAR(50) DEFAULT NULL COMMENT '关联订单号(销售时)',
  34. `activity_id` VARCHAR(50) DEFAULT NULL COMMENT '关联活动号',
  35. `operator_id` BIGINT DEFAULT NULL COMMENT '操作人ID',
  36. `operator_name` VARCHAR(100) DEFAULT NULL COMMENT '操作人名称',
  37. `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
  38. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  39. PRIMARY KEY (`id`),
  40. INDEX `idx_device_id` (`device_id`),
  41. INDEX `idx_product_id` (`product_id`),
  42. INDEX `idx_change_type` (`change_type`),
  43. INDEX `idx_create_time` (`create_time`),
  44. INDEX `idx_order_id` (`order_id`)
  45. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='库存变动日志表';
  46. -- 上货记录表
  47. CREATE TABLE IF NOT EXISTS `t_stock_record` (
  48. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  49. `device_id` VARCHAR(50) NOT NULL COMMENT '设备ID',
  50. `activity_id` VARCHAR(50) DEFAULT NULL COMMENT '哈哈平台活动号',
  51. `stock_type` TINYINT DEFAULT 1 COMMENT '类型:1上货,2补货',
  52. `stocker_id` BIGINT DEFAULT NULL COMMENT '上货员ID',
  53. `stocker_name` VARCHAR(100) DEFAULT NULL COMMENT '上货员名称',
  54. `stocker_phone` VARCHAR(20) DEFAULT NULL COMMENT '上货员电话',
  55. `total_items` INT DEFAULT 0 COMMENT '上货商品种类数',
  56. `total_quantity` INT DEFAULT 0 COMMENT '上货总数量',
  57. `status` TINYINT DEFAULT 1 COMMENT '状态:1进行中,2已完成,3已取消',
  58. `start_time` DATETIME DEFAULT NULL COMMENT '开始时间',
  59. `end_time` DATETIME DEFAULT NULL COMMENT '结束时间',
  60. `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
  61. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  62. `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  63. PRIMARY KEY (`id`),
  64. INDEX `idx_device_id` (`device_id`),
  65. INDEX `idx_stocker_id` (`stocker_id`),
  66. INDEX `idx_create_time` (`create_time`),
  67. INDEX `idx_activity_id` (`activity_id`)
  68. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='上货记录表';
  69. -- 上货记录明细表
  70. CREATE TABLE IF NOT EXISTS `t_stock_record_item` (
  71. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  72. `record_id` BIGINT NOT NULL COMMENT '上货记录ID',
  73. `device_id` VARCHAR(50) NOT NULL COMMENT '设备ID',
  74. `product_id` BIGINT NOT NULL COMMENT '商品ID',
  75. `product_code` VARCHAR(50) DEFAULT NULL COMMENT '商品编码',
  76. `product_name` VARCHAR(200) DEFAULT NULL COMMENT '商品名称',
  77. `shelf_num` INT DEFAULT NULL COMMENT '货架层号',
  78. `quantity` INT NOT NULL COMMENT '上货数量',
  79. `before_stock` INT DEFAULT 0 COMMENT '上货前库存',
  80. `after_stock` INT DEFAULT 0 COMMENT '上货后库存',
  81. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  82. PRIMARY KEY (`id`),
  83. INDEX `idx_record_id` (`record_id`),
  84. INDEX `idx_device_product` (`device_id`, `product_id`)
  85. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='上货记录明细表';
  86. -- 上货员表
  87. CREATE TABLE IF NOT EXISTS `t_stocker` (
  88. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  89. `name` VARCHAR(100) NOT NULL COMMENT '姓名',
  90. `phone` VARCHAR(20) DEFAULT NULL COMMENT '电话',
  91. `employee_id` VARCHAR(50) DEFAULT NULL COMMENT '工号',
  92. `status` TINYINT DEFAULT 1 COMMENT '状态:1启用,0禁用',
  93. `total_tasks` INT DEFAULT 0 COMMENT '累计任务数',
  94. `last_task_time` DATETIME DEFAULT NULL COMMENT '最后任务时间',
  95. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  96. `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  97. PRIMARY KEY (`id`),
  98. INDEX `idx_phone` (`phone`),
  99. INDEX `idx_status` (`status`)
  100. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='上货员表';
  101. -- ==================== 补货员新表(v2 独立账号体系) ====================
  102. -- 补货员表(替代 t_stocker,独立账号体系)
  103. CREATE TABLE IF NOT EXISTS `t_replenisher` (
  104. `id` BIGINT NOT NULL COMMENT '雪花主键',
  105. `name` VARCHAR(50) NOT NULL COMMENT '姓名',
  106. `phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号',
  107. `employee_id` VARCHAR(50) DEFAULT NULL COMMENT '工号',
  108. `wechat_openid` VARCHAR(100) DEFAULT NULL COMMENT '微信OpenID(扫码绑定时回填)',
  109. `avatar` VARCHAR(500) DEFAULT NULL COMMENT '头像',
  110. `status` TINYINT DEFAULT 1 COMMENT '状态:1-启用 0-禁用',
  111. `total_tasks` INT DEFAULT 0 COMMENT '累计任务数',
  112. `last_task_time` DATETIME DEFAULT NULL COMMENT '最后任务时间',
  113. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  114. `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  115. PRIMARY KEY (`id`),
  116. INDEX `idx_phone` (`phone`),
  117. INDEX `idx_status` (`status`),
  118. INDEX `idx_wechat_openid` (`wechat_openid`)
  119. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='补货员表';
  120. -- 补货员-设备关联表
  121. CREATE TABLE IF NOT EXISTS `t_replenisher_device` (
  122. `id` BIGINT NOT NULL COMMENT '雪花主键',
  123. `replenisher_id` BIGINT NOT NULL COMMENT '补货员ID',
  124. `device_id` VARCHAR(50) NOT NULL COMMENT '设备SN号',
  125. `source` VARCHAR(20) DEFAULT 'MANUAL' COMMENT '绑定来源:MANUAL-手动,QR-扫码绑定,SHOP_INHERIT-门店继承',
  126. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  127. PRIMARY KEY (`id`),
  128. UNIQUE KEY `uk_replenisher_device` (`replenisher_id`, `device_id`),
  129. INDEX `idx_device_id` (`device_id`),
  130. INDEX `idx_replenisher_id` (`replenisher_id`)
  131. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='补货员-设备关联表';