考勤手动刷新流水报表加锁
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