فهرست منبع

延长企业微信转译时间

QuYueTing 9 ماه پیش
والد
کامیت
bf2946d410

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExcelExportServiceImpl.java

@@ -99,7 +99,7 @@ public class ExcelExportServiceImpl implements ExcelExportService {
              * 此处轮询查询本地数据库,检测到有任务的回调数据时继续执行查询操作
              */
             long t = System.currentTimeMillis();
-            while (i < 30) {
+            while (i < 40) {
                 if (i < 10) {
                     Thread.sleep(300);
                 } else if (i < 20){

+ 29 - 26
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -1173,6 +1173,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
     }
 
 
+    //获取考勤打卡记录
     private void reqOnceCardTime(WxCorpInfo corpInfo, long startTime, long endTime, Object[] objects, boolean showLog) throws Exception {
         DateTimeFormatter mdFormat = DateTimeFormatter.ofPattern("yyyy/M/d");
         String url = GET_CHECKIN_DAYDATA.replace("ACCESS_TOKEN", getCorpAccessToken(corpInfo));
@@ -1659,32 +1660,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                             ct.setWorkHours(DateTimeUtil.getHoursFromDouble(workHours));
                         }
                         if (showLog) System.out.println("ct.getStartTime()==" + ct.getStartTime()+", ct.getEndTime()="+ct.getEndTime());
-                        //仅有一次打卡,需要补足下班的打卡时间;重新计算工作时长
-                        if (hitOnce) {
-                            if (ct.getEndTime().compareTo(baseAfternoonEnd) < 0) {
-                                if (showLog) System.out.println("打卡一次,自动补足下班时间"+baseAfternoonEnd);
-                                ct.setEndTime(baseAfternoonEnd);
-                                //重新计算时长
-                                double workTime = DateTimeUtil.getHoursFromSeconds(DateTimeUtil.getSecondsFromTime(ct.getEndTime()) - DateTimeUtil.getSecondsFromTime(ct.getStartTime()));
-                                if(showLog) System.out.println("workTime======="+workTime+", restTime="+restTime);
-                                if (ct.getStartTime().compareTo(baseMorningEnd) <= 0) {
-                                    //重新计算打卡工时时,需要减去中间午休时间
-                                    workTime -= restTime;
-                                }
-                                ct.setCardTime(workTime);
-                                double calTime = DateTimeUtil.getHoursFromDouble(workTime) - ct.getAskLeaveTime();
-                                if (calTime < 8.0 && ct.getOutdoorTime() > 0) {
-                                    calTime += ct.getOutdoorTime();
-                                }
-                                if (corpInfo.getCompanyId() == 481) {
-                                    //给盛立安元0.5单位进位
-                                    ct.setWorkHours(DateTimeUtil.getHalfHoursFromDouble(calTime));
-                                } else {
-                                    ct.setWorkHours(calTime);
-                                }
-                                if (showLog) System.out.println("workTime="+workTime+", 二次校正后workHours="+ct.getWorkHours());
-                            }
-                        }
+
                         //针对赛元微电子,请半天假的情况下。重新校正打卡和工作时长
                         if (corpInfo.getCorpid().equals("wpy9TkCAAAgNp4jvqxKTpXrhvwFvyFHg")) {
                             if (dtf.format(ct.getCreateDate()).equals("2024-02-09") ) {
@@ -1718,6 +1694,33 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                                     if (showLog) System.out.println("再次校正,下午请假");
                                 }
                             }
+                        } else {
+                            //仅有一次打卡,需要补足下班的打卡时间;重新计算工作时长
+                            if (hitOnce) {
+                                if (ct.getEndTime().compareTo(baseAfternoonEnd) < 0) {
+                                    if (showLog) System.out.println("打卡一次,自动补足下班时间"+baseAfternoonEnd);
+                                    ct.setEndTime(baseAfternoonEnd);
+                                    //重新计算时长
+                                    double workTime = DateTimeUtil.getHoursFromSeconds(DateTimeUtil.getSecondsFromTime(ct.getEndTime()) - DateTimeUtil.getSecondsFromTime(ct.getStartTime()));
+                                    if(showLog) System.out.println("workTime======="+workTime+", restTime="+restTime);
+                                    if (ct.getStartTime().compareTo(baseMorningEnd) <= 0) {
+                                        //重新计算打卡工时时,需要减去中间午休时间
+                                        workTime -= restTime;
+                                    }
+                                    ct.setCardTime(workTime);
+                                    double calTime = DateTimeUtil.getHoursFromDouble(workTime) - ct.getAskLeaveTime();
+                                    if (calTime < 8.0 && ct.getOutdoorTime() > 0) {
+                                        calTime += ct.getOutdoorTime();
+                                    }
+                                    if (corpInfo.getCompanyId() == 481) {
+                                        //给盛立安元0.5单位进位
+                                        ct.setWorkHours(DateTimeUtil.getHalfHoursFromDouble(calTime));
+                                    } else {
+                                        ct.setWorkHours(calTime);
+                                    }
+                                    if (showLog) System.out.println("workTime="+workTime+", 二次校正后workHours="+ct.getWorkHours());
+                                }
+                            }
                         }
                     }