Subversion Repositories SmartDukaan

Rev

Rev 27445 | Rev 27449 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 27445 Rev 27446
Line 193... Line 193...
193
			List<EmployeeAttendance> employeeAttendances = employeeAttendanceRepository.selectByUserIdKeyASC(userId,
193
			List<EmployeeAttendance> employeeAttendances = employeeAttendanceRepository.selectByUserIdKeyASC(userId,
194
					deviceId, LocalDate.now());
194
					deviceId, LocalDate.now());
195
			long hours = 0;
195
			long hours = 0;
196
			long minutes = 0;
196
			long minutes = 0;
197
			long seconds = 0;
197
			long seconds = 0;
-
 
198
			long totalSeconds = 0;
198
			LocalDateTime startTime = null;
199
			LocalTime startTime = null;
199
			LocalDateTime endTime = null;
200
			LocalTime endTime = null;
-
 
201
			List<Long> hghg = new ArrayList<>();
200
 
202
 
201
			for (EmployeeAttendance em : employeeAttendances) {
203
			for (EmployeeAttendance em : employeeAttendances) {
202
				if (em.getPunch().equals("punchIn")) {
204
				if (em.getPunch().equals("punchIn")) {
203
					startTime = em.getCreateTimestamp();
205
					startTime = em.getCreateTimestamp().toLocalTime();
204
				} else if (em.getPunch().equals("punchOut")) {
206
				} else if (em.getPunch().equals("punchOut")) {
205
					endTime = em.getCreateTimestamp();
207
					endTime = em.getCreateTimestamp().toLocalTime();
206
				}
208
				}
207
				if (startTime != null && endTime != null) {
209
				if (startTime != null && endTime != null) {
208
					long mites = ChronoUnit.MINUTES.between(startTime, endTime);
-
 
209
					long hour = ChronoUnit.HOURS.between(startTime, endTime);
-
 
210
					long secds = ChronoUnit.SECONDS.between(startTime, endTime);
210
					Long secondsBetween = ChronoUnit.SECONDS.between(startTime, endTime);
211
					hours = hours + hour;
-
 
212
					minutes = minutes + mites;
-
 
213
					if (minutes >= 60) {
-
 
214
						minutes = minutes - 60;
-
 
215
					}
-
 
216
					seconds = seconds + secds;
211
					totalSeconds += secondsBetween;
217
					if (seconds >= 60) {
-
 
218
						seconds = seconds - 60;
-
 
219
					}
-
 
220
 
212
 
221
					startTime = null;
213
					startTime = null;
222
					endTime = null;
214
					endTime = null;
223
				}
215
				}
224
 
216
 
225
			}
217
			}
226
			LOGGER.info("employeeAttendance" + employeeAttendances);
218
			LOGGER.info("employeeAttendance" + employeeAttendances);
227
 
219
 
-
 
220
			hours = totalSeconds / 3600;
-
 
221
			minutes = (totalSeconds % 3600) / 60;
-
 
222
			seconds = totalSeconds % 60;
228
			EmployeeAttendanceModel emm = new EmployeeAttendanceModel();
223
			EmployeeAttendanceModel emm = new EmployeeAttendanceModel();
229
			emm.setHours(hours);
224
			emm.setHours(hours);
230
			emm.setMinutes(minutes);
225
			emm.setMinutes(minutes);
231
			emm.setSeconds(seconds);
226
			emm.setSeconds(seconds);
232
			return responseSender.ok(emm);
227
			return responseSender.ok(emm);
Line 275... Line 270...
275
		}
270
		}
276
		return responseSender.ok(true);
271
		return responseSender.ok(true);
277
 
272
 
278
	}
273
	}
279
 
274
 
280
	@RequestMapping(value = "/employee/hourcacl", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
-
 
281
	public ResponseEntity<?> workingHourCalculation(HttpServletRequest request,
-
 
282
			@RequestParam(name = "userId") int userId, @RequestParam(name = "deviceId") int deviceId,
-
 
283
			@RequestParam(name = "punchType") PunchType punchType, @RequestParam(name = "punch") String punch) {
-
 
284
 
-
 
285
		EmployeeAttendance employeeAttendance = new EmployeeAttendance();
-
 
286
		employeeAttendance.setUserId(userId);
-
 
287
		employeeAttendance.setDeviceId(deviceId);
-
 
288
		employeeAttendance.setPunch(punch);
-
 
289
		employeeAttendance.setPunchType(punchType);
-
 
290
		employeeAttendance.setCreateTimestamp(LocalDateTime.now());
-
 
291
		employeeAttendanceRepository.persist(employeeAttendance);
-
 
292
 
-
 
293
		List<EmployeeAttendance> employeeAttendances = employeeAttendanceRepository.selectByUserIdKeyASC(userId,
-
 
294
				deviceId, LocalDate.now());
-
 
295
		long hours = 0;
-
 
296
		long minutes = 0;
-
 
297
		long seconds = 0;
-
 
298
		LocalDateTime startTime = null;
-
 
299
		LocalDateTime endTime = null;
-
 
300
		List<Long> hghg = new ArrayList<>();
-
 
301
 
-
 
302
		for (EmployeeAttendance em : employeeAttendances) {
-
 
303
			if (em.getPunch().equals("punchIn")) {
-
 
304
				startTime = em.getCreateTimestamp();
-
 
305
			} else if (em.getPunch().equals("punchOut")) {
-
 
306
				endTime = em.getCreateTimestamp();
-
 
307
			}
-
 
308
			if (startTime != null && endTime != null) {
-
 
309
				long mites = ChronoUnit.MINUTES.between(startTime, endTime);
-
 
310
				long hour = ChronoUnit.HOURS.between(startTime, endTime);
-
 
311
				long secds = ChronoUnit.SECONDS.between(startTime, endTime);
-
 
312
				hours = hours + hour;
-
 
313
				minutes = minutes + mites;
-
 
314
				if (minutes >= 60) {
-
 
315
					minutes = minutes - 60;
-
 
316
				}
-
 
317
				seconds = seconds + secds;
-
 
318
				if (seconds >= 60) {
-
 
319
					seconds = seconds - 60;
-
 
320
				}
-
 
321
 
-
 
322
				startTime = null;
-
 
323
				endTime = null;
-
 
324
			}
-
 
325
 
-
 
326
		}
-
 
327
		LOGGER.info("employeeAttendance" + employeeAttendances);
-
 
328
 
-
 
329
		EmployeeAttendanceModel emm = new EmployeeAttendanceModel();
-
 
330
		emm.setHours(hours);
-
 
331
		emm.setMinutes(minutes);
-
 
332
		emm.setSeconds(seconds);
-
 
333
		return responseSender.ok(emm);
-
 
334
 
-
 
335
	}
-
 
336
}
275
}