# M18 HCM Web Services

Version: 1.0 | Release Date: 30/6/2018

# Hong Kong Labour Law Compliance

# Get a List of Employee's Basic Info.

HTTP Request

GET http://[server]/jsf/rfws/hkLaw/ir56bDataExport/getEmpBasicData

Parameters

Name Type Description
empIdList String(Query) Required. List of Employee in IR56 Exportation
asAtDate String(Query) Required. Date String of As at Date of the IR56 Exportation
beId int(Query) Required. Business Entity 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/hkLaw/ir56bDataExport/getEmpBasicData?empIdList=" + empIdList & asAtDate=" + asAtDate + "&beId=" + beId;

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": "dept",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "surname",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "givenName",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "idNo",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "passportNo",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "contryIssue",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "sex",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "maritalStatus",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "residentAddr1",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "residentAddr2",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "areaCode",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "postalAddr",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "i18nfield",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "spouseName",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "spouseIdNo",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "spousePassportNo",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "spouseIssuecountry",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "positionDesc",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "idType",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "spouseIdType",
                "fieldClass": "java.lang.String",
                "classType": 0
            }
        ]
    },
    {
        "size": 0,
        "values": [],
        "name": "",
        "fields": [
            {
                "fieldClassName": "Long",
                "name": "empId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Boolean",
                "name": "placeProByEr",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "String",
                "name": "address1line1",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "nature1",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "periodPro1",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Double",
                "name": "rentPaidEr1",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "Double",
                "name": "rentPaidEmp1",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "Double",
                "name": "rentRefundEmp1",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "Double",
                "name": "rentPaidToEr1",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "address2line1",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "nature2",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "periodPro2",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Double",
                "name": "rentPaidEr2",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "Double",
                "name": "rentPaidEmp2",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "Double",
                "name": "rentRefundEmp2",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "Double",
                "name": "rentPaidToEr2",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "Boolean",
                "name": "paidByOversea",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "Double",
                "name": "overseaAmt",
                "fieldClass": "java.lang.Double",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "overseasCoName",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "overseasCoAddr",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "ir56bRemarks",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "empFileNo",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "prinEmpE",
                "fieldClass": "java.lang.String",
                "classType": 0
            }
        ]
    }

# Get a List of ID No. of Employees with = 'HK'

HTTP Request

GET http://[server]/jsf/rfws/hkLaw/ir56bDataExport/getEmpHkID

Parameters

Name Type Description
empIdList String(Query) Required. List of Employee in IR56 Exportation

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/hkLaw/ir56bDataExport/getEmpHkID?empIdList=" + empIdList;

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": "idType",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "idNo",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "idTypeCode",
            "fieldClass": "java.lang.String",
            "classType": 0
        }
    ]
}

# Get MPF Statement Format

Retrieve all MPF statement format stored.

HTTP Request

GET http://[server]/jsf/rfws/hkLaw/mpfExporter/getMPFStmtFm

Parameters

Name Type Description
No Parameters needed

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "/jsf/rfws/hkLaw/mpfExporter/getMPFStmtFm;

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": [
        {
            "code": "1",
            "lastModifyUid": 72,
            "footer": true,
            "mpfTrusteeId": 5,
            "iRev": 15,
            "body": true,
            "viewCode": "mpfStmtFm",
            "mpfTypeId": 2,
            "header": true,
            "id": 1,
            "memberType": "existMember",
            "statusModifyDate": "2017-11-06 17:10:33",
            "lastModifyDate": "2017-11-18 11:35:30",
            "createUid": 72,
            "createDate": "2017-11-06 17:10:33",
            "status": "Y"
        },
        {
            "code": "MPF170018",
            "lastModifyUid": 72,
            "useAccess": true,
            "mpfTrusteeId": 5,
            "iRev": 1,
            "sysJson": "{\"autoGenCode\":{\"snId\":65,\"sn\":\"18\"}}",
            "viewCode": "mpfStmtFm",
            "useAccessWl": true,
            "mpfTypeId": 1,
            "id": 27,
            "memberType": "all",
            "statusModifyDate": "2017-11-21 10:29:53",
            "lastModifyDate": "2017-11-21 10:29:53",
            "useAccessAutoCalc": true,
            "createUid": 72,
            "createDate": "2017-11-21 10:29:53",
            "status": "Y"
        }
    ],
    "name": "",
    "fields": [
        {
            "fieldClassName": "Long",
            "name": "id",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "code",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "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": "mpfTypeId",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "Long",
            "name": "mpfTrusteeId",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "memberType",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Boolean",
            "name": "header",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "body",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "footer",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "useAccess",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "useAccessWl",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "useAccessBl",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "useAccessAutoCalc",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "String",
            "name": "udfnf110801",
            "fieldClass": "java.lang.String",
            "classType": 0
        }
    ]
}

