From 5a8e2151c131b2cbcf8de7acfacc1eab63b20ba2 Mon Sep 17 00:00:00 2001 From: ilal <lalqqhy@163.com> Date: Mon, 3 Aug 2020 17:40:31 +0800 Subject: [PATCH] 提交 --- src/main/java/cn/timer/api/controller/kqgl/ClockInController.java | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------ 1 file changed, 89 insertions(+), 60 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 19339de..31169c5 100644 --- a/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java +++ b/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java @@ -1110,6 +1110,8 @@ public class ClockInController { status = status_; } } + + //cardtype--1:GPS,2:WIFI,3:考勤机 KqglAssoDkjl pre = KqglAssoDkjl.builder().dktime(time_).results(results).userId(userid).type(type).status(status).sort(atttype) .cardType(3).qyid(qyid).attdate(attdate_+" "+ClockInTool.dateToWeek2(toweek)).attime(attime).dkmxid(dkmx).bcid(shifid).remarks(remarks).punchmode(Integer.valueOf(asVerifyMode)) @@ -2022,6 +2024,7 @@ public class ClockInController { dkmx = pcd.getId(); atttype = 1; }else {//修改 + boolean zydk = true; dkmx = zydkmc.getId(); KqglAssoDkmx zypcd = KqglAssoDkmx.builder().build(); if((!("").equals(zydkmc.getSbdk1()) || zydkmc.getSbdk1() != null) && (("").equals(zydkmc.getXbdk1()) || zydkmc.getXbdk1() == null)){//下班1 @@ -2031,6 +2034,8 @@ public class ClockInController { if(zysd1.after(zysd2)) {//当zysd1大于zysd2时,返回TRUE,当小于等于时,返回false; msg = "自由工时:上班打卡后"+canpunchworkdate+"小时后,才可打下班卡"; sbyf = 0; + zydk = false; + atttype = 0; }else { zypcd.setId(zydkmc.getId()); zypcd.setXbdk1(time_);//下班1打卡时间 @@ -2040,7 +2045,10 @@ public class ClockInController { } kqglassodkmxmapper.updateByPrimaryKeySelective(zypcd);//修改打卡记录 } - atttype = 2; + if(zydk) { + atttype = 2; + } + }else if((!("").equals(zydkmc.getSbdk1()) || zydkmc.getSbdk1() != null) && (!("").equals(zydkmc.getXbdk1()) || zydkmc.getXbdk1() != null) && (("").equals(zydkmc.getSbdk2()) || zydkmc.getSbdk2() == null)){//上班2 zypcd.setId(zydkmc.getId()); @@ -2055,6 +2063,8 @@ public class ClockInController { if(zysd1.after(zysd2)) {//当zysd1大于zysd2时,返回TRUE,当小于等于时,返回false; msg = "自由工时:上班打卡后"+canpunchworkdate+"小时后,才可打下班卡"; sbyf = 0; + zydk = false; + atttype = 0; }else { zypcd.setId(zydkmc.getId()); zypcd.setXbdk2(time_);//下班1打卡时间 @@ -2068,7 +2078,9 @@ public class ClockInController { } kqglassodkmxmapper.updateByPrimaryKeySelective(zypcd);//修改打卡记录 } + if(zydk) { atttype = 4; + } }else if((!("").equals(zydkmc.getSbdk1()) || zydkmc.getSbdk1() != null) && (!("").equals(zydkmc.getXbdk1()) || zydkmc.getXbdk1() != null) && (!("").equals(zydkmc.getSbdk2()) || zydkmc.getSbdk2() != null) && (!("").equals(zydkmc.getXbdk2()) || zydkmc.getXbdk2() != null) && (("").equals(zydkmc.getSbdk3()) || zydkmc.getSbdk3() == null)){//上班3 @@ -2085,6 +2097,8 @@ public class ClockInController { if(zysd1.after(zysd2)) {//当zysd1大于zysd2时,返回TRUE,当小于等于时,返回false; msg = "自由工时:上班打卡后"+canpunchworkdate+"小时后,才可打下班卡"; sbyf = 0; + zydk = false; + atttype = 0; }else { zypcd.setId(zydkmc.getId()); zypcd.setXbdk3(time_);//下班1打卡时间 @@ -2098,8 +2112,9 @@ public class ClockInController { } kqglassodkmxmapper.updateByPrimaryKeySelective(zypcd);//修改打卡记录 } - + if(zydk) { atttype = 6; + } }else { atttype = 7; } @@ -2137,63 +2152,65 @@ public class ClockInController { } } } - int type,status = 0; - if((atttype)%2 > 0){ - type = 1;// 类型(类型 0:无排班打卡 1:上班 2:下班) punchcardtime == 0:无班次打卡 - if(attdate.getAttgrouptype() != 3) { - if(EmptyUtil.isNotEmpty(attdate.getAttsch())) { - if(punchcardtime == 0 && clockt.getShifid() != 0){ - status = 1; - }if(punchcardtime == 0 && clockt.getShifid() == 0) { - status = 2; - }else{ - if(isRange) {// 状态(0:打卡无效:此记录已被更新 1:正常 2:异常 3:迟到 4:早退 5:补卡 6:请假 7:加班 8:调休) - if(time > 0){ - status = 3; - }else if(results == 0){ - status = 1; - } - }else { + int type = 0,status = 0; + if(atttype > 0) { + if((atttype)%2 > 0){ + type = 1;// 类型(类型 0:无排班打卡 1:上班 2:下班) punchcardtime == 0:无班次打卡 + if(attdate.getAttgrouptype() != 3) { + if(EmptyUtil.isNotEmpty(attdate.getAttsch())) { + if(punchcardtime == 0 && clockt.getShifid() != 0){ + status = 1; + }if(punchcardtime == 0 && clockt.getShifid() == 0) { status = 2; + }else{ + if(isRange) {// 状态(0:打卡无效:此记录已被更新 1:正常 2:异常 3:迟到 4:早退 5:补卡 6:请假 7:加班 8:调休) + if(time > 0){ + status = 3; + }else if(results == 0){ + status = 1; + } + }else { + status = 2; + } } + }else if(EmptyUtil.isEmpty(attdate.getAttsch())) { + status = 2; } - }else if(EmptyUtil.isEmpty(attdate.getAttsch())) { - status = 2; - } - }else { - if(sbyf == 1) { - status = 1; }else { - status = 2; - } - } - }else{ - type = 2;// 类型(类型 0:无排班打卡 1:上班 2:下班) - if(attdate.getAttgrouptype() != 3) { - if(EmptyUtil.isNotEmpty(attdate.getAttsch())) { - if(punchcardtime == 0 && clockt.getShifid() != 0){ + if(sbyf == 1) { status = 1; - }if(punchcardtime == 0 && clockt.getShifid() == 0) { + }else { status = 2; - }else{ - if(isRange) { - if(time < 0){ - status = 4; - }else if(results == 0){ - status = 1; - } - }else { + } + } + }else{ + type = 2;// 类型(类型 0:无排班打卡 1:上班 2:下班) + if(attdate.getAttgrouptype() != 3) { + if(EmptyUtil.isNotEmpty(attdate.getAttsch())) { + if(punchcardtime == 0 && clockt.getShifid() != 0){ + status = 1; + }if(punchcardtime == 0 && clockt.getShifid() == 0) { status = 2; + }else{ + if(isRange) { + if(time < 0){ + status = 4; + }else if(results == 0){ + status = 1; + } + }else { + status = 2; + } } + }else if(EmptyUtil.isEmpty(attdate.getAttsch())) { + status = 2; } - }else if(EmptyUtil.isEmpty(attdate.getAttsch())) { - status = 2; - } - }else { - if(sbyf == 1) { - status = 1; }else { - status = 2; + if(sbyf == 1) { + status = 1; + }else { + status = 2; + } } } } @@ -2604,14 +2621,14 @@ public class ClockInController { List<AttSchedule> attsch = new ArrayList<AttSchedule>(); // List<KqglAssoDkjl> dajllist_ = kqglassodkjlmapper.getDetailedRecordClock(startDate,endDate,userBean.getEmpNum()); - KqglAssoDkjl dkjl = KqglAssoDkjl.builder().build(); +// KqglAssoDkjl dkjl = KqglAssoDkjl.builder().build(); if(dajllist_.size() > 0) { for(int i=1;i<=dajllist_.size();i++){ - - for(KqglAssoDkjl ddk : dajllist_) { - BeanUtil.copyProperties(ddk, dkjl,"attdate","bcid","remarks","userId","attime","dkmxid","commentary","punchequipment","punchmode"); - } + KqglAssoDkjl dkjl = KqglAssoDkjl.builder().build(); +// for(KqglAssoDkjl ddk : dajllist_) { + BeanUtil.copyProperties(dajllist_.get(i-1), dkjl,"attdate","bcid","remarks","userId","attime","dkmxid","commentary","punchequipment","punchmode"); +// } AttSchedule ast = AttSchedule.builder().build(); ast.setId(0); ast.setIsdk(1); @@ -2882,7 +2899,7 @@ public class ClockInController { AttendanceCardListDto attdate = MethodCall(userBean.getOrgCode(),userBean.getEmpNum(),num);//获取当天所打卡班次 List<AttSchedule> ashss = attdate.getAttsch();//获取今天应打卡时间 - if(EmptyUtil.isNotEmpty(attdate.getAttsch())) {//班次不为空 + if(EmptyUtil.isNotEmpty(attdate.getAttsch()) && attdate.getAttgrouptype() != 3) {//班次不为空 KqglAssoBcsz bcsts = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, ashss.get(0).getId())); @@ -3019,6 +3036,7 @@ public class ClockInController { //当月后续补贴数据 if(date == null || ("").equals(date) || date.equals(yue)) { + int pbfs = 0; String next_day = ClockInTool.requires_extra_times(current,1,2,1); Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); @@ -3033,6 +3051,7 @@ public class ClockInController { if(attgro != null){//该员工是否加入到考勤组 排班方式 1:固定排班;2:自由排班;3:自由工时 计算出应出勤,实际出勤,休息天数 if(attgro.getPbfs() == 1){ //固定排班 + pbfs = 1; List<KqglAssoTeshu> bxdklist = kqglassoteshumapper.ShouldSpecialDatessetByKqzid(attgro.getId(), ttstr,1);//当前月 必须打卡日期 int bxdk = bxdklist.size(); String[] bxdkss = new String[bxdk];////特殊-必须打卡天数(工作日) @@ -3096,6 +3115,7 @@ public class ClockInController { } } }else if(attgro.getPbfs() == 2){ //自由排班 + pbfs = 2; DateFormat df11 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); List<Schedule> ycqs = schedulemapper.getAttendanceShouldList(userBean.getEmpNum(),startMonth,endMonth); int z=0; @@ -3120,6 +3140,7 @@ public class ClockInController { } } }else{ + pbfs = 3; List<AttendanceWeeklySch> atwek = attendanceweeklyschmapper.selectAttendanceMadeByUserid(userBean.getEmpNum(),userBean.getOrgCode()); String[] week= new String[atwek.size()]; int e = 0; @@ -3147,12 +3168,20 @@ public class ClockInController { for(String nus : nextrange) { WorkbenchCalendarDto wocal = WorkbenchCalendarDto.builder().build(); wocal.setDate(nus); - if(ClockInTool.contains(ClockInTool.deleteArrayNull(ycqts),nus)) { - wocal.setCalendar_status(1);//打卡异常 - } - if(ClockInTool.contains(ClockInTool.deleteArrayNull(xxts),nus)) { - wocal.setCalendar_status(4);//打卡异常 + if(pbfs == 3) { + wocal.setCalendar_status(0);// + wocal.setCalendar_status_type(0); + }else { + if(ClockInTool.contains(ClockInTool.deleteArrayNull(ycqts),nus)) { + wocal.setCalendar_status(1);// + wocal.setCalendar_status_type(0); + } + if(ClockInTool.contains(ClockInTool.deleteArrayNull(xxts),nus)) { + wocal.setCalendar_status(4);// + wocal.setCalendar_status_type(0); + } } + workcal.add(wocal); } -- libgit2 0.26.0