Parcourir la Source

考勤详情显示格式修改bug与考勤月报修改时间格式

wangchao 4 ans auparavant
Parent
commit
efad9c2d65

+ 248 - 171
security-protection-service/src/main/java/com/ai/bss/security/protection/service/impl/AttendanceReportServiceImpl.java

@ -12,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired;
12 12
import org.springframework.stereotype.Service;
13 13
import org.springframework.util.CollectionUtils;
14 14
15
import java.math.BigDecimal;
16
import java.text.NumberFormat;
15 17
import java.text.ParseException;
16 18
import java.text.SimpleDateFormat;
17 19
import java.util.ArrayList;
@ -57,18 +59,17 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
57 59
                paramap.put("beginDay",formatter.format((Date) dailyAttendanceMap.get("beginDay")));
58 60
                paramap.put("endDay",formatter.format((Date) dailyAttendanceMap.get("endDay")));
59 61
60
           /* for(Map<String, Object> dailyAttendance:dailyAttendanceList ){
61
                dailyAttendance.put("beginDay",paramap.get("beginDay"));
62
                dailyAttendance.put("endDay",paramap.get("endDay"));
63
                mainjobpositionList.forEach((mainjobposition) -> {
64
                    if (mainjobposition.getCode().equals(dailyAttendance.get("mainJobPositionId"))) {
65
                        dailyAttendance.put("mainJobPositionId", mainjobposition.getValue());
66
                    }
67
                });
68
            }*/
69
70 62
                dailyAttendanceList.forEach((dailyAttendance)-> {
71
                    //转换迟到和早退的分钟为小时
63
                    //转换迟到和早退的分钟为小时 lateMinutes
64
                    long lateMinutes1 = (long) dailyAttendance.get("lateMinutes");
65
                    int lateMinute = (int)lateMinutes1;
66
                    double lateMinutes = new BigDecimal((float)lateMinute/60).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
67
                    dailyAttendance.put("lateMinutes", lateMinutes);
68
69
                    long earlyExitMinutes1 = (long) dailyAttendance.get("earlyExitMinutes");
70
                    int earlyExitMinute = (int)earlyExitMinutes1;
71
                    double earlyExitMinutes = new BigDecimal((float)earlyExitMinute/60).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
72
                    dailyAttendance.put("earlyExitMinutes", earlyExitMinutes);
72 73
73 74
                    //将每一条都加上开始和结束时间
74 75
                    dailyAttendance.put("beginDay",paramap.get("beginDay"));
@ -173,46 +174,85 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
173 174
                }
174 175
                //如果上午正常,下午非正常 则显示下午的
175 176
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
176
                    if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
177
                        attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
178
                        dailyAttendance.put("isAbnormal",true);
179
                    }else if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
180
                        attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
181
                        dailyAttendance.put("isAbnormal",true);
182
                    }else if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
183
                        attendanceStatusList.add("旷工0.5天");
184
                        dailyAttendance.put("isAbnormal",true);
185
                    }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
186
                        attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
187
                        dailyAttendance.put("isAbnormal",false);
177
                    //如果包含下午外勤,则除了放假之类的和旷工都不显示
178
                    if(!attendanceStatusList.isEmpty()&&!attendanceStatusList.contains("下午外勤")){
179
                        if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
180
                            attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
181
                            dailyAttendance.put("isAbnormal",true);
182
                        }else if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
183
                            attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
184
                            dailyAttendance.put("isAbnormal",true);
185
                        }else if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
186
                            attendanceStatusList.add("旷工0.5天");
187
                            dailyAttendance.put("isAbnormal",true);
188
                        }else if("未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
189
                            attendanceStatusList.add("下午未打卡");
190
                            dailyAttendance.put("isAbnormal",true);
191
                        }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
192
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
193
                            dailyAttendance.put("isAbnormal",false);
194
                        }else{
195
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
196
                            dailyAttendance.put("isAbnormal",true);
197
                        }
188 198
                    }else{
189
                        attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
190
                        dailyAttendance.put("isAbnormal",true);
199
                        if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
200
                            attendanceStatusList.add("旷工0.5天");
201
                            dailyAttendance.put("isAbnormal",true);
202
                        }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
203
                            attendanceStatusList.clear();
204
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
205
                            dailyAttendance.put("isAbnormal",false);
206
                        }else{
207
                            dailyAttendance.put("isAbnormal",false);
208
                        }
209
191 210
                    }
211
212
192 213
                }
193 214
                //如果上午非正常,下午正常 则显示上午的
