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

修复了移动打卡数据服务无法指定打卡时间的问题

o2lee 5 лет назад
Родитель
Сommit
7d62f09fff

+ 23 - 9
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancedetail/ActionReciveAttendanceMobile.java

@@ -36,20 +36,18 @@ public class ActionReciveAttendanceMobile extends BaseAction {
 		List<WoMobileRecord> wraps = new ArrayList<>();
 		Wi wrapIn = null;
 		Boolean check = true;
-		Date now = new Date();
+		Date now = null;
 		String signDate = null;
 		String signTime = null;
 
-
 		try {
 			wrapIn = this.convertToWrapIn( jsonElement, Wi.class );
-			signDate = dateOperation.getDateStringFromDate( now, "YYYY-MM-DD");
-			signTime = dateOperation.getDateStringFromDate( now, "HH:mm:ss");
-
-			attendanceDetailMobile.setRecordDateString( signDate ); //打卡日期
-			attendanceDetailMobile.setSignTime( signTime ); //打卡时间
-			attendanceDetailMobile.setCheckin_time( now.getTime() );
-			attendanceDetailMobile.setRecordDate( now );
+			//1000000000000L = Sun Sep 09 2001 09:46:40 GMT+0800 (中国标准时间)
+			if( wrapIn.getCheckin_time() > 1000000000000L  ){
+				now = new Date( wrapIn.getCheckin_time() );
+			}else{
+				now = new Date();
+			}
 		} catch (Exception e) {
 			check = false;
 			Exception exception = new ExceptionWrapInConvert(e, jsonElement);
@@ -57,6 +55,22 @@ public class ActionReciveAttendanceMobile extends BaseAction {
 			logger.error(e, currentPerson, request, null);
 		}
 
+		if( check ){
+			try {
+				signDate = dateOperation.getDateStringFromDate( now, "YYYY-MM-DD");
+				signTime = dateOperation.getDateStringFromDate( now, "HH:mm:ss");
+
+				attendanceDetailMobile.setRecordDateString( signDate ); //打卡日期
+				attendanceDetailMobile.setSignTime( signTime ); //打卡时间
+				attendanceDetailMobile.setCheckin_time( now.getTime() );
+				attendanceDetailMobile.setRecordDate( now );
+			} catch (Exception e) {
+				check = false;
+				Exception exception = new ExceptionWrapInConvert(e, jsonElement);
+				result.error(exception);
+				logger.error(e, currentPerson, request, null);
+			}
+		}
 		if( check ){
 			if( StringUtils.isNotEmpty(wrapIn.getRecordAddress()) ){
 				attendanceDetailMobile.setRecordAddress( wrapIn.getRecordAddress() );

+ 3 - 3
o2server/x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceDetail.java

@@ -186,7 +186,7 @@ public class AttendanceDetail extends SliceJpaObject {
 	@FieldDescribe("上班下午打卡签退时间")
 	@Column( length = JpaObject.length_32B, name = ColumnNamePrefix + morningOffdutyTime_FIELDNAME)
 	@CheckPersist(allowEmpty = true)
-	private String morningOffdutyTime;
+	private String morningOffDutyTime;
 
 	public static final String afternoonOnDutyTime_FIELDNAME = "afternoonOnDutyTime";
 	@FieldDescribe("下午上班打卡签到时间")
@@ -333,9 +333,9 @@ public class AttendanceDetail extends SliceJpaObject {
 	@CheckPersist(allowEmpty = true)
 	private String archiveTime;
 
-	public String getMorningOffdutyTime() { return morningOffdutyTime; }
+	public String getMorningOffDutyTime() { return morningOffDutyTime; }
 
-	public void setMorningOffdutyTime(String morningOffdutyTime) { this.morningOffdutyTime = morningOffdutyTime; }
+	public void setMorningOffDutyTime(String morningOffDutyTime) { this.morningOffDutyTime = morningOffDutyTime; }
 
 	public String getAfternoonOnDutyTime() { return afternoonOnDutyTime; }