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