194 215
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
195
                    if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
196
                        attendanceStatusList.add("迟到"+dailyAttendance.get("lateMinutes") +"分");
197
                        dailyAttendance.put("isAbnormal",true);
198
                    }else if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
199
                        attendanceStatusList.add("早退"+dailyAttendance.get("earlyExitMinutes") +"分");
200
                        dailyAttendance.put("isAbnormal",true);
201
                    }else if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
202
                        attendanceStatusList.add("旷工0.5天");
203
                        dailyAttendance.put("isAbnormal",true);
204
                    }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
205
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
206
                        dailyAttendance.put("isAbnormal",false);
216
                    //如果包含上午外勤,则除了放假之类的和旷工都不显示
217
                    if(!attendanceStatusList.isEmpty()&&!attendanceStatusList.contains("上午外勤")){
218
                        if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
219
                            attendanceStatusList.add("迟到"+dailyAttendance.get("lateMinutes") +"分");
220
                            dailyAttendance.put("isAbnormal",true);
221
                        }else if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
222
                            attendanceStatusList.add("早退"+dailyAttendance.get("earlyExitMinutes") +"分");
223
                            dailyAttendance.put("isAbnormal",true);
224
                        }else if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
225
                            attendanceStatusList.add("旷工0.5天");
226
                            dailyAttendance.put("isAbnormal",true);
227
                        }else if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))){
228
                            attendanceStatusList.add("上午未打卡");
229
                            dailyAttendance.put("isAbnormal",true);
230
                        }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
231
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
232
                            dailyAttendance.put("isAbnormal",false);
233
                        }else{
234
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
235
                            dailyAttendance.put("isAbnormal",true);
236
                        }
207 237
                    }else{
208
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
209
                        dailyAttendance.put("isAbnormal",true);
238
                        if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
239
                            attendanceStatusList.add("旷工0.5天");
240
                            dailyAttendance.put("isAbnormal",true);
241
                        }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
242
                            attendanceStatusList.clear();
243
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
244
                            dailyAttendance.put("isAbnormal",false);
245
                        }else{
246
                            dailyAttendance.put("isAbnormal",false);
247
                        }
210 248
                    }
249
211 250
                }
212 251
                //如果上午非正常,下午非正常
213 252
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
214 253
                    //如果上下午状态相等且是放假 倒休 事假 年假 病假 放假 显示一种状态 非异常考勤
215 254
                    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")))){
255
                        attendanceStatusList.clear();
216 256
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
217 257
                        dailyAttendance.put("isAbnormal",false);
218 258
                    }
@ -240,68 +280,69 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
240 280
                            dailyAttendance.put("isAbnormal",true);
241 281
                        }
242 282
                        if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
243
                            attendanceStatusArray[0]="旷工0.5天";
283
                            attendanceStatusArray[1]="旷工0.5天";
244 284
                            dailyAttendance.put("isAbnormal",true);
245 285
                        }
246
                        if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))||"未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
286
                        if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))){
287
                            attendanceStatusArray[0]="上午未打卡";
247 288
                            dailyAttendance.put("isAbnormal",true);
248 289
                        }
290
                        if("未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
291
                            attendanceStatusArray[1]="下午未打卡";
292
                            dailyAttendance.put("isAbnormal",true);
293
                        }
294
                        if(!attendanceStatusList.isEmpty()&&attendanceStatusList.contains("上午外勤")){
295
                            //如果上午外勤,上午放假等假期显示假期,上午旷工显示外勤与假期,否则都显示外勤
296
                            if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
297
                                //不动
298
                            }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
299
                                //将上午外勤移除
300
                                Iterator<Object> iterator = attendanceStatusList.iterator();
301
                                while (iterator.hasNext()){
302
                                    String next =(String) iterator.next();
303
                                    if("上午外勤".equals(next)){
304
                                        iterator.remove();
305
                                    }
306
                                }
307
                            }else{
308
                                //将attendanceStatusArray[0]移除
309
                                attendanceStatusArray[0]=null;
310
                            }
311
                        }
312
                        if(!attendanceStatusList.isEmpty()&&attendanceStatusList.contains("下午外勤")){
313
                            //如果下午外勤,下午放假等假期显示假期,下午旷工显示外勤与假期,否则都显示外勤
314
                            if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
315
                                //不动
316
                            }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
317
                                //将下午外勤移除
318
                                Iterator<Object> iterator = attendanceStatusList.iterator();
