Browse Source

新增考勤核算接口

anderx 1 year ago
parent
commit
9c06248b7d

+ 21 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java

@@ -8,6 +8,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.system.domain.UserClockDetailsInput;
+import com.ruoyi.system.domain.UserRecord;
 import com.ruoyi.system.domain.selectUserClockInput;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -335,4 +336,24 @@ public class SysUserController extends BaseController
         userService.updateAllUserClock(type);
         return AjaxResult.success();
     }
+
+    /**
+     * 修改单条考勤核对数据
+     */
+    @PostMapping("/updateUserRecord")
+    public AjaxResult updateUserRecord(@RequestBody UserRecord in) {
+        userService.updateUserRecord(in);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 考勤数据合并
+     */
+    @PostMapping("/userRecordMerge")
+    public AjaxResult userRecordMerge() {
+        AjaxResult result=userService.userRecordMergeCheck();
+        if (result.isError())return result;
+        userService.userRecordMerge();
+        return result;
+    }
 }

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserRecordMapper.java

@@ -32,4 +32,8 @@ public interface UserRecordMapper {
 
 
     void updateTypeDuration(@Param("userId") Long userId, @Param("type") Integer type);
+
+    int checkUserRecord(UserRecord u);
+
+    int checkClockUserRecord(UserRecord u);
 }

+ 7 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -3,6 +3,7 @@ package com.ruoyi.system.service;
 import java.util.List;
 import java.util.Map;
 
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.system.domain.*;
 
@@ -228,4 +229,10 @@ public interface ISysUserService
     void updateAllUserClock(Integer type);
 
     void updateUserClockDetails(UserClockDetailsInput in);
+
+    void updateUserRecord(UserRecord in);
+
+    void userRecordMerge();
+
+    AjaxResult  userRecordMergeCheck();
 }

+ 35 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -8,6 +8,7 @@ import java.util.*;
 import java.util.stream.Collectors;
 import javax.validation.Validator;
 
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.enums.UserRolesType;
 import com.ruoyi.common.utils.bean.BeanUtils;
@@ -896,4 +897,38 @@ public class SysUserServiceImpl implements ISysUserService
         userRecordMapper.updateByPrimaryKeySelective(ur);
     }
 
+    @Override
+    public void updateUserRecord(UserRecord in) {
+        UserRecord ur=new UserRecord();
+        ur.setId(in.getId());
+        ur.setCheckDuration(in.getCheckDuration());
+        ur.setStatus(2);
+        userRecordMapper.updateByPrimaryKeySelective(ur);
+    }
+
+    @Override
+    public void userRecordMerge() {
+        Long userId = SecurityUtils.getUserId();
+        UserRecord u=new UserRecord();
+        u.setCreateId(userId);
+
+    }
+
+    @Override
+    public AjaxResult userRecordMergeCheck() {
+        Long userId = SecurityUtils.getUserId();
+        UserRecord u=new UserRecord();
+        u.setCreateId(userId);
+        u.setStatus(1);
+        int i = userRecordMapper.checkUserRecord(u);
+        if (i>0){
+            return  AjaxResult.error("当前用户存在缺卡的考勤,请处理后再提交");
+        }
+        int x = userRecordMapper.checkClockUserRecord(u);
+        if (x>0){
+            return  AjaxResult.error("当前用户存的考勤存在多打卡,请处理后再提交");
+        }
+        return AjaxResult.success();
+    }
+
 }

+ 13 - 0
ruoyi-system/src/main/resources/mapper/UserRecordMapper.xml

@@ -177,6 +177,19 @@
             and a.clock_status = #{clockStatus,jdbcType=INTEGER}
         </if>
     </select>
+    <select id="checkUserRecord" resultType="java.lang.Integer">
+        select count(*)
+        from user_record
+        where create_id = #{userId,jdbcType=BIGINT}
+        and status = #{status,jdbcType=INTEGER}
+    </select>
+    <select id="checkClockUserRecord" resultType="java.lang.Integer">
+        select count(*)
+        from user_record
+        where create_id = #{userId,jdbcType=BIGINT}
+        and  status in(0,1)
+        and clock_status =1
+    </select>
 
     <update id="updateTypeDuration">
         update user_record