管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-02-05 233336b97af9fe4994c92803ee8f1be64f496300
1
已修改1个文件
40 ■■■■■ 文件已修改
src/main/java/com/lf/server/service/all/UploadAttachService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/all/UploadAttachService.java
@@ -260,10 +260,20 @@
        }
        Field field = getAnnexField(list.get(0), meta);
        String folder = meta.getName().split(".")[0].trim().toLowerCase() + File.separator;
        int rows = 0;
        for (Object obj : list) {
            String name = getAnnexName(obj, field);
            if (StringHelper.isEmpty(name)) {
                continue;
            }
            String file = findAnnexFile(name, folder, files);
            if (null == file) {
                continue;
            }
            BaseEntity be = (BaseEntity) obj;
            rows += insertXlsAnnex(be, files);
        }
@@ -301,6 +311,7 @@
    private Field getAnnexField(Object obj, MetaEntity meta) {
        try {
            String str = ATTACH_TABS.get(meta.getTab());
            Field field = obj.getClass().getDeclaredField(str);
            field.setAccessible(true);
@@ -311,10 +322,33 @@
    }
    /**
     * 查找Excel附件
     * 获取附件名称
     */
    private String findXlsAnnex(Object obj) {
    private String getAnnexName(Object obj, Field field) {
        try {
            Object val = field.get(obj);
            return null == val ? null : val.toString().trim();
        } catch (Exception ex) {
            return null;
        }
    }
    /**
     * 查找附件文件
     */
    private String findAnnexFile(String name, String folder, List<String> files) {
        name = File.separator + name.split(".")[0].toLowerCase();
        for (String file : files) {
            if (file.toLowerCase().contains(folder) && file.toLowerCase().contains(name)) {
                return file;
            }
        }
        for (String file : files) {
            if (file.toLowerCase().contains(name)) {
                return file;
            }
        }
        return null;
    }