Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

wangdong6 4 lat temu
rodzic
commit
0584159bd1

+ 2 - 2
security-protection-service/src/main/java/com/ai/bss/security/protection/controller/AttendanceReportController.java

@ -124,12 +124,12 @@ public class AttendanceReportController {
124 124
125 125
	@ResponseBody
126 126
	@RequestMapping("/queryAttendanceDetailReport")
127
	public CommonResponse<List<Map<String, Object>>> queryAttendanceDetailReport(@ModelAttribute AttendanceReport attendanceReport) throws Exception {
127
	public CommonResponse<? extends Object> queryAttendanceDetailReport(@ModelAttribute AttendanceReport attendanceReport) throws Exception {
128 128
		Map<String, Object> params = new HashMap<>();
129 129
		params.put("beginDay",attendanceReport.getBeginDay());
130 130
		params.put("endDay",attendanceReport.getEndDay());
131 131
		params.put("id",attendanceReport.getId());
132
		CommonResponse<List<Map<String, Object>>> commonResponse = attendanceReportService.queryAttendanceDetailReport(params);
132
		CommonResponse<? extends Object> commonResponse = attendanceReportService.queryAttendanceDetailReport(params);
133 133
		return commonResponse;
134 134
135 135

+ 202 - 2
security-protection-service/src/main/java/com/ai/bss/security/protection/service/impl/AttendanceReportServiceImpl.java

@ -2,14 +2,20 @@ package com.ai.bss.security.protection.service.impl;
2 2
3 3
import com.ai.abc.api.model.CommonRequest;
4 4
import com.ai.abc.api.model.CommonResponse;
5
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
5 6
import com.ai.bss.components.common.model.PageBean;
6 7
import com.ai.bss.security.protection.service.interfaces.AttendanceReportService;
8
import com.ai.bss.security.protection.service.interfaces.CharSpecService;
7 9
import com.ai.bss.security.protection.utils.EbcConstant;
8 10
import com.ai.bss.worker.service.api.AttendanceStatusQuery;
9 11
import org.springframework.beans.factory.annotation.Autowired;
10 12
import org.springframework.stereotype.Service;
11 13
12 14
import java.text.ParseException;
15
import java.text.SimpleDateFormat;
16
17
import java.util.Date;
18
import java.util.HashMap;
13 19
import java.util.List;
14 20
import java.util.Map;
15 21
@ -21,16 +27,48 @@ import java.util.Map;
21 27
22 28
@Service
23 29
public class AttendanceReportServiceImpl implements AttendanceReportService {
24
30
    @Autowired
31
    CharSpecService charSpecService;
25 32
26 33
27 34
    @Autowired
28 35
    AttendanceStatusQuery attendanceStatusQuery;
29 36
    @Override
30 37
    public CommonResponse<PageBean<Map<String,Object>>> queryMonthlyAttendanceReport(Map<String, Object> params, int pageNumber, int pageSize) {
38
39
        //在特征表获取职务值
40
        List<CharacteristicSpecValue> mainjobpositionList = charSpecService.getCharSpecList(EbcConstant.MAINJOBPOSITION);
41
31 42
        CommonResponse<PageBean<Map<String,Object>>>  attendanceReport = null;
32 43
        try {
33 44
            attendanceReport = attendanceStatusQuery.queryMonthlyAttendanceReport((new CommonRequest<>(params,pageNumber,pageSize)));
45
            List<Map<String, Object>> dailyAttendanceList = attendanceReport.getData().getData();
46
            Map<String, Object> dailyAttendanceMap = dailyAttendanceList.get(0);
47
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
48
            Map<String, String> paramap= new HashMap<>();
49
            paramap.put("beginDay",formatter.format((Date) dailyAttendanceMap.get("beginDay")));
50
            paramap.put("endDay",formatter.format((Date) dailyAttendanceMap.get("endDay")));
51
52
           /* for(Map<String, Object> dailyAttendance:dailyAttendanceList ){
53
                dailyAttendance.put("beginDay",paramap.get("beginDay"));
54
                dailyAttendance.put("endDay",paramap.get("endDay"));
55
                mainjobpositionList.forEach((mainjobposition) -> {
56
                    if (mainjobposition.getCode().equals(dailyAttendance.get("mainJobPositionId"))) {
57
                        dailyAttendance.put("mainJobPositionId", mainjobposition.getValue());
58
                    }
59
                });
60
61
            }*/
62
           dailyAttendanceList.forEach((dailyAttendance)-> {
63
64
                dailyAttendance.put("beginDay",paramap.get("beginDay"));
65
                dailyAttendance.put("endDay",paramap.get("endDay"));
66
                mainjobpositionList.forEach((mainjobposition) -> {
67
                    if (mainjobposition.getCode().equals(dailyAttendance.get("mainJobPositionId"))) {
68
                        dailyAttendance.put("mainJobPositionId", mainjobposition.getValue());
69
                    }
70
                });
71
            });
34 72
        } catch (ParseException e) {
35 73
            e.printStackTrace();
36 74
        }
@ -40,9 +78,27 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
40 78
    @Override
41 79
    public CommonResponse<PageBean<Map<String,Object>>> queryPageAbnormalAttendance(Map<String, Object> params, int pageNumber, int pageSize) {
42 80
        params.put("statusType", EbcConstant.ATTENDANCE_STATUSTYPE_ABNORMAL);
81
        //在特征表获取职务值
82
        List<CharacteristicSpecValue> mainjobpositionList = charSpecService.getCharSpecList(EbcConstant.MAINJOBPOSITION);
43 83
        CommonResponse<PageBean<Map<String,Object>>>  attendanceReport = null;
44 84
        try {
45 85
            attendanceReport = attendanceStatusQuery.queryMonthlyAttendanceReport((new CommonRequest<>(params,pageNumber,pageSize)));
86
            List<Map<String, Object>> dailyAttendanceList = attendanceReport.getData().getData();
87
            Map<String, Object> dailyAttendanceMap = dailyAttendanceList.get(0);
88
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
89
            Map<String, String> paramap= new HashMap<>();
90
            paramap.put("beginDay",formatter.format((Date) dailyAttendanceMap.get("beginDay")));
91
            paramap.put("endDay",formatter.format((Date) dailyAttendanceMap.get("endDay")));
92
            dailyAttendanceList.forEach((dailyAttendance)-> {
93
94
                dailyAttendance.put("beginDay",paramap.get("beginDay"));
95
                dailyAttendance.put("endDay",paramap.get("endDay"));
96
                mainjobpositionList.forEach((mainjobposition) -> {
97
                    if (mainjobposition.getCode().equals(dailyAttendance.get("mainJobPositionId"))) {
98
                        dailyAttendance.put("mainJobPositionId", mainjobposition.getValue());
99
                    }
100
                });
101
            });
46 102
        } catch (ParseException e) {
47 103
            e.printStackTrace();
48 104
        }
@ -51,24 +107,168 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
51 107
52 108
53 109
    @Override
54
    public CommonResponse<List<Map<String, Object>>> queryAttendanceDetailReport(Map<String, Object> params) {
110
    public CommonResponse<? extends Object> queryAttendanceDetailReport(Map<String, Object> params) {
111
        //在特征表获取考勤状态
112
        List<CharacteristicSpecValue> clockingStatusList = charSpecService.getCharSpecList(EbcConstant.CLOCKING_STATUS);
113
        CommonResponse<List<Map<String, Object>>> result =null;
55 114
        CommonResponse<List<Map<String, Object>>> attendanceReportResponse =  null;
56 115
        try {
57 116
            attendanceReportResponse = attendanceStatusQuery.queryAttendanceDetailReport(new CommonRequest<>(params,1,10));
117
            List<Map<String, Object>> attendanceReportList = attendanceReportResponse.getData();
118
119
            attendanceReportList.forEach((dailyAttendance)->{
120
121
                clockingStatusList.forEach((clockingStatus)->{
122
                    if(dailyAttendance.get("goToWorkStatus").equals(clockingStatus.getCode())){
123
                        dailyAttendance.put("goToWorkStatus", clockingStatus.getValue());
124
                    }
125
                    if(dailyAttendance.get("goOffWorkStatus").equals(clockingStatus.getCode())){
126
                        dailyAttendance.put("goOffWorkStatus", clockingStatus.getValue());
127
                    }
128
                });
129
130
                String[] attendanceStatusArray = new String[2];
131
                dailyAttendance.put("date",dailyAttendance.get("workDay"));
132
                dailyAttendance.put("isAbnormal",true);
133
                if(dailyAttendance.get("goToWorkStatus").equals("正常")&&dailyAttendance.get("goOffWorkStatus").equals("正常")){
134
                    //上下班都正常
135
                    dailyAttendance.put("isAbnormal",false);
136
                    attendanceStatusArray[0]="正常";
137
                    dailyAttendance.put("descr",attendanceStatusArray);
138
                }else if(!dailyAttendance.get("goToWorkStatus").equals("正常")&&!dailyAttendance.get("goOffWorkStatus").equals("正常")){
139
                    attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
140
                    attendanceStatusArray[1]= (String) dailyAttendance.get("goOffWorkStatus");
141
                    //上下班都不正常
142
                    if(dailyAttendance.get("goToWorkStatus").equals("迟到")){
143
                        attendanceStatusArray[0]="迟到"+dailyAttendance.get("goToWorkTime") +"分";
144
                    }
145
                    if(dailyAttendance.get("goOffWorkStatus").equals("早退")){
146
                        attendanceStatusArray[1]="早退"+dailyAttendance.get("goOffWorkTime") +"分";
147
                    }
148
                    if(dailyAttendance.get("goToWorkStatus").equals("旷工")){
149
                        attendanceStatusArray[1]=null;
150
                        attendanceStatusArray[0]="旷工"+dailyAttendance.get("goToWorkTime") +"天";
151
                    }
152
                    if(dailyAttendance.get("goToWorkStatus").equals("倒休")||dailyAttendance.get("goToWorkStatus").equals("事假")||dailyAttendance.get("goToWorkStatus").equals("年假")||dailyAttendance.get("goToWorkStatus").equals("放假")){
153
                        attendanceStatusArray[1]=null;
154
                        attendanceStatusArray[0]=(String) dailyAttendance.get("goToWorkStatus");
155
                    }
156
157
                    dailyAttendance.put("descr",attendanceStatusArray);
158
                }else{
159
                    //上下班一个正常一个不正常
160
                    if(dailyAttendance.get("goToWorkStatus").equals("正常")){
161
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goOffWorkStatus");
162
                    }else{
163
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
164
                    }
165
                    dailyAttendance.put("descr",attendanceStatusArray);
166
                }
167
            });
168
            List<Map<String, Object>> dataList = attendanceReportResponse.getData();
169
            dataList.forEach((data)->{
170
                String[] attendanceStatus = (String[]) data.get("descr");
171
                String[] attendanceStatusArray = new String[1];
172
                if(null==attendanceStatus[1]){
173
                    attendanceStatusArray[0]=attendanceStatus[0];
174
                    data.put("descr",attendanceStatusArray);
175
                }
176
            });
177
178
            HashMap<String, Object> attendanceReportMap = new HashMap<>();
179
            attendanceReportMap.put("userId",params.get("id"));
180
            attendanceReportMap.put("avatar",null);
181
            attendanceReportMap.put("detail",attendanceReportResponse.getData());
182
            if(attendanceReportResponse.isSuccess()){
183
                CommonResponse<HashMap<String, Object>> ok1 = CommonResponse.ok(attendanceReportMap);
184
                return ok1;
185
            }
186
           
58 187
        } catch (ParseException e) {
59 188
            e.printStackTrace();
60 189
        }
190
191
        
61 192
        return attendanceReportResponse;
62 193
    }
63 194
64 195
    @Override
65 196
    public CommonResponse<PageBean<Map<String,Object>>> queryDailyAttendanceReport(Map<String, Object> params, int pageNumber, int pageSize) {
197
        //在特征表获取职务值
198
        List<CharacteristicSpecValue> mainjobpositionList = charSpecService.getCharSpecList(EbcConstant.MAINJOBPOSITION);
199
200
        //在特征表获取考勤状态
201
        List<CharacteristicSpecValue> clockingStatusList = charSpecService.getCharSpecList(EbcConstant.CLOCKING_STATUS);
202
203
        //查询日报
66 204
        CommonResponse<PageBean<Map<String,Object>>>  attendanceReport = null;
67 205
        try {
68 206
            attendanceReport = attendanceStatusQuery.queryDailyAttendanceReport((new CommonRequest<>(params,pageNumber,pageSize)));
207
            List<Map<String, Object>> dailyAttendanceList = attendanceReport.getData().getData();
208
            dailyAttendanceList.forEach((dailyAttendance)->{
209
                mainjobpositionList.forEach((mainjobposition)->{
210
                    if(dailyAttendance.get("mainJobPositionId").equals(mainjobposition.getCode())){
211
                        dailyAttendance.put("mainJobPositionId", mainjobposition.getValue());
212
                    }
213
                });
214
215
                clockingStatusList.forEach((clockingStatus)->{
216
                    if(dailyAttendance.get("goToWorkStatus").equals(clockingStatus.getCode())){
217
                        dailyAttendance.put("goToWorkStatus", clockingStatus.getValue());
218
                    }
219
                    if(dailyAttendance.get("goOffWorkStatus").equals(clockingStatus.getCode())){
220
                        dailyAttendance.put("goOffWorkStatus", clockingStatus.getValue());
221
                    }
222
                });
223
224
                String[] attendanceStatusArray = new String[2];
225
226
                if(dailyAttendance.get("goToWorkStatus").equals("正常")&&dailyAttendance.get("goOffWorkStatus").equals("正常")){
227
                    //上下班都正常
228
                    attendanceStatusArray[0]="正常";
229
                    dailyAttendance.put("attendanceStatus",attendanceStatusArray);
230
                }else if(!dailyAttendance.get("goToWorkStatus").equals("正常")&&!dailyAttendance.get("goOffWorkStatus").equals("正常")){
231
                    attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
232
                    attendanceStatusArray[1]= (String) dailyAttendance.get("goOffWorkStatus");
233
                    //上下班都不正常
234
                    if(dailyAttendance.get("goToWorkStatus").equals("迟到")){
235
                        attendanceStatusArray[0]="迟到"+dailyAttendance.get("goToWorkTime") +"分";
236
                    }
237
                    if(dailyAttendance.get("goOffWorkStatus").equals("早退")){
238
                        attendanceStatusArray[1]="早退"+dailyAttendance.get("goOffWorkTime") +"分";
239
                    }
240
                    if(dailyAttendance.get("goToWorkStatus").equals("旷工")){
241
                        attendanceStatusArray[1]=null;
242
                        attendanceStatusArray[0]="旷工"+dailyAttendance.get("goToWorkTime") +"天";
243
                    }
244
                    if(dailyAttendance.get("goToWorkStatus").equals("倒休")||dailyAttendance.get("goToWorkStatus").equals("事假")||dailyAttendance.get("goToWorkStatus").equals("年假")||dailyAttendance.get("goToWorkStatus").equals("放假")){
245
                        attendanceStatusArray[1]=null;
246
                        attendanceStatusArray[0]=(String) dailyAttendance.get("goToWorkStatus");
247
                    }
248
249
                    dailyAttendance.put("attendanceStatus",attendanceStatusArray);
250
                }else{
251
                    //上下班一个正常一个不正常
252
                    if(dailyAttendance.get("goToWorkStatus").equals("正常")){
253
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goOffWorkStatus");
254
                    }else{
255
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
256
                    }
257
                    dailyAttendance.put("attendanceStatus",attendanceStatusArray);
258
                }
259
            });
69 260
        } catch (ParseException e) {
70 261
            e.printStackTrace();
71 262
        }
263
        List<Map<String, Object>> dataList = attendanceReport.getData().getData();
264
        dataList.forEach((data)->{
265
            String[] attendanceStatus = (String[]) data.get("attendanceStatus");
266
            String[] attendanceStatusArray = new String[1];
267
            if(null==attendanceStatus[1]){
268
                attendanceStatusArray[0]=attendanceStatus[0];
269
                data.put("attendanceStatus",attendanceStatusArray);
270
            }
271
        });
72 272
        return attendanceReport;
73 273
    }
74 274
}

+ 1 - 1
security-protection-service/src/main/java/com/ai/bss/security/protection/service/interfaces/AttendanceReportService.java

@ -12,7 +12,7 @@ public interface AttendanceReportService {
12 12
13 13
    CommonResponse<PageBean<Map<String,Object>>> queryPageAbnormalAttendance(Map<String, Object> params, int pageNumber, int pageSize);
14 14
15
    CommonResponse<List<Map<String, Object>>> queryAttendanceDetailReport(Map<String, Object> params);
15
    CommonResponse<? extends Object> queryAttendanceDetailReport(Map<String, Object> params);
16 16
17 17
    CommonResponse<PageBean<Map<String,Object>>> queryDailyAttendanceReport(Map<String, Object> params, int pageNumber, int pageSize);
18 18
}

+ 6 - 0
security-protection-service/src/main/java/com/ai/bss/security/protection/utils/EbcConstant.java

@ -18,6 +18,12 @@ public class EbcConstant {
18 18
	// 异常考勤查询常量正常取值normal
19 19
	public static final String ATTENDANCE_STATUSTYPE_NORMAL = "NORMAL";
20 20
21
	// 特征表获得职务code
22
	public static final String MAINJOBPOSITION = "mainJobPosition";
23
24
	// 特征表获得职务打卡状态code
25
	public static final String CLOCKING_STATUS = "CLOCKING_STATUS";
26
21 27
	// 轨迹回放单次查询条数
22 28
	public static final int TRACK_PLAYBACK_SIZE = 100;
23 29