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 805bead..f7968ec 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/controller/CustAtteController.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/controller/CustAtteController.java
@@ -64,6 +64,8 @@
     private AtteRestService atteRestService;
     @Autowired
     private AtteReportService atteReportService;
+    @Autowired
+    private HandRefreshService handRefreshService;
 
     @GetMapping("/rule/index")
     public String seasonindex(){
@@ -646,17 +648,7 @@
                 deptcode="-99";
             }
         }
-        atteClassService.addBatchDtl(startdate,enddate,deptcode);
-        String sdate=startdate;
-        String edate=enddate;
-        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);
-        }
-        atteReportService.refreshReport(deptcode,sdate,edate);
+        handRefreshService.refreshbyhand(startdate,enddate,deptcode);
         return map;
     }
 
diff --git a/src/main/java/com/supwisdom/dlpay/atte/service/AtteClassService.java b/src/main/java/com/supwisdom/dlpay/atte/service/AtteClassService.java
index 0405c16..fb39b27 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/service/AtteClassService.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/service/AtteClassService.java
@@ -74,7 +74,7 @@
     public List<AtteDtl> getDtlList(AttedtlSearchBean searchBean);
 
     //处理考勤流水
-    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+
     public boolean handleDtl(String deptcode,String attedate);
 
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
diff --git a/src/main/java/com/supwisdom/dlpay/atte/service/AtteReportService.java b/src/main/java/com/supwisdom/dlpay/atte/service/AtteReportService.java
index 2bbb8ef..865d140 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/service/AtteReportService.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/service/AtteReportService.java
@@ -20,7 +20,7 @@
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
     public List<ReportInfo> getreportfromView(String deptcode, String attedate);
 
-    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+
     public boolean refreshReport(String deptcode,String startdate,String enddate);
 
 
diff --git a/src/main/java/com/supwisdom/dlpay/atte/service/HandRefreshService.java b/src/main/java/com/supwisdom/dlpay/atte/service/HandRefreshService.java
new file mode 100644
index 0000000..a1539cd
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/atte/service/HandRefreshService.java
@@ -0,0 +1,7 @@
+package com.supwisdom.dlpay.atte.service;
+
+public interface HandRefreshService {
+
+
+    public boolean refreshbyhand(String startdate,String enddate,String deptcode);
+}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/service/impl/HandRefreshServiceImpl.java b/src/main/java/com/supwisdom/dlpay/atte/service/impl/HandRefreshServiceImpl.java
new file mode 100644
index 0000000..728d262
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/atte/service/impl/HandRefreshServiceImpl.java
@@ -0,0 +1,82 @@
+package com.supwisdom.dlpay.atte.service.impl;
+
+import com.supwisdom.dlpay.atte.service.AtteClassService;
+import com.supwisdom.dlpay.atte.service.AtteReportService;
+import com.supwisdom.dlpay.atte.service.HandRefreshService;
+import com.supwisdom.dlpay.framework.domain.TTaskLock;
+import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.framework.util.DateUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class HandRefreshServiceImpl implements HandRefreshService {
+
+    @Autowired
+    private AtteClassService atteClassService;
+    @Autowired
+    private AtteReportService atteReportService;
+    @Autowired
+    private SystemUtilService systemUtilService;
+
+    private static Logger log= LoggerFactory.getLogger(HandRefreshServiceImpl.class);
+
+    @Override
+    public boolean refreshbyhand(String startdate, String enddate, String deptcode) {
+
+        if("-99".equals(deptcode)){
+            log.info("部门不能为空");
+            return false;
+        }
+        //生成名单
+
+        TTaskLock lock= null;
+        try {
+            lock = systemUtilService.doLockTask("REFRESHDTL",null,"所有流水刷新");
+            if(lock==null){
+                log.info("考勤名单正在生成！");
+                return false;
+            }
+            String hostdatetime = systemUtilService.getSysdatetime().getHostdatetime(); //yyyyMMddHHmmss
+            if(deptcode==null){ //所有部门
+                log.info("开始手动生成考勤名单");
+                atteClassService.addBatchDtl(startdate,enddate,deptcode);
+                log.info("名单生成结束");
+            }else{ //单独部门
+                TTaskLock lock1=systemUtilService.doLockTask(deptcode,null,deptcode);
+                if(lock1==null){
+                    log.info("考勤名单正在生成！");
+                    lock.setTasktime(hostdatetime);
+                    lock.setTaskstatus(0);
+                    systemUtilService.updateTaskLock(lock);
+                    return false;
+                }
+                atteClassService.addBatchDtl(startdate,enddate,deptcode);
+                hostdatetime = systemUtilService.getSysdatetime().getHostdatetime(); //yyyyMMddHHmmss
+                lock1.setTasktime(hostdatetime);
+                lock1.setTaskstatus(0);
+                systemUtilService.updateTaskLock(lock1);
+            }
+            hostdatetime = systemUtilService.getSysdatetime().getHostdatetime(); //yyyyMMddHHmmss
+            lock.setTasktime(hostdatetime);
+            lock.setTaskstatus(0);
+            systemUtilService.updateTaskLock(lock);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        String sdate=startdate;
+        String edate=enddate;
+        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);
+        }
+        atteReportService.refreshReport(deptcode,sdate,edate);
+        return true;
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/task/CreateAtteDtlTask.java b/src/main/java/com/supwisdom/dlpay/atte/task/CreateAtteDtlTask.java
index 0801656..a109e20 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/task/CreateAtteDtlTask.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/task/CreateAtteDtlTask.java
@@ -2,6 +2,8 @@
 
 import com.supwisdom.dlpay.atte.service.AtteClassService;
 import com.supwisdom.dlpay.atte.service.AtteReportService;
+import com.supwisdom.dlpay.framework.domain.TTaskLock;
+import com.supwisdom.dlpay.framework.service.SystemUtilService;
 import com.supwisdom.dlpay.framework.util.DateUtil;
 import com.supwisdom.dlpay.task.SyncCustomerTask;
 import org.slf4j.Logger;
@@ -23,7 +25,8 @@
     AtteClassService atteClassService;
     @Autowired
     AtteReportService atteReportService;
-
+    @Autowired
+    private SystemUtilService systemUtilService;
     @Override
     public void run(ApplicationArguments args) throws Exception {
 
@@ -37,7 +40,18 @@
             String now = DateUtil.getNow();
             logger.info("时间:" + now + "--生成考勤名单");
             attedate = DateUtil.getNow("yyyyMMdd");
-            atteClassService.createAtteDtl(attedate,null);
+
+            TTaskLock lock= null;
+                lock = systemUtilService.doLockTask("REFRESHDTL",null,"所有流水刷新");
+                if(lock==null){
+                    return;
+                }
+                atteClassService.createAtteDtl(attedate,null);
+                String hostdatetime = systemUtilService.getSysdatetime().getHostdatetime(); //yyyyMMddHHmmss
+                lock.setTaskstatus(0);
+                lock.setTasktime(hostdatetime);
+                systemUtilService.updateTaskLock(lock);
+
         } catch (Exception e) {
             e.printStackTrace();
         }
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index c535489..bf27274 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -47,8 +47,8 @@
 sync.cardStatus.cron=0 0/10 * * * ?
 apiLogin.refresh.cron=0 0/20 * * * ?
 
-atte.create.dtl=0 0 1 * * ?
-atte.refresh.dtl=0 0/10 * * * ?
+atte.create.dtl=0 0 2 * * ?
+atte.refresh.dtl=0 0/30 * * * ?
 spring.redis.database=2
 
 
