Bladeren bron

考勤日报与考勤详情显示格式修改

wangchao 4 jaren geleden
bovenliggende
commit
3a4017be26

+ 215 - 12
security-protection-service/src/main/java/com/ai/bss/security/protection/service/impl/AttendanceReportServiceImpl.java

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