Commit a0e6eabbccb895c1ef93f26bb5642ba8314072dd

Authored by zichun
1 parent c0103bcb

chore(scripts): add local dev runner, seed helper, and dev seed SQL

- scripts/run-backend.sh: source .env.local + start Spring Boot
- scripts/seed-dev.sh: load sql/seed/dev-seed.sql into local DB
- sql/seed/dev-seed.sql: dev-only seed (admin / 666666 login)

Seed data path is local-dev only; not run by Flyway, not part of
the test gate. Operator runs after setup-test-db + first Spring
Boot start (so V1 schema exists).
scripts/run-backend.sh 0 → 100755
  1 +#!/usr/bin/env bash
  2 +# 本地启动后端:source .env.local 让 Spring Boot 能解析 ${DB_HOST}/${DB_PORT}/${JWT_SECRET} 等占位符
  3 +set -e
  4 +cd "$(dirname "$0")/.."
  5 +
  6 +if [ ! -f .env.local ]; then
  7 + echo "[run-backend] 缺少 .env.local"
  8 + exit 1
  9 +fi
  10 +
  11 +set -a
  12 +. ./.env.local
  13 +set +a
  14 +
  15 +# 让 mvn 用 .env.local 里指定的 JDK
  16 +if [ -n "${JAVA_HOME:-}" ]; then
  17 + export PATH="$JAVA_HOME/bin:$PATH"
  18 +fi
  19 +if [ -n "${EXTRA_PATH:-}" ]; then
  20 + export PATH="$EXTRA_PATH:$PATH"
  21 +fi
  22 +
  23 +cd backend
  24 +exec mvn spring-boot:run
scripts/seed-dev.sh 0 → 100755
  1 +#!/usr/bin/env bash
  2 +# 灌入开发种子数据。
  3 +# 前置:表已建好(已运行 setup-test-db.sh + 后端启动一次让 Flyway 跑过 V1)。
  4 +# 用法:./scripts/seed-dev.sh
  5 +set -e
  6 +cd "$(dirname "$0")/.."
  7 +
  8 +if [ ! -f .env.local ]; then
  9 + echo "[seed-dev] 缺少 .env.local"
  10 + exit 1
  11 +fi
  12 +
  13 +set -a
  14 +. ./.env.local
  15 +set +a
  16 +
  17 +if [ -n "${EXTRA_PATH:-}" ]; then
  18 + export PATH="$EXTRA_PATH:$PATH"
  19 +fi
  20 +
  21 +SEED_FILE="sql/seed/dev-seed.sql"
  22 +if [ ! -f "$SEED_FILE" ]; then
  23 + echo "[seed-dev] 找不到 $SEED_FILE"
  24 + exit 1
  25 +fi
  26 +
  27 +echo "[seed-dev] 灌入 $SEED_FILE → $DB_HOST:$DB_PORT/$DB_SCHEMA"
  28 +mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASSWORD" "$DB_SCHEMA" < "$SEED_FILE"
  29 +
  30 +echo "[seed-dev] done — 用 admin / 666666 登录"
