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