Administrator пре 3 година
родитељ
комит
0d21189798

+ 32 - 8
boman-web-core/src/main/java/com/boman/web/core/service/attendance/AttendanceServiceImpl.java

@@ -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;
     }