Overview
This is one of the major application of the egov stack which helps municipal and citizens to handle sewerage services like creating sewerage connection, searching sewerage connection, sewerage connection, also creating property if it doesn't exist and creating and updating workflow were depending on different roles of the logged-in user he/she can perform various actions like editing or perform document verification and many more specified in workflow documentation and SMS & email notification sent to the owner for various actions performed in the workflow.
Pre-requisites
Before you proceed with the documentation, make sure the following pre-requisites are met -
Kafka server is up and running
egov-persister service is running and has sewerage service persister config path added in it
PSQL server is running and a database is created to store sewerage connection / application data
knowledge of eGov-mdms service, eGov-persister, eGov-idgen, eGov-sms, eGov-email,eGov-user, eGov-localization, eGov-workflow-service will be helpful.
Key Functionalities
The sewerage service provides multiple functionalities starting from serving as a central repository where one can create sewerage connection, update sewerage connection, search for a particular sewerage connection based on different criteria like mobile number, sewerage connection nos etc. and also creating property if it doesn't exist, creating and updating workflow were depending on different roles of the logged-in user he/she can perform various actions like editing or perform document verification and many more specified in workflow documentation and SMS & email notification sent to the owner for various actions performed in the workflow. The different services provided by the sewerage services are
Creating sewerage connection
Updating sewerage connection
Apply for Property creation.
Searching sewerage connection based on a few criteria mentioned in swagger documentation later
Creating property if it doesn't exist
Creating and updating workflow.
egov.sewarageservice.createconnection
This variable contains the kafka topic name which is used to create new sewerage connection application in the system.
egov.sewarageservice.updateconnection
This variable contains the kafka topic name which is used to update the existing v connection application in the system.
egov.sewerageservice.updatesewerageconnection.workflow.topic
This variable contains the kafka topic name which is used to update the process instance of the sewerage connection application.
This variable contain the idgen format name for sewerage application
This variable contain the idgen format for sewerage application ex:- WS/[CITY.CODE]/[fy:yyyy-yy]/[SEQ_EGOV_COMMON]
This variable contain the idgen format name for sewerage connection
This variable contain the idgen format for sewerage connection ex:- WS_AP/[CITY.CODE]/[fy:yyyy-yy]/[SEQ_EGOV_COMMON]
Interaction Diagram
To Do
Table UML Diagram
****
Configuration Details
MDMS configuration
Copy sw-services-calculation
PropertyTax
master-config.json for sewerage service
Copy sw-services-calculation": {
"Interest": {
"masterName": "Interest",
"isStateLevel": true,
"uniqueKeys": [
"$.fromFY"
]
},
"Rebate": {
"masterName": "Rebate",
"isStateLevel": true,
"uniqueKeys": [
"$.fromFY"
]
},
"Penalty": {
"masterName": "Penalty",
"isStateLevel": true,
"uniqueKeys": [
"$.fromFY"
]
},
"SCBillingSlab": {
"masterName": "SCBillingSlab",
"isStateLevel": true,
"uniqueKeys": []
},
"billingPeriod": {
"masterName": "billingPeriod",
"isStateLevel": true,
"uniqueKeys": [
"$.billingCycle"
]
},
"SW_CHARGE": {
"masterName": "SW_CHARGE",
"isStateLevel": true,
"uniqueKeys": []
},
"SW_TIME_PENALTY": {
"masterName": "SW_TIME_PENALTY",
"isStateLevel": true,
"uniqueKeys": []
},
"SW_Round_Off": {
"masterName": "SW_Round_Off",
"isStateLevel": true,
"uniqueKeys": []
},
"PlotSizeSlab": {
"masterName": "PlotSizeSlab",
"isStateLevel": true,
"uniqueKeys": []
},
"PropertyUsageType": {
"masterName": "PropertyUsageType",
"isStateLevel": true,
"uniqueKeys": []
},
"FeeSlab": {
"masterName": "FeeSlab",
"isStateLevel": true,
"uniqueKeys": []
},
"RoadType": {
"masterName": "RoadType",
"isStateLevel": true,
"uniqueKeys": []
},
"CalculationAttribute": {
"masterName": "CalculationAttribute",
"isStateLevel": true,
"uniqueKeys": []
}
}
Property creation through WNS module
https://github.com/egovernments/egov-mdms-data/blob/DEV/data/pb/PropertyTax/PTWorkflow.json
Persister configuration :
https://github.com/egovernments/configs/blob/qa/egov-persister/sewerage-persist.yml
Actions & Role Action Mapping
Actions
Copy [
{
"id": {{PLACEHOLDER1}},
"name": "Create Sewerage Connection",
"url": "/sw-services/swc/_create",
"displayName": "Create Sewerage Connection",
"orderNumber": 0,
"enabled": false,
"serviceCode": "sw-services",
"code": "null",
"path": ""
},
{
"id": {{PLACEHOLDER2}},
"name": "Update Sewerage Connection",
"url": "/sw-services/swc/_update",
"displayName": "Update Sewerage Connection",
"orderNumber": 0,
"enabled": false,
"serviceCode": "sw-services",
"code": "null",
"path": ""
},
{
"id": {{PLACEHOLDER3}},
"name": "Search Sewerage Connection",
"url": "/sw-services/swc/_search",
"displayName": "Search Sewerage Connection",
"orderNumber": 0,
"enabled": false,
"serviceCode": "sw-services",
"code": "null",
"path": ""
}
]
Role Action Mapping
Copy [
{
"rolecode": "CITIZEN",
"actionid": {{PLACEHOLDER1}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "CITIZEN",
"actionid": {{PLACEHOLDER2}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "CITIZEN",
"actionid": {{PLACEHOLDER3}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_CEMP",
"actionid": {{PLACEHOLDER1}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_CEMP",
"actionid": {{PLACEHOLDER2}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_CEMP",
"actionid": {{PLACEHOLDER3}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_DOC_VERIFIER",
"actionid": {{PLACEHOLDER2}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_DOC_VERIFIER",
"actionid": {{PLACEHOLDER3}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_FIELD_INSPECTOR",
"actionid": {{PLACEHOLDER2}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_FIELD_INSPECTOR",
"actionid": {{PLACEHOLDER3}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_APPROVER",
"actionid": {{PLACEHOLDER2}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_APPROVER",
"actionid": {{PLACEHOLDER3}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_CLERK",
"actionid": {{PLACEHOLDER2}},
"actioncode": "",
"tenantId": "pb"
},
{
"rolecode": "SW_CLERK",
"actionid": {{PLACEHOLDER3}},
"actioncode": "",
"tenantId": "pb"
}
]
Workflow business service config
Create businessService (workflow configuration) using the __/businessservice/_create. Following is the product configuration for sewerage service
Copy {
"RequestInfo": {
"apiId": "Rainmaker",
"action": "",
"did": 1,
"key": "",
"msgId": "20170310130900|en_IN",
"requesterId": "",
"ts": 1513579888683,
"ver": ".01",
"authToken": "{{Auth_Token}}"
},
"BusinessServices": [
{
"tenantId": "pb",
"businessService": "NewSW1",
"business": "sw-services",
"businessServiceSla": 259200000,
"states": [
{
"sla": null,
"state": null,
"applicationStatus": null,
"docUploadRequired": false,
"isStartState": true,
"isTerminateState": false,
"isStateUpdatable": false,
"actions": [
{
"action": "INITIATE",
"nextState": "INITIATED",
"roles": [
"CITIZEN",
"SW_CEMP"
]
}
]
},
{
"sla": null,
"state": "INITIATED",
"applicationStatus": "INITIATED",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"action": "SUBMIT_APPLICATION",
"nextState": "PENDING_FOR_DOCUMENT_VERIFICATION",
"roles": [
"CITIZEN",
"SW_CEMP"
]
}
]
},
{
"sla": null,
"state": "PENDING_FOR_CITIZEN_ACTION",
"applicationStatus": "PENDING_FOR_CITIZEN_ACTION",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"action": "RESUBMIT_APPLICATION",
"nextState": "PENDING_FOR_DOCUMENT_VERIFICATION",
"roles": [
"CITIZEN",
"SW_CEMP"
]
}
]
},
{
"sla": null,
"state": "PENDING_FOR_DOCUMENT_VERIFICATION",
"applicationStatus": "PENDING_FOR_DOCUMENT_VERIFICATION",
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": false,
"isStateUpdatable": true,
"actions": [
{
"action": "VERIFY_AND_FORWARD",
"nextState": "PENDING_FOR_FIELD_INSPECTION",
"roles": [
"SW_DOC_VERIFIER"
]
},
{
"action": "REJECT",
"nextState": "REJECTED",
"roles": [
"SW_DOC_VERIFIER"
]
},
{
"action": "SEND_BACK_TO_CITIZEN",
"nextState": "PENDING_FOR_CITIZEN_ACTION",
"roles": [
"SW_DOC_VERIFIER"
]
}
]
},
{
"sla": null,
"state": "REJECTED",
"applicationStatus": "REJECTED",
"isStateUpdatable": false,
"docUploadRequired": false,
"isStartState": false,
"isTerminateState": true
},
{
"sla": 86400000,
"state": "PENDING_FOR_FIELD_INSPECTION",
"applicationStatus": "PENDING_FOR_FIELD_INSPECTION",
"docUploadRequired": false,
"isStartState": false,
"isStateUpdatable": true,
"isTerminateState": false,
"actions": [
{
"action": "VERIFY_AND_FORWARD",
"nextState": "PENDING_APPROVAL_FOR_CONNECTION",
"roles": [
"SW_FIELD_INSPECTOR"
]
},
{
"action": "REJECT",
"nextState": "REJECTED",
"roles": [
"SW_FIELD_INSPECTOR"
]
},
{
"action": "SEND_BACK_FOR_DOCUMENT_VERIFICATION",
"nextState": "PENDING_FOR_DOCUMENT_VERIFICATION",
"roles": [
"SW_FIELD_INSPECTOR"
]
}
]
},
{
"sla": 43200000,
"state": "PENDING_APPROVAL_FOR_CONNECTION",
"applicationStatus": "PENDING_APPROVAL_FOR_CONNECTION",
"docUploadRequired": false,
"isStartState": false,
"isStateUpdatable": true,
"isTerminateState": false,
"actions": [
{
"action": "APPROVE_FOR_CONNECTION",
"nextState": "PENDING_FOR_PAYMENT",
"roles": [
"SW_APPROVER"
]
},
{
"action": "REJECT",
"nextState": "REJECTED",
"roles": [
"SW_APPROVER"
]
},
{
"action": "SEND_BACK_FOR_FIELD_INSPECTION",
"nextState": "PENDING_FOR_FIELD_INSPECTION",
"roles": [
"SW_APPROVER"
]
}
]
},
{
"sla": 43200000,
&quo