|
@@ -12,6 +12,7 @@ import com.boman.domain.constant.FormDataConstant;
|
|
|
import com.boman.domain.dto.AjaxResult;
|
|
|
import com.boman.domain.dto.ClockOnDto;
|
|
|
import com.boman.domain.dto.FormDataDto;
|
|
|
+import com.boman.domain.dto.UpdateDto;
|
|
|
import com.boman.web.core.mapper.StandardlyMapper;
|
|
|
import com.boman.web.core.service.TableServiceCmdService;
|
|
|
import com.boman.web.core.service.attendance.rules.AttendanceRulesService;
|
|
@@ -243,6 +244,8 @@ public class AttendanceServiceImpl implements AttendanceService {
|
|
|
if (isEmpty(attendanceList)) {
|
|
|
result.put(GO_TO_WORK, null);
|
|
|
result.put(GO_OFF_WORK, null);
|
|
|
+ result.put(GO_TO_WORK_PM, null);
|
|
|
+ result.put(GO_OFF_WORK_PM, null);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@@ -252,21 +255,26 @@ public class AttendanceServiceImpl implements AttendanceService {
|
|
|
|
|
|
Timestamp goToWorkTime = null;
|
|
|
Timestamp goOffWorkTime = null;
|
|
|
+ Timestamp goToWorkTimePm = null;
|
|
|
+ Timestamp goOffWorkTimePm = null;
|
|
|
for (JSONObject attendance : attendanceList) {
|
|
|
- if (isNotEmpty(attendance.get(ATTENDANCE_TABLE_WORK)) && isEmpty(attendance.get(ATTENDANCE_TABLE_OFFWORK))) {
|
|
|
+ if (isNotEmpty(attendance.get(ATTENDANCE_TABLE_WORK))) {
|
|
|
goToWorkTime = attendance.getTimestamp(ATTENDANCE_TABLE_WORK);
|
|
|
- break;
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- for (JSONObject attendance : attendanceList) {
|
|
|
- if (isNotEmpty(attendance.get(ATTENDANCE_TABLE_OFFWORK)) && isEmpty(attendance.get(ATTENDANCE_TABLE_WORK))) {
|
|
|
+ if (isNotEmpty(attendance.get(ATTENDANCE_TABLE_OFFWORK))) {
|
|
|
goOffWorkTime = attendance.getTimestamp(ATTENDANCE_TABLE_OFFWORK);
|
|
|
}
|
|
|
+ if (isNotEmpty(attendance.get(ATTENDANCE_TABLE_WORK_PM))) {
|
|
|
+ goToWorkTimePm = attendance.getTimestamp(ATTENDANCE_TABLE_WORK_PM);
|
|
|
+ }
|
|
|
+ if (isNotEmpty(attendance.get(ATTENDANCE_TABLE_OFFWORK_PM))) {
|
|
|
+ goOffWorkTimePm = attendance.getTimestamp(ATTENDANCE_TABLE_OFFWORK_PM);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
result.put(GO_TO_WORK, goToWorkTime == null ? null : goToWorkTime.toString());
|
|
|
result.put(GO_OFF_WORK, goOffWorkTime == null ? null : goOffWorkTime.toString());
|
|
|
+ result.put(GO_TO_WORK_PM, goToWorkTimePm == null ? null : goToWorkTimePm.toString());
|
|
|
+ result.put(GO_OFF_WORK_PM, goOffWorkTimePm == null ? null : goOffWorkTimePm.toString());
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@@ -296,16 +304,32 @@ public class AttendanceServiceImpl implements AttendanceService {
|
|
|
commitData.put(ATTENDANCE_ABNORMAL, Y);
|
|
|
commitData.put(ATTENDANCE_TABLE_LATE, Y);
|
|
|
}
|
|
|
+ UpdateDto updateDto = new UpdateDto();
|
|
|
+ JSONObject commitDataUpdate = new JSONObject();
|
|
|
if (GO_TO_WORK_TYPE == type) {
|
|
|
commitData.put(ATTENDANCE_TABLE_WORK, currentTime);
|
|
|
+ commitDataUpdate.put(ATTENDANCE_TABLE_WORK, currentTime);
|
|
|
} else if (GO_OFF_WORK_TYPE == type) {
|
|
|
commitData.put(ATTENDANCE_TABLE_OFFWORK, currentTime);
|
|
|
+ commitDataUpdate.put(ATTENDANCE_TABLE_OFFWORK, currentTime);
|
|
|
}else if(GO_TO_WORK_TYPE_PM == type){
|
|
|
commitData.put(ATTENDANCE_TABLE_WORK_PM, currentTime);
|
|
|
+ commitDataUpdate.put(ATTENDANCE_TABLE_WORK_PM, currentTime);
|
|
|
}else if(GO_OFF_WORK_TYPE_PM == type){
|
|
|
commitData.put(ATTENDANCE_TABLE_OFFWORK_PM, currentTime);
|
|
|
+ commitDataUpdate.put(ATTENDANCE_TABLE_OFFWORK_PM, currentTime);
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = JSONObjectUtils.putValue(ATTENDANCE_USER_NAME, SecurityUtils.getUsername(), ATTENDANCE_TABLE_TODAYTIME, Lists.newArrayList(DateUtils.getDate()));
|
|
|
+ JSONObject oneByMap = commonService.getOneByMap(tableName, jsonObject);
|
|
|
+ if (MapUtils.isEmpty(oneByMap)){
|
|
|
+ saveClockOn(tableName, commitData);
|
|
|
+ }else {
|
|
|
+ Long id = oneByMap.getLong("id");
|
|
|
+ updateDto.setCommitData(commitDataUpdate);
|
|
|
+ JSONObjectUtils.putValue("id",id);
|
|
|
+ updateDto.setTableName(tableName);
|
|
|
+ commonService.update(updateDto);
|
|
|
}
|
|
|
- saveClockOn(tableName, commitData);
|
|
|
return commitData;
|
|
|
}
|
|
|
|