From cd046782d98520fcf4c57d9bc81381a3cc668367 Mon Sep 17 00:00:00 2001 From: chenxing Date: Sat, 10 Oct 2026 22:43:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(flow):=20=E7=A7=91=E5=AE=A4/=E6=88=90?= =?UTF-8?q?=E5=91=98=E7=AB=AF=E7=82=B9=E8=A1=A5=20requireId=20=E8=BE=B9?= =?UTF-8?q?=E7=95=8C=E9=98=B2=E6=8A=A4=E2=80=94=E2=80=94=E7=BC=BA=20id=20?= =?UTF-8?q?=E5=9B=9E=E4=B8=9A=E5=8A=A1=E9=94=99=E8=80=8C=E9=9D=9E=20findBy?= =?UTF-8?q?Id(null)=20=E7=AC=BC=E7=BB=9F=20500=EF=BC=88=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E9=AA=8C=E6=94=B6=E5=8F=8D=E9=A6=88=20R2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/FlowAdminController.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/yunhai/flowcenter/controller/api/FlowAdminController.java b/src/main/java/com/yunhai/flowcenter/controller/api/FlowAdminController.java index d4f79a0..a5c91c1 100644 --- a/src/main/java/com/yunhai/flowcenter/controller/api/FlowAdminController.java +++ b/src/main/java/com/yunhai/flowcenter/controller/api/FlowAdminController.java @@ -12,6 +12,8 @@ import com.yunhai.flowcenter.service.FlowCallbackAdminService; import com.yunhai.flowcenter.service.FlowDefAdminService; import com.yunhai.flowcenter.service.FlowDiagramService; import com.yunhai.flowcenter.service.FlowMapAdminService; +import com.yunhai.platform.apistd.BizException; +import com.yunhai.platform.utils.exception.ErrorCode; import com.yunhai.platform.utils.model.BasePageResult; import com.yunhai.platform.utils.model.BoaUser; import lombok.RequiredArgsConstructor; @@ -178,21 +180,21 @@ public class FlowAdminController { @PostMapping("/dept/rename") public com.yunhai.flowcenter.entity.FlwDept deptRename(BoaUser user, @RequestBody Map body) { Long schId = adminGuard.requireAdmin(user, null); - return deptAdminService.rename(schId, longVal(body.get("id")), (String) body.get("deptName")); + return deptAdminService.rename(schId, requireId(body.get("id")), (String) body.get("deptName")); } /** 停用/启用科室(停用=解析不出办理人、发布校验拦新引用;成员不动) */ @PostMapping("/dept/status") public void deptStatus(BoaUser user, @RequestBody Map body) { Long schId = adminGuard.requireAdmin(user, null); - deptAdminService.setStatus(schId, longVal(body.get("id")), boolVal(body.get("enabled"))); + deptAdminService.setStatus(schId, requireId(body.get("id")), boolVal(body.get("enabled"))); } /** 删除科室(级联删成员;被流程引用的 deptKey 将解析失败——发布校验/办理时会拦) */ @PostMapping("/dept/delete") public void deptDelete(BoaUser user, @RequestBody Map body) { Long schId = adminGuard.requireAdmin(user, null); - deptAdminService.delete(schId, longVal(body.get("id"))); + deptAdminService.delete(schId, requireId(body.get("id"))); } @GetMapping("/dept/members") @@ -214,13 +216,13 @@ public class FlowAdminController { } } } - return deptAdminService.memberAdd(schId, longVal(body.get("deptId")), userIds); + return deptAdminService.memberAdd(schId, requireId(body.get("deptId")), userIds); } @PostMapping("/dept/memberRemove") public void deptMemberRemove(BoaUser user, @RequestBody Map body) { Long schId = adminGuard.requireAdmin(user, null); - deptAdminService.memberRemove(schId, longVal(body.get("memberId"))); + deptAdminService.memberRemove(schId, requireId(body.get("memberId"))); } /** @@ -242,6 +244,15 @@ public class FlowAdminController { return o == null ? null : Long.valueOf(String.valueOf(o)); } + /** 科室/成员行 id 缺失=调用方bug/脏请求:回业务错提示,不让 findById(null) 炸成笼统 500 */ + private static Long requireId(Object o) { + Long v = longVal(o); + if (v == null) { + throw new BizException(ErrorCode.PARAM_ERROR, "缺少 id"); + } + return v; + } + private static boolean boolVal(Object o) { return o == null ? false : Boolean.parseBoolean(String.valueOf(o)); }