From 8a2ec94b6e2d383781045bd74f362e65619195fd Mon Sep 17 00:00:00 2001 From: ilal <lalqqhy@163.com> Date: Mon, 24 Aug 2020 09:17:56 +0800 Subject: [PATCH] 提交 --- src/main/java/cn/timer/api/controller/kqgl/ClockInController.java | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------- 1 file changed, 68 insertions(+), 70 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 c8134b8..a719dcc 100644 --- a/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java +++ b/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java @@ -1497,94 +1497,92 @@ public class ClockInController { boolean sbdkkd = false;//针对于上班 未超过上班卡打卡 视为无效打卡 long punchcardtime = 0,punchstart = 0,punchend = 0;//应打卡时间,应打卡开始时间,应打卡结束时间 + boolean chenexday = false; + ClockCollectData clockt = new ClockCollectData(); // putime: 根据日期 得到打卡所需的详细信息 AttendanceCardListDto attdate = MethodCall(qyid,userid,putime); if(attgro != null) {//判断考勤组是否存在 if(attdate.getAttgrouptype() != 3) { - //查询打卡当天是否有记录********************************** + + List<AttSchedule> checknextday = attdate.getAttsch(); + if(checknextday.size() > 0) { + for(int c=0;c<checknextday.size();c++) { + if(checknextday.get(c).getNextday() == 2) { + chenexday = true; + } + } + } + KqglAssoDkmx dkmc = KqglAssoDkmx.builder().build(); - String dakariqi = new SimpleDateFormat("yy-MM-dd").format(Double.valueOf(startDateyesterday))+" "+ClockInTool.dateToWeek2(yesterday); - //检查昨日的班次是否存在次日打卡 - KqglAssoDkjl balan = kqglassodkjlmapper.selectOne(new QueryWrapper<KqglAssoDkjl>().lambda().eq(KqglAssoDkjl::getUserId, userid).eq(KqglAssoDkjl::getAttdate, dakariqi).ne(KqglAssoDkjl::getBcid, 0).orderByDesc(KqglAssoDkjl :: getSort).last("LIMIT 1")); boolean dnck = false; boolean crdk = false;//当次打卡是否存在次日打卡 - if(balan != null) {//前一天是否打过卡 去班次id查询是否存在次日打卡 - //昨日的班次信息 - KqglAssoBcsz shif = kqglassobcszmapper.selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, balan.getBcid())); - int dkcs = shif.getSxbcs()*2; - List<AttSchedule> ashss = attdate.getAttsch();//获取今天应打卡时间 - if(ashss.size() > 0) { - Date sd1=df1.parse(ClockInTool.stampToDate(String.valueOf(ashss.get(0).getTime())));//当天应打的首次上班卡时间 - Date sd2=df1.parse(current_time);//当前时间 - if(sd1.after(sd2)) {//大于 - dnck = true; + + if(chenexday) { + //查询打卡当天是否有记录********************************** +// KqglAssoDkmx dkmc = KqglAssoDkmx.builder().build(); + String dakariqi = new SimpleDateFormat("yy-MM-dd").format(Double.valueOf(startDateyesterday))+" "+ClockInTool.dateToWeek2(yesterday); + //检查昨日的班次是否存在次日打卡 + KqglAssoDkjl balan = kqglassodkjlmapper.selectOne(new QueryWrapper<KqglAssoDkjl>().lambda().eq(KqglAssoDkjl::getUserId, userid).eq(KqglAssoDkjl::getAttdate, dakariqi).ne(KqglAssoDkjl::getBcid, 0).orderByDesc(KqglAssoDkjl :: getSort).last("LIMIT 1")); +// boolean dnck = false; +// boolean crdk = false;//当次打卡是否存在次日打卡 + if(balan != null) {//前一天是否打过卡 去班次id查询是否存在次日打卡 + //昨日的班次信息 + KqglAssoBcsz shif = kqglassobcszmapper.selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, balan.getBcid())); + int dkcs = shif.getSxbcs()*2; + List<AttSchedule> ashss = attdate.getAttsch();//获取今天应打卡时间 + if(ashss.size() > 0) { + Date sd1=df1.parse(ClockInTool.stampToDate(String.valueOf(ashss.get(0).getTime())));//当天应打的首次上班卡时间 + Date sd2=df1.parse(current_time);//当前时间 + if(sd1.after(sd2)) {//大于 + dnck = true; + } } - } - int isXbdk1Cr = shif.getIsXbdk1Cr();//下班1是否次日(0:否;1:是) - int isSbdk2Cr = shif.getIsSbdk2Cr();//上班2是否次日(0:否;1:是) - int isXbdk2Cr = shif.getIsXbdk2Cr();//下班2是否次日(0:否;1:是) - int isSbdk3Cr = shif.getIsSbdk3Cr();//上班3是否次日(0:否;1:是) - int isXbdk3Cr = shif.getIsXbdk3Cr();//下班3是否次日(0:否;1:是) - if(balan.getSort() <= dkcs) { - - if((isXbdk1Cr + isSbdk2Cr +isXbdk2Cr + isSbdk3Cr + isXbdk3Cr) > 0) { - crdk = true; + int isXbdk1Cr = shif.getIsXbdk1Cr();//下班1是否次日(0:否;1:是) + int isSbdk2Cr = shif.getIsSbdk2Cr();//上班2是否次日(0:否;1:是) + int isXbdk2Cr = shif.getIsXbdk2Cr();//下班2是否次日(0:否;1:是) + int isSbdk3Cr = shif.getIsSbdk3Cr();//上班3是否次日(0:否;1:是) + int isXbdk3Cr = shif.getIsXbdk3Cr();//下班3是否次日(0:否;1:是) + if(balan.getSort() <= dkcs) { + if((isXbdk1Cr + isSbdk2Cr +isXbdk2Cr + isSbdk3Cr + isXbdk3Cr) > 0) { + crdk = true; + } } + }else { + List<AttSchedule> ashss = attdate.getAttsch();//获取今天应打卡时间 -// if(balan.getSort()+1 == 2 && dkcs == 2) { -// //次日 -// if(isXbdk1Cr > 0) { crdk = true; } -// } -// if(balan.getSort()+1 == 3 && dkcs == 4) { -// if(isSbdk2Cr > 0) {crdk = true; } -// } -// if(balan.getSort()+1 == 4 && dkcs == 4) { -// if(isXbdk2Cr > 0) { crdk = true; } -// } -// if(balan.getSort()+1 == 5 && dkcs == 6) { -// if(isSbdk3Cr > 0) { crdk = true; } -// } -// if(balan.getSort()+1 == 6 && dkcs == 6) { -// if(isXbdk3Cr > 0) { crdk = true; } -// } - } - }else { - List<AttSchedule> ashss = attdate.getAttsch();//获取今天应打卡时间 - - //无记录的话就找昨天的数据 - AttendanceCardListDto attdate1 = MethodCall(qyid,userid,yesterday); - List<AttSchedule> ashssyebo = attdate1.getAttsch();//获取昨天应打卡时间 - if(ashssyebo.size() > 0) { - Date sd1=df1.parse(ClockInTool.stampToDate(String.valueOf(ashssyebo.get(0).getTime())));//当天应打的首次上班卡时间 - Date sd2=df1.parse(current_time);//当前时间 - if(sd2.after(sd1)) {//大于 - dnck = true; + //无记录的话就找昨天的数据 + AttendanceCardListDto attdate1 = MethodCall(qyid,userid,yesterday); + List<AttSchedule> ashssyebo = attdate1.getAttsch();//获取昨天应打卡时间 + if(ashssyebo.size() > 0) { + Date sd1=df1.parse(ClockInTool.stampToDate(String.valueOf(ashssyebo.get(0).getTime())));//当天应打的首次上班卡时间 + Date sd2=df1.parse(current_time);//当前时间 + if(sd2.after(sd1)) {//大于 + dnck = true; + } } - } - - - if(EmptyUtil.isNotEmpty(attdate.getAttsch()) && ashss.get(0).getId() != 0) {//班次不为空 - KqglAssoBcsz shifi = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, ashss.get(0).getId())); - int isXbdk1Cr = shifi.getIsXbdk1Cr();//下班1是否次日(0:否;1:是) - int isSbdk2Cr = shifi.getIsSbdk2Cr();//上班2是否次日(0:否;1:是) - int isXbdk2Cr = shifi.getIsXbdk2Cr();//下班2是否次日(0:否;1:是) - int isSbdk3Cr = shifi.getIsSbdk3Cr();//上班3是否次日(0:否;1:是) - int isXbdk3Cr = shifi.getIsXbdk3Cr();//下班3是否次日(0:否;1:是) - if((isXbdk1Cr + isSbdk2Cr +isXbdk2Cr + isSbdk3Cr + isXbdk3Cr) > 0) { - crdk = true; + if(EmptyUtil.isNotEmpty(attdate.getAttsch()) && ashss.get(0).getId() != 0) {//班次不为空 + KqglAssoBcsz shifi = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, ashss.get(0).getId())); + int isXbdk1Cr = shifi.getIsXbdk1Cr();//下班1是否次日(0:否;1:是) + int isSbdk2Cr = shifi.getIsSbdk2Cr();//上班2是否次日(0:否;1:是) + int isXbdk2Cr = shifi.getIsXbdk2Cr();//下班2是否次日(0:否;1:是) + int isSbdk3Cr = shifi.getIsSbdk3Cr();//上班3是否次日(0:否;1:是) + int isXbdk3Cr = shifi.getIsXbdk3Cr();//下班3是否次日(0:否;1:是) - attdate = MethodCall(qyid,userid,yesterday); - - }else { - crdk = false; + if((isXbdk1Cr + isSbdk2Cr +isXbdk2Cr + isSbdk3Cr + isXbdk3Cr) > 0) { + crdk = true; + + attdate = MethodCall(qyid,userid,yesterday); + + }else { + crdk = false; + } } } - - } + if(crdk && dnck) { dkmc = KqglAssoDkmx.builder().build().selectOne(new QueryWrapper<KqglAssoDkmx>().lambda().eq(KqglAssoDkmx::getUserid, userid) .ge(KqglAssoDkmx::getDksj, startDateyesterday).le(KqglAssoDkmx::getDksj, endDateyesterday).eq(KqglAssoDkmx::getData, yesterday)); -- libgit2 0.26.0