From defb2ed1e88a02de672c33fed5c7221a5fd466ee Mon Sep 17 00:00:00 2001 From: lal <lalqqhy@163.com> Date: Fri, 17 Jul 2020 11:15:38 +0800 Subject: [PATCH] 提交 --- src/main/java/cn/timer/api/controller/kqgl/ClockInController.java | 63 +++++++++++++++++++++++++++++++++++++++++++++++++-------------- src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java | 13 +++++++++---- src/main/resources/mapping/kqmk/KqglAssoMonthPunchSummaryMapper.xml | 13 +++++++++++-- 3 files changed, 69 insertions(+), 20 deletions(-) diff --git a/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java b/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java index c71779d..5c7ecb9 100644 --- a/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java +++ b/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java @@ -531,6 +531,7 @@ public class ClockInController { } } if(isRange) { + int yxcd = shif.getYxcdfzs();//允许迟到 int yzcd = shif.getYzcdfzs();//严重迟到分钟数 int kgcdfzs = shif.getKgcdfzs();//旷工迟到分钟数 @@ -648,6 +649,10 @@ public class ClockInController { } } + //允许迟到范围 + if(sbdkjg <= yxcd) { + sbdkjg = 0; + } if(atttype == 1) { pcd.setSbdk1(time_); @@ -669,16 +674,25 @@ public class ClockInController { pcd.setXbdk3jg(sbdkjg); } int ydkcs = 0; - if(shif != null){ydkcs = shif.getSxbcs()*2;}//应打卡次数 - if(sbdkjg > yzcd && yzcd>0) { + if(shif != null){ + ydkcs = shif.getSxbcs()*2; + }//应打卡次数 + pcd.setYdkcs(ydkcs); + + //严重迟到范围 + if(sbdkjg>yzcd && sbdkjg < kgcdfzs && yzcd>0) { yzcdcs++; - yzcdsc = sbdkjg - yzcd; + yzcdsc = sbdkjg; } - if(sbdkjg > kgcdfzs && kgcdfzs>0) {kgcdcs++;} - pcd.setYdkcs(ydkcs); - pcd.setYzcdcs(yzcdcs); - pcd.setYzcdsc(Double.valueOf(yzcdsc)); - pcd.setKgcdfzs(kgcdcs); + //旷工迟到 + if(sbdkjg>kgcdfzs && kgcdfzs>0) { + kgcdcs++; + } + + pcd.setYzcdcs(yzcdcs);//严重迟到次数 + pcd.setYzcdsc(Double.valueOf(yzcdsc));//严重迟到时长(分钟) + pcd.setKgcdfzs(kgcdcs);//旷工迟到次数 + if (!pcd.insert()) { throw new CustomException("打卡明细-新增异常-1"); } @@ -710,15 +724,26 @@ public class ClockInController { Long time = (time_ - punchcardtime)/1000/60; if(time > 0){sbdk2jg = Math.abs(Integer.valueOf(time.toString()));} } - if(sbdk2jg > yzcd&& yzcd>0) { + + //允许迟到范围 + if(sbdk2jg <= yxcd) { + sbdk2jg = 0; + } + + //严重迟到范围 + if(sbdk2jg>yzcd && sbdk2jg < kgcdfzs && yzcd>0) { yzcdcs = dkmc.getYzcdcs()+1; - yzcdsc = sbdk2jg - yzcd; + yzcdsc = sbdk2jg; + } + //旷工迟到 + if(sbdk2jg>kgcdfzs && kgcdfzs>0) { + kgcdcs++; } - if(sbdk2jg > kgcdfzs&& kgcdfzs>0) {kgcdcs++;} pcd.setId(dkmc.getId()); pcd.setSbdk2(time_);//上班1打卡时间 pcd.setSbdk2jg(sbdk2jg); + pcd.setYzcdcs(yzcdcs); pcd.setYzcdsc(Double.valueOf(yzcdsc)); pcd.setKgcdfzs(kgcdcs); @@ -754,11 +779,21 @@ public class ClockInController { Long time = (time_ - punchcardtime)/1000/60; if(time > 0){sbdk3jg = Math.abs(Integer.valueOf(time.toString()));} } - if(sbdk3jg > yzcd&& yzcd>0) { + //允许迟到范围 + if(sbdk3jg <= yxcd) { + sbdk3jg = 0; + } + + //严重迟到范围 + if(sbdk3jg>yzcd && sbdk3jg < kgcdfzs && yzcd>0) { yzcdcs = dkmc.getYzcdcs()+1; - yzcdsc = sbdk3jg - yzcd; + yzcdsc = sbdk3jg; } - if(sbdk3jg > kgcdfzs&& kgcdfzs>0) {kgcdcs++;} + //旷工迟到 + if(sbdk3jg>kgcdfzs && kgcdfzs>0) { + kgcdcs++; + } + pcd.setId(dkmc.getId()); pcd.setSbdk3(time_);//上班1打卡时间 pcd.setSbdk3jg(sbdk3jg); diff --git a/src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java b/src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java index 4dcb7ba..afe1907 100644 --- a/src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java +++ b/src/main/java/cn/timer/api/controller/kqgl/atttimer/AttendanceTaskTiming.java @@ -117,7 +117,7 @@ public class AttendanceTaskTiming{ // @Scheduled(cron = "0 22 15 * * ?") // 测试:5秒执行一次 0 0 19 * * ? // @Scheduled(cron = "0 */5 * * * ?") -// @Scheduled(cron = "0 24 10 * * ?") + @Scheduled(cron = "0 30 19 * * ?") public void AttendanceTask() throws ParseException { // boolean implement = false; @@ -154,9 +154,14 @@ public class AttendanceTaskTiming{ String str = new SimpleDateFormat("yyyy-MM-dd").format(new Date()).toString();// String ttstr = new SimpleDateFormat("yyyy-MM").format(new Date()).toString();// - String[] rangeArray=ClockInTool.listToString(ClockInTool.getDays(sdf1.format(c.getTime()),str)).split(";");//目前为止所有日期 + + String yesterday = ClockInTool.requires_extra_times(str,-1,3,1);//前一天 + + String[] rangeArray=ClockInTool.listToString(ClockInTool.getDays(sdf1.format(c.getTime()),yesterday)).split(";");//目前为止所有日期 String[] range=rangeArray[0].split(","); + Long endDateyesterday = DateUtil.getnowEndTime(23,DateUtil.getStringTime(yesterday,"yyyy-MM-dd")).getTime(); + int year = Calendar.getInstance().get(Calendar.YEAR); int month = Calendar.getInstance().get(Calendar.MONTH) + 1; @@ -181,7 +186,7 @@ public class AttendanceTaskTiming{ //考勤组信息 KqglMainKqz attgro = kqglmainkqzmapper.getAttendanceGroupInformationByUserid(user.getEmpnum(),org_code); //目前为止打卡记录 - List<PunchCardDetails> attendance = punchcarddetailsmapper.selectAttendanceDays(user.getEmpnum(), startDate, new Date().getTime()); + List<PunchCardDetails> attendance = punchcarddetailsmapper.selectAttendanceDays(user.getEmpnum(), startDate, endDateyesterday); int dkjl = 0;//目前为止打卡次数 int sbqkcs = 0,xbqkcs = 0,dk=0; String[] sblacks = new String[31];//上班缺卡天数 @@ -423,7 +428,7 @@ public class AttendanceTaskTiming{ } } } - List<PunchRecord> initial = punchrecordmapper.getMaintenancePunchCardList(startDate,new Date().getTime(),user.getEmpnum()); + List<PunchRecord> initial = punchrecordmapper.getMaintenancePunchCardList(startDate,endDateyesterday,user.getEmpnum()); // // 迟到次数 迟到时长 早退次数 早退时长 // int latenum = 0,latehours = 0,leanum = 0,leahours = 0;// 迟到次数 String[] cdts = new String[31];//迟到的具体天数 diff --git a/src/main/resources/mapping/kqmk/KqglAssoMonthPunchSummaryMapper.xml b/src/main/resources/mapping/kqmk/KqglAssoMonthPunchSummaryMapper.xml index e65d263..0f122c0 100644 --- a/src/main/resources/mapping/kqmk/KqglAssoMonthPunchSummaryMapper.xml +++ b/src/main/resources/mapping/kqmk/KqglAssoMonthPunchSummaryMapper.xml @@ -242,12 +242,21 @@ </select> <select id="MonthlySummaryLeave" resultMap="BalanceSheetDataMap"> - select res.leave_type_id as leaverulesid,res.duration as balancedays from kqgl_asso_relation_summary res + <!-- select res.leave_type_id as leaverulesid,res.duration as balancedays from kqgl_asso_relation_summary res where res.user_id = #{userid} and res.approval_type = 2 and res.org_code = #{orgcode} and SUBSTR(res.app_time,1,7) = #{apptime} - GROUP BY res.leave_type_id,res.duration + GROUP BY res.leave_type_id,res.duration --> + + select aa.leaverulesid,SUM(aa.balancedays) as balancedays from ( + select res.leave_type_id as leaverulesid,res.duration as balancedays from kqgl_asso_relation_summary res + where res.user_id = #{userid} + and res.approval_type = 2 + and res.org_code = #{orgcode} + and SUBSTR(res.app_time,1,7) = #{apptime} + GROUP BY res.leave_type_id,res.duration) as aa + GROUP BY aa.leaverulesid </select> <select id="FormMonthlySummaryLeave" resultMap="BalanceSheetDataMap"> -- libgit2 0.26.0