Skip to content
Snippets Groups Projects
Commit d475813d authored by Mingyuan Chen's avatar Mingyuan Chen
Browse files

1

parent 9fc4c79b
No related branches found
No related tags found
1 merge request!76Connect to the database nurse form and display nurse data normally.
......@@ -31,7 +31,7 @@ public class CommonAdminHospitalController {
commonAdminHospitalService.addHospital(hospital);
return ResponseEntity.ok("Hospital added successfully!");
} catch (Exception e) {
e.printStackTrace();
e.printStackTrace(); // Print error log
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body("Error adding hospital: " + e.getMessage());
}
......@@ -45,13 +45,8 @@ public class CommonAdminHospitalController {
@PutMapping("/update")
public ResponseEntity<String> updateHospital(@RequestBody HospitalDTO hospital) {
try {
commonAdminHospitalService.updateHospital(hospital);
return ResponseEntity.ok("Hospital updated successfully!");
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body("Error updating hospital: " + e.getMessage());
}
commonAdminHospitalService.updateHospital(hospital);
return ResponseEntity.ok("Hospital updated successfully!");
}
@DeleteMapping("/delete/{id}")
......
......@@ -6,6 +6,7 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
@Repository
......@@ -22,16 +23,31 @@ public class CommonAdminHospitalMapper {
// Add Hospital Information
public int save(HospitalDTO hospital) {
String sql = "INSERT INTO hospital (name, location, phone, totalBeds, availableBeds, occupancyRate) VALUES (?, ?, ?, ?, ?, ?)";
return jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(), hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate());
String sql = "INSERT INTO hospital (name, address, phone, totalBeds, availableBeds, occupancyRate) VALUES (?, ?, ?, ?, ?, ?)";
return jdbcTemplate.update(sql, hospital.getName(), hospital.getAddress(), hospital.getPhone(), hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate());
}
// Update Hospital Information
public int update(HospitalDTO hospital) {
String sql = "UPDATE hospital SET name=?, location=?, phone=?, totalBeds=?, availableBeds=?, occupancyRate=? WHERE id=?";
return jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(), hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate(), hospital.getId());
String sql = "UPDATE hospital SET name=?, address=?, phone=?, totalBeds=?, availableBeds=?, occupancyRate=? WHERE id=?";
return jdbcTemplate.update(sql, hospital.getName(), hospital.getAddress(), hospital.getPhone(), hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate(), hospital.getId());
}
public List<HospitalDTO> searchHospitals(String name, String address) {
StringBuilder sql = new StringBuilder("SELECT * FROM hospital WHERE 1=1");
List<Object> params = new ArrayList<>();
if (name != null && !name.trim().isEmpty()) {
sql.append(" AND name LIKE ?");
params.add("%" + name.trim() + "%");
}
if (address != null && !address.trim().isEmpty()) {
sql.append(" AND address LIKE ?");
params.add("%" + address.trim() + "%");
}
return jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<>(HospitalDTO.class), params.toArray());
}
......
......@@ -7,7 +7,6 @@ public class HospitalDTO {
private int id;
private String name;
private String address;
private String location;
private String phone;
private int totalBeds;
private int availableBeds;
......
......@@ -7,6 +7,7 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
......@@ -22,17 +23,23 @@ public class CommonAdminHospitalServiceImp implements CommonAdminHospitalService
}
@Override
public List<HospitalDTO> searchHospitals(String name, String location) {
String sql = "SELECT * FROM hospital WHERE 1=1";
if (name != null && !name.isEmpty()) {
sql += " AND name LIKE '%" + name + "%'";
public List<HospitalDTO> searchHospitals(String name, String address) {
StringBuilder sql = new StringBuilder("SELECT * FROM hospital WHERE 1=1");
List<Object> params = new ArrayList<>();
if (name != null && !name.trim().isEmpty()) {
sql.append(" AND name LIKE ?");
params.add("%" + name.trim() + "%");
}
if (location != null && !location.isEmpty()) {
sql += " AND location LIKE '%" + location + "%'";
if (address != null && !address.trim().isEmpty()) {
sql.append(" AND address LIKE ?");
params.add("%" + address.trim() + "%");
}
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(HospitalDTO.class));
return jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<>(HospitalDTO.class), params.toArray());
}
@Override
public void addHospital(HospitalDTO hospital) {
if (hospital.getName() == null || hospital.getAddress() == null || // 修改为 address
......@@ -49,9 +56,11 @@ public class CommonAdminHospitalServiceImp implements CommonAdminHospitalService
}
@Override
public void updateHospital(HospitalDTO hospital) {
if (hospital.getId() <= 0 || hospital.getName() == null || hospital.getLocation() == null ||
if (hospital.getId() <= 0 || hospital.getName() == null || hospital.getAddress() == null ||
hospital.getPhone() == null || hospital.getTotalBeds() <= 0 || hospital.getAvailableBeds() < 0) {
throw new IllegalArgumentException("Invalid hospital data: Missing or incorrect fields.");
}
......@@ -59,7 +68,7 @@ public class CommonAdminHospitalServiceImp implements CommonAdminHospitalService
String sql = "UPDATE hospital SET name = ?, location = ?, phone = ?, totalBeds = ?, availableBeds = ?, occupancyRate = ? WHERE id = ?";
double occupancyRate = 1.0 - (double) hospital.getAvailableBeds() / hospital.getTotalBeds();
int rowsUpdated = jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(),
int rowsUpdated = jdbcTemplate.update(sql, hospital.getName(), hospital.getAddress(), hospital.getPhone(),
hospital.getTotalBeds(), hospital.getAvailableBeds(), occupancyRate, hospital.getId());
if (rowsUpdated == 0) {
......
......@@ -31,7 +31,7 @@
<input type="text" id="modal-address" placeholder="Enter address" />
<label for="modal-phone">Phone</label>
<input type="text" id="modal-phone" placeholder="Enter phone number" />
<label for="modal-totalBeds">Total Beds</label>
<label for="modal-totalBeds">Email</label>
<input type="number" id="modal-totalBeds" placeholder="Enter total beds" />
<label for="modal-availableBeds">Available Beds</label>
<input type="number" id="modal-availableBeds" placeholder="Enter available beds" />
......@@ -84,8 +84,6 @@
<th>Name</th>
<th>Address</th>
<th>Phone</th>
<th>Total Beds</th>
<th>Available Beds</th>
<th>Actions</th>
</tr>
</thead>
......@@ -105,8 +103,6 @@
document.getElementById('modal-name').value = '';
document.getElementById('modal-address').value = '';
document.getElementById('modal-phone').value = '';
document.getElementById('modal-totalBeds').value = '';
document.getElementById('modal-availableBeds').value = '';
document.getElementById('save-hospital-btn').onclick = saveHospital;
}
......@@ -120,8 +116,6 @@
name: document.getElementById('modal-name').value.trim(),
address: document.getElementById('modal-address').value.trim(),
phone: document.getElementById('modal-phone').value.trim(),
totalBeds: parseInt(document.getElementById('modal-totalBeds').value, 10),
availableBeds: parseInt(document.getElementById('modal-availableBeds').value, 10),
};
if (!hospitalData.name || !hospitalData.address || !hospitalData.phone ||
......@@ -163,8 +157,6 @@
<td>${hospital.name}</td>
<td>${hospital.address}</td>
<td>${hospital.phone}</td>
<td>${hospital.totalBeds}</td>
<td>${hospital.availableBeds}</td>
<td>
<button class="editButton" data-id="${hospital.id}">Edit</button>
<button class="deleteButton" data-id="${hospital.id}">Delete</button>
......@@ -205,8 +197,6 @@
document.getElementById('modal-name').value = hospital.name;
document.getElementById('modal-address').value = hospital.address;
document.getElementById('modal-phone').value = hospital.phone;
document.getElementById('modal-totalBeds').value = hospital.totalBeds;
document.getElementById('modal-availableBeds').value = hospital.availableBeds;
document.getElementById('hospital-modal').style.display = 'flex';
document.getElementById('save-hospital-btn').onclick = () => updateHospital(id);
......@@ -220,8 +210,6 @@
name: document.getElementById('modal-name').value.trim(),
address: document.getElementById('modal-address').value.trim(),
phone: document.getElementById('modal-phone').value.trim(),
totalBeds: parseInt(document.getElementById('modal-totalBeds').value, 10),
availableBeds: parseInt(document.getElementById('modal-availableBeds').value, 10),
};
if (!hospitalData.name || !hospitalData.address || !hospitalData.phone ||
......@@ -250,8 +238,22 @@
function bindToolbarEvents() {
document.getElementById('addHospitalButton').addEventListener('click', openAddHospitalModal);
document.getElementById('searchButton').addEventListener('click', () => {
const name = document.getElementById('searchName').value.trim();
const address = document.getElementById('searchAddress').value.trim();
const filters = {};
if (name) filters.name = name;
if (address) filters.location = address;
loadHospitals(filters);
});
document.getElementById('allButton').addEventListener('click', () => {
loadHospitals();
});
}
function bindRowEvents() {
document.querySelectorAll('.deleteButton').forEach(button => {
button.addEventListener('click', handleDeleteHospital);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment