浏览代码

Merge remote-tracking branch 'origin/master'

wangdong6 4 年之前
父节点
当前提交
e477401879

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

@ -6,6 +6,8 @@ import com.ai.bss.components.common.model.PageBean;
6 6
import com.ai.bss.security.protection.model.AttendanceReport;
7 7
import com.ai.bss.security.protection.service.interfaces.AttendanceReportService;
8 8
import com.ai.bss.security.protection.utils.EbcConstant;
9
10
import org.apache.commons.lang.StringUtils;
9 11
import org.slf4j.Logger;
10 12
import org.slf4j.LoggerFactory;
11 13
import org.springframework.beans.factory.annotation.Autowired;
@ -47,6 +49,10 @@ public class AttendanceReportController {
47 49
		// 每页条数
48 50
		int pageSize = attendanceReport.getPageSize() < 1 ? EbcConstant.DEFAULT_PAGE_SIZE : attendanceReport.getPageSize();
49 51
52
		if (StringUtils.isEmpty(attendanceReport.getWorkDay())) {
53
			return CommonResponse.fail("503", "查询时间不能为空");
54
		}
55
		
50 56
		Map<String, Object> params = new HashMap<>();
51 57
		params.put("workDay",attendanceReport.getWorkDay());
52 58
		params.put("orgId",attendanceReport.getOrgId());
@ -79,6 +85,14 @@ public class AttendanceReportController {
79 85
		// 每页条数
80 86
		int pageSize = attendanceReport.getPageSize() < 1 ? EbcConstant.DEFAULT_PAGE_SIZE : attendanceReport.getPageSize();
81 87
88
		if (StringUtils.isEmpty(attendanceReport.getMonth())) {
89
			return CommonResponse.fail("503", "查询时间不能为空");
90
		}
91
		
92
		if (StringUtils.isEmpty(attendanceReport.getOrgId())) {
93
			return CommonResponse.fail("504", "查询部门不能为空");
94
		}
95
		
82 96
		Map<String, Object> params = new HashMap<>();
83 97
		params.put("month",attendanceReport.getMonth());
84 98
		params.put("orgId",attendanceReport.getOrgId());

+ 244 - 13
security-protection-service/src/main/java/com/ai/bss/security/protection/service/impl/AttendanceReportServiceImpl.java

@ -10,14 +10,12 @@ import com.ai.bss.security.protection.utils.EbcConstant;
10 10
import com.ai.bss.worker.service.api.AttendanceStatusQuery;
11 11
import org.springframework.beans.factory.annotation.Autowired;
12 12
import org.springframework.stereotype.Service;
13
import org.springframework.util.CollectionUtils;
13 14
14 15
import java.text.ParseException;
15 16
import java.text.SimpleDateFormat;
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.ArrayList;
18
import java.util.*;
21 19
22 20
/**
23 21
 * @Auther: 王超
@ -42,6 +40,15 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
42 40
        CommonResponse<PageBean<Map<String,Object>>>  attendanceReport = null;
43 41
        try {
44 42
            attendanceReport = attendanceStatusQuery.queryMonthlyAttendanceReport((new CommonRequest<>(params,pageNumber,pageSize)));
43
            
44
            if (!attendanceReport.isSuccess()) {
45
            	return attendanceReport;
46
			}
47
            
48
            if (attendanceReport.getData()==null||CollectionUtils.isEmpty(attendanceReport.getData().getData())) {
49
				return CommonResponse.ok(new PageBean<Map<String,Object>>(new ArrayList<Map<String,Object>>(), pageSize, pageNumber, 1, 1));
50
			}
51
            
45 52
            List<Map<String, Object>> dailyAttendanceList = attendanceReport.getData().getData();
46 53
            if(dailyAttendanceList != null && dailyAttendanceList.size() != 0){
47 54
                Map<String, Object> dailyAttendanceMap = dailyAttendanceList.get(0);
@ -116,6 +123,15 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
116 123
        CommonResponse<List<Map<String, Object>>> attendanceReportResponse =  null;
117 124
        try {
118 125
            attendanceReportResponse = attendanceStatusQuery.queryAttendanceDetailReport(new CommonRequest<>(params,1,10));
126
            
127
            if (!attendanceReportResponse.isSuccess()) {
128
            	return attendanceReportResponse;
129
			}
130
            
131
            if (CollectionUtils.isEmpty(attendanceReportResponse.getData())) {
132
				return CommonResponse.ok(null);
133
			}
134
            
119 135
            List<Map<String, Object>> attendanceReportList = attendanceReportResponse.getData();
120 136
121 137
            attendanceReportList.forEach((dailyAttendance)->{
@ -129,7 +145,110 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
129 145
                    }
130 146
                });
131 147
132
                String[] attendanceStatusArray = new String[2];
148
                //存放考勤状态
149
                ArrayList<Object> attendanceStatusList = new ArrayList<>();
150
                //判断是否是外勤
151
                if (dailyAttendance.get("goToWorkExceptionStatus")!=null&& "FIE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
152
                    attendanceStatusList.add("上午外勤");
153
                }
154
                if (dailyAttendance.get("goOffWorkExceptionStatus")!=null&&"FIE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
155
                    attendanceStatusList.add("下午外勤");
156
                }
157
                //判断是否是加班
158
                if (dailyAttendance.get("goToWorkExceptionStatus")!=null&& "OVE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
159
                    attendanceStatusList.add("上午加班");
160
                }
161
                if (dailyAttendance.get("goOffWorkExceptionStatus")!=null&&"OVE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
162
                    attendanceStatusList.add("下午加班");
163
                }
164
165
                //如果都正常有外勤显示外勤,没外勤显示正常,不属于异常考勤
166
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
167
                    if(!(null!=attendanceStatusList&&attendanceStatusList.size()>0)){
168
                        attendanceStatusList.add("正常");
169
                    }
170
                    dailyAttendance.put("isAbnormal",false);
171
                }
172
                //如果上午正常,下午非正常 则显示下午的
173
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
174
                    if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
175
                        attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
176
                    }
177
                    if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
178
                        attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
179
                    }
180
                    if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
181
                        attendanceStatusList.add("旷工"+dailyAttendance.get("goToWorkTime") +"天");
182
                    }
183
                    if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
184
                        attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
185
                        dailyAttendance.put("isAbnormal",false);
186
                    }else{
187
                        dailyAttendance.put("isAbnormal",true);
188
                    }
189
                }
190
                //如果上午非正常,下午正常 则显示上午的
191
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
192
                    if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
193
                        attendanceStatusList.add("迟到"+dailyAttendance.get("goToWorkTime") +"分");
194
                    }
195
                    if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
196
                        attendanceStatusList.add("早退"+dailyAttendance.get("goToWorkTime") +"分");
197
                    }
198
                    if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
199
                        attendanceStatusList.add("旷工"+dailyAttendance.get("goToWorkTime") +"天");
200
                    }
201
                    if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
202
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
203
                        dailyAttendance.put("isAbnormal",false);
204
                    }else{
205
                        dailyAttendance.put("isAbnormal",true);
206
                    }
207
                }
208
                //如果上午非正常,下午非正常
209
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
210
                    //如果上下午状态相等且是放假 倒休 事假 年假 病假 放假 显示一种状态 非异常考勤
211
                    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")))){
212
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
213
                        dailyAttendance.put("isAbnormal",false);
214
                    }
215
                    //如果上下午状态相等且是旷工 显示一种状态 异常考勤
216
                    else if(dailyAttendance.get("goToWorkStatus").equals(dailyAttendance.get("goOffWorkStatus"))&&"旷工".equals(dailyAttendance.get("goToWorkStatus"))){
217
                        attendanceStatusList.add("旷工1天");
218
                        dailyAttendance.put("isAbnormal",true);
219
                    }else{
220
                        //显示俩种状态
221
                        String[] attendanceStatusArray = new String[2];
222
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
223
                        attendanceStatusArray[1]= (String) dailyAttendance.get("goOffWorkStatus");
224
                        dailyAttendance.put("isAbnormal",false);
225
226
                        if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
227
                            attendanceStatusArray[0]="迟到"+dailyAttendance.get("goToWorkTime") +"分";
228
                            dailyAttendance.put("isAbnormal",true);
229
                        }
230
                        if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
231
                            attendanceStatusArray[1]="早退"+dailyAttendance.get("goOffWorkTime") +"分";
232
                            dailyAttendance.put("isAbnormal",true);
233
                        }
234
                        if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
235
                            attendanceStatusArray[0]="旷工"+dailyAttendance.get("goToWorkTime") +"天";
236
                            dailyAttendance.put("isAbnormal",true);
237
                        }
238
                        if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
239
                            attendanceStatusArray[0]="旷工"+dailyAttendance.get("goOffWorkTime") +"天";
240
                            dailyAttendance.put("isAbnormal",true);
241
                        }
242
                        if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))||"未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
243
                            dailyAttendance.put("isAbnormal",true);
244
                        }
245
                        attendanceStatusList.add(attendanceStatusArray[0]);
246
                        attendanceStatusList.add(attendanceStatusArray[1]);
247
                    }
248
                    dailyAttendance.put("descr",attendanceStatusList);
249
                }
250
251
              /*  String[] attendanceStatusArray = new String[2];
133 252
                dailyAttendance.put("date",dailyAttendance.get("workDay"));
134 253
                dailyAttendance.put("isAbnormal",true);
135 254
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
@ -166,9 +285,9 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
166 285
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
167 286
                    }
168 287
                    dailyAttendance.put("descr",attendanceStatusArray);
169
                }
288
                }*/
170 289
            });
