aiM18 Developer Center aiM18 Developer Center
DOC Home
  • Platform

    • Overview
    • Frontend Framework
    • Backend Framework
    • EBI Development
    • JSF Components
    • BPM Extension Interface
    • Telescope Extension Interface
    • Mobile App Setup
  • ERP

    • ERP EJB Interfaces
    • ERP XML Config Files
    • ERP Decorators (Frontend Interfaces)
  • Tutorial

    • Setup Development Environment
    • Sample App
  • Platform

    • Authentication
    • Common JSON Objects
    • Core Services
    • EBI Services
  • Enterprise Resource Planning
  • Human Capital Management
  • Business Process Management
  • Schedule Management
  • Document Management
  • Tutorial

    • Interacting with aiM18 via webservices
Tutorial
GitHub (opens new window)
DOC Home
  • Platform

    • Overview
    • Frontend Framework
    • Backend Framework
    • EBI Development
    • JSF Components
    • BPM Extension Interface
    • Telescope Extension Interface
    • Mobile App Setup
  • ERP

    • ERP EJB Interfaces
    • ERP XML Config Files
    • ERP Decorators (Frontend Interfaces)
  • Tutorial

    • Setup Development Environment
    • Sample App
  • Platform

    • Authentication
    • Common JSON Objects
    • Core Services
    • EBI Services
  • Enterprise Resource Planning
  • Human Capital Management
  • Business Process Management
  • Schedule Management
  • Document Management
  • Tutorial

    • Interacting with aiM18 via webservices
Tutorial
GitHub (opens new window)
  • base

    • Authentication
    • Common JSON Objects
    • Core Services
    • Enduser-driven Business Intelligence
    • Error Code Description
  • Business Process Management

    • Business Process Management
  • Schedule Management

    • Schedule Management
  • Document Management System

    • Document Management System
  • Enterprise Resource Planning

    • README for ERP
    • Master Data
    • Sales
    • Purchase
    • Stock
    • Consignment
    • Subcontract
    • Production
    • Retail
    • Retail Stored Value
    • Warehouse Management Solution
    • Retail and Third-Party Logistics
    • Trading and Finance
    • Accounting
    • Accounting EBI
  • Human Capital Management

    • README for HCM
    • Attendance Management
      • Attendance Management
        • Retrieval Clockgogo Time Card Record with Specified Condition
        • Get Shift Description Formation Value
        • Get time card machine data upload scheduler task history
        • Get Work Attendance Summary Group by Employee with Specified Peirod
        • Retrieval of the Shift Log Point
        • Get Employees' Roster Record with Specified Period
        • Get Work Group Roster Record with Specified Period
        • Get Employee's Roster Record with Specified Duty Date
        • Get Clockgogo Data Synchronization Scheduler Task Retrieval History
        • Get Clockgogo Cloud Connector Synchronization History
        • Get Employee Attendance Result Record with Specified Period and Attendance Regulation
    • Hong Kong Labour Law Compliance
    • Leave Management
    • Organization And Personnel Management
    • Payroll Management
    • PRC Labour Law Compliance
    • Appraisal Management
    • Attendance
    • Casual Labour
    • Personnel
    • Leave
    • Medical Claim Management
    • Payroll
    • Recruitment
    • Training & Sponsorship
  • Web Services
  • Human Capital Management
Multiable
2024-02-23
目录

Attendance Management

Version: 1.2 | Release Date: 30/01/2024

# Attendance Management

# Retrieval Clockgogo Time Card Record with Specified Condition

Retrieval clockgogo time card record with specified condition with the condition SqlTable entity

HTTP Request

GET http://[server]/jsf/rfws/cgg/cggTask/cggTimeCardReceive

Parameters

Name Type Description
condTable SqlTable JSON String The SqlEntity named condTable

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table
name string Name. Empty
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/cgg/cggTask/cggTimeCardReceive"
    + "?condTable=" + URLEncoder.encode(condTable, "UTF-8");

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

