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 | 32 ++++++++++++++++++++++++++++----
1 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java b/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java
index 2872a89..fc9cf4c 100644
--- a/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java
+++ b/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java
@@ -1,6 +1,8 @@
package com.ruoyi.staff.controller;
+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;
@@ -31,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("鐝涓嶈兘閲嶅");
@@ -42,15 +46,35 @@
@Operation(summary = "鍒嗛〉鏌ヨ浜哄憳鎵撳崱瑙勫垯閰嶇疆")
@GetMapping("/listPage")
- public R listPage(Page page){
+ public R listPage(Page page, PersonalAttendanceLocationConfig query){
page.addOrder(OrderItem.desc("id"));
- return R.ok(personalAttendanceLocationConfigService.page(page));
+ LambdaQueryWrapper<PersonalAttendanceLocationConfig> wrapper = new LambdaQueryWrapper<PersonalAttendanceLocationConfig>()
+ .ne(PersonalAttendanceLocationConfig::getId, 999);
+ if (query.getSysDeptId() != null) {
+ wrapper.eq(PersonalAttendanceLocationConfig::getSysDeptId, query.getSysDeptId());
+ }
+ if (query.getShift() != null && !query.getShift().isEmpty()) {
+ wrapper.eq(PersonalAttendanceLocationConfig::getShift, query.getShift());
+ }
+ 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