From 2f4874be3a28f64bb830f8e434e00fedac244fa8 Mon Sep 17 00:00:00 2001 From: zichun Date: Thu, 30 Apr 2026 19:11:49 +0800 Subject: [PATCH] chore(scripts): add seed-dev-data.sh for realistic dev/test fixtures --- scripts/seed-dev-data.sh | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+), 0 deletions(-) create mode 100644 scripts/seed-dev-data.sh diff --git a/scripts/seed-dev-data.sh b/scripts/seed-dev-data.sh new file mode 100644 index 0000000..17a1318 --- /dev/null +++ b/scripts/seed-dev-data.sh @@ -0,0 +1,258 @@ +#!/usr/bin/env bash +# scripts/seed-dev-data.sh — Populate dev/test DB with realistic-looking +# print-industry data covering everything wired in the frontend. +# +# Idempotent: every INSERT uses IGNORE on a unique key so repeated runs +# won't duplicate rows. Safe to re-run after any code change. +# +# Prerequisites: +# 1. .env.local with DB_HOST/DB_PORT/DB_SCHEMA/DB_USER/DB_PASSWORD +# 2. Schema must exist — i.e. Spring Boot has started at least once so +# Flyway has applied V1 (creates tUser/tStaff/tPermissionCategory/ +# tUserPermission/tModule). +# +# What it seeds: +# tStaff — 20 employees with name, dept, staff number +# tUser — admin + 18 users, BCrypt(666666), linked to staff +# tPermissionCategory — 30 permission groups matching prototype's grid +# tUserPermission — common permissions assigned to non-admin users +# tModule — 6 root flows + 24 leaf modules (KPI tree + 系统设置) + +set -euo pipefail + +for p in /opt/homebrew/opt/mysql-client/bin /usr/local/opt/mysql-client/bin; do + [ -d "$p" ] && case ":$PATH:" in *":$p:"*) ;; *) PATH="$p:$PATH" ;; esac +done + +ENV_FILE="$(dirname "$0")/../.env.local" +[ -f "$ENV_FILE" ] || { echo "[seed-dev-data] ⚠️ .env.local 不存在($ENV_FILE)" >&2; exit 1; } + +set -a; . "$ENV_FILE"; set +a + +# BCrypt(666666) cost 10. Spring's BCryptPasswordEncoder accepts $2a$/$2b$. +HASH='$2b$10$ZzbGP0yWo3QJkaiZqEgtAOQVrzrti911VqbY7FoethhGQFPV0/Oj6' + +echo "[seed-dev-data] target: ${DB_USER}@${DB_HOST}:${DB_PORT}/${DB_SCHEMA}" + +mysql -h"${DB_HOST}" -P"${DB_PORT}" -u"${DB_USER}" -p"${DB_PASSWORD}" "${DB_SCHEMA}" <客户确认', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_QuoteFlow') AS x),2,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_QuoteCustConfirm','单据','Pricing',1,'03/04 客户确认->二次确认', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_QuoteFlow') AS x),3,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_QuoteToOrder','单据','Pricing',1,'04/04 报价单->销售订单', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_QuoteFlow') AS x),4,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_QuoteToImpose','单据','Pricing',1,'04/04 报价单->转拼版单', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_QuoteFlow') AS x),5,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_QuoteSupervisorAudit','单据','Pricing',1,'04/07 主管审核报价单', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_QuoteFlow') AS x),6,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_QuoteSalesConfirm','单据','Pricing',1,'05/07 业务确认报价单', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_QuoteFlow') AS x),7,'admin',0); + +-- 2. 订单生产流程 +INSERT IGNORE INTO tModule (sBrandsId,sSubsidiaryId,tCreateDate,sDisplayType,sProcedureName,sModuleType,sManageDeptEn,bShowPermission,sModuleNameZh,iParentId,iSortOrder,sCreatedBy,bDeleted) VALUES +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_OrderFlow','KPI流程','Production',1,'订单生产流程',NULL,2,'admin',0); +INSERT IGNORE INTO tModule (sBrandsId,sSubsidiaryId,tCreateDate,sDisplayType,sProcedureName,sModuleType,sManageDeptEn,bShowPermission,sModuleNameZh,iParentId,iSortOrder,sCreatedBy,bDeleted) VALUES +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_OrderCreate','单据','Production',1,'01/03 销售订单->生产任务单', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_OrderFlow') AS x),1,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_OrderDispatch','单据','Production',1,'02/03 任务单分派', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_OrderFlow') AS x),2,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_OrderComplete','单据','Production',1,'03/03 任务单完成', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_OrderFlow') AS x),3,'admin',0); + +-- 3. 自动拼版流程 +INSERT IGNORE INTO tModule (sBrandsId,sSubsidiaryId,tCreateDate,sDisplayType,sProcedureName,sModuleType,sManageDeptEn,bShowPermission,sModuleNameZh,iParentId,iSortOrder,sCreatedBy,bDeleted) VALUES +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_PanelFlow','KPI流程','Imposition',1,'自动拼版流程',NULL,3,'admin',0); +INSERT IGNORE INTO tModule (sBrandsId,sSubsidiaryId,tCreateDate,sDisplayType,sProcedureName,sModuleType,sManageDeptEn,bShowPermission,sModuleNameZh,iParentId,iSortOrder,sCreatedBy,bDeleted) VALUES +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_PanelCreate','单据','Imposition',1,'01/02 拼版任务生成', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_PanelFlow') AS x),1,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_PanelAudit','单据','Imposition',1,'02/02 拼版审核', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_PanelFlow') AS x),2,'admin',0); + +-- 4. 销售送货流程 +INSERT IGNORE INTO tModule (sBrandsId,sSubsidiaryId,tCreateDate,sDisplayType,sProcedureName,sModuleType,sManageDeptEn,bShowPermission,sModuleNameZh,iParentId,iSortOrder,sCreatedBy,bDeleted) VALUES +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_ShipFlow','KPI流程','Logistics',1,'销售送货流程',NULL,4,'admin',0); +INSERT IGNORE INTO tModule (sBrandsId,sSubsidiaryId,tCreateDate,sDisplayType,sProcedureName,sModuleType,sManageDeptEn,bShowPermission,sModuleNameZh,iParentId,iSortOrder,sCreatedBy,bDeleted) VALUES +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_ShipCreate','单据','Logistics',1,'01/02 发货单创建', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_ShipFlow') AS x),1,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_ShipConfirm','单据','Logistics',1,'02/02 签收确认', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_ShipFlow') AS x),2,'admin',0); + +-- 5. 物料采购流程 +INSERT IGNORE INTO tModule (sBrandsId,sSubsidiaryId,tCreateDate,sDisplayType,sProcedureName,sModuleType,sManageDeptEn,bShowPermission,sModuleNameZh,iParentId,iSortOrder,sCreatedBy,bDeleted) VALUES +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_PurchFlow','KPI流程','Purchasing',1,'物料采购流程',NULL,5,'admin',0); +INSERT IGNORE INTO tModule (sBrandsId,sSubsidiaryId,tCreateDate,sDisplayType,sProcedureName,sModuleType,sManageDeptEn,bShowPermission,sModuleNameZh,iParentId,iSortOrder,sCreatedBy,bDeleted) VALUES +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_PurchRequest','单据','Purchasing',1,'01/03 采购申请', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_PurchFlow') AS x),1,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_PurchOrder','单据','Purchasing',1,'02/03 采购订单', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_PurchFlow') AS x),2,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','前端业务','Sp_PurchReceive','单据','Purchasing',1,'03/03 入库确认', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_PurchFlow') AS x),3,'admin',0); + +-- 6. 系统设置 +INSERT IGNORE INTO tModule (sBrandsId,sSubsidiaryId,tCreateDate,sDisplayType,sProcedureName,sModuleType,sManageDeptEn,bShowPermission,sModuleNameZh,iParentId,iSortOrder,sCreatedBy,bDeleted) VALUES +('XLY','XLY','2024-01-10 08:00:00','系统配置','Sp_SysFlow','系统','SysAdmin',0,'系统设置',NULL,99,'admin',0); +INSERT IGNORE INTO tModule (sBrandsId,sSubsidiaryId,tCreateDate,sDisplayType,sProcedureName,sModuleType,sManageDeptEn,bShowPermission,sModuleNameZh,iParentId,iSortOrder,sCreatedBy,bDeleted) VALUES +('XLY','XLY','2024-01-10 08:00:00','系统配置','Sp_SysUserList','单据','SysAdmin',0,'用户列表', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_SysFlow') AS x),1,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','系统配置','Sp_SysModuleConfig','单据','SysAdmin',0,'系统模块配置', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_SysFlow') AS x),2,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','系统配置','Sp_SysRole','单据','SysAdmin',0,'角色管理', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_SysFlow') AS x),3,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','系统配置','Sp_SysMenu','单据','SysAdmin',0,'菜单配置', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_SysFlow') AS x),4,'admin',0), +('XLY','XLY','2024-01-10 08:00:00','系统配置','Sp_SysLog','单据','SysAdmin',0,'操作日志', (SELECT iIncrement FROM (SELECT iIncrement FROM tModule WHERE sProcedureName='Sp_SysFlow') AS x),5,'admin',0); + +SELECT + (SELECT COUNT(*) FROM tStaff) AS staff_rows, + (SELECT COUNT(*) FROM tUser) AS user_rows, + (SELECT COUNT(*) FROM tPermissionCategory) AS perm_cat_rows, + (SELECT COUNT(*) FROM tUserPermission) AS user_perm_rows, + (SELECT COUNT(*) FROM tModule) AS module_rows; +SQL + +echo "[seed-dev-data] OK" -- libgit2 0.22.2