批量推送

This commit is contained in:
郭庆泰
2026-08-16 13:42:26 +08:00
parent c612d4297a
commit 0c093076a4
66 changed files with 4847 additions and 1627 deletions
+32 -39
View File
@@ -60,17 +60,19 @@ SELECT meeting_id, 'ZH-2026-658', '小牛血清创新应用研讨会', '北京
SELECT meeting_id, 'ZH-2026-658', '小牛血清创新应用研讨会', '北京会务服务公司', '其他费用', 1000.00, 1, 1000.00, '茶水等', '已审核', 'labor' FROM biz_meeting WHERE business_id='5643145673';
-- 专家
-- audit_status: 0=未提交 1=待审核 2=通过 3=拒绝 (BizAuditStatusEnum)
-- status: Y=正常 N=禁用
INSERT INTO biz_expert(name, phone, work_unit, department, title, region, id_card, audit_status, audit_by, audit_time, status, create_by, create_time)
VALUES
('张三', '13534621147', '北京XXXXXXX医院', '呼吸科', '主任医师', '北京', '110101198501011234', '待审核', 'admin', NOW(), '0', 'admin', NOW()),
('李四', '13534621148', '北京XXXXXXX医院', '血液科', '副主任医师', '北京', '110101198801012345', '审核通过', 'admin', NOW(), '0', 'admin', NOW()),
('王五', '13534621149', '北京XXXXXXX医院', '心血管科', '主治医师', '上海', '310101198901013456', '待审核', 'admin', NOW(), '0', 'admin', NOW()),
('赵六', '13534621150', '北京XXXXXXX医院', '神经科', '副主任医师', '广东', '440101198701014567', '已退回', 'admin', NOW(), '0', 'admin', NOW()),
('钱七', '13534621151', '北京XXXXXXX医院', '内分泌科', '主任医师', '北京', '110101199001015678', '审核通过', 'admin', NOW(), '0', 'admin', NOW()),
('陈教授', '13534621152', '北京XXXXXXX医院', '消化科', '副主任医师', '北京', '110101198601016789', '审核通过', 'admin', NOW(), '0', 'admin', NOW()),
('王教授', '13534621153', '北京XXXXXXX医院', '心血管科', '主任医师', '上海', '310101198401017890', '审核通过', 'admin', NOW(), '0', 'admin', NOW()),
('李教授', '13534621154', '北京XXXXXXX医院', '神经科', '主治医师', '北京', '110101199201018901', '审核通过', 'admin', NOW(), '0', 'admin', NOW()),
('张教授', '13534621155', '北京XXXXXXX医院', '骨科', '主任医师', '北京', '110101198501019012', '已驳回', 'admin', NOW(), '0', 'admin', NOW());
('张三', '13534621147', '北京XXXXXXX医院', '呼吸科', '主任医师', '北京', '110101198501011234', '1', 'admin', NOW(), 'Y', 'admin', NOW()),
('李四', '13534621148', '北京XXXXXXX医院', '血液科', '副主任医师', '北京', '110101198801012345', '2', 'admin', NOW(), 'Y', 'admin', NOW()),
('王五', '13534621149', '北京XXXXXXX医院', '心血管科', '主治医师', '上海', '310101198901013456', '1', 'admin', NOW(), 'Y', 'admin', NOW()),
('赵六', '13534621150', '北京XXXXXXX医院', '神经科', '副主任医师', '广东', '440101198701014567', '3', 'admin', NOW(), 'Y', 'admin', NOW()),
('钱七', '13534621151', '北京XXXXXXX医院', '内分泌科', '主任医师', '北京', '110101199001015678', '2', 'admin', NOW(), 'Y', 'admin', NOW()),
('陈教授', '13534621152', '北京XXXXXXX医院', '消化科', '副主任医师', '北京', '110101198601016789', '2', 'admin', NOW(), 'Y', 'admin', NOW()),
('王教授', '13534621153', '北京XXXXXXX医院', '心血管科', '主任医师', '上海', '310101198401017890', '2', 'admin', NOW(), 'Y', 'admin', NOW()),
('李教授', '13534621154', '北京XXXXXXX医院', '神经科', '主治医师', '北京', '110101199201018901', '2', 'admin', NOW(), 'Y', 'admin', NOW()),
('张教授', '13534621155', '北京XXXXXXX医院', '骨科', '主任医师', '北京', '110101198501019012', '3', 'admin', NOW(), 'Y', 'admin', NOW());
-- 公司表 (赞助方/执行方共用)
INSERT INTO biz_org(org_name, org_type, address, tax_no, contact_name, contact_phone, intent_count, status, create_by, create_time)
@@ -97,23 +99,23 @@ VALUES
-- 人员(执行方会务执行, org_id 对应 biz_execution_unit 那 8 条, 取前 5 个 org_id)
INSERT INTO biz_person(name, phone, org_id, department, position, role, unit_type, status, create_by, create_time)
VALUES
('张三', '13534621147', 1, '会务部', '经理', '会务执行', 'execution', '0', 'admin', NOW()),
('李四', '13534621148', 1, '会务部', '专员', '会务执行', 'execution', '0', 'admin', NOW()),
('王五', '13534621149', 2, '会务部', '主管', '会务执行', 'execution', '0', 'admin', NOW()),
('赵六', '13534621150', 2, '会务部', '专员', '会务执行', 'execution', '0', 'admin', NOW()),
('钱七', '13534621151', 3, '会务部', '经理', '会务执行', 'execution', '0', 'admin', NOW()),
('孙八', '13534621152', 3, '会务部', '专员', '会务执行', 'execution', '0', 'admin', NOW()),
('周九', '13534621153', 4, '会务部', '主管', '会务执行', 'execution', '1', 'admin', NOW()),
('吴十', '13534621154', 4, '会务部', '专员', '会务执行', 'execution', '0', 'admin', NOW());
('张三', '13534621147', 1, '会务部', '经理', '会务执行', 'executor', '0', 'admin', NOW()),
('李四', '13534621148', 1, '会务部', '专员', '会务执行', 'executor', '0', 'admin', NOW()),
('王五', '13534621149', 2, '会务部', '主管', '会务执行', 'executor', '0', 'admin', NOW()),
('赵六', '13534621150', 2, '会务部', '专员', '会务执行', 'executor', '0', 'admin', NOW()),
('钱七', '13534621151', 3, '会务部', '经理', '会务执行', 'executor', '0', 'admin', NOW()),
('孙八', '13534621152', 3, '会务部', '专员', '会务执行', 'executor', '0', 'admin', NOW()),
('周九', '13534621153', 4, '会务部', '主管', '会务执行', 'executor', '1', 'admin', NOW()),
('吴十', '13534621154', 4, '会务部', '专员', '会务执行', 'executor', '0', 'admin', NOW());
-- 人员(合规方项目负责人/会议执行/监察员, org_id 对应 sponsor 类型 biz_org 前 5 个)
INSERT INTO biz_person(name, phone, org_id, department, position, role, unit_type, status, create_by, create_time)
VALUES
('张三', '13800138001', 1, '合规部', '经理', '项目负责人', 'execution', '0', 'admin', NOW()),
('李四', '13800138002', 2, '合规部', '专员', '会议执行', 'execution', '0', 'admin', NOW()),
('王五', '13800138003', 3, '监察组', '组长', '监察员', 'execution', '0', 'admin', NOW()),
('赵六', '13800138004', 4, '监察组', '专员', '监察员', 'execution', '0', 'admin', NOW()),
('钱七', '13800138005', 5, '合规部', '主管', '项目负责人', 'execution', '0', 'admin', NOW());
('张三', '13800138001', 1, '合规部', '经理', '项目负责人', 'executor', '0', 'admin', NOW()),
('李四', '13800138002', 2, '合规部', '专员', '会议执行', 'executor', '0', 'admin', NOW()),
('王五', '13800138003', 3, '监察组', '组长', '监察员', 'executor', '0', 'admin', NOW()),
('赵六', '13800138004', 4, '监察组', '专员', '监察员', 'executor', '0', 'admin', NOW()),
('钱七', '13800138005', 5, '合规部', '主管', '项目负责人', 'executor', '0', 'admin', NOW());
-- 支持意向
INSERT INTO biz_support_intent(project_no, project_name, name, work_unit, department, position, phone, account_status, create_time)
@@ -192,27 +194,18 @@ VALUES
('LV-2026-003', 3, '智慧医院建设项目方案论证', '李教授', '440101********9012', '6222****3456', 4000.00, '2026-03-16 10:00:00', '已审核'),
('LV-2026-004', 4, '基层医疗改革试点中期评估', '张教授', '320101********3456', '6222****7890', 3500.00, '2026-02-02 10:00:00', '已驳回');
-- 业务角色绑定(为 sys_user 建立业务角色映射)
-- 业务角色绑定 (2026-08-16 重构: 统一存 sys_user.role_type, 不再使用 biz_user_role_bind)
-- admin: 1=后台管理员
INSERT INTO biz_user_role_bind(user_id, role_type, unit_type, create_time)
SELECT user_id, 'admin', NULL, NOW() FROM sys_user WHERE user_name='admin';
UPDATE sys_user SET role_type='admin' WHERE user_name='admin';
-- 创建 5 个业务角色用户 (密码 123456, RuoYi 加密后)
INSERT INTO sys_user(user_name, nick_name, user_type, email, phonenumber, sex, avatar, password, status, del_flag, login_ip, create_by, create_time, remark)
INSERT INTO sys_user(user_name, nick_name, user_type, email, phonenumber, sex, avatar, password, status, del_flag, login_ip, create_by, create_time, remark, role_type)
VALUES
('leader01', '项目负责人张三', '00', 'leader01@bahim.org.cn', '13900139001', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', 'admin', NOW(), '项目负责人'),
('manager01', '合规员李四', '00', 'manager01@bahim.org.cn', '13900139002', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', 'admin', NOW(), '合规人员'),
('doctor01', '专家王五', '00', 'doctor01@bahim.org.cn', '13900139003', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', 'admin', NOW(), '专家'),
('executor01', '执行负责人赵六', '00', 'executor01@bahim.org.cn', '13900139004', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', 'admin', NOW(), '执行方'),
('sponsor01', '赞助方钱七', '00', 'sponsor01@bahim.org.cn', '13900139005', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', 'admin', NOW(), '赞助方');
-- 绑定业务角色
INSERT INTO biz_user_role_bind(user_id, role_type, unit_type, create_time)
SELECT user_id, 'leader', NULL, NOW() FROM sys_user WHERE user_name='leader01' UNION ALL
SELECT user_id, 'manager', NULL, NOW() FROM sys_user WHERE user_name='manager01' UNION ALL
SELECT user_id, 'doctor', NULL, NOW() FROM sys_user WHERE user_name='doctor01' UNION ALL
SELECT user_id, 'executor', 'execution', NOW() FROM sys_user WHERE user_name='executor01' UNION ALL
SELECT user_id, 'sponsor', 'sponsor', NOW() FROM sys_user WHERE user_name='sponsor01';
('leader01', '项目负责人张三', '00', 'leader01@bahim.org.cn', '13900139001', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', 'admin', NOW(), '项目负责人', 'leader'),
('manager01', '合规员李四', '00', 'manager01@bahim.org.cn', '13900139002', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', 'admin', NOW(), '合规人员', 'manager'),
('doctor01', '专家王五', '00', 'doctor01@bahim.org.cn', '13900139003', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', 'admin', NOW(), '专家', 'doctor'),
('executor01', '执行负责人赵六', '00', 'executor01@bahim.org.cn', '13900139004', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', 'admin', NOW(), '执行方', 'executor'),
('sponsor01', '赞助方钱七', '00', 'sponsor01@bahim.org.cn', '13900139005', '0', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', 'admin', NOW(), '赞助方', 'sponsor');
-- 给所有业务用户配项目负责人角色(ruoyi role_id=2)
INSERT INTO sys_user_role(user_id, role_id)
+4 -13
View File
@@ -174,11 +174,11 @@ CREATE TABLE biz_expert (
id_card_back_url VARCHAR(500) DEFAULT NULL COMMENT '身份证反面URL',
practice_cert_url VARCHAR(500) DEFAULT NULL COMMENT '执业证书URL',
title_cert_url VARCHAR(500) DEFAULT NULL COMMENT '职称证明URL',
audit_status VARCHAR(20) DEFAULT '0' COMMENT '审核状态 待审核/审核通过/已退回',
audit_status VARCHAR(20) DEFAULT '1' COMMENT '审核状态 0未提交 1待审核 2通过 3拒绝',
audit_opinion VARCHAR(500) DEFAULT NULL COMMENT '审核意见',
audit_by VARCHAR(64) DEFAULT NULL COMMENT '审核人',
audit_time DATETIME DEFAULT NULL COMMENT '审核时间',
status CHAR(1) DEFAULT '0' COMMENT '状态 0正常 1禁用',
status CHAR(1) DEFAULT 'Y' COMMENT '状态 Y正常 N禁用',
create_by VARCHAR(64) DEFAULT '' COMMENT '创建者',
create_time DATETIME DEFAULT NULL COMMENT '创建时间',
update_by VARCHAR(64) DEFAULT '' COMMENT '更新者',
@@ -392,17 +392,8 @@ CREATE TABLE biz_labor_voucher (
UNIQUE KEY uk_voucher_no (voucher_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='劳务凭证表';
DROP TABLE IF EXISTS biz_user_role_bind;
CREATE TABLE biz_user_role_bind (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
user_id BIGINT NOT NULL COMMENT '用户ID',
role_type VARCHAR(20) NOT NULL COMMENT '业务角色 admin/leader/manager/doctor/executor/sponsor (注: 原 supplier 角色已统一为 executor, 见 2026-08-15 重构)',
unit_id BIGINT DEFAULT NULL COMMENT '所属单位ID',
unit_type VARCHAR(20) DEFAULT NULL COMMENT '所属单位类型',
create_time DATETIME DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (id),
UNIQUE KEY uk_urb_user (user_id, role_type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户业务角色绑定';
-- 注: 2026-08-16 重构, 删 biz_user_role_bind 表, 业务角色统一存 sys_user.role_type
-- sys_user 表在 RuoYi 标准 schema 里已含 role_type 列 (admin/leader/manager/doctor/executor/sponsor)
SET FOREIGN_KEY_CHECKS = 1;
@@ -0,0 +1,45 @@
-- ============================================================
-- Migration: biz_expert.audit_status 0/1/2/中文 → 0/1/2/3 (语义扩展)
-- Date: 2026-08-16
-- Author: Claude
-- 影响范围: biz_expert 表的 audit_status 字段
-- 旧语义: '0' = 待审核, '1' = 通过, '2' = 退回 (还有中文脏数据: '审核通过'/'待审核'/'已退回'/'已驳回')
-- 新语义: '0' = 未提交, '1' = 待审核, '2' = 通过, '3' = 拒绝
-- 注意: status 字段已改成 Y/N (见 migration_status_YN_2026_08_16.sql)
-- ============================================================
-- 0. 备份 (必须做, 用于回滚)
CREATE TABLE biz_expert_audit_status_bak_20260816 AS
SELECT expert_id, name, audit_status FROM biz_expert;
-- 1. 单条 CASE UPDATE, 一次搞定 (避免 cascading: '0'→'1' 后被 '1'→'2' 误改)
UPDATE biz_expert
SET audit_status = CASE audit_status
WHEN '0' THEN '1' -- 待审核 (旧) → 待审核 (新)
WHEN '1' THEN '2' -- 通过 (旧) → 通过 (新)
WHEN '2' THEN '3' -- 退回 (旧) → 拒绝 (新)
WHEN '审核通过' THEN '2'
WHEN '待审核' THEN '1'
WHEN '已退回' THEN '3'
WHEN '已驳回' THEN '3'
ELSE audit_status -- 未识别的值不动, 人工排查
END
WHERE audit_status IN ('0','1','2','审核通过','待审核','已退回','已驳回');
-- 2. ALTER 默认值 + comment
ALTER TABLE biz_expert
MODIFY COLUMN audit_status VARCHAR(20) DEFAULT '1' COMMENT '审核状态 0未提交 1待审核 2通过 3拒绝';
-- 3. 验证 (执行后应全部为 1/2/3)
-- SELECT audit_status, COUNT(*) FROM biz_expert GROUP BY audit_status ORDER BY audit_status;
-- 预期结果 (取决于生产数据):
-- 1 | 待审核
-- 2 | 通过
-- 3 | 拒绝
-- 4. 若有数据未转换 (上面 ELSE 分支), 用 SELECT 排查:
-- SELECT expert_id, name, audit_status FROM biz_expert
-- WHERE audit_status NOT IN ('0','1','2','3') OR audit_status IS NULL;
-- 5. 确认无误后, 可删除备份表:
-- DROP TABLE biz_expert_audit_status_bak_20260816;
+27
View File
@@ -0,0 +1,27 @@
-- ============================================================
-- Migration: biz_expert.status 0/1 → Y/N
-- Date: 2026-08-16
-- Author: Claude
-- 影响范围: biz_expert 表的 status 字段
-- 旧语义: '0' = 正常, '1' = 禁用
-- 新语义: 'Y' = 正常, 'N' = 禁用
-- 注意: audit_status (0/1/2) 不变
-- ============================================================
-- 0. 备份 (可选, 已上生产前一定要做)
-- CREATE TABLE biz_expert_status_bak_20260816 AS
-- SELECT expert_id, status FROM biz_expert;
-- 1. 数据迁移 (先转换旧值, 避免默认值变化后插入冲突)
UPDATE biz_expert SET status = 'Y' WHERE status = '0';
UPDATE biz_expert SET status = 'N' WHERE status = '1';
-- 2. 表结构变更 (默认值 + 注释)
ALTER TABLE biz_expert
MODIFY COLUMN status CHAR(1) DEFAULT 'Y' COMMENT '状态 Y正常 N禁用';
-- 3. 验证 (执行后应全部为 Y/N)
-- SELECT status, COUNT(*) FROM biz_expert GROUP BY status;
-- 预期结果:
-- Y | 10
-- N | 0