Commit 843613fd by Administrator

Merge branch 'develop' into 'master'

Develop

See merge request 8timerv2/8timerapiv200!451
parents 5153f7c0 a8161011
...@@ -108,4 +108,7 @@ public class KqglAssoDkjl extends Model<KqglAssoDkjl> { ...@@ -108,4 +108,7 @@ public class KqglAssoDkjl extends Model<KqglAssoDkjl> {
@TableField(exist = false) @TableField(exist = false)
private Integer calendar_status_type;//0:无;1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假;11:加班;12:出差;13:外出 private Integer calendar_status_type;//0:无;1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假;11:加班;12:出差;13:外出
@TableField(exist = false)
private String calendar_status_name;
} }
\ No newline at end of file
...@@ -67,14 +67,13 @@ import cn.timer.api.dto.kqmk.AttLateLate; ...@@ -67,14 +67,13 @@ import cn.timer.api.dto.kqmk.AttLateLate;
import cn.timer.api.dto.kqmk.AttSchedule; import cn.timer.api.dto.kqmk.AttSchedule;
import cn.timer.api.dto.kqmk.AttendanceCardListDto; import cn.timer.api.dto.kqmk.AttendanceCardListDto;
import cn.timer.api.dto.kqmk.ClockCollectData; import cn.timer.api.dto.kqmk.ClockCollectData;
import cn.timer.api.dto.kqmk.KqglAssoMonthPunchSummaryDto;
import cn.timer.api.dto.kqmk.KqglAssoPbmxDto; import cn.timer.api.dto.kqmk.KqglAssoPbmxDto;
import cn.timer.api.dto.kqmk.TransactionApprovalDto;
import cn.timer.api.dto.kqmk.WorkbenchCalendarDto; import cn.timer.api.dto.kqmk.WorkbenchCalendarDto;
import cn.timer.api.utils.DateUtil; import cn.timer.api.utils.DateUtil;
import cn.timer.api.utils.Result; import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil; import cn.timer.api.utils.ResultUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@Api(tags = "3.0[3]考勤打卡") @Api(tags = "3.0[3]考勤打卡")
...@@ -217,6 +216,8 @@ public class ClockInController { ...@@ -217,6 +216,8 @@ public class ClockInController {
} }
}else { }else {
List<AttSchedule> ashss = attdate.getAttsch();//获取今天应打卡时间
//无记录的话就找昨天的数据 //无记录的话就找昨天的数据
AttendanceCardListDto attdate1 = MethodCall(qyid,userid,yesterday); AttendanceCardListDto attdate1 = MethodCall(qyid,userid,yesterday);
List<AttSchedule> ashssyebo = attdate1.getAttsch();//获取昨天应打卡时间 List<AttSchedule> ashssyebo = attdate1.getAttsch();//获取昨天应打卡时间
...@@ -228,9 +229,25 @@ public class ClockInController { ...@@ -228,9 +229,25 @@ public class ClockInController {
} }
} }
// crdk = true;
// attdate = MethodCall(qyid,userid,yesterday);
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; crdk = true;
attdate = MethodCall(qyid,userid,yesterday); attdate = MethodCall(qyid,userid,yesterday);
}else {
crdk = false;
}
}
} }
if(crdk && dnck) { if(crdk && dnck) {
...@@ -2605,7 +2622,7 @@ public class ClockInController { ...@@ -2605,7 +2622,7 @@ public class ClockInController {
boolean iscrdk = true; boolean iscrdk = true;
String crlasttime = null;//次日最后打卡时间 String crlasttime = null;//次日最后打卡时间
boolean bycf = true; boolean bycf = true;
/****************日开始***************/ /****************日开始***************/
int sb1 = 0,xb1 = 0,sb2 = 0,xb2 = 0,sb3 = 0,xb3 = 0; int sb1 = 0,xb1 = 0,sb2 = 0,xb2 = 0,sb3 = 0,xb3 = 0;
//先判断前一天是否存在次日打卡的方式 //先判断前一天是否存在次日打卡的方式
KqglAssoBcsz jianchashif = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, attsch.get(0).getId())); KqglAssoBcsz jianchashif = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, attsch.get(0).getId()));
...@@ -2680,6 +2697,7 @@ public class ClockInController { ...@@ -2680,6 +2697,7 @@ public class ClockInController {
if(ectivedate) { if(ectivedate) {
attschbefo.setIsdk(0); attschbefo.setIsdk(0);
}else { }else {
bc++;
attschbefo.setIsdk(1); attschbefo.setIsdk(1);
} }
} }
...@@ -2687,6 +2705,7 @@ public class ClockInController { ...@@ -2687,6 +2705,7 @@ public class ClockInController {
if(ectivedate) { if(ectivedate) {
attschbefo.setIsdk(0); attschbefo.setIsdk(0);
}else { }else {
bc++;
attschbefo.setIsdk(1); attschbefo.setIsdk(1);
} }
} }
...@@ -2728,12 +2747,18 @@ public class ClockInController { ...@@ -2728,12 +2747,18 @@ public class ClockInController {
} }
} }
/****************日结束***************/ /****************日结束***************/
int bccs = attdate.getAttsch().size(); int bccs = attdate.getAttsch().size();
int r = 1; int r = 1;
// int bc = 0; // int bc = 0;
// int bsz = 0; // int bsz = 0;
boolean dk1 = true;//上
boolean dk2 = true;//下
boolean dk3 = true;
boolean dk4 = true;
boolean dk5 = true;
boolean dk6 = true;
for(AttSchedule ash : attsch) { for(AttSchedule ash : attsch) {
if(ash.getNextdaycard() == 0) { if(ash.getNextdaycard() == 0) {
if(attdate.getAttsch().size() == 2) { if(attdate.getAttsch().size() == 2) {
...@@ -2748,6 +2773,7 @@ public class ClockInController { ...@@ -2748,6 +2773,7 @@ public class ClockInController {
bsz = 1; bsz = 1;
ash.setIsdk(0); ash.setIsdk(0);
}else { }else {
dk1 = false;
bc++; bc++;
ash.setIsdk(1); ash.setIsdk(1);
...@@ -2766,6 +2792,7 @@ public class ClockInController { ...@@ -2766,6 +2792,7 @@ public class ClockInController {
bsz = 1; bsz = 1;
ash.setIsdk(0); ash.setIsdk(0);
}else { }else {
dk2 = false;
bc++; bc++;
ash.setIsdk(1); ash.setIsdk(1);
...@@ -2794,9 +2821,9 @@ public class ClockInController { ...@@ -2794,9 +2821,9 @@ public class ClockInController {
}else { }else {
KqglAssoBcsz shif = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, ash.getId())); KqglAssoBcsz shif = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, ash.getId()));
String xbdk1 = (str+" "+shif.getXbdk1()+":00").replaceAll("\r|\n", ""); String xbdk1 = (str+" "+shif.getXbdk1()+":00").replaceAll("\r|\n", "");
Timestamp a = Timestamp.valueOf(xbdk1); Timestamp a = Timestamp.valueOf(xbdk1);//下班
String sbdk1 = (str+" "+shif.getSbdk1()+":00").replaceAll("\r|\n", ""); String sbdk1 = (str+" "+shif.getSbdk1()+":00").replaceAll("\r|\n", "");
Timestamp c = Timestamp.valueOf(sbdk1); Timestamp c = Timestamp.valueOf(sbdk1);//上班
if(r == 1) { if(r == 1) {
if (b.after(a) && b.after(c)) {// 当前时间大于下班打卡时间 if (b.after(a) && b.after(c)) {// 当前时间大于下班打卡时间
...@@ -2839,6 +2866,25 @@ public class ClockInController { ...@@ -2839,6 +2866,25 @@ public class ClockInController {
}else { }else {
bc++; bc++;
ash.setIsdk(1); ash.setIsdk(1);
if(ash.getSort() == 1) {
dk1 = false;
}
if(ash.getSort() == 2) {
dk2 = false;
}
if(ash.getSort() == 3) {
dk3 = false;
}
if(ash.getSort() == 4) {
dk4 = false;
}
if(ash.getSort() == 5) {
dk5 = false;
}
if(ash.getSort() == 6) {
dk6 = false;
}
} }
//是否请假 //是否请假
...@@ -2956,13 +3002,25 @@ public class ClockInController { ...@@ -2956,13 +3002,25 @@ public class ClockInController {
} }
ash.setDajl(dkjl);//班次信息中插入打卡打卡 数据
/****/ /****/
//事务(请假,加班,调休,出差) //事务(请假,加班,调休,出差)
KqglAssoRelationSummary asssum1 = KqglAssoRelationSummary.builder().build().selectOne(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, userBean.getEmpNum()) KqglAssoRelationSummary asssum1 = KqglAssoRelationSummary.builder().build().selectOne(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, userBean.getEmpNum())
.eq(KqglAssoRelationSummary::getAppTime, str).last("LIMIT 1")); .eq(KqglAssoRelationSummary::getAppTime, str).last("LIMIT 1"));
if(asssum1 != null) { if(asssum1 != null) {
if(asssum1.getApprovalType() != 5) {
String startTime = asssum1.getStartTime();//
String endTime = asssum1.getEndTime();//
if(ash.getDajl().getCardType() != null) {
boolean affair = ClockInTool.hourMinuteBetween(ClockInTool.stampToDate(String.valueOf(ash.getDajl().getDktime())), startTime, endTime,"yyyy-MM-dd HH:mm:ss");
if(affair && ash.getDajl().getStatus() != 9 && ash.getDajl().getStatus() != 10 && ash.getDajl().getStatus() != 11
&& ash.getDajl().getStatus() != 12 && ash.getDajl().getStatus() != 13 && ash.getDajl().getStatus() != 14) {
ash.getDajl().setStatus(1);
}
}
}
//0:无;1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假;11:加班;12:出差;13:外出 //0:无;1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假;11:加班;12:出差;13:外出
if(asssum1.getApprovalType() == 1) { if(asssum1.getApprovalType() == 1) {
dkjl.setCalendar_status_type(11); dkjl.setCalendar_status_type(11);
...@@ -2971,64 +3029,58 @@ public class ClockInController { ...@@ -2971,64 +3029,58 @@ public class ClockInController {
}else if(asssum1.getApprovalType() == 2) { }else if(asssum1.getApprovalType() == 2) {
//请假 //请假
KqglAssoLeaveRules rul = KqglAssoLeaveRules.builder().build().selectOne(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getId,asssum1.getLeaveTypeId())); KqglAssoLeaveRules rul = KqglAssoLeaveRules.builder().build().selectOne(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getId,asssum1.getLeaveTypeId()));
if(rul.getRulesType() != null) {
if(rul.getRulesType() == 1) { if(rul.getRulesType() == 1) {
dkjl.setCalendar_status_type(1); dkjl.setCalendar_status_type(1);
ash.setCalendar_status_type(1); ash.setCalendar_status_type(1);
}else if(rul.getRulesType() == 2) { }else if(rul.getRulesType() == 2) {
dkjl.setCalendar_status_type(2); dkjl.setCalendar_status_type(2);
ash.setCalendar_status_type(2); ash.setCalendar_status_type(2);
}else if(rul.getRulesType() == 3) { }else if(rul.getRulesType() == 3) {
dkjl.setCalendar_status_type(3); dkjl.setCalendar_status_type(3);
ash.setCalendar_status_type(3); ash.setCalendar_status_type(3);
}else if(rul.getRulesType() == 4) { }else if(rul.getRulesType() == 4) {
dkjl.setCalendar_status_type(4); dkjl.setCalendar_status_type(4);
ash.setCalendar_status_type(4); ash.setCalendar_status_type(4);
}else if(rul.getRulesType() == 5) { }else if(rul.getRulesType() == 5) {
dkjl.setCalendar_status_type(5); dkjl.setCalendar_status_type(5);
ash.setCalendar_status_type(5); ash.setCalendar_status_type(5);
}else if(rul.getRulesType() == 6) { }else if(rul.getRulesType() == 6) {
dkjl.setCalendar_status_type(6); dkjl.setCalendar_status_type(6);
ash.setCalendar_status_type(6); ash.setCalendar_status_type(6);
}else if(rul.getRulesType() == 7) { }else if(rul.getRulesType() == 7) {
dkjl.setCalendar_status_type(7); dkjl.setCalendar_status_type(7);
ash.setCalendar_status_type(7); ash.setCalendar_status_type(7);
}else if(rul.getRulesType() == 8) { }else if(rul.getRulesType() == 8) {
dkjl.setCalendar_status_type(8); dkjl.setCalendar_status_type(8);
ash.setCalendar_status_type(8); ash.setCalendar_status_type(8);
}else if(rul.getRulesType() == 9) { }else if(rul.getRulesType() == 9) {
dkjl.setCalendar_status_type(9); dkjl.setCalendar_status_type(9);
ash.setCalendar_status_type(9); ash.setCalendar_status_type(9);
}else if(rul.getRulesType() == 10) { }else if(rul.getRulesType() == 10) {
dkjl.setCalendar_status_type(10); dkjl.setCalendar_status_type(10);
ash.setCalendar_status_type(10); ash.setCalendar_status_type(10);
} }
}else {
dkjl.setCalendar_status_type(-1);
dkjl.setCalendar_status_name(rul.getName());
ash.setCalendar_status_type(-1);
dkjl.setCalendar_status_name(rul.getName());
}
}else if(asssum1.getApprovalType() == 3) { }else if(asssum1.getApprovalType() == 3) {
dkjl.setCalendar_status_type(12); dkjl.setCalendar_status_type(12);
ash.setCalendar_status_type(12); ash.setCalendar_status_type(12);
}else if(asssum1.getApprovalType() == 4) { }else if(asssum1.getApprovalType() == 4) {
dkjl.setCalendar_status_type(13); dkjl.setCalendar_status_type(13);
ash.setCalendar_status_type(13); ash.setCalendar_status_type(13);
} }
}else { }else {
dkjl.setCalendar_status_type(0); dkjl.setCalendar_status_type(0);
ash.setCalendar_status_type(0); ash.setCalendar_status_type(0);
} }
/****/ /****/
ash.setDajl(dkjl);//班次信息中插入打卡打卡 数据 // ash.setDajl(dkjl);//班次信息中插入打卡打卡 数据
} }
} }
...@@ -3069,22 +3121,95 @@ public class ClockInController { ...@@ -3069,22 +3121,95 @@ public class ClockInController {
} }
} }
//当天最后一个班打完后 打卡按钮全部不显示 //当天最后一个班打完后 打卡按钮全部不显示(没打卡的显示缺卡)
boolean isdkjj = true; boolean isdkjj = true;
if(attdate.getAttsch().size() == 2) { if(attdate.getAttsch().size() == 2) {
if(attsch.get(1).getDajl().getId() != null && attsch.get(1).getDajl().getDktime() != null) { if(attsch.get(1).getDajl().getId() != null && attsch.get(1).getDajl().getDktime() != null) {
isdkjj = false; isdkjj = false;
if(attsch.get(0).getDajl().getId() == null && attsch.get(0).getDajl().getDktime() == null) {
attsch.get(0).getDajl().setDktime(null);
attsch.get(0).getDajl().setStatus(17);//缺卡
attsch.get(0).getDajl().setSort(attdate.getAttsch().get(0).getSort());
attsch.get(0).getDajl().setId(888);
attdate.getAttsch().get(0).setIsdk(1);
}
} }
}else if(attdate.getAttsch().size() == 4) { }else if(attdate.getAttsch().size() == 4) {
if(attsch.get(3).getDajl().getId() != null && attsch.get(3).getDajl().getDktime() != null) { if(attsch.get(3).getDajl().getId() != null && attsch.get(3).getDajl().getDktime() != null) {
isdkjj = false; isdkjj = false;
if(attsch.get(0).getDajl().getId() == null && attsch.get(0).getDajl().getDktime() == null) {
attsch.get(0).getDajl().setDktime(null);
attsch.get(0).getDajl().setStatus(17);//缺卡
attsch.get(0).getDajl().setSort(attdate.getAttsch().get(0).getSort());
attsch.get(0).getDajl().setId(888);
attdate.getAttsch().get(0).setIsdk(1);
}
if(attsch.get(1).getDajl().getId() == null && attsch.get(1).getDajl().getDktime() == null && attsch.get(1).getDajl().getId() != 999) {
attsch.get(1).getDajl().setDktime(null);
attsch.get(1).getDajl().setStatus(17);//缺卡
attsch.get(1).getDajl().setSort(attdate.getAttsch().get(1).getSort());
attsch.get(1).getDajl().setId(888);
attdate.getAttsch().get(1).setIsdk(1);
}
if(attsch.get(2).getDajl().getId() == null && attsch.get(2).getDajl().getDktime() == null) {
attsch.get(2).getDajl().setDktime(null);
attsch.get(2).getDajl().setStatus(17);//缺卡
attsch.get(2).getDajl().setSort(attdate.getAttsch().get(2).getSort());
attsch.get(2).getDajl().setId(888);
attdate.getAttsch().get(2).setIsdk(1);
}
} }
}else if(attdate.getAttsch().size() == 6) { }else if(attdate.getAttsch().size() == 6) {
if(attsch.get(5).getDajl().getId() != null && attsch.get(5).getDajl().getDktime() != null) { if(attsch.get(5).getDajl().getId() != null && attsch.get(5).getDajl().getDktime() != null) {
isdkjj = false; isdkjj = false;
if(attsch.get(0).getDajl().getId() == null && attsch.get(0).getDajl().getDktime() == null) {
attsch.get(0).getDajl().setDktime(null);
attsch.get(0).getDajl().setStatus(17);//缺卡
attsch.get(0).getDajl().setSort(attdate.getAttsch().get(0).getSort());
attsch.get(0).getDajl().setId(888);
attdate.getAttsch().get(0).setIsdk(1);
}
if(attsch.get(1).getDajl().getId() == null && attsch.get(1).getDajl().getDktime() == null && attsch.get(1).getDajl().getId() != 999) {
attsch.get(1).getDajl().setDktime(null);
attsch.get(1).getDajl().setStatus(17);//缺卡
attsch.get(1).getDajl().setSort(attdate.getAttsch().get(1).getSort());
attsch.get(1).getDajl().setId(888);
attdate.getAttsch().get(1).setIsdk(1);
}
if(attsch.get(2).getDajl().getId() == null && attsch.get(2).getDajl().getDktime() == null) {
attsch.get(2).getDajl().setDktime(null);
attsch.get(2).getDajl().setStatus(17);//缺卡
attsch.get(2).getDajl().setSort(attdate.getAttsch().get(2).getSort());
attsch.get(2).getDajl().setId(888);
attdate.getAttsch().get(2).setIsdk(1);
}
if(attsch.get(3).getDajl().getId() == null && attsch.get(3).getDajl().getDktime() == null && attsch.get(3).getDajl().getId() != 999) {
attsch.get(3).getDajl().setDktime(null);
attsch.get(3).getDajl().setStatus(17);//缺卡
attsch.get(3).getDajl().setSort(attdate.getAttsch().get(3).getSort());
attsch.get(3).getDajl().setId(888);
attdate.getAttsch().get(3).setIsdk(1);
}
if(attsch.get(4).getDajl().getId() == null && attsch.get(4).getDajl().getDktime() == null) {
attsch.get(4).getDajl().setDktime(null);
attsch.get(4).getDajl().setStatus(17);//缺卡
attsch.get(4).getDajl().setSort(attdate.getAttsch().get(4).getSort());
attsch.get(4).getDajl().setId(888);
attdate.getAttsch().get(4).setIsdk(1);
}
} }
} }
// System.out.println(attsch.get(attdate.getAttsch().size()-1).getTime());
//全部为 1 时 iscrdk //全部为 1 时 iscrdk
if(bccs == bc && b.before(d) && lcdkgb && isdkjj) { if(bccs == bc && b.before(d) && lcdkgb && isdkjj) {
KqglAssoDkjl dk = KqglAssoDkjl.builder().build().selectOne(new QueryWrapper<KqglAssoDkjl>().lambda().eq(KqglAssoDkjl::getQyid, userBean.getOrgCode()) KqglAssoDkjl dk = KqglAssoDkjl.builder().build().selectOne(new QueryWrapper<KqglAssoDkjl>().lambda().eq(KqglAssoDkjl::getQyid, userBean.getOrgCode())
...@@ -3094,12 +3219,45 @@ public class ClockInController { ...@@ -3094,12 +3219,45 @@ public class ClockInController {
if(dk != null && attdate.getAttsch().size() != dk.getSort()) { if(dk != null && attdate.getAttsch().size() != dk.getSort()) {
AttSchedule att = attsch.get(dk.getSort()-cr); AttSchedule att = attsch.get(dk.getSort()-cr);
if(att.getDajl().getId() != null && att.getDajl().getStatus() != 17 && att.getDajl().getId() != 888) {
att.setIsdk(0); att.setIsdk(0);
AttSchedule attw = attsch.get(dk.getSort()-1); AttSchedule attw = attsch.get(dk.getSort()-1);
attw.setIsupdate(1); attw.setIsupdate(1);
}else { }else {
AttSchedule att1 = attsch.get(dk.getSort()+cr);
att1.setIsdk(0);
AttSchedule attw = attsch.get(dk.getSort()+cr-1);
attw.setIsupdate(1);
}
}else {
if(iscrdk) { if(iscrdk) {
if(attdate.getAttsch().size() == 2) {
AttSchedule attc = attsch.get(0);
AttSchedule attcto = attsch.get(1);
Timestamp tt1 = Timestamp.valueOf(ClockInTool.stampToDate(String.valueOf(attsch.get(0).getTime())));
Timestamp tt2 = Timestamp.valueOf(ClockInTool.stampToDate(String.valueOf(attsch.get(1).getTime())));
if(!dk1 && dk2) {
attc.getDajl().setStatus(17);//缺卡
attc.getDajl().setSort(attc.getSort());
attc.getDajl().setId(888);
attc.setIsdk(1);
}
if(!dk1 && !dk2 && b.after(tt1) && b.before(tt2)) {
attcto.getDajl().setStatus(null);//缺卡
attcto.getDajl().setSort(null);
attcto.getDajl().setId(null);
attcto.setIsdk(0);
}
if(!dk1 && !dk2 && b.after(tt1) && b.after(tt2)) {
attcto.getDajl().setStatus(17);//缺卡
attcto.getDajl().setSort(attc.getSort());
attcto.getDajl().setId(888);
attcto.setIsdk(1);
}
}else if(attdate.getAttsch().size() == 4) {
AttSchedule attc = attsch.get(0); AttSchedule attc = attsch.get(0);
if(attc.getDajl().getId() != null && attc.getDajl().getStatus() == 17 && attc.getDajl().getId() == 888) { if(attc.getDajl().getId() != null && attc.getDajl().getStatus() == 17 && attc.getDajl().getId() == 888) {
attc.getDajl().setId(null); attc.getDajl().setId(null);
...@@ -3107,22 +3265,47 @@ public class ClockInController { ...@@ -3107,22 +3265,47 @@ public class ClockInController {
attc.getDajl().setStatus(null); attc.getDajl().setStatus(null);
} }
attc.setIsdk(0); attc.setIsdk(0);
}
}else { }else {
if(crlasttime != null) { if(crlasttime != null) {
Timestamp dd = Timestamp.valueOf(crlasttime); Timestamp dd = Timestamp.valueOf(crlasttime);
if(dd.after(b)) {//after:大于 before:小于 if(dd.after(b)) {//after:大于 before:小于
AttSchedule attc = attsch.get(0); AttSchedule attc = attsch.get(0);
if(attc.getDajl().getId() != null && attc.getDajl().getStatus() == 17 && attc.getDajl().getId() == 888) {
attc.getDajl().setId(null);
attc.getDajl().setSort(null);
attc.getDajl().setStatus(null);
}
attc.setIsdk(0); attc.setIsdk(0);
}else { }else {
AttSchedule attc = attsch.get(cr); AttSchedule attc = attsch.get(cr);
Timestamp ag = Timestamp.valueOf(ClockInTool.stampToDate(String.valueOf(attc.getTime())));
if(ag.after(b)) {
if(attc.getDajl().getId() != null && attc.getDajl().getStatus() == 17 && attc.getDajl().getId() == 888) {
attc.getDajl().setId(null);
attc.getDajl().setSort(null);
attc.getDajl().setStatus(null);
}
attc.setIsdk(0); attc.setIsdk(0);
} }
}
}
} }
} }
//没有打卡按钮时
for(int y=0;y<bc;y++) {
AttSchedule attc = attsch.get(y);
if(attc.getDajl().getCardType() == null && attc.getDajl().getId() == null && attc.getDajl().getStatus() == null) {
attc.setIsdk(0);
break;
} }
} }
}
}else { }else {
//休息的时候 //休息的时候
List<AttSchedule> attsch_ = new ArrayList<AttSchedule>(); List<AttSchedule> attsch_ = new ArrayList<AttSchedule>();
...@@ -3134,15 +3317,10 @@ public class ClockInController { ...@@ -3134,15 +3317,10 @@ public class ClockInController {
//自由工时 //自由工时
List<AttSchedule> attsch = new ArrayList<AttSchedule>(); List<AttSchedule> attsch = new ArrayList<AttSchedule>();
// List<KqglAssoDkjl> dajllist_ = kqglassodkjlmapper.getDetailedRecordClock(startDate,endDate,userBean.getEmpNum());
// KqglAssoDkjl dkjl = KqglAssoDkjl.builder().build();
if(dajllist_.size() > 0) { if(dajllist_.size() > 0) {
for(int i=1;i<=dajllist_.size();i++){ for(int i=1;i<=dajllist_.size();i++){
KqglAssoDkjl dkjl = KqglAssoDkjl.builder().build(); 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"); BeanUtil.copyProperties(dajllist_.get(i-1), dkjl,"attdate","bcid","remarks","userId","attime","dkmxid","commentary","punchequipment","punchmode");
// }
AttSchedule ast = AttSchedule.builder().build(); AttSchedule ast = AttSchedule.builder().build();
ast.setId(0); ast.setId(0);
ast.setIsdk(1); ast.setIsdk(1);
...@@ -3151,8 +3329,6 @@ public class ClockInController { ...@@ -3151,8 +3329,6 @@ public class ClockInController {
attsch.add(ast); attsch.add(ast);
attdate.setAttsch(attsch); attdate.setAttsch(attsch);
} }
KqglAssoDkjl dkjj_ = KqglAssoDkjl.builder().build(); KqglAssoDkjl dkjj_ = KqglAssoDkjl.builder().build();
AttSchedule ast_ = AttSchedule.builder().build(); AttSchedule ast_ = AttSchedule.builder().build();
ast_.setId(0); ast_.setId(0);
...@@ -3161,8 +3337,6 @@ public class ClockInController { ...@@ -3161,8 +3337,6 @@ public class ClockInController {
ast_.setSort(dajllist_.size() + 1); ast_.setSort(dajllist_.size() + 1);
attsch.add(ast_); attsch.add(ast_);
attdate.setAttsch(attsch); attdate.setAttsch(attsch);
}else { }else {
KqglAssoDkjl dkjj = KqglAssoDkjl.builder().build(); KqglAssoDkjl dkjj = KqglAssoDkjl.builder().build();
AttSchedule ast = AttSchedule.builder().build(); AttSchedule ast = AttSchedule.builder().build();
...@@ -3175,6 +3349,62 @@ public class ClockInController { ...@@ -3175,6 +3349,62 @@ public class ClockInController {
} }
} }
List<TransactionApprovalDto> tranappr = new ArrayList<TransactionApprovalDto>();
//事务审批单
List<KqglAssoRelationSummary> trap = KqglAssoRelationSummary.builder().build().selectList(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, userBean.getEmpNum())
.eq(KqglAssoRelationSummary::getAppTime, str));
if(trap.size() > 0) {
for(KqglAssoRelationSummary spnsw : trap) {
if(spnsw.getApprovalType() != 5) {
TransactionApprovalDto taap = TransactionApprovalDto.builder().build();
if(spnsw.getApprovalType() == 1) {
taap.setCalendar_status_type(11);
}else if(spnsw.getApprovalType() == 2) {
KqglAssoLeaveRules rul = KqglAssoLeaveRules.builder().build().selectOne(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getId,spnsw.getLeaveTypeId()));
if(rul.getRulesType() != null) {
if(rul.getRulesType() == 1) {
taap.setCalendar_status_type(1);
}else if(rul.getRulesType() == 2) {
taap.setCalendar_status_type(2);
}else if(rul.getRulesType() == 3) {
taap.setCalendar_status_type(3);
}else if(rul.getRulesType() == 4) {
taap.setCalendar_status_type(4);
}else if(rul.getRulesType() == 5) {
taap.setCalendar_status_type(5);
}else if(rul.getRulesType() == 6) {
taap.setCalendar_status_type(6);
}else if(rul.getRulesType() == 7) {
taap.setCalendar_status_type(7);
}else if(rul.getRulesType() == 8) {
taap.setCalendar_status_type(8);
}else if(rul.getRulesType() == 9) {
taap.setCalendar_status_type(9);
}else if(rul.getRulesType() == 10) {
taap.setCalendar_status_type(10);
}
}else {
taap.setCalendar_status_type(-1);
taap.setCalendar_status_name(rul.getName());
}
}else if(spnsw.getApprovalType() == 3) {
taap.setCalendar_status_type(12);
}else if(spnsw.getApprovalType() == 4) {
taap.setCalendar_status_type(13);
}
taap.setApproval_form(spnsw.getApprovalId());
tranappr.add(taap);
attdate.setTranappr(tranappr);
}
}
}else {
attdate.setTranappr(tranappr);
}
//外勤 true:开 false:关 //外勤 true:开 false:关
if(attgro.getIsWq() == 1) { if(attgro.getIsWq() == 1) {
attdate.setFieldpersonnel(true); attdate.setFieldpersonnel(true);
...@@ -3202,32 +3432,38 @@ public class ClockInController { ...@@ -3202,32 +3432,38 @@ public class ClockInController {
if(abp.getType() == 1){ if(abp.getType() == 1){
AttendanceMachine kqjs = attendancemachinemapper.selectByPrimaryKey(abp.getDkfsid()); AttendanceMachine kqjs = attendancemachinemapper.selectByPrimaryKey(abp.getDkfsid());
AttClockMethod akm = AttClockMethod.builder().build(); AttClockMethod akm = AttClockMethod.builder().build();
if(kqjs != null) {
akm.setName(kqjs.getName());// 打卡名称 akm.setName(kqjs.getName());// 打卡名称
akm.setMac("");// wifi【wifi】 akm.setMac("");// wifi【wifi】
akm.setAttrange(0);// 范围【地址】 akm.setAttrange(0);// 范围【地址】
akm.setType(1);// 类型(1:考勤机;2:地址;3:WIFI) akm.setType(1);// 类型(1:考勤机;2:地址;3:WIFI)
akm.setLongitude(0);// 经度【地址】 akm.setLongitude(0);// 经度【地址】
akm.setLatitude(0);// 纬度【地址】 akm.setLatitude(0);// 纬度【地址】
}
akms.add(akm); akms.add(akm);
}else if(abp.getType() == 2){ }else if(abp.getType() == 2){
PunchCardAddress kqdzs = punchcardaddressmapper.selectByPrimaryKey(abp.getDkfsid()); PunchCardAddress kqdzs = punchcardaddressmapper.selectByPrimaryKey(abp.getDkfsid());
AttClockMethod akm = AttClockMethod.builder().build(); AttClockMethod akm = AttClockMethod.builder().build();
if(kqdzs != null) {
akm.setName(kqdzs.getName());// 打卡名称 akm.setName(kqdzs.getName());// 打卡名称
akm.setMac("");// wifi【wifi】 akm.setMac("");// wifi【wifi】
akm.setAttrange(kqdzs.getDkfw());// 范围【地址】 akm.setAttrange(kqdzs.getDkfw());// 范围【地址】
akm.setType(2);// 类型(1:考勤机;2:地址;3:WIFI) akm.setType(2);// 类型(1:考勤机;2:地址;3:WIFI)
akm.setLongitude(kqdzs.getLon());// 经度【地址】 akm.setLongitude(kqdzs.getLon());// 经度【地址】
akm.setLatitude(kqdzs.getLat());// 纬度【地址】 akm.setLatitude(kqdzs.getLat());// 纬度【地址】
}
akms.add(akm); akms.add(akm);
}else{ }else{
PunchCardWiFi kqwfs = punchcardwifimapper.selectByPrimaryKey(abp.getDkfsid()); PunchCardWiFi kqwfs = punchcardwifimapper.selectByPrimaryKey(abp.getDkfsid());
AttClockMethod akm = AttClockMethod.builder().build(); AttClockMethod akm = AttClockMethod.builder().build();
if(kqwfs != null) {
akm.setName(kqwfs.getName());// 打卡名称 akm.setName(kqwfs.getName());// 打卡名称
akm.setMac(kqwfs.getMac());// wifi【wifi】 akm.setMac(kqwfs.getMac());// wifi【wifi】
akm.setAttrange(0);// 范围【地址】 akm.setAttrange(0);// 范围【地址】
akm.setType(3);// 类型(1:考勤机;2:地址;3:WIFI) akm.setType(3);// 类型(1:考勤机;2:地址;3:WIFI)
akm.setLongitude(0);// 经度【地址】 akm.setLongitude(0);// 经度【地址】
akm.setLatitude(0);// 纬度【地址】 akm.setLatitude(0);// 纬度【地址】
}
akms.add(akm); akms.add(akm);
} }
} }
......
...@@ -890,14 +890,15 @@ public class TimeCardController { ...@@ -890,14 +890,15 @@ public class TimeCardController {
public Result<Object> PunchCardWIFI(@CurrentUser UserBean userBean,@RequestBody KqglAssoDkwx kqglassodkwx) { public Result<Object> PunchCardWIFI(@CurrentUser UserBean userBean,@RequestBody KqglAssoDkwx kqglassodkwx) {
List<KqglAssoDkwx> cxwifi = KqglAssoDkwx.builder().build().selectList(new QueryWrapper<KqglAssoDkwx>().lambda().eq(KqglAssoDkwx::getQyid, userBean.getOrgCode()).eq(KqglAssoDkwx::getMac, kqglassodkwx.getMac())); List<KqglAssoDkwx> cxwifi = KqglAssoDkwx.builder().build().selectList(new QueryWrapper<KqglAssoDkwx>().lambda().eq(KqglAssoDkwx::getQyid, userBean.getOrgCode()).eq(KqglAssoDkwx::getMac, kqglassodkwx.getMac()));
if(cxwifi.size() > 0) { if(cxwifi.size() > 0 && kqglassodkwx.getId() == null) {
return ResultUtil.error("此WiFi已存在"); return ResultUtil.error("此WiFi已存在");
}else { }
kqglassodkwx.setLuryid(userBean.getEmpNum()); kqglassodkwx.setLuryid(userBean.getEmpNum());
kqglassodkwx.setLusjTime(new Date().getTime()); kqglassodkwx.setLusjTime(new Date().getTime());
kqglassodkwx.setQyid(userBean.getOrgCode()); kqglassodkwx.setQyid(userBean.getOrgCode());
return kqglassodkwx.insertOrUpdate() ? ResultUtil.success("添加成功!") : ResultUtil.error("添加失败!"); return kqglassodkwx.insertOrUpdate() ? ResultUtil.success("添加成功!") : ResultUtil.error("添加失败!");
}
} }
/** /**
...@@ -1886,6 +1887,8 @@ public class TimeCardController { ...@@ -1886,6 +1887,8 @@ public class TimeCardController {
Long startDate = DateUtil.getStartTime(0,DateUtil.getStringTime(data,"yyyy-MM-dd")).getTime(); Long startDate = DateUtil.getStartTime(0,DateUtil.getStringTime(data,"yyyy-MM-dd")).getTime();
String attdate_ = new SimpleDateFormat("yy-MM-dd").format(Double.valueOf(startDate));//转换打卡时间格式 String attdate_ = new SimpleDateFormat("yy-MM-dd").format(Double.valueOf(startDate));//转换打卡时间格式
String punchattdate = new SimpleDateFormat("yyyy-MM-dd").format(Double.valueOf(startDate));//转换打卡时间格式
String minutes = chpunchr.getMinutes();//更改分钟数 String minutes = chpunchr.getMinutes();//更改分钟数
KqglAssoBcsz dkbc = kqglassobcszmapper.selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, chpunchr.getBcszid())); KqglAssoBcsz dkbc = kqglassobcszmapper.selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, chpunchr.getBcszid()));
...@@ -2024,6 +2027,39 @@ public class TimeCardController { ...@@ -2024,6 +2027,39 @@ public class TimeCardController {
dkmxid = pcd.getId(); dkmxid = pcd.getId();
} }
double gzsc = 0;
long rest_time = 0;
if(dkbc.getStartTime() != null && dkbc.getEndTime() != null) {
long kaishixiuxi = Long.valueOf(ClockInTool.dateToStamp(punchattdate + " " +dkbc.getStartTime()+":00"));
long jieshuxiuxi = Long.valueOf(ClockInTool.dateToStamp(punchattdate + " " +dkbc.getEndTime()+":00"));
rest_time = (jieshuxiuxi - kaishixiuxi)/1000/60;//休息时间
}
//请假时长
KqglAssoRelationSummary qjsc = kqglassorelationsummarymapper.Businessdayclockin(userBean.getEmpNum(), 2, punchattdate, userBean.getOrgCode());
//计算工作时长
KqglAssoDkmx dkgzsc = KqglAssoDkmx.builder().id(dkmxid).build().selectById();
if(dkgzsc.getYdkcs() == 2 || dkgzsc.getYdkcs() == 4 || dkgzsc.getYdkcs() == 6) {
if(dkgzsc.getSbdk1() != null && dkgzsc.getXbdk1() != null) {
gzsc = gzsc + (dkgzsc.getXbdk1() - dkgzsc.getSbdk1())/1000/60;
}
}
if(dkgzsc.getYdkcs() == 4 || dkgzsc.getYdkcs() == 6) {
if(dkgzsc.getSbdk2() != null && dkgzsc.getXbdk2() != null) {
gzsc = gzsc + (dkgzsc.getXbdk2() - dkgzsc.getSbdk2())/1000/60;
}
}
if(dkgzsc.getYdkcs() == 6) {
if(dkgzsc.getSbdk3() != null && dkgzsc.getXbdk3() != null) {
gzsc = gzsc + (dkgzsc.getXbdk3() - dkgzsc.getSbdk3())/1000/60;
}
}
gzsc = gzsc - rest_time - qjsc.getDuration();
KqglAssoDkmx.builder().id(dkmxid).gzsc(gzsc).build().updateById();
//打卡记录表 //打卡记录表
clock_time_ = Long.valueOf(ClockInTool.dateToStamp(clock_time)); clock_time_ = Long.valueOf(ClockInTool.dateToStamp(clock_time));
...@@ -3059,4 +3095,32 @@ public class TimeCardController { ...@@ -3059,4 +3095,32 @@ public class TimeCardController {
return ResultUtil.data(null,"操作成功!"); return ResultUtil.data(null,"操作成功!");
} }
/**
* 删除考勤机
*/
@DeleteMapping(value = "/attendance/{code}")
@ApiOperation(value = "删除考勤机", httpMethod = "DELETE", notes = "接口发布说明")
@ApiOperationSupport(order = 3)
public Result<Integer> DeleteAttendance(@PathVariable("code") String code) {
KqglAssoKqj kqj = KqglAssoKqj.builder().build().selectOne(new QueryWrapper<KqglAssoKqj>().lambda().eq(KqglAssoKqj::getCode, code));
int kqjid = kqj.getId();
if(KqglAssoKqj.builder().id(kqjid).build().deleteById()) {
KqglAssoYhsb.builder().build().delete(new QueryWrapper<KqglAssoYhsb>().lambda().eq(KqglAssoYhsb::getKqjid, kqjid));
KqglAssoKqjgly.builder().build().delete(new QueryWrapper<KqglAssoKqjgly>().lambda().eq(KqglAssoKqjgly::getKqjid, kqjid));
}
return ResultUtil.data(null,"操作成功!");
}
} }
...@@ -32,6 +32,7 @@ import cn.timer.api.controller.kqgl.ClockInTool; ...@@ -32,6 +32,7 @@ import cn.timer.api.controller.kqgl.ClockInTool;
import cn.timer.api.controller.kqgl.EmptyUtil; import cn.timer.api.controller.kqgl.EmptyUtil;
import cn.timer.api.dao.kqmk.KqglAssoLeaveBalanceMapper; import cn.timer.api.dao.kqmk.KqglAssoLeaveBalanceMapper;
import cn.timer.api.dao.kqmk.KqglAssoPbmxMapper; import cn.timer.api.dao.kqmk.KqglAssoPbmxMapper;
import cn.timer.api.dao.kqmk.KqglAssoRelationSummaryMapper;
import cn.timer.api.dao.kqmk.KqglMainKqzMapper; import cn.timer.api.dao.kqmk.KqglMainKqzMapper;
import cn.timer.api.dto.kqmk.AttEvectionApprovalDto; import cn.timer.api.dto.kqmk.AttEvectionApprovalDto;
import cn.timer.api.dto.kqmk.AttLateLate; import cn.timer.api.dto.kqmk.AttLateLate;
...@@ -289,6 +290,9 @@ public class KqglServiceImpl implements KqglService { ...@@ -289,6 +290,9 @@ public class KqglServiceImpl implements KqglService {
@Autowired @Autowired
private KqglMainKqzMapper kqglmainkqzmapper; private KqglMainKqzMapper kqglmainkqzmapper;
@Autowired
private KqglAssoRelationSummaryMapper kqglassorelationsummarymapper;
/** /**
* 考勤补卡审批 * 考勤补卡审批
*/ */
...@@ -755,6 +759,41 @@ public class KqglServiceImpl implements KqglService { ...@@ -755,6 +759,41 @@ public class KqglServiceImpl implements KqglService {
//attime 应打卡时间 //attime 应打卡时间
double gzsc = 0;
long rest_time = 0;
if(shif.getStartTime() != null && shif.getEndTime() != null) {
long kaishixiuxi = Long.valueOf(ClockInTool.dateToStamp(cardrepltime + " " +shif.getStartTime()+":00"));
long jieshuxiuxi = Long.valueOf(ClockInTool.dateToStamp(cardrepltime + " " +shif.getEndTime()+":00"));
rest_time = (jieshuxiuxi - kaishixiuxi)/1000/60;//休息时间
}
//请假时长
KqglAssoRelationSummary qjsc = kqglassorelationsummarymapper.Businessdayclockin(repaappr.getUserid(), 2, cardrepltime, repaappr.getOrgcode());
//计算工作时长
KqglAssoDkmx dkgzsc = KqglAssoDkmx.builder().id(dkmxid).build().selectById();
if(dkgzsc.getYdkcs() == 2 || dkgzsc.getYdkcs() == 4 || dkgzsc.getYdkcs() == 6) {
if(dkgzsc.getSbdk1() != null && dkgzsc.getXbdk1() != null) {
gzsc = gzsc + (dkgzsc.getXbdk1() - dkgzsc.getSbdk1())/1000/60;
}
}
if(dkgzsc.getYdkcs() == 4 || dkgzsc.getYdkcs() == 6) {
if(dkgzsc.getSbdk2() != null && dkgzsc.getXbdk2() != null) {
gzsc = gzsc + (dkgzsc.getXbdk2() - dkgzsc.getSbdk2())/1000/60;
}
}
if(dkgzsc.getYdkcs() == 6) {
if(dkgzsc.getSbdk3() != null && dkgzsc.getXbdk3() != null) {
gzsc = gzsc + (dkgzsc.getXbdk3() - dkgzsc.getSbdk3())/1000/60;
}
}
gzsc = gzsc - rest_time - qjsc.getDuration();
KqglAssoDkmx.builder().id(dkmxid).gzsc(gzsc).build().updateById();
KqglAssoDkjl pre = KqglAssoDkjl.builder().dktime(repaappr.getCardrepltime()).results(results).userId(repaappr.getUserid()).type(type).status(status).sort(atttype) KqglAssoDkjl pre = KqglAssoDkjl.builder().dktime(repaappr.getCardrepltime()).results(results).userId(repaappr.getUserid()).type(type).status(status).sort(atttype)
.cardType(0).qyid(repaappr.getOrgcode()).attdate(attdate_+" "+ClockInTool.dateToWeek2(cardrepltime)).attime(attime).dkmxid(dkmxid).bcid(shifid).remarks("审批补卡通过打卡").punchmode(0) .cardType(0).qyid(repaappr.getOrgcode()).attdate(attdate_+" "+ClockInTool.dateToWeek2(cardrepltime)).attime(attime).dkmxid(dkmxid).bcid(shifid).remarks("审批补卡通过打卡").punchmode(0)
.punchequipment("").commentary("成功打卡").build(); .punchequipment("").commentary("成功打卡").build();
......
...@@ -25,4 +25,7 @@ public interface KqglAssoRelationSummaryMapper extends BaseMapper<KqglAssoRelati ...@@ -25,4 +25,7 @@ public interface KqglAssoRelationSummaryMapper extends BaseMapper<KqglAssoRelati
KqglAssoRelationSummary selectTabledata(int userid,int approvaltype,String apptime); KqglAssoRelationSummary selectTabledata(int userid,int approvaltype,String apptime);
KqglAssoRelationSummary leaveinvesti(int userid,int approvaltype,String apptime,int orgcode); KqglAssoRelationSummary leaveinvesti(int userid,int approvaltype,String apptime,int orgcode);
KqglAssoRelationSummary Businessdayclockin(int userid,int approvaltype,String apptime,int orgcode);
} }
...@@ -28,6 +28,8 @@ public class AttSchedule implements Serializable{ ...@@ -28,6 +28,8 @@ public class AttSchedule implements Serializable{
private Integer calendar_status_type;//0:无;1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假;11:加班;12:出差;13:外出 private Integer calendar_status_type;//0:无;1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假;11:加班;12:出差;13:外出
private Integer calendar_status_name;
private int isleave;//是否请假 private int isleave;//是否请假
private int isupdate;//是否跟新打卡 private int isupdate;//是否跟新打卡
private int isdk;//0:当前打卡 1:已过打卡 private int isdk;//0:当前打卡 1:已过打卡
......
...@@ -44,4 +44,6 @@ public class AttendanceCardListDto implements Serializable { ...@@ -44,4 +44,6 @@ public class AttendanceCardListDto implements Serializable {
// private List<SystemShift> ssfh;// 无排班时获取的系统班次 // private List<SystemShift> ssfh;// 无排班时获取的系统班次
private Integer attgrouptype;// 1:固定排班;2:自由排班;3:自由工时 private Integer attgrouptype;// 1:固定排班;2:自由排班;3:自由工时
private List<TransactionApprovalDto> tranappr;//事务审批单
} }
package cn.timer.api.dto.kqmk;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Yl123
* 事务审批单
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TransactionApprovalDto {
private Integer calendar_status_type;//0:无;1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假;11:加班;12:出差;13:外出
private Integer approval_form;//审批单
private String calendar_status_name;
}
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
and res.org_code = #{orgcode} and res.org_code = #{orgcode}
and res.approval_type = #{approvaltype} and res.approval_type = #{approvaltype}
and res.app_time = #{apptime} and res.app_time = #{apptime}
GROUP BY res.start_time,res.end_time; GROUP BY res.start_time,res.end_time DESC LIMIT 1
</select> </select>
<select id="selectTabledata" resultMap="BaseResultMap"> <select id="selectTabledata" resultMap="BaseResultMap">
...@@ -86,6 +86,15 @@ ...@@ -86,6 +86,15 @@
and res.approval_type = #{approvaltype} and res.approval_type = #{approvaltype}
and SUBSTR(res.app_time,1,7) = #{apptime} and SUBSTR(res.app_time,1,7) = #{apptime}
</select> </select>
<select id="Businessdayclockin" resultMap="BaseResultMap">
select IFNULL(SUM(res.duration),0) as duration
from kqgl_asso_relation_summary res
where res.user_id = #{userid}
and res.approval_type = #{approvaltype}
and res.app_time = #{apptime}
and res.org_code = #{orgcode}
</select>
<!-- <!--
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.kqmk.KqglAssoRelationSummary"> <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.kqmk.KqglAssoRelationSummary">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment