Skip to content

Commit

Permalink
Merge pull request #841 from egovernments/ISTE-175-new
Browse files Browse the repository at this point in the history
ISTE-175 added code for pushing roll out data to indexer
  • Loading branch information
debasishchakraborty-egovt authored Jul 2, 2024
2 parents 09de595 + 00c4a51 commit bc2c270
Show file tree
Hide file tree
Showing 8 changed files with 132 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -270,4 +270,7 @@ public class WSCalculationConfiguration {

@Value("${ws.generate.demand.bulk}")
private String wsGenerateDemandBulktopic;

@Value("${kafka.topic.roll.out.dashboard}")
private String rollOutDashBoardTopic;
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
import java.util.List;

import org.egov.common.contract.request.RequestInfo;
import org.egov.wscalculation.web.models.BulkDemand;
import org.egov.wscalculation.web.models.Calculation;
import org.egov.wscalculation.web.models.CalculationReq;
import org.egov.wscalculation.web.models.*;

public interface WSCalculationService {

Expand All @@ -15,4 +13,6 @@ public interface WSCalculationService {

void generateDemandBasedOnTimePeriod(RequestInfo requestInfo, boolean isSendMessage);
void generateBulkDemandForTenant(BulkDemand bulkDemand);

RollOutDashboard sendDataForRollOut(RollOutDashboardRequest rollOutDashboardRequest);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,7 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;

import com.fasterxml.jackson.core.type.TypeReference;
Expand All @@ -29,6 +25,7 @@
import org.egov.wscalculation.util.CalculatorUtil;
import org.egov.wscalculation.util.WSCalculationUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataRetrievalFailureException;
import org.springframework.stereotype.Service;

import com.jayway.jsonpath.JsonPath;
Expand Down Expand Up @@ -457,6 +454,24 @@ public List<Calculation> applyAdhocTax(AdhocTaxReq adhocTaxReq) {
}


@Override
public RollOutDashboard sendDataForRollOut(RollOutDashboardRequest rollOutDashboardRequest) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime date = LocalDateTime.now();
log.info("Time schedule start for roll out dashboard on : " + date.format(dateTimeFormatter));

try {
String tenantId = rollOutDashboardRequest.getRollOutDashboard().getTenantid();
if (tenantId != null) {
rollOutDashboardRequest.getRollOutDashboard().setCreatedTime(new Date());
log.info("Role out data sending to kafka topic "+ rollOutDashboardRequest.getRollOutDashboard());
wsCalculationProducer.push(config.getRollOutDashBoardTopic(), rollOutDashboardRequest.getRollOutDashboard());
}
} catch (Exception e) {
log.info("Exception occurred while fetching tenantId");
throw new DataRetrievalFailureException("Data not found "+e);
}
return rollOutDashboardRequest.getRollOutDashboard();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import java.util.List;

import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;

import org.egov.wscalculation.web.models.*;
import org.egov.wscalculation.service.DemandService;
Expand All @@ -24,7 +25,7 @@
import lombok.Getter;
import lombok.Setter;


@Slf4j
@Getter
@Setter
@Builder
Expand Down Expand Up @@ -113,4 +114,15 @@ public ResponseEntity<org.apache.http.HttpStatus> addPenalty(@RequestBody Penalt

}

@PostMapping("/_rollOutDashboardSearch")
public ResponseEntity<RollOutDashboardResponse> rollOutDashboardSearch(@RequestBody RollOutDashboardRequest rollOutDashboardRequest)
{
log.info("Roll out dashboard request"+rollOutDashboardRequest.getRollOutDashboard());
RollOutDashboard sendDataForRollOut=wSCalculationService.sendDataForRollOut(rollOutDashboardRequest);
RollOutDashboardResponse response = RollOutDashboardResponse.builder().
rollOutDashboard(sendDataForRollOut).build();

return new ResponseEntity<>(response,HttpStatus.OK);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package org.egov.wscalculation.web.models;

import jdk.nashorn.internal.ir.annotations.Ignore;
import lombok.*;

import java.time.LocalDateTime;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class RollOutDashboard {
private String id;
private String tenantid;
private String projectcode;
private String zone;
private String circle;
private String division;
private String subdivision;
private String section;
private int activeUsersCount;
private double totalAdvance;
private double totalPenalty;
private int totalConnections;
private int activeConnections;
private String lastDemandGenDate;
private int demandGeneratedConsumerCount;
private double totalDemandAmount;
private double collectionTillDate;
private String lastCollectionDate;
private int expenseCount;
private int countOfElectricityExpenseBills;
private int noOfPaidExpenseBills;
private String lastExpenseTxnDate;
private double totalAmountOfExpenseBills;
private double totalAmountOfElectricityBills;
private double totalAmountOfPaidExpenseBills;
private String dateRange;
private Date createdTime;
private String tenantName;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.egov.wscalculation.web.models;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.egov.common.contract.request.RequestInfo;

import javax.validation.Valid;

@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class RollOutDashboardRequest {

@JsonProperty("RequestInfo")
private RequestInfo requestInfo = null;

@Valid
@JsonProperty("rollOutDashboard")
private RollOutDashboard rollOutDashboard = null;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package org.egov.wscalculation.web.models;


import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.egov.common.contract.response.ResponseInfo;

import javax.validation.Valid;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class RollOutDashboardResponse {

@JsonProperty("ResponseInfo")
private ResponseInfo responseInfo = null;

@JsonProperty("RollOutDashboard")
private RollOutDashboard rollOutDashboard = null;

}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ spring.kafka.producer.value-serializer=org.springframework.kafka.support.seriali

$KAFKA TOPIC DETAILS
egov.watercalculatorservice.createdemand.topic=ws-generate-demand
kafka.topic.roll.out.dashboard=rollout-dashboard-index

#Demand Saved And Failed Topic
ws.calculator.demand.successful.topic=ws-demand-saved
Expand Down

0 comments on commit bc2c270

Please sign in to comment.