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 7041ea3..630e3d2 100644
--- a/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java
+++ b/src/main/java/cn/timer/api/controller/kqgl/ClockInController.java
@@ -2303,7 +2303,6 @@ public class ClockInController {
 	 public Result<Object> getAttClockData(@CurrentUser UserBean userBean,@RequestBody AttConditions attconditions) throws ParseException {
 		 
 		 long nowdate = new Date().getTime();
-//		 String current = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
 		 
 		 String str = null;
 		 if(!("").equals(attconditions.getDate())){
@@ -2324,14 +2323,11 @@ public class ClockInController {
 		 
 	     String stampToDate = ClockInTool.stampToDate(String.valueOf(endDate));//当天打卡的最后时间
 		 Timestamp d = Timestamp.valueOf(stampToDate);
-	     
 		 
 		 Timestamp b = Timestamp.valueOf(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));//当前时间
 		 
 		 String now = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
 		 
-		 String nowtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
-		 
 		 KqglMainKqz attgro = kqglmainkqzmapper.getAttendanceGroupInformationByUserid(userBean.getEmpNum(),userBean.getOrgCode()); //考勤组信息
 		 
 		 if(attgro != null) {
@@ -2351,96 +2347,158 @@ public class ClockInController {
 			 
 			 if(attdate.getAttgrouptype() != 3) {
 				 List<AttSchedule> attsch = attdate.getAttsch();
+				 
 				 if(EmptyUtil.isNotEmpty(attdate.getAttsch()) && attsch.get(0).getId() != 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()));
+					 if(jianchashif.getIsSbdk1Cr() == 1) { sb1 = 1; }
+					 if(jianchashif.getIsXbdk1Cr() == 1) { xb1 = 1; }
+					 if(jianchashif.getIsSbdk2Cr() == 1) { sb2 = 1; }
+					 if(jianchashif.getIsXbdk2Cr() == 1) { xb2 = 1; }
+					 if(jianchashif.getIsSbdk3Cr() == 1) { sb3 = 1; }
+					 if(jianchashif.getIsXbdk3Cr() == 1) { xb3 = 1; }
+					 //
+					 if(sb1 == 1 ||xb1 == 1 || sb2 == 1 ||xb2 == 1 || sb3 == 1 ||xb3 == 1) {
+						 //前一天的班次
+						 AttendanceCardListDto beforeattdate = MethodCall(userBean.getOrgCode(),userBean.getEmpNum(),yesterday);
+						 //前一天的打卡数据
+						 List<KqglAssoDkjl> dajllistbefo = kqglassodkjlmapper.getDetailedRecordClock(startDateyesterday,endDateyesterday,userBean.getEmpNum());
+						 
+						 List<AttSchedule> beforeattsch = beforeattdate.getAttsch();
+						 
+						 int p = 0;
+						 for(AttSchedule befo : beforeattsch) {
+							 if(befo.getNextday() == 1) {
+								 AttSchedule attschbefo = AttSchedule.builder().build();
+								 BeanUtil.copyProperties(befo, attschbefo,"nextdaycard","dajl");
+								 attschbefo.setNextday(2);//昨日
+								 KqglAssoDkjl dkjlbefo = KqglAssoDkjl.builder().build();
+								 for(KqglAssoDkjl ka : dajllistbefo) {
+									 if(befo.getId() == ka.getBcid() && befo.getSort() == ka.getSort()) {//班次id和打卡顺序对应
+										 BeanUtil.copyProperties(ka, dkjlbefo,"attdate","remarks","userId","attime","dkmxid","commentary","punchequipment","punchmode");
+									 }
+								 }
+								 attschbefo.setDajl(dkjlbefo);
+								 attsch.add(p,attschbefo);
+								 p++;
+							 }
+						 }
+					 }
+					 /******次日结束*****/
+					 
 					 int bccs = attdate.getAttsch().size();
 					 int r = 1,bc = 0;
 					 int bsz = 0;
 					 for(AttSchedule ash : attsch) {
-						 if(attdate.getAttsch().size() == 2) {
-							 //有范围
-							 if(ash.getStarttime() != 0 && ash.getEndtime() != 0) {
-								 boolean ectivedate = ClockInTool.hourMinuteBetween(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(nowdate), new SimpleDateFormat("yyyy-MM-dd HH:mm").format(ash.getStarttime()), new SimpleDateFormat("yyyy-MM-dd HH:mm").format(ash.getEndtime()),"yyyy-MM-dd HH:mm");
-								 
-								 String timme = ClockInTool.stampToDate2(String.valueOf(ash.getTime()));
-								 
-								 if(r == 1) {
-									 if(ectivedate) {
-										 bsz = 1;
-										 ash.setIsdk(0);
-									 }else {
-										 bc++;
-										 ash.setIsdk(1);
-										 
-										 
-										 if(!now.equals(timme)) {//小于
-											 ash.setIsupdate(0);
+						 if(ash.getNextdaycard() == 0) {
+							 if(attdate.getAttsch().size() == 2) {
+								 //有范围
+								 if(ash.getStarttime() != 0 && ash.getEndtime() != 0) {
+									 boolean ectivedate = ClockInTool.hourMinuteBetween(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(nowdate), new SimpleDateFormat("yyyy-MM-dd HH:mm").format(ash.getStarttime()), new SimpleDateFormat("yyyy-MM-dd HH:mm").format(ash.getEndtime()),"yyyy-MM-dd HH:mm");
+									 
+									 String timme = ClockInTool.stampToDate2(String.valueOf(ash.getTime()));
+									 
+									 if(r == 1) {
+										 if(ectivedate) {
+											 bsz = 1;
+											 ash.setIsdk(0);
 										 }else {
+											 bc++;
+											 ash.setIsdk(1);
 											 
-											 ash.setIsupdate(1);
+											 
+											 if(!now.equals(timme)) {//小于
+												 ash.setIsupdate(0);
+											 }else {
+												 
+												 ash.setIsupdate(1);
+											 }
 										 }
 									 }
-								 }
-								 
-								 if(r == 2) {
-									 if(ectivedate) {
-										 bsz = 1;
-										 ash.setIsdk(0);
-									 }else {
-										 bc++;
-										 ash.setIsdk(1);
-										 
-										 if(!now.equals(timme)) {//小于
-											 ash.setIsupdate(0);
+									 
+									 if(r == 2) {
+										 if(ectivedate) {
+											 bsz = 1;
+											 ash.setIsdk(0);
 										 }else {
-											 if(isxbdk == 2) {
-												 ash.setIsupdate(1);
-											 }
+											 bc++;
+											 ash.setIsdk(1);
 											 
+											 if(!now.equals(timme)) {//小于
+												 ash.setIsupdate(0);
+											 }else {
+												 if(isxbdk == 2) {
+													 ash.setIsupdate(1);
+												 }
+												 
+											 }
+										 }
+									 }
+									 r++;
+									 
+									 //是否请假
+							        KqglAssoRelationSummary leainv = kqglassorelationsummarymapper.leaveinvesti(userBean.getEmpNum(), 2, str,userBean.getOrgCode());
+									boolean adopt = false;
+									if(leainv != null) {
+										String time = ClockInTool.stampToDate4(String.valueOf(ash.getTime()));//当天打卡的最后时间
+										adopt = ClockInTool.hourMinuteBetween(time, leainv.getStartTime().substring(0, 16), leainv.getEndTime().substring(0, 16),"yyyy-MM-dd HH:mm");
+									}
+									if(adopt) {
+										ash.setIsleave(1);
+									}
+								 }else {
+									 KqglAssoBcsz shif = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, ash.getId()));
+									 String xbdk1 = (str+" "+shif.getXbdk1()+":00").replaceAll("\r|\n", "");
+									 Timestamp a = Timestamp.valueOf(xbdk1);
+									 String sbdk1 = (str+" "+shif.getSbdk1()+":00").replaceAll("\r|\n", "");
+							         Timestamp c = Timestamp.valueOf(sbdk1);
+									 
+									 if(r == 1) {
+								         if (b.after(a) && b.after(c)) {//  当前时间大于下班打卡时间
+								        	 bc++;
+								        	 ash.setIsdk(1);
+								        	 if(b.before(d)) {
+								        		 ash.setIsupdate(1);
+								        	 }
+								         }else {
+								        	 bsz = 1;
+								         }
+									 }
+									 if(r == 2) {
+										 if(b.after(a) && b.after(c) && b.before(d)) {
+											 bsz = 1;
+											 ash.setIsdk(0);
+										 }else {
+											 bc++;
+											 ash.setIsdk(1);
 										 }
 									 }
+									 r++;
+									 
+									 //是否请假
+							        KqglAssoRelationSummary leainv = kqglassorelationsummarymapper.leaveinvesti(userBean.getEmpNum(), 2, str,userBean.getOrgCode());
+									boolean adopt = false;
+									if(leainv != null) {
+										String time = ClockInTool.stampToDate4(String.valueOf(ash.getTime()));//当天打卡的最后时间
+										adopt = ClockInTool.hourMinuteBetween(time, leainv.getStartTime().substring(0, 16), leainv.getEndTime().substring(0, 16),"yyyy-MM-dd HH:mm");
+									}
+									if(adopt) {
+										ash.setIsleave(1);
+									}
 								 }
-								 r++;
-								 
-								 //是否请假
-						        KqglAssoRelationSummary leainv = kqglassorelationsummarymapper.leaveinvesti(userBean.getEmpNum(), 2, str,userBean.getOrgCode());
-								boolean adopt = false;
-								if(leainv != null) {
-									String time = ClockInTool.stampToDate4(String.valueOf(ash.getTime()));//当天打卡的最后时间
-									adopt = ClockInTool.hourMinuteBetween(time, leainv.getStartTime().substring(0, 16), leainv.getEndTime().substring(0, 16),"yyyy-MM-dd HH:mm");
-								}
-								if(adopt) {
-									ash.setIsleave(1);
-								}
 							 }else {
-								 KqglAssoBcsz shif = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, ash.getId()));
-								 String xbdk1 = (str+" "+shif.getXbdk1()+":00").replaceAll("\r|\n", "");
-								 Timestamp a = Timestamp.valueOf(xbdk1);
-								 String sbdk1 = (str+" "+shif.getSbdk1()+":00").replaceAll("\r|\n", "");
-						         Timestamp c = Timestamp.valueOf(sbdk1);
-								 
-								 if(r == 1) {
-							         if (b.after(a) && b.after(c)) {//  当前时间大于下班打卡时间
-							        	 bc++;
-							        	 ash.setIsdk(1);
-							        	 if(b.before(d)) {
-							        		 ash.setIsupdate(1);
-							        	 }
-							         }else {
-							        	 bsz = 1;
-							         }
-								 }
-								 if(r == 2) {
-									 if(b.after(a) && b.after(c) && b.before(d)) {
-										 bsz = 1;
-										 ash.setIsdk(0);
-									 }else {
-										 bc++;
-										 ash.setIsdk(1);
-									 }
+								 boolean ectivedate = ClockInTool.hourMinuteBetween(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(nowdate), new SimpleDateFormat("yyyy-MM-dd HH:mm").format(ash.getStarttime()), new SimpleDateFormat("yyyy-MM-dd HH:mm").format(ash.getEndtime()),"yyyy-MM-dd HH:mm");
+								 if(ectivedate) {
+									 bsz = 1;
+									 ash.setIsdk(0);
+								 }else {
+									 bc++;
+									 ash.setIsdk(1);
 								 }
-								 r++;
 								 
-								 //是否请假
+								//是否请假
 						        KqglAssoRelationSummary leainv = kqglassorelationsummarymapper.leaveinvesti(userBean.getEmpNum(), 2, str,userBean.getOrgCode());
 								boolean adopt = false;
 								if(leainv != null) {
@@ -2451,173 +2509,153 @@ public class ClockInController {
 									ash.setIsleave(1);
 								}
 							 }
-						 }else {
-							 boolean ectivedate = ClockInTool.hourMinuteBetween(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(nowdate), new SimpleDateFormat("yyyy-MM-dd HH:mm").format(ash.getStarttime()), new SimpleDateFormat("yyyy-MM-dd HH:mm").format(ash.getEndtime()),"yyyy-MM-dd HH:mm");
-							 if(ectivedate) {
-								 bsz = 1;
-								 ash.setIsdk(0);
-							 }else {
-								 bc++;
-								 ash.setIsdk(1);
-							 }
 							 
-							//是否请假
-					        KqglAssoRelationSummary leainv = kqglassorelationsummarymapper.leaveinvesti(userBean.getEmpNum(), 2, str,userBean.getOrgCode());
-							boolean adopt = false;
-							if(leainv != null) {
-								String time = ClockInTool.stampToDate4(String.valueOf(ash.getTime()));//当天打卡的最后时间
-								adopt = ClockInTool.hourMinuteBetween(time, leainv.getStartTime().substring(0, 16), leainv.getEndTime().substring(0, 16),"yyyy-MM-dd HH:mm");
-							}
-							if(adopt) {
-								ash.setIsleave(1);
-							}
-						 }
-						 
-						 ////
-//						 List<KqglAssoDkjl> dajllist_ = kqglassodkjlmapper.getDetailedRecordClock(startDate,endDate,userBean.getEmpNum());
-//						 dkcs = dajllist_.size();
-						 KqglAssoDkjl dkjl = KqglAssoDkjl.builder().build();
-						 for(KqglAssoDkjl daj : dajllist_) {
-							 if(ash.getId() == daj.getBcid() && ash.getSort() == daj.getSort()) {//班次id和打卡顺序对应
-								 BeanUtil.copyProperties(daj, dkjl,"attdate","remarks","userId","attime","dkmxid","commentary","punchequipment","punchmode");
-								 int bcid = dkjl.getBcid();
-								 int results = dkjl.getResults();
-								 KqglAssoBcsz bcsz = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, bcid));
-								 if(bcsz != null) {
-									 int yxcdfzs = bcsz.getYxcdfzs();//允许迟到分钟数
-									 int yzcdfzs = bcsz.getYzcdfzs();//严重迟到分钟数
-									 int kgcdfzs = bcsz.getKgcdfzs();//旷工迟到分钟数
-									 //允许迟到范围
-									 if(results < yxcdfzs) {
-										 dkjl.setResults(0);
-										 if(dkjl.getStatus() == 3) {//原本是迟到的  但是在“允许迟到”范围内  则更改为正常
-											 dkjl.setStatus(1);
+							 ////
+	//						 List<KqglAssoDkjl> dajllist_ = kqglassodkjlmapper.getDetailedRecordClock(startDate,endDate,userBean.getEmpNum());
+	//						 dkcs = dajllist_.size();
+							 KqglAssoDkjl dkjl = KqglAssoDkjl.builder().build();
+							 for(KqglAssoDkjl daj : dajllist_) {
+								 if(ash.getId() == daj.getBcid() && ash.getSort() == daj.getSort()) {//班次id和打卡顺序对应
+									 BeanUtil.copyProperties(daj, dkjl,"attdate","remarks","userId","attime","dkmxid","commentary","punchequipment","punchmode");
+									 int bcid = dkjl.getBcid();
+									 int results = dkjl.getResults();
+									 KqglAssoBcsz bcsz = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, bcid));
+									 if(bcsz != null) {
+										 int yxcdfzs = bcsz.getYxcdfzs();//允许迟到分钟数
+										 int yzcdfzs = bcsz.getYzcdfzs();//严重迟到分钟数
+										 int kgcdfzs = bcsz.getKgcdfzs();//旷工迟到分钟数
+										 //允许迟到范围
+										 if(results < yxcdfzs) {
+											 dkjl.setResults(0);
+											 if(dkjl.getStatus() == 3) {//原本是迟到的  但是在“允许迟到”范围内  则更改为正常
+												 dkjl.setStatus(1);
+											 }
+										 }
+										 //严重迟到范围
+										 if(results>yzcdfzs && results < kgcdfzs && yzcdfzs>0) {
+											 dkjl.setStatus(15);//严重迟到
+										 }
+										 //旷工迟到
+										 if(results>kgcdfzs && kgcdfzs>0) {
+											 dkjl.setStatus(16);//旷工迟到
 										 }
 									 }
-									 //严重迟到范围
-									 if(results>yzcdfzs && results < kgcdfzs && yzcdfzs>0) {
-										 dkjl.setStatus(15);//严重迟到
-									 }
-									 //旷工迟到
-									 if(results>kgcdfzs && kgcdfzs>0) {
-										 dkjl.setStatus(16);//旷工迟到
+									 
+									 if(bsz == 1) {
+										 bc++;
+										 ash.setIsdk(1);
+									 }else {
+										 ash.setIsdk(1);
 									 }
 								 }
+							 }
+							 
+							 KqglAssoBcsz shif = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, ash.getId()));
+							 Timestamp tt = Timestamp.valueOf(ClockInTool.stampToDate(String.valueOf(ash.getTime())));
+							 //处理下班不用打卡的数据
+							 if(shif.getIsXbdk() == 1 && (ash.getSort())%2 == 0) { 
 								 
-								 if(bsz == 1) {
-									 bc++;
-									 ash.setIsdk(1);
-								 }else {
-									 ash.setIsdk(1);
+								 if(dkjl.getDktime() == null && b.after(tt)) {
+									 dkjl.setDktime(ash.getTime());
+									 dkjl.setStatus(1);
+									 dkjl.setSort(ash.getSort());
+									 dkjl.setId(999);
+								 }else if(dkjl.getDktime() != null){
+									 dkjl.setStatus(1);
 								 }
 							 }
-						 }
-						 
-						 KqglAssoBcsz shif = KqglAssoBcsz.builder().build().selectOne(new QueryWrapper<KqglAssoBcsz>().lambda().eq(KqglAssoBcsz::getId, ash.getId()));
-						 Timestamp tt = Timestamp.valueOf(ClockInTool.stampToDate(String.valueOf(ash.getTime())));
-						 //处理下班不用打卡的数据
-						 if(shif.getIsXbdk() == 1 && (ash.getSort())%2 == 0) { 
+							 //处理当天完全没打卡的数据
+							 if(ash.getIsdk() == 1 && b.after(tt) && dkcs == 0) {
+								 dkjl.setDktime(null);
+								 dkjl.setStatus(17);//缺卡
+								 dkjl.setSort(ash.getSort());
+								 dkjl.setId(888);
+								 //更新打卡关闭
+								 ash.setIsupdate(0);
+							 }
 							 
-							 if(dkjl.getDktime() == null && b.after(tt)) {
-								 dkjl.setDktime(ash.getTime());
-								 dkjl.setStatus(1);
+							 //
+							 if(ash.getIsdk() == 1 && b.after(tt) && dkjl.getDktime() == null && dkjl.getId() == null && dkcs > 0) {
+								 dkjl.setStatus(17);//缺卡
 								 dkjl.setSort(ash.getSort());
-								 dkjl.setId(999);
-							 }else if(dkjl.getDktime() != null){
-								 dkjl.setStatus(1);
+								 dkjl.setId(888);
+								 //更新打卡关闭
+								 ash.setIsupdate(0);
 							 }
-						 }
-						 //处理当天完全没打卡的数据
-						 if(ash.getIsdk() == 1 && b.after(tt) && dkcs == 0) {
-							 dkjl.setDktime(null);
-							 dkjl.setStatus(17);//缺卡
-							 dkjl.setSort(ash.getSort());
-							 dkjl.setId(888);
-							 //更新打卡关闭
-							 ash.setIsupdate(0);
-						 }
-						 
-						 //
-						 if(ash.getIsdk() == 1 && b.after(tt) && dkjl.getDktime() == null && dkjl.getId() == null && dkcs > 0) {
-							 dkjl.setStatus(17);//缺卡
-							 dkjl.setSort(ash.getSort());
-							 dkjl.setId(888);
-							 //更新打卡关闭
-							 ash.setIsupdate(0);
-						 }
-						 
-						 /****/
-							//事务(请假,加班,调休,出差)
-	 		    			KqglAssoRelationSummary asssum1 = KqglAssoRelationSummary.builder().build().selectOne(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, userBean.getEmpNum())
-			    						.eq(KqglAssoRelationSummary::getAppTime, str).last("LIMIT 1"));
-			    				if(asssum1 != null) {
-			    					
-			    					//0:无;1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假;11:加班;12:出差;13:外出
-			    					if(asssum1.getApprovalType() == 1) {
-			    						dkjl.setCalendar_status_type(11);
-			    						
-			    						ash.setCalendar_status_type(11);
-			    					}else if(asssum1.getApprovalType() == 2) {
-			    						//请假
-			    						KqglAssoLeaveRules rul = KqglAssoLeaveRules.builder().build().selectOne(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getId,asssum1.getLeaveTypeId()));
-			    						if(rul.getRulesType() == 1) {
-			    							dkjl.setCalendar_status_type(1);
-			    							
-			    							ash.setCalendar_status_type(1);
-			    						}else if(rul.getRulesType() == 2) {
-			    							dkjl.setCalendar_status_type(2);
-			    							
-			    							ash.setCalendar_status_type(2);
-			    						}else if(rul.getRulesType() == 3) {
-			    							dkjl.setCalendar_status_type(3);
-			    							
-			    							ash.setCalendar_status_type(3);
-			    						}else if(rul.getRulesType() == 4) {
-			    							dkjl.setCalendar_status_type(4);
-			    							
-			    							ash.setCalendar_status_type(4);
-			    						}else if(rul.getRulesType() == 5) {
-			    							dkjl.setCalendar_status_type(5);
-			    							
-			    							ash.setCalendar_status_type(5);
-			    						}else if(rul.getRulesType() == 6) {
-			    							dkjl.setCalendar_status_type(6);
-			    							
-			    							ash.setCalendar_status_type(6);
-			    						}else if(rul.getRulesType() == 7) {
-			    							dkjl.setCalendar_status_type(7);
-			    							
-			    							ash.setCalendar_status_type(7);
-			    						}else if(rul.getRulesType() == 8) {
-			    							dkjl.setCalendar_status_type(8);
-			    							
-			    							ash.setCalendar_status_type(8);
-			    						}else if(rul.getRulesType() == 9) {
-			    							dkjl.setCalendar_status_type(9);
-			    							
-			    							ash.setCalendar_status_type(9);
-			    						}else if(rul.getRulesType() == 10) {
-			    							dkjl.setCalendar_status_type(10);
-			    							
-			    							ash.setCalendar_status_type(10);
-			    						}
-			    					}else if(asssum1.getApprovalType() == 3) {
-			    						dkjl.setCalendar_status_type(12);
-			    						
-			    						ash.setCalendar_status_type(12);
-			    					}else if(asssum1.getApprovalType() == 4) {
-			    						dkjl.setCalendar_status_type(13);
-			    						
-			    						ash.setCalendar_status_type(13);
-			    					}
-			    				}else {
-			    					dkjl.setCalendar_status_type(0);
-			    					
-			    					ash.setCalendar_status_type(0);
-			    				}
+							 
 							 /****/
-						 
-						 ash.setDajl(dkjl);//班次信息中插入打卡打卡 数据
+								//事务(请假,加班,调休,出差)
+		 		    			KqglAssoRelationSummary asssum1 = KqglAssoRelationSummary.builder().build().selectOne(new QueryWrapper<KqglAssoRelationSummary>().lambda().eq(KqglAssoRelationSummary::getUserId, userBean.getEmpNum())
+				    						.eq(KqglAssoRelationSummary::getAppTime, str).last("LIMIT 1"));
+				    				if(asssum1 != null) {
+				    					
+				    					//0:无;1:事假;2:调休;3:病假;4:年假;5:产假;6:陪产假;7:婚假;8:例假;9:丧假;10:哺乳假;11:加班;12:出差;13:外出
+				    					if(asssum1.getApprovalType() == 1) {
+				    						dkjl.setCalendar_status_type(11);
+				    						
+				    						ash.setCalendar_status_type(11);
+				    					}else if(asssum1.getApprovalType() == 2) {
+				    						//请假
+				    						KqglAssoLeaveRules rul = KqglAssoLeaveRules.builder().build().selectOne(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getId,asssum1.getLeaveTypeId()));
+				    						if(rul.getRulesType() == 1) {
+				    							dkjl.setCalendar_status_type(1);
+				    							
+				    							ash.setCalendar_status_type(1);
+				    						}else if(rul.getRulesType() == 2) {
+				    							dkjl.setCalendar_status_type(2);
+				    							
+				    							ash.setCalendar_status_type(2);
+				    						}else if(rul.getRulesType() == 3) {
+				    							dkjl.setCalendar_status_type(3);
+				    							
+				    							ash.setCalendar_status_type(3);
+				    						}else if(rul.getRulesType() == 4) {
+				    							dkjl.setCalendar_status_type(4);
+				    							
+				    							ash.setCalendar_status_type(4);
+				    						}else if(rul.getRulesType() == 5) {
+				    							dkjl.setCalendar_status_type(5);
+				    							
+				    							ash.setCalendar_status_type(5);
+				    						}else if(rul.getRulesType() == 6) {
+				    							dkjl.setCalendar_status_type(6);
+				    							
+				    							ash.setCalendar_status_type(6);
+				    						}else if(rul.getRulesType() == 7) {
+				    							dkjl.setCalendar_status_type(7);
+				    							
+				    							ash.setCalendar_status_type(7);
+				    						}else if(rul.getRulesType() == 8) {
+				    							dkjl.setCalendar_status_type(8);
+				    							
+				    							ash.setCalendar_status_type(8);
+				    						}else if(rul.getRulesType() == 9) {
+				    							dkjl.setCalendar_status_type(9);
+				    							
+				    							ash.setCalendar_status_type(9);
+				    						}else if(rul.getRulesType() == 10) {
+				    							dkjl.setCalendar_status_type(10);
+				    							
+				    							ash.setCalendar_status_type(10);
+				    						}
+				    					}else if(asssum1.getApprovalType() == 3) {
+				    						dkjl.setCalendar_status_type(12);
+				    						
+				    						ash.setCalendar_status_type(12);
+				    					}else if(asssum1.getApprovalType() == 4) {
+				    						dkjl.setCalendar_status_type(13);
+				    						
+				    						ash.setCalendar_status_type(13);
+				    					}
+				    				}else {
+				    					dkjl.setCalendar_status_type(0);
+				    					
+				    					ash.setCalendar_status_type(0);
+				    				}
+								 /****/
+							 
+							 ash.setDajl(dkjl);//班次信息中插入打卡打卡 数据
+						 }
 					 }
 					 
 					 
diff --git a/src/main/java/cn/timer/api/controller/spmk/service/SpmkServiceImpl.java b/src/main/java/cn/timer/api/controller/spmk/service/SpmkServiceImpl.java
index c5ad445..be6a9bc 100644
--- a/src/main/java/cn/timer/api/controller/spmk/service/SpmkServiceImpl.java
+++ b/src/main/java/cn/timer/api/controller/spmk/service/SpmkServiceImpl.java
@@ -113,6 +113,7 @@ public class SpmkServiceImpl implements SpmkService{
 		if(sum != null) {
 			adD.setEmpNum(sum.getEmpNum());
 			adD.setSts(sum.getSts());
+			adD.setLaunchTime(sum.getCreateTime());
 			SpmkExecutor exe= null;
 			
 			SpmkApproveExecuteRecord exere = SpmkApproveExecuteRecord.builder().build()
diff --git a/src/main/java/cn/timer/api/dto/kqmk/AttSchedule.java b/src/main/java/cn/timer/api/dto/kqmk/AttSchedule.java
index 4ae3418..f7e8527 100644
--- a/src/main/java/cn/timer/api/dto/kqmk/AttSchedule.java
+++ b/src/main/java/cn/timer/api/dto/kqmk/AttSchedule.java
@@ -21,7 +21,7 @@ public class AttSchedule implements Serializable{
 	
 	private Integer id;
 	private Integer sort;// 1:上班;2:下班; 3:上班;4:下班;5:上班;6:下班
-	private Integer nextday;//0:否;1:是
+	private Integer nextday;//0:否;1:是   (0:今日;1:次日;2:昨日)
 	private Long time;
 	private Long starttime;
 	private Long endtime;
@@ -32,4 +32,6 @@ public class AttSchedule implements Serializable{
 	private int isupdate;//是否跟新打卡
 	private int isdk;//0:当前打卡  1:已过打卡
 	private KqglAssoDkjl dajl;
+	
+	private int nextdaycard;
 }
diff --git a/src/main/java/cn/timer/api/dto/kqmk/ClockCollectData.java b/src/main/java/cn/timer/api/dto/kqmk/ClockCollectData.java
index 5dfa97c..3b6fa9c 100644
--- a/src/main/java/cn/timer/api/dto/kqmk/ClockCollectData.java
+++ b/src/main/java/cn/timer/api/dto/kqmk/ClockCollectData.java
@@ -60,4 +60,7 @@ public class ClockCollectData implements Serializable {
 
 	@ApiModelProperty(value = "打卡类型", example = "1:打卡 2:更新打卡")
 	private Integer differ;
+	
+	@ApiModelProperty(value = "打卡", example = "0:当天卡 1:次日卡")
+	private Integer nextday;
 }
diff --git a/src/main/java/cn/timer/api/dto/spmk/SpmkApproveDetailDto.java b/src/main/java/cn/timer/api/dto/spmk/SpmkApproveDetailDto.java
index fe5cc28..de20685 100644
--- a/src/main/java/cn/timer/api/dto/spmk/SpmkApproveDetailDto.java
+++ b/src/main/java/cn/timer/api/dto/spmk/SpmkApproveDetailDto.java
@@ -1,5 +1,6 @@
 package cn.timer.api.dto.spmk;
 
+import java.util.Date;
 import java.util.List;
 
 import cn.hutool.json.JSONObject;
@@ -54,5 +55,7 @@ public class SpmkApproveDetailDto {
 	private Integer exeid;
 	
 	private Integer exereid;
+	
+	private Date launchTime; //审批发起时间
 
 }