diff --git a/src/main/java/com/cardiff/client_project/controller/admin/CommonAdminHospitalController.java b/src/main/java/com/cardiff/client_project/controller/admin/CommonAdminHospitalController.java
index fa508744974e4506fd77f441badc79d5c4aba29c..2ecb253364419d949e37d3b221ed1ecf72c3d045 100644
--- a/src/main/java/com/cardiff/client_project/controller/admin/CommonAdminHospitalController.java
+++ b/src/main/java/com/cardiff/client_project/controller/admin/CommonAdminHospitalController.java
@@ -54,6 +54,7 @@ public class CommonAdminHospitalController {
     public ResponseEntity<String> deleteHospital(@PathVariable int id) {
         try {
             commonAdminHospitalService.deleteHospital(id);
+            commonAdminHospitalService.resetHospitalIds(); // Reset IDs after deletion
             return ResponseEntity.ok("Hospital deleted successfully!");
         } catch (Exception e) {
             return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
@@ -61,6 +62,7 @@ public class CommonAdminHospitalController {
         }
     }
 
+
     @GetMapping("/nurses")
     public List<NurseVO> getNurses(@RequestParam(value = "name", required = false) String name,
                                    @RequestParam(value = "hospitalId", required = false) Integer hospitalId) {
@@ -70,4 +72,16 @@ public class CommonAdminHospitalController {
         return commonAdminHospitalService.searchNurses(name, hospitalId);
     }
 
+    @GetMapping("/{id}")
+    public ResponseEntity<HospitalDTO> getHospitalById(@PathVariable int id) {
+        HospitalDTO hospital = commonAdminHospitalService.getHospitalById(id);
+        if (hospital != null) {
+            return ResponseEntity.ok(hospital);
+        } else {
+            return ResponseEntity.status(HttpStatus.NOT_FOUND)
+                    .body(null);
+        }
+    }
+
+
 }
diff --git a/src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java b/src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java
index eecf39fc96f45a64b2c82731548776e9b199308f..11b40123cee8a995bed7897f7fb0edc528bc0cd1 100644
--- a/src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java
+++ b/src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java
@@ -15,8 +15,7 @@ public class CommonAdminHospitalMapper {
 
     @Autowired
     JdbcTemplate jdbcTemplate;
-
-    // 更新医院信息
+    
     public int update(HospitalDTO hospital) {
         String sql = "UPDATE hospital SET name=?, address=?, phone=?, totalBeds=?, availableBeds=?, occupancyRate=? WHERE id=?";
         return jdbcTemplate.update(sql, hospital.getName(), hospital.getAddress(), hospital.getPhone(),
diff --git a/src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java b/src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java
index 9bce53158e34312afcd7e585641a29a02cd5affc..1be393024defafc26c690141c86f493cb4ab554c 100644
--- a/src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java
+++ b/src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java
@@ -18,8 +18,15 @@ public interface CommonAdminHospitalService {
 
     void updateHospital(HospitalDTO hospital);
 
+    void editHospital(HospitalDTO hospital);
+
     void deleteHospital(int id);
 
+    HospitalDTO getHospitalById(int id);
+
+
+    void resetHospitalIds();
+
     List<NurseVO> getAllNurses();
     List<NurseVO> searchNurses(String name, Integer hospitalId);
 
diff --git a/src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java b/src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java
index 535199c8949f1fd2011910a681d5bbf53a931b30..938c24802bb2eb66699f19b9a5c5acf2a5eda4f9 100644
--- a/src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java
+++ b/src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java
@@ -51,9 +51,14 @@ public class CommonAdminHospitalServiceImp implements CommonAdminHospitalService
 
         double occupancyRate = 1.0 - (double) hospital.getAvailableBeds() / hospital.getTotalBeds();
 
-        String sql = "INSERT INTO hospital (name, address, phone, totalBeds, availableBeds, occupancyRate) VALUES (?, ?, ?, ?, ?, ?)";
-        jdbcTemplate.update(sql, hospital.getName(), hospital.getAddress(), hospital.getPhone(),
-                hospital.getTotalBeds(), hospital.getAvailableBeds(), occupancyRate);
+        String sql = "INSERT INTO hospital (name, address, phone, maxAmount, amountPatient) VALUES (?, ?, ?, ?, ?)";
+        jdbcTemplate.update(sql,
+                hospital.getName(),
+                hospital.getAddress(),
+                hospital.getPhone(),
+                hospital.getTotalBeds(),
+                hospital.getAvailableBeds()
+        );
     }
 
     @Override
@@ -63,26 +68,59 @@ public class CommonAdminHospitalServiceImp implements CommonAdminHospitalService
 
     @Override
     public void updateHospital(HospitalDTO hospital) {
+
+    }
+
+    @Override
+    public void editHospital(HospitalDTO hospital) {
         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.");
         }
 
-        String sql = "UPDATE hospital SET name = ?, address = ?, phone = ?, totalBeds = ?, availableBeds = ?, occupancyRate = ? WHERE id = ?";
+        // 更新占用率计算(可选,具体依项目需求)
         double occupancyRate = 1.0 - (double) hospital.getAvailableBeds() / hospital.getTotalBeds();
 
-        int rowsUpdated = jdbcTemplate.update(sql, hospital.getName(), hospital.getAddress(), hospital.getPhone(),
-                hospital.getTotalBeds(), hospital.getAvailableBeds(), occupancyRate, hospital.getId());
-
-        if (rowsUpdated == 0) {
-            throw new IllegalArgumentException("No hospital found with ID " + hospital.getId());
-        }
+        // SQL 语句更新医院数据
+        String sql = "UPDATE hospital SET name = ?, address = ?, phone = ?, maxAmount = ?, amountPatient = ? WHERE id = ?";
+        jdbcTemplate.update(sql, hospital.getName(), hospital.getAddress(), hospital.getPhone(),
+                hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getId());
     }
 
     @Override
     public void deleteHospital(int id) {
-        String sql = "DELETE FROM hospital WHERE id = ?";
-        jdbcTemplate.update(sql, id);
+        String deleteSql = "DELETE FROM hospital WHERE id = ?";
+        jdbcTemplate.update(deleteSql, id);
+    }
+
+    @Override
+    public HospitalDTO getHospitalById(int id) {
+        String sql = "SELECT * FROM hospital WHERE id = ?";
+        List<HospitalDTO> hospitals = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(HospitalDTO.class), id);
+        return hospitals.isEmpty() ? null : hospitals.get(0);
+    }
+
+
+    @Override
+    public void resetHospitalIds() {
+        try {
+            // Step 1: 创建一个变量用于更新行号
+            String setRowNumber = "SET @row_number = 0;";
+            jdbcTemplate.execute(setRowNumber);
+
+            // Step 2: 重新更新表的 ID 顺序
+            String updateIds = "UPDATE hospital SET id = (@row_number := @row_number + 1);";
+            jdbcTemplate.execute(updateIds);
+
+            // Step 3: 重置 AUTO_INCREMENT
+            String resetAutoIncrement = "ALTER TABLE hospital AUTO_INCREMENT = 1;";
+            jdbcTemplate.execute(resetAutoIncrement);
+
+            System.out.println("Hospital IDs reset successfully.");
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException("Failed to reset hospital IDs: " + e.getMessage());
+        }
     }
 
 
diff --git a/src/main/resources/static/html/admin.html b/src/main/resources/static/html/admin.html
index 10ec49f919d25b1c79c652f9fd0b46aff99ec539..ddbcbe0ab280ebe03989c1d5b0ff1c106c5bdce2 100644
--- a/src/main/resources/static/html/admin.html
+++ b/src/main/resources/static/html/admin.html
@@ -180,6 +180,71 @@
         });
     }
 
+    function openEditHospitalModal(hospitalId) {
+        fetch(`/commonAdmin/hospital/${hospitalId}`)
+            .then(response => {
+                if (!response.ok) throw new Error("Failed to fetch hospital data.");
+                return response.json();
+            })
+            .then(hospital => {
+                document.getElementById('modal-title').innerText = "Edit Hospital";
+                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';
+
+                const saveButton = document.getElementById('save-hospital-btn');
+                saveButton.replaceWith(saveButton.cloneNode(true));
+                document.getElementById('save-hospital-btn').addEventListener('click', () => updateHospital(hospitalId));
+            })
+            .catch(error => {
+                console.error("Error loading hospital data:", error);
+                alert("Failed to load hospital data.");
+            });
+    }
+
+    function updateHospital(hospitalId) {
+        const hospitalData = {
+            id: hospitalId,
+            name: document.getElementById('modal-name').value.trim(),
+            location: document.getElementById('modal-location') ? document.getElementById('modal-location').value.trim() : "", // 如果 location 是可选的
+            address: document.getElementById('modal-address').value.trim(),
+            phone: document.getElementById('modal-phone').value.trim(),
+            totalBeds: parseInt(document.getElementById('modal-totalBeds').value.trim()),
+            availableBeds: parseInt(document.getElementById('modal-availableBeds').value.trim())
+        };
+
+        console.log("Updating hospital with data:", hospitalData);
+
+        if (!hospitalData.name || !hospitalData.address || !hospitalData.phone ||
+            isNaN(hospitalData.totalBeds) || isNaN(hospitalData.availableBeds)) {
+            alert("All fields are required!");
+            return;
+        }
+
+        fetch(`/commonAdmin/hospital/update/${hospitalId}`, {
+            method: 'PUT',
+            headers: { 'Content-Type': 'application/json' },
+            body: JSON.stringify(hospitalData),
+        })
+            .then(response => {
+                if (response.ok) {
+                    alert("Hospital updated successfully!");
+                    closeHospitalModal();
+                    loadHospitals(); // Reload hospital list
+                } else {
+                    return response.text().then(text => { throw new Error(text); });
+                }
+            })
+            .catch(error => {
+                console.error("Error updating hospital:", error);
+                alert("Failed to update hospital: " + error.message);
+            });
+    }
+
+
     function loadHospitals(filters = {}) {
         const query = new URLSearchParams(filters).toString();
         fetch(`/commonAdmin/hospital/all?${query}`)
@@ -202,6 +267,35 @@
                     `;
                     tableBody.appendChild(row);
                 });
+
+                document.querySelectorAll(".editButton").forEach(button => {
+                    button.addEventListener("click", () => {
+                        const hospitalId = button.getAttribute("data-id");
+                        openEditHospitalModal(hospitalId);
+                    });
+                });
+
+                document.querySelectorAll(".deleteButton").forEach(button => {
+                    button.addEventListener("click", () => {
+                        const hospitalId = button.getAttribute("data-id");
+                        if (confirm("Are you sure you want to delete this hospital?")) {
+                            fetch(`/commonAdmin/hospital/delete/${hospitalId}`, {
+                                method: "DELETE",
+                            })
+                                .then(response => {
+                                    if (!response.ok) {
+                                        return response.text().then(text => { throw new Error(text); });
+                                    }
+                                    alert("Hospital deleted successfully!");
+                                    loadHospitals();
+                                })
+                                .catch(error => {
+                                    console.error("Error deleting hospital:", error);
+                                    alert(`Failed to delete hospital: ${error.message}`);
+                                });
+                        }
+                    });
+                });
             })
             .catch(error => console.error("Error loading hospitals:", error));
     }
@@ -251,7 +345,6 @@
             loadHospitals();
         });
 
-        // Add close button event listener
         document.getElementById('close-hospital-modal').addEventListener('click', closeHospitalModal);
     }