Przeglądaj źródła

fix 更新考勤范围获取

Administrator 2 lat temu
rodzic
commit
d894b8fc15

+ 17 - 13
ruoyi-admin/src/main/java/com/ruoyi/web/controller/kaoqin/KaoQinController.java

@@ -46,22 +46,26 @@ public class KaoQinController extends BaseController {
      */
     @GetMapping(value = "/daKa")
     public AjaxResult daKa(KaoqinConfig kaoqinConfig) {
-        //根据部门祖籍列表,查询该部门考勤范围 ,经纬度
-        List<KaoqinConfig> kaoqinConfigs = kaoqinConfigService.selectKaoqinConfigList(kaoqinConfig);
-        if (kaoqinConfigs != null && kaoqinConfigs.size() > 1) {
-            //如果有多条考勤规则,先选离自己最近的规则
-            String ancestors = kaoqinConfig.getAncestors();
-            String[] split = ancestors.split(",");
-            Map<Long, List<KaoqinConfig>> collect = kaoqinConfigs.stream().collect(Collectors.groupingBy(KaoqinConfig::getDeptId));
-            for (int i = split.length - 1; i >= 0; i--) {
-                String s = split[i];
-                List<KaoqinConfig> kaoqinConfigsDept = collect.get(Long.parseLong(s));
-                if (kaoqinConfigsDept != null) {
-                    return AjaxResult.success(kaoqinConfigsDept);
+        //先去 根据当前人员的部门id查询是否有规则,没有再去差祖籍列表
+        KaoqinConfig kaoqinConfigDept = kaoqinConfigService.selectKaoqinConfigByDeptId(kaoqinConfig.getDeptId());
+        if (kaoqinConfigDept == null){
+            //根据部门祖籍列表,查询该部门考勤范围 ,经纬度
+            List<KaoqinConfig> kaoqinConfigs = kaoqinConfigService.selectKaoqinConfigList(kaoqinConfig);
+            if (kaoqinConfigs != null && kaoqinConfigs.size() > 1) {
+                //如果有多条考勤规则,先选离自己最近的规则
+                String ancestors = kaoqinConfig.getAncestors();
+                String[] split = ancestors.split(",");
+                Map<Long, List<KaoqinConfig>> collect = kaoqinConfigs.stream().collect(Collectors.groupingBy(KaoqinConfig::getDeptId));
+                for (int i = split.length - 1; i >= 0; i--) {
+                    String s = split[i];
+                    List<KaoqinConfig> kaoqinConfigsDept = collect.get(Long.parseLong(s));
+                    if (kaoqinConfigsDept != null) {
+                        return AjaxResult.success(kaoqinConfigsDept);
+                    }
                 }
             }
         }
-        return AjaxResult.success(kaoqinConfigs);
+        return AjaxResult.success(kaoqinConfigDept);
     }
 
 

+ 1 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/KaoqinConfigMapper.java

@@ -20,6 +20,7 @@ public interface KaoqinConfigMapper
      * @return 考勤规则配置
      */
     public KaoqinConfig selectKaoqinConfigByKaoqinId(Long kaoqinId);
+    public KaoqinConfig selectKaoqinConfigByDeptId(Long deptId);
 
     /**
      * 查询考勤规则配置列表

+ 1 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IKaoqinConfigService.java

@@ -20,6 +20,7 @@ public interface IKaoqinConfigService
      * @return 考勤规则配置
      */
     public KaoqinConfig selectKaoqinConfigByKaoqinId(Long kaoqinId);
+    public KaoqinConfig selectKaoqinConfigByDeptId(Long deptId);
 
     /**
      * 查询考勤规则配置列表

+ 6 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/KaoqinConfigServiceImpl.java

@@ -35,6 +35,12 @@ public class KaoqinConfigServiceImpl implements IKaoqinConfigService
         return kaoqinConfigMapper.selectKaoqinConfigByKaoqinId(kaoqinId);
     }
 
+    @Override
+    public KaoqinConfig selectKaoqinConfigByDeptId(Long deptId) {
+        return kaoqinConfigMapper.selectKaoqinConfigByDeptId(deptId);
+
+    }
+
     /**
      * 查询考勤规则配置列表
      * 

+ 1 - 1
ruoyi-system/src/main/resources/mapper/system/KaoqinConfigMapper.xml

@@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectKaoqinConfigVo"/>
         where kaoqin_id = #{kaoqinId}
     </select>
-    <select id="selectKaoqinConfigByDeptId" parameterType="KaoqinConfig" resultMap="KaoqinConfigResult">
+    <select id="selectKaoqinConfigByDeptId" parameterType="Long" resultMap="KaoqinConfigResult">
         <include refid="selectKaoqinConfigVo"/>
         <where>
             <if test="deptId != null and deptId != ''"> and dept_id = #{deptId}</if>