594
|
|
}
|
595
|
|
return aiIdenLogDto;
|
596
|
|
}
|
597
|
|
/*工作服识别
|
598
|
|
*
|
599
|
|
*
|
600
|
|
* */
|
601
|
|
private AiIdenLogDto workClothesDetect(AiIdenLogDto aiIdenLogDto, String aifilePath,Map<String,Integer> imageParam){
|
602
|
|
try{
|
603
|
|
log.info("开始服装识别处理...");
|
604
|
|
//工作服识别
|
605
|
|
String aiResponseData=ebcAiService.workClothesDetect(ImageBase64Converter.convertFileToBase64(aifilePath),true,true,0.9f);
|
606
|
|
JSONObject jsonObject = JSONObject.parseObject(aiResponseData);
|
607
|
|
System.out.print("AI工作服识别结果:"+aiResponseData);
|
608
|
|
IdenResultDto idenResultDto = null;
|
609
|
|
List<IdenResultDto> idenResultDtoList = null;
|
610
|
|
if(jsonObject.getString("Status").equals("Ok")){
|
611
|
|
idenResultDtoList = new ArrayList<>();
|
612
|
|
List<Map> resultList = JSONArray.parseArray(jsonObject.getString("Result"),Map.class);
|
613
|
|
if(resultList.size()>0){
|
614
|
|
for (int i = 0; i < resultList.size(); i++) {
|
615
|
|
JSONObject resultObject = JSONObject.parseObject(resultList.get(i).get("clothes").toString());
|
616
|
|
String aiClassName =resultObject.getString("class");
|
617
|
|
if(aiClassName.equals("qita")){
|
618
|
|
idenResultDto = new IdenResultDto();
|
619
|
|
idenResultDto.setAlarmEmployeeRoleId(MonitorManageConsts.alarmEmployeeRoleId);
|
620
|
|
idenResultDto.setAlarmType(MonitorManageConsts.AI_ALARM_TYPE_WEA);
|
621
|
|
idenResultDto.setAlarmMemo("未穿工作服");
|
622
|
|
log.info("未穿工作服");
|
623
|
|
|
624
|
|
int[] boxIntArr = AiIdentifyUtils.getBoxArray((JSONArray) resultList.get(i).get("box"),imageParam);
|
625
|
|
idenResultDto.setBox(boxIntArr);
|
626
|
|
|
627
|
|
aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT_ALARM);
|
628
|
|
idenResultDtoList.add(idenResultDto);
|
629
|
|
aiIdenLogDto.setIdenResult(JSON.toJSONString(idenResultDtoList));
|
630
|
|
aiIdenLogDto.setRelateEmployeeRoleId(MonitorManageConsts.alarmEmployeeRoleId);
|
631
|
|
}else{
|
632
|
|
idenResultDto = new IdenResultDto();
|
633
|
|
idenResultDto.setAlarmEmployeeRoleId(MonitorManageConsts.alarmEmployeeRoleId);
|
634
|
|
idenResultDto.setAlarmType(aiClassName);
|
635
|
|
idenResultDto.setAlarmMemo(aiClassName);
|
636
|
|
|
637
|
|
int[] boxIntArr = AiIdentifyUtils.getBoxArray((JSONArray) resultList.get(i).get("box"),imageParam);
|
638
|
|
idenResultDto.setBox(boxIntArr);
|
639
|
|
|
640
|
|
idenResultDtoList.add(idenResultDto);
|
641
|
|
aiIdenLogDto.setIdenResult(JSON.toJSONString(idenResultDtoList));
|
642
|
|
aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT);
|
643
|
|
aiIdenLogDto.setRelateEmployeeRoleId(MonitorManageConsts.alarmEmployeeRoleId);
|
644
|
|
log.info("识别到工作服,工作服类型为:"+aiClassName);
|
645
|
|
}
|
646
|
|
}
|
647
|
|
log.info("工作服识别成功,推送KAFKA消息");
|
648
|
|
processKafka(aiIdenLogDto.getTopic(), JSONObject.toJSONString(aiIdenLogDto));
|
649
|
|
log.info("消息推送完成");
|
650
|
|
}else {
|
651
|
|
log.info("没有识别到人,不推送KAFKA消息");
|
652
|
|
}
|
653
|
|
}else if(jsonObject.getString("Status").equals("ERROR")){
|
654
|
|
log.error("工作服识别异常:"+jsonObject.getString("Des"));
|
655
|
|
}
|
656
|
|
|
657
|
|
}catch(Exception e){
|
658
|
|
log.error("工作服识别AI处理异常:"+e.getMessage());
|
659
|
|
}
|
660
|
|
return aiIdenLogDto;
|
661
|
|
}
|
662
|
|
/*
|
663
|
|
* 仪表识别
|
664
|
|
* instrumentDetect
|
665
|
|
* */
|
666
|
|
private AiIdenLogDto instrumentDetect(AiIdenLogDto aiIdenLogDto, String aifilePath){
|
667
|
|
try{
|
668
|
|
log.info("开始仪表识别。。。。");
|
669
|
|
//仪表识别
|
670
|
|
String aiResponseData=ebcAiService.instrumentDetect(ImageBase64Converter.convertFileToBase64(aifilePath),Strings.EMPTY,Strings.EMPTY,Strings.EMPTY);
|
671
|
|
JSONObject jsonObject = JSONObject.parseObject(aiResponseData);
|
672
|
|
System.out.print("AI仪表识别结果:"+aiResponseData);
|
673
|
|
JSONObject jsonObjectpredictions=jsonObject.getJSONObject("predictions");
|
674
|
|
if(jsonObjectpredictions.getString("Errors").isEmpty()){
|
675
|
|
if(jsonObjectpredictions.getInteger("Nums")>0){
|
676
|
|
log.info("识别到的仪表的数量为:"+jsonObjectpredictions.getInteger("Nums"));
|
677
|
|
aiIdenLogDto.setIdenResultType(MonitorManageConsts.AI_IDENTIFY_RESULT);
|
678
|
|
aiIdenLogDto.setRelateEmployeeRoleId(MonitorManageConsts.alarmEmployeeRoleId);
|
679
|
|
log.info("返回的仪表信息为:"+jsonObjectpredictions.getString("Items"));
|
680
|
|
aiIdenLogDto.setIdenResult(jsonObjectpredictions.getString("Items"));
|
681
|
|
|
682
|
|
|
683
|
|
log.info("仪表识别成功,推送KAFKA消息");
|
684
|
|
processKafka(aiIdenLogDto.getTopic(), JSONObject.toJSONString(aiIdenLogDto));
|
685
|
|
log.info("消息推送完成");
|
686
|
|
}else{
|
687
|
|
log.info("仪表数量为0,不推送消息");
|
688
|
|
}
|
689
|
|
}else{
|
690
|
|
log.info("异常返回,异常原因为:"+jsonObjectpredictions.getString("Errors"));
|
691
|
|
}
|
692
|
|
}catch(Exception e){
|
693
|
|
log.error("仪表识别AI处理异常:"+e.getMessage());
|
694
|
|
}
|
695
|
|
return aiIdenLogDto;
|
696
|
|
}
|
697
|
|
/**
|
698
|
|
* 根据设备code获取监控任务详情
|
699
|
|
* @param deviceCode
|
|
371
|
* 获取方法名称及包路径
|
|
372
|
* @param aiIdenModel
|
700
|
373
|
* @return
|
701
|
374
|
*/
|
702
|
|
private List<Map> getResourceToolAllInfo(String deviceCode) {
|
703
|
|
List<Map> resourceToolInfoList = new ArrayList<Map>();
|
704
|
|
try {
|
705
|
|
String url = protectionResourceUrl + "?resourceToolCode=" + deviceCode;
|
706
|
|
log.info("getResourceToolAllInfo method params: resourceToolCode=" + deviceCode + ", url=" + url);
|
707
|
|
String resultJson = HttpServiceUtil.sendRequest(url);
|
708
|
|
JSONObject resultData = JSON.parseObject(resultJson);
|
709
|
|
if (StringUtils.isEmpty(resultData.getString("data"))) {
|
710
|
|
log.info("getResourceToolAllInfo method returns an empty result");
|
711
|
|
return resourceToolInfoList;
|
712
|
|
}
|
713
|
|
|
714
|
|
resourceToolInfoList = JSON.parseArray(resultData.getString("data"), Map.class);
|
715
|
|
log.debug("getResourceToolAllInfo method return result: " + resultData.getString("data"));
|
716
|
|
} catch (Exception e) {
|
717
|
|
log.error("getResourceToolAllInfo is error:"+e.getMessage());
|
718
|
|
}
|
719
|
|
|
720
|
|
return resourceToolInfoList;
|
|
375
|
private String getClassByAiIdenModel(String aiIdenModel) {
|
|
376
|
StringBuffer result = new StringBuffer();
|
|
377
|
result.append("com.ai.bss.monitorManage.service.aiIden");
|
|
378
|
result.append(".");
|
|
379
|
result.append(AiIdenUtils.convertClassName(aiIdenModel));
|
|
380
|
result.append("AiIden");
|
|
381
|
|
|
382
|
return result.toString();
|
721
|
383
|
}
|
722
|
384
|
|
723
|
385
|
}
|
|
@ -13,6 +13,7 @@ import java.nio.file.WatchKey;
|
13
|
13
|
import java.nio.file.WatchService;
|
14
|
14
|
import java.util.ArrayList;
|
15
|
15
|
import java.util.HashMap;
|
|
16
|
import java.util.Iterator;
|
16
|
17
|
import java.util.List;
|
17
|
18
|
import java.util.Map;
|
18
|
19
|
import java.util.Timer;
|
|
@ -24,11 +25,13 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory;
|
24
|
25
|
import org.springframework.beans.factory.annotation.Autowired;
|
25
|
26
|
import org.springframework.beans.factory.annotation.Value;
|
26
|
27
|
import org.springframework.stereotype.Service;
|
|
28
|
import org.springframework.util.CollectionUtils;
|
27
|
29
|
|
28
|
30
|
import com.ai.bss.monitorManage.constant.MonitorManageConsts;
|
29
|
31
|
import com.ai.bss.monitorManage.service.interfaces.KafkaProcess;
|
30
|
32
|
import com.ai.bss.monitorManage.service.interfaces.ListeningFileDirectoryService;
|
31
|
33
|
import com.ai.bss.monitorManage.utils.FileUtils;
|
|
34
|
import com.alibaba.fastjson.JSONObject;
|
32
|
35
|
import com.mzlion.core.lang.StringUtils;
|
33
|
36
|
|
34
|
37
|
import lombok.extern.slf4j.Slf4j;
|
|
@ -51,15 +54,16 @@ public class ListeningFileDirectoryServiceImpl implements ListeningFileDirector
|
51
|
54
|
private String taskName="pictureTask";
|
52
|
55
|
|
53
|
56
|
@Override
|
54
|
|
public void getFile(String filePath) {
|
|
57
|
public void getFile(String filePath,int index) {
|
55
|
58
|
// if(){
|
56
|
59
|
//System.out.println("filePath: " + filePath);
|
57
|
60
|
log.info("filePath: " + filePath);
|
58
|
61
|
// final Timer timer = new Timer();
|
59
|
62
|
|
60
|
|
timerMap.put(taskName,new Timer());
|
|
63
|
String timerMapKey=taskName+index;
|
|
64
|
timerMap.put(timerMapKey,new Timer());
|
61
|
65
|
|
62
|
|
timerMap.get(taskName).schedule(new TimerTask() {
|
|
66
|
timerMap.get(timerMapKey).schedule(new TimerTask() {
|
63
|
67
|
@Override
|
64
|
68
|
public void run() {
|
65
|
69
|
WatchKey key;
|
|
@ -132,7 +136,7 @@ public class ListeningFileDirectoryServiceImpl implements ListeningFileDirector
|
132
|
136
|
}
|
133
|
137
|
}
|
134
|
138
|
//}, 2000 , 3000);//第一个数字2000表示,2000ms以后开启定时器,第二个数字3000,表示3000ms后运行一次run
|
135
|
|
}, 500 , 500); //1秒钟扫描一次
|
|
139
|
}, 2000 , 1000); //1000ms扫描一次
|
136
|
140
|
}
|
137
|
141
|
|
138
|
142
|
/*
|
|
@ -162,13 +166,23 @@ public class ListeningFileDirectoryServiceImpl implements ListeningFileDirector
|
162
|
166
|
* @param taskName
|
163
|
167
|
*/
|
164
|
168
|
@Override
|
165
|
|
public void removeTimer(){
|
|
169
|
public String removeTimer(){
|
|
170
|
if (CollectionUtils.isEmpty(timerMap)) {
|
|
171
|
return "未开启任务";
|
|
172
|
}
|
|
173
|
|
166
|
174
|
try{
|
167
|
|
timerMap.get(taskName).cancel();
|
168
|
|
timerMap.remove(taskName);
|
|
175
|
Iterator<Map.Entry<String, Timer>> it = timerMap.entrySet().iterator();
|
|
176
|
while(it.hasNext()){
|
|
177
|
Map.Entry<String, Timer> entry = it.next();
|
|
178
|
entry.getValue().cancel();
|
|
179
|
it.remove();
|
|
180
|
}
|
169
|
181
|
}catch(Exception e){
|
170
|
|
log.error("removeTimer is error :"+e.getMessage());
|
|
182
|
log.error("removeTimer is error :"+e.getMessage());
|
|
183
|
return "关闭失败";
|
171
|
184
|
}
|
|
185
|
return "关闭成功";
|
172
|
186
|
}
|
173
|
187
|
|
174
|
188
|
}
|
|
@ -62,6 +62,7 @@ public class MonitorManageServiceImpl implements MonitorManageService {
|
62
|
62
|
File file = new File(baseFilePath);//path为监听文件夹
|
63
|
63
|
|
64
|
64
|
File[] files = file.listFiles();
|
|
65
|
int n=1;
|
65
|
66
|
//摄像头列表
|
66
|
67
|
for(File file1:files){
|
67
|
68
|
file1.getName();
|
|
@ -79,7 +80,8 @@ public class MonitorManageServiceImpl implements MonitorManageService {
|
79
|
80
|
File[] camerafiles = deviceFile.listFiles();
|
80
|
81
|
//System.out.println("deviceFilePath() " + deviceFile.getPath());
|
81
|
82
|
log.info("deviceFilePath() " + deviceFile.getPath());
|
82
|
|
listeningFileDirectoryService.getFile(deviceFile.getPath());
|
|
83
|
listeningFileDirectoryService.getFile(deviceFile.getPath(),n);
|
|
84
|
n++;
|
83
|
85
|
}
|
84
|
86
|
}
|
85
|
87
|
}
|
|
@ -88,11 +90,12 @@ public class MonitorManageServiceImpl implements MonitorManageService {
|
88
|
90
|
* 关闭监听
|
89
|
91
|
*/
|
90
|
92
|
public String closeListeningPicture() {
|
91
|
|
listeningFileDirectoryService.removeTimer();
|
|
93
|
log.debug("关闭图片监听");
|
|
94
|
String result=listeningFileDirectoryService.removeTimer();
|
92
|
95
|
|
93
|
96
|
isBeginFlag=false;
|
94
|
|
log.info("图片监听关闭成功");
|
95
|
|
return "关闭成功";
|
|
97
|
log.info("关闭图片监听:"+result);
|
|
98
|
return result;
|
96
|
99
|
}
|
97
|
100
|
|
98
|
101
|
}
|
|
@ -0,0 +1,18 @@
|
|
1
|
package com.ai.bss.monitorManage.service.interfaces;
|
|
2
|
|
|
3
|
import java.util.List;
|
|
4
|
import java.util.Map;
|
|
5
|
|
|
6
|
import com.ai.bss.monitorManage.model.AiIdenLogDto;
|
|
7
|
import com.ai.bss.monitorManage.model.AlarmIdenResultDto;
|
|
8
|
|
|
9
|
/**
|
|
10
|
* AI模型接口
|
|
11
|
* @author konghl@asiainfo.com
|
|
12
|
* 2021-2-7
|
|
13
|
*/
|
|
14
|
public interface AiIdenInterfaces {
|
|
15
|
|
|
16
|
List<AlarmIdenResultDto> executeAiIden(AiIdenLogDto aiIdenLogDto, String filePath,Map<String,Integer> imageParam,boolean isHuman);
|
|
17
|
|
|
18
|
}
|
|
@ -3,14 +3,12 @@ package com.ai.bss.monitorManage.service.interfaces;
|
3
|
3
|
import java.util.List;
|
4
|
4
|
|
5
|
5
|
public interface KafkaProcess {
|
6
|
|
// void processMock(Long sId, List<AiIdenLog> mockScenarioDataList, Long frequency);
|
7
|
|
|
8
|
6
|
|
9
|
7
|
void processKafka(String topic,List<String> msgList);
|
10
|
8
|
|
11
|
9
|
void processKafka(String topic,String msgStr);
|
12
|
10
|
|
13
|
|
void processImageFile(String fileKey,String filePath) throws Exception;
|
|
11
|
void processImageFile(String fileKey,String filePath) throws Exception;
|
14
|
12
|
|
15
|
13
|
void processVideoFile(String fileKey,String filePath) throws Exception;
|
16
|
14
|
}
|
|
@ -3,7 +3,7 @@ package com.ai.bss.monitorManage.service.interfaces;
|
3
|
3
|
|
4
|
4
|
public interface ListeningFileDirectoryService {
|
5
|
5
|
|
6
|
|
void getFile(String filePath) ;
|
|
6
|
void getFile(String filePath,int index) ;
|
7
|
7
|
|
8
|
|
void removeTimer();
|
|
8
|
String removeTimer();
|
9
|
9
|
}
|
|
@ -0,0 +1,135 @@
|
|
1
|
package com.ai.bss.monitorManage.utils;
|
|
2
|
|
|
3
|
import java.awt.image.BufferedImage;
|
|
4
|
import java.io.IOException;
|
|
5
|
import java.io.InputStream;
|
|
6
|
import java.math.BigDecimal;
|
|
7
|
import java.net.MalformedURLException;
|
|
8
|
import java.net.URL;
|
|
9
|
import java.util.HashMap;
|
|
10
|
import java.util.Map;
|
|
11
|
|
|
12
|
import javax.imageio.ImageIO;
|
|
13
|
|
|
14
|
import org.apache.commons.lang.StringUtils;
|
|
15
|
|
|
16
|
import com.alibaba.fastjson.JSONArray;
|
|
17
|
import com.mzlion.core.lang.CollectionUtils;
|
|
18
|
|
|
19
|
import lombok.extern.slf4j.Slf4j;
|
|
20
|
|
|
21
|
/**
|
|
22
|
* @Auther: 王超
|
|
23
|
* @Date: 2021/2/3 17:49
|
|
24
|
* @Description:
|
|
25
|
*/
|
|
26
|
@Slf4j
|
|
27
|
public class AiIdenUtils {
|
|
28
|
|
|
29
|
/**
|
|
30
|
* JSONArray转int[],并转换为百分比
|
|
31
|
* @param jsonArray 原json
|
|
32
|
*
|
|
33
|
* @return boxIntArr
|
|
34
|
*/
|
|
35
|
public static int[] getBoxArray(JSONArray jsonArray, Map<String, Integer> getImageParam) {
|
|
36
|
if (CollectionUtils.isEmpty(jsonArray) || jsonArray.size() != 4 || CollectionUtils.isEmpty(getImageParam)) {
|
|
37
|
return new int[4];
|
|
38
|
}
|
|
39
|
|
|
40
|
/*int[] boxIntArr=new int[jsonArray.size()];
|
|
41
|
for(int i = 0;i<jsonArray.size();i++){
|
|
42
|
BigDecimal boxValue=(BigDecimal) jsonArray.get(i);
|
|
43
|
boxIntArr[i] =boxValue.intValue();
|
|
44
|
}*/
|
|
45
|
|
|
46
|
int[] boxIntArr = new int[4];
|
|
47
|
try {
|
|
48
|
BigDecimal boxValue = (BigDecimal) jsonArray.get(0);
|
|
49
|
boxIntArr[0] = boxValue.divide(new BigDecimal(getImageParam.get("width")), 0, BigDecimal.ROUND_FLOOR)
|
|
50
|
.intValue();
|
|
51
|
boxValue = (BigDecimal) jsonArray.get(1);
|
|
52
|
boxIntArr[1] = boxValue.divide(new BigDecimal(getImageParam.get("height")), 0, BigDecimal.ROUND_FLOOR)
|
|
53
|
.intValue();
|
|
54
|
boxValue = (BigDecimal) jsonArray.get(2);
|
|
55
|
boxIntArr[2] = boxValue.divide(new BigDecimal(getImageParam.get("width")), 0, BigDecimal.ROUND_CEILING)
|
|
56
|
.intValue();
|
|
57
|
boxValue = (BigDecimal) jsonArray.get(3);
|
|
58
|
boxIntArr[3] = boxValue.divide(new BigDecimal(getImageParam.get("height")), 0, BigDecimal.ROUND_CEILING)
|
|
59
|
.intValue();
|
|
60
|
} catch (Exception e) {
|
|
61
|
log.error("getBoxArray is error: errorMsg=" + e.getMessage() + ", jsonArray=" + jsonArray);
|
|
62
|
}
|
|
63
|
return boxIntArr;
|
|
64
|
}
|
|
65
|
|
|
66
|
/**
|
|
67
|
* 获取图片的长度和宽度
|
|
68
|
* @param filePath
|
|
69
|
* @return
|
|
70
|
*/
|
|
71
|
public static Map<String, Integer> getImageParam(String filePath) {
|
|
72
|
Map<String, Integer> param = null;
|
|
73
|
BufferedImage image = getBufferedImage(filePath);
|
|
74
|
if (image != null) {
|
|
75
|
param = new HashMap<String, Integer>();
|
|
76
|
param.put("width", image.getWidth());// 图片宽度
|
|
77
|
param.put("height", image.getHeight());// 图片高度
|
|
78
|
}
|
|
79
|
return param;
|
|
80
|
}
|
|
81
|
|
|
82
|
/**
|
|
83
|
* 获取图片对象
|
|
84
|
* @param filePath 图片地址
|
|
85
|
* @return
|
|
86
|
*/
|
|
87
|
private static BufferedImage getBufferedImage(String filePath) {
|
|
88
|
BufferedImage img = null;
|
|
89
|
InputStream is = null;
|
|
90
|
try {
|
|
91
|
URL url = new URL("file:///" +filePath);//加上file://标识符表示本地的文件
|
|
92
|
is = url.openStream();
|
|
93
|
img = ImageIO.read(is);
|
|
94
|
} catch (MalformedURLException e) {
|
|
95
|
log.error("getBufferedImage is MalformedURLException: " + e.getMessage() + ", filePath=" + filePath);
|
|
96
|
} catch (IOException e) {
|
|
97
|
log.error("getBufferedImage is IOException: " + e.getMessage() + ", filePath=" + filePath);
|
|
98
|
} finally {
|
|
99
|
try {
|
|
100
|
is.close();
|
|
101
|
} catch (IOException e) {
|
|
102
|
log.error("getBufferedImage is IOException1: " + e.getMessage() + ", filePath=" + filePath);
|
|
103
|
}
|
|
104
|
}
|
|
105
|
return img;
|
|
106
|
}
|
|
107
|
|
|
108
|
/**
|
|
109
|
* 获取类名:下划线转驼峰(首字母也大写)
|
|
110
|
* @param name
|
|
111
|
* @return
|
|
112
|
*/
|
|
113
|
public static String convertClassName(String name) {
|
|
114
|
if (StringUtils.isBlank(name)) {
|
|
115
|
return "";
|
|
116
|
}
|
|
117
|
|
|
118
|
StringBuilder result = new StringBuilder();
|
|
119
|
String camels[] = name.split("_");
|
|
120
|
|
|
121
|
for (String camel : camels) {
|
|
122
|
if (StringUtils.isBlank(camel)) {
|
|
123
|
// 跳过原始字符串中开头、结尾的下换线或双重下划线等
|
|
124
|
continue;
|
|
125
|
}
|
|
126
|
|
|
127
|
// 首字母大写,其余小写
|
|
128
|
result.append(camel.substring(0, 1).toUpperCase());
|
|
129
|
result.append(camel.substring(1).toLowerCase());
|
|
130
|
}
|
|
131
|
|
|
132
|
return result.toString();
|
|
133
|
}
|
|
134
|
|
|
135
|
}
|
|
@ -1,102 +0,0 @@
|
1
|
|
package com.ai.bss.monitorManage.utils;
|
2
|
|
|
3
|
|
import com.alibaba.fastjson.JSONArray;
|
4
|
|
import com.mzlion.core.lang.CollectionUtils;
|
5
|
|
import lombok.extern.slf4j.Slf4j;
|
6
|
|
|
7
|
|
import javax.imageio.ImageIO;
|
8
|
|
import java.awt.image.BufferedImage;
|
9
|
|
import java.io.File;
|
10
|
|
import java.io.IOException;
|
11
|
|
import java.io.InputStream;
|
12
|
|
import java.math.BigDecimal;
|
13
|
|
import java.net.MalformedURLException;
|
14
|
|
import java.net.URL;
|
15
|
|
import java.util.Collections;
|
16
|
|
import java.util.HashMap;
|
17
|
|
import java.util.Map;
|
18
|
|
|
19
|
|
/**
|
20
|
|
* @Auther: 王超
|
21
|
|
* @Date: 2021/2/3 17:49
|
22
|
|
* @Description:
|
23
|
|
*/
|
24
|
|
@Slf4j
|
25
|
|
public class AiIdentifyUtils {
|
26
|
|
|
27
|
|
/**
|
28
|
|
* JSONArray转int[]
|
29
|
|
* @param jsonArray 原json
|
30
|
|
*
|
31
|
|
* @return boxIntArr
|
32
|
|
*/
|
33
|
|
public static int[] getBoxArray(JSONArray jsonArray,Map<String,Integer> getImageParam) {
|
34
|
|
if (CollectionUtils.isEmpty(jsonArray)|| jsonArray.size() !=4 ||CollectionUtils.isEmpty(getImageParam)){
|
35
|
|
return new int[4];
|
36
|
|
}
|
37
|
|
|
38
|
|
/*int[] boxIntArr=new int[jsonArray.size()];
|
39
|
|
for(int i = 0;i<jsonArray.size();i++){
|
40
|
|
BigDecimal boxValue=(BigDecimal) jsonArray.get(i);
|
41
|
|
boxIntArr[i] =boxValue.intValue();
|
42
|
|
}*/
|
43
|
|
|
44
|
|
int[] boxIntArr=new int[4];
|
45
|
|
try{
|
46
|
|
BigDecimal boxValue=(BigDecimal) jsonArray.get(0);
|
47
|
|
boxIntArr[0] =boxValue.divide(new BigDecimal(getImageParam.get("width")),0,BigDecimal.ROUND_FLOOR).intValue();
|
48
|
|
boxValue=(BigDecimal) jsonArray.get(1);
|
49
|
|
boxIntArr[1] =boxValue.divide(new BigDecimal(getImageParam.get("height")),0,BigDecimal.ROUND_FLOOR).intValue();
|
50
|
|
boxValue=(BigDecimal) jsonArray.get(2);
|
51
|
|
boxIntArr[2] =boxValue.divide(new BigDecimal(getImageParam.get("width")),0,BigDecimal.ROUND_CEILING).intValue();
|
52
|
|
boxValue=(BigDecimal) jsonArray.get(3);
|
53
|
|
boxIntArr[3] =boxValue.divide(new BigDecimal(getImageParam.get("height")),0,BigDecimal.ROUND_CEILING).intValue();
|
54
|
|
} catch (Exception e) {
|
55
|
|
log.error("getBoxArray is error: errorMsg="+e.getMessage()+", jsonArray="+jsonArray);
|
56
|
|
}
|
57
|
|
return boxIntArr;
|
58
|
|
}
|
59
|
|
|
60
|
|
/**
|
61
|
|
* 获取图片的长度和宽度
|
62
|
|
* @param filePath
|
63
|
|
* @return
|
64
|
|
*/
|
65
|
|
public static Map<String,Integer> getImageParam(String filePath){
|
66
|
|
Map<String,Integer> param=null;
|
67
|
|
BufferedImage image = getBufferedImage(filePath);
|
68
|
|
if (image!=null){
|
69
|
|
param=new HashMap<String,Integer>();
|
70
|
|
param.put("width",image.getWidth());// 图片宽度
|
71
|
|
param.put("height",image.getHeight());// 图片高度
|
72
|
|
}
|
73
|
|
return param;
|
74
|
|
}
|
75
|
|
|
76
|
|
/**
|
77
|
|
* 获取图片对象
|
78
|
|
* @param filePath 图片地址
|
79
|
|
* @return
|
80
|
|
*/
|
81
|
|
private static BufferedImage getBufferedImage(String filePath) {
|
82
|
|
BufferedImage img = null;
|
83
|
|
InputStream is = null;
|
84
|
|
try {
|
85
|
|
URL url = new URL(filePath);
|
86
|
|
is = url.openStream();
|
87
|
|
img = ImageIO.read(is);
|
88
|
|
} catch (MalformedURLException e) {
|
89
|
|
log.error("getBufferedImage is MalformedURLException: "+e.getMessage()+", filePath="+filePath);
|
90
|
|
} catch (IOException e) {
|
91
|
|
log.error("getBufferedImage is IOException: "+e.getMessage()+", filePath="+filePath);
|
92
|
|
} finally {
|
93
|
|
try {
|
94
|
|
is.close();
|
95
|
|
} catch (IOException e) {
|
96
|
|
log.error("getBufferedImage is IOException1: "+e.getMessage()+", filePath="+filePath);
|
97
|
|
}
|
98
|
|
}
|
99
|
|
return img;
|
100
|
|
}
|
101
|
|
|
102
|
|
}
|
|
@ -1,9 +1,10 @@
|
1
|
1
|
package com.ai.bss.monitorManage.utils;
|
2
|
2
|
|
3
|
|
import lombok.Data;
|
4
|
3
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
5
|
4
|
import org.springframework.stereotype.Component;
|
6
|
5
|
|
|
6
|
import lombok.Data;
|
|
7
|
|
7
|
8
|
/**
|
8
|
9
|
* @className: MinioConfig
|
9
|
10
|
* @author zengtao
|
|
@ -1,13 +1,13 @@
|
1
|
1
|
package com.ai.bss.monitorManage.utils;
|
2
|
2
|
|
3
|
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
4
|
|
|
5
|
3
|
import java.math.BigDecimal;
|
6
|
4
|
import java.text.ParseException;
|
7
|
5
|
import java.text.SimpleDateFormat;
|
8
|
6
|
import java.util.Calendar;
|
9
|
7
|
import java.util.Date;
|
10
|
8
|
|
|
9
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
|
10
|
|
11
|
11
|
/**
|
12
|
12
|
* 时间工具类
|
13
|
13
|
* @author konghl@asiainfo.com
|
|
@ -1,9 +1,18 @@
|
1
|
1
|
package com.ai.bss.monitorManage.utils;
|
2
|
2
|
|
3
|
|
import com.ai.abc.exception.BaseException;
|
4
|
|
import com.ai.bss.infrastructure.constant.CommonConsts;
|
5
|
|
import com.alibaba.fastjson.JSONObject;
|
6
|
|
import lombok.extern.slf4j.Slf4j;
|
|
3
|
import java.io.BufferedReader;
|
|
4
|
import java.io.IOException;
|
|
5
|
import java.io.InputStream;
|
|
6
|
import java.io.InputStreamReader;
|
|
7
|
import java.io.UnsupportedEncodingException;
|
|
8
|
import java.net.HttpURLConnection;
|
|
9
|
import java.net.URL;
|
|
10
|
import java.net.URLEncoder;
|
|
11
|
import java.nio.charset.Charset;
|
|
12
|
import java.util.Iterator;
|
|
13
|
import java.util.Map;
|
|
14
|
import java.util.Set;
|
|
15
|
|
7
|
16
|
import org.apache.http.HttpEntity;
|
8
|
17
|
import org.apache.http.HttpStatus;
|
9
|
18
|
import org.apache.http.client.ClientProtocolException;
|
|
@ -20,14 +29,10 @@ import org.apache.http.impl.client.HttpClients;
|
20
|
29
|
import org.apache.http.protocol.HTTP;
|
21
|
30
|
import org.apache.http.util.EntityUtils;
|
22
|
31
|
|
23
|
|
import java.io.*;
|
24
|
|
import java.net.HttpURLConnection;
|
25
|
|
import java.net.URL;
|
26
|
|
import java.net.URLEncoder;
|
27
|
|
import java.nio.charset.Charset;
|
28
|
|
import java.util.Iterator;
|
29
|
|
import java.util.Map;
|
30
|
|
import java.util.Set;
|
|
32
|
import com.ai.abc.exception.BaseException;
|
|
33
|
import com.alibaba.fastjson.JSONObject;
|
|
34
|
|
|
35
|
import lombok.extern.slf4j.Slf4j;
|
31
|
36
|
|
32
|
37
|
/**
|
33
|
38
|
* http服务请求工具类
|
|
@ -1,7 +1,8 @@
|
1
|
1
|
package com.ai.bss.monitorManage.utils;
|
2
|
2
|
|
3
|
|
import lombok.NoArgsConstructor;
|
4
|
|
import lombok.extern.slf4j.Slf4j;
|
|
3
|
import java.util.HashMap;
|
|
4
|
import java.util.Map;
|
|
5
|
|
5
|
6
|
import org.apache.kafka.clients.producer.ProducerConfig;
|
6
|
7
|
import org.apache.kafka.common.serialization.StringSerializer;
|
7
|
8
|
import org.springframework.beans.factory.annotation.Value;
|
|
@ -13,8 +14,8 @@ import org.springframework.kafka.core.KafkaTemplate;
|
13
|
14
|
import org.springframework.kafka.core.ProducerFactory;
|
14
|
15
|
import org.springframework.stereotype.Component;
|
15
|
16
|
|
16
|
|
import java.util.HashMap;
|
17
|
|
import java.util.Map;
|
|
17
|
import lombok.NoArgsConstructor;
|
|
18
|
import lombok.extern.slf4j.Slf4j;
|
18
|
19
|
|
19
|
20
|
@Slf4j
|
20
|
21
|
@Configuration
|
|
@ -1,9 +1,10 @@
|
1
|
1
|
package com.ai.bss.monitorManage.utils;
|
2
|
2
|
|
3
|
|
import lombok.Data;
|
4
|
3
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
5
|
4
|
import org.springframework.stereotype.Component;
|
6
|
5
|
|
|
6
|
import lombok.Data;
|
|
7
|
|
7
|
8
|
/**
|
8
|
9
|
* @className: MinioConfig
|
9
|
10
|
* @author zengtao
|
|
@ -72,20 +72,21 @@ myminio.bucketAiVideo=ai-video
|
72
|
72
|
logging.level.com.ai=debug
|
73
|
73
|
logging.level.org.springframework.data=debug
|
74
|
74
|
|
75
|
|
|
|
75
|
#\u76d1\u63a7\u6587\u4ef6\u5939
|
76
|
76
|
camera.filePath=/home/puaiuc/data/DAHUA
|
77
|
|
#camera.filePath=D:\\data\\DAHUA
|
|
77
|
#camera.filePath=E:\\data\\DAHUA
|
78
|
78
|
|
79
|
|
#AI\u05b4\ufffd\u043d\ufffd\ufffd
|
|
79
|
#AI\u05b4\u56fe\u7247
|
80
|
80
|
#kafka.topic.aitask=topicTaskTest
|
81
|
81
|
kafka.topic.aitask=topic_ai_task
|
82
|
|
#AI\ufffd\ufffd\u01b5
|
|
82
|
#AI\u89c6\u9891
|
83
|
83
|
#kafka.topic.aivideo=topicVideoTest
|
84
|
84
|
kafka.topic.aivideo=topic_ai_video
|
85
|
85
|
|
86
|
86
|
|
87
|
87
|
#AI\u5931\u8d25\u8bf7\u6c42\u5730\u5740
|
88
|
|
ebc.ai.head-det-url=http://10.1.251.211:7001/todo/api/v1.4/control/online/IMAGE/HEAD/PREDICT
|
|
88
|
#ebc.ai.head-det-url=http://10.1.251.211:7001/todo/api/v1.4/control/online/IMAGE/HEAD/PREDICT
|
|
89
|
ebc.ai.head-det-url=http://10.1.251.211:7001/todo/api/v1.4/control/online/IMAGE/HUMAN/PREDICT
|
89
|
90
|
ebc.ai.helmet-det-url=http://10.1.251.211:7003/todo/api/v1.4/control/online/IMAGE/HELMET/PREDICT
|
90
|
91
|
ebc.ai.smokingdet-url=http://10.1.251.213:5125/smokingdet
|
91
|
92
|
ebc.ai.instrument-det-url=http://10.1.251.213:19100/predict
|
|
@ -1,19 +1,19 @@
|
1
|
1
|
package com.ai.bss.security.protection.config;
|
2
|
2
|
|
3
|
|
import com.ai.sso.filter.SessionUserFilter;
|
|
3
|
import java.util.Arrays;
|
|
4
|
import java.util.HashMap;
|
|
5
|
import java.util.Map;
|
|
6
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
7
|
|
4
|
8
|
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
5
|
9
|
import org.springframework.context.annotation.Bean;
|
6
|
10
|
import org.springframework.context.annotation.Configuration;
|
7
|
|
import org.springframework.core.task.TaskExecutor;
|
8
|
11
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
9
|
12
|
import org.springframework.web.cors.CorsConfiguration;
|
10
|
13
|
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
11
|
14
|
import org.springframework.web.filter.CorsFilter;
|
12
|
15
|
|
13
|
|
import java.util.Arrays;
|
14
|
|
import java.util.HashMap;
|
15
|
|
import java.util.Map;
|
16
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
16
|
import com.ai.sso.filter.SessionUserFilter;
|
17
|
17
|
|
18
|
18
|
/**
|
19
|
19
|
* 解决接口跨域问题
|
|
@ -1,12 +1,9 @@
|
1
|
1
|
package com.ai.bss.security.protection.model;
|
2
|
2
|
|
3
|
|
import lombok.Data;
|
4
|
3
|
import lombok.Getter;
|
5
|
4
|
import lombok.NoArgsConstructor;
|
6
|
5
|
import lombok.Setter;
|
7
|
6
|
|
8
|
|
import java.util.List;
|
9
|
|
|
10
|
7
|
/**
|
11
|
8
|
* @Auther: 王超
|
12
|
9
|
* @Date: 2020/12/8 17:37
|
|
@ -1,11 +1,12 @@
|
1
|
1
|
package com.ai.bss.security.protection.model;
|
2
|
2
|
|
3
|
|
import lombok.Data;
|
4
|
|
import org.springframework.format.annotation.DateTimeFormat;
|
5
|
|
|
6
|
3
|
import java.io.Serializable;
|
7
|
4
|
import java.util.Date;
|
8
|
5
|
|
|
6
|
import org.springframework.format.annotation.DateTimeFormat;
|
|
7
|
|
|
8
|
import lombok.Data;
|
|
9
|
|
9
|
10
|
/*救援人员*/
|
10
|
11
|
|
11
|
12
|
@Data
|
|
@ -1,16 +1,12 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.impl;
|
2
|
2
|
|
3
|
3
|
|
4
|
|
import com.ai.bss.security.protection.enums.UserEnums;
|
5
|
|
import com.ai.bss.security.protection.service.interfaces.AreaInRecordService;
|
6
|
|
import com.github.pagehelper.PageInfo;
|
7
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
4
|
import java.util.Map;
|
|
5
|
|
8
|
6
|
import org.springframework.stereotype.Service;
|
9
|
7
|
|
10
|
|
import java.text.SimpleDateFormat;
|
11
|
|
import java.util.Date;
|
12
|
|
import java.util.List;
|
13
|
|
import java.util.Map;
|
|
8
|
import com.ai.bss.security.protection.service.interfaces.AreaInRecordService;
|
|
9
|
import com.github.pagehelper.PageInfo;
|
14
|
10
|
|
15
|
11
|
@Service
|
16
|
12
|
public class AreaInRecordServiceImpl implements AreaInRecordService {
|
|
@ -1,5 +1,11 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.impl;
|
2
|
2
|
|
|
3
|
import java.util.List;
|
|
4
|
import java.util.Map;
|
|
5
|
|
|
6
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
7
|
import org.springframework.stereotype.Service;
|
|
8
|
|
3
|
9
|
import com.ai.abc.api.model.CommonRequest;
|
4
|
10
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
11
|
import com.ai.bss.components.common.constant.CommonConstant;
|
|
@ -10,12 +16,8 @@ import com.ai.bss.security.protection.service.interfaces.AttendanceCommonService
|
10
|
16
|
import com.ai.bss.user.dto.UserDto;
|
11
|
17
|
import com.ai.bss.user.service.api.EmployeeService;
|
12
|
18
|
import com.ai.bss.user.service.api.UserDtoQuery;
|
13
|
|
import lombok.extern.slf4j.Slf4j;
|
14
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
15
|
|
import org.springframework.stereotype.Service;
|
16
|
19
|
|
17
|
|
import java.util.List;
|
18
|
|
import java.util.Map;
|
|
20
|
import lombok.extern.slf4j.Slf4j;
|
19
|
21
|
|
20
|
22
|
@Slf4j
|
21
|
23
|
@Service
|
|
@ -1,5 +1,19 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.impl;
|
2
|
2
|
|
|
3
|
import java.math.BigDecimal;
|
|
4
|
import java.text.ParseException;
|
|
5
|
import java.text.SimpleDateFormat;
|
|
6
|
import java.util.ArrayList;
|
|
7
|
import java.util.Date;
|
|
8
|
import java.util.HashMap;
|
|
9
|
import java.util.Iterator;
|
|
10
|
import java.util.List;
|
|
11
|
import java.util.Map;
|
|
12
|
|
|
13
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
14
|
import org.springframework.stereotype.Service;
|
|
15
|
import org.springframework.util.CollectionUtils;
|
|
16
|
|
3
|
17
|
import com.ai.abc.api.model.CommonRequest;
|
4
|
18
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
19
|
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
|
|
@ -12,16 +26,6 @@ import com.ai.bss.security.protection.utils.EbcConstant;
|
12
|
26
|
import com.ai.bss.user.dto.EmployeeDto;
|
13
|
27
|
import com.ai.bss.user.service.api.EmployeeService;
|
14
|
28
|
import com.ai.bss.worker.service.api.AttendanceStatusQuery;
|
15
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
16
|
|
import org.springframework.stereotype.Service;
|
17
|
|
import org.springframework.util.CollectionUtils;
|
18
|
|
|
19
|
|
import java.math.BigDecimal;
|
20
|
|
import java.text.NumberFormat;
|
21
|
|
import java.text.ParseException;
|
22
|
|
import java.text.SimpleDateFormat;
|
23
|
|
import java.util.ArrayList;
|
24
|
|
import java.util.*;
|
25
|
29
|
|
26
|
30
|
/**
|
27
|
31
|
* @Auther: 王超
|
|
@ -1,5 +1,14 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.impl;
|
2
|
2
|
|
|
3
|
import java.text.SimpleDateFormat;
|
|
4
|
import java.util.Date;
|
|
5
|
import java.util.HashMap;
|
|
6
|
import java.util.Map;
|
|
7
|
|
|
8
|
import org.apache.commons.lang.StringUtils;
|
|
9
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
10
|
import org.springframework.stereotype.Service;
|
|
11
|
|
3
|
12
|
import com.ai.abc.api.model.CommonRequest;
|
4
|
13
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
14
|
import com.ai.abc.exception.BaseException;
|
|
@ -13,15 +22,8 @@ import com.ai.bss.work.attendance.service.api.AttendanceQuery;
|
13
|
22
|
import com.ai.bss.work.attendance.service.api.inparam.AttendanceRuleParams;
|
14
|
23
|
import com.ai.bss.work.task.model.common.WorkShift;
|
15
|
24
|
import com.ai.bss.work.task.model.common.WorkTaskSpecPlan;
|
16
|
|
import lombok.extern.slf4j.Slf4j;
|
17
|
|
import org.apache.commons.lang.StringUtils;
|
18
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
19
|
|
import org.springframework.stereotype.Service;
|
20
|
25
|
|
21
|
|
import java.text.SimpleDateFormat;
|
22
|
|
import java.util.Date;
|
23
|
|
import java.util.HashMap;
|
24
|
|
import java.util.Map;
|
|
26
|
import lombok.extern.slf4j.Slf4j;
|
25
|
27
|
|
26
|
28
|
@Slf4j
|
27
|
29
|
@Service
|
|
@ -1,5 +1,12 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.impl;
|
2
|
2
|
|
|
3
|
import java.util.HashMap;
|
|
4
|
import java.util.List;
|
|
5
|
import java.util.Map;
|
|
6
|
|
|
7
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
8
|
import org.springframework.stereotype.Service;
|
|
9
|
|
3
|
10
|
import com.ai.abc.api.model.CommonRequest;
|
4
|
11
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
12
|
import com.ai.bss.components.common.model.PageBean;
|
|
@ -9,13 +16,6 @@ import com.ai.bss.user.service.api.EmployeeService;
|
9
|
16
|
import com.ai.bss.work.safety.service.api.AiTaskQuery;
|
10
|
17
|
import com.ai.bss.work.tool.service.api.ResourceToolQuery;
|
11
|
18
|
import com.alibaba.fastjson.JSON;
|
12
|
|
import org.apache.bcel.verifier.statics.LONG_Upper;
|
13
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
14
|
|
import org.springframework.stereotype.Service;
|
15
|
|
|
16
|
|
import java.util.HashMap;
|
17
|
|
import java.util.List;
|
18
|
|
import java.util.Map;
|
19
|
19
|
|
20
|
20
|
/**
|
21
|
21
|
* @Auther: 王超
|
|
@ -28,7 +28,7 @@ import com.alibaba.fastjson.JSON;
|
28
|
28
|
@Service
|
29
|
29
|
public class LoginServiceImpl implements LoginService {
|
30
|
30
|
|
31
|
|
private Logger logger = LoggerFactory.getLogger(LoginServiceImpl.class);
|
|
31
|
private static final Logger logger = LoggerFactory.getLogger(LoginServiceImpl.class);
|
32
|
32
|
|
33
|
33
|
@Value("${uspa.login.vercode}")
|
34
|
34
|
private String verCode;
|
|
@ -1,5 +1,14 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.impl;
|
2
|
2
|
|
|
3
|
import java.util.ArrayList;
|
|
4
|
import java.util.HashMap;
|
|
5
|
import java.util.List;
|
|
6
|
import java.util.Map;
|
|
7
|
|
|
8
|
import org.apache.commons.lang.StringUtils;
|
|
9
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
10
|
import org.springframework.stereotype.Service;
|
|
11
|
|
3
|
12
|
import com.ai.abc.api.model.CommonRequest;
|
4
|
13
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
14
|
import com.ai.abc.exception.BaseException;
|
|
@ -10,15 +19,8 @@ import com.ai.bss.work.safety.model.MonitorSceneTerminalRel;
|
10
|
19
|
import com.ai.bss.work.safety.service.api.AiTaskQuery;
|
11
|
20
|
import com.ai.bss.work.safety.service.api.MonitorSceneCommand;
|
12
|
21
|
import com.ai.bss.work.safety.service.api.MonitorSceneQuery;
|
13
|
|
import lombok.extern.slf4j.Slf4j;
|
14
|
|
import org.apache.commons.lang.StringUtils;
|
15
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
16
|
|
import org.springframework.stereotype.Service;
|
17
|
22
|
|
18
|
|
import java.util.ArrayList;
|
19
|
|
import java.util.HashMap;
|
20
|
|
import java.util.List;
|
21
|
|
import java.util.Map;
|
|
23
|
import lombok.extern.slf4j.Slf4j;
|
22
|
24
|
|
23
|
25
|
@Slf4j
|
24
|
26
|
@Service
|
|
@ -4,14 +4,8 @@ import java.io.ByteArrayInputStream;
|
4
|
4
|
import java.io.InputStream;
|
5
|
5
|
import java.util.ArrayList;
|
6
|
6
|
import java.util.Date;
|
7
|
|
import java.util.HashMap;
|
8
|
7
|
import java.util.List;
|
9
|
|
import java.util.Map;
|
10
|
8
|
|
11
|
|
import cn.hutool.core.lang.UUID;
|
12
|
|
import com.ai.bss.components.minio.service.MinioService;
|
13
|
|
import com.ai.bss.security.protection.model.SecurityProtectionMinioConfig;
|
14
|
|
import com.ai.bss.security.protection.service.interfaces.UploadFileService;
|
15
|
9
|
import org.apache.commons.lang.StringUtils;
|
16
|
10
|
import org.springframework.beans.factory.annotation.Autowired;
|
17
|
11
|
import org.springframework.stereotype.Service;
|
|
@ -20,14 +14,19 @@ import org.springframework.util.CollectionUtils;
|
20
|
14
|
import com.ai.abc.api.model.CommonRequest;
|
21
|
15
|
import com.ai.abc.api.model.CommonResponse;
|
22
|
16
|
import com.ai.bss.components.common.util.ComponentReflectionUtils;
|
|
17
|
import com.ai.bss.components.minio.service.MinioService;
|
23
|
18
|
import com.ai.bss.security.protection.model.EbcMonitorVideoLog;
|
|
19
|
import com.ai.bss.security.protection.model.SecurityProtectionMinioConfig;
|
24
|
20
|
import com.ai.bss.security.protection.service.interfaces.MonitorVideoLogManageService;
|
|
21
|
import com.ai.bss.security.protection.service.interfaces.UploadFileService;
|
25
|
22
|
import com.ai.bss.security.protection.utils.DateUtil;
|
26
|
23
|
import com.ai.bss.security.protection.utils.EbcConstant;
|
27
|
24
|
import com.ai.bss.work.safety.model.MonitorVideoLog;
|
28
|
25
|
import com.ai.bss.work.safety.service.api.MonitorSceneCommand;
|
29
|
26
|
import com.ai.bss.work.safety.service.api.MonitorSceneQuery;
|
30
|
27
|
|
|
28
|
import cn.hutool.core.lang.UUID;
|
|
29
|
|
31
|
30
|
@Service
|
32
|
31
|
public class MonitorVideoLogManageServiceImpl implements MonitorVideoLogManageService {
|
33
|
32
|
|
|
@ -1,21 +1,20 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.impl;
|
2
|
2
|
|
|
3
|
import java.util.List;
|
|
4
|
import java.util.Map;
|
|
5
|
|
|
6
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
7
|
import org.springframework.stereotype.Service;
|
|
8
|
|
3
|
9
|
import com.ai.abc.api.model.CommonRequest;
|
4
|
10
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
11
|
import com.ai.bss.components.common.model.PageBean;
|
6
|
|
import com.ai.bss.security.protection.model.AiQuery;
|
7
|
12
|
import com.ai.bss.security.protection.service.interfaces.SysConfigAiTaskService;
|
8
|
13
|
import com.ai.bss.work.safety.model.AiModel;
|
9
|
14
|
import com.ai.bss.work.safety.model.AiTask;
|
10
|
15
|
import com.ai.bss.work.safety.service.api.AiTaskCommand;
|
11
|
16
|
import com.ai.bss.work.safety.service.api.AiTaskQuery;
|
12
|
17
|
import com.ai.bss.work.service.api.WorkTaskCommand;
|
13
|
|
import com.ai.bss.work.task.model.common.WorkTask;
|
14
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
15
|
|
import org.springframework.stereotype.Service;
|
16
|
|
|
17
|
|
import java.util.List;
|
18
|
|
import java.util.Map;
|
19
|
18
|
|
20
|
19
|
/**
|
21
|
20
|
* @Auther: 王超
|
|
@ -15,7 +15,6 @@ import org.springframework.web.multipart.MultipartFile;
|
15
|
15
|
|
16
|
16
|
import com.ai.abc.api.model.CommonRequest;
|
17
|
17
|
import com.ai.abc.api.model.CommonResponse;
|
18
|
|
import com.ai.abc.exception.BaseException;
|
19
|
18
|
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
|
20
|
19
|
import com.ai.bss.components.common.model.PageBean;
|
21
|
20
|
import com.ai.bss.components.common.util.JsonUtils;
|
|
@ -1,5 +1,12 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.impl;
|
2
|
2
|
|
|
3
|
import java.util.ArrayList;
|
|
4
|
import java.util.List;
|
|
5
|
|
|
6
|
import org.apache.commons.lang.StringUtils;
|
|
7
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
8
|
import org.springframework.stereotype.Service;
|
|
9
|
|
3
|
10
|
import com.ai.abc.api.model.CommonRequest;
|
4
|
11
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
12
|
import com.ai.abc.exception.BaseException;
|
|
@ -11,13 +18,8 @@ import com.ai.bss.work.service.api.WorkTaskSpecPlanQuery;
|
11
|
18
|
import com.ai.bss.work.task.model.common.WorkShift;
|
12
|
19
|
import com.alibaba.fastjson.JSON;
|
13
|
20
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
14
|
|
import lombok.extern.slf4j.Slf4j;
|
15
|
|
import org.apache.commons.lang.StringUtils;
|
16
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
17
|
|
import org.springframework.stereotype.Service;
|
18
|
21
|
|
19
|
|
import java.util.ArrayList;
|
20
|
|
import java.util.List;
|
|
22
|
import lombok.extern.slf4j.Slf4j;
|
21
|
23
|
|
22
|
24
|
@Slf4j
|
23
|
25
|
@Service
|
|
@ -1,16 +1,15 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
3
|
|
import com.ai.abc.api.model.CommonRequest;
|
4
|
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
|
import com.ai.bss.components.common.model.PageBean;
|
6
|
|
import com.ai.bss.work.safety.model.AiModel;
|
7
|
|
import com.ai.bss.work.task.model.common.WorkTask;
|
8
|
|
|
9
|
3
|
import java.util.List;
|
10
|
4
|
import java.util.Map;
|
11
|
5
|
|
12
|
6
|
import org.springframework.web.bind.annotation.RequestParam;
|
13
|
7
|
|
|
8
|
import com.ai.abc.api.model.CommonRequest;
|
|
9
|
import com.ai.abc.api.model.CommonResponse;
|
|
10
|
import com.ai.bss.components.common.model.PageBean;
|
|
11
|
import com.ai.bss.work.task.model.common.WorkTask;
|
|
12
|
|
14
|
13
|
public interface AiAlarmManageService {
|
15
|
14
|
CommonResponse<PageBean<Map<String, Object>>> queryPageAiAlarm(Map<String, Object> params, int pageNumber,
|
16
|
15
|
int pageSize)throws Exception;
|
|
@ -1,8 +1,9 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
3
|
|
import com.github.pagehelper.PageInfo;
|
4
|
3
|
import java.util.Map;
|
5
|
4
|
|
|
5
|
import com.github.pagehelper.PageInfo;
|
|
6
|
|
6
|
7
|
/**
|
7
|
8
|
* 考勤管理
|
8
|
9
|
* @author konghl@asiainfo.com
|
|
@ -1,14 +1,14 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
|
3
|
import java.util.List;
|
|
4
|
import java.util.Map;
|
|
5
|
|
3
|
6
|
import com.ai.abc.api.model.CommonRequest;
|
4
|
7
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
8
|
import com.ai.bss.components.common.model.PageBean;
|
6
|
9
|
import com.ai.bss.person.model.Organization;
|
7
|
10
|
import com.ai.bss.user.dto.UserDto;
|
8
|
11
|
|
9
|
|
import java.util.List;
|
10
|
|
import java.util.Map;
|
11
|
|
|
12
|
12
|
public interface AttendanceCommonService {
|
13
|
13
|
/**
|
14
|
14
|
* 人员列表分页查询
|
|
@ -1,11 +1,9 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
|
3
|
import java.util.Map;
|
|
4
|
|
3
|
5
|
import com.ai.abc.api.model.CommonResponse;
|
4
|
6
|
import com.ai.bss.components.common.model.PageBean;
|
5
|
|
import com.github.pagehelper.PageInfo;
|
6
|
|
|
7
|
|
import java.util.List;
|
8
|
|
import java.util.Map;
|
9
|
7
|
|
10
|
8
|
public interface AttendanceReportService {
|
11
|
9
|
CommonResponse<PageBean<Map<String,Object>>> queryMonthlyAttendanceReport(Map<String, Object> params, int pageNumber, int pageSize);
|
|
@ -1,9 +1,9 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
3
|
|
import com.ai.bss.security.protection.dto.AttendanceRuleDto;
|
4
|
|
|
5
|
3
|
import java.util.Map;
|
6
|
4
|
|
|
5
|
import com.ai.bss.security.protection.dto.AttendanceRuleDto;
|
|
6
|
|
7
|
7
|
public interface AttendanceRulesService {
|
8
|
8
|
|
9
|
9
|
/**
|
|
@ -3,10 +3,10 @@ package com.ai.bss.security.protection.service.interfaces;
|
3
|
3
|
import java.util.List;
|
4
|
4
|
import java.util.Map;
|
5
|
5
|
|
6
|
|
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
|
7
|
6
|
import org.springframework.web.multipart.MultipartFile;
|
8
|
7
|
|
9
|
8
|
import com.ai.abc.api.model.CommonResponse;
|
|
9
|
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
|
10
|
10
|
import com.ai.bss.components.common.model.PageBean;
|
11
|
11
|
import com.ai.bss.person.model.Organization;
|
12
|
12
|
import com.ai.bss.user.dto.EmployeeDto;
|
|
@ -1,10 +1,10 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
|
3
|
import java.util.Map;
|
|
4
|
|
3
|
5
|
import com.ai.abc.api.model.CommonResponse;
|
4
|
6
|
import com.ai.bss.components.common.model.PageBean;
|
5
|
7
|
|
6
|
|
import java.util.Map;
|
7
|
|
|
8
|
8
|
public interface InAndOutRecordService {
|
9
|
9
|
CommonResponse<PageBean<Map<String, Object>>> queryPageInAndOutRecord(Map<String, Object> params, int pageNumber, int pageSize);
|
10
|
10
|
|
|
@ -2,10 +2,11 @@ package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
3
|
3
|
|
4
|
4
|
|
5
|
|
import com.ai.bss.security.protection.model.User;
|
|
5
|
import java.util.Map;
|
6
|
6
|
|
7
|
7
|
import javax.servlet.http.HttpServletRequest;
|
8
|
|
import java.util.Map;
|
|
8
|
|
|
9
|
import com.ai.bss.security.protection.model.User;
|
9
|
10
|
|
10
|
11
|
/**
|
11
|
12
|
* @Auther: 王超
|
|
@ -1,12 +1,12 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
|
3
|
import java.util.List;
|
|
4
|
import java.util.Map;
|
|
5
|
|
3
|
6
|
import com.ai.abc.api.model.CommonResponse;
|
4
|
7
|
import com.ai.bss.components.common.model.PageBean;
|
5
|
8
|
import com.ai.bss.work.safety.model.MonitorSceneTerminalRel;
|
6
|
9
|
|
7
|
|
import java.util.List;
|
8
|
|
import java.util.Map;
|
9
|
|
|
10
|
10
|
public interface MonitorSceneTerminalService {
|
11
|
11
|
|
12
|
12
|
/**
|
|
@ -1,15 +1,12 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
3
|
|
import com.ai.abc.api.model.CommonRequest;
|
|
3
|
import java.util.List;
|
|
4
|
import java.util.Map;
|
|
5
|
|
4
|
6
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
7
|
import com.ai.bss.components.common.model.PageBean;
|
6
|
|
import com.ai.bss.security.protection.model.AiQuery;
|
7
|
8
|
import com.ai.bss.work.safety.model.AiModel;
|
8
|
9
|
import com.ai.bss.work.safety.model.AiTask;
|
9
|
|
import com.ai.bss.work.task.model.common.WorkTask;
|
10
|
|
|
11
|
|
import java.util.List;
|
12
|
|
import java.util.Map;
|
13
|
10
|
|
14
|
11
|
public interface SysConfigAiTaskService {
|
15
|
12
|
CommonResponse<PageBean<Map<String, Object>>> queryPageAiTask(Map<String, Object> params, int pageNumber, int pageSize);
|
|
@ -1,13 +1,13 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
3
|
|
import com.ai.abc.api.model.CommonResponse;
|
4
|
|
import com.ai.bss.components.common.model.PageBean;
|
5
|
|
import com.ai.bss.work.task.model.common.WorkEvent;
|
|
3
|
import java.util.List;
|
|
4
|
import java.util.Map;
|
6
|
5
|
|
7
|
6
|
import org.springframework.web.multipart.MultipartFile;
|
8
|
7
|
|
9
|
|
import java.util.List;
|
10
|
|
import java.util.Map;
|
|
8
|
import com.ai.abc.api.model.CommonResponse;
|
|
9
|
import com.ai.bss.components.common.model.PageBean;
|
|
10
|
import com.ai.bss.work.task.model.common.WorkEvent;
|
11
|
11
|
|
12
|
12
|
public interface WorkOrderManagementService {
|
13
|
13
|
|
|
@ -1,10 +1,10 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.interfaces;
|
2
|
2
|
|
|
3
|
import java.util.List;
|
|
4
|
|
3
|
5
|
import com.ai.abc.api.model.CommonResponse;
|
4
|
6
|
import com.ai.bss.work.task.model.common.WorkShift;
|
5
|
7
|
|
6
|
|
import java.util.List;
|
7
|
|
|
8
|
8
|
public interface WorkShiftService {
|
9
|
9
|
|
10
|
10
|
/**
|
|
@ -6,10 +6,8 @@ import java.util.concurrent.FutureTask;
|
6
|
6
|
|
7
|
7
|
import org.apache.kafka.clients.consumer.ConsumerRecord;
|
8
|
8
|
import org.springframework.beans.factory.annotation.Autowired;
|
9
|
|
import org.springframework.core.task.TaskExecutor;
|
10
|
9
|
import org.springframework.kafka.annotation.KafkaListener;
|
11
|
10
|
import org.springframework.kafka.support.Acknowledgment;
|
12
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
13
|
11
|
import org.springframework.stereotype.Component;
|
14
|
12
|
import org.springframework.util.CollectionUtils;
|
15
|
13
|
|
|
@ -1,11 +1,12 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.task;
|
2
|
2
|
|
|
3
|
import org.slf4j.Logger;
|
|
4
|
import org.slf4j.LoggerFactory;
|
|
5
|
|
3
|
6
|
import com.ai.ipu.server.connect.ps.EventChannelTool;
|
4
|
7
|
import com.ai.ipu.server.connect.ps.EventChannelTool.PublisherEvent;
|
5
|
8
|
import com.ai.ipu.server.connect.ps.ISubscriber;
|
6
|
9
|
import com.ai.ipu.server.connect.ps.impl.Publisher;
|
7
|
|
import org.slf4j.Logger;
|
8
|
|
import org.slf4j.LoggerFactory;
|
9
|
10
|
|
10
|
11
|
/**
|
11
|
12
|
* 镜屏推送消息
|
|
@ -1,21 +1,9 @@
|
1
|
1
|
package com.ai.bss.security.protection.service.task;
|
2
|
2
|
|
3
|
|
import com.ai.abc.api.model.CommonRequest;
|
4
|
|
import com.ai.abc.api.model.CommonResponse;
|
5
|
|
import com.ai.bss.security.protection.service.interfaces.CharSpecService;
|
6
|
|
import com.ai.bss.work.task.model.common.WorkTask;
|
7
|
|
import com.ai.bss.worker.service.api.EntityAlarmHandle;
|
8
|
|
import com.alibaba.fastjson.JSON;
|
9
|
|
import com.alibaba.fastjson.JSONObject;
|
10
|
|
import org.apache.commons.collections4.map.HashedMap;
|
|
3
|
import java.util.concurrent.Callable;
|
|
4
|
|
11
|
5
|
import org.slf4j.Logger;
|
12
|
6
|
import org.slf4j.LoggerFactory;
|
13
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
14
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
15
|
|
import org.springframework.stereotype.Component;
|
16
|
|
|
17
|
|
import java.util.Map;
|
18
|
|
import java.util.concurrent.Callable;
|
19
|
7
|
|
20
|
8
|
public class MirrorSendAiDataThread implements Callable<Integer> {
|
21
|
9
|
private Logger logger = LoggerFactory.getLogger(MirrorSendAiDataThread.class);
|
|
@ -40,7 +40,7 @@ import com.alibaba.fastjson.JSONObject;
|
40
|
40
|
* @author chencai
|
41
|
41
|
*/
|
42
|
42
|
public class HttpServiceUtil {
|
43
|
|
private static Logger log = LoggerFactory.getLogger(HttpServiceUtil.class);
|
|
43
|
private static final Logger log = LoggerFactory.getLogger(HttpServiceUtil.class);
|
44
|
44
|
|
45
|
45
|
private static final String HTTP_CONTENT_TYPE_JSON = "application/json; charset=utf-8";
|
46
|
46
|
|