From 693f96878fb796a6f29ecbf22295e61fe96c94f1 Mon Sep 17 00:00:00 2001
From: CZT <czt18638530771@163.com>
Date: 星期二, 02 一月 2024 16:42:18 +0800
Subject: [PATCH] 新增1307-仓内视频图像数据同步

---
 src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java          |    5 +
 src/main/java/com/fzzy/api/view/repository/Api1306Rep.java            |    3 
 src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1307Rep.java |   29 +++++
 src/main/java/com/fzzy/api/view/repository/Api1111Rep.java            |    8 +
 src/main/java/com/fzzy/api/entity/Api1307.java                        |   12 -
 src/main/java/com/fzzy/async/fzzy40/entity/Fz40SecSnapDepot.java      |   61 ++++++++++++
 src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1307.java          |  159 +++++++++++++++++++++++++++++++
 src/main/java/com/fzzy/api/view/repository/Api1307Rep.java            |    4 
 src/main/java/com/fzzy/api/utils/FileUtils.java                       |   14 ++
 9 files changed, 281 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/fzzy/api/entity/Api1307.java b/src/main/java/com/fzzy/api/entity/Api1307.java
index 4c1a78d..4a590dc 100644
--- a/src/main/java/com/fzzy/api/entity/Api1307.java
+++ b/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;
 
     /*----------鍥芥爣瀛楁----------*/
diff --git a/src/main/java/com/fzzy/api/utils/FileUtils.java b/src/main/java/com/fzzy/api/utils/FileUtils.java
index df2a8e2..16e4605 100644
--- a/src/main/java/com/fzzy/api/utils/FileUtils.java
+++ b/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;
+	}
 }
diff --git a/src/main/java/com/fzzy/api/view/repository/Api1111Rep.java b/src/main/java/com/fzzy/api/view/repository/Api1111Rep.java
index 10b9098..c48690d 100644
--- a/src/main/java/com/fzzy/api/view/repository/Api1111Rep.java
+++ b/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);
 }
\ No newline at end of file
diff --git a/src/main/java/com/fzzy/api/view/repository/Api1306Rep.java b/src/main/java/com/fzzy/api/view/repository/Api1306Rep.java
index f8aed5e..9849ee3 100644
--- a/src/main/java/com/fzzy/api/view/repository/Api1306Rep.java
+++ b/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;
 
diff --git a/src/main/java/com/fzzy/api/view/repository/Api1307Rep.java b/src/main/java/com/fzzy/api/view/repository/Api1307Rep.java
index d5ac016..0b722ed 100644
--- a/src/main/java/com/fzzy/api/view/repository/Api1307Rep.java
+++ b/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);
 }
diff --git a/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java b/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java
index 05cb5f6..fc2d2bb 100644
--- a/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java
+++ b/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());
+
     }
 
 }
diff --git a/src/main/java/com/fzzy/async/fzzy40/entity/Fz40SecSnapDepot.java b/src/main/java/com/fzzy/async/fzzy40/entity/Fz40SecSnapDepot.java
new file mode 100644
index 0000000..ac29a4c
--- /dev/null
+++ b/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;
+}
diff --git a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1307.java b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1307.java
new file mode 100644
index 0000000..bbea747
--- /dev/null
+++ b/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", ""));
+
+                //鏌ヨ鎽勫儚澶村搴旂洃鎺ц澶嘔D
+                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);
+        }
+    }
+}
diff --git a/src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1307Rep.java b/src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1307Rep.java
new file mode 100644
index 0000000..0c6793c
--- /dev/null
+++ b/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);
+
+}

--
Gitblit v1.9.3