feat: 项目分配通知支持方主账号 + 结题前置检查未结算会议
#8 项目分配 → 支持方主账号待办通知 - BizProjectController.edit 检测 sponsor_org_id 变更 (null→org / A→B) 调 BizNotifyService.projectAssignedToSupportOrg 发待办给支持方主账号 (biz_org.user_id, MAIN sponsor). 去掉支持方 (置 null) 不发. - BizNotifyService 新增 projectAssignedToSupportOrg, 与既有的 projectAssignedToSponsor (通知 SUB 监察员) 配套, 共 2 条. 结题前置检查 (manager) - BizProjectController 新增 GET /business/project/meetingSettlement 入参 projectIds 逗号分隔, 查还有未结算会议 (is_settled<>1) 的项目, 仅返回 unsettledCount>0 项. - BizProjectMapper.checkMeetingSettled (LinkedHashMap, HAVING > 0). - manager/Projects.vue openClose 先调该端点, 有未结算会议时弹警告 ElMessageBox.confirm (允许强制结题). 后端失败兜底空数组不阻塞. Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -57,6 +57,7 @@ const routes = [
|
||||
{ path: 'special-plan/new', name: 'admin-special-plan-new', component: () => import('@/views/admin/BizSpecialPlanEdit.vue'), meta: { title: '新建专项计划' } },
|
||||
{ path: 'special-plan/edit/:id', name: 'admin-special-plan-edit', component: () => import('@/views/admin/BizSpecialPlanEdit.vue'), meta: { title: '编辑专项计划' } },
|
||||
{ path: 'project-category', name: 'admin-project-category', component: () => import('@/views/admin/ProjectCategory.vue'), meta: { title: '项目类别管理' } },
|
||||
{ path: 'hospital', name: 'admin-hospital', component: () => import('@/views/admin/Hospital.vue'), meta: { title: '医院管理' } },
|
||||
{ path: 'labor-protocol', name: 'admin-labor-protocol', component: () => import('@/views/admin/LaborProtocol.vue'), meta: { title: '劳务协议配置' } },
|
||||
{ path: 'labor-protocol/new', name: 'admin-labor-protocol-new', component: () => import('@/views/admin/LaborProtocolEdit.vue'), meta: { title: '新建劳务协议模板' } },
|
||||
{ path: 'labor-protocol/edit/:id', name: 'admin-labor-protocol-edit', component: () => import('@/views/admin/LaborProtocolEdit.vue'), meta: { title: '编辑劳务协议模板' } },
|
||||
|
||||
Reference in New Issue
Block a user