pl_tables.sql 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873
  1. -- =============================================================================
  2. -- 运输计划管理模块 DDL
  3. -- 生成时间: 2026-06-11
  4. -- 说明: pl_ 前缀,所有计划相关表
  5. -- =============================================================================
  6. SET NAMES utf8mb4;
  7. SET FOREIGN_KEY_CHECKS = 0;
  8. -- -----------------------------------------------------------------------------
  9. -- 1. 基础数据:承运商、车辆、人员、证书
  10. -- -----------------------------------------------------------------------------
  11. -- ----------------------------
  12. -- Table structure for pl_carrier (承运商表)
  13. -- ----------------------------
  14. DROP TABLE IF EXISTS `pl_carrier`;
  15. CREATE TABLE `pl_carrier` (
  16. `id` varchar(64) NOT NULL COMMENT '主键ID',
  17. `carrier_name` varchar(200) NOT NULL COMMENT '承运商名称',
  18. `contact_name` varchar(100) DEFAULT NULL COMMENT '联系人',
  19. `contact_phone` varchar(32) DEFAULT NULL COMMENT '联系电话',
  20. `status` char(1) NOT NULL DEFAULT '1' COMMENT '合作状态 1-合作中 0-已终止',
  21. `business_license_urls` varchar(2000) DEFAULT NULL COMMENT '营业执照附件URL,逗号分隔',
  22. `road_transport_license_urls` varchar(2000) DEFAULT NULL COMMENT '道路经营许可证附件URL,逗号分隔',
  23. `transport_agreement_urls` varchar(2000) DEFAULT NULL COMMENT '运输协议附件URL,逗号分隔',
  24. `transport_agreement_expire_date` date DEFAULT NULL COMMENT '运输协议有效期',
  25. `audit_status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '审核状态 pending-待审核 approved-已通过 rejected-已驳回',
  26. `audit_by` varchar(64) DEFAULT NULL COMMENT '审核人id',
  27. `audit_time` datetime DEFAULT NULL COMMENT '审核时间',
  28. `audit_remark` varchar(512) DEFAULT NULL COMMENT '审核备注(驳回原因等)',
  29. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  30. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  31. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  32. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  33. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  34. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  35. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  36. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  37. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  38. PRIMARY KEY (`id`),
  39. KEY `idx_tenant` (`tenant_no`),
  40. KEY `idx_status` (`status`)
  41. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='承运商表';
  42. -- ----------------------------
  43. -- Table structure for pl_vehicle (车辆表)
  44. -- ----------------------------
  45. DROP TABLE IF EXISTS `pl_vehicle`;
  46. CREATE TABLE `pl_vehicle` (
  47. `id` varchar(64) NOT NULL COMMENT '主键ID',
  48. `vehicle_type` varchar(20) NOT NULL COMMENT '车辆类型 self-自有 carrier-承运商',
  49. `carrier_id` varchar(64) DEFAULT NULL COMMENT '承运商ID(类型为承运商时必填)',
  50. `carrier_name` varchar(200) DEFAULT NULL COMMENT '承运商名称(冗余)',
  51. `license_plate` varchar(20) NOT NULL COMMENT '车牌号',
  52. `load_capacity` decimal(10,2) DEFAULT NULL COMMENT '载重(吨)',
  53. `vehicle_status` varchar(20) NOT NULL DEFAULT 'available' COMMENT '车辆状态 available-可用 maintaining-维修中 scrapped-报废',
  54. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  55. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  56. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  57. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  58. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  59. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  60. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  61. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  62. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  63. PRIMARY KEY (`id`),
  64. UNIQUE KEY `uk_license_plate` (`license_plate`),
  65. KEY `idx_tenant` (`tenant_no`),
  66. KEY `idx_vehicle_type` (`vehicle_type`),
  67. KEY `idx_carrier_id` (`carrier_id`)
  68. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆表';
  69. -- ----------------------------
  70. -- Table structure for pl_personnel (人员表)
  71. -- ----------------------------
  72. DROP TABLE IF EXISTS `pl_personnel`;
  73. CREATE TABLE `pl_personnel` (
  74. `id` varchar(64) NOT NULL COMMENT '主键ID',
  75. `personnel_name` varchar(100) NOT NULL COMMENT '姓名',
  76. `phone_no` varchar(32) DEFAULT NULL COMMENT '手机号(非必填)',
  77. `age` int(11) DEFAULT NULL COMMENT '年龄',
  78. `id_card_no` varchar(32) DEFAULT NULL COMMENT '身份证号',
  79. `personnel_type` varchar(20) NOT NULL DEFAULT 'both' COMMENT '人员类型 driver-驾驶员 escort-押运员 both-驾驶员兼押运员',
  80. `personnel_affiliation` varchar(20) NOT NULL DEFAULT 'self' COMMENT '人员归属 self-山峡 carrier-非山峡',
  81. `status` char(1) NOT NULL DEFAULT '1' COMMENT '状态 1-在职 0-停用',
  82. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  83. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  84. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  85. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  86. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  87. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  88. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  89. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  90. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  91. PRIMARY KEY (`id`),
  92. KEY `idx_tenant` (`tenant_no`),
  93. KEY `idx_phone` (`phone_no`),
  94. KEY `idx_personnel_name` (`personnel_name`)
  95. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-人员表';
  96. -- ----------------------------
  97. -- Table structure for pl_cert (证书表)
  98. -- ----------------------------
  99. DROP TABLE IF EXISTS `pl_cert`;
  100. CREATE TABLE `pl_cert` (
  101. `id` varchar(64) NOT NULL COMMENT '主键ID',
  102. `owner_type` varchar(20) NOT NULL COMMENT '归属类型 vehicle-车辆 personnel-人员',
  103. `owner_id` varchar(64) NOT NULL COMMENT '归属主体ID',
  104. `vehicle_part` varchar(20) DEFAULT NULL COMMENT '车辆部位 head-主车 trailer-挂车,人员证书为空',
  105. `cert_name` varchar(100) NOT NULL COMMENT '证书名称',
  106. `cert_no` varchar(64) DEFAULT NULL COMMENT '证号',
  107. `expire_date` date DEFAULT NULL COMMENT '有效期',
  108. `remind_days` int(11) NOT NULL DEFAULT 30 COMMENT '提前提醒天数',
  109. `attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL(逗号分隔)',
  110. `status` varchar(20) NOT NULL DEFAULT 'valid' COMMENT '状态 valid-有效 expired-已过期 revoked-已作废',
  111. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  112. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  113. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  114. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  115. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  116. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  117. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  118. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  119. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  120. PRIMARY KEY (`id`),
  121. KEY `idx_tenant` (`tenant_no`),
  122. KEY `idx_owner` (`owner_type`, `owner_id`),
  123. KEY `idx_expire_date` (`expire_date`)
  124. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-证书表';
  125. -- ----------------------------
  126. -- Table structure for pl_vehicle_personnel (车辆-人员关联表)
  127. -- ----------------------------
  128. DROP TABLE IF EXISTS `pl_vehicle_personnel`;
  129. CREATE TABLE `pl_vehicle_personnel` (
  130. `id` varchar(64) NOT NULL COMMENT '主键ID',
  131. `vehicle_id` varchar(64) NOT NULL COMMENT '车辆ID',
  132. `personnel_id` varchar(64) NOT NULL COMMENT '人员ID',
  133. `role` varchar(20) NOT NULL DEFAULT 'driver' COMMENT '角色 driver-司机 escort-押运员',
  134. `is_default` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否默认司机 0-否 1-是',
  135. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  136. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  137. `remark` varchar(512) DEFAULT NULL COMMENT '关联备注',
  138. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  139. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  140. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  141. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  142. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  143. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  144. PRIMARY KEY (`id`),
  145. KEY `idx_vehicle_id` (`vehicle_id`),
  146. KEY `idx_personnel_id` (`personnel_id`),
  147. KEY `idx_tenant` (`tenant_no`),
  148. KEY `idx_vehicle_role` (`vehicle_id`, `role`)
  149. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆-人员关联表';
  150. -- -----------------------------------------------------------------------------
  151. -- 2. 计划管理:计划主表、产品明细、变更记录
  152. -- -----------------------------------------------------------------------------
  153. -- ----------------------------
  154. -- Table structure for pl_plan (计划主表)
  155. -- ----------------------------
  156. DROP TABLE IF EXISTS `pl_plan`;
  157. CREATE TABLE `pl_plan` (
  158. `id` varchar(64) NOT NULL COMMENT '主键ID',
  159. `plan_no` varchar(32) NOT NULL COMMENT '计划订单编号 SXDDHYYYYMMDD######',
  160. `plan_date` date NOT NULL COMMENT '计划日期',
  161. `belongs_company` varchar(20) NOT NULL COMMENT '归属公司 shanxia-安庆山峡 yundong-安徽云栋',
  162. `plan_type` varchar(20) NOT NULL COMMENT '单据类型 direct-直销单 inbound-入库单 outbound-出库单',
  163. `follow_status` varchar(30) NOT NULL DEFAULT 'draft' COMMENT '跟进状态',
  164. `transport_status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '运输安排状态 pending-待安排 arranged-已安排',
  165. `archive_status` varchar(20) NOT NULL DEFAULT 'unarchived' COMMENT '归档状态 unarchived-未归档 archived-已归档',
  166. `complete_status` varchar(10) NOT NULL DEFAULT 'no' COMMENT '完成状态 yes-是 no-否',
  167. `contract_id` varchar(64) DEFAULT NULL COMMENT 'CRM合同ID',
  168. `contract_no` varchar(50) DEFAULT NULL COMMENT '合同编号',
  169. `supplier_id` varchar(64) DEFAULT NULL COMMENT '供应商ID',
  170. `supplier_name` varchar(200) DEFAULT NULL COMMENT '供应商名称',
  171. `destination_id` varchar(64) DEFAULT NULL COMMENT '目的地ID',
  172. `destination_name` varchar(200) DEFAULT NULL COMMENT '目的地名称',
  173. `customer_id` varchar(64) DEFAULT NULL COMMENT '客户ID',
  174. `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称',
  175. `contact_name` varchar(100) DEFAULT NULL COMMENT '联系人',
  176. `contact_phone` varchar(32) DEFAULT NULL COMMENT '联系电话',
  177. `party_a` varchar(200) DEFAULT NULL COMMENT '甲方',
  178. `party_b` varchar(200) DEFAULT NULL COMMENT '乙方',
  179. `contract_start_date` date DEFAULT NULL COMMENT '合同开始日期',
  180. `contract_end_date` date DEFAULT NULL COMMENT '合同结束日期',
  181. `delivery_method` varchar(20) DEFAULT NULL COMMENT '送货方式 self_pick-山峡自提 one_ticket-一票制 customer_pick-客户自提',
  182. `settlement_method` varchar(50) DEFAULT NULL COMMENT '结算方式',
  183. `has_freight` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否有运输费用 0-否 1-是',
  184. `transport_id` varchar(64) DEFAULT NULL COMMENT '运输ID',
  185. `transport_no` varchar(32) DEFAULT NULL COMMENT '运输编号',
  186. `vehicle_id` varchar(64) DEFAULT NULL COMMENT '车辆ID',
  187. `license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号',
  188. `trailer_no` varchar(20) DEFAULT NULL COMMENT '挂车号(安排运输时快照)',
  189. `driver_id` varchar(64) DEFAULT NULL COMMENT '司机ID',
  190. `driver_name` varchar(100) DEFAULT NULL COMMENT '司机姓名',
  191. `personnel_summary` varchar(500) DEFAULT NULL COMMENT '关联人员摘要(安排运输时快照)',
  192. `resource_snapshot` text COMMENT '车辆/人员/证件整包快照 JSON',
  193. `total_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '计划总金额',
  194. `freight_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '运费合计',
  195. `notify_message` text COMMENT '通知信息(标准模板)',
  196. `slip_template_content` longtext COMMENT '入库单打印模板内容(富文本HTML)',
  197. `delivery_slip_template_content` longtext COMMENT '送(提)货单打印模板内容(富文本HTML)',
  198. `subpack_slip_template_content` longtext COMMENT '分装单打印模板内容(富文本HTML)',
  199. `subpack_slip_no` varchar(32) DEFAULT NULL COMMENT '分装单号 NO:SXFZ-YYYY-MM-DD-序号',
  200. `follow_user_id` varchar(64) DEFAULT NULL COMMENT '跟进人ID',
  201. `follow_user_name` varchar(100) DEFAULT NULL COMMENT '跟进人姓名',
  202. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  203. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  204. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  205. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  206. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  207. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  208. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  209. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  210. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  211. PRIMARY KEY (`id`),
  212. UNIQUE KEY `uk_plan_no` (`plan_no`),
  213. KEY `idx_tenant` (`tenant_no`),
  214. KEY `idx_plan_type` (`plan_type`),
  215. KEY `idx_follow_status` (`follow_status`),
  216. KEY `idx_plan_date` (`plan_date`),
  217. KEY `idx_contract_id` (`contract_id`)
  218. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划主表';
  219. -- ----------------------------
  220. -- Table structure for pl_plan_product (计划产品明细表)
  221. -- ----------------------------
  222. DROP TABLE IF EXISTS `pl_plan_product`;
  223. CREATE TABLE `pl_plan_product` (
  224. `id` varchar(64) NOT NULL COMMENT '主键ID',
  225. `plan_id` varchar(64) NOT NULL COMMENT '计划ID',
  226. `product_id` varchar(64) NOT NULL COMMENT '产品ID',
  227. `product_no` varchar(50) NOT NULL COMMENT '产品编号',
  228. `product_name` varchar(200) NOT NULL COMMENT '产品名称',
  229. `model` varchar(100) DEFAULT NULL COMMENT '规格型号',
  230. `unit` varchar(20) NOT NULL DEFAULT '吨' COMMENT '单位',
  231. `is_explosive` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否易制爆 0-否 1-是',
  232. `is_toxic` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否易制毒 0-否 1-是',
  233. `purchase_cert_url` varchar(500) DEFAULT NULL COMMENT '购买证URL',
  234. `transport_cert_url` varchar(500) DEFAULT NULL COMMENT '运输证URL',
  235. `legal_use_cert_url` varchar(500) DEFAULT NULL COMMENT '合法使用证明URL',
  236. `inbound_estimate_qty` decimal(15,3) DEFAULT NULL COMMENT '入库预估数',
  237. `inbound_qty` decimal(15,3) DEFAULT NULL COMMENT '入库数',
  238. `inbound_price` decimal(15,4) DEFAULT NULL COMMENT '入库价',
  239. `inbound_amount` decimal(15,2) DEFAULT NULL COMMENT '入库金额',
  240. `outbound_estimate_qty` decimal(15,3) DEFAULT NULL COMMENT '出库预估数',
  241. `outbound_qty` decimal(15,3) DEFAULT NULL COMMENT '出库数',
  242. `outbound_price` decimal(15,4) DEFAULT NULL COMMENT '出库单价',
  243. `outbound_amount` decimal(15,2) DEFAULT NULL COMMENT '出库金额',
  244. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  245. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  246. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  247. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  248. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  249. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  250. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  251. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  252. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  253. PRIMARY KEY (`id`),
  254. KEY `idx_plan_id` (`plan_id`),
  255. KEY `idx_product_id` (`product_id`),
  256. KEY `idx_tenant` (`tenant_no`)
  257. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划产品明细表';
  258. -- ----------------------------
  259. -- Table structure for pl_plan_change (计划变更记录表)
  260. -- ----------------------------
  261. DROP TABLE IF EXISTS `pl_plan_change`;
  262. CREATE TABLE `pl_plan_change` (
  263. `id` varchar(64) NOT NULL COMMENT '主键ID',
  264. `plan_id` varchar(64) NOT NULL COMMENT '计划ID',
  265. `change_type` varchar(30) NOT NULL COMMENT '变更类型',
  266. `change_content` text COMMENT '变更内容',
  267. `change_user_id` varchar(64) DEFAULT NULL COMMENT '变更人ID',
  268. `change_user_name` varchar(100) DEFAULT NULL COMMENT '变更人姓名',
  269. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  270. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  271. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  272. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  273. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  274. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  275. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  276. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  277. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  278. PRIMARY KEY (`id`),
  279. KEY `idx_plan_id` (`plan_id`),
  280. KEY `idx_tenant` (`tenant_no`)
  281. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划变更记录表';
  282. -- -----------------------------------------------------------------------------
  283. -- 3. 运输管理:运输表、审批记录
  284. -- -----------------------------------------------------------------------------
  285. -- ----------------------------
  286. -- Table structure for pl_transport (运输表)
  287. -- ----------------------------
  288. DROP TABLE IF EXISTS `pl_transport`;
  289. CREATE TABLE `pl_transport` (
  290. `id` varchar(64) NOT NULL COMMENT '主键ID',
  291. `transport_no` varchar(32) NOT NULL COMMENT '运输编号 SXYS######',
  292. `vehicle_id` varchar(64) DEFAULT NULL COMMENT '车辆ID',
  293. `license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号',
  294. `trailer_no` varchar(20) DEFAULT NULL COMMENT '挂车号(安排运输时快照)',
  295. `driver_id` varchar(64) DEFAULT NULL COMMENT '司机ID',
  296. `driver_name` varchar(100) DEFAULT NULL COMMENT '司机姓名',
  297. `driver_phone` varchar(32) DEFAULT NULL COMMENT '司机电话',
  298. `resource_snapshot` text COMMENT '车辆/人员/证件整包快照 JSON',
  299. `carrier_id` varchar(64) DEFAULT NULL COMMENT '承运商ID',
  300. `carrier_name` varchar(200) DEFAULT NULL COMMENT '承运商名称',
  301. `transport_medium` varchar(100) DEFAULT NULL COMMENT '运输介质',
  302. `start_point` varchar(200) DEFAULT NULL COMMENT '运输起点',
  303. `end_point` varchar(200) DEFAULT NULL COMMENT '运输终点',
  304. `distance_km` decimal(10,2) DEFAULT NULL COMMENT '运输公里数',
  305. `unit` varchar(20) DEFAULT NULL COMMENT '计量单位 吨/趟',
  306. `freight_price` decimal(15,4) DEFAULT NULL COMMENT '运输单价',
  307. `freight_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '运输费用',
  308. `freight_type` varchar(20) NOT NULL DEFAULT 'by_weight' COMMENT '运费计算方式 by_weight-按重量 by_trip-按趟次',
  309. `has_invoice` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否开票 0-否 1-是',
  310. `qr_code` varchar(500) DEFAULT NULL COMMENT '二维码内容',
  311. `qr_expire_date` date DEFAULT NULL COMMENT '二维码有效期',
  312. `driver_access_token` varchar(64) DEFAULT NULL COMMENT '司机免登录访问令牌',
  313. `transport_status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT '运输状态 draft-草稿 pending-待执行 executing-执行中 completed-已完成 cancelled-已取消',
  314. `approval_status` varchar(20) NOT NULL DEFAULT 'none' COMMENT '审批状态 none-无需 pending-审批中 approved-已通过 rejected-已拒绝',
  315. `feedback_time` datetime DEFAULT NULL COMMENT '回传时间',
  316. `feedback_qty` decimal(15,3) DEFAULT NULL COMMENT '回传数量',
  317. `feedback_images` text COMMENT '回传图片URLs(JSON数组)',
  318. `feedback_remark` varchar(500) DEFAULT NULL COMMENT '回传备注',
  319. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  320. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  321. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  322. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  323. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  324. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  325. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  326. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  327. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  328. PRIMARY KEY (`id`),
  329. UNIQUE KEY `uk_transport_no` (`transport_no`),
  330. KEY `idx_tenant` (`tenant_no`),
  331. KEY `idx_transport_status` (`transport_status`),
  332. KEY `idx_vehicle_id` (`vehicle_id`),
  333. KEY `idx_driver_id` (`driver_id`),
  334. UNIQUE KEY `uk_pl_transport_driver_token` (`driver_access_token`)
  335. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输表';
  336. -- ----------------------------
  337. -- Table structure for pl_transport_db_link (运输-地磅出入库关联)
  338. -- ----------------------------
  339. DROP TABLE IF EXISTS `pl_transport_db_link`;
  340. CREATE TABLE `pl_transport_db_link` (
  341. `id` varchar(64) NOT NULL COMMENT '主键ID',
  342. `transport_id` varchar(64) NOT NULL COMMENT '运输单ID',
  343. `plan_id` varchar(64) NOT NULL COMMENT '运输计划ID',
  344. `plan_product_id` varchar(64) NOT NULL COMMENT '计划产品行ID',
  345. `db_purchase_plan_id` varchar(64) NOT NULL COMMENT '地磅计划ID',
  346. `db_inventory_id` varchar(64) NOT NULL COMMENT '出入库单ID',
  347. `contributed_qty` decimal(15,3) DEFAULT NULL COMMENT '本次联动贡献量(吨)',
  348. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  349. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  350. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  351. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  352. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  353. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  354. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  355. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  356. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  357. PRIMARY KEY (`id`),
  358. KEY `idx_pl_tdb_link_transport` (`transport_id`),
  359. KEY `idx_pl_tdb_link_plan` (`plan_id`)
  360. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输-地磅出入库关联';
  361. -- ----------------------------
  362. -- Table structure for pl_plan_transport (计划-运输关联表)
  363. -- ----------------------------
  364. DROP TABLE IF EXISTS `pl_plan_transport`;
  365. CREATE TABLE `pl_plan_transport` (
  366. `id` varchar(64) NOT NULL COMMENT '主键ID',
  367. `plan_id` varchar(64) NOT NULL COMMENT '计划ID',
  368. `transport_id` varchar(64) NOT NULL COMMENT '运输ID',
  369. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  370. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  371. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  372. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  373. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  374. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  375. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  376. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  377. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  378. PRIMARY KEY (`id`),
  379. KEY `idx_plan_id` (`plan_id`),
  380. KEY `idx_transport_id` (`transport_id`),
  381. KEY `idx_tenant` (`tenant_no`)
  382. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划-运输关联表';
  383. -- ----------------------------
  384. -- Table structure for pl_transport_approval (运输审批记录表)
  385. -- ----------------------------
  386. DROP TABLE IF EXISTS `pl_transport_approval`;
  387. CREATE TABLE `pl_transport_approval` (
  388. `id` varchar(64) NOT NULL COMMENT '主键ID',
  389. `transport_id` varchar(64) NOT NULL COMMENT '运输ID',
  390. `approver_id` varchar(64) NOT NULL COMMENT '审批人ID',
  391. `approver_name` varchar(100) NOT NULL COMMENT '审批人姓名',
  392. `approval_order` int(11) NOT NULL COMMENT '审批顺序',
  393. `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '审批状态 pending-待审批 approved-已通过 rejected-已拒绝',
  394. `comment` varchar(500) DEFAULT NULL COMMENT '审批意见',
  395. `approval_time` datetime DEFAULT NULL COMMENT '审批时间',
  396. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  397. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  398. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  399. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  400. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  401. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  402. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  403. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  404. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  405. PRIMARY KEY (`id`),
  406. KEY `idx_transport_id` (`transport_id`),
  407. KEY `idx_approver_id` (`approver_id`),
  408. KEY `idx_tenant` (`tenant_no`)
  409. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输审批记录表';
  410. -- -----------------------------------------------------------------------------
  411. -- 4. 运费结算
  412. -- -----------------------------------------------------------------------------
  413. -- ----------------------------
  414. -- Table structure for pl_freight_settlement (运费结算表)
  415. -- ----------------------------
  416. DROP TABLE IF EXISTS `pl_freight_settlement`;
  417. CREATE TABLE `pl_freight_settlement` (
  418. `id` varchar(64) NOT NULL COMMENT '主键ID',
  419. `settlement_no` varchar(32) NOT NULL COMMENT '结算单编号',
  420. `total_freight` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '运费合计',
  421. `invoice_amount` decimal(15,2) DEFAULT NULL COMMENT '发票金额',
  422. `invoice_no` varchar(50) DEFAULT NULL COMMENT '发票号',
  423. `invoice_date` date DEFAULT NULL COMMENT '开票日期',
  424. `invoice_attachment_urls` text DEFAULT NULL COMMENT '发票附件URLs,逗号分隔',
  425. `settlement_status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '结算状态 pending-待提交 submitted-已提交 approved-审核通过 confirmed-已确认',
  426. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  427. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  428. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  429. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  430. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  431. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  432. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  433. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  434. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  435. PRIMARY KEY (`id`),
  436. UNIQUE KEY `uk_settlement_no` (`settlement_no`),
  437. KEY `idx_tenant` (`tenant_no`),
  438. KEY `idx_settlement_status` (`settlement_status`)
  439. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运费结算表';
  440. -- ----------------------------
  441. -- Table structure for pl_freight_settlement_transport (结算单-运输关联表)
  442. -- ----------------------------
  443. DROP TABLE IF EXISTS `pl_freight_settlement_transport`;
  444. CREATE TABLE `pl_freight_settlement_transport` (
  445. `id` varchar(64) NOT NULL COMMENT '主键ID',
  446. `settlement_id` varchar(64) NOT NULL COMMENT '结算单ID',
  447. `transport_id` varchar(64) NOT NULL COMMENT '运输ID',
  448. `freight_amount` decimal(15,2) NOT NULL COMMENT '运费金额',
  449. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  450. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  451. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  452. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  453. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  454. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  455. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  456. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  457. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  458. PRIMARY KEY (`id`),
  459. KEY `idx_settlement_id` (`settlement_id`),
  460. KEY `idx_transport_id` (`transport_id`),
  461. KEY `idx_tenant` (`tenant_no`)
  462. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='结算单-运输关联表';
  463. -- ----------------------------
  464. -- Table structure for pl_freight_settlement_approval (运费结算审批记录)
  465. -- ----------------------------
  466. DROP TABLE IF EXISTS `pl_freight_settlement_approval`;
  467. CREATE TABLE `pl_freight_settlement_approval` (
  468. `id` varchar(64) NOT NULL COMMENT '主键ID',
  469. `settlement_id` varchar(64) NOT NULL COMMENT '结算单ID',
  470. `step` int(11) NOT NULL DEFAULT 1 COMMENT '步骤序号',
  471. `step_name` varchar(50) DEFAULT NULL COMMENT '步骤名称',
  472. `approver_id` varchar(64) NOT NULL COMMENT '审批人ID',
  473. `approver_name` varchar(64) DEFAULT NULL COMMENT '审批人姓名',
  474. `approval_type` varchar(20) NOT NULL DEFAULT 'sequential' COMMENT 'sequential/parallel/or',
  475. `approval_result` varchar(20) NOT NULL DEFAULT 'pending' COMMENT 'pending/approved/rejected/skipped',
  476. `approval_opinion` varchar(500) DEFAULT NULL COMMENT '审批意见',
  477. `approval_time` datetime DEFAULT NULL COMMENT '审批时间',
  478. `is_current` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否当前节点',
  479. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  480. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  481. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  482. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  483. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  484. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  485. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  486. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  487. `del_flag` tinyint(4) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  488. PRIMARY KEY (`id`),
  489. KEY `idx_pl_fsa_settlement` (`settlement_id`, `del_flag`),
  490. KEY `idx_pl_fsa_approver` (`approver_id`, `approval_result`, `is_current`, `del_flag`)
  491. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运费结算审批记录';
  492. -- ----------------------------
  493. -- Table structure for pl_remittance_voucher (汇款凭证表)
  494. -- ----------------------------
  495. DROP TABLE IF EXISTS `pl_remittance_voucher`;
  496. CREATE TABLE `pl_remittance_voucher` (
  497. `id` varchar(64) NOT NULL COMMENT '主键ID',
  498. `settlement_id` varchar(64) NOT NULL COMMENT '结算单ID',
  499. `voucher_no` varchar(32) DEFAULT NULL COMMENT '凭证编号',
  500. `remittance_date` date DEFAULT NULL COMMENT '汇款日期',
  501. `remittance_amount` decimal(15,2) DEFAULT NULL COMMENT '汇款金额',
  502. `voucher_urls` text COMMENT '凭证文件URLs(JSON数组)',
  503. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  504. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  505. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  506. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  507. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  508. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  509. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  510. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  511. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  512. PRIMARY KEY (`id`),
  513. KEY `idx_settlement_id` (`settlement_id`),
  514. KEY `idx_tenant` (`tenant_no`)
  515. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='汇款凭证表';
  516. -- -----------------------------------------------------------------------------
  517. -- 5. 库存管理
  518. -- -----------------------------------------------------------------------------
  519. -- ----------------------------
  520. -- Table structure for pl_inventory (库存表)
  521. -- ----------------------------
  522. DROP TABLE IF EXISTS `pl_inventory`;
  523. CREATE TABLE `pl_inventory` (
  524. `id` varchar(64) NOT NULL COMMENT '主键ID',
  525. `product_id` varchar(64) NOT NULL COMMENT '产品ID',
  526. `product_no` varchar(50) NOT NULL COMMENT '产品编号',
  527. `product_name` varchar(200) NOT NULL COMMENT '产品名称',
  528. `model` varchar(100) DEFAULT NULL COMMENT '规格型号',
  529. `unit` varchar(20) NOT NULL DEFAULT '吨' COMMENT '单位',
  530. `stock_qty` decimal(15,3) NOT NULL DEFAULT 0.000 COMMENT '库存数量',
  531. `stock_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '库存金额',
  532. `low_stock_warning` decimal(15,3) DEFAULT NULL COMMENT '最低库存预警值',
  533. `high_stock_warning` decimal(15,3) DEFAULT NULL COMMENT '最高库存预警值',
  534. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  535. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  536. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  537. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  538. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  539. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  540. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  541. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  542. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  543. PRIMARY KEY (`id`),
  544. UNIQUE KEY `uk_product_id` (`product_id`),
  545. KEY `idx_tenant` (`tenant_no`)
  546. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存表';
  547. -- ----------------------------
  548. -- Table structure for pl_inventory_transaction (库存流水表)
  549. -- ----------------------------
  550. DROP TABLE IF EXISTS `pl_inventory_transaction`;
  551. CREATE TABLE `pl_inventory_transaction` (
  552. `id` varchar(64) NOT NULL COMMENT '主键ID',
  553. `product_id` varchar(64) NOT NULL COMMENT '产品ID',
  554. `product_name` varchar(200) NOT NULL COMMENT '产品名称',
  555. `transaction_type` varchar(20) NOT NULL COMMENT '事务类型 inbound-入库 outbound-出库',
  556. `plan_id` varchar(64) DEFAULT NULL COMMENT '计划ID',
  557. `plan_no` varchar(32) DEFAULT NULL COMMENT '计划编号',
  558. `qty` decimal(15,3) NOT NULL COMMENT '变动数量(正数入库/负数出库)',
  559. `unit_price` decimal(15,4) NOT NULL COMMENT '单价',
  560. `amount` decimal(15,2) NOT NULL COMMENT '金额',
  561. `stock_after` decimal(15,3) NOT NULL COMMENT '变动后库存',
  562. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  563. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  564. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  565. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  566. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  567. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  568. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  569. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  570. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  571. PRIMARY KEY (`id`),
  572. KEY `idx_product_id` (`product_id`),
  573. KEY `idx_transaction_type` (`transaction_type`),
  574. KEY `idx_plan_id` (`plan_id`),
  575. KEY `idx_create_time` (`create_time`),
  576. KEY `idx_tenant` (`tenant_no`)
  577. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存流水表';
  578. -- ----------------------------
  579. -- Table structure for pl_inventory_warning (库存预警表)
  580. -- ----------------------------
  581. DROP TABLE IF EXISTS `pl_inventory_warning`;
  582. CREATE TABLE `pl_inventory_warning` (
  583. `id` varchar(64) NOT NULL COMMENT '主键ID',
  584. `product_id` varchar(64) NOT NULL COMMENT '产品ID',
  585. `product_name` varchar(200) NOT NULL COMMENT '产品名称',
  586. `warning_type` varchar(20) NOT NULL COMMENT '预警类型 low-低于最低 high-高于最高',
  587. `current_qty` decimal(15,3) NOT NULL COMMENT '当前库存',
  588. `threshold_value` decimal(15,3) NOT NULL COMMENT '阈值',
  589. `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '状态 pending-待处理 resolved-已处理',
  590. `resolve_time` datetime DEFAULT NULL COMMENT '处理时间',
  591. `resolve_remark` varchar(500) DEFAULT NULL COMMENT '处理备注',
  592. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  593. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  594. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  595. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  596. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  597. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  598. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  599. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  600. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  601. PRIMARY KEY (`id`),
  602. KEY `idx_product_id` (`product_id`),
  603. KEY `idx_warning_type` (`warning_type`),
  604. KEY `idx_status` (`status`),
  605. KEY `idx_tenant` (`tenant_no`)
  606. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存预警表';
  607. -- ----------------------------
  608. -- Table structure for pl_document_reminder (证件到期提醒表)
  609. -- ----------------------------
  610. DROP TABLE IF EXISTS `pl_document_reminder`;
  611. CREATE TABLE `pl_document_reminder` (
  612. `id` varchar(64) NOT NULL COMMENT '主键ID',
  613. `cert_id` varchar(64) DEFAULT NULL COMMENT '证书ID',
  614. `owner_type` varchar(20) DEFAULT NULL COMMENT '归属类型 vehicle/personnel',
  615. `owner_id` varchar(64) DEFAULT NULL COMMENT '归属主体ID',
  616. `owner_label` varchar(200) DEFAULT NULL COMMENT '归属展示名(车牌/姓名)',
  617. `driver_id` varchar(64) DEFAULT NULL COMMENT '司机/人员ID(兼容)',
  618. `driver_name` varchar(100) DEFAULT NULL COMMENT '司机/人员姓名(兼容)',
  619. `document_type` varchar(100) NOT NULL COMMENT '证件类型/证书名称',
  620. `document_no` varchar(50) DEFAULT NULL COMMENT '证件号',
  621. `expire_date` date NOT NULL COMMENT '到期日期',
  622. `days_remaining` int(11) NOT NULL COMMENT '剩余天数',
  623. `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '状态 pending-待处理 resolved-已处理',
  624. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  625. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  626. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  627. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  628. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  629. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  630. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  631. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  632. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  633. PRIMARY KEY (`id`),
  634. KEY `idx_cert_id` (`cert_id`),
  635. KEY `idx_driver_id` (`driver_id`),
  636. KEY `idx_document_type` (`document_type`),
  637. KEY `idx_expire_date` (`expire_date`),
  638. KEY `idx_status` (`status`),
  639. KEY `idx_tenant` (`tenant_no`)
  640. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='证件到期提醒表';
  641. -- ----------------------------
  642. -- Table structure for pl_vehicle_recharge_apply (车辆ETC/加油充值申请)
  643. -- ----------------------------
  644. DROP TABLE IF EXISTS `pl_vehicle_recharge_apply`;
  645. CREATE TABLE `pl_vehicle_recharge_apply` (
  646. `id` varchar(64) NOT NULL COMMENT '主键ID',
  647. `apply_no` varchar(32) NOT NULL COMMENT '申请单号 ETC+YYYYMMDD+2位',
  648. `license_plate` varchar(20) NOT NULL COMMENT '车牌号',
  649. `recharge_type` varchar(20) NOT NULL COMMENT '充值类型 etc-ETC fuel-加油',
  650. `apply_date` date NOT NULL COMMENT '申请日期',
  651. `odometer_km` decimal(10,1) DEFAULT NULL COMMENT '期初公里数',
  652. `attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
  653. `applicant_id` varchar(64) NOT NULL COMMENT '申请人用户ID',
  654. `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT 'pending-待发放 disbursed-已发放 cancelled-已作废',
  655. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
  656. `order_num` int(11) DEFAULT NULL,
  657. `remark` varchar(512) DEFAULT NULL,
  658. `create_by` varchar(64) DEFAULT NULL,
  659. `create_dept_id` varchar(64) NOT NULL DEFAULT '',
  660. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  661. `update_by` varchar(64) DEFAULT NULL,
  662. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  663. `del_flag` smallint(6) NOT NULL DEFAULT 0,
  664. PRIMARY KEY (`id`),
  665. UNIQUE KEY `uk_apply_no` (`apply_no`),
  666. KEY `idx_tenant` (`tenant_no`),
  667. KEY `idx_license_plate` (`license_plate`),
  668. KEY `idx_status` (`status`),
  669. KEY `idx_apply_date` (`apply_date`)
  670. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆ETC/加油充值申请';
  671. -- ----------------------------
  672. -- Table structure for pl_vehicle_recharge_record (车辆ETC/加油充值发放登记)
  673. -- ----------------------------
  674. DROP TABLE IF EXISTS `pl_vehicle_recharge_record`;
  675. CREATE TABLE `pl_vehicle_recharge_record` (
  676. `id` varchar(64) NOT NULL COMMENT '主键ID',
  677. `recharge_order_no` varchar(32) NOT NULL COMMENT '充值订单号 SXCL+YYYYMMDD+6位',
  678. `recharge_date` date NOT NULL COMMENT '充值日期',
  679. `recharge_type` varchar(20) NOT NULL COMMENT '充值类型 etc-ETC fuel-加油',
  680. `card_no` varchar(64) DEFAULT NULL COMMENT '卡号',
  681. `gas_station` varchar(200) DEFAULT NULL COMMENT '加油站/充值渠道',
  682. `amount` decimal(10,2) NOT NULL COMMENT '充值金额(元)',
  683. `attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
  684. `apply_id` varchar(64) DEFAULT NULL COMMENT '关联申请单ID',
  685. `license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号冗余',
  686. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
  687. `order_num` int(11) DEFAULT NULL,
  688. `remark` varchar(512) DEFAULT NULL,
  689. `create_by` varchar(64) DEFAULT NULL,
  690. `create_dept_id` varchar(64) NOT NULL DEFAULT '',
  691. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  692. `update_by` varchar(64) DEFAULT NULL,
  693. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  694. `del_flag` smallint(6) NOT NULL DEFAULT 0,
  695. PRIMARY KEY (`id`),
  696. UNIQUE KEY `uk_recharge_order_no` (`recharge_order_no`),
  697. UNIQUE KEY `uk_apply_id` (`apply_id`),
  698. KEY `idx_tenant` (`tenant_no`),
  699. KEY `idx_recharge_date` (`recharge_date`),
  700. KEY `idx_license_plate` (`license_plate`)
  701. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆ETC/加油充值发放登记';
  702. -- ----------------------------
  703. -- Table structure for pl_vehicle_maintenance_apply (车辆维保申请)
  704. -- ----------------------------
  705. DROP TABLE IF EXISTS `pl_vehicle_maintenance_apply`;
  706. CREATE TABLE `pl_vehicle_maintenance_apply` (
  707. `id` varchar(64) NOT NULL COMMENT '主键ID',
  708. `apply_no` varchar(32) NOT NULL COMMENT '申请单号 WB+YYYYMMDD+2位',
  709. `license_plate` varchar(20) NOT NULL COMMENT '车牌号',
  710. `applicant_id` varchar(64) NOT NULL COMMENT '申请人用户ID',
  711. `apply_date` date NOT NULL COMMENT '申请时间',
  712. `maintenance_type` varchar(64) NOT NULL COMMENT '维保类型',
  713. `start_date` date NOT NULL COMMENT '维保开始时间',
  714. `expected_pickup_date` date DEFAULT NULL COMMENT '预计取车时间',
  715. `maintenance_content` varchar(1000) DEFAULT NULL COMMENT '维保内容',
  716. `shop_address` varchar(500) DEFAULT NULL COMMENT '维保店铺地址',
  717. `attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
  718. `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT 'pending-待处理 processed-已处理 cancelled-已作废',
  719. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
  720. `order_num` int(11) DEFAULT NULL,
  721. `remark` varchar(512) DEFAULT NULL,
  722. `create_by` varchar(64) DEFAULT NULL,
  723. `create_dept_id` varchar(64) NOT NULL DEFAULT '',
  724. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  725. `update_by` varchar(64) DEFAULT NULL,
  726. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  727. `del_flag` smallint(6) NOT NULL DEFAULT 0,
  728. PRIMARY KEY (`id`),
  729. UNIQUE KEY `uk_apply_no` (`apply_no`),
  730. KEY `idx_tenant` (`tenant_no`),
  731. KEY `idx_license_plate` (`license_plate`),
  732. KEY `idx_status` (`status`),
  733. KEY `idx_apply_date` (`apply_date`)
  734. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆维保申请';
  735. -- ----------------------------
  736. -- Table structure for pl_vehicle_maintenance_process (车辆维保处理登记)
  737. -- ----------------------------
  738. DROP TABLE IF EXISTS `pl_vehicle_maintenance_process`;
  739. CREATE TABLE `pl_vehicle_maintenance_process` (
  740. `id` varchar(64) NOT NULL COMMENT '主键ID',
  741. `process_no` varchar(32) NOT NULL COMMENT '处理单号 SXWC+YYYYMMDD+6位',
  742. `apply_id` varchar(64) DEFAULT NULL COMMENT '关联申请单ID',
  743. `license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号冗余',
  744. `amount` decimal(10,2) DEFAULT NULL COMMENT '金额(元)',
  745. `handler_id` varchar(64) NOT NULL COMMENT '处理人用户ID',
  746. `process_date` date NOT NULL COMMENT '处理时间',
  747. `attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
  748. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
  749. `order_num` int(11) DEFAULT NULL,
  750. `remark` varchar(512) DEFAULT NULL,
  751. `create_by` varchar(64) DEFAULT NULL,
  752. `create_dept_id` varchar(64) NOT NULL DEFAULT '',
  753. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  754. `update_by` varchar(64) DEFAULT NULL,
  755. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  756. `del_flag` smallint(6) NOT NULL DEFAULT 0,
  757. PRIMARY KEY (`id`),
  758. UNIQUE KEY `uk_process_no` (`process_no`),
  759. UNIQUE KEY `uk_apply_id` (`apply_id`),
  760. KEY `idx_tenant` (`tenant_no`),
  761. KEY `idx_process_date` (`process_date`),
  762. KEY `idx_license_plate` (`license_plate`)
  763. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆维保处理登记';
  764. -- ----------------------------
  765. -- Table structure for pl_vehicle_urea_apply (车辆尿素申请)
  766. -- ----------------------------
  767. DROP TABLE IF EXISTS `pl_vehicle_urea_apply`;
  768. CREATE TABLE `pl_vehicle_urea_apply` (
  769. `id` varchar(64) NOT NULL COMMENT '主键ID',
  770. `apply_no` varchar(32) NOT NULL COMMENT '申请单号 SXNS+YYYYMMDD+6位',
  771. `license_plate` varchar(20) NOT NULL COMMENT '车牌号',
  772. `applicant_id` varchar(64) NOT NULL COMMENT '申请人用户ID',
  773. `apply_date` date NOT NULL COMMENT '申请时间',
  774. `warehouse_in_date` date NOT NULL COMMENT '入库时间',
  775. `unit` varchar(32) NOT NULL COMMENT '单位',
  776. `quantity` decimal(10,2) NOT NULL COMMENT '入库数',
  777. `apply_amount` decimal(10,2) NOT NULL COMMENT '申请金额(元)',
  778. `attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
  779. `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT 'pending-待发放 disbursed-已发放 cancelled-已作废',
  780. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
  781. `order_num` int(11) DEFAULT NULL,
  782. `remark` varchar(512) DEFAULT NULL,
  783. `create_by` varchar(64) DEFAULT NULL,
  784. `create_dept_id` varchar(64) NOT NULL DEFAULT '',
  785. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  786. `update_by` varchar(64) DEFAULT NULL,
  787. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  788. `del_flag` smallint(6) NOT NULL DEFAULT 0,
  789. PRIMARY KEY (`id`),
  790. UNIQUE KEY `uk_apply_no` (`apply_no`),
  791. KEY `idx_tenant` (`tenant_no`),
  792. KEY `idx_license_plate` (`license_plate`),
  793. KEY `idx_status` (`status`),
  794. KEY `idx_apply_date` (`apply_date`)
  795. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆尿素申请';
  796. -- ----------------------------
  797. -- Table structure for pl_vehicle_urea_disburse (车辆尿素发放登记)
  798. -- ----------------------------
  799. DROP TABLE IF EXISTS `pl_vehicle_urea_disburse`;
  800. CREATE TABLE `pl_vehicle_urea_disburse` (
  801. `id` varchar(64) NOT NULL COMMENT '主键ID',
  802. `disburse_no` varchar(32) NOT NULL COMMENT '发放单号 SXUF+YYYYMMDD+6位',
  803. `apply_id` varchar(64) DEFAULT NULL COMMENT '关联申请单ID',
  804. `license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号冗余',
  805. `amount` decimal(10,2) NOT NULL COMMENT '发放金额(元)',
  806. `handler_id` varchar(64) NOT NULL COMMENT '处理人用户ID',
  807. `disburse_date` date NOT NULL COMMENT '发放时间',
  808. `attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
  809. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
  810. `order_num` int(11) DEFAULT NULL,
  811. `remark` varchar(512) DEFAULT NULL,
  812. `create_by` varchar(64) DEFAULT NULL,
  813. `create_dept_id` varchar(64) NOT NULL DEFAULT '',
  814. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  815. `update_by` varchar(64) DEFAULT NULL,
  816. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  817. `del_flag` smallint(6) NOT NULL DEFAULT 0,
  818. PRIMARY KEY (`id`),
  819. UNIQUE KEY `uk_disburse_no` (`disburse_no`),
  820. UNIQUE KEY `uk_apply_id` (`apply_id`),
  821. KEY `idx_tenant` (`tenant_no`),
  822. KEY `idx_disburse_date` (`disburse_date`),
  823. KEY `idx_license_plate` (`license_plate`)
  824. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆尿素发放登记';
  825. SET FOREIGN_KEY_CHECKS = 1;
  826. -- =============================================================================
  827. -- 增量迁移(已有库执行)
  828. -- ALTER TABLE `pl_plan` ADD COLUMN `personnel_summary` varchar(500) DEFAULT NULL COMMENT '关联人员摘要(安排运输时快照)' AFTER `driver_name`;
  829. -- ALTER TABLE `pl_plan` ADD COLUMN `trailer_no` varchar(20) DEFAULT NULL COMMENT '挂车号(安排运输时快照)' AFTER `license_plate`;
  830. -- ALTER TABLE `pl_plan` ADD COLUMN `resource_snapshot` text COMMENT '车辆/人员/证件整包快照 JSON' AFTER `personnel_summary`;
  831. -- ALTER TABLE `pl_transport` ADD COLUMN `trailer_no` varchar(20) DEFAULT NULL COMMENT '挂车号(安排运输时快照)' AFTER `license_plate`;
  832. -- ALTER TABLE `pl_transport` ADD COLUMN `resource_snapshot` text COMMENT '车辆/人员/证件整包快照 JSON' AFTER `driver_phone`;
  833. -- =============================================================================
  834. -- =============================================================================
  835. -- DDL 完成
  836. -- 共计 22 张表(含 pl_cert;pl_driver 已由 pl_personnel 替代)
  837. -- =============================================================================