# Get MPF Statement Format in Splited Tables

Retrieve all stored MPF statement format in splited tables.

HTTP Request

GET http://[server]/jsf/rfws/hkLaw/mpfExporter/getMPFStmtFmTables

Parameters

Name Type Description
id MPF Statement Format ID int(Query) MPF Statement Format 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/hkLaw/mpfExporter/getMPFStmtFmTables;

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": "mpfStmtFmId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Boolean",
                "name": "header",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "Boolean",
                "name": "body",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "Boolean",
                "name": "footer",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "String",
                "name": "mpfStmtFmPosition",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldName",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldType",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldValue",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldMess",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Integer",
                "name": "fieldOrder",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "Integer",
                "name": "length",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "padMethod",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "datePattern",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Boolean",
                "name": "commaPlacePattern",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "Boolean",
                "name": "decimalPlacePattern",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            }
        ]
    },
    {
        "size": 0,
        "values": [],
        "name": "",
        "fields": [
            {
                "fieldClassName": "Long",
                "name": "mpfStmtFmId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Boolean",
                "name": "header",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "Boolean",
                "name": "body",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "Boolean",
                "name": "footer",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "String",
                "name": "mpfStmtFmPosition",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldName",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldType",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldValue",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldMess",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Integer",
                "name": "fieldOrder",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "Integer",
                "name": "length",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "padMethod",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "datePattern",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Boolean",
                "name": "commaPlacePattern",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "Boolean",
                "name": "decimalPlacePattern",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            }
        ]
    },
    {
        "size": 0,
        "values": [],
        "name": "",
        "fields": [
            {
                "fieldClassName": "Long",
                "name": "mpfStmtFmId",
                "fieldClass": "java.lang.Long",
                "classType": 10
            },
            {
                "fieldClassName": "Boolean",
                "name": "header",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "Boolean",
                "name": "body",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "Boolean",
                "name": "footer",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "String",
                "name": "mpfStmtFmPosition",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldName",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldType",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldValue",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "fieldMess",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Integer",
                "name": "fieldOrder",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "Integer",
                "name": "length",
                "fieldClass": "java.lang.Integer",
                "classType": 10
            },
            {
                "fieldClassName": "String",
                "name": "padMethod",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "String",
                "name": "datePattern",
                "fieldClass": "java.lang.String",
                "classType": 0
            },
            {
                "fieldClassName": "Boolean",
                "name": "commaPlacePattern",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            },
            {
                "fieldClassName": "Boolean",
                "name": "decimalPlacePattern",
                "fieldClass": "java.lang.Boolean",
                "classType": 3
            }
        ]
    }
]

# Get All PACC Information

Get the payroll item list.

HTTP Request

GET http://[server]/jsf/rfws/hkLaw/mpfExporter/getPaccTable

Parameters

Name Type Description
No Parameters needed

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "/jsf/rfws/hkLaw/mpfExporter/getPaccTable;

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": 3,
    "values": [
        {
            "code": "Salary_1"
        },
        {
            "code": "WTDE"
        },
        {
            "code": "YFHJ"
        }
    ],
    "name": "",
    "fields": [
        {
            "fieldClassName": "String",
            "name": "code",
            "fieldClass": "java.lang.String",
            "classType": 0
        }
    ]
}

# Load the Effective Employee IR56 Info.

HTTP Request

GET http://[server]/jsf/rfws/hkLaw/empIR56Info/loadPreRecord

Parameters

Name Type Description
id int(Query) Required. ID of the IR56 Record
empId int(Query) Required. ID of the Employee
effDate String(Query) Required. Effective Date of the Employee IR56 Record

Result (in JSON Array)

Name Type Description
size int Size of JsonArray in values
values string Data, depends on Table

Sample request:

OkHttpClient client = new OkHttpClient();

