Ver Fonte

考勤规则调整

dzx há 1 ano atrás
pai
commit
2a74427567

+ 2 - 2
src/main/java/com/xjrsoft/module/attendance/controller/AttendanceRuleCategoryController.java

@@ -84,8 +84,8 @@ public class AttendanceRuleCategoryController {
     @SaCheckPermission("attendancerulecategory:edit")
     public RT<Boolean> update(@Valid @RequestBody UpdateAttendanceRuleCategoryDto dto){
 
-        AttendanceRuleCategory attendanceRuleCategory = BeanUtil.toBean(dto, AttendanceRuleCategory.class);
-        return RT.ok(attendanceRuleCategoryService.update(attendanceRuleCategory));
+
+        return RT.ok(attendanceRuleCategoryService.update(dto));
 
     }
 

+ 3 - 0
src/main/java/com/xjrsoft/module/attendance/mapper/AttendanceRuleCategoryMapper.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.attendance.mapper;
 
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.attendance.dto.AddAttendanceRuleCategoryDto;
+import com.xjrsoft.module.attendance.dto.UpdateAttendanceRuleCategoryDto;
 import com.xjrsoft.module.attendance.entity.AttendanceRuleCategory;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -18,4 +19,6 @@ import java.util.List;
 public interface AttendanceRuleCategoryMapper extends MPJBaseMapper<AttendanceRuleCategory> {
 
     Integer getExistCount(@Param("dto") AddAttendanceRuleCategoryDto dto);
+
+    Integer getExistCountNEId(@Param("dto") UpdateAttendanceRuleCategoryDto dto);
 }

+ 3 - 2
src/main/java/com/xjrsoft/module/attendance/service/IAttendanceRuleCategoryService.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.attendance.service;
 
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.attendance.dto.AddAttendanceRuleCategoryDto;
+import com.xjrsoft.module.attendance.dto.UpdateAttendanceRuleCategoryDto;
 import com.xjrsoft.module.attendance.entity.AttendanceRuleCategory;
 
 import java.util.List;
@@ -25,10 +26,10 @@ public interface IAttendanceRuleCategoryService extends MPJBaseService<Attendanc
     /**
     * 更新
     *
-    * @param attendanceRuleCategory
+    * @param dto
     * @return
     */
-    Boolean update(AttendanceRuleCategory attendanceRuleCategory);
+    Boolean update(UpdateAttendanceRuleCategoryDto dto);
 
     /**
     * 删除

+ 4 - 7
src/main/java/com/xjrsoft/module/attendance/service/impl/AttendanceRuleCategoryServiceImpl.java

@@ -10,6 +10,7 @@ import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.attendance.dto.AddAttendanceRuleCategoryDto;
+import com.xjrsoft.module.attendance.dto.UpdateAttendanceRuleCategoryDto;
 import com.xjrsoft.module.attendance.entity.AttendanceRuleCategory;
 import com.xjrsoft.module.attendance.entity.AttendanceRuleDetails;
 import com.xjrsoft.module.attendance.entity.AttendanceUserRelation;
@@ -195,14 +196,10 @@ public class AttendanceRuleCategoryServiceImpl extends MPJBaseServiceImpl<Attend
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean update(AttendanceRuleCategory attendanceRuleCategory) {
+    public Boolean update(UpdateAttendanceRuleCategoryDto dto) {
+        AttendanceRuleCategory attendanceRuleCategory = BeanUtil.toBean(dto, AttendanceRuleCategory.class);
         if(attendanceRuleCategory.getAttendanceRange() == 1){
-            Long count = categoryMapper.selectCount(
-                new QueryWrapper<AttendanceRuleCategory>().lambda()
-                .eq(AttendanceRuleCategory::getRoleId, attendanceRuleCategory.getRoleId())
-                .eq(AttendanceRuleCategory::getDeleteMark, DeleteMark.NODELETE.getCode())
-                .ne(AttendanceRuleCategory::getId, attendanceRuleCategory.getId())
-            );
+            Integer count = categoryMapper.getExistCountNEId(dto);
             if(count > 0){
                 if(attendanceRuleCategory.getRoleId() == 2){
                     throw new MyException("已存在一个全体教职工的考勤规则,无法修改");

+ 7 - 1
src/main/resources/mapper/attendance/AttendanceRuleCategoryMapper.xml

@@ -4,7 +4,13 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.attendance.mapper.AttendanceRuleCategoryMapper">
     <select id="getExistCount" parameterType="com.xjrsoft.module.attendance.dto.AddAttendanceRuleCategoryDto" resultType="java.lang.Integer">
-        SELECT * FROM attendance_rule_category WHERE delete_mark = 0
+        SELECT count(*) FROM attendance_rule_category WHERE delete_mark = 0
+        AND role_id = #{dto.roleId} AND attendance_range = #{dto.attendanceRange}
+        AND (( #{dto.startDate} BETWEEN start_date AND end_date) OR ( #{dto.endDate} BETWEEN start_date AND end_date))
+    </select>
+
+    <select id="getExistCountNEId" parameterType="com.xjrsoft.module.attendance.dto.UpdateAttendanceRuleCategoryDto" resultType="java.lang.Integer">
+        SELECT count(*) FROM attendance_rule_category WHERE delete_mark = 0
         AND role_id = #{dto.roleId} AND attendance_range = #{dto.attendanceRange}
         AND (( #{dto.startDate} BETWEEN start_date AND end_date) OR ( #{dto.endDate} BETWEEN start_date AND end_date))
     </select>