|
@ -14,10 +14,7 @@ import org.springframework.stereotype.Service;
|
14
|
14
|
import java.text.ParseException;
|
15
|
15
|
import java.text.SimpleDateFormat;
|
16
|
16
|
|
17
|
|
import java.util.Date;
|
18
|
|
import java.util.HashMap;
|
19
|
|
import java.util.List;
|
20
|
|
import java.util.Map;
|
|
17
|
import java.util.*;
|
21
|
18
|
|
22
|
19
|
/**
|
23
|
20
|
* @Auther: 王超
|
|
@ -129,7 +126,110 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
|
129
|
126
|
}
|
130
|
127
|
});
|
131
|
128
|
|
132
|
|
String[] attendanceStatusArray = new String[2];
|
|
129
|
//存放考勤状态
|
|
130
|
ArrayList<Object> attendanceStatusList = new ArrayList<>();
|
|
131
|
//判断是否是外勤
|
|
132
|
if (dailyAttendance.get("goToWorkExceptionStatus")!=null&& "FIE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
|
|
133
|
attendanceStatusList.add("上午外勤");
|
|
134
|
}
|
|
135
|
if (dailyAttendance.get("goOffWorkExceptionStatus")!=null&&"FIE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
|
|
136
|
attendanceStatusList.add("下午外勤");
|
|
137
|
}
|
|
138
|
//判断是否是加班
|
|
139
|
if (dailyAttendance.get("goToWorkExceptionStatus")!=null&& "OVE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
|
|
140
|
attendanceStatusList.add("上午加班");
|
|
141
|
}
|
|
142
|
if (dailyAttendance.get("goOffWorkExceptionStatus")!=null&&"OVE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
|
|
143
|
attendanceStatusList.add("下午加班");
|
|
144
|
}
|
|
145
|
|
|
146
|
//如果都正常有外勤显示外勤,没外勤显示正常,不属于异常考勤
|
|
147
|
if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
148
|
if(!(null!=attendanceStatusList&&attendanceStatusList.size()>0)){
|
|
149
|
attendanceStatusList.add("正常");
|
|
150
|
}
|
|
151
|
dailyAttendance.put("isAbnormal",false);
|
|
152
|
}
|
|
153
|
//如果上午正常,下午非正常 则显示下午的
|
|
154
|
if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
155
|
if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
156
|
attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
|
|
157
|
}
|
|
158
|
if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
159
|
attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
|
|
160
|
}
|
|
161
|
if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
162
|
attendanceStatusList.add("旷工"+dailyAttendance.get("goToWorkTime") +"天");
|
|
163
|
}
|
|
164
|
if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
165
|
attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
|
|
166
|
dailyAttendance.put("isAbnormal",false);
|
|
167
|
}else{
|
|
168
|
dailyAttendance.put("isAbnormal",true);
|
|
169
|
}
|
|
170
|
}
|
|
171
|
//如果上午非正常,下午正常 则显示上午的
|
|
172
|
if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
173
|
if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
174
|
attendanceStatusList.add("迟到"+dailyAttendance.get("goToWorkTime") +"分");
|
|
175
|
}
|
|
176
|
if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
177
|
attendanceStatusList.add("早退"+dailyAttendance.get("goToWorkTime") +"分");
|
|
178
|
}
|
|
179
|
if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
180
|
attendanceStatusList.add("旷工"+dailyAttendance.get("goToWorkTime") +"天");
|
|
181
|
}
|
|
182
|
if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
183
|
attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
|
|
184
|
dailyAttendance.put("isAbnormal",false);
|
|
185
|
}else{
|
|
186
|
dailyAttendance.put("isAbnormal",true);
|
|
187
|
}
|
|
188
|
}
|
|
189
|
//如果上午非正常,下午非正常
|
|
190
|
if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
191
|
//如果上下午状态相等且是放假 倒休 事假 年假 病假 放假 显示一种状态 非异常考勤
|
|
192
|
if(dailyAttendance.get("goToWorkStatus").equals(dailyAttendance.get("goOffWorkStatus"))&&("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus")))){
|
|
193
|
attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
|
|
194
|
dailyAttendance.put("isAbnormal",false);
|
|
195
|
}
|
|
196
|
//如果上下午状态相等且是旷工 显示一种状态 异常考勤
|
|
197
|
else if(dailyAttendance.get("goToWorkStatus").equals(dailyAttendance.get("goOffWorkStatus"))&&"旷工".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
198
|
attendanceStatusList.add("旷工1天");
|
|
199
|
dailyAttendance.put("isAbnormal",true);
|
|
200
|
}else{
|
|
201
|
//显示俩种状态
|
|
202
|
String[] attendanceStatusArray = new String[2];
|
|
203
|
attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
|
|
204
|
attendanceStatusArray[1]= (String) dailyAttendance.get("goOffWorkStatus");
|
|
205
|
dailyAttendance.put("isAbnormal",false);
|
|
206
|
|
|
207
|
if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
208
|
attendanceStatusArray[0]="迟到"+dailyAttendance.get("goToWorkTime") +"分";
|
|
209
|
dailyAttendance.put("isAbnormal",true);
|
|
210
|
}
|
|
211
|
if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
212
|
attendanceStatusArray[1]="早退"+dailyAttendance.get("goOffWorkTime") +"分";
|
|
213
|
dailyAttendance.put("isAbnormal",true);
|
|
214
|
}
|
|
215
|
if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
216
|
attendanceStatusArray[0]="旷工"+dailyAttendance.get("goToWorkTime") +"天";
|
|
217
|
dailyAttendance.put("isAbnormal",true);
|
|
218
|
}
|
|
219
|
if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
220
|
attendanceStatusArray[0]="旷工"+dailyAttendance.get("goOffWorkTime") +"天";
|
|
221
|
dailyAttendance.put("isAbnormal",true);
|
|
222
|
}
|
|
223
|
if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))||"未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
224
|
dailyAttendance.put("isAbnormal",true);
|
|
225
|
}
|
|
226
|
attendanceStatusList.add(attendanceStatusArray[0]);
|
|
227
|
attendanceStatusList.add(attendanceStatusArray[1]);
|
|
228
|
}
|
|
229
|
dailyAttendance.put("descr",attendanceStatusList);
|
|
230
|
}
|
|
231
|
|
|
232
|
/* String[] attendanceStatusArray = new String[2];
|
133
|
233
|
dailyAttendance.put("date",dailyAttendance.get("workDay"));
|
134
|
234
|
dailyAttendance.put("isAbnormal",true);
|
135
|
235
|
if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
@ -166,9 +266,9 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
|
166
|
266
|
attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
|
167
|
267
|
}
|
168
|
268
|
dailyAttendance.put("descr",attendanceStatusArray);
|
169
|
|
}
|
|
269
|
}*/
|
170
|
270
|
});
|
171
|
|
List<Map<String, Object>> dataList = attendanceReportResponse.getData();
|
|
271
|
/* List<Map<String, Object>> dataList = attendanceReportResponse.getData();
|
172
|
272
|
dataList.forEach((data)->{
|
173
|
273
|
String[] attendanceStatus = (String[]) data.get("descr");
|
174
|
274
|
if(null!=attendanceStatus&&attendanceStatus.length>0){
|
|
@ -178,7 +278,7 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
|
178
|
278
|
data.put("descr",attendanceStatusArray);
|
179
|
279
|
}
|
180
|
280
|
}
|
181
|
|
});
|
|
281
|
});*/
|
182
|
282
|
|
183
|
283
|
HashMap<String, Object> attendanceReportMap = new HashMap<>();
|
184
|
284
|
attendanceReportMap.put("userId",params.get("id"));
|
|
@ -225,8 +325,111 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
|
225
|
325
|
dailyAttendance.put("goOffWorkStatus", clockingStatus.getValue());
|
226
|
326
|
}
|
227
|
327
|
});
|
|
328
|
//存放考勤状态
|
|
329
|
ArrayList<Object> attendanceStatusList = new ArrayList<>();
|
|
330
|
//判断是否是外勤
|
|
331
|
if (dailyAttendance.get("goToWorkExceptionStatus")!=null&& "FIE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
|
|
332
|
attendanceStatusList.add("上午外勤");
|
|
333
|
}
|
|
334
|
if (dailyAttendance.get("goOffWorkExceptionStatus")!=null&&"FIE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
|
|
335
|
attendanceStatusList.add("下午外勤");
|
|
336
|
}
|
|
337
|
//判断是否是加班
|
|
338
|
if (dailyAttendance.get("goToWorkExceptionStatus")!=null&& "OVE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
|
|
339
|
attendanceStatusList.add("上午加班");
|
|
340
|
}
|
|
341
|
if (dailyAttendance.get("goOffWorkExceptionStatus")!=null&&"OVE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
|
|
342
|
attendanceStatusList.add("下午加班");
|
|
343
|
}
|
|
344
|
|
|
345
|
//如果都正常有外勤显示外勤,没外勤显示正常,不属于异常考勤
|
|
346
|
if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
347
|
if(!(null!=attendanceStatusList&&attendanceStatusList.size()>0)){
|
|
348
|
attendanceStatusList.add("正常");
|
|
349
|
}
|
|
350
|
dailyAttendance.put("isAbnormal",false);
|
|
351
|
}
|
|
352
|
//如果上午正常,下午非正常 则显示下午的
|
|
353
|
if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
354
|
if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
355
|
attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
|
|
356
|
}
|
|
357
|
if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
358
|
attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
|
|
359
|
}
|
|
360
|
if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
361
|
attendanceStatusList.add("旷工"+dailyAttendance.get("goToWorkTime") +"天");
|
|
362
|
}
|
|
363
|
if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
364
|
attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
|
|
365
|
dailyAttendance.put("isAbnormal",false);
|
|
366
|
}else{
|
|
367
|
dailyAttendance.put("isAbnormal",true);
|
|
368
|
}
|
|
369
|
}
|
|
370
|
//如果上午非正常,下午正常 则显示上午的
|
|
371
|
if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
372
|
if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
373
|
attendanceStatusList.add("迟到"+dailyAttendance.get("goToWorkTime") +"分");
|
|
374
|
}
|
|
375
|
if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
376
|
attendanceStatusList.add("早退"+dailyAttendance.get("goToWorkTime") +"分");
|
|
377
|
}
|
|
378
|
if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
379
|
attendanceStatusList.add("旷工"+dailyAttendance.get("goToWorkTime") +"天");
|
|
380
|
}
|
|
381
|
if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
382
|
attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
|
|
383
|
dailyAttendance.put("isAbnormal",false);
|
|
384
|
}else{
|
|
385
|
dailyAttendance.put("isAbnormal",true);
|
|
386
|
}
|
|
387
|
}
|
|
388
|
//如果上午非正常,下午非正常
|
|
389
|
if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
390
|
//如果上下午状态相等且是放假 倒休 事假 年假 病假 放假 显示一种状态 非异常考勤
|
|
391
|
if(dailyAttendance.get("goToWorkStatus").equals(dailyAttendance.get("goOffWorkStatus"))&&("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus")))){
|
|
392
|
attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
|
|
393
|
dailyAttendance.put("isAbnormal",false);
|
|
394
|
}
|
|
395
|
//如果上下午状态相等且是旷工 显示一种状态 异常考勤
|
|
396
|
else if(dailyAttendance.get("goToWorkStatus").equals(dailyAttendance.get("goOffWorkStatus"))&&"旷工".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
397
|
attendanceStatusList.add("旷工1天");
|
|
398
|
dailyAttendance.put("isAbnormal",true);
|
|
399
|
}else{
|
|
400
|
//显示俩种状态
|
|
401
|
String[] attendanceStatusArray = new String[2];
|
|
402
|
attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
|
|
403
|
attendanceStatusArray[1]= (String) dailyAttendance.get("goOffWorkStatus");
|
|
404
|
dailyAttendance.put("isAbnormal",false);
|
|
405
|
|
|
406
|
if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
407
|
attendanceStatusArray[0]="迟到"+dailyAttendance.get("goToWorkTime") +"分";
|
|
408
|
dailyAttendance.put("isAbnormal",true);
|
|
409
|
}
|
|
410
|
if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
411
|
attendanceStatusArray[1]="早退"+dailyAttendance.get("goOffWorkTime") +"分";
|
|
412
|
dailyAttendance.put("isAbnormal",true);
|
|
413
|
}
|
|
414
|
if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
|
|
415
|
attendanceStatusArray[0]="旷工"+dailyAttendance.get("goToWorkTime") +"天";
|
|
416
|
dailyAttendance.put("isAbnormal",true);
|
|
417
|
}
|
|
418
|
if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
419
|
attendanceStatusArray[0]="旷工"+dailyAttendance.get("goOffWorkTime") +"天";
|
|
420
|
dailyAttendance.put("isAbnormal",true);
|
|
421
|
}
|
|
422
|
if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))||"未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
|
|
423
|
dailyAttendance.put("isAbnormal",true);
|
|
424
|
}
|
|
425
|
attendanceStatusList.add(attendanceStatusArray[0]);
|
|
426
|
attendanceStatusList.add(attendanceStatusArray[1]);
|
|
427
|
}
|
|
428
|
dailyAttendance.put("descr",attendanceStatusList);
|
|
429
|
}
|
228
|
430
|
|
229
|
|
String[] attendanceStatusArray = new String[2];
|
|
431
|
|
|
432
|
/* String[] attendanceStatusArray = new String[2];
|
230
|
433
|
|
231
|
434
|
if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
|
232
|
435
|
//上下班都正常
|
|
@ -263,12 +466,12 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
|
263
|
466
|
attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
|
264
|
467
|
}
|
265
|
468
|
dailyAttendance.put("descr",attendanceStatusArray);
|
266
|
|
}
|
|
469
|
}*/
|
267
|
470
|
});
|
268
|
471
|
} catch (ParseException e) {
|
269
|
472
|
e.printStackTrace();
|
270
|
473
|
}
|
271
|
|
List<Map<String, Object>> dataList = attendanceReport.getData().getData();
|
|
474
|
/* List<Map<String, Object>> dataList = attendanceReport.getData().getData();
|
272
|
475
|
dataList.forEach((data)->{
|
273
|
476
|
String[] attendanceStatus = (String[]) data.get("attendanceStatus");
|
274
|
477
|
if(null!=attendanceStatus&&attendanceStatus.length>0){
|
|
@ -278,7 +481,7 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
|
278
|
481
|
data.put("attendanceStatus",attendanceStatusArray);
|
279
|
482
|
}
|
280
|
483
|
}
|
281
|
|
});
|
|
484
|
});*/
|
282
|
485
|
return attendanceReport;
|
283
|
486
|
}
|
284
|
487
|
}
|