yeg
2026-09-29 b78295e8da96c3e5e76befeef9582ce5273dbb74
battery-business/src/main/java/com/battery/business/service/TodoService.java
@@ -52,8 +52,18 @@
        return key.getKey().longValue();
    }
    /** 负责人只能将自己的待处理事项完成一次;写入条件同时校验身份和当前状态。 */
    public void handle(long id, long ownerId, String remark) {
    /**
     * 负责人把自己的待处理事项标记为已处理,并保存处理说明。
     *
     * <p>前置条件:操作人就是该待办的负责人,处理说明非空且不超过 500 个字符。
     * 写入条件同时校验身份和当前状态,已处理的事项不能重复处理。</p>
     *
     * @param id      待办主键
     * @param ownerId 操作人用户 ID
     * @param remark  处理说明
     * @throws ServiceException 处理说明为空或超长、待办不存在、已处理或不属于该负责人
     */
    public void completeTodo(long id, long ownerId, String remark) {
        String value = required(remark, 500, "处理说明");
        if (jdbc.update("update t_todo set status='已处理',handle_remark=?,operated_at_utc=? where todo_id=? and owner_id=? and status='待处理'",
                value, new Timestamp(System.currentTimeMillis()), id, ownerId) != 1)