Procházet zdrojové kódy

烟台yml修改 年假leave_code设为常量
使用假期余额判空

wzy před 1 rokem
rodič
revize
0386940233

+ 1 - 3
mjava-kaiyue_yt/src/main/java/com/malk/kaiyue/controller/KYController.java

@@ -68,11 +68,9 @@ public class KYController extends DDCallbackController {
     }
 
 
-    //保存十分钟内已处理的回调事件
+    //保存10s内已处理的回调事件
     private Map<String, Long> eventList = new HashMap<>();
 
-    private Lock lock = new ReentrantLock();
-
     //钉钉事件回调
     @SneakyThrows
     public synchronized Map<String, String> invokeCallback(@RequestParam(value = "signature", required = false) String signature,

+ 21 - 14
mjava-kaiyue_yt/src/main/java/com/malk/kaiyue/service/impl/KYServiceImpl.java

@@ -27,6 +27,11 @@ public class KYServiceImpl implements KYService {
     @Autowired
     private DDConf ddConf;
 
+    //成都凯悦-年假(测试)
+    private static final String LEAVE_CODE = "28abb7bf-e1b6-4387-9e2a-e1b2ae983e7a";
+    //体验社-年假测试wzy
+//    private static final String LEAVE_CODE = "f9240c02-8fe7-4535-af2c-ca6740e1c654";
+
     @Override
     public List<Map> getEmployeeRosterInfo(Map<String, Object> map) {
         //获取accessToken
@@ -221,7 +226,7 @@ public class KYServiceImpl implements KYService {
                 //查询出用户消费年假记录 当返回leaveRecords中calType为null或不返回该字段则为请假消耗 将计算出的年假数减去请假消耗的数量
                 Map body = new HashMap();
                 body.put("opUserId",opUserId);
-                body.put("leaveCode","f9240c02-8fe7-4535-af2c-ca6740e1c654");//测试年假wzy
+                body.put("leaveCode",LEAVE_CODE);
                 body.put("userIds",new String[]{userId});
                 body.put("pageNumber",0);
                 body.put("pageSize",50);
@@ -229,21 +234,24 @@ public class KYServiceImpl implements KYService {
                 Map useResult = (Map) useDdr.getResult();
                 List<Map> useList = (List<Map>) useResult.get("leaveRecords");
                 Double useLeaveNum = 0d;
-                for (Map use : useList) {
-                    //判断是否为今年请假
-                    DateTime gmtCreate = DateUtil.date((long) use.get("gmtCreate"));
-                    if (DateUtil.year(gmtCreate) == DateUtil.year(new Date())){
-                        //判断是否为正常请假而不是接口测试或期初假期发放
-                        if (!"接口测试修改".equals(use.get("leaveReason").toString()) && !"期初假期发放".equals(use.get("leaveReason").toString())){
-                            //若是请假消耗或管理员手动减少
-                            if (!use.containsKey("calType") || Objects.isNull(use.get("calType")) || "delete".equals(use.get("calType").toString())){
-                                useLeaveNum += (int) use.get("recordNumPerDay") / 100;
+                if (Objects.nonNull(useList) && !useList.isEmpty()){
+                    for (Map use : useList) {
+                        //判断是否为今年请假
+                        DateTime gmtCreate = DateUtil.date((long) use.get("gmtCreate"));
+                        if (DateUtil.year(gmtCreate) == DateUtil.year(new Date())){
+                            //判断是否为正常请假而不是接口测试或期初假期发放
+                            if (!"接口测试修改".equals(use.get("leaveReason").toString()) && !"期初假期发放".equals(use.get("leaveReason").toString())){
+                                //若是请假消耗或管理员手动减少
+                                if (!use.containsKey("calType") || Objects.isNull(use.get("calType")) || "delete".equals(use.get("calType").toString())){
+                                    useLeaveNum += (int) use.get("recordNumPerDay") / 100;
+                                }
+                                //注:若是管理员手动增加 则假期余额会多出一个BCXsunNm记录增加的假期天数  最终会在设置的假期余额的基础上加上这些天数
+                                //故此处手动新增的假期余额不做处理
                             }
-                            //注:若是管理员手动增加 则假期余额会多出一个BCXsunNm记录增加的假期天数  最终会在设置的假期余额的基础上加上这些天数
-                            //故此处手动新增的假期余额不做处理
                         }
                     }
                 }
+
                 //实际年假数
                 double realYearLeave = (yearLeave - useLeaveNum) < 0 ? 0 : (yearLeave - useLeaveNum);
 
@@ -263,8 +271,7 @@ public class KYServiceImpl implements KYService {
                 //额度所对应的周期,格式必须是"yyyy",例如"2021"
                 leave_quotas.put("quota_cycle",DateUtil.year(new Date())+"");
                 //自定义添加的假期类型:年假开发测试的leave_code
-                //leave_quotas.put("leave_code","28abb7bf-e1b6-4387-9e2a-e1b2ae983e7a");
-                leave_quotas.put("leave_code","f9240c02-8fe7-4535-af2c-ca6740e1c654");//测试
+                leave_quotas.put("leave_code",LEAVE_CODE);
                 //要更新的员工的userId
                 leave_quotas.put("userid",userId);
 

+ 14 - 14
mjava-kaiyue_yt/src/main/resources/application-dev.yml

@@ -49,22 +49,22 @@ logging:
 
 # dingtalk
 dingtalk:
-  #agentId: 2999477924
-  #appKey: dingzorik72leqm5qgpj
-  #appSecret: csxfrSOZy02aXvc4IkqM9dFqz7cEDgUogvJaBIq_rtIbvjZLDKiVkHdVgKeNfoVQ
-  #corpId: ding43bb7be8e7bdc63224f2f5cc6abecb85
-  #aesKey: 7txhFmSyWIXIrEvwlNfcuMfOQe19K6hqCdIaXMHLO2K
-  #token: 24VR2Bnu
-  #operator: "02421908021891243060"   # OA管理员账号 [0开头需要转一下字符串]
+  agentId: 2999477924
+  appKey: dingzorik72leqm5qgpj
+  appSecret: csxfrSOZy02aXvc4IkqM9dFqz7cEDgUogvJaBIq_rtIbvjZLDKiVkHdVgKeNfoVQ
+  corpId: ding43bb7be8e7bdc63224f2f5cc6abecb85
+  aesKey: 7txhFmSyWIXIrEvwlNfcuMfOQe19K6hqCdIaXMHLO2K
+  token: 24VR2Bnu
+  operator: "02421908021891243060"   # OA管理员账号 [0开头需要转一下字符串]
 
   #高级假期
-  agentId: 3047931226
-  appKey: dingzwmsgsh53i0vntbu
-  appSecret: E2ro4owsTwPxba_4ntLg01kYn4-W_Ti6IU3MaALj-f_xQkXhnSDccEE5Iad-fnuk
-  corpId: dingc905d8a60b6a641b24f2f5cc6abecb85
-  aesKey: hEWViCdQbFxRoRwPDi64tRegzAkuoIpp5Oq3JSngWXi
-  token: wKJlvqvPrEkNd849
-  operator: "344749020127590108"   # OA管理员账号 [0开头需要转一下字符串]
+  #agentId: 3047931226
+  #appKey: dingzwmsgsh53i0vntbu
+  #appSecret: E2ro4owsTwPxba_4ntLg01kYn4-W_Ti6IU3MaALj-f_xQkXhnSDccEE5Iad-fnuk
+  #corpId: dingc905d8a60b6a641b24f2f5cc6abecb85
+  #aesKey: hEWViCdQbFxRoRwPDi64tRegzAkuoIpp5Oq3JSngWXi
+  #token: wKJlvqvPrEkNd849
+  #operator: "344749020127590108"   # OA管理员账号 [0开头需要转一下字符串]
 
 
 # aliwork