319
                                while (iterator.hasNext()){
320
                                    String next =(String) iterator.next();
321
                                    if("下午外勤".equals(next)){
322
                                        iterator.remove();
323
                                    }
324
                                }
325
                            }else{
326
                                //将attendanceStatusArray[1]移除
327
                                attendanceStatusArray[1]=null;
328
                            }
329
                        }
249 330
                        attendanceStatusList.add(attendanceStatusArray[0]);
250 331
                        attendanceStatusList.add(attendanceStatusArray[1]);
251 332
                    }
252
                   // dailyAttendance.put("descr",attendanceStatusList);
253 333
                }
254
                dailyAttendance.put("descr",attendanceStatusList);
255
              /*  String[] attendanceStatusArray = new String[2];
256
                dailyAttendance.put("date",dailyAttendance.get("workDay"));
257
                dailyAttendance.put("isAbnormal",true);
258
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
259
                    //上下班都正常
260
                    dailyAttendance.put("isAbnormal",false);
261
                    attendanceStatusArray[0]="正常";
262
                    dailyAttendance.put("descr",attendanceStatusArray);
263
                }else if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
264
                    attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
265
                    attendanceStatusArray[1]= (String) dailyAttendance.get("goOffWorkStatus");
266
                    //上下班都不正常
267
                    if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
268
                        attendanceStatusArray[0]="迟到"+dailyAttendance.get("goToWorkTime") +"分";
269
                    }
270
                    if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
271
                        attendanceStatusArray[1]="早退"+dailyAttendance.get("goOffWorkTime") +"分";
272
                    }
273
                    if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
274
                        //attendanceStatusArray[1]=null;
275
                        attendanceStatusArray[1]="旷工"+dailyAttendance.get("goOffWorkTime") +"天";
276
                        attendanceStatusArray[0]="旷工"+dailyAttendance.get("goToWorkTime") +"天";
277
                    }
278
                    if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
279
                        //attendanceStatusArray[1]=null;
280
                        attendanceStatusArray[1]=(String) dailyAttendance.get("goOffWorkStatus");
281
                        attendanceStatusArray[0]=(String) dailyAttendance.get("goToWorkStatus");
282
                    }
283
                    dailyAttendance.put("descr",attendanceStatusArray);
284
                }else{
285
                    //上下班一个正常一个不正常
286
                    if("正常".equals(dailyAttendance.get("goToWorkStatus"))){
287
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goOffWorkStatus");
288
                    }else{
289
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
290
                    }
291
                    dailyAttendance.put("descr",attendanceStatusArray);
292
                }*/
293
            });
294
          /*  List<Map<String, Object>> dataList = attendanceReportResponse.getData();
295
            dataList.forEach((data)->{
296
                String[] attendanceStatus = (String[]) data.get("descr");
297
                if(null!=attendanceStatus&&attendanceStatus.length>0){
298
                    String[] attendanceStatusArray = new String[1];
299
                    if(null==attendanceStatus[1]){
300
                        attendanceStatusArray[0]=attendanceStatus[0];
301
                        data.put("descr",attendanceStatusArray);
334
                //遍历集合,将为null的值去掉
335
                Iterator<Object> iterator = attendanceStatusList.iterator();
336
                while (iterator.hasNext()){
337
                    String next =(String) iterator.next();
338
                    if(null==next){
339
                        iterator.remove();
302 340
                    }
303 341
                }
304
            });*/
342
                dailyAttendance.put("descr",attendanceStatusList);
343
344
            });
345
305 346
306 347
            HashMap<String, Object> attendanceReportMap = new HashMap<>();
307 348
            attendanceReportMap.put("userId",params.get("id"));
@ -383,46 +424,83 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
383 424
                }
384 425
                //如果上午正常,下午非正常 则显示下午的
385 426
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
386
                    if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
387
                        attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
388
                        dailyAttendance.put("isAbnormal",true);
389
                    }else if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
390
                        attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
391
                        dailyAttendance.put("isAbnormal",true);
392
                    }else if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
393
                        attendanceStatusList.add("旷工0.5天");
394
                        dailyAttendance.put("isAbnormal",true);
395
                    }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
396
                        attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
397
                        dailyAttendance.put("isAbnormal",false);
427
                    //如果包含下午外勤,则除了放假之类的和旷工都不显示
428
                    if(!attendanceStatusList.isEmpty()&&!attendanceStatusList.contains("下午外勤")){
429
                        if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
430
                            attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
431
                            dailyAttendance.put("isAbnormal",true);
432
                        }else if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
433
                            attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
434
                            dailyAttendance.put("isAbnormal",true);
