Browse Source

修改AI报警处理人字段

konghl 4 years ago
parent
commit
7d8a12245f

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

48
	*                            statusList: 处理状态列表
48
	*                            statusList: 处理状态列表
49
	* @return 结果集,具体如下:
49
	* @return 结果集,具体如下:
50
	*                            状态、状态时间、处理详情、报警类型、报警描述、设备名称、设备编号、设备位置、报警时间、处理人、处理时间、图片url、视频url
50
	*                            状态、状态时间、处理详情、报警类型、报警描述、设备名称、设备编号、设备位置、报警时间、处理人、处理时间、图片url、视频url
51
	 * @throws Exception 
51
	*/
52
	*/
52
	@ResponseBody
53
	@ResponseBody
53
	@RequestMapping("/queryPageAiAlarm")
54
	@RequestMapping("/queryPageAiAlarm")
54
	public CommonResponse<PageBean<Map<String, Object>>> queryPageAiAlarm(@ModelAttribute AiQuery aiQuery) {
55
	public CommonResponse<PageBean<Map<String, Object>>> queryPageAiAlarm(@ModelAttribute AiQuery aiQuery) throws Exception {
55
		// 当前页数
56
		// 当前页数
56
		int pageNumber = aiQuery.getPageNumber() < 1 ? 1 : aiQuery.getPageNumber();
57
		int pageNumber = aiQuery.getPageNumber() < 1 ? 1 : aiQuery.getPageNumber();
57
		// 每页条数
58
		// 每页条数

+ 146 - 128
security-protection-service/src/main/java/com/ai/bss/security/protection/service/impl/AiAlarmManageServiceImpl.java

14
import com.ai.abc.api.model.CommonResponse;
14
import com.ai.abc.api.model.CommonResponse;
15
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
15
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
16
import com.ai.bss.components.common.model.PageBean;
16
import com.ai.bss.components.common.model.PageBean;
17
import com.ai.bss.security.protection.model.EbcMonitorVideoLog;
18
import com.ai.bss.security.protection.service.interfaces.AiAlarmManageService;
17
import com.ai.bss.security.protection.service.interfaces.AiAlarmManageService;
19
import com.ai.bss.security.protection.service.interfaces.CharSpecService;
18
import com.ai.bss.security.protection.service.interfaces.CharSpecService;
20
import com.ai.bss.security.protection.service.interfaces.MonitorVideoLogManageService;
19
import com.ai.bss.security.protection.service.interfaces.MonitorVideoLogManageService;
23
import com.ai.bss.security.protection.utils.EbcConstant;
22
import com.ai.bss.security.protection.utils.EbcConstant;
24
import com.ai.bss.user.dto.EmployeeDto;
23
import com.ai.bss.user.dto.EmployeeDto;
25
import com.ai.bss.user.service.api.EmployeeService;
24
import com.ai.bss.user.service.api.EmployeeService;
26
import com.ai.bss.work.safety.model.AiModel;
27
import com.ai.bss.work.safety.model.WorkTaskSafetyAlarm;
25
import com.ai.bss.work.safety.model.WorkTaskSafetyAlarm;
28
import com.ai.bss.work.safety.service.api.AiTaskQuery;
26
import com.ai.bss.work.safety.service.api.AiTaskQuery;
29
import com.ai.bss.work.service.api.WorkTaskCommand;
27
import com.ai.bss.work.service.api.WorkTaskCommand;
30
import com.ai.bss.work.task.model.common.WorkTask;
28
import com.ai.bss.work.task.model.common.WorkTask;
31
import com.alibaba.fastjson.JSON;
29
import com.alibaba.fastjson.JSON;
32
import com.alibaba.fastjson.JSONObject;
33
import com.alibaba.fastjson.TypeReference;
30
import com.alibaba.fastjson.TypeReference;
34
31
35
/**
32
/**
39
 */
36
 */
40
@Service
37
@Service
41
public class AiAlarmManageServiceImpl implements AiAlarmManageService {
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
	private UploadFileService uploadFileService;
52
	private UploadFileService uploadFileService;
56
    
53
57
	@Autowired
54
	@Autowired
58
	private MonitorVideoLogManageService monitorVideoLogManageService;
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
			aiAlarm.put("alarmTypeName", aiAlarm.get("alarmTypeCode"));
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
	@Override
116
	@Override
104
	public CommonResponse<List<Map<String, Object>>> queryAiTaskByDevice(String resourceToolId, String aiIdenModel) {
117
	public CommonResponse<List<Map<String, Object>>> queryAiTaskByDevice(String resourceToolId, String aiIdenModel) {
105
		Map<String, Object> conditionMap = new HashMap<String, Object>();
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
	@Override
125
	@Override
113
	public CommonResponse<Map<String, Object>> queryOneAiAlarmInfo(String workTaskId) throws Exception {
126
	public CommonResponse<Map<String, Object>> queryOneAiAlarmInfo(String workTaskId) throws Exception {
114
		CommonRequest<String> request = new CommonRequest<String>(workTaskId);
127
		CommonRequest<String> request = new CommonRequest<String>(workTaskId);
115
		CommonResponse<WorkTaskSafetyAlarm> response = aiTaskQuery.queryWorkTaskSafetyAlarmById(request);
128
		CommonResponse<WorkTaskSafetyAlarm> response = aiTaskQuery.queryWorkTaskSafetyAlarmById(request);
116
		
117
		if (response==null||response.getData()==null) {
129
130
		if (response == null || response.getData() == null) {
118
			return CommonResponse.fail("504", "获取失败");
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
		for (CharacteristicSpecValue characteristicSpecValue : aiAlarmTypeList) {
141
		for (CharacteristicSpecValue characteristicSpecValue : aiAlarmTypeList) {
127
			if (characteristicSpecValue.getCode().equals(workTaskSafetyAlarmMap.get("alarmTypeCode"))) {
142
			if (characteristicSpecValue.getCode().equals(workTaskSafetyAlarmMap.get("alarmTypeCode"))) {
128
				workTaskSafetyAlarmMap.put("alarmTypeCodeZh",characteristicSpecValue.getValue());
143
				workTaskSafetyAlarmMap.put("alarmTypeCodeZh", characteristicSpecValue.getValue());
129
				break;
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
		for (CharacteristicSpecValue characteristicSpecValue : aiAlarmStatusList) {
149
		for (CharacteristicSpecValue characteristicSpecValue : aiAlarmStatusList) {
134
			if (characteristicSpecValue.getCode().equals(workTaskSafetyAlarmMap.get("status"))) {
150
			if (characteristicSpecValue.getCode().equals(workTaskSafetyAlarmMap.get("status"))) {
135
				workTaskSafetyAlarmMap.put("statusZh",characteristicSpecValue.getValue());
151
				workTaskSafetyAlarmMap.put("statusZh", characteristicSpecValue.getValue());
136
				break;
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
		/*List<EbcMonitorVideoLog> logsList=monitorVideoLogManageService.getMonitorVideoLogByPictureTime(pictureMap.get("fileDateTimeStr"), workTaskSafetyAlarmMap.get("resourceToolId")).getData();
184
		/*List<EbcMonitorVideoLog> logsList=monitorVideoLogManageService.getMonitorVideoLogByPictureTime(pictureMap.get("fileDateTimeStr"), workTaskSafetyAlarmMap.get("resourceToolId")).getData();
168
		EbcMonitorVideoLog ebcMonitorVideoLog=null;
185
		EbcMonitorVideoLog ebcMonitorVideoLog=null;
169
		if (!CollectionUtils.isEmpty(logsList)) {
186
		if (!CollectionUtils.isEmpty(logsList)) {
170
			ebcMonitorVideoLog=logsList.get(0);
187
			ebcMonitorVideoLog=logsList.get(0);
171
			ebcMonitorVideoLog.setVideoFileUrl(uploadFileService.getFileUrl(ebcMonitorVideoLog.getVideoUrl()));
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
		resultMap.put("alarmInfo", workTaskSafetyAlarmMap);
194
		resultMap.put("alarmInfo", workTaskSafetyAlarmMap);
177
		resultMap.put("pictureInfo", pictureMap);
195
		resultMap.put("pictureInfo", pictureMap);
178
		//resultMap.put("videoInfo", ebcMonitorVideoLog);
196
		// resultMap.put("videoInfo", ebcMonitorVideoLog);
179
		resultMap.put("videoInfo", videoFileUrl);
197
		resultMap.put("videoInfo", videoFileUrl);
180
		return CommonResponse.ok(resultMap);
198
		return CommonResponse.ok(resultMap);
181
	}
199
	}
182
200
183
	@Override
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
}

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

13
13
14
public interface AiAlarmManageService {
14
public interface AiAlarmManageService {
15
	CommonResponse<PageBean<Map<String, Object>>> queryPageAiAlarm(Map<String, Object> params, int pageNumber,
15
	CommonResponse<PageBean<Map<String, Object>>> queryPageAiAlarm(Map<String, Object> params, int pageNumber,
16
			int pageSize);
16
			int pageSize)throws Exception;
17
17
18
	CommonResponse<WorkTask> changeTaskStatus(CommonRequest<WorkTask> workTaskRequest);
18
	CommonResponse<WorkTask> changeTaskStatus(CommonRequest<WorkTask> workTaskRequest);
19
19