// 分页/行模型/用户信息 —— 移植自 rust model.rs L548-L771
///|
pub(all) struct ProcessDesign {
mut id : Int64
mut name : String
mut display_name : String
mut design_type : String
mut icon : String?
mut is_deployed : Int
mut remark : String?
mut create_time : String?
mut create_user : String?
mut update_time : String?
mut update_user : String?
} derive(Eq)
///|
pub fn ProcessDesign::clone(self : ProcessDesign) -> ProcessDesign {
{ ..self }
}
///|
pub(all) struct ProcessDesignHis {
mut id : Int64
mut process_design_id : Int64
mut content : String
mut create_time : String?
mut create_user : String?
} derive(Eq)
///|
pub fn ProcessDesignHis::clone(self : ProcessDesignHis) -> ProcessDesignHis {
{ ..self }
}
///|
pub(all) struct ProcessSurrogate {
mut id : Int64
mut process_name : String
mut operator : String
mut surrogate : String
mut start_time : String?
mut end_time : String?
mut enabled : Int
mut create_time : String?
mut create_user : String?
mut update_time : String?
mut update_user : String?
} derive(Eq)
///|
pub fn ProcessSurrogate::clone(self : ProcessSurrogate) -> ProcessSurrogate {
{ ..self }
}
///|
pub(all) struct CcInstance {
mut id : Int64
mut process_instance_id : Int64
mut actor_id : String
mut state : Int // 0=unread, 1=read
mut create_time : String?
mut create_user : String?
mut update_time : String?
mut update_user : String?
} derive(Eq)
///|
pub(all) struct TaskActor {
mut id : Int64
mut process_task_id : Int64
mut actor_id : String
mut create_time : String?
mut create_user : String?
} derive(Eq)
///|
/// m_ 过滤条件(spec/06 §2.2)
pub(all) struct QueryFilter {
alias : String // "t" 主表 / "pd" 流程定义 等
op : FilterOp
column : String // snake_case 列名
value : String
} derive(Eq)
///|
pub fn QueryFilter::alias(self : QueryFilter) -> String {
self.alias
}
///|
pub fn QueryFilter::op(self : QueryFilter) -> FilterOp {
self.op
}
///|
pub fn QueryFilter::column(self : QueryFilter) -> String {
self.column
}
///|
pub fn QueryFilter::value(self : QueryFilter) -> String {
self.value
}
///|
pub fn QueryFilter::make(
alias : String,
op : FilterOp,
column : String,
value : String
) -> QueryFilter {
{ alias, op, column, value }
}
///|
pub(all) struct PageQuery {
mut page_num : Int64
mut page_size : Int64
mut order_by : String?
mut operator : String?
conditions : Map[String, Json]
filters : Array[QueryFilter]
}
///|
pub fn PageQuery::new(page_num : Int64, page_size : Int64) -> PageQuery {
{
page_num: if page_num < 1L { 1L } else { page_num },
page_size: if page_size < 1L { 20L } else { page_size },
order_by: None,
operator: None,
conditions: Map::new(),
filters: [],
}
}
///|
pub fn PageQuery::page_num(self : PageQuery) -> Int64 {
self.page_num
}
///|
pub fn PageQuery::page_size(self : PageQuery) -> Int64 {
self.page_size
}
///|
pub fn PageQuery::set_page_num(self : PageQuery, n : Int64) -> Unit {
self.page_num = if n < 1L { 1L } else { n }
}
///|
pub fn PageQuery::set_page_size(self : PageQuery, n : Int64) -> Unit {
self.page_size = if n < 1L { 20L } else { n }
}
///|
pub fn PageQuery::operator(self : PageQuery) -> String? {
self.operator
}
///|
pub fn PageQuery::set_operator(self : PageQuery, op : String?) -> Unit {
self.operator = op
}
///|
pub fn PageQuery::order_by(self : PageQuery) -> String? {
self.order_by
}
///|
pub fn PageQuery::set_order_by(self : PageQuery, s : String) -> Unit {
self.order_by = Some(s)
}
///|
pub fn PageQuery::add_condition(self : PageQuery, key : String, value : Json) -> Unit {
self.conditions[key] = value
}
///|
pub fn PageQuery::conditions(self : PageQuery) -> Map[String, Json] {
self.conditions
}
///|
pub fn PageQuery::add_filter(self : PageQuery, f : QueryFilter) -> Unit {
self.filters.push(f)
}
///|
pub fn PageQuery::filters(self : PageQuery) -> Array[QueryFilter] {
self.filters
}
///|
/// 分页结果:恒五键契约(C22:pageNum/pageSize/recordCount/totalPage/rows)
pub(all) struct PageResult[T] {
page_num : Int64
page_size : Int64
record_count : Int64
total_page : Int64
rows : Array[T]
}
///|
pub fn[T] PageResult::new(
page_num : Int64,
page_size : Int64,
record_count : Int64,
rows : Array[T]
) -> PageResult[T] {
let total_page = if record_count == 0L {
0L
} else {
(record_count + page_size - 1L) / page_size
}
{ page_num, page_size, record_count, total_page, rows }
}
///|
pub fn[T] PageResult::page_num(self : PageResult[T]) -> Int64 {
self.page_num
}
///|
pub fn[T] PageResult::page_size(self : PageResult[T]) -> Int64 {
self.page_size
}
///|
pub fn[T] PageResult::record_count(self : PageResult[T]) -> Int64 {
self.record_count
}
///|
pub fn[T] PageResult::total_page(self : PageResult[T]) -> Int64 {
self.total_page
}
///|
pub fn[T] PageResult::rows(self : PageResult[T]) -> Array[T] {
self.rows
}
///|
/// 待办/已办任务行
pub(all) struct TaskRow {
mut id : Int64
mut process_instance_id : Int64
mut task_name : String
mut display_name : String
mut task_type : Int
mut perform_type : Int
mut task_state : Int
mut operator : String?
mut actor_id : String?
mut finish_time : String?
mut expire_time : String?
mut form_key : String?
mut task_parent_id : Int64?
mut variable : String?
mut create_time : String?
mut create_user : String?
mut update_time : String?
mut update_user : String?
// join instance
mut process_define_id : Int64?
mut instance_state : Int?
mut instance_operator : String?
mut business_no : String?
mut instance_variable : String?
mut instance_create_time : String?
// join define
mut define_name : String?
mut define_display_name : String?
mut define_version : Int?
} derive(Eq)
///|
pub fn TaskRow::new_empty() -> TaskRow {
{
id: 0L,
process_instance_id: 0L,
task_name: "",
display_name: "",
task_type: 0,
perform_type: 0,
task_state: 0,
operator: None,
actor_id: None,
finish_time: None,
expire_time: None,
form_key: None,
task_parent_id: None,
variable: None,
create_time: None,
create_user: None,
update_time: None,
update_user: None,
process_define_id: None,
instance_state: None,
instance_operator: None,
business_no: None,
instance_variable: None,
instance_create_time: None,
define_name: None,
define_display_name: None,
define_version: None,
}
}
///|
/// 实例行
pub(all) struct InstanceRow {
mut id : Int64
mut parent_id : Int64?
mut process_define_id : Int64
mut state : Int
mut parent_node_name : String?
mut business_no : String?
mut operator : String
mut expire_time : String?
mut variable : String?
mut create_time : String?
mut create_user : String?
mut update_time : String?
mut update_user : String?
mut define_name : String?
mut define_display_name : String?
mut define_version : Int?
} derive(Eq)
///|
pub fn InstanceRow::new_empty() -> InstanceRow {
{
id: 0L,
parent_id: None,
process_define_id: 0L,
state: 0,
parent_node_name: None,
business_no: None,
operator: "",
expire_time: None,
variable: None,
create_time: None,
create_user: None,
update_time: None,
update_user: None,
define_name: None,
define_display_name: None,
define_version: None,
}
}
///|
/// 定义行
pub(all) struct DefineRow {
mut id : Int64
mut name : String
mut display_name : String
mut define_type : String
mut state : Int
mut version : Int
mut create_time : String?
mut create_user : String?
mut update_time : String?
mut update_user : String?
} derive(Eq)
///|
pub fn DefineRow::new_empty() -> DefineRow {
{
id: 0L,
name: "",
display_name: "",
define_type: "",
state: 0,
version: 0,
create_time: None,
create_user: None,
update_time: None,
update_user: None,
}
}
///|
/// 用户信息(IUserProvider 返回)
pub(all) struct UserInfo {
user_id : String
real_name : String
dept_id : String
dept_name : String
post_id : String
post_name : String
} derive(Eq)
///|
pub fn UserInfo::make(
user_id~ : String,
real_name~ : String,
dept_id? : String = "",
dept_name? : String = "",
post_id? : String = "",
post_name? : String = ""
) -> UserInfo {
{ user_id, real_name, dept_id, dept_name, post_id, post_name }
}
///|
pub fn UserInfo::user_id(self : UserInfo) -> String {
self.user_id
}
///|
pub fn UserInfo::real_name(self : UserInfo) -> String {
self.real_name
}
///|
pub fn UserInfo::dept_id(self : UserInfo) -> String {
self.dept_id
}
///|
pub fn UserInfo::dept_name(self : UserInfo) -> String {
self.dept_name
}
///|
pub fn UserInfo::post_id(self : UserInfo) -> String {
self.post_id
}
///|
pub fn UserInfo::post_name(self : UserInfo) -> String {
self.post_name
}