package com.fzzy.igds.api.v1.service;
|
|
import com.fzzy.igds.api.v1.data.ApiV1Req;
|
import com.fzzy.igds.api.v1.data.ApiV1Resp;
|
import com.fzzy.igds.api.v1.data.Param3030;
|
import com.fzzy.igds.domain.GatewaySer;
|
import com.alibaba.fastjson.JSONObject;
|
import com.fzzy.igds.domain.SnapRecord;
|
import com.fzzy.igds.service.FileService;
|
import com.fzzy.igds.service.SnapRecordService;
|
import com.fzzy.igds.utils.ContextUtil;
|
import com.ruoyi.common.config.FrameworkConfig;
|
import org.apache.commons.lang3.time.DateUtils;
|
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.stereotype.Component;
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
/**
|
* @Description 抓拍解析
|
* @Author CZT
|
* @Date 2026/1/7 11:07
|
*/
|
@Component
|
public class ApiV1Service3030 {
|
|
@Resource
|
private SnapRecordService snapRecordService;
|
@Resource
|
private FileService fileService;
|
|
/**
|
*
|
* @param req
|
* @param gatewaySer
|
* @return
|
*/
|
public ApiV1Resp<Object> analysis(ApiV1Req<JSONObject> req, GatewaySer gatewaySer) throws Exception{
|
|
//转化为对象
|
List<Param3030> list = JSONObject.parseArray(req.getData().toString(), Param3030.class);
|
|
if(null == list || list.isEmpty()){
|
return ApiV1Resp.error("抓拍信息为空,不解析!", req);
|
}
|
|
step1(list, gatewaySer);
|
|
return ApiV1Resp.success(null, req);
|
}
|
|
/**
|
* 异步解析
|
* @param list
|
*/
|
@Async
|
public void step1(List<Param3030> list, GatewaySer gatewaySer) throws Exception {
|
|
SnapRecord snapRecord;
|
for (Param3030 param3030 : list) {
|
snapRecord = new SnapRecord();
|
snapRecord.setId(ContextUtil.generateId());
|
snapRecord.setCompanyId(gatewaySer.getCompanyId());
|
snapRecord.setDeptId(gatewaySer.getDeptId());
|
snapRecord.setCameraId(param3030.getCameraId());
|
snapRecord.setResult(param3030.getResult());
|
snapRecord.setTags(param3030.getTags());
|
snapRecord.setSnapTime(DateUtils.parseDate(param3030.getSnapTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
//base64转化为图片保存
|
String savePath = fileService.getFileSavePath("SNAP");
|
String fileName = ContextUtil.UUID() + ".jpg";
|
String filePath = savePath+fileName;
|
fileService.baseImg2Disk(filePath, param3030.getImgBase64());
|
|
//设置保存图片路径
|
snapRecord.setImgName(filePath.replace(FrameworkConfig.getProfile(), "/profile/"));
|
|
snapRecordService.addData(snapRecord);
|
}
|
|
}
|
|
}
|