Browse Source

考勤工作日设置

zhaopeiqing 1 year ago
parent
commit
7224540ddf

+ 2 - 2
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/controller/admin/workdaysetting/AttendanceWorkdaySettingController.java

@@ -94,14 +94,14 @@ public class AttendanceWorkdaySettingController {
 
 
     @PostMapping("/batch-insert")
     @PostMapping("/batch-insert")
     @Operation(summary = "批量设置考勤工作日")
     @Operation(summary = "批量设置考勤工作日")
-    @PreAuthorize("@ss.hasPermission('attendance:workday-setting:batch-insert')")
+    @PreAuthorize("@ss.hasPermission('attendance:workday-setting:insert')")
     public CommonResult<Boolean> batchInsert(@RequestParam("dates") String[] dates) {
     public CommonResult<Boolean> batchInsert(@RequestParam("dates") String[] dates) {
         return success(workdaySettingService.batchInsert(dates));
         return success(workdaySettingService.batchInsert(dates));
     }
     }
 
 
     @GetMapping("/get-workdays")
     @GetMapping("/get-workdays")
     @Operation(summary = "获得考勤工作日数据")
     @Operation(summary = "获得考勤工作日数据")
-    @PreAuthorize("@ss.hasPermission('attendance:workday-setting:get-workdays')")
+    @PreAuthorize("@ss.hasPermission('attendance:workday-setting:query')")
     public CommonResult<List<AttendanceWorkdaySettingRespVO>> getWorkdays(@RequestParam("workMonth") String workMonth) {
     public CommonResult<List<AttendanceWorkdaySettingRespVO>> getWorkdays(@RequestParam("workMonth") String workMonth) {
         List<AttendanceWorkdaySettingDO> list = workdaySettingService.getWorkdays(workMonth);
         List<AttendanceWorkdaySettingDO> list = workdaySettingService.getWorkdays(workMonth);
         return success(BeanUtils.toBean(list, AttendanceWorkdaySettingRespVO.class));
         return success(BeanUtils.toBean(list, AttendanceWorkdaySettingRespVO.class));

+ 6 - 4
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/dal/mysql/workdaysetting/AttendanceWorkdaySettingMapper.java

@@ -30,14 +30,16 @@ public interface AttendanceWorkdaySettingMapper extends BaseMapperX<AttendanceWo
     }
     }
 
 
     // 自定义的deleteByMonth方法
     // 自定义的deleteByMonth方法
-    default int deleteByMonth(String workMonth) {
+    default int deleteByMonth(String workMonth, Long tenantId) {
         return delete(new LambdaQueryWrapperX<AttendanceWorkdaySettingDO>()
         return delete(new LambdaQueryWrapperX<AttendanceWorkdaySettingDO>()
-                .eq(AttendanceWorkdaySettingDO::getWorkMonth, workMonth));
+                .eq(AttendanceWorkdaySettingDO::getWorkMonth, workMonth)
+                .eqIfPresent(AttendanceWorkdaySettingDO::getTenantId, tenantId));
     }
     }
 
 
-    default List<AttendanceWorkdaySettingDO> getWorkdays(String workMonth) {
+    default List<AttendanceWorkdaySettingDO> getWorkdays(String workMonth, Long tenantId) {
         return selectList(new LambdaQueryWrapperX<AttendanceWorkdaySettingDO>()
         return selectList(new LambdaQueryWrapperX<AttendanceWorkdaySettingDO>()
-                .eq(AttendanceWorkdaySettingDO::getWorkMonth, workMonth));
+                .eq(AttendanceWorkdaySettingDO::getWorkMonth, workMonth)
+                .eqIfPresent(AttendanceWorkdaySettingDO::getTenantId, tenantId));
     }
     }
 
 
 }
 }

+ 11 - 2
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/workdaysetting/AttendanceWorkdaySettingServiceImpl.java

@@ -1,5 +1,7 @@
 package cn.iocoder.yudao.module.attendance.service.workdaysetting;
 package cn.iocoder.yudao.module.attendance.service.workdaysetting;
 
 
+import cn.iocoder.yudao.framework.security.core.LoginUser;
+import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
@@ -83,15 +85,19 @@ public class AttendanceWorkdaySettingServiceImpl implements AttendanceWorkdaySet
 
 
         List<AttendanceWorkdaySettingDO> workingDaysList = new ArrayList<>();
         List<AttendanceWorkdaySettingDO> workingDaysList = new ArrayList<>();
         String workMonth = dates[0].substring(0, 7); // 假设日期格式是YYYY-MM-DD,这里只取前7位作为月份
         String workMonth = dates[0].substring(0, 7); // 假设日期格式是YYYY-MM-DD,这里只取前7位作为月份
+        // 获取用户信息和租户ID
+        LoginUser user = SecurityFrameworkUtils.getLoginUser();
+        Long tenantId = user != null && user.getTenantId() != null ? user.getTenantId() : 0L;
 
 
         // 清理操作,先删除该月份的所有工作日设置
         // 清理操作,先删除该月份的所有工作日设置
-        workdaySettingMapper.deleteByMonth(workMonth);
+        workdaySettingMapper.deleteByMonth(workMonth, tenantId);
 
 
         // 遍历日期数组,为每个日期创建设置对象并添加到列表中
         // 遍历日期数组,为每个日期创建设置对象并添加到列表中
         for (String str : dates) {
         for (String str : dates) {
             AttendanceWorkdaySettingDO settingDO = new AttendanceWorkdaySettingDO();
             AttendanceWorkdaySettingDO settingDO = new AttendanceWorkdaySettingDO();
             settingDO.setWorkMonth(workMonth);
             settingDO.setWorkMonth(workMonth);
             settingDO.setWorkDate(str);
             settingDO.setWorkDate(str);
+            settingDO.setTenantId(tenantId);
             workingDaysList.add(settingDO);
             workingDaysList.add(settingDO);
         }
         }
 
 
@@ -101,7 +107,10 @@ public class AttendanceWorkdaySettingServiceImpl implements AttendanceWorkdaySet
 
 
     @Override
     @Override
     public List<AttendanceWorkdaySettingDO> getWorkdays(String workMonth) {
     public List<AttendanceWorkdaySettingDO> getWorkdays(String workMonth) {
-        List<AttendanceWorkdaySettingDO> workingDaysList = workdaySettingMapper.getWorkdays(workMonth);
+        // 获取用户信息和租户ID
+        LoginUser user = SecurityFrameworkUtils.getLoginUser();
+        Long tenantId = user != null && user.getTenantId() != null ? user.getTenantId() : 0L;
+        List<AttendanceWorkdaySettingDO> workingDaysList = workdaySettingMapper.getWorkdays(workMonth, tenantId);
         if (workingDaysList.size() == 0) {
         if (workingDaysList.size() == 0) {
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
             Date date = null;
             Date date = null;