package in.gov.chennaicorporation.gccoffice.pgr.service; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import in.gov.chennaicorporation.gccoffice.pgr.dbconnection.DBConnection; @Service public class ReopenZonewiseComplaintReports { @Autowired DBConnection dbcon; public String sFrDate =""; public String sToDate =""; public String getReopenZoneComplaintQuery(String sFrDate,String sToDate,Integer iDeptID, Integer iPgrUserID) { int iPenReOpen = 1; StringBuilder queryBuilder = new StringBuilder(); queryBuilder.append("SELECT a.*, NVL(TO_CHAR(a.complaintdate, 'dd-mm-rrrr'), ' ') compdate, c.DEPT_NAME, u.user_name FROM "); queryBuilder.append("eggr_complaintdetails@erp a, EG_DEPARTMENT@ERP c, eggr_redressaldetails@erp b, eg_user@erp u "); queryBuilder.append("WHERE a.deptid = c.id_dept AND (NVL(DEPT_NAME, '0') NOT LIKE 'F%' AND DEPT_NAME IS NOT NULL) "); queryBuilder.append("AND a.complaintid = b.complaintid AND complaintdate >= TO_DATE('25-Oct-2010', 'DD-Mon-YYYY') "); queryBuilder.append("AND u.id_user = b.redressalofficerid "); if (iPenReOpen == 0) { queryBuilder.append("AND b.COMPLAINTSTATUSID IN (2, 3, 4, 9) "); } else if (iPenReOpen == 1) { queryBuilder.append("AND b.COMPLAINTSTATUSID IN (2, 3, 4) "); } else if (iPenReOpen == 2) { queryBuilder.append("AND b.COMPLAINTSTATUSID IN (9) "); } /* if (iRptID == 1) { queryBuilder.append("AND NVL(a.RECEIVINGCENTERID, 0) = 1 "); } else if (iRptID == 2) { queryBuilder.append("AND NVL(a.RECEIVINGCENTERID, 0) != 1 "); } */ if (iDeptID != 0) { queryBuilder.append("AND NVL(a.deptid, 0) = ").append(iDeptID).append(" "); } /* if (iDaysID == 1) { queryBuilder.append("AND (SYSDATE - complaintdate) > 90 "); } else if (iDaysID == 2) { queryBuilder.append("AND SYSDATE - complaintdate > 60 AND SYSDATE - complaintdate <= 90 "); } else if (iDaysID == 3) { queryBuilder.append("AND SYSDATE - complaintdate > 30 AND SYSDATE - complaintdate <= 60 "); } else if (iDaysID == 4) { queryBuilder.append("AND SYSDATE - complaintdate > 15 AND SYSDATE - complaintdate <= 30 "); } else if (iDaysID == 5) { queryBuilder.append("AND SYSDATE - complaintdate > 0 AND SYSDATE - complaintdate <= 15 "); } */ if (iPgrUserID != 0 && iDeptID != 37) { queryBuilder.append("AND NVL(b.redressalofficerid, 0) = ").append(iPgrUserID).append(" "); } if (!sFrDate.isEmpty() && !sToDate.isEmpty()) { queryBuilder.append("AND TRUNC(complaintdate) BETWEEN TO_DATE('").append(sFrDate).append("', 'yyyy/MM/dd') "); queryBuilder.append("AND TO_DATE('").append(sToDate).append("', 'yyyy/MM/dd') "); } /* if ("52,1,22,32,57,59,70,18,69,7,71,19,58,75,43".equals(sComplainttype)) { queryBuilder.append("AND a.complainttype NOT IN ('52,1,22,32,57,59,70,18,69,7,71,19,75,58,43,146,97,113,114,130,145,118,138,99,152,119,181,112,166') "); } else if (!"0".equals(sComplainttype)) { queryBuilder.append("AND complainttype IN (").append(sComplainttype).append(") "); } */ queryBuilder.append("ORDER BY user_name, a.complaintdate"); String sqlQuery = queryBuilder.toString(); System.out.println("sQry: " + sqlQuery); return sqlQuery; } public List> getReopenZoneWiseComplaints(String sFrDate,String sToDate ,Integer deptId, Integer pgrUserId) { Connection con =DBConnection.getConnection(); Statement stmt3; try { stmt3 = con.createStatement(); System.out.println( "checkingreopenzonewisecomreports..."); ResultSet rs4 = stmt3.executeQuery(getReopenZoneComplaintQuery(sFrDate,sToDate,deptId, pgrUserId )); List> rows = new ArrayList<>(); while (rs4.next()) { Map row = new HashMap<>(); ResultSetMetaData metaData = rs4.getMetaData(); int columnCount = metaData.getColumnCount(); for (int i = 1; i <= columnCount; i++) { String columnName = metaData.getColumnName(i); Object columnValue = rs4.getObject(i); //System.out.println(columnName+" :"+columnValue); if (columnValue instanceof String) { columnValue = HtmlEntityDecoder.convertHtmlEntitiesToUtf8((String) columnValue); } row.put(columnName, columnValue); } rows.add(row); } return rows; } catch (Exception e){ e.printStackTrace(); } return null; } }