Просмотр исходного кода

港大考勤改造:
修改考勤打卡次数统计逻辑为直接查询考勤打卡次数并累加

xiexh 5 дней назад
Родитель
Сommit
9610e54c88

+ 0 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/employee/domain/AttendanceDetail.java

@@ -524,7 +524,6 @@ public class AttendanceDetail extends AbstractDomain<String, AttendanceDetailPo>
 
 		// 7.1 计算工作时长(根据修改情况)
 		long gongZuoShiChang = 0;
-
 		if (isDaKa1Modified && isDaKa2Modified) {
 			// 两个都修改:直接使用po中两个时间计算
 			LocalDateTime startTime = LocalDateTime.parse(newDaKa1, DATETIME_FORMATTER);

+ 20 - 8
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/sqlzdy/Service/SwdlServiceImpl.java

@@ -21,6 +21,7 @@ import com.lc.ibps.sysdata.dao.UpdateDataTableDao;
 import com.lc.ibps.untils.settingUtil;
 import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.math.NumberUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -755,12 +756,21 @@ public class SwdlServiceImpl extends GenericProvider implements SwdlService {
 
                 //每个日期下每个班次处理
                 for (Map<String, Object> record : dateRecords) {//统计次数放里面
-                    String shiftName = BeanUtils.isNotEmpty("ban_ci_ming_") ? (String) record.get("ban_ci_ming_") : "";
-                    String status1 = BeanUtils.isNotEmpty("zhuang_tai_1_") ? (String) record.get("zhuang_tai_1_") : "";
-                    String status2 = BeanUtils.isNotEmpty("zhuang_tai_2_") ? (String) record.get("zhuang_tai_2_") : "";
-                    String checkIn1 = BeanUtils.isNotEmpty("da_ka_shi_jian_1_") ? (String) record.get("da_ka_shi_jian_1_") : "";
-                    String checkIn2 = BeanUtils.isNotEmpty("da_ka_shi_jian_2_") ? (String) record.get("da_ka_shi_jian_2_") : "";
-                    String attendanceStatus = BeanUtils.isNotEmpty("kao_qin_zhuang_ta") ? (String) record.get("kao_qin_zhuang_ta") : "";
+                    String shiftName = BeanUtils.isNotEmpty(record.get("ban_ci_ming_")) ? (String) record.get("ban_ci_ming_") : "";
+                    String status1 = BeanUtils.isNotEmpty(record.get("zhuang_tai_1_")) ? (String) record.get("zhuang_tai_1_") : "";
+                    String status2 = BeanUtils.isNotEmpty(record.get("zhuang_tai_2_")) ? (String) record.get("zhuang_tai_2_") : "";
+                    String checkIn1 = BeanUtils.isNotEmpty(record.get("da_ka_shi_jian_1_")) ? (String) record.get("da_ka_shi_jian_1_") : "";
+                    String checkIn2 = BeanUtils.isNotEmpty(record.get("da_ka_shi_jian_2_")) ? (String) record.get("da_ka_shi_jian_2_") : "";
+                    String attendanceStatus = BeanUtils.isNotEmpty(record.get("kao_qin_zhuang_ta")) ? (String) record.get("kao_qin_zhuang_ta") : "";
+                    int daKaChiShu = 0;
+                    Object value = record.get("da_ka_ci_shu_");
+                    if (value != null) {
+                        try {
+                            daKaChiShu = Integer.parseInt(value.toString().trim());
+                        } catch (NumberFormatException e) {
+                            // 非数字格式,保持默认值 0
+                        }
+                    }
                     String lateDuration ="";
                     String shiftDuration = "";
                     String workDuration ="";
@@ -793,11 +803,13 @@ public class SwdlServiceImpl extends GenericProvider implements SwdlService {
                     // 3. 实际出勤天数统计(有打卡记录)
                     if ((checkIn1 != null && !checkIn1.isEmpty()) ||
                             (checkIn2 != null && !checkIn2.isEmpty())) {
+
+                        increment(initUserEveryDayStats, "da_ka_ci_shu_", daKaChiShu);
                         //考勤统计
                          hasAttendance = true;
                         //考勤概况
                         if(checkIn1 != null && !checkIn1.isEmpty()){
-                            increment(initUserEveryDayStats, "da_ka_ci_shu_", 1);
+                            //increment(initUserEveryDayStats, "da_ka_ci_shu_", 1);
 
                             /*
                              compareTo 比较时间是按照 年份 → 月份 → 日期 → 小时 → 分钟 → 秒
@@ -811,7 +823,7 @@ public class SwdlServiceImpl extends GenericProvider implements SwdlService {
                             }
                         }
                         if(checkIn2 != null && !checkIn2.isEmpty()){
-                            increment(initUserEveryDayStats, "da_ka_ci_shu_", 1);
+                            //increment(initUserEveryDayStats, "da_ka_ci_shu_", 1);
 
                             // 更新最晚打卡时间
                             String currentZuiWan = (String) initUserEveryDayStats.get("zui_wan");