171
            List<Map<String, Object>> dataList = attendanceReportResponse.getData();
290
          /*  List<Map<String, Object>> dataList = attendanceReportResponse.getData();
172 291
            dataList.forEach((data)->{
173 292
                String[] attendanceStatus = (String[]) data.get("descr");
174 293
                if(null!=attendanceStatus&&attendanceStatus.length>0){
@ -178,7 +297,7 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
178 297
                        data.put("descr",attendanceStatusArray);
179 298
                    }
180 299
                }
181
            });
300
            });*/
182 301
183 302
            HashMap<String, Object> attendanceReportMap = new HashMap<>();
184 303
            attendanceReportMap.put("userId",params.get("id"));
@ -209,6 +328,15 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
209 328
        CommonResponse<PageBean<Map<String,Object>>>  attendanceReport = null;
210 329
        try {
211 330
            attendanceReport = attendanceStatusQuery.queryDailyAttendanceReport((new CommonRequest<>(params,pageNumber,pageSize)));
331
            
332
            if (!attendanceReport.isSuccess()) {
333
            	return attendanceReport;
334
			}
335
            
336
            if (attendanceReport.getData()==null||CollectionUtils.isEmpty(attendanceReport.getData().getData())) {
337
				return CommonResponse.ok(new PageBean<Map<String,Object>>(new ArrayList<Map<String,Object>>(), pageSize, pageNumber, 1, 1));
338
			}
339
            
212 340
            List<Map<String, Object>> dailyAttendanceList = attendanceReport.getData().getData();
213 341
            dailyAttendanceList.forEach((dailyAttendance)->{
214 342
                mainjobpositionList.forEach((mainjobposition)->{
@ -225,8 +353,111 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
225 353
                        dailyAttendance.put("goOffWorkStatus", clockingStatus.getValue());
226 354
                    }
227 355
                });
356
                //存放考勤状态
357
                ArrayList<Object> attendanceStatusList = new ArrayList<>();
358
                //判断是否是外勤
359
                if (dailyAttendance.get("goToWorkExceptionStatus")!=null&& "FIE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
360
                    attendanceStatusList.add("上午外勤");
361
                }
362
                if (dailyAttendance.get("goOffWorkExceptionStatus")!=null&&"FIE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
363
                    attendanceStatusList.add("下午外勤");
364
                }
365
                //判断是否是加班
366
                if (dailyAttendance.get("goToWorkExceptionStatus")!=null&& "OVE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
367
                    attendanceStatusList.add("上午加班");
368
                }
369
                if (dailyAttendance.get("goOffWorkExceptionStatus")!=null&&"OVE".equals(dailyAttendance.get("goToWorkExceptionStatus") )) {
370
                    attendanceStatusList.add("下午加班");
371
                }
228 372
229
                String[] attendanceStatusArray = new String[2];
373
                //如果都正常有外勤显示外勤,没外勤显示正常,不属于异常考勤
374
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
375
                    if(!(null!=attendanceStatusList&&attendanceStatusList.size()>0)){
376
                        attendanceStatusList.add("正常");
377
                    }
378
                    dailyAttendance.put("isAbnormal",false);
379
                }
380
                //如果上午正常,下午非正常 则显示下午的
381
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
382
                    if("迟到".equals(dailyAttendance.get("goOffWorkStatus"))){
383
                        attendanceStatusList.add("迟到"+dailyAttendance.get("goOffWorkTime") +"分");
384
                    }
385
                    if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
386
                        attendanceStatusList.add("早退"+dailyAttendance.get("goOffWorkTime") +"分");
387
                    }
