|
@ -14,7 +14,6 @@ import com.ai.abc.api.model.CommonRequest;
|
14
|
14
|
import com.ai.abc.api.model.CommonResponse;
|
15
|
15
|
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
|
16
|
16
|
import com.ai.bss.components.common.model.PageBean;
|
17
|
|
import com.ai.bss.security.protection.model.EbcMonitorVideoLog;
|
18
|
17
|
import com.ai.bss.security.protection.service.interfaces.AiAlarmManageService;
|
19
|
18
|
import com.ai.bss.security.protection.service.interfaces.CharSpecService;
|
20
|
19
|
import com.ai.bss.security.protection.service.interfaces.MonitorVideoLogManageService;
|
|
@ -23,13 +22,11 @@ import com.ai.bss.security.protection.utils.DateUtil;
|
23
|
22
|
import com.ai.bss.security.protection.utils.EbcConstant;
|
24
|
23
|
import com.ai.bss.user.dto.EmployeeDto;
|
25
|
24
|
import com.ai.bss.user.service.api.EmployeeService;
|
26
|
|
import com.ai.bss.work.safety.model.AiModel;
|
27
|
25
|
import com.ai.bss.work.safety.model.WorkTaskSafetyAlarm;
|
28
|
26
|
import com.ai.bss.work.safety.service.api.AiTaskQuery;
|
29
|
27
|
import com.ai.bss.work.service.api.WorkTaskCommand;
|
30
|
28
|
import com.ai.bss.work.task.model.common.WorkTask;
|
31
|
29
|
import com.alibaba.fastjson.JSON;
|
32
|
|
import com.alibaba.fastjson.JSONObject;
|
33
|
30
|
import com.alibaba.fastjson.TypeReference;
|
34
|
31
|
|
35
|
32
|
/**
|
|
@ -39,176 +36,197 @@ import com.alibaba.fastjson.TypeReference;
|
39
|
36
|
*/
|
40
|
37
|
@Service
|
41
|
38
|
public class AiAlarmManageServiceImpl implements AiAlarmManageService {
|
42
|
|
@Autowired
|
43
|
|
WorkTaskCommand workTaskCommand;
|
44
|
|
|
45
|
|
@Autowired
|
46
|
|
AiTaskQuery aiTaskQuery;
|
|
39
|
@Autowired
|
|
40
|
WorkTaskCommand workTaskCommand;
|
47
|
41
|
|
48
|
|
@Autowired
|
49
|
|
CharSpecService charSpecService;
|
|
42
|
@Autowired
|
|
43
|
AiTaskQuery aiTaskQuery;
|
50
|
44
|
|
51
|
|
@Autowired
|
52
|
|
EmployeeService employeeService;
|
|
45
|
@Autowired
|
|
46
|
CharSpecService charSpecService;
|
|
47
|
|
|
48
|
@Autowired
|
|
49
|
EmployeeService employeeService;
|
53
|
50
|
|
54
|
|
@Autowired
|
|
51
|
@Autowired
|
55
|
52
|
private UploadFileService uploadFileService;
|
56
|
|
|
|
53
|
|
57
|
54
|
@Autowired
|
58
|
55
|
private MonitorVideoLogManageService monitorVideoLogManageService;
|
59
|
56
|
|
60
|
|
@Override
|
61
|
|
public CommonResponse<PageBean<Map<String, Object>>> queryPageAiAlarm(Map<String, Object> params, int pageNumber, int pageSize) {
|
62
|
|
//在特征表获取职务值
|
63
|
|
List<CharacteristicSpecValue> aiAlarmTypeList = charSpecService.getCharSpecList(EbcConstant.AI_ALARM_TYPE);
|
64
|
|
|
65
|
|
CommonResponse<PageBean<Map<String, Object>>> queryResult = aiTaskQuery.queryMonitorAlarmTask(new CommonRequest<>(params, pageNumber, pageSize));
|
66
|
|
List<Map<String, Object>> aiAlarmList = queryResult.getData().getData();
|
67
|
|
|
68
|
|
aiAlarmList.forEach((aiAlarm)->{
|
69
|
|
//根据处理人id查找姓名
|
70
|
|
if(null!=aiAlarm.get("workEmployeeRoleId")){
|
71
|
|
long relateEmployeeRoleId = Long.parseLong((String) aiAlarm.get("workEmployeeRoleId"));
|
72
|
|
|
73
|
|
EmployeeDto employeeDto = new EmployeeDto();
|
74
|
|
employeeDto.setId(relateEmployeeRoleId);
|
75
|
|
CommonRequest<EmployeeDto> request = CommonRequest.<EmployeeDto>builder().data(employeeDto).build();
|
76
|
|
CommonResponse<EmployeeDto> response = employeeService.queryEmployee(request);
|
77
|
|
EmployeeDto employee = response.getData();
|
78
|
|
|
79
|
|
if(employee!=null){
|
80
|
|
aiAlarm.put("workEmployeeRoleName", employee.getName());
|
81
|
|
}else{
|
82
|
|
aiAlarm.put("workEmployeeRoleName", aiAlarm.get("workEmployeeRoleId"));
|
83
|
|
}
|
84
|
|
}
|
85
|
|
//根据报警类型查找报警中文名字
|
|
57
|
@Override
|
|
58
|
public CommonResponse<PageBean<Map<String, Object>>> queryPageAiAlarm(Map<String, Object> params, int pageNumber,
|
|
59
|
int pageSize) throws Exception {
|
|
60
|
// 在特征表获取职务值
|
|
61
|
List<CharacteristicSpecValue> aiAlarmTypeList = charSpecService.getCharSpecList(EbcConstant.AI_ALARM_TYPE);
|
|
62
|
|
|
63
|
CommonResponse<PageBean<Map<String, Object>>> queryResult = aiTaskQuery
|
|
64
|
.queryMonitorAlarmTask(new CommonRequest<>(params, pageNumber, pageSize));
|
|
65
|
|
|
66
|
if (queryResult == null || queryResult.getData() == null
|
|
67
|
|| CollectionUtils.isEmpty(queryResult.getData().getData())) {
|
|
68
|
return queryResult;
|
|
69
|
}
|
|
70
|
|
|
71
|
List<Map<String, Object>> aiAlarmList = queryResult.getData().getData();
|
|
72
|
|
|
73
|
for (Map<String, Object> aiAlarm : aiAlarmList) {
|
|
74
|
aiAlarm.put("workEmployeeRoleName", "");
|
|
75
|
aiAlarm.put("processTime", "");
|
|
76
|
|
|
77
|
if (WorkTask.END_STATUS.equals(String.valueOf(aiAlarm.get("status")))) {
|
|
78
|
// 根据处理人id查找姓名
|
|
79
|
if (null != aiAlarm.get("processEmployeeRoleId")) {
|
|
80
|
long processEmployeeRoleId = Long
|
|
81
|
.parseLong((String) aiAlarm.get("processEmployeeRoleId").toString());
|
|
82
|
|
|
83
|
EmployeeDto processEmployeeDto = new EmployeeDto();
|
|
84
|
processEmployeeDto.setId(processEmployeeRoleId);
|
|
85
|
CommonRequest<EmployeeDto> request = new CommonRequest<EmployeeDto>(processEmployeeDto);
|
|
86
|
CommonResponse<EmployeeDto> response = employeeService.queryEmployee(request);
|
|
87
|
processEmployeeDto = response.getData();
|
|
88
|
|
|
89
|
if (processEmployeeDto != null) {
|
|
90
|
aiAlarm.put("workEmployeeRoleName", processEmployeeDto.getName());
|
|
91
|
}
|
|
92
|
|
|
93
|
// 处理时间
|
|
94
|
aiAlarm.put("processTime", DateUtil.formatObjectToDate(aiAlarm.get("processTime")));
|
|
95
|
}
|
|
96
|
}
|
|
97
|
|
|
98
|
// 根据报警类型查找报警中文名字
|
86
|
99
|
aiAlarm.put("alarmTypeName", aiAlarm.get("alarmTypeCode"));
|
87
|
|
aiAlarmTypeList.forEach((aiAlarmType) -> {
|
88
|
|
if (aiAlarmType.getCode().equals(aiAlarm.get("alarmTypeCode"))) {
|
89
|
|
aiAlarm.put("alarmTypeName", aiAlarmType.getValue());
|
90
|
|
}
|
91
|
|
});
|
92
|
|
});
|
93
|
|
|
94
|
|
return queryResult;
|
95
|
|
}
|
96
|
|
|
97
|
|
@Override
|
98
|
|
public CommonResponse<WorkTask> changeTaskStatus(CommonRequest<WorkTask> workTaskRequest) {
|
99
|
|
CommonResponse<WorkTask> changeResultResponse = workTaskCommand.changeTaskStatus(workTaskRequest);
|
100
|
|
return changeResultResponse;
|
101
|
|
}
|
102
|
|
|
|
100
|
aiAlarmTypeList.forEach((aiAlarmType) -> {
|
|
101
|
if (aiAlarmType.getCode().equals(aiAlarm.get("alarmTypeCode"))) {
|
|
102
|
aiAlarm.put("alarmTypeName", aiAlarmType.getValue());
|
|
103
|
}
|
|
104
|
});
|
|
105
|
}
|
|
106
|
|
|
107
|
return queryResult;
|
|
108
|
}
|
|
109
|
|
|
110
|
@Override
|
|
111
|
public CommonResponse<WorkTask> changeTaskStatus(CommonRequest<WorkTask> workTaskRequest) {
|
|
112
|
CommonResponse<WorkTask> changeResultResponse = workTaskCommand.changeTaskStatus(workTaskRequest);
|
|
113
|
return changeResultResponse;
|
|
114
|
}
|
|
115
|
|
103
|
116
|
@Override
|
104
|
117
|
public CommonResponse<List<Map<String, Object>>> queryAiTaskByDevice(String resourceToolId, String aiIdenModel) {
|
105
|
118
|
Map<String, Object> conditionMap = new HashMap<String, Object>();
|
106
|
|
conditionMap.put("resourceToolId", resourceToolId);
|
107
|
|
conditionMap.put("aiIdenModel", aiIdenModel);
|
108
|
|
CommonRequest<Map<String, Object>> request=new CommonRequest<Map<String, Object>>(conditionMap);
|
109
|
|
return aiTaskQuery.selectAiTaskDevice(request);
|
|
119
|
conditionMap.put("resourceToolId", resourceToolId);
|
|
120
|
conditionMap.put("aiIdenModel", aiIdenModel);
|
|
121
|
CommonRequest<Map<String, Object>> request = new CommonRequest<Map<String, Object>>(conditionMap);
|
|
122
|
return aiTaskQuery.selectAiTaskDevice(request);
|
110
|
123
|
}
|
111
|
124
|
|
112
|
125
|
@Override
|
113
|
126
|
public CommonResponse<Map<String, Object>> queryOneAiAlarmInfo(String workTaskId) throws Exception {
|
114
|
127
|
CommonRequest<String> request = new CommonRequest<String>(workTaskId);
|
115
|
128
|
CommonResponse<WorkTaskSafetyAlarm> response = aiTaskQuery.queryWorkTaskSafetyAlarmById(request);
|
116
|
|
|
117
|
|
if (response==null||response.getData()==null) {
|
|
129
|
|
|
130
|
if (response == null || response.getData() == null) {
|
118
|
131
|
return CommonResponse.fail("504", "获取失败");
|
119
|
132
|
}
|
120
|
|
|
121
|
|
//报警详细信息
|
122
|
|
Map<String, String> workTaskSafetyAlarmMap= JSON.parseObject(JSON.toJSONString(response.getData()), new TypeReference<Map<String, String>>() {
|
123
|
|
});
|
124
|
|
|
125
|
|
List<CharacteristicSpecValue> aiAlarmTypeList = charSpecService.getCharSpecList(EbcConstant.BUSINESS_SPEC_AI_ALARM_TYPE);
|
|
133
|
|
|
134
|
// 报警详细信息
|
|
135
|
Map<String, String> workTaskSafetyAlarmMap = JSON.parseObject(JSON.toJSONString(response.getData()),
|
|
136
|
new TypeReference<Map<String, String>>() {
|
|
137
|
});
|
|
138
|
|
|
139
|
List<CharacteristicSpecValue> aiAlarmTypeList = charSpecService
|
|
140
|
.getCharSpecList(EbcConstant.BUSINESS_SPEC_AI_ALARM_TYPE);
|
126
|
141
|
for (CharacteristicSpecValue characteristicSpecValue : aiAlarmTypeList) {
|
127
|
142
|
if (characteristicSpecValue.getCode().equals(workTaskSafetyAlarmMap.get("alarmTypeCode"))) {
|
128
|
|
workTaskSafetyAlarmMap.put("alarmTypeCodeZh",characteristicSpecValue.getValue());
|
|
143
|
workTaskSafetyAlarmMap.put("alarmTypeCodeZh", characteristicSpecValue.getValue());
|
129
|
144
|
break;
|
130
|
145
|
}
|
131
|
146
|
}
|
132
|
|
List<CharacteristicSpecValue> aiAlarmStatusList = charSpecService.getCharSpecList(EbcConstant.BUSINESS_SPEC_AI_TASK_STATUS);
|
|
147
|
List<CharacteristicSpecValue> aiAlarmStatusList = charSpecService
|
|
148
|
.getCharSpecList(EbcConstant.BUSINESS_SPEC_AI_TASK_STATUS);
|
133
|
149
|
for (CharacteristicSpecValue characteristicSpecValue : aiAlarmStatusList) {
|
134
|
150
|
if (characteristicSpecValue.getCode().equals(workTaskSafetyAlarmMap.get("status"))) {
|
135
|
|
workTaskSafetyAlarmMap.put("statusZh",characteristicSpecValue.getValue());
|
|
151
|
workTaskSafetyAlarmMap.put("statusZh", characteristicSpecValue.getValue());
|
136
|
152
|
break;
|
137
|
153
|
}
|
138
|
154
|
}
|
139
|
|
|
140
|
|
if(StringUtils.isNotEmpty(workTaskSafetyAlarmMap.get("workEmployeeRoleId"))){
|
141
|
|
long relateEmployeeRoleId = Long.parseLong(workTaskSafetyAlarmMap.get("workEmployeeRoleId"));
|
142
|
|
|
143
|
|
EmployeeDto employeeDto = new EmployeeDto();
|
144
|
|
employeeDto.setId(relateEmployeeRoleId);
|
145
|
|
CommonRequest<EmployeeDto> employeeDtoRequest = new CommonRequest<EmployeeDto>(employeeDto);
|
146
|
|
CommonResponse<EmployeeDto> employeeDtoResponse = employeeService.queryEmployee(employeeDtoRequest);
|
147
|
|
if (employeeDtoResponse==null||employeeDtoResponse.getData()==null) {
|
148
|
|
workTaskSafetyAlarmMap.put("workEmployeeRoleName","--");
|
149
|
|
}else {
|
150
|
|
workTaskSafetyAlarmMap.put("workEmployeeRoleName",employeeDtoResponse.getData().getName());
|
|
155
|
|
|
156
|
workTaskSafetyAlarmMap.put("workEmployeeRoleName", "--");
|
|
157
|
workTaskSafetyAlarmMap.put("disposeDate", "");
|
|
158
|
|
|
159
|
if (WorkTask.END_STATUS.equals(workTaskSafetyAlarmMap.get("status"))
|
|
160
|
|| WorkTask.FALSE_ALARM_STATUS.equals(workTaskSafetyAlarmMap.get("status"))) {
|
|
161
|
workTaskSafetyAlarmMap.put("disposeDate", DateUtil.formatDate(response.getData().getDoneDate()));
|
|
162
|
|
|
163
|
if (StringUtils.isNotEmpty(response.getData().getOpId())) {
|
|
164
|
long relateEmployeeRoleId = Long.parseLong(response.getData().getOpId());
|
|
165
|
|
|
166
|
EmployeeDto employeeDto = new EmployeeDto();
|
|
167
|
employeeDto.setId(relateEmployeeRoleId);
|
|
168
|
CommonRequest<EmployeeDto> employeeDtoRequest = new CommonRequest<EmployeeDto>(employeeDto);
|
|
169
|
CommonResponse<EmployeeDto> employeeDtoResponse = employeeService.queryEmployee(employeeDtoRequest);
|
|
170
|
if (employeeDtoResponse != null && employeeDtoResponse.getData() != null) {
|
|
171
|
workTaskSafetyAlarmMap.put("workEmployeeRoleName", employeeDtoResponse.getData().getName());
|
|
172
|
}
|
151
|
173
|
}
|
152
|
|
}
|
153
|
|
|
154
|
|
if (WorkTask.END_STATUS.equals(workTaskSafetyAlarmMap.get("status"))||WorkTask.FALSE_ALARM_STATUS.equals(workTaskSafetyAlarmMap.get("status"))) {
|
155
|
|
workTaskSafetyAlarmMap.put("disposeDate",DateUtil.formatDate(response.getData().getDoneDate()));
|
156
|
|
}else {
|
157
|
|
workTaskSafetyAlarmMap.put("disposeDate","");
|
158
|
174
|
}
|
159
|
|
|
160
|
|
workTaskSafetyAlarmMap.put("createDate",DateUtil.formatDate(response.getData().getCreateDate()));
|
161
|
|
workTaskSafetyAlarmMap.put("aiIdenTime",DateUtil.formatDate(response.getData().getAiIdenTime()));
|
162
|
|
|
163
|
|
//图片信息
|
164
|
|
Map<String, String> pictureMap= uploadFileService.getFileUrlToMap(workTaskSafetyAlarmMap.get("idenPictureUrl"));
|
165
|
|
|
166
|
|
//视频信息
|
|
175
|
|
|
176
|
workTaskSafetyAlarmMap.put("createDate", DateUtil.formatDate(response.getData().getCreateDate()));
|
|
177
|
workTaskSafetyAlarmMap.put("aiIdenTime", DateUtil.formatDate(response.getData().getAiIdenTime()));
|
|
178
|
|
|
179
|
// 图片信息
|
|
180
|
Map<String, String> pictureMap = uploadFileService
|
|
181
|
.getFileUrlToMap(workTaskSafetyAlarmMap.get("idenPictureUrl"));
|
|
182
|
|
|
183
|
// 视频信息
|
167
|
184
|
/*List<EbcMonitorVideoLog> logsList=monitorVideoLogManageService.getMonitorVideoLogByPictureTime(pictureMap.get("fileDateTimeStr"), workTaskSafetyAlarmMap.get("resourceToolId")).getData();
|
168
|
185
|
EbcMonitorVideoLog ebcMonitorVideoLog=null;
|
169
|
186
|
if (!CollectionUtils.isEmpty(logsList)) {
|
170
|
187
|
ebcMonitorVideoLog=logsList.get(0);
|
171
|
188
|
ebcMonitorVideoLog.setVideoFileUrl(uploadFileService.getFileUrl(ebcMonitorVideoLog.getVideoUrl()));
|
172
|
189
|
}*/
|
173
|
|
String videoFileUrl =monitorVideoLogManageService.getMonitorVideoLogByPictureTime(pictureMap.get("fileDateTimeStr"), workTaskSafetyAlarmMap.get("resourceToolId")).getData();
|
174
|
|
|
175
|
|
Map<String,Object> resultMap= new HashMap<String, Object>();
|
|
190
|
String videoFileUrl = monitorVideoLogManageService.getMonitorVideoLogByPictureTime(
|
|
191
|
pictureMap.get("fileDateTimeStr"), workTaskSafetyAlarmMap.get("resourceToolId")).getData();
|
|
192
|
|
|
193
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
176
|
194
|
resultMap.put("alarmInfo", workTaskSafetyAlarmMap);
|
177
|
195
|
resultMap.put("pictureInfo", pictureMap);
|
178
|
|
//resultMap.put("videoInfo", ebcMonitorVideoLog);
|
|
196
|
// resultMap.put("videoInfo", ebcMonitorVideoLog);
|
179
|
197
|
resultMap.put("videoInfo", videoFileUrl);
|
180
|
198
|
return CommonResponse.ok(resultMap);
|
181
|
199
|
}
|
182
|
200
|
|
183
|
201
|
@Override
|
184
|
|
public List<Map<String,Object>> queryAiAlarmCount(Map<String, Object> params) throws Exception {
|
185
|
|
CommonRequest<Map<String, Object>> request=new CommonRequest<Map<String,Object>>(params);
|
186
|
|
CommonResponse<List<Map<String,Object>>> response = aiTaskQuery.safetyAlarmStatusStatistics(request);
|
187
|
|
|
188
|
|
List<Map<String,Object>> resultList=new ArrayList<Map<String,Object>>();
|
189
|
|
long iniCount=0;
|
190
|
|
long runCount=0;
|
191
|
|
|
192
|
|
if (response!=null&&!CollectionUtils.isEmpty(response.getData())) {
|
193
|
|
for (Map<String, Object> map : response.getData()) {
|
194
|
|
if (WorkTask.INIT_STATUS.equals(String.valueOf(map.get("status")))) {
|
195
|
|
iniCount=(long)map.get("cn");
|
196
|
|
}else if (WorkTask.RUNNING_STATUS.equals(String.valueOf(map.get("status")))){
|
197
|
|
runCount=(long)map.get("cn");
|
|
202
|
public List<Map<String, Object>> queryAiAlarmCount(Map<String, Object> params) throws Exception {
|
|
203
|
CommonRequest<Map<String, Object>> request = new CommonRequest<Map<String, Object>>(params);
|
|
204
|
CommonResponse<List<Map<String, Object>>> response = aiTaskQuery.safetyAlarmStatusStatistics(request);
|
|
205
|
|
|
206
|
List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
|
|
207
|
long iniCount = 0;
|
|
208
|
long runCount = 0;
|
|
209
|
|
|
210
|
if (response != null && !CollectionUtils.isEmpty(response.getData())) {
|
|
211
|
for (Map<String, Object> map : response.getData()) {
|
|
212
|
if (WorkTask.INIT_STATUS.equals(String.valueOf(map.get("status")))) {
|
|
213
|
iniCount = (long) map.get("cn");
|
|
214
|
} else if (WorkTask.RUNNING_STATUS.equals(String.valueOf(map.get("status")))) {
|
|
215
|
runCount = (long) map.get("cn");
|
198
|
216
|
}
|
199
|
217
|
}
|
200
|
|
}
|
201
|
|
|
202
|
|
Map<String, Object> map=new HashMap<String, Object>();
|
203
|
|
map.put("name", "ini");
|
204
|
|
map.put("value", iniCount);
|
205
|
|
resultList.add(map);
|
206
|
|
|
207
|
|
map=new HashMap<String, Object>();
|
208
|
|
map.put("name", "run");
|
209
|
|
map.put("value", iniCount+runCount);
|
210
|
|
resultList.add(map);
|
211
|
|
|
212
|
|
return resultList;
|
|
218
|
}
|
|
219
|
|
|
220
|
Map<String, Object> map = new HashMap<String, Object>();
|
|
221
|
map.put("name", "ini");
|
|
222
|
map.put("value", iniCount);
|
|
223
|
resultList.add(map);
|
|
224
|
|
|
225
|
map = new HashMap<String, Object>();
|
|
226
|
map.put("name", "run");
|
|
227
|
map.put("value", iniCount + runCount);
|
|
228
|
resultList.add(map);
|
|
229
|
|
|
230
|
return resultList;
|
213
|
231
|
}
|
214
|
232
|
}
|