String url = "http://" + server + "/jsf/rfws/hkLaw/empIR56Info/loadPreRecord?id=" + id & empId=" + empId& effDate=" + effDate;

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": [
        {
            "returnHK": true,
            "estAmt": 5555999,
            "lastModifyUid": 9,
            "viewCode": "empIR56Info",
            "rentPaidEr1": 12,
            "effDate": "2017-11-02 00:00:00",
            "rentPaidToEr1": 2346,
            "rentPaidToEr2": 285,
            "id": 5,
            "lastModifyDate": "2017-11-02 17:13:27",
            "createUid": 9,
            "overseaCo": "",
            "overseaAdd": "",
            "withheldAmt": 9939,
            "prinEr": "",
            "rentRefundEmp2": 11,
            "ir56mOtherD": "0589046",
            "rentRefundEmp1": 4,
            "placeProByEr": true,
            "grantDate": "1900-01-01 00:00:00",
            "ir56mOtherE": "455",
            "newErNameAdd": "5864864864",
            "returnHKDate": "1900-01-01 00:00:00",
            "taxByEr": true,
            "withheldSum": true,
            "status": "Y",
            "empId": 1008,
            "empFileNo": "1111",
            "futureAdd": "555555555555555",
            "code": "",
            "iRev": 4,
            "statusModifyDate": "2017-11-02 14:47:56",
            "createDate": "2017-11-02 14:47:56",
            "periodPro2": "85468468",
            "periodPro1": "",
            "address2": "",
            "address1": "",
            "nature2": "55555",
            "nature1": "",
            "paidByOversea": true,
            "leaveHKDate": "1900-01-01 00:00:00",
            "ir56bRemarks": "506448",
            "rentPaidEr2": 45,
            "departSecondment": true,
            "overseaAmt": 95,
            "secChristName": "",
            "rentPaidEmp1": 22,
            "rentPaidEmp2": 22,
            "ir56eGrant": true
        }
    ],
    "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": "String",
            "name": "code",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Long",
            "name": "empId",
            "fieldClass": "java.lang.Long",
            "classType": 10
        },
        {
            "fieldClassName": "Date",
            "name": "effDate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "String",
            "name": "empFileNo",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "secChristName",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "prinEr",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Boolean",
            "name": "placeProByEr",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "String",
            "name": "address1",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "nature1",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "periodPro1",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Double",
            "name": "rentPaidEr1",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "rentPaidEmp1",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "rentRefundEmp1",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "rentPaidToEr1",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "address2",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "nature2",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "periodPro2",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Double",
            "name": "rentPaidEr2",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "rentPaidEmp2",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "rentRefundEmp2",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Double",
            "name": "rentPaidToEr2",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Boolean",
            "name": "paidByOversea",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Double",
            "name": "overseaAmt",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "overseaCo",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "overseaAdd",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "ir56bRemarks",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Boolean",
            "name": "ir56eGrant",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "String",
            "name": "newErNameAdd",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "futureAdd",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Date",
            "name": "leaveHKDate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "Boolean",
            "name": "taxByEr",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "anyMoneyHeld",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "String",
            "name": "reason",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Double",
            "name": "estAmt",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Boolean",
            "name": "departExpStaff",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "departSecondment",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "departEmigration",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "departOther",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "String",
            "name": "departOtherReason",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "departAdd",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "Boolean",
            "name": "returnHK",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Date",
            "name": "returnHKDate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "Boolean",
            "name": "ir56gGrant",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Double",
            "name": "notExercise",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "Date",
            "name": "grantDate",
            "fieldClass": "java.util.Date",
            "classType": 21
        },
        {
            "fieldClassName": "Boolean",
            "name": "otherPerson",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Boolean",
            "name": "withheldSum",
            "fieldClass": "java.lang.Boolean",
            "classType": 3
        },
        {
            "fieldClassName": "Double",
            "name": "withheldAmt",
            "fieldClass": "java.lang.Double",
            "classType": 10
        },
        {
            "fieldClassName": "String",
            "name": "ir56mRemarks",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "ir56mOtherD",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "ir56mOtherE",
            "fieldClass": "java.lang.String",
            "classType": 0
        },
        {
            "fieldClassName": "String",
            "name": "udfcc",
            "fieldClass": "java.lang.String",
            "classType": 0
        }
    ]
}