HRMS Service Configuration

Overview

The objective of HRMS is to provide a service that manages all the employees enrolled in the system. HRMS provides extensive APIs to create, update and search the employees with attributes like assignments, service history, jurisdiction, etc. HRMS can be treated as a sub-set of the egov-user service. Every employee created through HRMS is added as a user in the egov-user.

Pre-requisites

Before you proceed with the documentation, make sure the following pre-requisites are met -

  • Java 8

  • Kafka server is up and running

  • egov-persister service is running and has the HRMS service persister config path added to it

  • PSQL server is running and a database is created to store employee data.

Key Functionalities

  • This service provides a feature to create, update and search the employee in the system.

  • It provides a feature to add various roles to an employee under multiple jurisdictions.

  • It provides a feature to deactivate and reactivate an employee.

  • It records the employee details like assignment details, jurisdiction details, and personal details.

The table below lists the configurable properties in the application.properties file in the HRMS service:

Property
Value
Remarks

egov.hrms.employee.app.link

This is the link to the mseva app, which differs based on the environment.

egov.hrms.default.pagination.limit

200

This is the pagination limit on search results of employee search, it can be set to any numeric value without decimals.

egov.hrms.default.pwd.length

10

This is the length of password to be generated at the time of employee creation. However, please ensure this is in sync with the egov-user pwd policy.

open.search.enabled.roles

SUPERUSER,ADMIN

This is a list of Role codes that are allowed to perform an open-search in hrms.

kafka.topics.notification.sms

egov.core.notification.sms

Kafka Topic to push the sms request. Please ensure this is in sync with egov-notification-sms service.

kafka.topics.save.service

save-hrms-employee

Kafka topic to push the save request in hrms. Please ensure this in sync with the persister.

kafka.topics.update.service

update-hrms-employee

Kafka topic to push the update request in hrms. Please ensure this in sync with the persister.

egov.idgen.ack.name

hrms.employeecode

Key to be configured in Idgen alongwith the ID format to generate employee code.

egov.idgen.ack.format

EMP-[city]-[SEQ_EG_HRMS_EMP_CODE]

Format to be configured in ID gen to generate employee code.

Interaction Diagram

Configuration Details

Following is the list of masters required for HRMS:

common-masters:

  • Department

{
  "tenantId": "state",
  "moduleName": "common-masters",
  "Department": [
    {
      "name": "Street Lights",
      "code": "DEPT_1",
      "active": true
    },
    {
      "name": "Building & Roads",
      "code": "DEPT_2",
      "active": true
    },
    {
      "name": "Health & Sanitation",
      "code": "DEPT_3",
      "active": true
    },
    {
      "name": "Operation & Maintenance",
      "code": "DEPT_4",
      "active": true
    },
    {
      "name": "Horticulture",
      "code": "DEPT_5",
      "active": true
    },
    {
      "name": "Building Branch",
      "code": "DEPT_6",
      "active": true
    },
    {
      "name": "Citizen service desk",
      "code": "DEPT_7",
      "active": true
    },
    {
      "name": "Complaint Cell",
      "code": "DEPT_8",
      "active": true
    },
    {
      "name": "Executive Branch",
      "code": "DEPT_9",
      "active": true
    },
    {
      "name": "Others",
      "code": "DEPT_10",
      "active": true
    },
    {
      "name": "Tax Branch",
      "code": "DEPT_13",
      "active": true
    },
    {
      "name": "Accounts Branch",
      "code": "DEPT_25",
      "active": true
    },
    {
      "name": "Works Branch",
      "code": "DEPT_35",
      "active": true
    }
  ]
}
  • Designation -