388
                    if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
389
                        attendanceStatusList.add("旷工"+dailyAttendance.get("goToWorkTime") +"天");
390
                    }
391
                    if("倒休".equals(dailyAttendance.get("goOffWorkStatus"))||"事假".equals(dailyAttendance.get("goOffWorkStatus"))||"年假".equals(dailyAttendance.get("goOffWorkStatus"))||"放假".equals(dailyAttendance.get("goOffWorkStatus"))||"病假".equals(dailyAttendance.get("goOffWorkStatus"))){
392
                        attendanceStatusList.add(dailyAttendance.get("goOffWorkStatus"));
393
                        dailyAttendance.put("isAbnormal",false);
394
                    }else{
395
                        dailyAttendance.put("isAbnormal",true);
396
                    }
397
                }
398
                //如果上午非正常,下午正常 则显示上午的
399
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
400
                    if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
401
                        attendanceStatusList.add("迟到"+dailyAttendance.get("goToWorkTime") +"分");
402
                    }
403
                    if("早退".equals(dailyAttendance.get("goToWorkStatus"))){
404
                        attendanceStatusList.add("早退"+dailyAttendance.get("goToWorkTime") +"分");
405
                    }
406
                    if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
407
                        attendanceStatusList.add("旷工"+dailyAttendance.get("goToWorkTime") +"天");
