| package com.fzzy.async.fzzy40.impl; | 
|   | 
| import com.fzzy.api.Constant; | 
| import com.fzzy.api.data.PushProtocol; | 
| import com.fzzy.api.entity.*; | 
| import com.fzzy.api.service.ApiCommonService; | 
| import com.fzzy.api.utils.ContextUtil; | 
| import com.fzzy.api.utils.FileUtils; | 
| import com.fzzy.api.view.repository.*; | 
| import com.fzzy.async.fzzy40.entity.Fz40SecSnapDepot; | 
| import com.fzzy.async.fzzy40.repository.Fzzy40Sync1307Rep; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Component; | 
| import java.util.*; | 
|   | 
| /** | 
|  * 仓内视频图像 | 
|  * @author czt | 
|  */ | 
| @Slf4j | 
| @Component | 
| public class Fzzy40Sync1307 { | 
|   | 
|     @Autowired | 
|     private Fzzy40Sync1307Rep fzzySync1307Rep; | 
|     @Autowired | 
|     private Api1109Rep api1109Rep; | 
|     @Autowired | 
|     private Api1111Rep api1111Rep; | 
|     @Autowired | 
|     private Api1307Rep api1307Rep; | 
|     @Autowired | 
|     private ApiCommonService commonService; | 
|     @Autowired | 
|     private ApiLogRep apiLogRep; | 
|     @Autowired | 
|     private FileUtils fileUtil; | 
|     @Autowired | 
|     private ApiConfsRep apiConfsRep; | 
|   | 
|     /** | 
|      * 同步仓内抓拍文件信息 | 
|      * | 
|      * @param deptId | 
|      * @param start | 
|      * @param end | 
|      */ | 
|     public void syncData(String kqdm, String deptId, Date start, Date end) { | 
|   | 
|         log.info("-------------1307接口数据开始同步------------------"); | 
|   | 
|         //同步数据,只记录失败的信息 | 
|         ApiLog apiLog = new ApiLog(); | 
|         apiLog.setType(ApiLog.TYPE_SYNC); | 
|         apiLog.setKqdm(deptId); | 
|         apiLog.setUploadTime(new Date()); | 
|         apiLog.setInteId(Constant.API_CODE_1109); | 
|         apiLog.setStatus(99); | 
|         apiLog.setId(ContextUtil.getUUID()); | 
|         try { | 
|             //获取仓内抓拍图片 | 
|             List<Fz40SecSnapDepot> list = fzzySync1307Rep.listSnapDepotData(deptId, start, end); | 
|   | 
|             if (null == list || list.isEmpty()) { | 
|                 log.info("-------------没有获取到文件信息------------------"); | 
|                 return; | 
|             } | 
|             Api1105 api1105; | 
|             Api1307 apiData; | 
|             List<Api1307> api1307List; | 
|             List<Api1111> api1111List; | 
|             Api1109 api1109; | 
|             List<Api1109> api1109List; | 
|             for (Fz40SecSnapDepot sysData : list) { | 
|                 //获取货位信息 | 
|                 api1105 = commonService.getApi1105Cache(sysData.getDepotId()); | 
|                 if (null == api1105) { | 
|                     continue; | 
|                 } | 
|                 api1111List = api1111Rep.getApi1111ByBizId(sysData.getCameraId()); | 
|                 if (null == api1111List || api1111List.isEmpty()) { | 
|                     log.error("-------------没有获取到仓内视频点位信息------------------"); | 
|                     return; | 
|                 } | 
|   | 
|                 apiData = new Api1307(); | 
|                 //主键id | 
|                 apiData.setId(sysData.getFileName().replace(sysData.getDepotId() + "_", api1105.getHwdm()).replace(".jpg", "")); | 
|   | 
|                 //查询摄像头对应监控设备ID | 
|                 apiData.setSpjksbid(api1111List.get(0).getSpjksbid()); | 
|                 apiData.setCfdm(api1105.getHwdm().substring(0,25)); | 
|   | 
|                 apiData.setHwdm(api1105.getHwdm()); | 
|                 apiData.setZpsj(sysData.getUpdateTime()); | 
|                 apiData.setTxwjhzm("jpg"); | 
|                 apiData.setYzwbh(apiData.getHwdm() + "01"); | 
|                 //文件路径 | 
|                 apiData.setWjdz(fileUtil.getSnapFilePath(sysData.getUpdateTime()) + sysData.getFileName()); | 
|   | 
|                 //操作标志及最后更新时间 | 
|                 apiData.setZhgxsj(new Date()); | 
|                 //业务id、库区编码、同步时间 | 
|                 apiData.setBizId(sysData.getId()); | 
|                 apiData.setKqdm(kqdm); | 
|   | 
|                 //上海省平台使用廒间代码、图像编码两个字段 | 
|                 apiData.setAjdh(api1105.getHwdm().substring(0,28)); | 
|                 apiData.setTxbh(sysData.getFileName().replace(sysData.getDepotId() + "_", api1105.getHwdm())); | 
|   | 
|                 api1307List = api1307Rep.getDataByBizId(apiData.getBizId()); | 
|                 if (null == api1307List || api1307List.isEmpty()) { | 
|                     apiData.setCzbz(Constant.CZBZ_I); | 
|                 } else { | 
|                     apiData.setCzbz(api1307List.get(0).getCzbz()); | 
|                 } | 
|   | 
|                 //保存数据 | 
|                 api1307Rep.save(apiData); | 
|                 log.info("1307---同步数据:{}", apiData.toString()); | 
|   | 
|                 //若为上海省平台协议,则需同时同步文件信息 | 
|                 List<ApiConfs> apiConfs = apiConfsRep.getDataByKqdm(kqdm); | 
|                 if(null != apiConfs && PushProtocol.SB_SH_2023.getCode().equals(apiConfs.get(0).getPushProtocol())){ | 
|                     api1109 = new Api1109(); | 
|                     //主键id | 
|                     api1109.setId(apiData.getId()); | 
|                     //文件路径 | 
|                     api1109.setWjdz(apiData.getWjdz()); | 
|                     //文件名称 | 
|                     api1109.setWjmc(apiData.getTxbh()); | 
|                     //文件类型 | 
|                     api1109.setWjlx("7"); //7-仓内视频图像 | 
|                     //操作标志及最后更新时间 | 
|                     api1109.setZhgxsj(new Date()); | 
|   | 
|                     //业务id、库区编码、同步时间 | 
|                     api1109.setBizId(apiData.getBizId()); | 
|                     api1109.setKqdm(kqdm); | 
|                     api1109.setSyncTime(new Date()); | 
|                     api1109List = api1109Rep.getDataByBizId(api1109.getBizId()); | 
|                     if (null == api1109List || api1109List.isEmpty()) { | 
|                         api1109.setCzbz(Constant.CZBZ_I); | 
|                     } else { | 
|                         api1109.setCzbz(api1109List.get(0).getCzbz()); | 
|                     } | 
|                     //保存数据 | 
|                     api1109Rep.save(api1109); | 
|                 } | 
|   | 
|             } | 
|         } catch (Exception e) { | 
|             log.error("---仓内抓拍同步执行失败----{}", e); | 
|             apiLog.setResult("同步仓内抓拍失败:" + e.getMessage()); | 
|             apiLogRep.save(apiLog); | 
|         } | 
|     } | 
| } |