435
                        }else if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
436
                            attendanceStatusList.add("旷工0.5天");
437
                            dailyAttendance.put("isAbnormal",true);
438
                        }else if("未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
439
                            attendanceStatusList.add("下午未打卡");
440
                            dailyAttendance.put("isAbnormal",true);
441
                        }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
442
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
443
                            dailyAttendance.put("isAbnormal",false);
444
                        }else{
445
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
446
                            dailyAttendance.put("isAbnormal",true);
447
                        }
398 448
                    }else{
399
                        attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
400
                        dailyAttendance.put("isAbnormal",true);
449
                        if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
450
                            attendanceStatusList.add("旷工0.5天");
451
                            dailyAttendance.put("isAbnormal",true);
452
                        }else if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
453
                            attendanceStatusList.clear();
454
                            attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
455
                            dailyAttendance.put("isAbnormal",false);
456
                        }else{
457
                            dailyAttendance.put("isAbnormal",false);
458
                        }
459
401 460
                    }
402 461
                }
403 462
                //如果上午非正常,下午正常 则显示上午的
404 463
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
405
                    if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
406
                        attendanceStatusList.add("迟到"+dailyAttendance.get("lateMinutes") +"分");
407
                        dailyAttendance.put("isAbnormal",true);
408
                    }else if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
409
                        attendanceStatusList.add("早退"+dailyAttendance.get("earlyExitMinutes") +"分");
410
                        dailyAttendance.put("isAbnormal",true);
411
                    }else if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
412
                        attendanceStatusList.add("旷工0.5天");
413
                        dailyAttendance.put("isAbnormal",true);
414
                    }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
415
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
416
                        dailyAttendance.put("isAbnormal",false);
464
                    //如果包含上午外勤,则除了放假之类的和旷工都不显示
465
                    if(!attendanceStatusList.isEmpty()&&!attendanceStatusList.contains("上午外勤")){
466
                        if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
467
                            attendanceStatusList.add("迟到"+dailyAttendance.get("lateMinutes") +"分");
468
                            dailyAttendance.put("isAbnormal",true);
469
                        }else if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
470
                            attendanceStatusList.add("早退"+dailyAttendance.get("earlyExitMinutes") +"分");
471
                            dailyAttendance.put("isAbnormal",true);
472
                        }else if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
473
                            attendanceStatusList.add("旷工0.5天");
474
                            dailyAttendance.put("isAbnormal",true);
475
                        }else if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))){
476
                            attendanceStatusList.add("上午未打卡");
477
                            dailyAttendance.put("isAbnormal",true);
478
                        }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
479
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
480
                            dailyAttendance.put("isAbnormal",false);
481
                        }else{
482
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
483
                            dailyAttendance.put("isAbnormal",true);
484
                        }
417 485
                    }else{
418
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
419
                        dailyAttendance.put("isAbnormal",true);
486
                        if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
487
                            attendanceStatusList.add("旷工0.5天");
488
                            dailyAttendance.put("isAbnormal",true);
489
                        }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
490
                            attendanceStatusList.clear();
491
                            attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
492
                            dailyAttendance.put("isAbnormal",false);
493
                        }else{
494
                            dailyAttendance.put("isAbnormal",false);
495
                        }
420 496
                    }
497
421 498
                }
422 499
                //如果上午非正常,下午非正常
423 500
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
424 501
                    //如果上下午状态相等且是放假 倒休 事假 年假 病假 放假 显示一种状态 非异常考勤
425 502
                    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")))){
503
                        attendanceStatusList.clear();
426 504
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
427 505
                        dailyAttendance.put("isAbnormal",false);
428 506
                    }
@ -450,73 +528,72 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
450 528
                            dailyAttendance.put("isAbnormal",true);
451 529
                        }
452 530
                        if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
453
                            attendanceStatusArray[0]="旷工0.5天";
531
                            attendanceStatusArray[1]="旷工0.5天";
532
                            dailyAttendance.put("isAbnormal",true);
533
                        }
534
                        if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))){
535
                            attendanceStatusArray[0]="上午未打卡";
454 536
                            dailyAttendance.put("isAbnormal",true);
455 537
                        }
456
                        if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))||"未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
538
                        if("未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
539
                            attendanceStatusArray[1]="下午未打卡";
457 540
                            dailyAttendance.put("isAbnormal",true);
458 541
                        }
542
                        if(!attendanceStatusList.isEmpty()&&attendanceStatusList.contains("上午外勤")){
543
                            //如果上午外勤,上午放假等假期显示假期,上午旷工显示外勤与假期,否则都显示外勤
544
                            if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
545
                                //不动
546
                            }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
