|
|
@ -157,28 +157,20 @@ public class WorksService { |
|
|
|
|
|
|
|
|
public Map<String, Object> getDashboardDetails( |
|
|
public Map<String, Object> getDashboardDetails( |
|
|
String financialYear, Integer workType, Integer roadType, Integer fundType, String progressStatus, |
|
|
String financialYear, Integer workType, Integer roadType, Integer fundType, String progressStatus, |
|
|
Integer zone, Integer ward) { |
|
|
|
|
|
|
|
|
Integer zone, Integer ward, String lastRelayedStatus) { |
|
|
|
|
|
|
|
|
StringBuilder where = new StringBuilder(" AND wd.isactive = 1 AND wd.isdelete = 0 "); |
|
|
StringBuilder where = new StringBuilder(" AND wd.isactive = 1 AND wd.isdelete = 0 "); |
|
|
|
|
|
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
|
|
|
|
|
// Build common filters |
|
|
// Build common filters |
|
|
buildFilters(where, params, financialYear, fundType, progressStatus, zone, ward); |
|
|
|
|
|
|
|
|
buildFilters(where, params, financialYear, fundType, progressStatus, zone, ward,lastRelayedStatus); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> response = new HashMap<>(); |
|
|
Map<String, Object> response = new HashMap<>(); |
|
|
|
|
|
|
|
|
response.put("summary", getSummary(where.toString(), params)); |
|
|
response.put("summary", getSummary(where.toString(), params)); |
|
|
|
|
|
|
|
|
/*response.put( |
|
|
|
|
|
"roadStatus", |
|
|
|
|
|
getRoadStatus( |
|
|
|
|
|
where.toString(), |
|
|
|
|
|
params |
|
|
|
|
|
) |
|
|
|
|
|
);*/ |
|
|
|
|
|
|
|
|
|
|
|
response.put("roadTypes", RoadTypes(where.toString(), params, roadType, workType)); |
|
|
response.put("roadTypes", RoadTypes(where.toString(), params, roadType, workType)); |
|
|
|
|
|
|
|
|
response.put("workTypes", WorkTypes(where.toString(), params, roadType, workType)); |
|
|
response.put("workTypes", WorkTypes(where.toString(), params, roadType, workType)); |
|
|
@ -197,7 +189,7 @@ public class WorksService { |
|
|
|
|
|
|
|
|
private void buildFilters( |
|
|
private void buildFilters( |
|
|
StringBuilder where, List<Object> params, String financialYear, Integer fundType, String progressStatus, |
|
|
StringBuilder where, List<Object> params, String financialYear, Integer fundType, String progressStatus, |
|
|
Integer zone, Integer ward) { |
|
|
|
|
|
|
|
|
Integer zone, Integer ward,String lastRelayedStatus) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Zone |
|
|
// Zone |
|
|
@ -244,7 +236,7 @@ public class WorksService { |
|
|
AND DATEDIFF( |
|
|
AND DATEDIFF( |
|
|
CURDATE(), |
|
|
CURDATE(), |
|
|
wd.loa_date |
|
|
wd.loa_date |
|
|
) <= wd.contractor_period |
|
|
|
|
|
|
|
|
) <= CAST(wd.contractor_period AS UNSIGNED) |
|
|
"""); |
|
|
"""); |
|
|
|
|
|
|
|
|
break; |
|
|
break; |
|
|
@ -267,7 +259,7 @@ public class WorksService { |
|
|
AND DATEDIFF( |
|
|
AND DATEDIFF( |
|
|
CURDATE(), |
|
|
CURDATE(), |
|
|
wd.loa_date |
|
|
wd.loa_date |
|
|
) > wd.contractor_period |
|
|
|
|
|
|
|
|
) > CAST(wd.contractor_period AS UNSIGNED) |
|
|
"""); |
|
|
"""); |
|
|
|
|
|
|
|
|
break; |
|
|
break; |
|
|
@ -288,6 +280,99 @@ public class WorksService { |
|
|
|
|
|
|
|
|
params.add(financialYear); |
|
|
params.add(financialYear); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// lastRelayedStatus |
|
|
|
|
|
|
|
|
|
|
|
// Last Relayed Status |
|
|
|
|
|
if (lastRelayedStatus != null |
|
|
|
|
|
&& !lastRelayedStatus.trim().isEmpty()) { |
|
|
|
|
|
|
|
|
|
|
|
switch (lastRelayedStatus) { |
|
|
|
|
|
|
|
|
|
|
|
case "within_six": |
|
|
|
|
|
|
|
|
|
|
|
where.append(""" |
|
|
|
|
|
AND STR_TO_DATE( |
|
|
|
|
|
CONCAT( |
|
|
|
|
|
'28 ', |
|
|
|
|
|
wd.last_relay_month, |
|
|
|
|
|
' ', |
|
|
|
|
|
wd.last_relay_year |
|
|
|
|
|
), |
|
|
|
|
|
'%d %M %Y' |
|
|
|
|
|
) >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH) |
|
|
|
|
|
|
|
|
|
|
|
AND STR_TO_DATE( |
|
|
|
|
|
CONCAT( |
|
|
|
|
|
'28 ', |
|
|
|
|
|
wd.last_relay_month, |
|
|
|
|
|
' ', |
|
|
|
|
|
wd.last_relay_year |
|
|
|
|
|
), |
|
|
|
|
|
'%d %M %Y' |
|
|
|
|
|
) <= CURDATE() |
|
|
|
|
|
"""); |
|
|
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case "six_to_one": |
|
|
|
|
|
|
|
|
|
|
|
where.append(""" |
|
|
|
|
|
AND STR_TO_DATE( |
|
|
|
|
|
CONCAT( |
|
|
|
|
|
'28 ', |
|
|
|
|
|
wd.last_relay_month, |
|
|
|
|
|
' ', |
|
|
|
|
|
wd.last_relay_year |
|
|
|
|
|
), |
|
|
|
|
|
'%d %M %Y' |
|
|
|
|
|
) < DATE_SUB(CURDATE(), INTERVAL 6 MONTH) |
|
|
|
|
|
|
|
|
|
|
|
AND STR_TO_DATE( |
|
|
|
|
|
CONCAT( |
|
|
|
|
|
'28 ', |
|
|
|
|
|
wd.last_relay_month, |
|
|
|
|
|
' ', |
|
|
|
|
|
wd.last_relay_year |
|
|
|
|
|
), |
|
|
|
|
|
'%d %M %Y' |
|
|
|
|
|
) >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR) |
|
|
|
|
|
|
|
|
|
|
|
AND STR_TO_DATE( |
|
|
|
|
|
CONCAT( |
|
|
|
|
|
'28 ', |
|
|
|
|
|
wd.last_relay_month, |
|
|
|
|
|
' ', |
|
|
|
|
|
wd.last_relay_year |
|
|
|
|
|
), |
|
|
|
|
|
'%d %M %Y' |
|
|
|
|
|
) <= CURDATE() |
|
|
|
|
|
"""); |
|
|
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case "above_one_year": |
|
|
|
|
|
|
|
|
|
|
|
where.append(""" |
|
|
|
|
|
AND STR_TO_DATE( |
|
|
|
|
|
CONCAT( |
|
|
|
|
|
'28 ', |
|
|
|
|
|
wd.last_relay_month, |
|
|
|
|
|
' ', |
|
|
|
|
|
wd.last_relay_year |
|
|
|
|
|
), |
|
|
|
|
|
'%d %M %Y' |
|
|
|
|
|
) < DATE_SUB(CURDATE(), INTERVAL 1 YEAR) |
|
|
|
|
|
"""); |
|
|
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -351,7 +436,7 @@ public class WorksService { |
|
|
" AND DATEDIFF( " + |
|
|
" AND DATEDIFF( " + |
|
|
" CURDATE(), " + |
|
|
" CURDATE(), " + |
|
|
" wd.loa_date " + |
|
|
" wd.loa_date " + |
|
|
" ) > wd.contractor_period " + |
|
|
|
|
|
|
|
|
" ) > CAST(wd.contractor_period AS UNSIGNED) " + |
|
|
" THEN wd.estid " + |
|
|
" THEN wd.estid " + |
|
|
" END " + |
|
|
" END " + |
|
|
" ) AS delay_count, " + |
|
|
" ) AS delay_count, " + |
|
|
@ -363,7 +448,7 @@ public class WorksService { |
|
|
" AND DATEDIFF( " + |
|
|
" AND DATEDIFF( " + |
|
|
" CURDATE(), " + |
|
|
" CURDATE(), " + |
|
|
" wd.loa_date " + |
|
|
" wd.loa_date " + |
|
|
" ) <= wd.contractor_period " + |
|
|
|
|
|
|
|
|
" ) <= CAST(wd.contractor_period AS UNSIGNED) " + |
|
|
" THEN wd.estid " + |
|
|
" THEN wd.estid " + |
|
|
" END " + |
|
|
" END " + |
|
|
" ) AS inprogress_count " + |
|
|
" ) AS inprogress_count " + |
|
|
@ -450,7 +535,7 @@ public class WorksService { |
|
|
+ " AND wd.sub_category = 4 " |
|
|
+ " AND wd.sub_category = 4 " |
|
|
+ " AND wd.percentage > 0 " |
|
|
+ " AND wd.percentage > 0 " |
|
|
+ " AND wd.percentage < 100 " |
|
|
+ " AND wd.percentage < 100 " |
|
|
+ " AND DATEDIFF(CURDATE(), wd.loa_date) > wd.contractor_period "; |
|
|
|
|
|
|
|
|
+ " AND DATEDIFF(CURDATE(), wd.loa_date) > CAST(wd.contractor_period AS UNSIGNED) "; |
|
|
|
|
|
|
|
|
String sql = |
|
|
String sql = |
|
|
"SELECT " + |
|
|
"SELECT " + |
|
|
@ -460,28 +545,28 @@ public class WorksService { |
|
|
|
|
|
|
|
|
// Delay > 15 days and <= 30 days |
|
|
// Delay > 15 days and <= 30 days |
|
|
" COUNT(DISTINCT CASE " + |
|
|
" COUNT(DISTINCT CASE " + |
|
|
" WHEN (DATEDIFF(CURDATE(), wd.loa_date) - wd.contractor_period) > 15 " + |
|
|
|
|
|
" AND (DATEDIFF(CURDATE(), wd.loa_date) - wd.contractor_period) <= 30 " + |
|
|
|
|
|
|
|
|
" WHEN (DATEDIFF(CURDATE(), wd.loa_date) - CAST(wd.contractor_period AS UNSIGNED)) > 15 " + |
|
|
|
|
|
" AND (DATEDIFF(CURDATE(), wd.loa_date) - CAST(wd.contractor_period AS UNSIGNED)) <= 30 " + |
|
|
" THEN wd.estid " + |
|
|
" THEN wd.estid " + |
|
|
" END) AS delayed_15_days, " + |
|
|
" END) AS delayed_15_days, " + |
|
|
|
|
|
|
|
|
// Delay > 30 days and <= 90 days |
|
|
// Delay > 30 days and <= 90 days |
|
|
" COUNT(DISTINCT CASE " + |
|
|
" COUNT(DISTINCT CASE " + |
|
|
" WHEN (DATEDIFF(CURDATE(), wd.loa_date) - wd.contractor_period) > 30 " + |
|
|
|
|
|
" AND (DATEDIFF(CURDATE(), wd.loa_date) - wd.contractor_period) <= 90 " + |
|
|
|
|
|
|
|
|
" WHEN (DATEDIFF(CURDATE(), wd.loa_date) - CAST(wd.contractor_period AS UNSIGNED)) > 30 " + |
|
|
|
|
|
" AND (DATEDIFF(CURDATE(), wd.loa_date) - CAST(wd.contractor_period AS UNSIGNED)) <= 90 " + |
|
|
" THEN wd.estid " + |
|
|
" THEN wd.estid " + |
|
|
" END) AS delayed_1_month, " + |
|
|
" END) AS delayed_1_month, " + |
|
|
|
|
|
|
|
|
// Delay > 90 days and <= 180 days |
|
|
// Delay > 90 days and <= 180 days |
|
|
" COUNT(DISTINCT CASE " + |
|
|
" COUNT(DISTINCT CASE " + |
|
|
" WHEN (DATEDIFF(CURDATE(), wd.loa_date) - wd.contractor_period) > 90 " + |
|
|
|
|
|
" AND (DATEDIFF(CURDATE(), wd.loa_date) - wd.contractor_period) <= 180 " + |
|
|
|
|
|
|
|
|
" WHEN (DATEDIFF(CURDATE(), wd.loa_date) - CAST(wd.contractor_period AS UNSIGNED)) > 90 " + |
|
|
|
|
|
" AND (DATEDIFF(CURDATE(), wd.loa_date) - CAST(wd.contractor_period AS UNSIGNED)) <= 180 " + |
|
|
" THEN wd.estid " + |
|
|
" THEN wd.estid " + |
|
|
" END) AS delayed_3_month, " + |
|
|
" END) AS delayed_3_month, " + |
|
|
|
|
|
|
|
|
// Delay > 180 days |
|
|
// Delay > 180 days |
|
|
" COUNT(DISTINCT CASE " + |
|
|
" COUNT(DISTINCT CASE " + |
|
|
" WHEN (DATEDIFF(CURDATE(), wd.loa_date) - wd.contractor_period) > 180 " + |
|
|
|
|
|
|
|
|
" WHEN (DATEDIFF(CURDATE(), wd.loa_date) - CAST(wd.contractor_period AS UNSIGNED)) > 180 " + |
|
|
" THEN wd.estid " + |
|
|
" THEN wd.estid " + |
|
|
" END) AS delayed_6_month " + |
|
|
" END) AS delayed_6_month " + |
|
|
|
|
|
|
|
|
@ -781,7 +866,7 @@ public class WorksService { |
|
|
|
|
|
|
|
|
" WHEN wd.percentage > 0 " + |
|
|
" WHEN wd.percentage > 0 " + |
|
|
" AND wd.percentage < 100 " + |
|
|
" AND wd.percentage < 100 " + |
|
|
" AND DATEDIFF(CURDATE(), wd.loa_date) > wd.contractor_period " + |
|
|
|
|
|
|
|
|
" AND DATEDIFF(CURDATE(), wd.loa_date) > CAST(wd.contractor_period AS UNSIGNED) " + |
|
|
" THEN 'Delayed' " + |
|
|
" THEN 'Delayed' " + |
|
|
|
|
|
|
|
|
" WHEN wd.percentage > 0 " + |
|
|
" WHEN wd.percentage > 0 " + |
|
|
@ -837,7 +922,7 @@ public class WorksService { |
|
|
" CONCAT('" + fileBaseUrl + "/gcc/files', ew.work_order_file) AS view_workOrder_file " + |
|
|
" CONCAT('" + fileBaseUrl + "/gcc/files', ew.work_order_file) AS view_workOrder_file " + |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
" FROM erp_works ew " + |
|
|
|
|
|
|
|
|
" FROM works_details ew " + |
|
|
|
|
|
|
|
|
" LEFT JOIN department_master dm " + |
|
|
" LEFT JOIN department_master dm " + |
|
|
" ON dm.id = ew.department " + |
|
|
" ON dm.id = ew.department " + |
|
|
@ -1085,7 +1170,7 @@ public class WorksService { |
|
|
THEN DATE_FORMAT( |
|
|
THEN DATE_FORMAT( |
|
|
DATE_ADD( |
|
|
DATE_ADD( |
|
|
wd.work_commenced_date, |
|
|
wd.work_commenced_date, |
|
|
INTERVAL wd.contractor_period DAY |
|
|
|
|
|
|
|
|
INTERVAL CAST(wd.contractor_period AS UNSIGNED) DAY |
|
|
), |
|
|
), |
|
|
'%d-%m-%Y' |
|
|
'%d-%m-%Y' |
|
|
) |
|
|
) |
|
|
|