package com.fzzy.async.fzzy61.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.fzzy.api.Constant; import com.fzzy.api.entity.Api1102; import com.fzzy.api.entity.ApiInfoData; import com.fzzy.api.entity.ApiLog; import com.fzzy.api.utils.ContextUtil; import com.fzzy.api.view.repository.Api1102Rep; import com.fzzy.api.view.repository.ApiInfoDataRep; import com.fzzy.api.view.repository.ApiLogRep; import com.fzzy.async.fzzy61.entity.Fz61SecCamera; import com.fzzy.async.fzzy61.repository.Fzzy61Sync1311Rep; import com.fzzy.push.sh2023.SH2023Constant; import com.fzzy.push.sh2023.dto.SH2023Api1311; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; /** * 视频监控 * * @Author:YAN */ @Component @Slf4j public class Fzzy61Sync1311 { @Autowired private ApiLogRep apiLogRep; @Autowired private Api1102Rep api1102Rep; @Autowired private Fzzy61Sync1311Rep fzzy61Sync1311Rep; @Autowired private ApiInfoDataRep apiInfoDataRep; public void syncData(String kqdm, String deptId, Date start, Date end) { log.info("-------------1311接口数据开始同步------------------"); //同步数据 ApiLog apiLog = new ApiLog(); apiLog.setType(ApiLog.TYPE_SYNC); apiLog.setKqdm(deptId); apiLog.setUploadTime(new Date()); apiLog.setInteId(SH2023Constant.SH_2023_API_CODE_1311); apiLog.setStatus(99); apiLog.setId(ContextUtil.getUUID()); try { List list = fzzy61Sync1311Rep.findDateByDeptId(deptId); if (list.isEmpty() || null == list) { log.debug("-------------没有获取到视频监控信息------------------"); return; } Api1102 api1102 = api1102Rep.findById(kqdm).get(); SH2023Api1311 sh2023Api1311; SH2023Api1311 sh1311; List apiInfoDataList; for (Fz61SecCamera sysData : list) { sh2023Api1311 = new SH2023Api1311(); sh2023Api1311.setSpjksbid(sysData.getId()); sh2023Api1311.setTdbh(sysData.getChanNum()); sh2023Api1311.setJksbmc(sysData.getName()); sh2023Api1311.setKqdm(kqdm); //监控厂商 sh2023Api1311.setJkcs(getBrandId(sysData.getBrand())); sh2023Api1311.setJkxh(sysData.getSn()); sh2023Api1311.setSpjklx(StringUtils.isEmpty(sysData.getSpjklx()) ? "3" : sysData.getSpjklx()); sh2023Api1311.setSblxbm("1"); sh2023Api1311.setAzwz(sysData.getName()); sh2023Api1311.setAzwzlx(StringUtils.isEmpty(sysData.getSpdwlx()) ? "7" : sysData.getSpdwlx()); if (sh2023Api1311.getAzwzlx().length() == 1) { sh2023Api1311.setAzwzlx("0" + sh2023Api1311.getAzwzlx()); } if ("12".equals(sh2023Api1311.getAzwzlx()) || "13".equals(sh2023Api1311.getAzwzlx()) || "14".equals(sh2023Api1311.getAzwzlx()) || "15".equals(sh2023Api1311.getAzwzlx())) { sh2023Api1311.setAzwzlx("99"); } if ("16".equals(sh2023Api1311.getAzwzlx())) { sh2023Api1311.setAzwzlx("12"); } sh2023Api1311.setSfazbgd("Y"); if (StringUtils.isEmpty(sysData.getType())) { sysData.setType("01"); } if (sysData.getType().equals("02")) { sh2023Api1311.setJkjlxbm("2"); } if (sysData.getType().equals("01")) { sh2023Api1311.setJkjlxbm("1"); } sh2023Api1311.setJktyzw(12); sh2023Api1311.setSbipdz(sysData.getIp()); sh2023Api1311.setSbdkh(sysData.getControlPort()); sh2023Api1311.setSbdlmc(sysData.getLoginId()); sh2023Api1311.setSbdlmm(sysData.getPwd()); sh2023Api1311.setBz(sysData.getRemark()); sh2023Api1311.setZhgxsj(sysData.getUpdateTime() == null ? new Date() : sysData.getUpdateTime()); //持久化保存,单独存入非国标接口表 ApiInfoData infoData = new ApiInfoData(); infoData.setId(sh2023Api1311.getSpjksbid()); infoData.setKqdm(kqdm); infoData.setInteType(Constant.API_CATEGORY_13); infoData.setInteId(SH2023Constant.SH_2023_API_CODE_1311); infoData.setUpdateTime(sh2023Api1311.getZhgxsj()); infoData.setDataId(sh2023Api1311.getSpjksbid()); infoData.setRemarks("视频监控信息"); //设置操作标志 apiInfoDataList = apiInfoDataRep.getDataByInteAndData(SH2023Constant.SH_2023_API_CODE_1311, infoData.getDataId(), kqdm); if (null == apiInfoDataList || apiInfoDataList.isEmpty()) { sh2023Api1311.setCzbz(Constant.CZBZ_I); infoData.setCzbz(Constant.CZBZ_I); } else { sh2023Api1311.setCzbz(apiInfoDataList.get(0).getCzbz()); infoData.setCzbz(apiInfoDataList.get(0).getCzbz()); sh1311 = JSONObject.parseObject(apiInfoDataList.get(0).getData(), SH2023Api1311.class); if (null != sh1311 && StringUtils.isNotEmpty(sh1311.getAjdm())) { sh2023Api1311.setAjdm(sh1311.getAjdm()); } if (null != sh1311 && StringUtils.isNotEmpty(sh1311.getHwdm())) { sh2023Api1311.setHwdm(sh1311.getHwdm()); } } infoData.setData(JSON.toJSONString(sh2023Api1311)); apiInfoDataRep.save(infoData); log.info("1311---视频监控-同步数据:{}", sh2023Api1311); } } catch (Exception e) { log.error("---同步失败----{}", e.toString()); apiLog.setResult("同步失败:" + e.getMessage()); apiLogRep.save(apiLog); } } private String getBrandId(String brandName) { if (StringUtils.isEmpty(brandName)) { return "9"; } if (brandName.contains("海康")) { return "1"; } if (brandName.contains("大华")) { return "2"; } if (brandName.contains("宇视")) { return "3"; } return "9"; } }