Sign in

    mldong/jeeflow-core/model does not have a README file

    CcInstance

    pub(all) struct CcInstance {
    id : Int64
    process_instance_id : Int64
    actor_id : String
    state : Int
    create_time : String?
    create_user : String?
    update_time : String?
    update_user : String?
    } derive(Eq)

    CcInstance::equal

    fn CcInstance::equal(CcInstance, CcInstance) -> Bool
    automatically derived

    CcInstance::not_equal

    fn CcInstance::not_equal(x : CcInstance, y : CcInstance) -> Bool

    CountersignType

    pub(all) enum CountersignType {
    Parallel
    Sequential
    } derive(Eq,
    Debug
    )

    CountersignType::equal

    automatically derived

    CountersignType::from_str_name

    fn CountersignType::from_str_name(s : String) -> CountersignType

    CountersignType::not_equal

    fn CountersignType::not_equal(x : CountersignType, y : CountersignType) -> Bool

    CountersignType::to_repr

    automatically derived

    DefineRow

    pub(all) struct DefineRow {
    id : Int64
    name : String
    display_name : String
    define_type : String
    state : Int
    version : Int
    create_time : String?
    create_user : String?
    update_time : String?
    update_user : String?
    } derive(Eq)
    定义行

    DefineRow::equal

    fn DefineRow::equal(DefineRow, DefineRow) -> Bool
    automatically derived

    DefineRow::new_empty

    fn DefineRow::new_empty() -> DefineRow

    DefineRow::not_equal

    fn DefineRow::not_equal(x : DefineRow, y : DefineRow) -> Bool

    DefineState

    pub(all) enum DefineState {
    Disable
    Enable
    } derive(Eq,
    Debug
    )

    DefineState::code

    fn DefineState::code(self : DefineState) -> Int

    DefineState::equal

    fn DefineState::equal(DefineState, DefineState) -> Bool
    automatically derived

    DefineState::from_code

    fn DefineState::from_code(code : Int) -> DefineState

    DefineState::not_equal

    fn DefineState::not_equal(x : DefineState, y : DefineState) -> Bool

    DefineState::to_repr

    automatically derived

    FilterOp

    pub(all) enum FilterOp {
    Eq
    Ne
    Like
    Gt
    Lt
    Ge
    Le
    In
    Nin
    Bt
    } derive(Eq,
    Debug
    )

    m_ 三段式过滤操作符(spec/06 §2.2)

    FilterOp::equal

    fn FilterOp::equal(FilterOp, FilterOp) -> Bool
    automatically derived

    FilterOp::from_str

    fn FilterOp::from_str(s : String) -> FilterOp?

    FilterOp::not_equal

    fn FilterOp::not_equal(x : FilterOp, y : FilterOp) -> Bool

    FilterOp::to_repr

    automatically derived

    InstanceRow

    pub(all) struct InstanceRow {
    id : Int64
    parent_id : Int64?
    process_define_id : Int64
    state : Int
    parent_node_name : String?
    business_no : String?
    operator : String
    expire_time : String?
    variable : String?
    create_time : String?
    create_user : String?
    update_time : String?
    update_user : String?
    define_name : String?
    define_display_name : String?
    define_version : Int?
    } derive(Eq)
    实例行

    InstanceRow::equal

    fn InstanceRow::equal(InstanceRow, InstanceRow) -> Bool
    automatically derived

    InstanceRow::new_empty

    fn InstanceRow::new_empty() -> InstanceRow

    InstanceRow::not_equal

    fn InstanceRow::not_equal(x : InstanceRow, y : InstanceRow) -> Bool

    InstanceState

    pub(all) enum InstanceState {
    Doing
    Finished
    Withdraw
    Interrupt
    Reject
    Pending
    Abandon
    } derive(Eq,
    Debug
    )

    InstanceState::code

    fn InstanceState::code(self : InstanceState) -> Int

    InstanceState::equal

    automatically derived

    InstanceState::from_code

    fn InstanceState::from_code(code : Int) -> InstanceState?

    InstanceState::not_equal

    fn InstanceState::not_equal(x : InstanceState, y : InstanceState) -> Bool

    InstanceState::to_repr

    automatically derived

    OrderTerm

    pub(all) struct OrderTerm {
    column : String
    desc : Bool
    }

    排序子句单项:列名(可能带别名前缀,由调用方剥)+是否降序

    PageQuery

    pub(all) struct PageQuery {
    page_num : Int64
    page_size : Int64
    order_by : String?
    operator : String?
    conditions : Map[String, Json]
    filters : Array[QueryFilter]
    }

    PageQuery::add_condition

    fn PageQuery::add_condition(self : PageQuery, key : String, value : Json) -> Unit

    PageQuery::add_filter

    fn PageQuery::add_filter(self : PageQuery, f : QueryFilter) -> Unit

    PageQuery::conditions

    fn PageQuery::conditions(self : PageQuery) -> Map[String, Json]

    PageQuery::filters

    fn PageQuery::filters(self : PageQuery) -> Array[QueryFilter]

    PageQuery::new

    fn PageQuery::new(page_num : Int64, page_size : Int64) -> PageQuery

    PageQuery::operator

    fn PageQuery::operator(self : PageQuery) -> String?

    PageQuery::order_by

    fn PageQuery::order_by(self : PageQuery) -> String?

    PageQuery::page_num

    fn PageQuery::page_num(self : PageQuery) -> Int64

    PageQuery::page_size

    fn PageQuery::page_size(self : PageQuery) -> Int64

    PageQuery::set_operator

    fn PageQuery::set_operator(self : PageQuery, op : String?) -> Unit

    PageQuery::set_order_by

    fn PageQuery::set_order_by(self : PageQuery, s : String) -> Unit

    PageQuery::set_page_num

    fn PageQuery::set_page_num(self : PageQuery, n : Int64) -> Unit

    PageQuery::set_page_size

    fn PageQuery::set_page_size(self : PageQuery, n : Int64) -> Unit

    PageResult

    pub(all) struct PageResult[T] {
    page_num : Int64
    page_size : Int64
    record_count : Int64
    total_page : Int64
    rows : Array[T]
    }
    分页结果:恒五键契约(C22:pageNum/pageSize/recordCount/totalPage/rows)

    PageResult::new

    fn[T] PageResult::new(page_num : Int64, page_size : Int64, record_count : Int64, rows : Array[T]) -> PageResult[T]

    PageResult::page_num

    fn[T] PageResult::page_num(self : PageResult[T]) -> Int64

    PageResult::page_size

    fn[T] PageResult::page_size(self : PageResult[T]) -> Int64

    PageResult::record_count

    fn[T] PageResult::record_count(self : PageResult[T]) -> Int64

    PageResult::rows

    fn[T] PageResult::rows(self : PageResult[T]) -> Array[T]

    PageResult::total_page

    fn[T] PageResult::total_page(self : PageResult[T]) -> Int64

    PerformType

    pub(all) enum PerformType {
    Normal
    Countersign
    } derive(Eq,
    Debug
    )

    PerformType::code

    fn PerformType::code(self : PerformType) -> Int

    PerformType::equal

    fn PerformType::equal(PerformType, PerformType) -> Bool
    automatically derived

    PerformType::from_code

    fn PerformType::from_code(code : Int) -> PerformType

    PerformType::not_equal

    fn PerformType::not_equal(x : PerformType, y : PerformType) -> Bool

    PerformType::to_repr

    automatically derived

    ProcessDefine

    pub(all) struct ProcessDefine {
    id : Int64
    name : String
    display_name : String
    define_type : String
    state : Int
    content : String
    version : Int
    create_time : String?
    create_user : String?
    update_time : String?
    update_user : String?
    } derive(Eq)

    ProcessDefine::clone

    ProcessDefine::equal

    automatically derived

    ProcessDefine::not_equal

    fn ProcessDefine::not_equal(x : ProcessDefine, y : ProcessDefine) -> Bool

    ProcessDesign

    pub(all) struct ProcessDesign {
    id : Int64
    name : String
    display_name : String
    design_type : String
    icon : String?
    is_deployed : Int
    remark : String?
    create_time : String?
    create_user : String?
    update_time : String?
    update_user : String?
    } derive(Eq)

    ProcessDesign::clone

    ProcessDesign::equal

    automatically derived

    ProcessDesign::not_equal

    fn ProcessDesign::not_equal(x : ProcessDesign, y : ProcessDesign) -> Bool

    ProcessDesignHis

    pub(all) struct ProcessDesignHis {
    id : Int64
    process_design_id : Int64
    content : String
    create_time : String?
    create_user : String?
    } derive(Eq)

    ProcessDesignHis::clone

    ProcessDesignHis::equal

    automatically derived

    ProcessDesignHis::not_equal

    fn ProcessDesignHis::not_equal(x : ProcessDesignHis, y : ProcessDesignHis) -> Bool

    ProcessInstance

    pub(all) struct ProcessInstance {
    instance_id : Int64
    parent_id : Int64?
    define_id : Int64
    state : Int
    parent_node_name : String?
    business_no : String?
    operator : String
    expire_time : String?
    variables :
    FlowData

    tasks : Array[ProcessTask]
    create_time : String?
    create_user : String?
    update_time : String?
    update_user : String?
    define_info : ProcessDefine?
    }
    ProcessInstance —— DDD 聚合根

    ProcessInstance::abandon_all_doing

    fn ProcessInstance::abandon_all_doing(self : ProcessInstance) -> Unit

    ProcessInstance::abandon_task

    fn ProcessInstance::abandon_task(self : ProcessInstance, task_id : Int64) -> Unit raise
    JeeflowError
    仅任务级(不连带实例置 99)——spec 04 与 go/py/node 对齐,issues/180

    ProcessInstance::add_variable

    ProcessInstance::clone

    ProcessInstance::complete_task

    fn ProcessInstance::complete_task(self : ProcessInstance, task_id : Int64, operator : String, args :
    FlowData
    ) -> Unit raise
    JeeflowError
    submitType/表单值又能覆盖转办留下的槽位(反噬方向已被合并序挡住)。

    ProcessInstance::create

    fn ProcessInstance::create(define_info : ProcessDefine, operator : String, args :
    FlowData
    ) -> ProcessInstance
    工厂:新建实例(state=DOING=10)

    ProcessInstance::create_countersign_tasks

    fn ProcessInstance::create_countersign_tasks(self : ProcessInstance, task_name : String, display_name : String, actor_ids : Array[String], operator : String, task_type : TaskType, form_key : String?, parent_task_id : Int64?) -> Array[ProcessTask]
    会签任务:每人一个独立任务(C9:串行一次只建一个由引擎控制;此处为并行建全入口)

    ProcessInstance::create_history_task

    fn ProcessInstance::create_history_task(self : ProcessInstance, task_name : String, display_name : String, operator : String, task_type : TaskType) -> ProcessTask
    i137b_zero_caller_create_test.mbt 逐字段钉住(该用例跟着本裁定改判)。

    ProcessInstance::create_task

    fn ProcessInstance::create_task(self : ProcessInstance, task_name : String, display_name : String, actor_ids : Array[String], operator : String, task_type : TaskType, perform_type : PerformType, form_key : String?, parent_task_id : Int64?) -> ProcessTask
    建任务(子实体工厂;task_id=0 由 ID 生成器赋值——rust 91b:原片赋 id 再克隆返回)

    ProcessInstance::create_with_parent

    fn ProcessInstance::create_with_parent(define_info : ProcessDefine, operator : String, args :
    FlowData
    , parent_id : Int64, parent_node_name : String) -> ProcessInstance
    工厂(子流程):带父实例

    ProcessInstance::finish

    fn ProcessInstance::finish(self : ProcessInstance) -> Unit

    ProcessInstance::get_doing_tasks

    fn ProcessInstance::get_doing_tasks(self : ProcessInstance) -> Array[ProcessTask]

    ProcessInstance::get_doing_tasks_by_names

    fn ProcessInstance::get_doing_tasks_by_names(self : ProcessInstance, names : Array[String]) -> Array[ProcessTask]

    ProcessInstance::get_done_tasks_by_names

    fn ProcessInstance::get_done_tasks_by_names(self : ProcessInstance, names : Array[String]) -> Array[ProcessTask]

    ProcessInstance::get_finished_tasks

    fn ProcessInstance::get_finished_tasks(self : ProcessInstance) -> Array[ProcessTask]

    ProcessInstance::get_history_tasks

    fn ProcessInstance::get_history_tasks(self : ProcessInstance) -> Array[ProcessTask]

    ProcessInstance::interrupt

    fn ProcessInstance::interrupt(self : ProcessInstance) -> Unit

    ProcessInstance::is_all_tasks_finished

    fn ProcessInstance::is_all_tasks_finished(self : ProcessInstance) -> Bool

    ProcessInstance::is_doing

    fn ProcessInstance::is_doing(self : ProcessInstance) -> Bool

    ProcessInstance::is_finished

    fn ProcessInstance::is_finished(self : ProcessInstance) -> Bool

    ProcessInstance::pending

    fn ProcessInstance::pending(self : ProcessInstance) -> Unit

    ProcessInstance::reject

    fn ProcessInstance::reject(self : ProcessInstance) -> Unit

    ProcessInstance::reject_task

    fn ProcessInstance::reject_task(self : ProcessInstance, task_name : String, display_name : String, actor_ids : Array[String], operator : String, parent_task_id : Int64) -> ProcessTask
    owner 2026-09-29 拍板不删。

    ProcessInstance::remove_variables

    fn ProcessInstance::remove_variables(self : ProcessInstance, keys : Array[String]) -> Unit

    ProcessInstance::resume_from_interrupt

    fn ProcessInstance::resume_from_interrupt(self : ProcessInstance) -> Unit

    ProcessInstance::withdraw

    fn ProcessInstance::withdraw(self : ProcessInstance, operator : String) -> Unit raise
    JeeflowError
    (spec/06「已完成(20)/已终止(40) 的任务行不得被撤回改写」)保持原样。

    ProcessSurrogate

    pub(all) struct ProcessSurrogate {
    id : Int64
    process_name : String
    operator : String
    surrogate : String
    start_time : String?
    end_time : String?
    enabled : Int
    create_time : String?
    create_user : String?
    update_time : String?
    update_user : String?
    } derive(Eq)

    ProcessSurrogate::clone

    ProcessSurrogate::equal

    automatically derived

    ProcessSurrogate::is_effective

    fn ProcessSurrogate::is_effective(self : ProcessSurrogate, operator : String, time : String) -> Bool
    (issues/120 已拍定「MoonBit 暂不注入时钟基准、对拍对 MoonBit 豁免」,非本轮缺陷)。

    ProcessSurrogate::not_equal

    fn ProcessSurrogate::not_equal(x : ProcessSurrogate, y : ProcessSurrogate) -> Bool

    ProcessTask

    pub(all) struct ProcessTask {
    task_id : Int64
    process_instance_id : Int64
    task_name : String
    display_name : String
    task_type : Int
    perform_type : Int
    task_state : Int
    actor_id : String?
    actor_ids : Array[String]
    finish_time : String?
    expire_time : String?
    form_key : String?
    parent_task_id : Int64?
    variables :
    FlowData

    create_time : String?
    create_user : String?
    update_time : String?
    update_user : String?
    }
    ProcessTask —— 子实体

    ProcessTask::abandon

    ProcessTask::clone

    fn ProcessTask::clone(self : ProcessTask) -> ProcessTask

    ProcessTask::finish

    fn ProcessTask::finish(self : ProcessTask, operator : String) -> Unit raise
    JeeflowError
    本方法只置状态与办理人列 + update_user/update_time 审计列(对齐 java finish)。

    ProcessTask::interrupt

    ProcessTask::is_allowed

    fn ProcessTask::is_allowed(self : ProcessTask, operator : String) -> Bool
    处理人校验:"flow.auto"/"flow.admin" 直通

    ProcessTask::is_doing

    fn ProcessTask::is_doing(self : ProcessTask) -> Bool

    ProcessTask::is_finished

    fn ProcessTask::is_finished(self : ProcessTask) -> Bool

    ProcessTask::pending

    ProcessTask::resume_from_interrupt

    fn ProcessTask::resume_from_interrupt(self : ProcessTask) -> Unit

    ProcessTask::withdraw

    fn ProcessTask::withdraw(self : ProcessTask, operator : String) -> Unit
    随实例撤回:任务态 30 + update_user 回写真实撤回人(issues/114,spec/06 §withdraw)

    QueryFilter

    pub(all) struct QueryFilter {
    table_alias : String
    op : FilterOp
    column : String
    value : String
    } derive(Eq)
    m_ 过滤条件(spec/06 §2.2)

    QueryFilter::column

    fn QueryFilter::column(self : QueryFilter) -> String

    QueryFilter::equal

    fn QueryFilter::equal(QueryFilter, QueryFilter) -> Bool
    automatically derived

    QueryFilter::make

    fn QueryFilter::make(table_alias : String, op : FilterOp, column : String, value : String) -> QueryFilter

    QueryFilter::not_equal

    fn QueryFilter::not_equal(x : QueryFilter, y : QueryFilter) -> Bool

    QueryFilter::op

    fn QueryFilter::op(self : QueryFilter) -> FilterOp

    QueryFilter::table_alias

    fn QueryFilter::table_alias(self : QueryFilter) -> String

    QueryFilter::value

    fn QueryFilter::value(self : QueryFilter) -> String

    SubmitType

    pub(all) enum SubmitType {
    Apply
    Agree
    Reject
    Rollback
    Jump
    ReApply
    RollbackToOperator
    Transfer
    CountersignDisagree
    } derive(Eq,
    Debug
    )

    SubmitType::code

    fn SubmitType::code(self : SubmitType) -> Int64

    SubmitType::equal

    fn SubmitType::equal(SubmitType, SubmitType) -> Bool
    automatically derived

    SubmitType::from_code

    fn SubmitType::from_code(code : Int64) -> SubmitType?

    SubmitType::message

    fn SubmitType::message(self : SubmitType) -> String

    中文可读名(spec/07 字典 label 同源;转办文案 "A 转办给 B" 用)

    SubmitType::not_equal

    fn SubmitType::not_equal(x : SubmitType, y : SubmitType) -> Bool

    SubmitType::to_repr

    automatically derived

    TaskActor

    pub(all) struct TaskActor {
    id : Int64
    process_task_id : Int64
    actor_id : String
    create_time : String?
    create_user : String?
    } derive(Eq)

    TaskActor::equal

    fn TaskActor::equal(TaskActor, TaskActor) -> Bool
    automatically derived

    TaskActor::not_equal

    fn TaskActor::not_equal(x : TaskActor, y : TaskActor) -> Bool

    TaskRow

    pub(all) struct TaskRow {
    id : Int64
    process_instance_id : Int64
    task_name : String
    display_name : String
    task_type : Int
    perform_type : Int
    task_state : Int
    operator : String?
    actor_id : String?
    finish_time : String?
    expire_time : String?
    form_key : String?
    task_parent_id : Int64?
    variable : String?
    create_time : String?
    create_user : String?
    update_time : String?
    update_user : String?
    process_define_id : Int64?
    instance_state : Int?
    instance_operator : String?
    business_no : String?
    instance_variable : String?
    instance_create_time : String?
    define_name : String?
    define_display_name : String?
    define_version : Int?
    } derive(Eq)
    待办/已办任务行

    TaskRow::equal

    fn TaskRow::equal(TaskRow, TaskRow) -> Bool
    automatically derived

    TaskRow::new_empty

    fn TaskRow::new_empty() -> TaskRow

    TaskRow::not_equal

    fn TaskRow::not_equal(x : TaskRow, y : TaskRow) -> Bool

    TaskState

    pub(all) enum TaskState {
    Doing
    Finished
    Withdraw
    Interrupt
    Pending
    Abandon
    } derive(Eq,
    Debug
    )

    TaskState::code

    fn TaskState::code(self : TaskState) -> Int

    TaskState::equal

    fn TaskState::equal(TaskState, TaskState) -> Bool
    automatically derived

    TaskState::from_code

    fn TaskState::from_code(code : Int) -> TaskState?

    TaskState::not_equal

    fn TaskState::not_equal(x : TaskState, y : TaskState) -> Bool

    TaskState::to_repr

    automatically derived

    TaskType

    pub(all) enum TaskType {
    Major
    Assistant
    Record
    } derive(Eq,
    Debug
    )

    TaskType::code

    fn TaskType::code(self : TaskType) -> Int

    TaskType::equal

    fn TaskType::equal(TaskType, TaskType) -> Bool
    automatically derived

    TaskType::from_code

    fn TaskType::from_code(code : Int) -> TaskType

    TaskType::not_equal

    fn TaskType::not_equal(x : TaskType, y : TaskType) -> Bool

    TaskType::to_repr

    automatically derived

    UserInfo

    pub(all) struct UserInfo {
    user_id : String
    real_name : String
    dept_id : String
    dept_name : String
    post_id : String
    post_name : String
    } derive(Eq)
    用户信息(IUserProvider 返回)

    UserInfo::dept_id

    fn UserInfo::dept_id(self : UserInfo) -> String

    UserInfo::dept_name

    fn UserInfo::dept_name(self : UserInfo) -> String

    UserInfo::equal

    fn UserInfo::equal(UserInfo, UserInfo) -> Bool
    automatically derived

    UserInfo::make

    fn UserInfo::make(user_id~ : String, real_name~ : String, dept_id? : String, dept_name? : String, post_id? : String, post_name? : String) -> UserInfo

    UserInfo::not_equal

    fn UserInfo::not_equal(x : UserInfo, y : UserInfo) -> Bool

    UserInfo::post_id

    fn UserInfo::post_id(self : UserInfo) -> String

    UserInfo::post_name

    fn UserInfo::post_name(self : UserInfo) -> String

    UserInfo::real_name

    fn UserInfo::real_name(self : UserInfo) -> String

    UserInfo::user_id

    fn UserInfo::user_id(self : UserInfo) -> String

    actor_delete_forms

    fn actor_delete_forms(raw : Array[String]) -> Array[String]
    返回空数组 ⇒ 调用方一条 DELETE 都不发(早退,不得退化成"清空该任务全部参与者")。

    add_days

    fn add_days(secs : Int64, n : Int) -> Int64
    (启动词 §1:d 走日历加天,不乘 86400 秒)。

    apply_expire_time

    fn apply_expire_time(task : ProcessTask, expr : String?, args :
    FlowData
    ) -> Unit
    • 回退/跳转新建=随行拷贝那份变量 = boot2 的 hisVariable

    cc_fresh_subset

    fn cc_fresh_subset(existing : Array[String], requested : Array[String]) -> Array[String]
    门面手动 createCCInstance)一律拿这个子集去 fire,子集为空 ⇒ 整支不发。

    cc_ownership_operator

    fn cc_ownership_operator(query : PageQuery) -> String?
    非归属列(m_ 可选过滤)的空值放行不在本函数管辖内,维持既有通用放行不变。

    cmp_str

    fn cmp_str(a : String, b : String) -> Int

    逐码位字典序比较——绕开 String::compare 在 wasm sort 内部的怪异行为 (实测 core sort/sort_by 排 String 结果错误而 compare 直调正常;D-M3-2)

    current_time_str

    fn current_time_str() -> String

    epoch_millis

    fn epoch_millis() -> Int64

    当前墙钟毫秒(@env.now() 的单位实测为 epoch 毫秒,见 model_test)

    epoch_secs

    fn epoch_secs() -> Int64

    当前墙钟秒

    expire_time_prop

    let expire_time_prop : String
    (对齐 boot2 TaskParser.EXPIRE_TIME_KEY ← 设计器 JSON 的 properties.expireTime)

    format_time

    fn format_time(s : String) -> String

    format_unix_utc

    fn format_unix_utc(secs : Int64) -> String

    Format unix seconds (UTC) as yyyy-MM-dd HH:mm:ss(civil_from_days, Howard Hinnant)

    normalize_actor

    fn normalize_actor(raw : String) -> String?
    「缺参数」错误信封报错(§2.11 要求③:不新造错误码与文案)。

    normalize_actors

    fn normalize_actors(raw : Array[String]) -> Array[String]
    " " 纯空白按本条丢弃(与 §2.10 逐字同源)。

    normalize_cc_actors

    fn normalize_cc_actors(raw : Array[String]) -> Array[String]
    的公开成员,既有调用方与既有测试不破;判据不在这里复制。

    normalize_comma_actors

    fn normalize_comma_actors(s : String) -> Array[String]
    数字/布尔等非字符串元素不在这一档(那是 Json 形态的事,走 @engine.parse_actors 的形状适配)。

    order_column_bare

    fn order_column_bare(column : String) -> String

    剥排序列的别名前缀:t.version / pd.version → version。 门面沿 java 习惯写 t.,而本栈定义表在 SQL 腿里的别名是 pd ⇒ 两条腿各自把裸列名映射回去。

    parse_order_by

    fn parse_order_by(s : String) -> Array[OrderTerm]

    解析 order_by:逗号分子句、空格分「列名 方向」;方向缺省升序,desc 大小写不敏感。

    与 java 的一处刻意差别:java 把 kv[1].toUpperCase() 原样拼进 SQL(列名有白名单、 方向词没有),本函数只产出布尔值 ⇒ order_by 原文永不进 SQL 串,注入面为零。 空串/全空白/只有方向词 ⇒ 空数组,由调用方各自回落缺省序。

    parse_time_secs

    fn parse_time_secs(s : String) -> Int64?
    任一条不满足 ⇒ None(不是 now)。

    process_time

    fn process_time(expr : String?, args :
    FlowData
    ) -> String?
    go/C# 一致按**严格**日历校验 ⇒ NULL。

    set_clock

    fn set_clock(f : () -> String?) -> Unit

    sort_i64

    fn sort_i64(arr : Array[Int64]) -> Unit

    Int64 插入排序(数值序;防同款 core 排序问题扩散)

    sort_int

    fn sort_int(arr : Array[Int]) -> Unit

    Int 插入排序

    sort_strings

    fn sort_strings(arr : Array[String]) -> Unit

    String 插入排序(cmp_str 承载)

    surrogate_ownership_operator

    fn surrogate_ownership_operator(query : PageQuery) -> String?

    issues/152 ②(spec 06-facade §4.5「processSurrogate/page 归属不变式」):委托台账分页归属列 t.operator 的有效条件判定——取值通道与 ccList(issues/141 G1)同形=PageQuery.operator (门面 page 恒挂这条;SQL 仓拿它拼 AND operator = ?,内存仓拿它比对 s.operator): · 缺键(None)/空串/去空白后为空 ⇒ 无效,两仓储的 page_surrogates 一律返回空页, 严禁退化成"这条不加"= 读全库台账(空串行不是死行报错,是把「我是谁」整个丢了); · 其余 ⇒ 有效,返回原值(不空白化,比对语义与逐字匹配一致)。 判据只有这一份:core/memory/memory_ext.mbt 与 repository-mysql/repo/repository_ext.mbt 的 page_surrogates 都调它 ⇒ 内存仓与 SQL 仓同答案由构造堵死(spec 06 §4.5 条款 6)。 非归属列(m_ 可选过滤)的"空值当没填"通用放行不在本函数管辖内,维持既有行为不变。

    surrogate_scope_hit

    fn surrogate_scope_hit(sg : ProcessSurrogate?, operator : String, time : String) -> Bool
    内存仓与 SQL 仓共用,保证两仓对同一份数据给出同一答案(条款 6)。

    to_camel_case

    fn to_camel_case(s : String) -> String

    snake_case → camelCase