wzy 7 hónapja%!(EXTRA string=óta)
szülő
commit
11b3f9ace6

+ 1 - 1
mjava-kaiyue/src/main/java/com/malk/kaiyue/controller/KYHQController.java

@@ -86,7 +86,7 @@ public class KYHQController extends DDCallbackController {
     }*/
 
     //每天 00:00定时更新员工年假数
-    /*@Scheduled(cron = "0 0 0 * * ? ")
+   /* @Scheduled(cron = "0 0 0 * * ? ")
     @GetMapping("/cronUpdateEmployeeAnnualLeaveNum")
     McR cronUpdateEmployeeAnnualLeaveNum(){
         System.out.println("定时更新员工年假数开始执行"+new Date());

+ 34 - 22
mjava-kaiyue/src/main/java/com/malk/kaiyue/service/impl/KYHQServiceImpl.java

@@ -53,10 +53,13 @@ public class KYHQServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
     private String opUserId;
 
     //虹桥凯悦-年假(测试)
-    private static final String LEAVE_CODE = "9e87c02b-3825-4662-90b5-89968ed73271";
+//    private static final String LEAVE_CODE = "9e87c02b-3825-4662-90b5-89968ed73271";
 
     //虹桥凯悦-年假
-//    private static final String LEAVE_CODE = "126b5424-fce2-4e77-a981-9efa3d240b1a";
+    private static final String LEAVE_CODE = "126b5424-fce2-4e77-a981-9efa3d240b1a";
+
+    //虹桥凯悦-补休假
+    private static final String COMPENSATORY_LEAVE_CODE = "b57e2a2a-b553-4955-b2a2-21c9f42f5420";
 
 
     @Override
@@ -228,7 +231,7 @@ public class KYHQServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
                     //合同续签数附加年假数
                     int additiveYearLeave = Math.min(contractRenewCount, 2) * 2;
                     if (!flag1 && !flag2){
-                        long day1 = DateUtil.betweenDay(beginDate, today, true);
+                        long day1 = DateUtil.betweenDay(beginDate, today, true) + 1;
                         yearLeave = (double) (day1 * (positionLevelBaseNum + additiveYearLeave)) / yearDays ;
                         log.info("day1:{},yearLeave:{}", day1, yearLeave);
                     }
@@ -338,15 +341,22 @@ public class KYHQServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
                             .eq(AdvancedLeave::getCity,"hq");
                     AdvancedLeave advancedLeave = advancedLeaveMapper.selectOne(advancedLeaveLambdaQueryWrapper);
                     if (Objects.nonNull(advancedLeave)){
-                        advanceLeave = Double.valueOf(advancedLeave.getLeaveNum());
-                    }
-                    else {
-                        advancedLeave = new AdvancedLeave();
+//                        advanceLeave = Double.valueOf(advancedLeave.getLeaveNum());
                         //年假余额大于3时 默认3
                         if (annualLeaveNum.compareTo(new BigDecimal(3)) > 0){
                             annualLeaveNum = new BigDecimal(3);
                         }
                         advanceLeave = Double.parseDouble(annualLeaveNum.subtract(annualLeaveNum.remainder(new BigDecimal(0.5))).toString());
+
+                        advancedLeave.setLeaveNum(advanceLeave+"");
+                        advancedLeaveMapper.updateById(advancedLeave);
+                    }
+                    else {
+                        advancedLeave = new AdvancedLeave();
+
+                        //todo 暂时预支假全都设置为3天
+                        //todo 数据表里任何年份都没有记录时 默认预支假为3天
+                        advanceLeave = 3.0;
                         advancedLeave.setLeaveNum(advanceLeave + "");
                         advancedLeave.setUserId(userId);
                         advancedLeave.setYear(String.valueOf(DateUtil.year(new Date())));
@@ -443,11 +453,19 @@ public class KYHQServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
 
     @Override
     public McR updateEmployeeAnnualLeaveNum() {
-        Map map = new HashMap();
-        map.put("userid_list","344749020127590108,253434204020308091");
-
-        return McR.success(getEmployeeAnnualLeaveNum(map));
- /*       //获取员工userId集合
+        //todo 判断是否为年初发放假期  需结算去年剩余年假及预支假
+
+        /*Map map = new HashMap();
+        map.put("userid_list","07034546201728168740,2113283124-1542223746,19300251351266050," +
+                "22343929501006025,2637076242681552790,210923020533714801,0127630254681267291," +
+                "0212062847942884,223405500326169944,223405220520065633,6916170744997645," +
+                "01106868621835566487,01353526440831985926,244944086721553863,224357145420748352," +
+                "186968372439944177,01160321504926318343,2328291112840730,143138502720756172," +
+                "223957636824241514,224338250923294835,2513663129067457,266934003538366208," +
+                "01122260465221443604,01293332093240051487,390957690924124938");
+
+        return McR.success(getEmployeeAnnualLeaveNum(map));*/
+        //获取员工userId集合
         List<String> userIdList = getEmployeeUserId();
         //遍历集合给所有员工更新年假余额
         List<Map> result = new ArrayList<>();
@@ -460,14 +478,8 @@ public class KYHQServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
                 result.add(getEmployeeAnnualLeaveNum(map));
             }
             log.info("result:{}",result);
-
-            for (String userId : userIdList) {
-                Map map = new HashMap();
-                map.put("userid_list",userId);
-                getEmployeeAnnualLeaveNum(map);
-            }
-//        return McR.success(result);
-        }*/
+        }
+        return McR.success(result);
     }
 
     @Override
@@ -487,7 +499,7 @@ public class KYHQServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
 
         //查询员工年假余额
         List<Map> leaveQuotasList = new ArrayList<>();
-        getLeaveNum("5c8a4c95-09e1-4f2d-9712-5676e2e5a4fd",userId,0,50,leaveQuotasList);
+        getLeaveNum(LEAVE_CODE,userId,0,50,leaveQuotasList);
 
         if (Objects.nonNull(leaveQuotasList)){
             for (Map leaveQuotas : leaveQuotasList) {
@@ -516,7 +528,7 @@ public class KYHQServiceImpl extends ServiceImpl<AdvancedLeaveMapper, AdvancedLe
 
         //获取员工补休假余额
         List<Map> leaveQuotasList2 = new ArrayList<>();
-        getLeaveNum("b57e2a2a-b553-4955-b2a2-21c9f42f5420",userId,0,10,leaveQuotasList2);
+        getLeaveNum(COMPENSATORY_LEAVE_CODE,userId,0,10,leaveQuotasList2);
 
         //调休假余额
         BigDecimal compensatoryLeaveNum = new BigDecimal(0.00);

+ 1 - 0
mjava-kaiyue/src/main/resources/application-dev.yml

@@ -18,6 +18,7 @@ spring:
   datasource:
     hikari:
       connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+      max-lifetime: 28800
     driver-class-name: com.mysql.cj.jdbc.Driver
     username: root
     password: cp-root@2022++

+ 1 - 1
mjava-kaiyue/src/main/resources/mapper/AdvancedLeaveMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.malk.kaiyue_cd.mapper.AdvancedLeaveMapper">
+<mapper namespace="com.malk.kaiyue.mapper.AdvancedLeaveMapper">
 
 
 </mapper>