{
    "size": 1,
    "values": [
        {
            "STATUS": "N",
            "ERROR_DESC": "invalidAuthorization",
            "CGGCODESC": "testID",
            "CGGCO": "dfda",
            "ERROR_CODE": "400"
        }
    ],
    "name": "",
    "fields": [
        {
            "fieldClassName": "String",
            "name": "CGGCO",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "CGGCODESC",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "STATUS",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "TYPE",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Double",
            "name": "TIME_CARD_NUM",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "ERROR_CODE",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "ERROR_DESC",
            "fieldClass": "java.lang.String",
            "classType": 0
        }
    ]
}

# Get Shift Description Formation Value

Get shift description formation value with employee ID, corresponding date from, date to and attendance regulation ID

HTTP Request

GET http://[server]/jsf/rfws/att/shiftSet/genShiftDesc/{shiftId}

Parameters

Name Type Description
shiftId int The shift ID

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table (yyyy-MM-dd)
name string Name. Empty (yyyy-MM-dd)
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/att/shiftSet/genShiftDesc"
    + "/" + "663";

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

2017ALEX0000S002

# Get time card machine data upload scheduler task history

Get time card machine data upload scheduler task history with the total number of records to be retrieved, driver ID and task ID

HTTP Request

GET http://[server]/jsf/rfws/att/tcds/loadTaskHis

Parameters

Name Type Description
mlast int The total number of records to be retrieved
driverId long The driver ID
taskId long The Task ID with 0 indicating all tasks

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table
name string Name. Empty
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/att/tcds/loadTaskHis"
    + "?mlast=" + "20"
    + "&driverId=" + "1"
    + "&taskId=" + "0";

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

{
    "size": 2,
    "values": [
        {
            "jobName": "Data Retrieval-test1",
            "reason": "Cannot Link Data Source est1",
            "sDate": "2017-12-04 00:00:00",
            "eTime": "11:10:00",
            "id": 1146,
            "sTime": "00:00:00",
            "eDate": "2017-12-04 00:00:00",
            "tcdsId": 1,
            "status": "failed",
            "createDate": "2017-12-04 11:10:00"
        },
        {
            "jobName": "Data Retrieval-test1",
            "reason": "Cannot Link Data Source est1",
            "sDate": "2017-11-15 00:00:00",
            "eTime": "11:10:00",
            "id": 1127,
            "sTime": "00:00:00",
            "eDate": "2017-11-15 00:00:00",
            "tcdsId": 1,
            "status": "failed",
            "createDate": "2017-11-15 11:10:00"
        }
    ],
    "name": "",
    "fields": [
        {
            "fieldClassName": "Long",
            "name": "id",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "Long",
            "name": "tcdsId",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "jobName",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Date",
            "name": "sDate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "String",
            "name": "sTime",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Date",
            "name": "eDate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "String",
            "name": "eTime",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "status",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "sysMsg",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Date",
            "name": "createDate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "Long",
            "name": "retriNum",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "reason",
            "fieldClass": "java.lang.String",
            "classType": 0
        }
    ]
}

# Get Work Attendance Summary Group by Employee with Specified Peirod

Get work attendance summary group by employee with specified peirod with Employee ID, respecting date from and date to

HTTP Request

GET http://[server]/jsf/rfws/emp/workAttSum/getWorkAttSum

Parameters

Name Type Description
empId int The employee ID
dateFrom String The date from date for the period required (yyyy-MM-dd)
dateTo String The date to date for the period required (yyyy-MM-dd)

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table
name string Name. Empty
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/emp/workAttSum/getWorkAttSum"
    + "?empId=" + "897"
    + "&dateFrom=" + "2016-01-01"
    + "&dateTo=" + "2017-12-31";

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

{
    "size": 1,
    "values": [
        {
            "empId": 897,
            "udfAttRus34": 480,
            "udfAttRus14": 960
        }
    ],
    "name": "",
    "fields": [
        {
            "fieldClassName": "Double",
            "name": "attRegula",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus13",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus14",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus15",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus16",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus18",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus19",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus20",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus21",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus22",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus23",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus24",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus25",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus26",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus27",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus28",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus29",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus30",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus31",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus32",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus33",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus34",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus38",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus43",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "udfAttRus44",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Long",
            "name": "empId",
            "fieldClass": "java.lang.Long",
            "classType": 10
        }
    ]
}

# Retrieval of the Shift Log Point

Retrieval of the shift log point by inputting the shift Id

HTTP Request

GET http://[server]/jsf/rfws/att/rosterPattern/shiftlogpoint

