diff --git a/src/main/java/com/supwisdom/dlpay/atte/controller/CustAtteController.java b/src/main/java/com/supwisdom/dlpay/atte/controller/CustAtteController.java
index dc00097..764af1f 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/controller/CustAtteController.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/controller/CustAtteController.java
@@ -647,7 +647,13 @@
             }
         }
         atteClassService.addBatchDtl(startdate,enddate,deptcode);
-        atteClassService.handleDtl(deptcode,startdate);
+        Integer start=Integer.parseInt(startdate);
+        Integer end=Integer.parseInt(enddate);
+        while (start<=end){
+            atteClassService.handleDtl(deptcode,startdate);
+            startdate= DateUtil.getNewDay(startdate,1);
+            start=Integer.parseInt(startdate);
+        }
         return map;
     }
 
diff --git a/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteClassServiceImpl.java b/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteClassServiceImpl.java
index 188c668..c524bd1 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteClassServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/service/impl/AtteClassServiceImpl.java
@@ -351,7 +351,16 @@
                        }else if((i==1 || i==3)&&details.size()==4){
                            nextid=details.get(i-1).getTimeid();
                        }
-                       int state=getState(detail.getTimeid(),dtl.getAttetime(),nextid);
+
+                       int state= 0;
+                       try {
+                           state = getState(detail.getTimeid(),dtl.getAttetime(),nextid);
+                       } catch (Exception e) {
+                           System.out.println(detail.getTimeid()+"=nextid:"+nextid);
+                           System.out.println(dtl.getAttetime());
+                           System.out.println(dtl.getAttedate()+"--"+dtl.getCustid());
+                           e.printStackTrace();
+                       }
                        if(detail.getState()==0&&state!=0){
                            if(!refno.equals(dtl.getRefno())){
                                detail.setState(state);
