From e1fba46a50e2f5036b1a5fd59f459e61495eb888 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 08 七月 2026 16:43:44 +0800
Subject: [PATCH] 已进行排班并且人员已打卡的前提下,对应的班次配置不能编辑删除。

---
 src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java b/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java
index d86ef0b..fc9cf4c 100644
--- a/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java
+++ b/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.framework.web.domain.R;
 import com.ruoyi.staff.pojo.PersonalAttendanceLocationConfig;
@@ -32,8 +33,10 @@
     @Operation(summary = "鏂板/淇敼浜哄憳鎵撳崱瑙勫垯閰嶇疆")
     @PostMapping("/add")
     public R add(@RequestBody PersonalAttendanceLocationConfig personalAttendanceLocationConfig){
-
-
+        if (personalAttendanceLocationConfig.getId() != null
+                && !personalAttendanceLocationConfigService.canEdit(personalAttendanceLocationConfig.getId())) {
+            return R.fail("璇ョ彮娆¢厤缃凡琚帓鐝苟浜х敓鎵撳崱璁板綍锛屼笉鑳界紪杈�");
+        }
         // 鐝闇�瑕佷笉鑳藉閲嶅
         if (personalAttendanceLocationConfig.getId() == null && personalAttendanceLocationConfigService.lambdaQuery().eq(PersonalAttendanceLocationConfig::getShift, personalAttendanceLocationConfig.getShift()).one() != null) {
             return R.fail("鐝涓嶈兘閲嶅");
@@ -53,13 +56,25 @@
         if (query.getShift() != null && !query.getShift().isEmpty()) {
             wrapper.eq(PersonalAttendanceLocationConfig::getShift, query.getShift());
         }
-        return R.ok(personalAttendanceLocationConfigService.page(page, wrapper));
+        IPage<PersonalAttendanceLocationConfig> result = personalAttendanceLocationConfigService.page(page, wrapper);
+        result.getRecords().forEach(item -> {
+            boolean locked = personalAttendanceLocationConfigService.hasAttendanceUsage(item.getId());
+            item.setUsageLocked(locked);
+            item.setCanEdit(!locked);
+            item.setCanDelete(!locked);
+        });
+        return R.ok(result);
     }
 
 
     @Operation(summary = "鍒犻櫎浜哄憳鎵撳崱瑙勫垯閰嶇疆")
     @DeleteMapping("/del")
     public R del(@RequestBody List<Integer> ids) {
+        for (Integer id : ids) {
+            if (!personalAttendanceLocationConfigService.canDelete(id)) {
+                return R.fail("瀛樺湪宸叉帓鐝笖宸叉湁鎵撳崱璁板綍鐨勭彮娆¢厤缃紝涓嶈兘鍒犻櫎");
+            }
+        }
         return R.ok(personalAttendanceLocationConfigService.removeBatchByIds(ids));
     }
 

--
Gitblit v1.9.3