wangxu16 лет назад: 4
Родитель
Сommit
ae36fb97ab

+ 15 - 20
monitor-manage-service/src/main/java/com/ai/bss/monitorManage/service/impl/KafkaProcessImpl.java

36
36
37
import lombok.extern.slf4j.Slf4j;
37
import lombok.extern.slf4j.Slf4j;
38
38
39
import javax.sound.sampled.Line;
40
39
@Slf4j
41
@Slf4j
40
@Service
42
@Service
41
public class KafkaProcessImpl implements KafkaProcess {
43
public class KafkaProcessImpl implements KafkaProcess {
129
		}
131
		}
130
		// 文件上传到 minio文件服务器
132
		// 文件上传到 minio文件服务器
131
		multipartFile = new CommonsMultipartFile(FileUtils.createFileItem(new File(filePath), fileName));
133
		multipartFile = new CommonsMultipartFile(FileUtils.createFileItem(new File(filePath), fileName));
132
133
		log.info("保存图片文件:"+fileName);
134
		log.info("保存图片文件:"+fileName);
134
		minioFileMap = fileManageService.uploadFile(multipartFile, bucketName, deviceCode, null);
135
		minioFileMap = fileManageService.uploadFile(multipartFile, bucketName, deviceCode, null);
135
136
375
			log.info("开始AI人数识别处理...");
376
			log.info("开始AI人数识别处理...");
376
			String aiResponseData = ebcAiService.headDetect(ImageBase64Converter.convertFileToBase64(aifilePath), true,
377
			String aiResponseData = ebcAiService.headDetect(ImageBase64Converter.convertFileToBase64(aifilePath), true,
377
					0.9f);
378
					0.9f);
378
379
			JSONObject jsonObject = JSONObject.parseObject(aiResponseData);
379
			JSONObject jsonObject = JSONObject.parseObject(aiResponseData);
380
			JSONArray jsonArray = jsonObject.getJSONArray("Result");
380
			JSONArray jsonArray = jsonObject.getJSONArray("Result");
381
			if (!CollectionUtils.isEmpty(jsonArray)) {
381
			if (!CollectionUtils.isEmpty(jsonArray)) {
384
			} else {
384
			} else {
385
				log.info("AI人数识别结果:没有人");
385
				log.info("AI人数识别结果:没有人");
386
			}
386
			}
387
388
		} catch (Exception e) {
387
		} catch (Exception e) {
389
			log.error("AI处理异常");
388
			log.error("AI处理异常");
390
		}
389
		}
412
				if (resultJsonObject.getIntValue("is_match") == 0) {
411
				if (resultJsonObject.getIntValue("is_match") == 0) {
413
					aiIdenLogDto.setIdenResult(jsonObject.getString("result"));
412
					aiIdenLogDto.setIdenResult(jsonObject.getString("result"));
414
					aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT);
413
					aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT);
415
416
				} else {
414
				} else {
417
					aiIdenLogDto.setIdenResult(jsonObject.getString("result"));
415
					aiIdenLogDto.setIdenResult(jsonObject.getString("result"));
418
					aiIdenLogDto.setRelateEmployeeRoleId(resultJsonObject.getString("user_id"));
416
					aiIdenLogDto.setRelateEmployeeRoleId(resultJsonObject.getString("user_id"));
419
					aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT_ATTENDANCE);
417
					aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT_ATTENDANCE);
420
421
				}
418
				}
422
419
423
				log.info("识别成功,推送KAFKA消息");
420
				log.info("识别成功,推送KAFKA消息");
468
                                    aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT);
465
                                    aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT);
469
                                }
466
                                }
470
                        }
467
                        }
471
                        log.info("识别成功,推送KAFKA消息");
468
						log.info("识别成功,推送KAFKA消息");
472
                        processKafka(aiIdenLogDto.getTopic(), JSONObject.toJSONString(aiIdenLogDto));
469
                        processKafka(aiIdenLogDto.getTopic(), JSONObject.toJSONString(aiIdenLogDto));
470
                    	log.info("消息推送完成");
473
                    }else{
471
                    }else{
474
                        log.info("没有识别到吸烟者,不推送KAFKA消息");
472
                        log.info("没有识别到吸烟者,不推送KAFKA消息");
475
                    }
473
                    }
496
		List<IdenResultDto> idenResultDtoList = null;
494
		List<IdenResultDto> idenResultDtoList = null;