408
                    }
409
                    if("倒休".equals(dailyAttendance.get("goToWorkStatus"))||"事假".equals(dailyAttendance.get("goToWorkStatus"))||"年假".equals(dailyAttendance.get("goToWorkStatus"))||"放假".equals(dailyAttendance.get("goToWorkStatus"))||"病假".equals(dailyAttendance.get("goToWorkStatus"))){
410
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
411
                        dailyAttendance.put("isAbnormal",false);
412
                    }else{
413
                        dailyAttendance.put("isAbnormal",true);
414
                    }
415
                }
416
                //如果上午非正常,下午非正常
417
                if(!"正常".equals(dailyAttendance.get("goToWorkStatus"))&&!"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
418
                    //如果上下午状态相等且是放假 倒休 事假 年假 病假 放假 显示一种状态 非异常考勤
419
                    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")))){
420
                        attendanceStatusList.add(dailyAttendance.get("goToWorkStatus"));
421
                        dailyAttendance.put("isAbnormal",false);
422
                    }
423
                    //如果上下午状态相等且是旷工 显示一种状态 异常考勤
424
                    else if(dailyAttendance.get("goToWorkStatus").equals(dailyAttendance.get("goOffWorkStatus"))&&"旷工".equals(dailyAttendance.get("goToWorkStatus"))){
425
                        attendanceStatusList.add("旷工1天");
426
                        dailyAttendance.put("isAbnormal",true);
427
                    }else{
428
                        //显示俩种状态
429
                        String[] attendanceStatusArray = new String[2];
430
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
431
                        attendanceStatusArray[1]= (String) dailyAttendance.get("goOffWorkStatus");
432
                        dailyAttendance.put("isAbnormal",false);
433
434
                        if("迟到".equals(dailyAttendance.get("goToWorkStatus"))){
435
                            attendanceStatusArray[0]="迟到"+dailyAttendance.get("goToWorkTime") +"分";
436
                            dailyAttendance.put("isAbnormal",true);
437
                        }
438
                        if("早退".equals(dailyAttendance.get("goOffWorkStatus"))){
439
                            attendanceStatusArray[1]="早退"+dailyAttendance.get("goOffWorkTime") +"分";
440
                            dailyAttendance.put("isAbnormal",true);
441
                        }
442
                        if("旷工".equals(dailyAttendance.get("goToWorkStatus"))){
443
                            attendanceStatusArray[0]="旷工"+dailyAttendance.get("goToWorkTime") +"天";
444
                            dailyAttendance.put("isAbnormal",true);
445
                        }
446
                        if("旷工".equals(dailyAttendance.get("goOffWorkStatus"))){
447
                            attendanceStatusArray[0]="旷工"+dailyAttendance.get("goOffWorkTime") +"天";
448
                            dailyAttendance.put("isAbnormal",true);
449
                        }
450
                        if("未打卡".equals(dailyAttendance.get("goToWorkStatus"))||"未打卡".equals(dailyAttendance.get("goOffWorkStatus"))){
451
                            dailyAttendance.put("isAbnormal",true);
452
                        }
453
                        attendanceStatusList.add(attendanceStatusArray[0]);
454
                        attendanceStatusList.add(attendanceStatusArray[1]);
455
                    }