sql/seed/dev-seed.sql 0 → 100644
  1 +-- ============================================================
  2 +-- 开发/演示种子数据
  3 +-- 仅用于本地开发,不入 Flyway migration
  4 +-- 用法: ./scripts/seed-dev.sh
  5 +-- 所有用户初始密码: 666666 (BCrypt: $2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm)
  6 +-- ============================================================
  7 +
  8 +SET FOREIGN_KEY_CHECKS = 0;
  9 +
  10 +TRUNCATE TABLE `tUserPermission`;
  11 +TRUNCATE TABLE `tUser`;
  12 +TRUNCATE TABLE `tStaff`;
  13 +TRUNCATE TABLE `tPermissionCategory`;
  14 +TRUNCATE TABLE `tModule`;
  15 +
  16 +SET FOREIGN_KEY_CHECKS = 1;
  17 +
  18 +-- ============================================================
  19 +-- ① tStaff (37 行) — 与 prototype 用户列表 1:1
  20 +-- ============================================================
  21 +INSERT INTO `tStaff`
  22 + (`iIncrement`, `tCreateDate`, `sStaffNo`, `sStaffName`, `sDepartment`, `sCreatedBy`, `bDeleted`)
  23 +VALUES
  24 + (1, '2023-10-26 17:00:00', 'STAFF001', '管广飞', '工艺技术', 'admin', b'0'),
  25 + (2, '2023-10-26 17:00:00', 'STAFF002', '李斌', '印前制作', 'admin', b'0'),
  26 + (3, '2023-11-20 10:00:00', 'STAFF003', '朱财喜', '印刷车间', 'admin', b'0'),
  27 + (4, '2024-10-08 13:00:00', 'STAFF004', '李金辉', '机修', 'admin', b'0'),
  28 + (5, '2023-11-22 13:00:00', 'STAFF005', '汪鑫', '工艺技术', 'admin', b'0'),
  29 + (6, '2023-11-27 15:00:00', 'STAFF006', '钱豹', '物控部', 'admin', b'0'),
  30 + (7, '2024-11-11 15:00:00', 'STAFF007', '张寅飞', '印前制作', 'lib', b'0'),
  31 + (8, '2025-06-03 21:00:00', 'STAFF008', '孟威', '工艺技术', 'admin', b'0'),
  32 + (9, '2025-06-05 11:00:00', 'STAFF009', '杭仁萍', '跟单', 'mengw', b'0'),
  33 + (10,'2025-06-11 10:00:00', 'STAFF010', '李丹', '客服部', 'hangrp', b'0'),
  34 + (11,'2025-06-11 10:00:00', 'STAFF011', '王宽明', '印刷车间', 'lid', b'0'),
  35 + (12,'2025-06-11 10:00:00', 'STAFF012', '潘茹', '工艺技术', 'lid', b'0'),
  36 + (13,'2025-06-11 10:00:00', 'STAFF013', '耿广东', '工艺技术', 'lid', b'0'),
  37 + (14,'2025-06-17 14:00:00', 'STAFF014', '余涛', '印刷车间', 'hangrp', b'0'),
  38 + (15,'2025-06-26 10:00:00', 'STAFF015', '廖赵军', '财务部', 'hangrp', b'0'),
  39 + (16,'2025-07-28 13:00:00', 'STAFF016', '曹建勇', '物控部', 'limq', b'0'),
  40 + (17,'2025-07-29 13:00:00', 'STAFF017', '陈淑贤', '品质管理部', 'csx', b'0'),
  41 + (18,'2025-08-18 09:00:00', 'STAFF018', '张红英', '模烫车间', 'admin', b'0'),
  42 + (19,'2025-08-21 11:00:00', 'STAFF019', '吕政彦', '总经理办公室','hangrp', b'0'),
  43 + (20,'2025-09-01 11:00:00', 'STAFF020', '陈鑫涛', '品质管理部', 'csx', b'0'),
  44 + (21,'2025-09-04 11:00:00', 'STAFF021', '陆鑫', '工艺技术', 'zhangz', b'0'),
  45 + (22,'2025-09-05 11:00:00', 'STAFF022', '陆鑫-储运部','工艺技术', 'luxin', b'0'),
  46 + (23,'2025-09-08 15:00:00', 'STAFF023', '朱咸兵', '工艺技术', 'qianb', b'0'),
  47 + (24,'2025-09-12 16:00:00', 'STAFF024', '孟臻晟', '装订车间', 'admin', b'0'),
  48 + (25,'2025-10-16 13:00:00', 'STAFF025', '彭敏', '计划管理', 'pengm', b'0'),
  49 + (26,'2025-10-22 10:00:00', 'STAFF026', '张伟', '印刷车间', 'zhangw', b'0'),
  50 + (27,'2025-11-04 16:00:00', 'STAFF027', '李娜', '质检部', 'lid', b'0'),
  51 + (28,'2025-11-15 09:00:00', 'STAFF028', '王军', '装订车间', 'admin', b'0'),
  52 + (29,'2025-12-01 11:00:00', 'STAFF029', '赵敏', '财务部', 'zhaom', b'0'),
  53 + (30,'2025-12-08 14:00:00', 'STAFF030', '周强', '物控部', 'qianb', b'0'),
  54 + (31,'2026-01-05 09:00:00', 'STAFF031', '吴丽', '人事部', 'wul', b'0'),
  55 + (32,'2026-01-18 13:00:00', 'STAFF032', '郑涛', '工艺技术', 'zhengt', b'0'),
  56 + (33,'2026-02-02 10:00:00', 'STAFF033', '冯静', '客服部', 'fengj', b'0'),
  57 + (34,'2026-02-20 15:00:00', 'STAFF034', '孙磊', '装订车间', 'admin', b'0'),
  58 + (35,'2026-03-08 11:00:00', 'STAFF035', '马超', '机修', 'ljh', b'0'),
  59 + (36,'2026-03-22 09:00:00', 'STAFF036', '朱子纯', '总经理办公室','admin', b'0'),
  60 + (37,'2023-10-26 17:00:00', 'STAFF037', '系统管理员', NULL, 'admin', b'0');
  61 +
  62 +-- ============================================================
  63 +-- ② tPermissionCategory (38 行) — 与 prototype perms[] 1:1
  64 +-- ============================================================
  65 +INSERT INTO `tPermissionCategory`
  66 + (`iIncrement`, `tCreateDate`, `sCategoryCode`, `sCategoryName`, `iParentId`, `iSortOrder`, `sCreatedBy`, `bDeleted`)
  67 +VALUES
  68 + (1, '2023-10-01 00:00:00', 'PERM_DEFAULT', '默认显示(必选)', NULL, 1, 'admin', b'0'),
  69 + (2, '2023-10-01 00:00:00', 'PERM_NO_PRICE', '禁止查看价格', NULL, 2, 'admin', b'0'),
  70 + (3, '2023-10-01 00:00:00', 'PERM_CS_FOLLOWUP', '客服跟单', NULL, 3, 'admin', b'0'),
  71 + (4, '2023-10-01 00:00:00', 'PERM_QUOTE_TEAM', '报价组员工', NULL, 4, 'admin', b'0'),
  72 + (5, '2023-10-01 00:00:00', 'PERM_MAT_CTRL', '物控部员工', NULL, 5, 'admin', b'0'),
  73 + (6, '2023-10-01 00:00:00', 'PERM_SCM_PMC', '供应链PMC', NULL, 6, 'admin', b'0'),
  74 + (7, '2023-10-01 00:00:00', 'PERM_VIEW_ORDER_PRICE', '允许查看订单价格', NULL, 7, 'admin', b'0'),
  75 + (8, '2023-10-01 00:00:00', 'PERM_LOGISTICS', '储运部员工', NULL, 8, 'admin', b'0'),
  76 + (9, '2023-10-01 00:00:00', 'PERM_EXT_SUPPLIER', '外部供应商', NULL, 9, 'admin', b'0'),
  77 + (10,'2023-10-01 00:00:00', 'PERM_QC_STAFF', '品质部员工', NULL, 10, 'admin', b'0'),
  78 + (11,'2023-10-01 00:00:00', 'PERM_TECH_CENTER', '技术中心员工', NULL, 11, 'admin', b'0'),
  79 + (12,'2023-10-01 00:00:00', 'PERM_MECHANIC', '机修组员工', NULL, 12, 'admin', b'0'),
  80 + (13,'2023-10-01 00:00:00', 'PERM_PROD_PLANNER', '生产部计划员工', NULL, 13, 'admin', b'0'),
  81 + (14,'2023-10-01 00:00:00', 'PERM_OUTSRC', '外发组员工', NULL, 14, 'admin', b'0'),
  82 + (15,'2023-10-01 00:00:00', 'PERM_MOLD_HEAT', '模烫车间', NULL, 15, 'admin', b'0'),
  83 + (16,'2023-10-01 00:00:00', 'PERM_BINDING', '装订车间', NULL, 16, 'admin', b'0'),
  84 + (17,'2023-10-01 00:00:00', 'PERM_POSTPROC', '后加工车间', NULL, 17, 'admin', b'0'),
  85 + (18,'2023-10-01 00:00:00', 'PERM_QC_MGMT', '品质部管理', NULL, 18, 'admin', b'0'),
  86 + (19,'2023-10-01 00:00:00', 'PERM_PREMIUM_LINE', '精品车间', NULL, 19, 'admin', b'0'),
  87 + (20,'2023-10-01 00:00:00', 'PERM_HR_TEAM', '人事组', NULL, 20, 'admin', b'0'),
  88 + (21,'2023-10-01 00:00:00', 'PERM_STATS_TEAM', '统计组', NULL, 21, 'admin', b'0'),
  89 + (22,'2023-10-01 00:00:00', 'PERM_MECH_LEAD', '机修主管', NULL, 22, 'admin', b'0'),
  90 + (23,'2023-10-01 00:00:00', 'PERM_RND_STAFF', '样品开发部员工', NULL, 23, 'admin', b'0'),
  91 + (24,'2023-10-01 00:00:00', 'PERM_DESIGN', '设计开发', NULL, 24, 'admin', b'0'),
  92 + (25,'2023-10-01 00:00:00', 'PERM_GM_OFFICE', '总经办', NULL, 25, 'admin', b'0'),
  93 + (26,'2023-10-01 00:00:00', 'PERM_AUDIT_TEAM', '审核组', NULL, 26, 'admin', b'0'),
  94 + (27,'2023-10-01 00:00:00', 'PERM_SETTLE_TEAM', '结算组', NULL, 27, 'admin', b'0'),
  95 + (28,'2023-10-01 00:00:00', 'PERM_PROOF_LINE', '打样车间', NULL, 28, 'admin', b'0'),
  96 + (29,'2023-10-01 00:00:00', 'PERM_PLATE_TEAM', '制版组', NULL, 29, 'admin', b'0'),
  97 + (30,'2023-10-01 00:00:00', 'PERM_DOC_CTRL', '文控组', NULL, 30, 'admin', b'0'),
  98 + (31,'2023-10-01 00:00:00', 'PERM_ADMIN_TEAM', '行政组', NULL, 31, 'admin', b'0'),
  99 + (32,'2023-10-01 00:00:00', 'PERM_COST_TEAM', '成本组', NULL, 32, 'admin', b'0'),
  100 + (33,'2023-10-01 00:00:00', 'PERM_PURCHASE_TEAM', '采购组', NULL, 33, 'admin', b'0'),
  101 + (34,'2023-10-01 00:00:00', 'PERM_OA_ADMIN', 'OA管理员', NULL, 34, 'admin', b'0'),
  102 + (35,'2023-10-01 00:00:00', 'PERM_DEV_TEAM', '开发组', NULL, 35, 'admin', b'0'),
  103 + (36,'2023-10-01 00:00:00', 'PERM_API_INTEGR', 'API对接', NULL, 36, 'admin', b'0'),
  104 + (37,'2023-10-01 00:00:00', 'PERM_MES_ADMIN', 'MES管理员', NULL, 37, 'admin', b'0'),
  105 + (38,'2023-10-01 00:00:00', 'PERM_REPORT_TEAM', '报表组', NULL, 38, 'admin', b'0');
  106 +
  107 +-- ============================================================
  108 +-- ③ tUser (37 行) — 密码全部 BCrypt("666666")
  109 +-- admin (id=1) 是登录入口;其他用户参考 prototype 列表
  110 +-- ============================================================
  111 +INSERT INTO `tUser`
  112 + (`iIncrement`, `tCreateDate`, `sUserNo`, `sUserName`, `iStaffId`, `sUserType`, `sLanguage`,
  113 + `bCanModifyDocs`, `sPasswordHash`, `tLastLoginDate`, `sCreatedBy`, `bDeleted`)
  114 +VALUES
  115 + ( 1,'2023-10-26 17:05:58','admin','admin', 37,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-06 12:28:49','admin',b'0'),
  116 + ( 2,'2023-10-26 17:02:01','ggf','管广飞', 1,'超级管理员','en',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-02-27 17:48:11','admin',b'0'),
  117 + ( 3,'2023-10-26 17:02:58','lib','李斌', 2,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-01-28 16:53:32','admin',b'0'),
  118 + ( 4,'2023-11-20 10:29:09','zhucx','朱财喜', 3,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-03-23 10:08:29','admin',b'0'),
  119 + ( 5,'2024-10-08 13:48:59','ljh','李金辉', 4,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-06 11:14:04','yfz',b'0'),
  120 + ( 6,'2023-11-22 13:22:35','wx','汪鑫', 5,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-03-23 11:57:13','admin',b'0'),
  121 + ( 7,'2023-11-27 15:30:11','qianb','钱豹', 6,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-28 16:49:04','admin',b'0'),
  122 + ( 8,'2024-11-11 15:59:52','zyf','张寅飞', 7,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2025-09-11 11:42:12','ljh',b'0'),
  123 + ( 9,'2025-06-03 21:26:07','mengw','孟威', 8,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-06 13:56:22','admin',b'0'),
  124 + (10,'2025-06-05 11:11:56','hangrp','杭仁萍', 9,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-30 14:18:28','mengw',b'0'),
  125 + (11,'2025-06-11 10:34:29','lid','李丹', 10,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-27 13:47:58','hangrp',b'0'),
  126 + (12,'2025-06-11 10:40:22','wkm','王宽明', 11,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-25 16:07:38','lid',b'0'),
  127 + (13,'2025-06-11 10:41:07','panr','潘茹', 12,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2025-06-17 09:04:46','lid',b'0'),
  128 + (14,'2025-06-11 10:41:37','gengd','耿广东', 13,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2025-07-04 14:40:02','lid',b'0'),
  129 + (15,'2025-06-17 14:32:49','yut','余涛', 14,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-03 18:39:34','hangrp',b'0'),
  130 + (16,'2025-06-26 10:57:28','lzj','廖赵军', 15,'超级管理员','zh',b'0','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm',NULL,'hangrp',b'0'),
  131 + (17,'2025-07-28 13:59:21','caojy','曹建勇', 16,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-02-02 13:58:14','limq',b'0'),
  132 + (18,'2025-07-29 13:26:58','csx','陈淑贤', 17,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-24 15:05:52','csx',b'0'),
  133 + (19,'2025-08-18 09:34:47','zhy','张红英', 18,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2025-12-24 16:24:52','admin',b'0'),
  134 + (20,'2025-08-21 11:16:12','lzy','吕政彦', 19,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-16 08:54:24','hangrp',b'0'),
  135 + (21,'2025-09-01 11:22:00','cxt','陈鑫涛', 20,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-03-23 10:12:47','csx',b'0'),
  136 + (22,'2025-09-04 11:48:44','luxin','陆鑫', 21,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-05 17:56:03','zhangz',b'0'),
  137 + (23,'2025-09-05 11:28:37','ZY0006','陆鑫-储运部', 22,'普通用户', 'zh',b'0','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2025-11-19 09:11:27','luxin',b'0'),
  138 + (24,'2025-09-08 15:00:29','zhuxb','朱咸兵', 23,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-27 13:40:15','qianb',b'0'),
  139 + (25,'2025-09-12 16:24:07','mengzs','孟臻晟', 24,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-07 09:17:57','admin',b'0'),
  140 + (26,'2025-10-16 13:30:32','pengm','彭敏', 25,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-06 11:28:33','pengm',b'0'),
  141 + (27,'2025-10-22 10:12:00','zhangw','张伟', 26,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-03-15 09:22:14','zhangw',b'0'),
  142 + (28,'2025-11-04 16:08:21','lin','李娜', 27,'普通用户', 'zh',b'0','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-02 14:50:33','lid',b'0'),
  143 + (29,'2025-11-15 09:30:11','wangj','王军', 28,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-15 17:10:55','admin',b'0'),
  144 + (30,'2025-12-01 11:00:00','zhaom','赵敏', 29,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-01 08:45:00','zhaom',b'0'),
  145 + (31,'2025-12-08 14:22:33','zhouq','周强', 30,'普通用户', 'zh',b'0','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-20 10:30:21','qianb',b'0'),
  146 + (32,'2026-01-05 09:15:42','wul','吴丽', 31,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-04-25 15:18:09','wul',b'0'),
  147 + (33,'2026-01-18 13:55:27','zhengt','郑涛', 32,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-02 11:40:58','zhengt',b'0'),
  148 + (34,'2026-02-02 10:08:14','fengj','冯静', 33,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-04 16:25:17','fengj',b'0'),
  149 + (35,'2026-02-20 15:32:48','sunl','孙磊', 34,'普通用户', 'zh',b'0','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-05 09:55:36','admin',b'0'),
  150 + (36,'2026-03-08 11:48:09','mac','马超', 35,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-06 14:12:25','ljh',b'0'),
  151 + (37,'2026-03-22 09:00:00','zhuzc','朱子纯', 36,'超级管理员','zh',b'1','$2b$10$VbvCPbg8oq6tDr19eZOObOMvr2Cm.7UIVX3HwAQzWLS83r57lxCcm','2026-05-07 13:00:00','admin',b'0');
  152 +
  153 +-- ============================================================
  154 +-- ④ tUserPermission — admin 全部 38 权限 + 几个普通用户给少量权限
  155 +-- ============================================================
  156 +-- admin (iUserId=1) 全部 38 个权限
  157 +INSERT INTO `tUserPermission` (`tCreateDate`, `iUserId`, `iCategoryId`, `sCreatedBy`)
  158 +SELECT '2024-01-01 00:00:00', 1, c.iIncrement, 'admin'
  159 +FROM `tPermissionCategory` c;
  160 +
  161 +-- 几个普通用户/超管给典型权限组合
  162 +INSERT INTO `tUserPermission` (`tCreateDate`, `iUserId`, `iCategoryId`, `sCreatedBy`) VALUES
  163 + -- ggf (id=2) 工艺技术 → 默认 + 技术中心 + 设计开发
  164 + ('2024-01-01 00:00:00', 2, 1, 'admin'),
  165 + ('2024-01-01 00:00:00', 2, 11, 'admin'),
  166 + ('2024-01-01 00:00:00', 2, 24, 'admin'),
  167 + -- lib (id=3) 印前 → 默认 + 制版组 + 文控组
  168 + ('2024-01-01 00:00:00', 3, 1, 'admin'),
  169 + ('2024-01-01 00:00:00', 3, 29, 'admin'),
  170 + ('2024-01-01 00:00:00', 3, 30, 'admin'),
  171 + -- qianb (id=7) 物控部 → 默认 + 物控部员工 + 供应链PMC + 采购组
  172 + ('2024-01-01 00:00:00', 7, 1, 'admin'),
  173 + ('2024-01-01 00:00:00', 7, 5, 'admin'),
  174 + ('2024-01-01 00:00:00', 7, 6, 'admin'),
  175 + ('2024-01-01 00:00:00', 7, 33, 'admin'),
  176 + -- csx (id=18) 品质 → 默认 + 品质员工 + 品质管理
  177 + ('2024-01-01 00:00:00', 18, 1, 'admin'),
  178 + ('2024-01-01 00:00:00', 18, 10, 'admin'),
  179 + ('2024-01-01 00:00:00', 18, 18, 'admin'),
  180 + -- ZY0006 (id=23) 普通用户 → 仅默认 + 储运
  181 + ('2024-01-01 00:00:00', 23, 1, 'admin'),
  182 + ('2024-01-01 00:00:00', 23, 8, 'admin'),
  183 + -- lin (id=28) 普通用户 → 仅默认
  184 + ('2024-01-01 00:00:00', 28, 1, 'admin'),
  185 + -- zhaom (id=30) 财务 → 默认 + 成本组 + 结算组
  186 + ('2024-01-01 00:00:00', 30, 1, 'admin'),
  187 + ('2024-01-01 00:00:00', 30, 27, 'admin'),
  188 + ('2024-01-01 00:00:00', 30, 32, 'admin');
  189 +
  190 +-- ============================================================
  191 +-- ⑤ tModule (8 行) — 业务模块树根 + 叶子
  192 +-- ============================================================
  193 +INSERT INTO `tModule`
  194 + (`iIncrement`, `tCreateDate`, `sDisplayType`, `sProcedureName`, `sModuleType`, `sManageDeptEn`,
  195 + `bShowPermission`, `sModuleNameZh`, `iParentId`, `iSortOrder`, `sCreatedBy`, `bDeleted`)
  196 +VALUES
  197 + (1,'2024-01-01 00:00:00','系统配置','sys_root', '系统', 'SYS', b'1','系统管理', NULL, 10,'admin',b'0'),
  198 + (2,'2024-01-01 00:00:00','系统配置','sys_user_mgmt', '用户管理', 'SYS', b'1','用户管理', 1, 11,'admin',b'0'),
  199 + (3,'2024-01-01 00:00:00','系统配置','sys_perm_mgmt', '权限管理', 'SYS', b'1','权限管理', 1, 12,'admin',b'0'),
  200 + (4,'2024-01-01 00:00:00','系统配置','sys_module_mgmt', '模块管理', 'SYS', b'1','模块管理', 1, 13,'admin',b'0'),
  201 + (5,'2024-01-01 00:00:00','前端业务','biz_sales', '业务', 'SAL', b'1','销售管理', NULL, 20,'admin',b'0'),
  202 + (6,'2024-01-01 00:00:00','前端业务','biz_purchase', '业务', 'PUR', b'1','采购管理', NULL, 30,'admin',b'0'),
  203 + (7,'2024-01-01 00:00:00','前端业务','biz_inventory', '业务', 'INV', b'1','库存管理', NULL, 40,'admin',b'0'),
  204 + (8,'2024-01-01 00:00:00','前端业务','biz_quality', '业务', 'QC', b'1','质量管理', NULL, 50,'admin',b'0');
  205 +
  206 +-- 重置自增起点(37 + 1)
  207 +ALTER TABLE `tStaff` AUTO_INCREMENT = 38;
  208 +ALTER TABLE `tUser` AUTO_INCREMENT = 38;
  209 +ALTER TABLE `tPermissionCategory` AUTO_INCREMENT = 39;
  210 +ALTER TABLE `tModule` AUTO_INCREMENT = 9;
  211 +
  212 +SELECT '=== Seed 完成 ===' AS info;
  213 +SELECT 'tStaff' AS tbl, COUNT(*) AS row_count FROM `tStaff`
  214 +UNION ALL SELECT 'tPermissionCategory', COUNT(*) FROM `tPermissionCategory`
  215 +UNION ALL SELECT 'tUser', COUNT(*) FROM `tUser`
  216 +UNION ALL SELECT 'tUserPermission', COUNT(*) FROM `tUserPermission`
  217 +UNION ALL SELECT 'tModule', COUNT(*) FROM `tModule`;