Explorar el Código

周一打卡考勤,添加但凡超过9.35则算迟到逻辑

zhaoxian hace 4 años
padre
commit
3c0c438de5

+ 23 - 2
module-oa/src/main/java/cn/com/ctop/oa/modules/service/impl/WechatCheckinDataServiceImpl.java

@@ -21,6 +21,7 @@ import org.jeecg.common.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -86,6 +87,16 @@ public class WechatCheckinDataServiceImpl extends ServiceImpl<WechatCheckinDataM
                                 Date checkDate = DateUtils.stampToTime(checkinTimeStamp);
                                 String dateStr = DateUtils.formatDate(checkDate);
                                 long dateLong = DateUtils.timeToStamp(dateStr + DAY_BEGIN);
+                                //判断上班是否是周一,周一打卡时间超过9.35则算迟到
+                                String exceptionType = jsonObject.getString("exception_type");
+                                if (NoEn.NO1.valueStr().equals(checkinTypeCode)) {
+                                    if ("星期一".equals(DateUtils.getWhatDay(checkinTimeStamp))) {
+                                        long toTime = DateUtils.timeToStamp(dateStr + " 09:35:00");
+                                        if (checkinTimeStamp > toTime) {
+                                            exceptionType = Check.isNull(exceptionType) ? "时间异常" : exceptionType;
+                                        }
+                                    }
+                                }
                                 buf = new StringBuffer();
                                 String id = buf.append(userId).append("_").append(checkinTypeCode).append("_").append(dateLong).toString();
                                 checkinData.setId(id);
@@ -107,7 +118,7 @@ public class WechatCheckinDataServiceImpl extends ServiceImpl<WechatCheckinDataM
                                 checkinData.setLocationDetail(jsonObject.getString("location_detail"));
                                 checkinData.setGroupName(jsonObject.getString("groupname"));
                                 checkinData.setDeviceid(jsonObject.getString("deviceid"));
-                                checkinData.setExceptionType(jsonObject.getString("exception_type"));
+                                checkinData.setExceptionType(exceptionType);
                                 checkinData.setLocationTitle(jsonObject.getString("location_title"));
                                 checkinData.setWifimac(jsonObject.getString("wifimac"));
                                 checkinData.setMediaids(jsonObject.getJSONArray("mediaids").toJSONString());
@@ -163,11 +174,21 @@ public class WechatCheckinDataServiceImpl extends ServiceImpl<WechatCheckinDataM
                                 checkinType = jsonObject.getString("checkin_type");
                                 //1上班,2下班
                                 checkinTypeCode = "上班打卡".equals(checkinType) ? NoEn.NO1.valueStr() : NoEn.NO2.valueStr();
+                                String exceptionType = jsonObject.getString("exception_type");
                                 //下班打卡时间
                                 Long checkinTimeStamp = jsonObject.getLong("checkin_time");
                                 Date checkDate = DateUtils.stampToTime(checkinTimeStamp);
                                 String dateStr = DateUtils.formatDate(checkDate);
                                 long dateLong = DateUtils.timeToStamp(dateStr + DAY_BEGIN);
+                                //判断上班是否是周一,周一打卡时间超过9.35则算迟到
+                                if (NoEn.NO1.valueStr().equals(checkinTypeCode)) {
+                                    if ("星期一".equals(DateUtils.getWhatDay(checkinTimeStamp))) {
+                                        long toTime = DateUtils.timeToStamp(dateStr + " 10:00:00");
+                                        if (checkinTimeStamp > toTime) {
+                                            exceptionType = Check.isNull(exceptionType) ? "时间异常" : exceptionType;
+                                        }
+                                    }
+                                }
                                 buf = new StringBuffer();
                                 String id = buf.append(userId).append("_").append(checkinTypeCode).append("_").append(dateLong).toString();
                                 checkinData.setId(id);
@@ -189,7 +210,7 @@ public class WechatCheckinDataServiceImpl extends ServiceImpl<WechatCheckinDataM
                                 checkinData.setLocationDetail(jsonObject.getString("location_detail"));
                                 checkinData.setGroupName(jsonObject.getString("groupname"));
                                 checkinData.setDeviceid(jsonObject.getString("deviceid"));
-                                checkinData.setExceptionType(jsonObject.getString("exception_type"));
+                                checkinData.setExceptionType(exceptionType);
                                 checkinData.setLocationTitle(jsonObject.getString("location_title"));
                                 checkinData.setWifimac(jsonObject.getString("wifimac"));
                                 checkinData.setMediaids(jsonObject.getJSONArray("mediaids").toJSONString());