456
                    dailyAttendance.put("descr",attendanceStatusList);
457
                }
458
459
460
               /* String[] attendanceStatusArray = new String[2];
230 461
231 462
                if("正常".equals(dailyAttendance.get("goToWorkStatus"))&&"正常".equals(dailyAttendance.get("goOffWorkStatus"))){
232 463
                    //上下班都正常
@ -263,12 +494,12 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
263 494
                        attendanceStatusArray[0]= (String) dailyAttendance.get("goToWorkStatus");
264 495
                    }
265 496
                    dailyAttendance.put("descr",attendanceStatusArray);
266
                }
497
                }*/
267 498
            });
268 499
        } catch (ParseException e) {
269 500
            e.printStackTrace();
270 501
        }
271
        List<Map<String, Object>> dataList = attendanceReport.getData().getData();
502
       /* List<Map<String, Object>> dataList = attendanceReport.getData().getData();
272 503
        dataList.forEach((data)->{
273 504
            String[] attendanceStatus = (String[]) data.get("attendanceStatus");
274 505
            if(null!=attendanceStatus&&attendanceStatus.length>0){
@ -278,7 +509,7 @@ public class AttendanceReportServiceImpl implements AttendanceReportService {
278 509
                    data.put("attendanceStatus",attendanceStatusArray);
279 510
                }
280 511
            }
281
        });
512
        });*/
282 513
        return attendanceReport;
283 514
    }
284 515
}

+ 53 - 40
security-protection-service/src/main/java/com/ai/bss/security/protection/service/task/AiResultRecordKafkaTask.java

