diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/TemplateDownloadController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/TemplateDownloadController.java index 284e07a..c9d4f55 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/TemplateDownloadController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/TemplateDownloadController.java @@ -126,7 +126,7 @@ public class TemplateDownloadController { String userName = wgzUser.getUsername(); String idCard = wgzUser.getIdentityCard(); // 第二层文件夹名 - String secondLevelFolderName = PinYinUtil.getChineseNameInitials(userName) + "_" + idCard; + String secondLevelFolderName = PinYinUtil.chineseToFullPinyin(userName) + "_" + idCard; byte[] bytes2 = secondLevelFolderName.getBytes(StandardCharsets.UTF_8); // 将 UTF - 8 字节数组转换回字符串 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/UploadZipController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/UploadZipController.java index 72d1c36..17ba728 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/UploadZipController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/UploadZipController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.common; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.crypto.digest.DigestUtil; import com.ruoyi.bgt.domain.BgtProjectRecruit; import com.ruoyi.bgt.domain.BgtProjectRecruitApply; import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService; @@ -29,7 +30,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.validation.constraints.NotNull; import java.io.*; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -78,8 +79,8 @@ public class UploadZipController { if(split.length != 2 || !split[0].equals(recruitId.toString())){ throw new BaseException("文件名与所选择招工不匹配"); } - - if(recruitService.queryById(recruitId) == null){ + BgtProjectRecruit recruit = recruitService.queryById(recruitId); + if( recruit== null){ throw new BaseException("招工信息不存在!"); } @@ -92,15 +93,15 @@ public class UploadZipController { String firstLevelFolderName =""; try { // 保存上传的压缩文件 - File zipFile = new File(TEMP_DIR, file.getOriginalFilename()); + String s = DigestUtil.md5Hex(recruit.getRecruitName()); + firstLevelFolderName = recruitId + "_" + s; + File zipFile = new File(TEMP_DIR, firstLevelFolderName); ensureDirectoryExists(zipFile.getParentFile()); try (OutputStream os = new FileOutputStream(zipFile)) { os.write(file.getBytes()); } // 解压压缩文件 - BgtProjectRecruit recruit = recruitService.queryById(recruitId); - firstLevelFolderName = recruit.getId() + "_" + recruit.getRecruitName(); File extractDir = new File(TEMP_DIR, firstLevelFolderName); ensureDirectoryExists(extractDir); extractZipFile(zipFile, extractDir); @@ -163,7 +164,7 @@ public class UploadZipController { } private void extractZipFile(File zipFile, File extractDir) throws IOException { - try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile), Charset.forName("GBK"))) { + try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile), StandardCharsets.UTF_8)) { ZipEntry zipEntry; while ((zipEntry = zis.getNextEntry()) != null) { File newFile = newFile(extractDir, zipEntry); @@ -235,10 +236,10 @@ public class UploadZipController { File[] thirdLevelFiles = secondLevelFile.listFiles(); if (thirdLevelFiles != null && thirdLevelFiles.length > 0) { // 删除数据库里的附件 - if ("保险".equals(secondLevelFolderName)) { + if ("BaoXian".equals(secondLevelFolderName)) { insurance.add(wgzUser.getUserId()); } - if ("劳务合同".equals(secondLevelFolderName)) { + if ("HeTong".equals(secondLevelFolderName)) { contract.add(wgzUser.getUserId()); } } @@ -335,10 +336,10 @@ public class UploadZipController { String name = destination.getName(); System.out.println("上一级文件名: " + name); String type = ""; - if ("保险".equals(name)) { + if ("BaoXian".equals(name)) { type = "2"; } - if ("劳务合同".equals(name)) { + if ("HeTong".equals(name)) { type = "1"; } Annex annex = new Annex(); @@ -411,10 +412,10 @@ public class UploadZipController { String name = destination.getName(); String type = ""; - if ("保险".equals(name)) { + if ("BaoXian".equals(name)) { type = "2"; } - if ("劳务合同".equals(name)) { + if ("HeTong".equals(name)) { type = "1"; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PinYinUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PinYinUtil.java index 0382651..55bedd7 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PinYinUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PinYinUtil.java @@ -9,32 +9,32 @@ import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombi public class PinYinUtil { - public static String getChineseNameInitials(String chineseName) { + public static String chineseToFullPinyin(String chinese) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); - // 设置拼音大小写格式为大写 - format.setCaseType(HanyuPinyinCaseType.UPPERCASE); + // 设置拼音大小写格式为小写 + format.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 设置拼音声调格式为无音调 format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 设置 ü 的显示格式 format.setVCharType(HanyuPinyinVCharType.WITH_V); - StringBuilder initials = new StringBuilder(); - for (char c : chineseName.toCharArray()) { + StringBuilder pinyin = new StringBuilder(); + for (char c : chinese.toCharArray()) { if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) { try { String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, format); if (pinyinArray != null) { - // 取拼音的首字母 - initials.append(pinyinArray[0].charAt(0)); + // 取第一个拼音结果添加到结果中 + pinyin.append(pinyinArray[0]); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { // 非中文字符直接添加 - initials.append(c); + pinyin.append(c); } } - return initials.toString(); + return pinyin.toString(); } }