{
  "tenantId": "state",
  "moduleName": "common-masters",
  "Designation": [
    {
      "code": "DESIG_01",
      "name": "Superintending Engineer ( B&R)",
      "description": "Superintending Engineer ( B&R)",
      "active": true
    },
    {
      "code": "DESIG_02",
      "name": "Corporation Engineer (B&R)",
      "description": "Corporation Engineer (B&R)",
      "active": true
    },
    {
      "code": "DESIG_03",
      "name": "Asst. Engineer ( B&R)",
      "description": "Asst. Engineer ( B&R)",
      "active": true
    },
    {
      "code": "DESIG_04",
      "name": "Junior Engineer ( B&R)",
      "description": "Junior Engineer ( B&R)",
      "active": true
    },
    {
      "code": "DESIG_05",
      "name": "Land Scape Officer",
      "description": "Land Scape Officer",
      "active": true
    },
    {
      "code": "DESIG_06",
      "name": "Superintending Engineer ( O&M)",
      "description": "Superintending Engineer ( O&M)",
      "active": true
    },
    {
      "code": "DESIG_07",
      "name": "Corporation Engineer (O&M)",
      "description": "Corporation Engineer (O&M)",
      "active": true
    },
    {
      "code": "DESIG_08",
      "name": "Asst. Engineer ( O&M)",
      "description": "Asst. Engineer ( O&M)",
      "active": true
    },
    {
      "code": "DESIG_09",
      "name": "Junior Engineer ( O&M)",
      "description": "Junior Engineer ( O&M)",
      "active": true
    },
    {
      "code": "DESIG_10",
      "name": "Superintending Engineer ( Light)",
      "description": "Superintending Engineer ( Light)",
      "active": true
    },
    {
      "code": "DESIG_11",
      "name": "Corporation Engineer (Light)",
      "description": "Corporation Engineer (Light)",
      "active": true
    },
    {
      "code": "DESIG_12",
      "name": "Junior Engineer ( Light)",
      "description": "Junior Engineer ( Light)",
      "active": true
    },
    {
      "code": "DESIG_13",
      "name": "Health Officer",
      "description": "Health Officer",
      "active": true
    },
    {
      "code": "DESIG_14",
      "name": "Medical Officer",
      "description": "Medical Officer",
      "active": true
    },
    {
      "code": "DESIG_15",
      "name": "Chief Sanitary Inspector",
      "description": "Mechanical Oversear",
      "active": true
    },
    {
      "code": "DESIG_16",
      "name": "Sainitary Inspector",
      "description": "Clerk",
      "active": true
    },
    {
      "code": "DESIG_17",
      "name": "Sainitary Supervisor",
      "description": "Accountant",
      "active": true
    },
    {
      "code": "DESIG_18",
      "name": "Senior Town Planner",
      "description": "Senior Town Planner",
      "active": true
    },
    {
      "code": "DESIG_19",
      "name": "Municipal Town Planner",
      "description": "Municipal Town Planner",
      "active": true
    },
    {
      "code": "DESIG_20",
      "name": "Asst. Town Planner",
      "description": "Asst. Town Planner",
      "active": true
    },
    {
      "code": "DESIG_21",
      "name": "Building Inspector",
      "description": "Building Inspector",
      "active": true
    },
    {
      "code": "DESIG_22",
      "name": "Junior Enginer ( Horticulutre)",
      "description": "Junior Enginer ( Horticulutre)",
      "active": true
    },
    {
      "code": "DESIG_23",
      "name": "Citizen service representative",
      "description": "Citizen service representative",
      "active": true
    },
    {
      "name": "Deputy Controller Finance and Accounts",
      "description": "Deputy Controller Finance and Accounts",
      "code": "DESIG_1001",
      "active": true
    },
   {
      "name": "Accountant",
      "description": "Accountant",
      "code": "DESIG_58",
      "active": true
    },
   {
      "code": "DESIG_24",
      "name": "Assistant Commissioner",
      "description": "Assistant Commissioner",
      "active": true
    },    
    {
      "name": "Superintendent",
      "description": "Superintendent",
      "code": "DESIG_47",
      "active": true
    }
  ]
}

egov-hrms masters:

  • Degree -

{
  "tenantId": "state",
  "moduleName": "egov-hrms",
  "Degree": [
    {
      "code": "MATRICULATION",
      "active": true
    },
    {
      "code": "10+2/EQUIVALENTDIPLOMA",
      "active": true
    },
    {
      "code": "B.A/B.SC./B.COM/BBA",
      "active": true
    },
    {
      "code": "LLB/LLM",
      "active": true
    },
    {
      "code": "B.E/B.TECH.",
      "active": true
    },
    {
      "code": "M.A/M.COM./M.SC.",
      "active": true
    },
    {
      "code": "M.E/M.TECH.",
      "active": true
    },
    {
      "code": "MBA/PGDM",
      "active": true
    },
    {
      "code": "DOCTORATE",
      "active": true
    },
    {
      "code": "OTHER",
      "active": true
    }
  ]
}
  • Employee Status -

{
  "tenantId": "state",
  "moduleName": "egov-hrms",
  "EmployeeStatus": [
    {
      "code": "EMPLOYED",
      "active": true
    },
    {
      "code": "RETIRED",
      "active": true
    },
    {
      "code": "RESIGNED",
      "active": true
    },
    {
      "code": "TERMINATED",
      "active": true
    },
    {
      "code": "DECEASED",
      "active": true
    },
    {
      "code": "SUSPENDED",
      "active": true
    },
    {
      "code": "TRANSFERRED",
      "active": true
    }
  ]
}
  • Employee Type -

{
  "tenantId": "state",
  "moduleName": "egov-hrms",
  "EmployeeType": [
    {
      "code": "PERMANENT",
      "active": true
    },
    {
      "code": "TEMPORARY",
      "active": true
    },
    {
      "code": "DAILYWAGES",
      "active": true
    },
    {
      "code": "CONTRACT",
      "active": true
    },
    {
      "code": "DEPUTATION",
      "active": true
    }
  ]
}
  • Reason For Deactivation or Reactivation -

{
  "tenantId": "state",
  "moduleName": "egov-hrms",
  "DeactivationReason": [
    {
      "code": "OTHERS",
      "active": true
    },
    {
      "code": "ORDERBYCOMMISSIONER",
      "active": true
    }
  ]
}
  • Departmental Tests -

{
  "tenantId": "state",
  "moduleName": "egov-hrms",
  "EmploymentTest": [
    {
      "code": "PRELIMS",
      "active": true
    },
    {
      "code": "APTITUDETEST",
      "active": true
    },
    {
      "code": "MAINS",
      "active": true
    }