diff --git a/WEB-INF/lib/zip4j-2.11.5.jar b/WEB-INF/lib/zip4j-2.11.5.jar new file mode 100644 index 0000000..c08f0f3 Binary files /dev/null and b/WEB-INF/lib/zip4j-2.11.5.jar differ diff --git a/src/com/api/secret/web/QualificationApplicationController.java b/src/com/api/secret/web/QualificationApplicationController.java new file mode 100644 index 0000000..79ff4e7 --- /dev/null +++ b/src/com/api/secret/web/QualificationApplicationController.java @@ -0,0 +1,8 @@ +package com.api.secret.web; + +import javax.ws.rs.Path; + + +@Path("/secret/demand") +public class QualificationApplicationController extends com.engine.secret.web.QualificationApplicationController { +} diff --git a/src/com/api/xxx/web/RecruitDemandController.java b/src/com/api/xxx/web/RecruitDemandController.java deleted file mode 100644 index 22f7992..0000000 --- a/src/com/api/xxx/web/RecruitDemandController.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.api.xxx.web; - -import javax.ws.rs.Path; - - -@Path("/jcl/xxx/demand") -public class RecruitDemandController extends com.engine.xxx.web.RecruitDemandController{ -} diff --git a/src/com/engine/xxx/exception/CustomizeRunTimeException.java b/src/com/engine/secret/exception/CustomizeRunTimeException.java similarity index 92% rename from src/com/engine/xxx/exception/CustomizeRunTimeException.java rename to src/com/engine/secret/exception/CustomizeRunTimeException.java index 9551fd8..76b71b3 100644 --- a/src/com/engine/xxx/exception/CustomizeRunTimeException.java +++ b/src/com/engine/secret/exception/CustomizeRunTimeException.java @@ -1,4 +1,4 @@ -package com.engine.xxx.exception; +package com.engine.secret.exception; /** * @Author weaver_cl diff --git a/src/com/engine/secret/service/QualificationApplicationService.java b/src/com/engine/secret/service/QualificationApplicationService.java new file mode 100644 index 0000000..906f9cb --- /dev/null +++ b/src/com/engine/secret/service/QualificationApplicationService.java @@ -0,0 +1,19 @@ +package com.engine.secret.service; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2024/08/29 + * @version: 1.0 + */ +public interface QualificationApplicationService { + + /** + * 解析文件 + * + * @param param + * @return + */ + Map parsingFiles(Map param); +} diff --git a/src/com/engine/secret/service/impl/QualificationApplicationServiceImpl.java b/src/com/engine/secret/service/impl/QualificationApplicationServiceImpl.java new file mode 100644 index 0000000..8d06e6c --- /dev/null +++ b/src/com/engine/secret/service/impl/QualificationApplicationServiceImpl.java @@ -0,0 +1,103 @@ +package com.engine.secret.service.impl; + +import com.engine.core.impl.Service; +import com.engine.secret.exception.CustomizeRunTimeException; +import com.engine.secret.service.QualificationApplicationService; +import com.wbi.util.Util; +import net.lingala.zip4j.ZipFile; +import net.lingala.zip4j.exception.ZipException; +import net.lingala.zip4j.model.FileHeader; +import org.apache.commons.lang.StringUtils; +import weaver.file.ImageFileManager; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +/** + * @author:dxfeng + * @createTime: 2024/08/29 + * @version: 1.0 + */ +public class QualificationApplicationServiceImpl extends Service implements QualificationApplicationService { + @Override + public Map parsingFiles(Map param) { + try { + int fileId = 1627; + String imageId = Util.null2String(param.get("imageId")); + if (StringUtils.isBlank(imageId)) { + throw new CustomizeRunTimeException("文件获取失败,请确认文件是否上传"); + } + Map returnMap = new HashMap<>(); + // 根据文件id获取文件流 + ImageFileManager manager = new ImageFileManager(); + manager.getImageFileInfoById(fileId); + manager.getImageFileName(); + InputStream inputStream = manager.getInputStream(); + Path tempZipFile = Files.createTempFile("temp", ".zip"); + Files.copy(inputStream, tempZipFile, StandardCopyOption.REPLACE_EXISTING); + + String password = "zizhi102!"; + unzipWithPassword(tempZipFile, Paths.get("output"), password); + return returnMap; + } catch (Exception e) { + throw new CustomizeRunTimeException("文件解析失败", e); + } + } + private static void unzipWithPassword(Path zipFilePath, Path outputDir, String password) { + try { + ZipFile zipFile = new ZipFile(zipFilePath.toFile()); + if (zipFile.isEncrypted()) { + zipFile.setPassword(password.toCharArray()); // 设置密码 + } + + // 遍历并解压所有文件 + zipFile.extractAll(outputDir.toString()); + System.out.println("解压成功"); + // 12345678_资质申请附件/(database)data.json + + // 存储文件 + + // 遍历 ZIP 内文件(可选) + List fileHeaders = zipFile.getFileHeaders(); + + Optional commonRoot = fileHeaders.stream() + .map(FileHeader::getFileName) + .filter(path -> !path.trim().isEmpty()) + .map(path -> path.split("/")[0]) // 取第一级目录或文件名 + .distinct() + .reduce((a, b) -> a.equals(b) ? a : null); + String rootPath = commonRoot.orElse(null); + Map fileHeaderMap = new HashMap<>(); + + for (FileHeader header : fileHeaders) { + System.out.println("文件: " + header.getFileName()); + fileHeaderMap.put(header.getFileName(),header); + } + // 遍历配置表 + + + + + } catch (ZipException e) { + if (e.getMessage().contains("Wrong password")) { + System.err.println("密码错误"); + } else { + e.printStackTrace(); + } + } finally { + try { + Files.deleteIfExists(zipFilePath); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/com/engine/xxx/util/ExceptionUtil.java b/src/com/engine/secret/util/ExceptionUtil.java similarity index 92% rename from src/com/engine/xxx/util/ExceptionUtil.java rename to src/com/engine/secret/util/ExceptionUtil.java index 076d09c..acf11da 100644 --- a/src/com/engine/xxx/util/ExceptionUtil.java +++ b/src/com/engine/secret/util/ExceptionUtil.java @@ -1,4 +1,4 @@ -package com.engine.xxx.util; +package com.engine.secret.util; /** * @Author weaver_cl diff --git a/src/com/engine/xxx/util/ResponseResult.java b/src/com/engine/secret/util/ResponseResult.java similarity index 94% rename from src/com/engine/xxx/util/ResponseResult.java rename to src/com/engine/secret/util/ResponseResult.java index 4cace10..3baf8d5 100644 --- a/src/com/engine/xxx/util/ResponseResult.java +++ b/src/com/engine/secret/util/ResponseResult.java @@ -1,11 +1,11 @@ -package com.engine.xxx.util; +package com.engine.secret.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import com.engine.core.exception.ECException; -import com.engine.xxx.exception.CustomizeRunTimeException; +import com.engine.secret.exception.CustomizeRunTimeException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; @@ -50,7 +50,7 @@ public class ResponseResult { log.info("run api , param {}", t); } return getJsonString(f.apply(t)); - } catch (com.engine.xxx.exception.CustomizeRunTimeException e) { + } catch (com.engine.secret.exception.CustomizeRunTimeException e) { log.error("api run fail", e); return Error(e.getMessage()); } catch (ECException e) { @@ -72,7 +72,7 @@ public class ResponseResult { log.info("run api , param {}", t); } return Ok(f.apply(t)); - } catch (com.engine.xxx.exception.CustomizeRunTimeException e) { + } catch (com.engine.secret.exception.CustomizeRunTimeException e) { log.error("api run fail", e); return Error(e.getMessage()); } catch (ECException e) { @@ -95,7 +95,7 @@ public class ResponseResult { } f.accept(t); return Ok(); - } catch (com.engine.xxx.exception.CustomizeRunTimeException e) { + } catch (com.engine.secret.exception.CustomizeRunTimeException e) { log.error("api run fail", e); return Error(e.getMessage()); } catch (ECException e) { diff --git a/src/com/engine/xxx/web/RecruitDemandController.java b/src/com/engine/secret/web/QualificationApplicationController.java similarity index 54% rename from src/com/engine/xxx/web/RecruitDemandController.java rename to src/com/engine/secret/web/QualificationApplicationController.java index 6be463f..5db52ad 100644 --- a/src/com/engine/xxx/web/RecruitDemandController.java +++ b/src/com/engine/secret/web/QualificationApplicationController.java @@ -1,10 +1,10 @@ -package com.engine.xxx.web; +package com.engine.secret.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.xxx.service.RecruitDemandService; -import com.engine.xxx.service.impl.RecruitDemandServiceImpl; -import com.engine.xxx.util.ResponseResult; +import com.engine.secret.service.QualificationApplicationService; +import com.engine.secret.service.impl.QualificationApplicationServiceImpl; +import com.engine.secret.util.ResponseResult; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -22,18 +22,18 @@ import java.util.Map; * @createTime: 2024/08/29 * @version: 1.0 */ -public class RecruitDemandController { - public RecruitDemandService getService(User user) { - return ServiceUtil.getService(RecruitDemandServiceImpl.class, user); +public class QualificationApplicationController { + public QualificationApplicationService getService(User user) { + return ServiceUtil.getService(QualificationApplicationServiceImpl.class, user); } @GET - @Path("/getStaffNum") + @Path("/parsingFiles") @Produces(MediaType.APPLICATION_JSON) - public String getStaffNum(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public String parsingFiles(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); Map params = ParamUtil.request2Map(request); - return new ResponseResult, Map>(user).run(getService(user)::getStaffNum, params); + return new ResponseResult, Map>(user).run(getService(user)::parsingFiles, params); } } diff --git a/src/com/engine/xxx/service/RecruitDemandService.java b/src/com/engine/xxx/service/RecruitDemandService.java deleted file mode 100644 index ddf40e5..0000000 --- a/src/com/engine/xxx/service/RecruitDemandService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.engine.xxx.service; - -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2024/08/29 - * @version: 1.0 - */ -public interface RecruitDemandService { - - Map getStaffNum(Map param); -} diff --git a/src/com/engine/xxx/service/impl/RecruitDemandServiceImpl.java b/src/com/engine/xxx/service/impl/RecruitDemandServiceImpl.java deleted file mode 100644 index 8b114af..0000000 --- a/src/com/engine/xxx/service/impl/RecruitDemandServiceImpl.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.engine.xxx.service.impl; - -import com.engine.core.impl.Service; -import com.engine.xxx.service.RecruitDemandService; -import weaver.conn.RecordSet; -import weaver.general.Util; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2024/08/29 - * @version: 1.0 - */ -public class RecruitDemandServiceImpl extends Service implements RecruitDemandService { - @Override - public Map getStaffNum(Map param) { - Map returnMap = new HashMap<>(); - RecordSet rs = new RecordSet(); - String sqbm = Util.null2String(param.get("sqbm")); - String xqgw = Util.null2String(param.get("xqgw")); - - - rs.executeQuery("select a.staff_num, a.permanent_num from jcl_org_staff a inner join JCL_ORG_STAFFPLAN b on a.plan_id = b.id and b.forbidden_tag = 0 and b.delete_type = 0 where a.delete_type = 0 and a.ec_department = ? and a.job_id = ? order by a.id desc", sqbm, xqgw); - if(rs.next()) { - String staffNum = rs.getString("staff_num"); - String permanentNum = rs.getString("permanent_num"); - returnMap.put("staffNum", staffNum); - returnMap.put("permanentNum", permanentNum); - } - - return returnMap; - } -}