Pārlūkot izejas kodu

修改设备时同时修改AI任务和关联场景

konghl 4 gadi atpakaļ
vecāks
revīzija
f2dd295b32

+ 2 - 1
security-protection-service/src/main/java/com/ai/bss/security/protection/config/MyCorsFilter.java

@ -50,7 +50,8 @@ public class MyCorsFilter {
50 50
    public FilterRegistrationBean mySessionUserFilter(){
51 51
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
52 52
        registrationBean.setFilter(new SessionUserFilter());
53
        registrationBean.setUrlPatterns(Arrays.asList("/mySessionUserFilter"));
53
        //registrationBean.setUrlPatterns(Arrays.asList("/mySessionUserFilter"));
54
        registrationBean.setUrlPatterns(Arrays.asList("/login/*"));
54 55
        Map<String, String> initParameters = new HashMap<String,String>();
55 56
        initParameters.put("impl-classname","com.ai.sso.external.DefaultPopedomImpl");
56 57
        initParameters.put("ALLOWPATH","gif;jpg;jpeg;png;login;checkLogin;genVerificationCode;logout;");

+ 11 - 0
security-protection-service/src/main/java/com/ai/bss/security/protection/controller/HomePageController.java

@ -69,4 +69,15 @@ public class HomePageController {
69 69
70 70
		return homePageService.queryAlarmAnalysisList(params, dataSize);
71 71
	}
72
	
73
	/**
74
	 * 查询4条进出记录
75
	 * @return
76
	 * @throws Exception
77
	 */
78
	@ResponseBody
79
	@RequestMapping("/queryHomeLastInAndOutRecord")
80
	public CommonResponse<List<Map<String, Object>>> queryFourInAndOutRecord(@RequestParam Long monitorSceneId) throws Exception {
81
		return homePageService.queryFourInAndOutRecord(monitorSceneId);
82
	}
72 83
}

+ 2 - 3
security-protection-service/src/main/java/com/ai/bss/security/protection/service/impl/AiIdenLogManageServiceImpl.java

@ -15,7 +15,6 @@ import com.ai.abc.api.model.CommonRequest;
15 15
import com.ai.abc.api.model.CommonResponse;
16 16
import com.ai.bss.components.common.model.PageBean;
17 17
import com.ai.bss.components.minio.config.MinioConfig;
18
import com.ai.bss.security.protection.model.EbcMonitorVideoLog;
19 18
import com.ai.bss.security.protection.service.interfaces.AiIdenLogManageService;
20 19
import com.ai.bss.security.protection.service.interfaces.CharSpecService;
21 20
import com.ai.bss.security.protection.service.interfaces.MonitorVideoLogManageService;
@ -260,14 +259,14 @@ public class AiIdenLogManageServiceImpl implements AiIdenLogManageService {
260 259
			ebcMonitorVideoLog = logsList.get(0);
261 260
			ebcMonitorVideoLog.setVideoFileUrl(uploadFileService.getFileUrl(ebcMonitorVideoLog.getVideoUrl()));
262 261
		}*/
263
		String videoFileUrl =monitorVideoLogManageService
262
		String videoFileUrl = monitorVideoLogManageService
264 263
				.getMonitorVideoLogByPictureTime(pictureMap.get("fileDateTimeStr"), aiIdenLog.getResourceToolId())
265 264
				.getData();
266 265
267 266
		Map<String, Object> resultMap = new HashMap<String, Object>();
268 267
		resultMap.put("alarmInfo", aiIdenLogInfoMap);
269 268
		resultMap.put("pictureInfo", pictureMap);
270
		//resultMap.put("videoInfo", ebcMonitorVideoLog);
269
		// resultMap.put("videoInfo", ebcMonitorVideoLog);
271 270
		resultMap.put("videoInfo", videoFileUrl);
272 271
		return CommonResponse.ok(resultMap);
273 272
	}

+ 150 - 5
security-protection-service/src/main/java/com/ai/bss/security/protection/service/impl/HomePageServiceImpl.java

