邀请发送 (菜单暂隐藏, 待确认参数见 发送邀请-待确认参数.md): - 后端: BizInvite / BizInviteRecipient + Controller/Service/Mapper/XML - 邮件: InviteMailSender (spring-boot-starter-mail SMTP) + application*.yml 邮件配置 - 上传进度: UploadProgressRegistry + UploadProgressController - 前端: InviteList / InviteNew / InviteDetail / InviteView + api/business/invite.js - 原型: proto/html/components/invite-detail / new-invitation / send-invitation 登录/账号: - 首次设密: /getInfo 返回 isPasswordEmpty, SysProfileController 密码为空时跳过旧密码校验, ForcePasswordDialog 强制弹窗 - 姓名单一可信源 resolveDisplayName: doctor→biz_expert.name, sponsor/executor→biz_person.name, 其余回退 nick_name - OA compliance 门禁改为按手机号查 ecology 视图 (不再限定 manager/leader) 其它: - OSS zip 在线查看 (列清单+取单文件, 公开只读) + SecurityConfig permitAll - doctor 项目详情 ProjectDetail.vue - 数据库/测试/设计文档 (md) 入库
2.9 KiB
2.9 KiB
待优化遗留项(本次 0/1→Y/N 未改的部分)
记录时间:2026-09-06
背景:已完成
biz_project.is_finished/is_published、biz_department.status、biz_article.status、biz_meeting.labor_signed这 5 列char(1)0/1→Y/N 的迁移(test+prod 两库、后端、前端、文档四层同步)。下面是发现但未修改的项,留待下次处理。
1. 其它表 status 仍存 0/1(未纳入本次 5 列范围)
这些 status 仍是 0/1,与新 Y/N 约定不一致。
| 表.列 | 后端字面量 | 前端文件 | 备注 |
|---|---|---|---|
biz_special_plan.status |
BizSpecialPlanMapper.xml:33 status='0' |
admin/BizSpecialPlanAdmin.vue、BizSpecialPlanEdit.vue |
专项计划 |
biz_doctor_title.status |
BizDoctorTitleMapper.xml:37 status='0' |
admin/Title.vue |
医生职称 |
biz_org.status |
BizOrgMapper.xml:183 o.status='0' |
待查(机构管理页) | 机构 |
sys_user.status |
BizSysUserQueryMapper.xml:26 u.status='0' |
admin/Users.vue |
框架标准字段 |
sys_role.status |
—(框架自带) | admin/Roles.vue |
框架标准字段 |
sys_dict.status |
—(框架自带) | admin/ProjectCategory.vue |
框架标准字段 |
biz_project_assign.status |
BizProjectAssignMapper.xml:33 status='0' |
待查/可能无前端 | 项目分配 |
⚠️ 各表的 0/1 语义并不相同(有的 0=启用/1=停用,有的 0=正常/1=停用,biz_project_assign.status 含义又不同)。改之前逐个查
COLUMN_COMMENT确认,不要照搬本批次的映射方向。sys_user/sys_role/sys_dict是 RuoYi 框架标准字段,改动会影响框架行为,建议单独评估是否值得动。
2. biz_project_plan.is_finished 是死字段
- 查库确认:
biz_project_plan表没有is_finished列(全库只有biz_meeting.is_finished和biz_project.is_finished两列)。 BizProjectPlan.java:49-50的isFinished字段无对应列、无 resultMap 映射,属残留,可直接删除。
3. biz_meeting.is_finished 是 tinyint 0/1(与项目级 is_finished 同名不同型)
- DB:
biz_meeting.is_finished tinyint NOT NULL DEFAULT 0 - 后端:
BizMeeting.java的isFinished是Integer(不是 String) - 前端:
utils/meetingStage.js的isTrue()、views/meetings/Meetings.vue、MeetingDetail.vue都按 tinyint(0/1)判断 - 若也要统一成
char(1)Y/N,需改:列类型 →Integer改String→ 前端这些isOne/isTrue/isOneVal判断,改动面较大,建议单独评估。
4. biz_meeting.labor_signed 签署链路未接线
- 已改成
char(1)Y/N(默认N),但全库该列从未出现过 Y:test 46 条、prod 3 条全N。 - 代码里无
setLaborSigned(...)调用,前端无laborSigned引用——「签署劳务」动作目前未实现。 - 将来实现签署时,落库值要写
'Y'(不是旧'1')。