Explorar el Código

修改AI报警处理人字段

konghl %!s(int64=4) %!d(string=hace) años
padre
commit
7d8a12245f

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

@ -48,10 +48,11 @@ public class AiAlarmManageController {
48 48
	*                            statusList: 处理状态列表
49 49
	* @return 结果集,具体如下:
50 50
	*                            状态、状态时间、处理详情、报警类型、报警描述、设备名称、设备编号、设备位置、报警时间、处理人、处理时间、图片url、视频url
51
	 * @throws Exception 
51 52
	*/
52 53
	@ResponseBody
53 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 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,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
}

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

@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RequestParam;
13 13
14 14
public interface AiAlarmManageService {
15 15
	CommonResponse<PageBean<Map<String, Object>>> queryPageAiAlarm(Map<String, Object> params, int pageNumber,
16
			int pageSize);
16
			int pageSize)throws Exception;
17 17
18 18
	CommonResponse<WorkTask> changeTaskStatus(CommonRequest<WorkTask> workTaskRequest);
19 19