@ -1,11 +1,13 @@
1 1
package com.ai.bss.security.protection.service.impl;
2 2
3
import java.math.BigDecimal;
3 4
import java.util.ArrayList;
4 5
import java.util.HashMap;
5 6
import java.util.Iterator;
6 7
import java.util.List;
7 8
import java.util.Map;
8 9
10
import org.apache.commons.lang.StringUtils;
9 11
import org.springframework.beans.factory.annotation.Autowired;
10 12
import org.springframework.stereotype.Service;
11 13
import org.springframework.util.CollectionUtils;
@ -13,11 +15,22 @@ import org.springframework.util.CollectionUtils;
13 15
import com.ai.abc.api.model.CommonRequest;
14 16
import com.ai.abc.api.model.CommonResponse;
15 17
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
18
import com.ai.bss.components.common.model.PageBean;
19
import com.ai.bss.components.minio.config.MinioConfig;
16 20
import com.ai.bss.security.protection.service.interfaces.CharSpecService;
17 21
import com.ai.bss.security.protection.service.interfaces.HomePageService;
22
import com.ai.bss.security.protection.service.interfaces.MonitorSceneTerminalService;
23
import com.ai.bss.security.protection.service.interfaces.UploadFileService;
24
import com.ai.bss.security.protection.utils.DateUtil;
18 25
import com.ai.bss.security.protection.utils.EbcConstant;
26
import com.ai.bss.user.dto.EmployeeDto;
27
import com.ai.bss.user.service.api.EmployeeService;
19 28
import com.ai.bss.work.attendance.service.api.AttendanceChartQuery;
29
import com.ai.bss.work.safety.model.MonitorSceneTerminalRel;
20 30
import com.ai.bss.work.safety.service.api.AiTaskQuery;
31
import com.alibaba.fastjson.JSON;
32
import com.alibaba.fastjson.JSONArray;
33
import com.alibaba.fastjson.JSONObject;
21 34
22 35
@Service
23 36
public class HomePageServiceImpl implements HomePageService {
@ -31,6 +44,18 @@ public class HomePageServiceImpl implements HomePageService {
31 44
	@Autowired
32 45
	private CharSpecService charSpecService;
33 46
47
	@Autowired
48
	private MonitorSceneTerminalService monitorSceneTerminalService;
49
50
	@Autowired
51
	private UploadFileService uploadFileService;
52
53
	@Autowired
54
	private EmployeeService employeeService;
55
56
	@Autowired
57
	private MinioConfig minioConfig;
58
34 59
	@Override
35 60
	public Map<String, Object> queryAttendanceChart() throws Exception {
36 61
		CommonRequest<Void> request = new CommonRequest<Void>(null);
@ -71,11 +96,11 @@ public class HomePageServiceImpl implements HomePageService {
71 96
		CommonRequest<Map<String, String>> request = new CommonRequest<Map<String, String>>(params);
72 97
		CommonResponse<List<Map<String, Object>>> response = aiTaskQuery.safetyAlarmAnalysis(request);
73 98
74
		List<Map<String, Object>> dataList=null;
99
		List<Map<String, Object>> dataList = null;
75 100
		if (CollectionUtils.isEmpty(response.getData())) {
76
			dataList=new ArrayList<Map<String, Object>>();
77
		}else {
78
			dataList=response.getData();
101
			dataList = new ArrayList<Map<String, Object>>();
102
		} else {
103
			dataList = response.getData();
79 104
		}
80 105
81 106
		// Map<String, String> allAiAlarmTypeMap = charSpecService.getCharSpecMap(EbcConstant.BUSINESS_SPEC_AI_ALARM_TYPE);
@ -127,7 +152,7 @@ public class HomePageServiceImpl implements HomePageService {
127 152
				}
128 153
			}
129 154
130
		} else if (dataList.size() > dataSize){
155
		} else if (dataList.size() > dataSize) {
131 156
			// 有数据的条数大于需显示的条数(其他>0)
132 157
			Map<String, Object> map = new HashMap<String, Object>();
133 158
			map.put("value", otherNum);
@ -138,4 +163,124 @@ public class HomePageServiceImpl implements HomePageService {
138 163
		return CommonResponse.ok(resultList);
139 164
	}
140 165
166
	@Override
167
	public CommonResponse<List<Map<String, Object>>> queryFourInAndOutRecord(Long monitorSceneId) throws Exception {
168
		// 获取设备信息
169
		CommonResponse<List<MonitorSceneTerminalRel>> resourceToolResponse = monitorSceneTerminalService
170
				.queryMonitorSceneTerminalRel(monitorSceneId);
171
172
		List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
173
		if (resourceToolResponse == null || CollectionUtils.isEmpty(resourceToolResponse.getData())) {
174
			return CommonResponse.ok(resultList);
175
		}
176
177
		// 获取四条进出记录
178
		int resourceToolSize = resourceToolResponse.getData().size();
179
		if (resourceToolSize == 1) {
180
			String resourceToolId = resourceToolResponse.getData().get(0).getResourceToolId();
181
			resultList = getAiIdenLogList(resourceToolId, 4);
182
183
		} else if (resourceToolSize == 2) {
184
			for (MonitorSceneTerminalRel mstr : resourceToolResponse.getData()) {
185
				List<Map<String, Object>> aiIdenLogList = getAiIdenLogList(mstr.getResourceToolId(), 2);
186
				resultList.addAll(aiIdenLogList);
187
			}
188
189
		} else if (resourceToolSize == 3) {
190
			String resourceToolId = resourceToolResponse.getData().get(0).getResourceToolId();
191
			resultList = getAiIdenLogList(resourceToolId, 2);
192
193
			for (int i = 1; i < resourceToolSize; i++) {
194
				resourceToolId = resourceToolResponse.getData().get(i).getResourceToolId();
195
				List<Map<String, Object>> aiIdenLogList = getAiIdenLogList(resourceToolId, 1);
196
				resultList.addAll(aiIdenLogList);
197
			}
198
199
		} else {
200
			for (MonitorSceneTerminalRel mstr : resourceToolResponse.getData()) {
201
				List<Map<String, Object>> aiIdenLogList = getAiIdenLogList(mstr.getResourceToolId(), 1);
202
				resultList.addAll(aiIdenLogList);
203
			}
204
205
		}
206
207
		// 拼接数据
208
		for (Map<String, Object> dataMap : resultList) {
209
			dataMap.put("taskExecuteTime", DateUtil.formatObjectToDate(dataMap.get("taskExecuteTime")));
210
211
			String idenPictureName = String.valueOf(dataMap.get("idenPictureUrl"));
212
			String idenPictureUrl = uploadFileService.getFileUrl(idenPictureName);
213
			dataMap.put("idenPictureUrl", idenPictureUrl);
214
215
			// 结果详情
216
			String idenResultString = dataMap.get("idenResult") == null ? ""
217
					: String.valueOf(dataMap.get("idenResult"));
218
			if (StringUtils.isNotEmpty(idenResultString)) {
219
				Object idenResultObject = JSON.parse(idenResultString);
220
				if (idenResultObject instanceof JSONObject) {
221
					Map<String, String> idenResultMap = JSON.parseObject(idenResultString, Map.class);
222
					dataMap.putAll(idenResultMap);
223
224
					if (idenResultMap.get("simi") != null) {
225
						Object simiObject = idenResultMap.get("simi");
226
						BigDecimal simiBigDecimal = new BigDecimal(String.valueOf(simiObject));
227
						float simi = simiBigDecimal.multiply(new BigDecimal("100"))
228
								.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
229
						dataMap.put("simi", simi + "%");
230
					}
231
232
				} else if (idenResultObject instanceof JSONArray) {
233
					List<Map<String, String>> idenResultList = JSONArray.parseObject(idenResultString, List.class);
234
					if (!CollectionUtils.isEmpty(idenResultList)) {
235
						dataMap.putAll(idenResultList.get(0));
236
					}
237
				}
238
			}
239
240
			// 员工信息
241
			if (dataMap.get("relateEmployeeRoleId") != null) {
242
				long relateEmployeeRoleId = Long.parseLong(String.valueOf(dataMap.get("relateEmployeeRoleId")));
243
244
				EmployeeDto employeeDto = new EmployeeDto();
245
				employeeDto.setId(relateEmployeeRoleId);
246
				CommonRequest<EmployeeDto> requestEmployeeDto = CommonRequest.<EmployeeDto>builder().data(employeeDto)
247
						.build();
248
				CommonResponse<EmployeeDto> employeeResponse = employeeService.queryEmployee(requestEmployeeDto);
249
250
				if (employeeResponse.getData() != null) {
251
					dataMap.put("employeeName", employeeResponse.getData().getName());
252
					dataMap.put("employeeCode", employeeResponse.getData().getCode());
253
254
					String headerImageName = employeeResponse.getData().getField1();
255
					String headerImage = uploadFileService.getFileUrl(headerImageName,
256
							minioConfig.getBucketHeaderImage());
257
					dataMap.put("headerImage", headerImage);
258
				}
259
			}
260
		}
261
262
		return CommonResponse.ok(resultList);
263
	}
264
265
	/**
266
	 * 根据设备获取人脸识别结果
267
	 * @param resourceToolId
268
	 * @param pageSize
269
	 * @return
270
	 */
271
	private List<Map<String, Object>> getAiIdenLogList(String resourceToolId, int pageSize) {
272
		Map<String, Object> params = new HashMap<String, Object>();
273
		params.put("resourceToolId", resourceToolId);
274
		params.put("aiIdenModel", EbcConstant.AI_MODEL_FACE);
275
		CommonRequest<Map<String, Object>> conditionMapRequest = new CommonRequest<Map<String, Object>>(params, 1,
276
				pageSize);
277
278
		CommonResponse<PageBean<Map<String, Object>>> response = aiTaskQuery.queryAiIdenLog(conditionMapRequest);
279
280
		if (response == null || response.getData() == null || CollectionUtils.isEmpty(response.getData().getData())) {
281
			return new ArrayList<Map<String, Object>>();
282
		}
283
284
		return response.getData().getData();
285
	}
141 286
}

+ 66 - 21
security-protection-service/src/main/java/com/ai/bss/security/protection/service/impl/ResourceToolManageServiceImpl.java

@ -5,7 +5,6 @@ import java.util.HashMap;
5 5
import java.util.List;
6 6
import java.util.Map;
7 7
8
import com.ai.bss.work.safety.service.api.MonitorSceneCommand;
9 8
import org.apache.commons.lang.StringUtils;
10 9
import org.springframework.beans.factory.annotation.Autowired;
11 10
import org.springframework.stereotype.Service;
@ -17,12 +16,15 @@ import com.ai.abc.api.model.CommonResponse;
17 16
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
18 17
import com.ai.bss.components.common.model.PageBean;
19 18
import com.ai.bss.security.protection.model.SecurityProtectionMinioConfig;
20
import com.ai.bss.security.protection.service.interfaces.AiAlarmManageService;
21 19
import com.ai.bss.security.protection.service.interfaces.CharSpecService;
22 20
import com.ai.bss.security.protection.service.interfaces.ResourceToolManageService;
23 21
import com.ai.bss.security.protection.service.interfaces.UploadFileService;
24 22
import com.ai.bss.security.protection.utils.EbcConstant;
23
import com.ai.bss.work.safety.model.AiTaskDevice;
24
import com.ai.bss.work.safety.model.MonitorSceneTerminalRel;
25
import com.ai.bss.work.safety.service.api.AiTaskCommand;
25 26
import com.ai.bss.work.safety.service.api.AiTaskQuery;
27
import com.ai.bss.work.safety.service.api.MonitorSceneCommand;
26 28
import com.ai.bss.work.tool.model.ResourceTool;
27 29
import com.ai.bss.work.tool.service.api.ResourceToolCommand;
28 30
import com.ai.bss.work.tool.service.api.ResourceToolQuery;
@ -44,13 +46,15 @@ public class ResourceToolManageServiceImpl implements ResourceToolManageService
44 46
45 47
	@Autowired
46 48
	private CharSpecService charSpecService;
47
	
49
48 50
	@Autowired
49 51
	private AiTaskQuery aiTaskQuery;
50 52
51 53
	@Autowired
52 54
	private MonitorSceneCommand monitorSceneCommand;
53 55
56
	@Autowired
57
	private AiTaskCommand aiTaskCommand;
54 58
55 59
	@Override
56 60
	public CommonResponse<PageBean<Map<String, Object>>> queryPageResourceTool(HashMap<String, Object> params,
@ -166,11 +170,11 @@ public class ResourceToolManageServiceImpl implements ResourceToolManageService
166 170
167 171
	@Override
168 172
	public CommonResponse<ResourceTool> createResourceTool(ResourceTool resourceTool) throws Exception {
169
		Map<String, Object> resourceToolMap=queryResourceToolByCode(resourceTool.getResourceToolName());
170
		if (resourceToolMap!=null) {
173
		Map<String, Object> resourceToolMap = queryResourceToolByCode(resourceTool.getResourceToolName());
174
		if (resourceToolMap != null) {
171 175
			return CommonResponse.fail("502", "设备编号已存在");
172 176
		}
173
		
177
174 178
		if (StringUtils.isEmpty(resourceTool.getPictureUrl())) {
175 179
			resourceTool.setPictureUrl("#");
176 180
		}
@ -182,26 +186,67 @@ public class ResourceToolManageServiceImpl implements ResourceToolManageService
182 186
	}
183 187
184 188
	@Override
185
	public CommonResponse<ResourceTool> modifyResourceTool(ResourceTool resourceTool) throws Exception  {
186
		//修改设备表
189
	public CommonResponse<ResourceTool> modifyResourceTool(ResourceTool resourceTool) throws Exception {
190
		// 修改设备表
187 191
		CommonRequest<ResourceTool> request = new CommonRequest<ResourceTool>(resourceTool);
188
		//修改ai任务设备表
192
		CommonResponse<ResourceTool> response = resourceToolCommand.saveWorkToolWithNoMapArea(request);
189 193
190
		return resourceToolCommand.saveWorkToolWithNoMapArea(request);
194
		if (response.isSuccess() && response.getData() != null) {
195
			// 关联场景se_monitor_scene_terminal_rel表
196
			modifyMonitorSceneTerminalRelByResourceTool(response.getData());
197
198
			// 修改ai任务执行设备 se_ai_task_device表
199
			modifyAiTaskDeviceByResourceTool(response.getData());
200
201
		}
202
203
		return response;
204
	}
205
206
	/**
207
	 * 根据设备信息修改关联场景
208
	 * @param resourceTool
209
	 * @return
210
	 */
211
	private CommonResponse<Void> modifyMonitorSceneTerminalRelByResourceTool(ResourceTool resourceTool) {
212
		MonitorSceneTerminalRel aiTaskDevice = new MonitorSceneTerminalRel();
213
		aiTaskDevice.setResourceToolId(String.valueOf(resourceTool.getResourceToolId()));
214
		aiTaskDevice.setResourceToolName(resourceTool.getResourceToolName());
215
		aiTaskDevice.setPictureUrl(resourceTool.getPictureUrl());
216
		aiTaskDevice.setVideoUrl(resourceTool.getVideoUrl());
217
		CommonRequest<MonitorSceneTerminalRel> request = new CommonRequest<MonitorSceneTerminalRel>(aiTaskDevice);
218
		return monitorSceneCommand.modifyMonitorSceneTerminalRelByDeviceId(request);
219
	}
220
221
	/**
222
	 * 根据设备信息修改AI任务
223
	 * @param resourceTool
224
	 * @return
225
	 */
226
	private CommonResponse<Void> modifyAiTaskDeviceByResourceTool(ResourceTool resourceTool) {
227
		AiTaskDevice aiTaskDevice = new AiTaskDevice();
228
		aiTaskDevice.setResourceToolId(String.valueOf(resourceTool.getResourceToolId()));
229
		aiTaskDevice.setResourceToolCode(resourceTool.getResourceToolCode());
230
		aiTaskDevice.setResourceToolName(resourceTool.getResourceToolName());
231
		CommonRequest<AiTaskDevice> request = new CommonRequest<AiTaskDevice>(aiTaskDevice);
232
		return aiTaskCommand.modifyAiTaskDeviceByDeviceId(request);
191 233
	}
192 234
193 235
	@Override
194
	public CommonResponse<Void> deleteResourceTool(List<String> resourceToolIds) throws Exception  {
236
	public CommonResponse<Void> deleteResourceTool(List<String> resourceToolIds) throws Exception {
195 237
		CommonRequest<List<String>> request = new CommonRequest<List<String>>(resourceToolIds);
196
		//删除设备表里数据
238
		// 删除设备表里数据
197 239
		CommonResponse<ResourceTool> response = resourceToolCommand.deleteWorkTool(request);
198
		//删除关联数据 关联场景
199
		CommonResponse deleteResult = monitorSceneCommand.deleteMonitorSceneTerminalRelByWorkToolId(
200
					new CommonRequest<>(resourceToolIds));
201
		//删除ai任务执行设备 se_ai_task_device表
202
203 240
204 241
		if (response.isSuccess()) {
242
			// 删除关联场景se_monitor_scene_terminal_rel表
243
			monitorSceneCommand.deleteMonitorSceneTerminalRelByWorkToolId(new CommonRequest<>(resourceToolIds));
244
245
			// 删除ai任务执行设备 se_ai_task_device表
246
			resourceToolIds.forEach(resourceToolId -> {
247
				aiTaskCommand.deleteAiTaskDeviceByDeviceId(new CommonRequest<String>(resourceToolId));
248
			});
249
205 250
			return CommonResponse.ok(null);
206 251
		} else {
207 252
			return CommonResponse.fail(response.getFail());
@ -231,9 +276,9 @@ public class ResourceToolManageServiceImpl implements ResourceToolManageService
231 276
	@Override
232 277
	public CommonResponse<List<Map<String, Object>>> getResourceToolAllInfo(String resourceToolCode) {
233 278
		Map<String, Object> conditionMap = new HashMap<String, Object>();
234
        conditionMap.put("resourceToolCode", resourceToolCode);
235
        CommonRequest<Map<String, Object>> request=new CommonRequest<Map<String, Object>>(conditionMap);
236
        return aiTaskQuery.selectAiTaskDevice(request);
279
		conditionMap.put("resourceToolCode", resourceToolCode);
280
		CommonRequest<Map<String, Object>> request = new CommonRequest<Map<String, Object>>(conditionMap);
281
		return aiTaskQuery.selectAiTaskDevice(request);
237 282
	}
238
	
283
239 284
}

+ 9 - 0
security-protection-service/src/main/java/com/ai/bss/security/protection/service/interfaces/HomePageService.java

@ -28,4 +28,13 @@ public interface HomePageService {
28 28
	 */
29 29
	CommonResponse<List<Map<String, Object>>> queryAlarmAnalysisList(Map<String, String> params, int dataSize)
30 30
			throws Exception;
31
	
32
	/**
33
	 * 查询4条进出记录
34
	 * @param monitorSceneId
35
	 * @return
36
	 * @throws Exception
37
	 */
38
	CommonResponse<List<Map<String, Object>>> queryFourInAndOutRecord(Long monitorSceneId) throws Exception;
39
	
31 40
}