考勤流水生成时间调整
diff --git a/src/main/java/com/supwisdom/dlpay/atte/controller/AppAtteController.java b/src/main/java/com/supwisdom/dlpay/atte/controller/AppAtteController.java
index 3746a38..abdbc28 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/controller/AppAtteController.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/controller/AppAtteController.java
@@ -12,9 +12,12 @@
import com.supwisdom.dlpay.atte.service.AtteClassService;
import com.supwisdom.dlpay.atte.service.AtteReportService;
import com.supwisdom.dlpay.atte.service.AtteRestService;
+import com.supwisdom.dlpay.atte.service.HandRefreshService;
import com.supwisdom.dlpay.doorlist.bean.TCustomerInfo;
import com.supwisdom.dlpay.framework.dao.BusinessparaDao;
import com.supwisdom.dlpay.framework.domain.TBusinesspara;
+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.framework.util.StringUtil;
import com.supwisdom.dlpay.mainservice.dao.CardDao;
@@ -63,6 +66,8 @@
private DeptDao deptDao;
@Autowired
private ApiCommonProxy commonProxy;
+ @Autowired
+ private HandRefreshService handRefreshService;
@@ -780,4 +785,123 @@
}
return jld_code;
}
+
+
+ /**
+ * 测试
+ * @param model
+ * @return
+ */
+
+ @Autowired
+ private SystemUtilService systemUtilService;
+ @RequestMapping("/createdtl")
+ public void test(@RequestParam(value = "start") String startdate,
+ @RequestParam(value = "end") String enddate,Model model){
+ TTaskLock lock= null;
+ lock = systemUtilService.doLockTask("REFRESHDTL",null,"所有流水刷新");
+ if(lock==null){
+ return;
+ }
+ Integer cur=Integer.parseInt(DateUtil.getNow("yyyyMMdd"));
+ Integer start=Integer.parseInt(startdate);
+ Integer end=Integer.parseInt(enddate);
+ int cnt=1;
+ while (start<=end&&cnt<=10) {
+ if(start>cur){
+ return ;
+ }
+ atteClassService.createAtteDtl(startdate, null);
+ startdate = DateUtil.getNewDay(startdate, 1);
+ start = Integer.parseInt(startdate);
+ cnt++;
+ }
+ String hostdatetime = systemUtilService.getSysdatetime().getHostdatetime(); //yyyyMMddHHmmss
+ lock.setTaskstatus(0);
+ lock.setTasktime(hostdatetime);
+ systemUtilService.updateTaskLock(lock);
+
+ }
+
+
+
+ @RequestMapping("/refreshdtl")
+ public void refreshdtl(@RequestParam(value = "start") String startdate,
+ @RequestParam(value = "end") String enddate,Model model){
+ TTaskLock lock= null;
+ lock = systemUtilService.doLockTask("REFRESHDTL",null,"所有流水刷新");
+ if(lock==null){
+ return;
+ }
+ Integer start=Integer.parseInt(startdate);
+ Integer end=Integer.parseInt(enddate);
+ int cnt=1;
+ while (start<=end&&cnt<=10) {
+ atteClassService.handleDtl(null,startdate);
+ startdate = DateUtil.getNewDay(startdate, 1);
+ start = Integer.parseInt(startdate);
+ cnt++;
+ }
+ String hostdatetime = systemUtilService.getSysdatetime().getHostdatetime(); //yyyyMMddHHmmss
+ lock.setTaskstatus(0);
+ lock.setTasktime(hostdatetime);
+ systemUtilService.updateTaskLock(lock);
+
+ }
+
+ @RequestMapping("/refreshreport")
+ public void refreshreport(@RequestParam(value = "start") String startdate,
+ @RequestParam(value = "end") String enddate,Model model){
+ TTaskLock lock= null;
+ lock = systemUtilService.doLockTask("REFRESHDTL",null,"所有流水刷新");
+ if(lock==null){
+ return;
+ }
+ Integer start=Integer.parseInt(startdate);
+ Integer end=Integer.parseInt(enddate);
+ int cnt=1;
+ Integer cur=Integer.parseInt(DateUtil.getNow("yyyyMMdd"));
+ while (start<=end&&cnt<=10) {
+ if(start>=cur){
+ return ;
+ }
+ atteReportService.refreshReport(null,startdate,startdate);
+ startdate = DateUtil.getNewDay(startdate, 1);
+ start = Integer.parseInt(startdate);
+ cnt++;
+ }
+ String hostdatetime = systemUtilService.getSysdatetime().getHostdatetime(); //yyyyMMddHHmmss
+ lock.setTaskstatus(0);
+ lock.setTasktime(hostdatetime);
+ systemUtilService.updateTaskLock(lock);
+
+ }
+ @RequestMapping("/refresh")
+ public void refreshall(@RequestParam(value = "start") String startdate,
+ @RequestParam(value = "end") String enddate,Model model){
+ TTaskLock lock= null;
+ lock = systemUtilService.doLockTask("REFRESHDTL",null,"所有流水刷新");
+ if(lock==null){
+ return;
+ }
+ Integer cur=Integer.parseInt(DateUtil.getNow("yyyyMMdd"));
+ Integer start=Integer.parseInt(startdate);
+ Integer end=Integer.parseInt(enddate);
+ int cnt=1;
+ while (start<=end&&cnt<=10) {
+ if(start>=cur){
+ return ;
+ }
+ handRefreshService.refreshbyhand(startdate,startdate,null);
+ startdate = DateUtil.getNewDay(startdate, 1);
+ start = Integer.parseInt(startdate);
+ cnt++;
+ }
+ String hostdatetime = systemUtilService.getSysdatetime().getHostdatetime(); //yyyyMMddHHmmss
+ lock.setTaskstatus(0);
+ lock.setTasktime(hostdatetime);
+ systemUtilService.updateTaskLock(lock);
+
+ }
+
}
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 f7968ec..0cc130e 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/controller/CustAtteController.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/controller/CustAtteController.java
@@ -648,7 +648,7 @@
deptcode="-99";
}
}
- handRefreshService.refreshbyhand(startdate,enddate,deptcode);
+ //handRefreshService.refreshbyhand(startdate,enddate,deptcode);
return map;
}
diff --git a/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteClassDaoImpl.java b/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteClassDaoImpl.java
index c3dd941..97fe433 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteClassDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/dao/impl/AtteClassDaoImpl.java
@@ -237,7 +237,7 @@
@Transactional
@Override
public String getAtteNo(String attedate) {
- String sql=" select to_char(cast(nextval('seq_attedtl') as INTEGER),'FM000000') ";
+ String sql=" select to_char(cast(nextval('seq_attedtl') as INTEGER),'FM000000000000') ";
Query query=entityManager.createNativeQuery(sql);
List list=query.getResultList();
if(list!=null&&list.size()>0){
diff --git a/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteDtl.java b/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteDtl.java
index ef21b52..3d29696 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteDtl.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/domain/TAtteDtl.java
@@ -23,7 +23,7 @@
@Id
- @Column(name = "atteno",length = 14)
+ @Column(name = "atteno",length = 20)
public String getAtteno() {
return atteno;
}
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 f210c31..7132ab9 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
@@ -24,7 +24,10 @@
import com.supwisdom.dlpay.system.domain.TCustType;
import com.supwisdom.dlpay.system.page.Pagination;
import com.supwisdom.dlpay.system.service.SystemService;
+import com.supwisdom.dlpay.task.SyncCustomerTask;
import org.apache.xmlbeans.impl.tool.Diff;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -56,6 +59,7 @@
private BusinessparaDao businessparaDao;
@Autowired
AtteClockDao atteClockDao;
+ protected static Logger logger = LoggerFactory.getLogger(AtteClassServiceImpl.class);
@Override
@@ -177,75 +181,93 @@
searchBean.setAttedate(attedate);
// 获取考勤人员
List<TCustomerInfo> custlist=atteClassDao.getAtteCust(searchBean);
+ logger.info("考勤名单总数"+custlist.size());
+ try {
+ for (TCustomerInfo cust:custlist){
+ TClassCust classCust=atteClassDao.getByIdAndDate(cust.getCustid(),attedate);
+ TNcTimegrp timegrp=null;
+ TAtteClass atteClass=null;
+ if(classCust==null){
+ // 无排班
+ Integer timegrpid=getTimegrp(cust,attedate);
+ if(timegrpid!=null){
+ timegrp=ncTimeGrpDao.findByTimeGrpId(timegrpid);
+ }else {
+ logger.info("timegrpid为空"+cust.getCustname());
+ }
+ }else{
+ logger.info("考勤排班");
+ atteClass=atteClassDao.getClassById(classCust.getClassid());
+ if(atteClass!=null&&atteClass.getWorkorno()==1){
+ timegrp=ncTimeGrpDao.findByTimeGrpId(atteClass.getTimegrpid());
+ }
- for (TCustomerInfo cust:custlist){
- TClassCust classCust=atteClassDao.getByIdAndDate(cust.getCustid(),attedate);
- TNcTimegrp timegrp=null;
- TAtteClass atteClass=null;
- if(classCust==null){
- // 无排班
- Integer timegrpid=getTimegrp(cust,attedate);
- if(timegrpid!=null){
- timegrp=ncTimeGrpDao.findByTimeGrpId(timegrpid);
}
- }else{
- atteClass=atteClassDao.getClassById(classCust.getClassid());
- if(atteClass!=null&&atteClass.getWorkorno()==1){
- timegrp=ncTimeGrpDao.findByTimeGrpId(atteClass.getTimegrpid());
+ if(timegrp==null){
+ continue;
+ }
+ Map<Integer,Integer> map=new HashMap<>();
+ map.put(timegrp.getTimeid1(),timegrp.getTimeid1());
+ map.put(timegrp.getTimeid2(),timegrp.getTimeid2());
+ map.put(timegrp.getTimeid3(),timegrp.getTimeid3());
+ map.put(timegrp.getTimeid4(),timegrp.getTimeid4());
+ map.put(timegrp.getTimeid5(),timegrp.getTimeid5());
+ map.put(timegrp.getTimeid6(),timegrp.getTimeid6());
+
+ try {
+
+ logger.info(cust.getCustname()+" "+map.size()+"-生成名单开始"+DateUtil.getNow());
+ for(Integer timeid:map.keySet()){
+ if(timeid!=null){
+ logger.info("创建名单 "+timeid);
+ TAtteDtl dtl=new TAtteDtl();
+ dtl.setAttedate(attedate);
+ dtl.setAtteno(atteClassDao.getAtteNo(attedate));
+ dtl.setCustid(cust.getCustid());
+ TAtteRest rest=atteRestDao.getRest(cust.getCustid(),attedate);
+ if(rest!=null){ //查询假条
+ dtl.setState(rest.getRtype());
+ }else{
+ dtl.setState(0);
+ }
+ //判断有无补打卡
+ if(dtl.getState()==0&&atteClockDao.isClock(cust.getCustid(),timeid,attedate)){
+ dtl.setState(1);
+ }
+ dtl.setStatus(1);
+ dtl.setTimeid(timeid);
+ dtl.setUpdatetime(DateUtil.getNow());
+ TNcTime time=ncTimeDao.findByTimeId(timeid);
+ String etime=time.getEtime().replace(":","")+"00";
+ String divtime="130000";
+ TBusinesspara para=businessparaDao.findByParakey("divtime");
+ if(para!=null&&!StringUtil.isEmpty(para.getParaval())){
+ divtime=para.getParaval();
+ }
+ int diff=getDiffMin(divtime,etime);
+ if(diff>0){
+ dtl.setApflag(2);
+ }else{
+ dtl.setApflag(1);
+ }
+ TAtteDtl oldbean=atteClassDao.getDtl(timeid,attedate,cust.getCustid());
+ if(oldbean==null){
+ logger.info("oldbean is null");
+ atteClassDao.saveAtteDtl(dtl);
+ }
+ }
+ }
+ logger.info(cust.getCustname()+"-生成名单结束"+DateUtil.getNow());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
}
}
-
- if(timegrp==null){
- continue;
- }
- Map<Integer,Integer> map=new HashMap<>();
- map.put(timegrp.getTimeid1(),timegrp.getTimeid1());
- map.put(timegrp.getTimeid2(),timegrp.getTimeid2());
- map.put(timegrp.getTimeid3(),timegrp.getTimeid3());
- map.put(timegrp.getTimeid4(),timegrp.getTimeid4());
- map.put(timegrp.getTimeid5(),timegrp.getTimeid5());
- map.put(timegrp.getTimeid6(),timegrp.getTimeid6());
- for(Integer timeid:map.keySet()){
- if(timeid!=null){
- TAtteDtl dtl=new TAtteDtl();
- dtl.setAttedate(attedate);
- dtl.setAtteno(atteClassDao.getAtteNo(attedate));
- dtl.setCustid(cust.getCustid());
- TAtteRest rest=atteRestDao.getRest(cust.getCustid(),attedate);
- if(rest!=null){ //查询假条
- dtl.setState(rest.getRtype());
- }else{
- dtl.setState(0);
- }
- //判断有无补打卡
- if(dtl.getState()==0&&atteClockDao.isClock(cust.getCustid(),timeid,attedate)){
- dtl.setState(1);
- }
- dtl.setStatus(1);
- dtl.setTimeid(timeid);
- dtl.setUpdatetime(DateUtil.getNow());
- TNcTime time=ncTimeDao.findByTimeId(timeid);
- String etime=time.getEtime().replace(":","")+"00";
- String divtime="130000";
- TBusinesspara para=businessparaDao.findByParakey("divtime");
- if(para!=null&&!StringUtil.isEmpty(para.getParaval())){
- divtime=para.getParaval();
- }
- int diff=getDiffMin(divtime,etime);
- if(diff>0){
- dtl.setApflag(2);
- }else{
- dtl.setApflag(1);
- }
- TAtteDtl oldbean=atteClassDao.getDtl(timeid,attedate,cust.getCustid());
- if(oldbean==null){
- atteClassDao.saveAtteDtl(dtl);
- }
- }
- }
-
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
}
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 a109e20..459df1e 100644
--- a/src/main/java/com/supwisdom/dlpay/atte/task/CreateAtteDtlTask.java
+++ b/src/main/java/com/supwisdom/dlpay/atte/task/CreateAtteDtlTask.java
@@ -38,7 +38,7 @@
String attedate= null;
try {
String now = DateUtil.getNow();
- logger.info("时间:" + now + "--生成考勤名单");
+ logger.info("n时间:" + now + "--生成考勤名单");
attedate = DateUtil.getNow("yyyyMMdd");
TTaskLock lock= null;
@@ -60,7 +60,7 @@
public void refreshAtteDtl(){
try {
String now = DateUtil.getNow();
- logger.info("时间:" + now + "--刷新考勤状态");
+ logger.info("n时间:" + now + "--刷新考勤状态");
String attedate = DateUtil.getNow("yyyyMMdd");
atteClassService.handleDtl(null,attedate);
} catch (Exception e) {
@@ -68,13 +68,13 @@
}
}
- @Scheduled(cron = "${atte.create.dtl}")//每天一点生成前一天报表
+ @Scheduled(cron = "${atte.create.report}")//每天一点生成前一天报表
public void createAtteReport(){
String attedate= null;
try {
String now = DateUtil.getNow();
- logger.info("时间:" + now + "--生成前一天考勤报表");
+ logger.info("n时间:" + now + "--生成前一天考勤报表");
String cdate=DateUtil.getNow("yyyyMMdd");
attedate=DateUtil.getNewDay(cdate,-1);
atteReportService.refreshReport(null,attedate,attedate);
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index bf27274..2902ad9 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -47,8 +47,10 @@
sync.cardStatus.cron=0 0/10 * * * ?
apiLogin.refresh.cron=0 0/20 * * * ?
-atte.create.dtl=0 0 2 * * ?
-atte.refresh.dtl=0 0/30 * * * ?
+atte.create.dtl=0 0 1 * * ?
+atte.refresh.dtl=0 0 8,10,12,14,16,18,19,21 * * ?
+atte.create.report=0 0 4 * * ?
+
spring.redis.database=2