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 lombok.extern.slf4j.Slf4j; 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 */ @Slf4j @Component public class ApiV1Service3030 { @Resource private SnapRecordService snapRecordService; @Resource private FileService fileService; /** * * @param req * @param gatewaySer * @return */ public ApiV1Resp analysis(ApiV1Req req, GatewaySer gatewaySer) throws Exception{ //转化为对象 List list = JSONObject.parseArray(req.getData().toString(), Param3030.class); if(null == list || list.isEmpty()){ return ApiV1Resp.error("抓拍信息为空,不解析!", req); } step1(list, gatewaySer); log.info("质押监管接口V1,3030接口解析完成={}", req); return ApiV1Resp.success(null, req); } /** * 异步解析 * @param list */ @Async public void step1(List 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); } } }