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:
@@ -72,6 +72,8 @@ public class SecurityConfig
|
||||
.requestMatchers(HttpMethod.POST, "/business/meetingMaterial/cameraUpload").permitAll()
|
||||
// 业务公开门户与注册入口可匿名访问; 字典 active/单查公开, 写操作需登录+权限
|
||||
.requestMatchers("/business/public/**", "/business/publicity/**", "/business/auth/**", "/business/sms/**").permitAll()
|
||||
// 医院字典远程搜索 (医生注册下拉"边输入边查询", 未登录可访问)
|
||||
.requestMatchers(HttpMethod.GET, "/business/hospital/search").permitAll()
|
||||
// 字典 active (只读) + 按 ID 查 公开给前端拉下拉数据
|
||||
.requestMatchers(HttpMethod.GET, "/business/dict/department/active", "/business/dict/title/active",
|
||||
"/business/dict/department/*", "/business/dict/title/*").permitAll()
|
||||
|
||||
Reference in New Issue
Block a user