@ -5,7 +5,6 @@ import java.util.Map;
5 5
6 6
import org.apache.commons.lang.StringUtils;
7 7
import org.apache.kafka.clients.consumer.ConsumerRecord;
8
import org.junit.Assert;
9 8
import org.springframework.beans.factory.annotation.Autowired;
10 9
import org.springframework.kafka.annotation.KafkaListener;
11 10
import org.springframework.kafka.support.Acknowledgment;
@ -41,13 +40,12 @@ public class AiResultRecordKafkaTask {
41 40
42 41
	@Autowired
43 42
	private ResourceToolManageService resourceToolManageService;
44
	
43
45 44
	@Autowired
46 45
	private MonitorSceneQuery monitorSceneQuery;
47
	
46
48 47
	@Autowired
49 48
	private AiAlarmManageService aiAlarmManageService;
50
	
51 49
52 50
	@KafkaListener(containerFactory = "kafkaBatchListener6", topics = "${kafka.topic.aitask:topic_ai_task}", groupId = "ai_group")
53 51
	public void AiResultRecordListener(ConsumerRecord<String, String> records, Acknowledgment ack) throws Throwable {
@ -58,65 +56,80 @@ public class AiResultRecordKafkaTask {
58 56
			log.info("已接AI任务执行结果消息,消息为:" + message);
59 57
60 58
			JSONObject messageJson = JSONObject.parseObject(message);
61
			String resourceToolCod=messageJson.getString("resourceToolCode");
62
			String aiIdenModel=messageJson.getString("aiIdenModel");
63
			String idenResultType=messageJson.getString("idenResultType");
64
			
65
			//查询相关数据
59
			String resourceToolCod = messageJson.getString("resourceToolCode");
60
			String aiIdenModel = messageJson.getString("aiIdenModel");
61
			String idenResultType = messageJson.getString("idenResultType");
62
63
			// 查询相关数据
66 64
			Map<String, Object> resourceToolMap = resourceToolManageService.queryResourceToolByCode(resourceToolCod);
67 65
			if (resourceToolMap == null) {
68 66
				log.error("AI任务执行结果的设备CODE不存在:  resourceToolCode=" + messageJson.getString("resourceToolCode"));
69 67
				throw new NullPointerException("resourceToolCode not exist");
70 68
			}
71
			
72
			String resourceToolId=String.valueOf(resourceToolMap.get("resourceToolId"));
73
			
74
			CommonResponse<List<Map<String, Object>>> sceneTerminalRelResponse =monitorSceneQuery.selectSceneTerminalRel(new CommonRequest<Long>(Long.valueOf(resourceToolId)));
75
			if (sceneTerminalRelResponse == null||CollectionUtils.isEmpty(sceneTerminalRelResponse.getData())) {
69
70
			String resourceToolId = String.valueOf(resourceToolMap.get("resourceToolId"));
71
72
			CommonResponse<List<Map<String, Object>>> sceneTerminalRelResponse = monitorSceneQuery
73
					.selectSceneTerminalRel(new CommonRequest<Long>(Long.valueOf(resourceToolId)));
74
			if (sceneTerminalRelResponse == null || CollectionUtils.isEmpty(sceneTerminalRelResponse.getData())) {
76 75
				log.error("AI任务执行结果的关联场景不存在:  resourceToolId=" + resourceToolId);
77 76
				throw new NullPointerException("sceneTerminalRel not exist");
78 77
			}
79
			Map<String,Object> sceneTerminalRelMap=sceneTerminalRelResponse.getData().get(0);
80
			
81
			CommonResponse<List<Map<String, Object>>> aiTaskResponse = aiAlarmManageService.queryAiTaskByDevice(resourceToolId, aiIdenModel);
82
			if (aiTaskResponse == null||CollectionUtils.isEmpty(aiTaskResponse.getData())) {
83
				log.error("AI任务执行结果的任务不存在:  resourceToolId=" + resourceToolId+", aiIdenModel="+aiIdenModel);
78
			Map<String, Object> sceneTerminalRelMap = sceneTerminalRelResponse.getData().get(0);
79
80
			CommonResponse<List<Map<String, Object>>> aiTaskResponse = aiAlarmManageService
81
					.queryAiTaskByDevice(resourceToolId, aiIdenModel);
82
			if (aiTaskResponse == null || CollectionUtils.isEmpty(aiTaskResponse.getData())) {
83
				log.error("AI任务执行结果的任务不存在:  resourceToolId=" + resourceToolId + ", aiIdenModel=" + aiIdenModel);
84 84
				throw new NullPointerException("aiTask not exist");
85 85
			}
86
			Map<String, Object> aiTaskMap=aiTaskResponse.getData().get(0);
87
			
88
			//封装数据
86
			Map<String, Object> aiTaskMap = aiTaskResponse.getData().get(0);
87
88
			// 封装数据
89 89
			AiIdenLog aiIdenLog = JSON.parseObject(message, new TypeReference<AiIdenLog>() {
90 90
			});
91 91
			aiIdenLog.setResourceToolId(resourceToolId);
92
			aiIdenLog.setResourceToolName(StringUtils.defaultIfBlank(String.valueOf(resourceToolMap.get("resourceToolName")),""));
93
			aiIdenLog.setMonitorSceneId(StringUtils.defaultIfBlank(String.valueOf(sceneTerminalRelMap.get("monitorSceneId")),""));
94
			aiIdenLog.setMonitorSceneName(StringUtils.defaultIfBlank(String.valueOf(sceneTerminalRelMap.get("monitorSceneName")),""));
95
			//aiIdenLog.setEffectType(StringUtils.defaultIfBlank(String.valueOf(sceneTerminalRelMap.get("effectType")),EbcConstant.TERMINAL_EFFECT_TYPE_OTH));
96
			aiIdenLog.setTerminalPosition(StringUtils.defaultIfBlank(String.valueOf(sceneTerminalRelMap.get("place")),""));
97
			aiIdenLog.setOrganizationId(StringUtils.defaultIfBlank(String.valueOf(sceneTerminalRelMap.get("orgId")),""));
98
			aiIdenLog.setAiTaskId(aiTaskMap.get("aiTaskId")==null?0L:Long.valueOf(String.valueOf(aiTaskMap.get("aiTaskId"))));
99
			
100
			//TODO 人员信息暂时默认
92
			aiIdenLog.setResourceToolName(
93
					StringUtils.defaultIfBlank(String.valueOf(resourceToolMap.get("resourceToolName")), ""));
94
			aiIdenLog.setMonitorSceneId(
95
					StringUtils.defaultIfBlank(String.valueOf(sceneTerminalRelMap.get("monitorSceneId")), ""));
96
			aiIdenLog.setMonitorSceneName(
97
					StringUtils.defaultIfBlank(String.valueOf(sceneTerminalRelMap.get("monitorSceneName")), ""));
98
			// aiIdenLog.setEffectType(StringUtils.defaultIfBlank(String.valueOf(sceneTerminalRelMap.get("effectType")),EbcConstant.TERMINAL_EFFECT_TYPE_OTH));
99
			aiIdenLog.setTerminalPosition(
100
					StringUtils.defaultIfBlank(String.valueOf(sceneTerminalRelMap.get("place")), ""));
101
			aiIdenLog.setOrganizationId(
102
					StringUtils.defaultIfBlank(String.valueOf(sceneTerminalRelMap.get("orgId")), ""));
103
			aiIdenLog.setAiTaskId(
104
					aiTaskMap.get("aiTaskId") == null ? 0L : Long.valueOf(String.valueOf(aiTaskMap.get("aiTaskId"))));
105
106
			// TODO 人员信息暂时默认
101 107
			aiIdenLog.setRelateEmployeeRoleId("201613310867");
102 108
			aiIdenLog.setRelateEmployeeRoleName("王浩");
103 109
104
			//执行操作
105
			CommonRequest<AiIdenLog> aiIdenLogRequest=new CommonRequest<AiIdenLog>(aiIdenLog);
106
			
110
			// 执行操作
111
			CommonRequest<AiIdenLog> aiIdenLogRequest = new CommonRequest<AiIdenLog>(aiIdenLog);
112
107 113
			CommonResponse<AiIdenLog> runningResult = aiTaskCommand.createAiIdenLog(aiIdenLogRequest);
108
			log.debug("aiTaskResult runningResult: \n{}", JsonUtils.toJSONStringByDateFormat(runningResult, true));
109
			Assert.assertTrue(runningResult.isSuccess());
110
			
114
			log.debug("AI任务执行结果: \n{}", JsonUtils.toJSONStringByDateFormat(runningResult, true));
115
116
			if (!runningResult.isSuccess()) {
117
				log.error("AI任务执行结果异常: " + runningResult.getFail().getMessage());
118
				return;
119
			}
120
111 121
			if (!EbcConstant.AI_IDENTIFY_RESULT_NORMAL.equals(idenResultType)) {
112 122
				CommonResponse runningResult1 = aiTaskCommand.aiIdenLogTriggerEvent(aiIdenLogRequest);
113
				
123
114 124
				log.debug("AI任务非正常情况的执行结果: \n{}", JsonUtils.toJSONStringByDateFormat(runningResult1, true));
115
				Assert.assertTrue(runningResult1.isSuccess());
125
				if (!runningResult.isSuccess()) {
126
					log.error("AI任务非正常情况的执行结果异常: " + runningResult.getFail().getMessage());
127
					return;
128
				}
116 129
			}
117 130
118 131
		} catch (Exception e) {
119
			log.error("kafka消费异常" + e.getMessage(), e);
132
			log.error("AI任务执行结果消费异常" + e.getMessage(), e);
120 133
		} finally {
121 134
			ack.acknowledge();// 手动提交偏移量
122 135
		}

+ 8 - 5
security-protection-service/src/main/java/com/ai/bss/security/protection/service/task/AiVideoKafkaTask.java

@ -3,7 +3,6 @@ package com.ai.bss.security.protection.service.task;
3 3
import java.util.Map;
4 4
5 5
import org.apache.kafka.clients.consumer.ConsumerRecord;
6
import org.junit.Assert;
7 6
import org.springframework.beans.factory.annotation.Autowired;
8 7
import org.springframework.kafka.annotation.KafkaListener;
9 8
import org.springframework.kafka.support.Acknowledgment;
@ -47,19 +46,23 @@ public class AiVideoKafkaTask {
47 46
			Map<String, Object> resourceToolMap = resourceToolManageService
48 47
					.queryResourceToolByCode(messageJson.getString("resourceToolCode"));
49 48
50
			if (resourceToolMap==null) {
49
			if (resourceToolMap == null) {
51 50
				log.error("AI监控视频日志的设备CODE不存在: " + messageJson.getString("resourceToolCode"));
52 51
				throw new NullPointerException("resourceToolCode not exist");
53 52
			}
54
			
53
55 54
			MonitorVideoLog monitorVideoLog = JSON.parseObject(message, new TypeReference<MonitorVideoLog>() {
56 55
			});
57 56
			monitorVideoLog.setResourceToolId(String.valueOf(resourceToolMap.get("resourceToolId")));
58 57
59 58
			CommonResponse<MonitorVideoLog> runningResult = monitorVideoLogManageService
60 59
					.createMonitorVideoLog(monitorVideoLog);
61
			log.debug("kafka aivideo runningResult: \n{}", JsonUtils.toJSONStringByDateFormat(runningResult, true));
62
			Assert.assertTrue(runningResult.isSuccess());
60
			log.debug("AI监控视频日志执行结果: \n{}", JsonUtils.toJSONStringByDateFormat(runningResult, true));
61
62
			if (!runningResult.isSuccess()) {
63
				log.error("AI监控视频日志执行结果异常: " + runningResult.getFail().getMessage());
64
				return;
65
			}
63 66
64 67
		} catch (Exception e) {
65 68
			log.error("AI监控视频日志消息的kafka消费异常: " + e.getMessage(), e);

+ 2 - 0
security-protection-service/src/main/resources/application.properties

@ -29,6 +29,8 @@ spring.main.allow-bean-definition-overriding=true
29 29
kafka.bootstrap-servers=10.19.90.34:9090
30 30
kafka.topic.aitask=topic_ai_task
31 31
kafka.topic.aivideo=topic_ai_video
32
#kafka.topic.aitask=topicTaskTest
33
#kafka.topic.aivideo=topicVideoTest
32 34
kafka.producer.batch-size=16785
33 35
kafka.producer.retries=1
34 36
kafka.producer.buffer-memory=33554432