497
		if(jsonObject.getString("Status").equals("Ok")){
495
		if(jsonObject.getString("Status").equals("Ok")){
498
			idenResultDtoList = new ArrayList<>();
496
			idenResultDtoList = new ArrayList<>();
499
			JSONArray jsonArray = JSONArray.parseArray(jsonObject.getString("Result"));
500
			if(jsonArray.size()>0){
501
				for (int i = 0; i < jsonArray.size(); i++) {
502
					JSONObject resultObj = JSONObject.parseObject(jsonArray.get(i).toString());
503
					JSONObject jsonArray1 = JSONObject.parseObject(resultObj.getString("clothes"));
504
					String aiClassName =jsonArray1.getString("class");
497
			List<Map> resultList = JSONArray.parseArray(jsonObject.getString("Result"),Map.class);
498
			if(resultList.size()>0){
499
				for (int i = 0; i < resultList.size(); i++) {
500
					JSONObject resultObject = JSONObject.parseObject(resultList.get(i).get("clothes").toString());
501
					String aiClassName =resultObject.getString("class");
505
					if(aiClassName.equals("qita")){
502
					if(aiClassName.equals("qita")){
506
						idenResultDto = new IdenResultDto();
503
						idenResultDto = new IdenResultDto();
507
						idenResultDto.setAlarmEmployeeRoleId(MonitorManageConsts.alarmEmployeeRoleId);
504
						idenResultDto.setAlarmEmployeeRoleId(MonitorManageConsts.alarmEmployeeRoleId);
526
				}
523
				}
527
				log.info("识别成功,推送KAFKA消息");
524
				log.info("识别成功,推送KAFKA消息");
528
				processKafka(aiIdenLogDto.getTopic(), JSONObject.toJSONString(aiIdenLogDto));
525
				processKafka(aiIdenLogDto.getTopic(), JSONObject.toJSONString(aiIdenLogDto));
526
				log.info("消息推送完成");
529
			}else {
527
			}else {
530
				log.info("没有识别到人,不推送KAFKA消息");
528
				log.info("没有识别到人,不推送KAFKA消息");
531
			}
529
			}
549
		String aiResponseData=ebcAiService.instrumentDetect(ImageBase64Converter.convertFileToBase64(aifilePath),Strings.EMPTY,Strings.EMPTY,Strings.EMPTY);
547
		String aiResponseData=ebcAiService.instrumentDetect(ImageBase64Converter.convertFileToBase64(aifilePath),Strings.EMPTY,Strings.EMPTY,Strings.EMPTY);
550
		JSONObject jsonObject = JSONObject.parseObject(aiResponseData);
548
		JSONObject jsonObject = JSONObject.parseObject(aiResponseData);
551
		System.out.print("AI识别结果:"+aiResponseData);
549
		System.out.print("AI识别结果:"+aiResponseData);
552
		JSONObject jsonObjectpredictions=JSONObject.parseObject(jsonObject.getString("predictions"));
550
		JSONObject jsonObjectpredictions=jsonObject.getJSONObject("predictions");
553
		if(jsonObjectpredictions.getString("Errors").isEmpty()){
551
		if(jsonObjectpredictions.getString("Errors").isEmpty()){
554
			if(jsonObjectpredictions.getInteger("Nums")>0){
552
			if(jsonObjectpredictions.getInteger("Nums")>0){
555
				log.info("识别到的仪表的数量为:"+jsonObjectpredictions.getInteger("Nums"));
553
				log.info("识别到的仪表的数量为:"+jsonObjectpredictions.getInteger("Nums"));
556
				aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT);
554
				aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT);
557
				aiIdenLogDto.setRelateEmployeeRoleId(MonitorManageConsts.alarmEmployeeRoleId);
555
				aiIdenLogDto.setRelateEmployeeRoleId(MonitorManageConsts.alarmEmployeeRoleId);
558
				log.info("返回的仪表信息为:"+JSON.toJSONString(jsonObject));
559
				aiIdenLogDto.setIdenResult(JSON.toJSONString(jsonObject));
556
				log.info("返回的仪表信息为:"+jsonObjectpredictions.getString("Items"));
557
				aiIdenLogDto.setIdenResult(jsonObjectpredictions.getString("Items"));
560
				log.info("识别成功,推送KAFKA消息");
558
				log.info("识别成功,推送KAFKA消息");
561
				processKafka(aiIdenLogDto.getTopic(), JSONObject.toJSONString(aiIdenLogDto));
559
				processKafka(aiIdenLogDto.getTopic(), JSONObject.toJSONString(aiIdenLogDto));
560
				log.info("消息推送完成");
562
			}else{
561
			}else{
563
				log.info("仪表数量为0,不推送消息");
562
				log.info("仪表数量为0,不推送消息");
564
			}
563
			}
570
	}
569
	}
571
	return aiIdenLogDto;
570
	return aiIdenLogDto;
572
}
571
}
573
574
575
576
	/**
572
	/**
577
	 * 根据设备code获取监控任务详情
573
	 * 根据设备code获取监控任务详情
578
	 * @param deviceCode
574
	 * @param deviceCode
580
	 */
576
	 */
581
	private List<Map> getResourceToolAllInfo(String deviceCode) {
577
	private List<Map> getResourceToolAllInfo(String deviceCode) {
582
		List<Map> resourceToolInfoList = new ArrayList<Map>();
578
		List<Map> resourceToolInfoList = new ArrayList<Map>();
583
579
		deviceCode="6L04C6FPAGFD039";
584
		try {
580
		try {
585
			String url = protectionResourceUrl + "?resourceToolCode=" + deviceCode;
581
			String url = protectionResourceUrl + "?resourceToolCode=" + deviceCode;
586
			log.info("getResourceToolAllInfo method params: resourceToolCode=" + deviceCode + ", url=" + url);
582
			log.info("getResourceToolAllInfo method params: resourceToolCode=" + deviceCode + ", url=" + url);
587
588
			String resultJson = HttpServiceUtil.sendRequest(url);
583
			String resultJson = HttpServiceUtil.sendRequest(url);
589
			JSONObject resultData = JSON.parseObject(resultJson);
584
			JSONObject resultData = JSON.parseObject(resultJson);
590
			if (StringUtils.isEmpty(resultData.getString("data"))) {
585
			if (StringUtils.isEmpty(resultData.getString("data"))) {