547
                                //将上午外勤移除
548
                                Iterator<Object> iterator = attendanceStatusList.iterator();
549
                                while (iterator.hasNext()){
550
                                    String next =(String) iterator.next();
551
                                    if("上午外勤".equals(next)){
552
                                        iterator.remove();
553
                                    }
554
                                }
555
                            }else{
556
                                //将attendanceStatusArray[0]移除
557
                                attendanceStatusArray[0]=null;
558
                            }
559
                        }
560
                        if(!attendanceStatusList.isEmpty()&&attendanceStatusList.contains("下午外勤")){
561
                            //如果下午外勤,下午放假等假期显示假期,下午旷工显示外勤与假期,否则都显示外勤
562
                            if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
563
                                //不动
564
                            }else if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
565
                                //将下午外勤移除
566
                                Iterator<Object> iterator = attendanceStatusList.iterator();
567
                                while (iterator.hasNext()){
568
                                    String next =(String) iterator.next();
569
                                    if("下午外勤".equals(next)){
570
                                        iterator.remove();
571
                                    }
572
                                }
573
                            }else{
574
                                //将attendanceStatusArray[1]移除
575
                                attendanceStatusArray[1]=null;
576
                            }
577
                        }
459 578
                        attendanceStatusList.add(attendanceStatusArray[0]);
460 579
                        attendanceStatusList.add(attendanceStatusArray[1]);
461 580
                    }
462
                    // dailyAttendance.put("descr",attendanceStatusList);
581
                }
582
                //遍历集合,将为null的值去掉
583
                Iterator<Object> iterator = attendanceStatusList.iterator();
584
                while (iterator.hasNext()){
585
                    String next =(String) iterator.next();
586
                    if(null==next){
587
                        iterator.remove();
588
                    }
463 589
                }
464 590
                dailyAttendance.put("descr",attendanceStatusList);
465 591
466 592
467
               /* String[] attendanceStatusArray = new String[2];
468
469
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
470
                    //上下班都正常
471
                    dailyAttendance.put("isAbnormal",false);
472
                    attendanceStatusArray[0]="正常";
473
                    dailyAttendance.put("descr",attendanceStatusArray);
474
                }else if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
475
                    attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
476
                    attendanceStatusArray[1]= (String) dailyAttendance.get("goOffWorkStatus");
477
                    //上下班都不正常
478
                    if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
479
                        attendanceStatusArray[0]="迟到"+dailyAttendance.get("goToWorkTime") +"分";
480
                    }
481
                    if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
482
                        attendanceStatusArray[1]="早退"+dailyAttendance.get("goOffWorkTime") +"分";
483
                    }
484
                    if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
485
                        //attendanceStatusArray[1]=null;
486
                        attendanceStatusArray[1]="旷工"+dailyAttendance.get("goOffWorkTime") +"天";
487
                        attendanceStatusArray[0]="旷工"+dailyAttendance.get("goToWorkTime") +"天";
488
                    }
489
                    if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
490
                        //attendanceStatusArray[1]=null;
491
                        attendanceStatusArray[1]=(String) dailyAttendance.get("goOffWorkStatus");
492
                        attendanceStatusArray[0]=(String) dailyAttendance.get("goToWorkStatus");
493
                    }
494
495
                    dailyAttendance.put("descr",attendanceStatusArray);
496
                }else{
497
                    //上下班一个正常一个不正常
498
                    if("正常".equals(dailyAttendance.get("goToWorkStatus"))){
499
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goOffWorkStatus");
500
                    }else{
501
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
502
                    }
503
                    dailyAttendance.put("descr",attendanceStatusArray);
504
                }*/
505 593
            });
506 594
        } catch (ParseException e) {
507 595
            e.printStackTrace();
508 596
        }
509
       /* List<Map<String, Object>> dataList = attendanceReport.getData().getData();
510
        dataList.forEach((data)->{
511
            String[] attendanceStatus = (String[]) data.get("attendanceStatus");
512
            if(null!=attendanceStatus&&attendanceStatus.length>0){
513
                String[] attendanceStatusArray = new String[1];
514
                if(null==attendanceStatus[1]){
515
                    attendanceStatusArray[0]=attendanceStatus[0];
516
                    data.put("attendanceStatus",attendanceStatusArray);
517
                }
518
            }
519
        });*/
520 597
        return attendanceReport;
521 598
    }
522 599
}