Parameters

Name Type Description
shiftId int The shift ID

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table
name string Name. Empty
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/att/rosterPattern/shiftlogpoint"
    + "?shiftId=" + "28";

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

{
    "size": 4,
    "values": [
        {
            "relaDate": 3,
            "reqLogPoint": "09:00:00"
        },
        {
            "relaDate": 3,
            "reqLogPoint": "12:00:00"
        },
        {
            "relaDate": 3,
            "reqLogPoint": "14:00:00"
        },
        {
            "relaDate": 3,
            "reqLogPoint": "18:00:00"
        }
    ],
    "name": "",
    "fields": [
        {
            "fieldClassName": "Integer",
            "name": "relaDate",
            "fieldClass": "java.lang.Integer",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "reqLogPoint",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "reqLogPointDesc",
            "fieldClass": "java.lang.String",
            "classType": 0
        }
    ]
}

# Get Employees' Roster Record with Specified Period

Get employees' roster record with specified period by employee ID, period date from, period date to and the log point

HTTP Request

GET http://[server]/jsf/rfws/att/roster/getRosterEvents

Parameters

Name Type Description
empId String (Query) The employee ID, separated by ","
dateFrom String The date from date for the period required (yyyy-MM-dd)
dateTo String The date to date for the period required (yyyy-MM-dd)
getLogPt String "TRUE" or "FALSE"

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table
name string Name. Empty
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/att/roster/getRosterEvents"
    + "?empId=" + "1"
    + "&dateFrom=" + "2016-01-01"
    + "&dateTo=" + "2017-12-31"
    + "&getLogPt=" + "2";

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

