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