CZT
2024-01-02 693f96878fb796a6f29ecbf22295e61fe96c94f1
新增1307-仓内视频图像数据同步
已修改6个文件
已添加3个文件
295 ■■■■■ 文件已修改
src/main/java/com/fzzy/api/entity/Api1307.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/utils/FileUtils.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/view/repository/Api1111Rep.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/view/repository/Api1306Rep.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/view/repository/Api1307Rep.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/entity/Fz40SecSnapDepot.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1307.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1307Rep.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/entity/Api1307.java
@@ -2,22 +2,17 @@
import com.alibaba.fastjson.annotation.JSONField;
import com.bstek.dorado.annotation.PropertyDef;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
 * æŽ¥å£è¡¨-仓内视频图像数据表
 *
 * @author chen
 * @date 2022-09-02 15:57
 * @author czt
 * @date 2024-01-02 15:57
 */
@Data
@Entity
@@ -34,7 +29,7 @@
    /*----------接口系统自定义字段----------*/
    @Id
    @JSONField(serialize = false)
    @Column(name = "ID_", length = 40)
    @Column(name = "ID_", length = 60)
    private String id;
    @JSONField(serialize = false)
@@ -45,7 +40,6 @@
    @JSONField(serialize = false)
    @PropertyDef(label = "文件地址")
    @Column(name = "wjdz")
    private String wjdz;
    /*----------国标字段----------*/
src/main/java/com/fzzy/api/utils/FileUtils.java
@@ -96,4 +96,18 @@
        return basePath;
    }
    public String getSnapFilePath(Date date) {
        if (null == date) {
            date = new Date();
        }
        String basePath = configData.getImgPath() + "SNAP/"
                + DateFormatUtils.format(date, "yyyyMM") + "/";
        File file = new File(basePath);
        if (!file.exists()) {
            file.mkdirs();
        }
        return basePath;
    }
}
src/main/java/com/fzzy/api/view/repository/Api1111Rep.java
@@ -51,4 +51,12 @@
     */
    @Query("from Api1111 where kqdm=:kqdm and zhgxsj >=:start and zhgxsj <:end order by zhgxsj ")
    List<Api1111> findPushDataTime(@Param("kqdm") String kqdm, @Param("start") Date start, @Param("end") Date end);
    /**
     * æ ¹æ®ä¸šåŠ¡ID获取监控点位信息
     * @param bizId
     * @return
     */
    @Query("from Api1111 where bizId=:bizId")
    List<Api1111> getApi1111ByBizId(@Param("bizId") String bizId);
}
src/main/java/com/fzzy/api/view/repository/Api1306Rep.java
@@ -1,7 +1,5 @@
package com.fzzy.api.view.repository;
import com.fzzy.api.entity.Api1203;
import com.fzzy.api.entity.Api1305;
import com.fzzy.api.entity.Api1306;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -9,7 +7,6 @@
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
src/main/java/com/fzzy/api/view/repository/Api1307Rep.java
@@ -1,12 +1,10 @@
package com.fzzy.api.view.repository;
import com.fzzy.api.entity.Api1301;
import com.fzzy.api.entity.Api1307;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.Date;
import java.util.List;
@@ -17,4 +15,6 @@
    @Query("from Api1307 where kqdm=:kqdm and zhgxsj >=:start and zhgxsj <:end order by zhgxsj ")
    List<Api1307> findPushDataByTime(@Param("kqdm") String kqdm, @Param("start") Date start, @Param("end") Date end);
    @Query("from Api1307 where bizId=:bizId ")
    List<Api1307> getDataByBizId(@Param("bizId") String bizId);
}
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java
@@ -28,6 +28,8 @@
    @Autowired
    private Fzzy40Sync1306 fzzySync1306;
    @Autowired
    private Fzzy40Sync1307 fzzySync1307;
    @Autowired
    private Fzzy40Sync1310 fzzySync1310;
    @Autowired
    private Fzzy40Sync1023 fzzySync1023;
@@ -80,6 +82,9 @@
        //熏蒸作业信息同步
        fzzySync1306.syncData(param.getKqdm(), param.getDeptId(), param.getStart(), param.getEnd());
        //仓内视频图像抓拍同步
        fzzySync1307.syncData(param.getKqdm(), param.getDeptId(), param.getStart(), param.getEnd());
    }
}
src/main/java/com/fzzy/async/fzzy40/entity/Fz40SecSnapDepot.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.fzzy.async.fzzy40.entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.bstek.dorado.annotation.PropertyDef;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
 * ä»“内视频图像数据表
 */
@Data
@Entity
@Table(name = "D_SEC_SNAP_DEPOT")
public class Fz40SecSnapDepot {
    @Id
    @Column(name = "ID_", length = 40)
    @PropertyDef(label = "主键")
    private String id;
    @Column(name = "COMPANY_ID_", length = 10)
    @PropertyDef(label = "组织编码")
    private String companyId;
    @Column(name = "DEPT_ID_", length = 30)
    @PropertyDef(label = "所属分库")
    private String deptId;
    @Column(name = "DEPOT_ID_", length = 50)
    @PropertyDef(label = "所属仓库")
    private String depotId;
    @Column(name = "CAMERA_ID_", length = 50)
    @PropertyDef(label = "关联摄像头")
    private String cameraId;
    @Column(name = "RESULT_", length = 30)
    @PropertyDef(label = "抓拍结果")
    private String result = "SUCCESS";
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "UPDATE_TIME_")
    @PropertyDef(label = "抓拍时间")
    private Date updateTime;
    @Column(name = "FILE_SUFFIX_", length = 4)
    @PropertyDef(label = "图像文件后缀名")
    private String fileSuffix = "jpg";
    @Column(name = "FILE_NAME_", length = 100)
    @PropertyDef(label = "文件名称")
    private String fileName;
    @Column(name = "PRESET_ ", length = 4)
    @PropertyDef(label = "预置位编号")
    private String preset;
}
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1307.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
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(UUID.randomUUID().toString());
                    //文件路径
                    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()) {
                        apiData.setCzbz(Constant.CZBZ_I);
                    } else {
                        apiData.setCzbz(api1109List.get(0).getCzbz());
                    }
                    //保存数据
                    api1109Rep.save(api1109);
                }
            }
        } catch (Exception e) {
            log.error("---仓内抓拍同步执行失败----{}", e);
            apiLog.setResult("同步仓内抓拍失败:" + e.getMessage());
            apiLogRep.save(apiLog);
        }
    }
}
src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1307Rep.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.fzzy.async.fzzy40.repository;
import com.fzzy.async.fzzy40.entity.Fz40SecSnapDepot;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.Date;
import java.util.List;
/**
 * ä»“内视频图像
 *
 * @author czt
 * @date 2024-01-02
 */
public interface Fzzy40Sync1307Rep extends JpaRepository<Fz40SecSnapDepot, String> {
    /**
     * æ ¹æ®ä¿¡æ¯èŽ·å–ä»“å†…æŠ“æ‹ä¿¡æ¯
     *
     * @param deptId
     * @param start
     * @param end
     * @return
     */
    @Query("from Fz40SecSnapDepot where deptId=:deptId and updateTime >=:start and updateTime <=:end order by id ")
    List<Fz40SecSnapDepot> listSnapDepotData(@Param("deptId") String deptId, @Param("start") Date start, @Param("end") Date end);
}