You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

720 lines
32 KiB

package in.gov.chennaicorporation.gccoffice.school.Controller;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import in.gov.chennaicorporation.gccoffice.school.Service.SchoolPropertyService;
@RestController
@CrossOrigin()
@RequestMapping("/gcc/api/gccschool/schoolproperty")
public class SchoolPropertyController {
@Autowired
private SchoolPropertyService schoolPropertyService;
@Autowired
public SchoolPropertyController(SchoolPropertyService schoolPropertyService) {
this.schoolPropertyService = schoolPropertyService;
}
// To Get School Data
@GetMapping("/getSchoolData")
public ResponseEntity<Map<String, Object>> getSchoolData(@RequestParam String udise) {
try {
List<Map<String, Object>> data = schoolPropertyService.getSchoolData(udise);
Map<String, Object> response = new HashMap<>();
if (data.size() != 0) {
response.put("status", "OK");
response.put("data", data);
} else {
response.put("status", "Failed");
response.put("data", "No Data Found");
}
return ResponseEntity.ok(response);
} catch (Exception e) {
// Log the exception details for debugging
e.printStackTrace();
// Provide a user-friendly error message
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(Map.of("status", "Error", "message", "Error getting data: " + e.getMessage()));
}
}
// For Other Details
@PostMapping(value = "/saveSchoolBuildupArea")
public String saveSchoolBuildupArea(@RequestParam("land_area") Double land_area,
@RequestParam("buildup_area") Double buildup_area, @RequestParam("is_compound") Boolean is_compound,
@RequestParam("is_nameboard") Boolean is_nameboard, @RequestParam("is_pasystem") Boolean is_pasystem,
@RequestParam("is_bell") Boolean is_bell, @RequestParam("is_generator") Boolean is_generator,
@RequestParam("school_id") int school_id) {
return schoolPropertyService.saveSchoolBuildupArea(land_area, buildup_area, is_compound, is_nameboard,
is_pasystem, is_bell, is_generator, school_id);
}
// For Student Strength
@PostMapping(value = "/saveStudentStrength")
public String saveStudentStrength(@RequestParam("total_students") int total_students,
@RequestParam("total_girls") int total_girls, @RequestParam("total_boys") int total_boys,
@RequestParam("others") int others, @RequestParam("school_id") int school_id) {
return schoolPropertyService.saveStudentStrength(total_students, total_girls, total_boys, others, school_id);
}
// For Staff Strength
// @PostMapping(value="/saveStaffStrength")
// public String saveStaffStrength(
// @RequestParam("tot_staff") int tot_staff,
// @RequestParam("sg_staff") int sg_staff,
// @RequestParam("bt_staff") int bt_staff,
// @RequestParam("pg_staff") int pg_staff,
// @RequestParam("temp_staff") int temp_staff,
// @RequestParam("ngo_staff") int ngo_staff,
// @RequestParam("kg_staff") int kg_staff,
// @RequestParam("pt_staff") int pt_staff,
// @RequestParam("part_staff") int part_staff,
// @RequestParam("qa_staff") int qa_staff,
// @RequestParam("kg_ayha") int kg_ayha,
// @RequestParam("watchman") int watchman,
// @RequestParam("comp_asst") int comp_asst,
// @RequestParam("scavengers") int scavengers,
// @RequestParam("maint_workers") int maint_workers,
// @RequestParam("school_id") int school_id) {
//
// return schoolPropertyService.saveStaffStrength(tot_staff, sg_staff, bt_staff,pg_staff, temp_staff, ngo_staff, kg_staff, pt_staff,part_staff, qa_staff, kg_ayha, watchman, comp_asst, scavengers, maint_workers, school_id);
// }
// For Toilets
@PostMapping(value = "/saveToilets")
public String saveToilets(@RequestParam("total_toiletBlocks") int total_toiletBlocks,
@RequestParam("total_male_urinals") int total_male_urinals,
@RequestParam("total_wc_male") int total_wc_male, @RequestParam("total_wc_female") int total_wc_female,
@RequestParam("total_diffAbled_toilet") int total_diffAbled_toilet,
@RequestParam("is_napkins") Boolean is_napkins, @RequestParam("school_id") int school_id) {
return schoolPropertyService.saveToilets(total_toiletBlocks, total_male_urinals, total_wc_male, total_wc_female,
total_diffAbled_toilet, is_napkins, school_id);
}
// For Kitchen
@PostMapping(value = "/saveKitchen")
public String saveKitchen(@RequestParam(value = "is_cmbfs") Boolean is_cmbfs,
@RequestParam(value = "is_cmbfsIndividual", required = false) Boolean is_cmbfsIndividual,
@RequestParam(value = "is_noonmeal") Boolean is_noonmeal,
@RequestParam(value = "is_noonIndividual", required = false) Boolean is_noonIndividual,
@RequestParam(value = "is_vegGarden", required = false) Boolean is_vegGarden,
@RequestParam(value = "is_anganwadi") Boolean is_anganwadi,
@RequestParam(value = "anganwadi_unique", required = false) String anganwadi_unique,
@RequestParam(value = "is_anganwadiIndividual", required = false) Boolean is_anganwadiIndividual,
@RequestParam(value = "school_id") int school_id) {
if (anganwadi_unique != null && anganwadi_unique.trim().isEmpty()) {
anganwadi_unique = null;
}
return schoolPropertyService.saveKitchen(is_cmbfs, is_cmbfsIndividual, is_noonmeal, is_noonIndividual,
is_vegGarden, is_anganwadi, anganwadi_unique, is_anganwadiIndividual, school_id);
}
// For Playground
@PostMapping(value = "/savePlayground")
public ResponseEntity<Map<String, String>> savePlayground(@RequestBody Map<String, Object> payload) {
Map<String, String> response = new HashMap<>();
try {
Boolean is_playground = (Boolean) payload.get("is_playground");
Double playground_area = Double.valueOf(payload.get("playground_area").toString());
Boolean is_court = (Boolean) payload.get("is_court");
int school_id = Integer.parseInt(payload.get("school_id").toString());
// Boolean is_active = (Boolean) payload.get("is_active");
List<String> equipmentidRaw = (List<String>) payload.get("equipmentid");
List<String> courtidRaw = (List<String>) payload.get("courtid");
// Convert string IDs to integers
// List<Integer> equipmentid = equipmentidRaw.stream().map(Integer::parseInt).toList();
// List<Integer> courtid = courtidRaw.stream().map(Integer::parseInt).toList();
int playground_id = schoolPropertyService.savePlayground(is_playground, playground_area, is_court,
school_id);
for (String equipment_id : equipmentidRaw) {
schoolPropertyService.saveEquipmentDetails(equipment_id, school_id, playground_id);
}
for (String court_id : courtidRaw) {
schoolPropertyService.saveCourtDetails(court_id, school_id, playground_id);
}
response.put("status", "OK");
response.put("message", "Playground Details saved successfully");
return ResponseEntity.ok(response);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "ERROR");
response.put("message", "Failed to save playground details");
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response);
}
}
// For Drinking Water
@PostMapping(value = "/saveDrinkingWater")
public ResponseEntity<Map<String, Object>> saveDrinkingWater(@RequestBody Map<String, Object> requestData) {
try {
// Extract data from the map
List<Map<String, Object>> water = (List<Map<String, Object>>) requestData.get("water");
Boolean is_purifier = "1".equals(requestData.get("is_purifier"));
Double purifier_capacity = requestData.get("purifier_capacity") != null
? Double.valueOf(requestData.get("purifier_capacity").toString())
: null;
Boolean is_borewell = "1".equals(requestData.get("is_borewell"));
Integer borewell_count = requestData.get("borewell_count") != null
? Integer.valueOf(requestData.get("borewell_count").toString())
: null;
Boolean is_storage = "1".equals(requestData.get("is_storage"));
List<Map<String, Object>> storage = (List<Map<String, Object>>) requestData.get("storage");
int school_id = Integer.parseInt(requestData.get("school_id").toString());
Map<String, Object> response = new HashMap<>();
int drinking_water_id = schoolPropertyService.saveDrinkingWater(is_purifier, purifier_capacity, is_borewell,
borewell_count, is_storage, school_id);
for (Map<String, Object> waterSupply : water) {
int source_water_id = (int) waterSupply.get("source_water_id");
String supply_type = (String) waterSupply.get("supply_type");
schoolPropertyService.saveWaterSupply(source_water_id, supply_type, drinking_water_id, school_id);
}
if (!storage.isEmpty()) {
for (Map<String, Object> waterStorage : storage) {
double capacity = Double.valueOf(waterStorage.get("capacity").toString());
int storage_water_id = (int) waterStorage.get("storage_water_id");
schoolPropertyService.saveWaterStorage(capacity, storage_water_id, drinking_water_id, school_id);
}
}
response.put("status", "OK");
return ResponseEntity.ok(response);
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(Map.of("status", "Error", "message", "Error saving data: " + e.getMessage()));
}
}
@PostMapping("/saveStaffStrength")
public String saveStaffStrength(@RequestParam int sgRegTeacher, @RequestParam int sgTempTeacher,
@RequestParam int sgPtTeacher, @RequestParam int sgNgoTeacher, @RequestParam int btRegTeacher,
@RequestParam int btTempTeacher, @RequestParam int btPtTeacher, @RequestParam int btNgoTeacher,
@RequestParam int pgRegTeacher, @RequestParam int pgTempTeacher, @RequestParam int pgPtTeacher,
@RequestParam int pgNgoTeacher, @RequestParam int kgRegTeacher, @RequestParam int kgTempTeacher,
@RequestParam int petRegTeacher, @RequestParam int petTempTeacher, @RequestParam int petGrade1Teacher,
@RequestParam int petGrade2Teacher, @RequestParam int totOa, @RequestParam int kgAyah,
@RequestParam int compAss, @RequestParam int watchmen, @RequestParam int scavengers,
@RequestParam int maintenanceWork, @RequestParam int schoolId) {
// Call service method
schoolPropertyService.saveStaffStrength(sgRegTeacher, sgTempTeacher, sgPtTeacher, sgNgoTeacher, btRegTeacher,
btTempTeacher, btPtTeacher, btNgoTeacher, pgRegTeacher, pgTempTeacher, pgPtTeacher, pgNgoTeacher,
kgRegTeacher, kgTempTeacher, petRegTeacher, petTempTeacher, petGrade1Teacher, petGrade2Teacher, totOa,
kgAyah, compAss, watchmen, scavengers, maintenanceWork, schoolId);
return "Staff strength details saved successfully!";
}
// For login
@GetMapping(value = "/getLoginDetails")
public List<Map<String, Object>> getLoginDetails(@RequestParam String user_id) {
List<Map<String, Object>> schoolData = new ArrayList<>();
Map<String, Object> response = new HashMap<>();
String schoolId = schoolPropertyService.getSchoolId(user_id);
if (schoolId == null || schoolId.trim().isEmpty() || schoolId.equalsIgnoreCase("error")) {
response.put("Message", "Failure");
response.put("Data", List.of());
schoolData.add(response);
return schoolData;
}
List<Map<String, Object>> sch = schoolPropertyService.getSchoolData1(schoolId);
if (!sch.isEmpty()) {
response.put("Message", "Success");
response.put("Data", sch);
schoolData.add(response);
return schoolData;
} else {
response.put("Message", "No Data Found");
response.put("Data", List.of());
schoolData.add(response);
return schoolData;
}
}
@GetMapping("/getSchoolDetails")
public ResponseEntity<Map<String, Object>> getSchoolDetails(@RequestParam Long schoolId) {
try {
Map<String, Object> data = schoolPropertyService.getSchoolDetails(schoolId);
if (data != null && !data.isEmpty()) {
return ResponseEntity.ok(data);
} else {
return ResponseEntity.status(HttpStatus.NOT_FOUND)
.body(Map.of("status", "Failed", "message", "No school found with given ID"));
}
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(Map.of("status", "Error", "message", e.getMessage()));
}
}
@GetMapping("/filterSchools")
public ResponseEntity<?> filterSchools(@RequestParam String user_id, @RequestParam(required = false) String udise,
@RequestParam(required = false) String category, @RequestParam(required = false) String zone,
@RequestParam(required = false) String ward) {
List<Map<String, Object>> filteredSchools = schoolPropertyService.filterSchools(user_id, udise, category, zone,
ward);
Map<String, Object> result = new HashMap<>();
result.put("Message", "Success");
result.put("Data", filteredSchools);
return ResponseEntity.ok(Collections.singletonList(result));
}
@PostMapping("/updateOtherDetails")
public String updateOtherDetails(@RequestParam("land_area") Double land_area,
@RequestParam("buildup_area") Double buildup_area, @RequestParam("is_compound") Boolean is_compound,
@RequestParam("is_nameboard") Boolean is_nameboard, @RequestParam("is_pasystem") Boolean is_pasystem,
@RequestParam("is_bell") Boolean is_bell, @RequestParam("is_generator") Boolean is_generator,
@RequestParam("school_id") int school_id) {
try {
return schoolPropertyService.updateOtherDetails(land_area, buildup_area, is_compound, is_nameboard,
is_pasystem, is_bell, is_generator, school_id);
} catch (Exception e) {
e.printStackTrace();
return "Error";
}
}
@PostMapping(value = "/updateStudentDetails")
public String updateStudentDetails(@RequestParam("total_students") int total_students,
@RequestParam("total_girls") int total_girls, @RequestParam("total_boys") int total_boys,
@RequestParam("others") int others, @RequestParam("school_id") int school_id) {
System.out.println("Update Request => total: " + total_students + ", boys: " + total_boys + ", girls: "
+ total_girls + ", others: " + others + ", school_id: " + school_id);
try {
return schoolPropertyService.updateStudentDetails(total_students, total_girls, total_boys, others,
school_id);
} catch (Exception e) {
e.printStackTrace();
return "Error";
}
}
@GetMapping("/checkPlaygroundDetails")
public ResponseEntity<?> checkPlaygroundDetails(@RequestParam int school_id) {
Map<String, Object> playgroundDetails = schoolPropertyService.checkPlaygroundDetails(school_id);
List<Map<String, Object>> courtDetails = schoolPropertyService.checkCourtDetails(school_id);
List<Map<String, Object>> equipmentDetails = schoolPropertyService.checkEquipmentDetails(school_id);
Map<String, Object> result = new HashMap<>();
result.put("Message", "Success");
result.put("playgroundDetails", playgroundDetails);
result.put("CourtDetails", courtDetails);
result.put("EquipmentDetails", equipmentDetails);
return ResponseEntity.ok(Collections.singletonList(result));
}
/*
* @PostMapping(value = "/updatePlayground") public ResponseEntity<String>
* updatePlayground(@RequestBody Map<String, Object> payload) { try { Boolean
* is_playground = (Boolean) payload.get("is_playground"); Double
* playground_area = Double.valueOf(payload.get("playground_area").toString());
* Boolean is_court = (Boolean) payload.get("is_court"); int school_id =
* Integer.parseInt(payload.get("school_id").toString()); int playground_id =
* Integer.parseInt(payload.get("playground_id").toString());
*
* List<Map<String, Object>> equipments = (List<Map<String, Object>>)
* payload.get("equipments"); List<Map<String, Object>> courts =
* (List<Map<String, Object>>) payload.get("courts");
*
* String result = schoolPropertyService.updatePlaygroundDetails( is_playground,
* playground_area, is_court, equipments, courts, playground_id, school_id );
* return ResponseEntity.ok(result);
*
* } catch (Exception e) { e.printStackTrace(); return
* ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Error"); } }
*/
// @PostMapping(value = "/updatePlayground")
// public ResponseEntity<Map<String, String>> updatePlayground(@RequestBody Map<String, Object> payload) {
// Map<String, String> response = new HashMap<>();
// try {
// Boolean is_playground = (Boolean) payload.get("is_playground");
// Double playground_area = Double.valueOf(payload.get("playground_area").toString());
// Boolean is_court = (Boolean) payload.get("is_court");
// int school_id = Integer.parseInt(payload.get("school_id").toString());
// //Boolean is_active = (Boolean) payload.get("is_active");
// int playground_id = Integer.parseInt(payload.get("playground_id").toString());
//
//
// List<String> equipmentidRaw = (List<String>) payload.get("equipments");
// List<String> courtidRaw = (List<String>) payload.get("courts");
//
// // Convert string IDs to integers
// List<Integer> equipmentid = equipmentidRaw.stream().map(Integer::parseInt).toList();
// List<Integer> courtid = courtidRaw.stream().map(Integer::parseInt).toList();
// schoolPropertyService.deactiveCourts(school_id);
// schoolPropertyService.deactiveEquipments(school_id);
// schoolPropertyService.updatePlayground(is_playground, playground_area, is_court, school_id, playground_id);
// //int playground_id = schoolPropertyService.savePlayground(is_playground, playground_area, is_court,
// // school_id);
//
// for (Integer equipment_id : equipmentid) {
// schoolPropertyService.saveEquipmentDetails(equipment_id, school_id, playground_id);
// }
//
// for (Integer court_id : courtid) {
// schoolPropertyService.saveCourtDetails(court_id, school_id, playground_id);
// }
//
// response.put("status", "OK");
// response.put("message", "Playground Details updated successfully");
// return ResponseEntity.ok(response);
//
// } catch (Exception e) {
// e.printStackTrace();
// response.put("status", "ERROR");
// response.put("message", "Failed to updated playground details");
// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response);
// }
// }
@PostMapping(value = "/updatePlayground")
public ResponseEntity<Map<String, String>> updatePlayground(@RequestBody Map<String, Object> payload) {
Map<String, String> response = new HashMap<>();
try {
Boolean is_playground = (Boolean) payload.get("is_playground");
Double playground_area = Double.valueOf(payload.get("playground_area").toString());
Boolean is_court = (Boolean) payload.get("is_court");
int school_id = Integer.parseInt(payload.get("school_id").toString());
int playground_id = Integer.parseInt(payload.get("playground_id").toString());
List<Map<String, Object>> equipmentList = (List<Map<String, Object>>) payload.get("equipments");
List<Map<String, Object>> courtList = (List<Map<String, Object>>) payload.get("courts");
String status = schoolPropertyService.updatePlaygroundDetails(is_playground, playground_area, is_court,
equipmentList, courtList, playground_id, school_id);
response.put("status", status.equals("Success") ? "OK" : "ERROR");
response.put("message",
status.equals("Success") ? "Playground updated successfully" : "Failed to update playground");
return ResponseEntity.ok(response);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "ERROR");
response.put("message", "Exception occurred during update");
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response);
}
}
@PostMapping(value = "/updateKitchenDetails")
public String updateKitchenDetails(@RequestParam(value = "is_cmbfs") Boolean is_cmbfs,
@RequestParam(value = "is_cmbfsIndividual", required = false) Boolean is_cmbfsIndividual,
@RequestParam(value = "is_noonmeal") Boolean is_noonmeal,
@RequestParam(value = "is_noonIndividual", required = false) Boolean is_noonIndividual,
@RequestParam(value = "is_vegGarden", required = false) Boolean is_vegGarden,
@RequestParam(value = "is_anganwadi") Boolean is_anganwadi,
@RequestParam(value = "anganwadi_unique", required = false) String anganwadi_unique,
@RequestParam(value = "is_anganwadiIndividual", required = false) Boolean is_anganwadiIndividual,
@RequestParam(value = "school_id") int school_id) {
try {
return schoolPropertyService.updateKitchenDetails(is_cmbfs, is_cmbfsIndividual, is_noonmeal,
is_noonIndividual, is_vegGarden, is_anganwadi, anganwadi_unique, is_anganwadiIndividual, school_id);
} catch (Exception e) {
e.printStackTrace();
return "Error";
}
}
@GetMapping("/checkKitchenDetails")
public ResponseEntity<?> checkKitchenDetails(@RequestParam int school_id) {
Map<String, Object> kitchenDetails = schoolPropertyService.checkKitchenDetails(school_id);
Map<String, Object> result = new HashMap<>();
result.put("Message", "Success");
result.put("Data", kitchenDetails);
return ResponseEntity.ok(Collections.singletonList(result));
}
@PostMapping(value = "/updateStaffDetails")
public String updateStaffDetails(@RequestParam int sgRegTeacher, @RequestParam int sgTempTeacher,
@RequestParam int sgPtTeacher, @RequestParam int sgNgoTeacher, @RequestParam int btRegTeacher,
@RequestParam int btTempTeacher, @RequestParam int btPtTeacher, @RequestParam int btNgoTeacher,
@RequestParam int pgRegTeacher, @RequestParam int pgTempTeacher, @RequestParam int pgPtTeacher,
@RequestParam int pgNgoTeacher, @RequestParam int kgRegTeacher, @RequestParam int kgTempTeacher,
@RequestParam int petRegTeacher, @RequestParam int petTempTeacher, @RequestParam int petGrade1Teacher,
@RequestParam int petGrade2Teacher, @RequestParam int totOa, @RequestParam int kgAyah,
@RequestParam int compAss, @RequestParam int watchmen, @RequestParam int scavengers,
@RequestParam int maintenanceWork, @RequestParam int school_id) {
try {
return schoolPropertyService.updateStaffDetails(sgRegTeacher, sgTempTeacher, sgPtTeacher, sgNgoTeacher,
btRegTeacher, btTempTeacher, btPtTeacher, btNgoTeacher, pgRegTeacher, pgTempTeacher, pgPtTeacher,
pgNgoTeacher, kgRegTeacher, kgTempTeacher, petRegTeacher, petTempTeacher, petGrade1Teacher,
petGrade2Teacher, totOa, kgAyah, compAss, watchmen, scavengers, maintenanceWork, school_id);
} catch (Exception e) {
e.printStackTrace();
return "Error";
}
}
/*
* @GetMapping("/checkWaterDetails") public ResponseEntity<?> checkWaterDetails(
*
* @RequestParam int school_id) {
*
* Map<String, Object> drinkingWater =
* schoolPropertyService.checkWaterDetails(school_id); List<Map<String, Object>>
* waterSource = schoolPropertyService.checkWaterSource(school_id);
* List<Map<String, Object>> waterStorage =
* schoolPropertyService.checkWaterStotage(school_id);
*
* Map<String, Object> result = new HashMap<>(); result.put("Message",
* "Success"); result.put("DrinkingWater", drinkingWater);
* result.put("WaterSource", waterSource); result.put("WaterStorage",
* waterStorage);
*
* return ResponseEntity.ok(Collections.singletonList(result)); }
*/
// @PostMapping(value = "/updateDrinkingWater")
// public String updateDrinkingWater(@RequestParam("is_purifier") Boolean is_purifier, @RequestParam("purifier_capacity") Double purifier_capacity,
// @RequestParam("is_borewell") Boolean is_borewell, @RequestParam("borewell_count") int borewell_count, @RequestParam("is_storage") Boolean is_storage,
// @RequestParam("drinking_water_id") int drinking_water_id, @RequestParam("school_id") int school_id, @RequestParam("supply") List<Map<String, Object>> supply,
// @RequestParam("storage") List<Map<String, Object>> storage) {
// try {
//
// return schoolPropertyService.updateDrinkingWater(is_purifier, purifier_capacity, is_borewell, borewell_count, is_storage, drinking_water_id, school_id, supply, storage);
//
// } catch (Exception e) {
// e.printStackTrace();
// return "Error";
// }
//
// }
@PostMapping(value = "/updateDrinkingWater")
public ResponseEntity<Map<String, Object>> updateDrinkingWater(@RequestBody Map<String, Object> requestData) {
try {
System.out.println("Received update payload: " + requestData);
// Extract data from the map
// List<Map<String, Object>> water = (List<Map<String, Object>>)
// requestData.get("water");
List<Map<String, Object>> water = (List<Map<String, Object>>) requestData.getOrDefault("supply",
new ArrayList<>());
List<Map<String, Object>> storage = (List<Map<String, Object>>) requestData.getOrDefault("storage",
new ArrayList<>());
Boolean is_purifier = (Boolean) requestData.get("is_purifier");
Double purifier_capacity = requestData.get("purifier_capacity") != null
? Double.valueOf(requestData.get("purifier_capacity").toString())
: 0;
Boolean is_borewell = (Boolean) requestData.get("is_borewell");
Integer borewell_count = requestData.get("borewell_count") != null
? Integer.valueOf(requestData.get("borewell_count").toString())
: 0;
Boolean is_storage = (Boolean) requestData.get("is_storage");
// List<Map<String, Object>> storage = (List<Map<String, Object>>)
// requestData.get("storage");
int school_id = Integer.parseInt(requestData.get("school_id").toString());
int drinking_water_id = Integer.parseInt(requestData.get("drinking_water_id").toString());
Map<String, Object> response = new HashMap<>();
schoolPropertyService.updateDrinkWater(is_purifier, purifier_capacity, is_borewell, borewell_count,
is_storage, school_id, drinking_water_id);
schoolPropertyService.deactiveWaterSupply(school_id, drinking_water_id);
schoolPropertyService.deactiveWaterStorage(school_id, drinking_water_id);
for (Map<String, Object> waterSupply : water) {
int source_water_id = (int) waterSupply.get("source_water_id");
String supply_type = (String) waterSupply.get("supply_type");
schoolPropertyService.saveWaterSupply(source_water_id, supply_type, drinking_water_id, school_id);
}
if (!storage.isEmpty()) {
for (Map<String, Object> waterStorage : storage) {
double capacity = Double.valueOf(waterStorage.get("capacity").toString());
int storage_water_id = (int) waterStorage.get("storage_water_id");
schoolPropertyService.saveWaterStorage(capacity, storage_water_id, drinking_water_id, school_id);
}
}
response.put("status", "OK");
return ResponseEntity.ok(response);
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(Map.of("status", "Error", "message", "Error saving data: " + e.getMessage()));
}
}
@GetMapping("/checkWaterDetails")
public ResponseEntity<Map<String, Object>> checkWaterDetails(@RequestParam int school_id) {
System.out.println("CHECK 11");
try {
System.out.println("CHECK 1");
Map<String, Object> drinkingWater = schoolPropertyService.checkWaterDetails(school_id);
List<Map<String, Object>> waterSource = schoolPropertyService.checkWaterSource(school_id);
List<Map<String, Object>> waterStorage = schoolPropertyService.checkWaterStotage(school_id);
System.out.println("WATER SOURCE = " + waterSource);
Map<String, Object> response = new HashMap<>();
response.put("DrinkingWater", drinkingWater);
response.put("WaterSource", waterSource);
response.put("WaterStorage", waterStorage);
// ✅ Set status based on content presence
if (drinkingWater != null && !drinkingWater.isEmpty()) {
response.put("status", "OK");
} else {
response.put("status", "NEW");
}
return ResponseEntity.ok(response);
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(Map.of("status", "Error", "message", "Could not load drinking water data"));
}
}
@GetMapping("/checkToiletDetails")
public ResponseEntity<?> checkToiletDetails(@RequestParam int school_id) {
List<Map<String, Object>> toiletDetails = schoolPropertyService.checkToiletDetails(school_id);
Map<String, Object> result = new HashMap<>();
result.put("Message", "Success");
result.put("Data", toiletDetails);
return ResponseEntity.ok(Collections.singletonList(result));
}
@PostMapping(value = "/updateToiletDetails")
public String updateToiletDetails(@RequestParam("total_toiletBlocks") int total_toiletBlocks,
@RequestParam("total_male_urinals") int total_male_urinals,
@RequestParam("total_wc_male") int total_wc_male, @RequestParam("total_wc_female") int total_wc_female,
@RequestParam("total_diffAbled_toilet") int total_diffAbled_toilet,
@RequestParam("is_napkins") Boolean is_napkins, @RequestParam("school_id") int school_id) {
try {
return schoolPropertyService.updateToiletDetails(total_toiletBlocks, total_male_urinals, total_wc_male,
total_wc_female, total_diffAbled_toilet, is_napkins, school_id);
} catch (Exception e) {
e.printStackTrace();
return "Error";
}
}
@PostMapping(value = "/saveAssetMaster")
public ResponseEntity<Map<String, String>> saveAssetMaster(@RequestBody Map<String, Object> payload) {
Map<String, String> response = new HashMap<>();
String status = "";
try {
int school_id = Integer.parseInt(payload.get("school_id").toString());
int asset_id = Integer.parseInt(payload.get("asset_id").toString());
List<Map<String, Object>> equipmentList = (List<Map<String, Object>>) payload.get("data");
for (Map<String, Object> asset : equipmentList) {
int sub_asset_id = Integer.parseInt(asset.get("sub_asset_id").toString());
int master_qty = Integer.parseInt(asset.get("master_qty").toString());
status = schoolPropertyService.saveAssetMaster(sub_asset_id, master_qty, school_id, asset_id);
}
response.put("status", status.equals("Success") ? "OK" : "ERROR");
response.put("message",
status.equals("Success") ? "Asset Master Saved successfully" : "Failed to Save Asset Master");
return ResponseEntity.ok(response);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "ERROR");
response.put("message", "Exception occurred during update");
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response);
}
}
@GetMapping("/getAssetMaster")
public ResponseEntity<?> getAssetMaster(@RequestParam int school_id, @RequestParam int asset_id) {
List<Map<String, Object>> data = schoolPropertyService.getAssetMaster(school_id, asset_id);
// System.out.println("data=="+data);
Map<String, Object> result = new HashMap<>();
result.put("status", "Success");
result.put("data", data);
return ResponseEntity.ok(result);
}
@GetMapping("/getAssetMasterById")
public ResponseEntity<?> getAssetMasterById(@RequestParam int assetMasterId, @RequestParam int asset_id) {
Map<String, Object> data = schoolPropertyService.getAssetMasterById(assetMasterId, asset_id);
Map<String, Object> result = new HashMap<>();
result.put("status", "Success");
result.put("data", data);
return ResponseEntity.ok(result);
}
@PostMapping(value = "/updateAssetMaster")
public String updateStudentDetails(@RequestParam("master_qty") int master_qty,
@RequestParam("assetMasterId") int assetMasterId, @RequestParam("asset_id") int asset_id) {
try {
Map<String, Object> assetMaster = schoolPropertyService.getAssetMasterById(assetMasterId, asset_id);
int qty = (Integer) assetMaster.get("master_qty");
int unmapped_asset = (Integer) assetMaster.get("unmapped_qty");
int master = qty + master_qty;
int unmapped = master_qty + unmapped_asset;
return schoolPropertyService.updateAssetMaster(assetMasterId, master, asset_id, unmapped);
} catch (Exception e) {
e.printStackTrace();
return "Error";
}
}
}