From 0df1d5c695a7231ed2d9ea032b96975077593f05 Mon Sep 17 00:00:00 2001
From: YYC <1833023622@qq.com>
Date: 星期五, 18 八月 2023 10:36:09 +0800
Subject: [PATCH] 文件同步

---
 src/main/java/com/fzzy/async/fzzy40/entity/Fz40FileInfo.java          |   68 +++++++++++
 src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1109.java          |  244 ++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1109Rep.java |   25 ++++
 src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java          |   10 +
 4 files changed, 343 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java b/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java
index a4bc40d..1056074 100644
--- a/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java
+++ b/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java
@@ -41,6 +41,8 @@
     private Fzzy40Sync1209 fzzySync1209;
     @Autowired
     private Fzzy40Sync1210 fzzySync1210;
+    @Autowired
+    private Fzzy40Sync1109 fzzySync1109;
 
     @Override
     public String getProtocol() {
@@ -79,13 +81,13 @@
         //鍊掍粨淇℃伅鍚屾
         fzzySync1207.syncData(kqdm, deptId, start, end);
 
-        //鍑哄叆搴撴枃浠朵俊鎭悓姝�  TODO
+        //鍑哄叆搴撴枃浠朵俊鎭悓姝�
+        fzzySync1109.syncData(kqdm, deptId, start, end);
 
-
-        //绮搴撳瓨鍚屾  TODO
+        //绮搴撳瓨鍚屾
         fzzySync1208.syncData(kqdm, deptId, start, end);
 
-        //绮鎬ц川杞彉淇℃伅鍚屾  TODO
+        //绮鎬ц川杞彉淇℃伅鍚屾
         fzzySync1210.syncData(kqdm, deptId, start, end);
 
 
diff --git a/src/main/java/com/fzzy/async/fzzy40/entity/Fz40FileInfo.java b/src/main/java/com/fzzy/async/fzzy40/entity/Fz40FileInfo.java
new file mode 100644
index 0000000..f95809d
--- /dev/null
+++ b/src/main/java/com/fzzy/async/fzzy40/entity/Fz40FileInfo.java
@@ -0,0 +1,68 @@
+package com.fzzy.async.fzzy40.entity;
+
+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.io.Serializable;
+import java.util.Date;
+
+/**
+ * 闄勪欢淇℃伅锛岀郴缁熸墍鏈夌被鍨嬮檮浠跺潎浣跨敤璇ョ被
+ * <p>
+ * 鍏朵腑鍥剧墖淇℃伅锛屾敮鎸佺洿鎺ヤ繚瀛樺埌鏁版嵁搴撲腑锛屼娇鐢ㄥ瓧娈碉細imgData
+ * <p>
+ * 闄勪欢淇℃伅鍏ㄩ儴淇濆瓨鍦ㄦ湇鍔″櫒纭洏涓紝涓嶅啀淇濆瓨鏁版嵁搴�
+ *
+ * @author Andy
+ */
+@Data
+@Entity
+@Table(name = "D_FILE")
+public class Fz40FileInfo implements Serializable {
+
+    private static final long serialVersionUID = 86018008520229637L;
+
+    @Id
+    @Column(name = "FILE_ID_", length = 40)
+    @PropertyDef(label = "闄勪欢ID")
+    private String fileId;
+
+    @PropertyDef(label = "缁勭粐缂栧彿")
+    @Column(name = "COMPANY_ID_", length = 10)
+    private String companyId;
+
+    @Column(name = "BIZ_ID_", length = 40)
+    @PropertyDef(label = "涓氬姟ID")
+    private String bizId;
+
+    @Column(name = "BIZ_TAG_", length = 20)
+    @PropertyDef(label = "涓氬姟鏍囩", description = "闄勪欢鍦ㄧ粦瀹氫笟鍔$殑鏃跺�欏彲鑳介渶瑕佸叾浠栨爣璇嗗尯鍒�")
+    private String bizTag;
+
+    @PropertyDef(label = "鏂囦欢鍚嶇О")
+    @Column(name = "FILE_NAME_", length = 100)
+    private String fileName;
+
+    @PropertyDef(label = "鍒涘缓鏃堕棿")
+    @Column(name = "CREATE_TIME_")
+    private Date createTime;
+
+    public Fz40FileInfo() {
+        super();
+    }
+
+    public Fz40FileInfo(String fileName, String type, String imgDataStr, Date createTime) {
+        this.fileName = fileName;
+        this.createTime = createTime;
+    }
+
+    public Fz40FileInfo(Fz40FileInfo file) {
+        this.createTime = file.getCreateTime();
+        this.fileName = file.getFileName();
+    }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1109.java b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1109.java
new file mode 100644
index 0000000..1507f49
--- /dev/null
+++ b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1109.java
@@ -0,0 +1,244 @@
+package com.fzzy.async.fzzy40.impl;
+
+import com.fzzy.api.Constant;
+import com.fzzy.api.entity.Api1109;
+import com.fzzy.api.entity.ApiLog;
+import com.fzzy.api.utils.ContextUtil;
+import com.fzzy.api.utils.FileUtil;
+import com.fzzy.api.view.repository.Api1109Rep;
+import com.fzzy.api.view.repository.ApiLogRep;
+import com.fzzy.async.fzzy40.entity.Fz40FileInfo;
+import com.fzzy.async.fzzy40.entity.Fz40InoutRecord;
+import com.fzzy.async.fzzy40.repository.Fzzy40Sync1109Rep;
+import com.fzzy.async.fzzy40.repository.Fzzy40Sync1202Rep;
+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.*;
+
+/**
+ * 鏂囦欢淇℃伅
+ */
+@Slf4j
+@Component
+public class Fzzy40Sync1109 {
+
+    private final static String IMG_START_C = "C_";
+    private final static String IMG_START_R = "R_";
+    /**
+     * 鍥剧墖绫诲瀷
+     */
+    private final static String IMG_TYPE_1 = "1";    //搴撳尯楦熺灠鍥�
+    private final static String IMG_TYPE_2 = "2";    //鍏ュ簱鍥剧墖
+    private final static String IMG_TYPE_3 = "3";    //鍑哄簱鍥剧墖
+    private final static String IMG_TYPE_4 = "4";    //鍏ュ簱妫�鏂よ棰�
+    private final static String IMG_TYPE_5 = "5";    //鍑哄簱妫�鏂よ棰�
+    private final static String IMG_TYPE_104 = "104";//鐔忚捀澶囨鎺ュ彛闄勪欢锛岀敤浜庡箍涓滅渷
+
+    /**
+     * 涓氬姟绫诲瀷
+     */
+    private final static String BIZ_TAG_WEIGHT_FULL = "WEIGHT_FULL";
+    private final static String BIZ_TAG_WEIGHT_EMPTY = "WEIGHT_EMPTY";
+    private final static String BIZ_TAG_REGISTER = "REGISTER";
+    private final static String BIZ_TAG_HANDLE = "HANDLE";
+
+    @Autowired
+    private Fzzy40Sync1109Rep fzzySync1109Rep;
+    @Autowired
+    private Fzzy40Sync1202Rep fzzySync1202Rep;
+    @Autowired
+    private Api1109Rep api1109Rep;
+    @Autowired
+    private ApiLogRep apiLogRep;
+    @Autowired
+    private FileUtil fileUtil;
+
+    /**
+     * 鍚屾鏂囦欢鎺ュ彛
+     *
+     * @param deptId
+     * @param start
+     * @param end
+     */
+    public void syncData(String kqdm, String deptId, Date start, Date end) {
+
+        log.info("-------------1109鎺ュ彛鏁版嵁寮�濮嬪悓姝�------------------");
+
+        //鍚屾鏁版嵁锛屽彧璁板綍澶辫触鐨勪俊鎭�
+        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<Fz40FileInfo> list = fzzySync1109Rep.listFileInfo(start, end);
+
+            if (null == list || list.isEmpty()) {
+                log.info("-------------娌℃湁鑾峰彇鍒版枃浠朵俊鎭�------------------");
+                return;
+            }
+
+            Map<String, Integer> map = new HashMap<>();
+            Api1109 apiData;
+            String wjlx;
+            String wjmc;
+            List<Api1109> api1109List;
+            List<Fz40InoutRecord> listInout;
+            for (Fz40FileInfo sysData : list) {
+                if (StringUtils.isEmpty(sysData.getBizId())) {
+                    continue;
+                }
+                //鏍规嵁鍥剧墖id鏌ヨ瀵瑰簲鍑哄叆搴撲俊鎭�
+                listInout = fzzySync1202Rep.listInoutRecordById(sysData.getBizId());
+                if (null == listInout || listInout.isEmpty()) {
+                    continue;
+                }
+                //鑻ュ嚭鍏ュ簱淇℃伅涓哄垹闄ゆ垨鑰呴敊璇姸鎬侊紝鍒欎笉鍚屾
+                if ("DEL".equals(listInout.get(0).getRecordStatus()) || "ERROR".equals(listInout.get(0).getRecordStatus())) {
+                    continue;
+                }
+                //鑻ュ嚭鍏ュ簱淇℃伅涓叆搴撻噸閲忎负绌烘垨涓�0锛屽垯涓嶅悓姝�
+                if (null == listInout.get(0).getRecordWeight() || listInout.get(0).getRecordWeight() == 0) {
+                    continue;
+                }
+                //鍙悓姝ョО閲�
+                if (BIZ_TAG_WEIGHT_FULL.equals(sysData.getBizTag()) || BIZ_TAG_WEIGHT_EMPTY.equals(sysData.getBizTag())) {
+                    wjlx = "";
+                    wjmc = kqdm;
+                    //鍏ュ簱鎶撴媿鍥�
+                    if (sysData.getBizId().startsWith(IMG_START_R)) {
+                        wjlx = IMG_TYPE_2;
+                        wjmc += "_" + Constant.INOUT_TYPE_14 + sysData.getBizId().substring(4);
+                    }
+                    //鍑哄簱鎶撴媿鍥�
+                    if (sysData.getBizId().startsWith(IMG_START_C)) {
+                        wjlx = IMG_TYPE_3;
+                        wjmc += "_" + Constant.INOUT_TYPE_15 + sysData.getBizId().substring(4);
+                    }
+                    //鑻ユ枃浠剁被鍨嬩负绌猴紝鍒欒烦杩�
+                    if (StringUtils.isEmpty(wjlx)) {
+                        continue;
+                    }
+
+                    apiData = new Api1109();
+
+                    //涓婚敭id
+                    apiData.setId(UUID.randomUUID().toString());
+                    //鏂囦欢璺緞
+                    apiData.setWjdz(fileUtil.getInoutFilePath(sysData.getCreateTime()) + sysData.getFileName());
+
+                    //鏂囦欢鍚嶇О
+                    wjmc = getImgNameType(wjmc, sysData.getBizTag(), sysData.getBizId(), sysData.getFileName(), map);
+                    apiData.setWjmc(wjmc);
+                    //鏂囦欢绫诲瀷
+                    apiData.setWjlx(wjlx);
+
+                    //鎿嶄綔鏍囧織鍙婃渶鍚庢洿鏂版椂闂�
+                    apiData.setZhgxsj(new Date());
+
+                    //涓氬姟id銆佸簱鍖虹紪鐮併�佸悓姝ユ椂闂�
+                    apiData.setBizId(sysData.getFileId());
+                    apiData.setKqdm(kqdm);
+                    apiData.setSyncTime(new Date());
+
+                    api1109List = api1109Rep.getDataByBizId(apiData.getBizId());
+                    if (null == api1109List || api1109List.isEmpty()) {
+                        apiData.setCzbz(Constant.CZBZ_I);
+                    } else {
+                        apiData.setCzbz(api1109List.get(0).getCzbz());
+                    }
+
+                    //淇濆瓨鏁版嵁
+                    api1109Rep.save(apiData);
+                    log.info("1109---鍚屾鏁版嵁锛歿}", apiData.toString());
+                }
+            }
+        } catch (Exception e) {
+            log.error("---鏂囦欢鍚屾鎵ц澶辫触----{}", e);
+            apiLog.setResult("鍚屾鏂囦欢淇℃伅澶辫触锛�" + e.getMessage());
+            apiLogRep.save(apiLog);
+        }
+    }
+
+    /**
+     * 鑾峰彇鍥剧墖鍛藉悕绫诲瀷
+     *
+     * @param wjmc     闇�瑕佺殑鏂囦欢鍚嶇О
+     * @param bizTag   鏂囦欢涓氬姟绫诲瀷
+     * @param bizId    鏂囦欢涓氬姟id
+     * @param fileName 鍘熸枃浠跺悕
+     * @param map
+     * @return
+     */
+    private String getImgNameType(String wjmc, String bizTag, String bizId, String fileName, Map<String, Integer> map) {
+        if (fileName.indexOf(Constant.IMG_NAME_TYPE_GL) >= 0) {
+            return wjmc + "_" + Constant.IMG_NAME_TYPE_GL + ".jpg";
+        }
+        if (fileName.indexOf(Constant.IMG_NAME_TYPE_GR) >= 0) {
+            return wjmc + "_" + Constant.IMG_NAME_TYPE_GR + ".jpg";
+        }
+        if (fileName.indexOf(Constant.IMG_NAME_TYPE_GT) >= 0) {
+            return wjmc + "_" + Constant.IMG_NAME_TYPE_GT + ".jpg";
+        }
+        if (fileName.indexOf(Constant.IMG_NAME_TYPE_TL) >= 0) {
+            return wjmc + "_" + Constant.IMG_NAME_TYPE_TL + ".jpg";
+        }
+        if (fileName.indexOf(Constant.IMG_NAME_TYPE_TR) >= 0) {
+            return wjmc + "_" + Constant.IMG_NAME_TYPE_TR + ".jpg";
+        }
+        if (fileName.indexOf(Constant.IMG_NAME_TYPE_TT) >= 0) {
+            return wjmc + "_" + Constant.IMG_NAME_TYPE_TT + ".jpg";
+        }
+        if (fileName.indexOf(Constant.IMG_NAME_TYPE_SL) >= 0) {
+            return wjmc + "_" + Constant.IMG_NAME_TYPE_SL + ".jpg";
+        }
+        if (fileName.indexOf(Constant.IMG_NAME_TYPE_SF) >= 0) {
+            return wjmc + "_" + Constant.IMG_NAME_TYPE_SF + ".jpg";
+        }
+        Integer num = 0;
+        //姣涢噸
+        if (BIZ_TAG_WEIGHT_FULL.equals(bizTag)) {
+            if (null == map.get(bizId + "_" + bizTag)) {
+                map.put(bizId + "_" + bizTag, 1);
+            }
+            num = map.get(bizId + "_" + bizTag);
+            if (num == 1) {
+                wjmc += "_" + Constant.IMG_NAME_TYPE_GL;
+                map.put(bizId + "_" + bizTag, 2);
+            }
+            if (num == 2) {
+                wjmc += "_" + Constant.IMG_NAME_TYPE_GR;
+                map.put(bizId + "_" + bizTag, 3);
+            }
+            if (num == 3) {
+                wjmc += "_" + Constant.IMG_NAME_TYPE_GT;
+                map.remove(bizId + "_" + bizTag);
+            }
+        }
+        //鐨噸
+        if (BIZ_TAG_WEIGHT_EMPTY.equals(bizTag)) {
+            if (null == map.get(bizId + "_" + bizTag)) {
+                map.put(bizId + "_" + bizTag, 1);
+            }
+            num = map.get(bizId + "_" + bizTag);
+            if (num == 1) {
+                wjmc += "_" + Constant.IMG_NAME_TYPE_TL;
+                map.put(bizId + "_" + bizTag, 2);
+            }
+            if (num == 2) {
+                wjmc += "_" + Constant.IMG_NAME_TYPE_TR;
+                map.put(bizId + "_" + bizTag, 3);
+            }
+            if (num == 3) {
+                wjmc += "_" + Constant.IMG_NAME_TYPE_TT;
+                map.remove(bizId + "_" + bizTag);
+            }
+        }
+        return wjmc + ".jpg";
+    }
+}
diff --git a/src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1109Rep.java b/src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1109Rep.java
new file mode 100644
index 0000000..f6cce6c
--- /dev/null
+++ b/src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1109Rep.java
@@ -0,0 +1,25 @@
+package com.fzzy.async.fzzy40.repository;
+
+import com.fzzy.async.fzzy35.entity.Fz35FileInfo;
+import com.fzzy.async.fzzy40.entity.Fz40FileInfo;
+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:YAN
+ */
+public interface Fzzy40Sync1109Rep extends JpaRepository<Fz40FileInfo, String> {
+    /**
+     * 鏍规嵁淇℃伅鏂囦欢淇℃伅
+     *
+     * @param start
+     * @param end
+     * @return
+     */
+    @Query("from Fz40FileInfo where createTime >=:start and createTime <:end order by createTime ")
+    List<Fz40FileInfo> listFileInfo(@Param("start") Date start, @Param("end") Date end);
+}

--
Gitblit v1.9.3