[
    {
        "size": 1,
        "values": [
            {
                "empId": 1,
                "joinDate": "2017-07-01 00:00:00",
                "terminateDate": "1900-01-01 00:00:00"
            }
        ],
        "name": "",
        "fields": [
            {
                "fieldClassName": "Long",
                "name": "empId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "joinDate",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "Date",
                "name": "terminateDate",
                "fieldClass": "java.util.Date",
                "classType": 21
            }
        ]
    },
    {
        "size": 3,
        "values": [
            {
                "dayType": "nil",
                "empId": 1,
                "id": 140,
                "dutydate": "2017-09-01 00:00:00"
            },
            {
                "dayType": "rest",
                "empId": 1,
                "id": 141,
                "dutydate": "2017-09-02 00:00:00"
            },
            {
                "dayType": "hld",
                "empId": 1,
                "id": 142,
                "dutydate": "2017-09-03 00:00:00"
            }
        ],
        "name": "",
        "fields": [
            {
                "fieldClassName": "Long",
                "name": "empId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Integer",
                "name": "wkgp",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "Long",
                "name": "id",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "dutydate",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "String",
                "name": "dayType",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Long",
                "name": "holidayId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            }
        ]
    },
    {
        "size": 2,
        "values": [
            {
                "shiftId": 659,
                "empId": 1,
                "hId": 140,
                "busUnit": 127,
                "color": "black",
                "udfdatefield": "1900-01-01 00:00:00",
                "iRev": 2,
                "workSite": 19,
                "fromEmp": 1,
                "i18nField": "{\"desc_en\": \"\"}",
                "id": 292,
                "statusModifyDate": "2017-11-10 17:45:18",
                "dutydate": "2017-09-01 00:00:00",
                "lastModifyDate": "2017-11-10 17:45:18",
                "createDate": "2017-11-10 17:45:18",
                "status": "Y",
                "desc": ""
            },
            {
                "shiftId": 659,
                "empId": 1,
                "hId": 141,
                "hours": 7,
                "busUnit": 127,
                "color": "black",
                "udfdatefield": "1900-01-01 00:00:00",
                "udfstring": "test udf",
                "iRev": 2,
                "workSite": 19,
                "fromEmp": 1,
                "i18nField": "{\"desc_en\": \"\"}",
                "id": 322,
                "statusModifyDate": "2017-12-01 17:33:12",
                "dutydate": "2017-09-02 00:00:00",
                "lastModifyDate": "2017-12-01 17:33:12",
                "createDate": "2017-12-01 17:33:12",
                "status": "Y",
                "desc": ""
            }
        ],
        "name": "",
        "fields": [
            {
                "fieldClassName": "Long",
                "name": "id",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Integer",
                "name": "iRev",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "Long",
                "name": "beId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "createDate",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "Long",
                "name": "createUid",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "lastModifyDate",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "Long",
                "name": "lastModifyUid",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "statusModifyDate",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "String",
                "name": "status",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Integer",
                "name": "printCount",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "sysJson",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "viewCode",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Long",
                "name": "hId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Long",
                "name": "shiftId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "itemNo",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "desc",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Double",
                "name": "hours",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "color",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Long",
                "name": "busUnit",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Long",
                "name": "workSite",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "i18nField",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Boolean",
                "name": "overwriteLogPt",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "String",
                "name": "udfremark2",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "udfstring",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "udftextt",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Double",
                "name": "udfnumber",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "udfdatefield",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "Boolean",
                "name": "udfbooleanfield",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "String",
                "name": "udftimefield",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "udfcombo",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Long",
                "name": "udflookup",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "udfhtml",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "udfcolor",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Integer",
                "name": "fromEmp",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "dutydate",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "Long",
                "name": "empId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            }
        ]
    }
]

# Get Work Group Roster Record with Specified Period

Get work group roster record with specified period with work group ID

HTTP Request

GET http://[server]/jsf/rfws/att/roster/getWkgpRosterEvents

Parameters

Name Type Description
wkgpId String (Query) Work group ID, separated by ","
dateFrom String The date from date for the period required (yyyy-MM-dd)
dateTo String The date to date for the period required (yyyy-MM-dd)

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table
name string Name. Empty
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/att/roster/getWkgpRosterEvents"
    + "?wkgpId=" + "33"
    + "&dateFrom=" + "2016-01-01"
    + "&dateTo=" + "2017-12-31"

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

[
    {
        "size": 0,
        "values": [],
        "name": "",
        "fields": [
            {
                "fieldClassName": "Long",
                "name": "id",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Long",
                "name": "workgroupid",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "dutydate",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "String",
                "name": "dayType",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Long",
                "name": "holidayId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            }
        ]
    },
    {
        "size": 0,
        "values": [],
        "name": "",
        "fields": [
            {
                "fieldClassName": "Long",
                "name": "id",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Integer",
                "name": "iRev",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "Long",
                "name": "beId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "createDate",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "Long",
                "name": "createUid",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "lastModifyDate",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "Long",
                "name": "lastModifyUid",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "statusModifyDate",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "String",
                "name": "status",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Integer",
                "name": "printCount",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "sysJson",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "viewCode",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Long",
                "name": "hId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Long",
                "name": "shiftId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "itemNo",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "desc",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Double",
                "name": "hours",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "color",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Long",
                "name": "busUnit",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Long",
                "name": "workSite",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "i18nField",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Boolean",
                "name": "overwriteLogPt",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "String",
                "name": "udfremark2",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "udfstring",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "udftextt",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Double",
                "name": "udfnumber",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "udfdatefield",
                "fieldClass": "java.util.Date",
                "classType": 21
            },
            {
                "fieldClassName": "Boolean",
                "name": "udfbooleanfield",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "String",
                "name": "udftimefield",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "udfcombo",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Long",
                "name": "udflookup",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "udfhtml",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "udfcolor",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Long",
                "name": "workgroupid",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Date",
                "name": "dutydate",
                "fieldClass": "java.util.Date",
                "classType": 21
            }
        ]
    }
]

# Get Employee's Roster Record with Specified Duty Date

Get employee's roster record with specified duty date with employee ID and duty date

HTTP Request

GET http://[server]/jsf/rfws/att/roster/getEmpRoste

Parameters

Name Type Description
empId long The employee ID
dutyDate String The date to attain the corresponding information (yyyy-MM-dd)

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table
name string Name. Empty
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/att/roster/getEmpRoste"
    + "?empId=" + "1"
    + "&dutyDate=" + "2017-06-08";

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

{
    "moduleType": "emproster",
    "emprostershift": "{\"size\":0,\"values\":[],\"name\":\"\",\"fields\":[{\"fieldClassName\":\"Long\",\"name\":\"id\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"Integer\",\"name\":\"iRev\",\"fieldClass\":\"java.lang.Integer\",\"classType\":10},{\"fieldClassName\":\"Long\",\"name\":\"hId\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"String\",\"name\":\"itemNo\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"Long\",\"name\":\"shiftId\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"String\",\"name\":\"desc\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"Double\",\"name\":\"hours\",\"fieldClass\":\"java.lang.Double\",\"classType\":10},{\"fieldClassName\":\"String\",\"name\":\"color\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"Long\",\"name\":\"busUnit\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"Long\",\"name\":\"workSite\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"Boolean\",\"name\":\"overwriteLogPt\",\"fieldClass\":\"java.lang.Boolean\",\"classType\":3},{\"fieldClassName\":\"String\",\"name\":\"udfremark2\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"udfstring\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"udftextt\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"Double\",\"name\":\"udfnumber\",\"fieldClass\":\"java.lang.Double\",\"classType\":10},{\"fieldClassName\":\"Date\",\"name\":\"udfdatefield\",\"fieldClass\":\"java.util.Date\",\"classType\":21},{\"fieldClassName\":\"Boolean\",\"name\":\"udfbooleanfield\",\"fieldClass\":\"java.lang.Boolean\",\"classType\":3},{\"fieldClassName\":\"String\",\"name\":\"udftimefield\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"udfcombo\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"Long\",\"name\":\"udflookup\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"String\",\"name\":\"udfhtml\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"udfcolor\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"i18nField\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"desc_en\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"desc_zh-TW\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"desc_zh-CN\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"desc_udf\",\"fieldClass\":\"java.lang.String\",\"classType\":0}]}",
    "emproster": "{\"size\":1,\"values\":[{\"dayType\":\"nil\",\"empId\":1,\"statusModifyDate\":\"1900-01-01 00:00:00\",\"dutydate\":\"2017-06-08 00:00:00\",\"lastModifyDate\":\"1900-01-01 00:00:00\",\"createDate\":\"1900-01-01 00:00:00\"}],\"name\":\"\",\"fields\":[{\"fieldClassName\":\"Long\",\"name\":\"id\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"Integer\",\"name\":\"iRev\",\"fieldClass\":\"java.lang.Integer\",\"classType\":10},{\"fieldClassName\":\"Long\",\"name\":\"beId\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"Date\",\"name\":\"createDate\",\"fieldClass\":\"java.util.Date\",\"classType\":21},{\"fieldClassName\":\"Long\",\"name\":\"createUid\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"Date\",\"name\":\"lastModifyDate\",\"fieldClass\":\"java.util.Date\",\"classType\":21},{\"fieldClassName\":\"Long\",\"name\":\"lastModifyUid\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"Date\",\"name\":\"statusModifyDate\",\"fieldClass\":\"java.util.Date\",\"classType\":21},{\"fieldClassName\":\"String\",\"name\":\"status\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"Integer\",\"name\":\"printCount\",\"fieldClass\":\"java.lang.Integer\",\"classType\":10},{\"fieldClassName\":\"String\",\"name\":\"sysJson\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"viewCode\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"Date\",\"name\":\"dutydate\",\"fieldClass\":\"java.util.Date\",\"classType\":21},{\"fieldClassName\":\"String\",\"name\":\"dayType\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"Long\",\"name\":\"holidayId\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"Long\",\"name\":\"empId\",\"fieldClass\":\"java.lang.Long\",\"classType\":10}]}",
    "emprostershiftt": "{\"size\":0,\"values\":[],\"name\":\"\",\"fields\":[{\"fieldClassName\":\"Long\",\"name\":\"id\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"Integer\",\"name\":\"iRev\",\"fieldClass\":\"java.lang.Integer\",\"classType\":10},{\"fieldClassName\":\"Long\",\"name\":\"hId\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"String\",\"name\":\"itemNo\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"Long\",\"name\":\"shiftId\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"Integer\",\"name\":\"relaDate\",\"fieldClass\":\"java.lang.Integer\",\"classType\":10},{\"fieldClassName\":\"String\",\"name\":\"reqLogPoint\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"Long\",\"name\":\"recognSetId\",\"fieldClass\":\"java.lang.Long\",\"classType\":10},{\"fieldClassName\":\"String\",\"name\":\"leaveAdj\",\"fieldClass\":\"java.lang.String\",\"classType\":0},{\"fieldClassName\":\"String\",\"name\":\"footerKey\",\"fieldClass\":\"java.lang.String\",\"classType\":0}]}",
    "subTableNames": "emprostershift;emprostershiftt",
    "mainTableName": "emproster"
}

# Get Clockgogo Data Synchronization Scheduler Task Retrieval History

Get clockgogo data synchronization scheduler task retrieval history

HTTP Request

GET http://[server]/jsf/rfws/cgg/cggTask/getCggRetriHis

Parameters

Name Type Description
mLast int The maximum number of records to be retrieved

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table
name string Name. Empty
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/cgg/cggTask/getCggRetriHis";

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

{
    "size": 0,
    "values": [],
    "name": "",
    "fields": [
        {
            "fieldClassName": "Long",
            "name": "id",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "jobName",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Date",
            "name": "sDate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "String",
            "name": "sTime",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Date",
            "name": "eDate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "String",
            "name": "eTime",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "status",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "reason",
            "fieldClass": "java.lang.String",
            "classType": 0
        }
    ]
}

# Get Clockgogo Cloud Connector Synchronization History

Get clockgogo cloud connector synchronization history by the number of maximum records to be retrived and the Clockgogo Company ID

HTTP Request

GET http://[server]/jsf/rfws/cgg/cggCloudCon/getCggEmpHis

Parameters

Name Type Description
mLast int The maximum records to be retrived
cggCoId long The ID of Clock Go Go Company

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table
name string Name. Empty
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/att/attResultCalc/getEmpAttResult"
    + "?mLast=" + "1"
    + "&cggCold=" + "22";

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

{
    "size": 0,
    "values": [],
    "name": "",
    "fields": [
        {
            "fieldClassName": "Long",
            "name": "id",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "tableName",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "eventType",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Long",
            "name": "empId",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "status",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Date",
            "name": "lastUpdate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "Long",
            "name": "lastModifyUid",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "errorCode",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "error",
            "fieldClass": "java.lang.String",
            "classType": 0
        }
    ]
}

# Get Employee Attendance Result Record with Specified Period and Attendance Regulation

Get employee attendance result record with specified period and attendance regulation by employee ID, period date from, period date to and the corresponding attendance regulation ID

HTTP Request

GET http://[server]/jsf/rfws/att/attResultCalc/getEmpAttResult

Parameters

Name Type Description
empId String The employee ID, separated by "," for multiple records
dateFrom String The date from date for the period required (yyyy-MM-dd)
dateTo String The date to date for the period required (yyyy-MM-dd)
attRegulaId String The corresponding id of attendance regulation, separated by "," for multiple records

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table
name string Name. Empty
fields string Field Details

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "jsf/rfws/att/attResultCalc/getEmpAttResult"
    + "?empId=" + "1"
    + "&dateFrom=" + "2016-01-01"
    + "&dateTo=" + "2017-12-31"
    + "&attRegulaId=" + "2";

Request request = new Request.Builder()
  .url(url)
  .get()
  .addHeader("client_id", clientID)
  .addHeader("authorization", "Bearer " + token)
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

Sample response:

{
    "size": 1,
    "values": [
        {
            "empId": 1,
            "shiftId": 659,
            "code": "test001",
            "shiftDesc": "白天上班",
            "empName": "test001",
            "deptDesc": "TS001",
            "positionDesc": "TEST001",
            "calcResult": 1,
            "dutyDate": "2017-09-01 00:00:00",
            "adjResult": 1,
            "empId@Duplicate_No@-1": 1
        }
    ],
    "name": "",
    "fields": [
        {
            "fieldClassName": "Long",
            "name": "empId",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "Date",
            "name": "dutyDate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "Long",
            "name": "shiftId",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "shiftDesc",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Double",
            "name": "calcResult",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "adjResult",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Long",
            "name": "empId@Duplicate_No@-1",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "code",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "empName",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "alias",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "deptDesc",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "positionDesc",
            "fieldClass": "java.lang.String",
            "classType": 0
        }
    ]
}
Last Updated: 2025/05/29, 08:57:55
README for HCM
Hong Kong Labour Law Compliance

← README for HCM Hong Kong Labour Law Compliance→

Theme by Vdoing | Copyright © 1990-2025 Multiable | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式