资质申请文件解析
This commit is contained in:
parent
98f184c802
commit
9b6ccc8732
Binary file not shown.
|
|
@ -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 {
|
||||||
|
}
|
||||||
|
|
@ -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{
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.engine.xxx.exception;
|
package com.engine.secret.exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author weaver_cl
|
* @Author weaver_cl
|
||||||
|
|
@ -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<String, Object> parsingFiles(Map<String, Object> param);
|
||||||
|
}
|
||||||
|
|
@ -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<String, Object> parsingFiles(Map<String, Object> param) {
|
||||||
|
try {
|
||||||
|
int fileId = 1627;
|
||||||
|
String imageId = Util.null2String(param.get("imageId"));
|
||||||
|
if (StringUtils.isBlank(imageId)) {
|
||||||
|
throw new CustomizeRunTimeException("文件获取失败,请确认文件是否上传");
|
||||||
|
}
|
||||||
|
Map<String, Object> 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<FileHeader> fileHeaders = zipFile.getFileHeaders();
|
||||||
|
|
||||||
|
Optional<String> 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<String,FileHeader> 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.engine.xxx.util;
|
package com.engine.secret.util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author weaver_cl
|
* @Author weaver_cl
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
package com.engine.xxx.util;
|
package com.engine.secret.util;
|
||||||
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||||
import com.engine.core.exception.ECException;
|
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.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -50,7 +50,7 @@ public class ResponseResult<T, R> {
|
||||||
log.info("run api , param {}", t);
|
log.info("run api , param {}", t);
|
||||||
}
|
}
|
||||||
return getJsonString(f.apply(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);
|
log.error("api run fail", e);
|
||||||
return Error(e.getMessage());
|
return Error(e.getMessage());
|
||||||
} catch (ECException e) {
|
} catch (ECException e) {
|
||||||
|
|
@ -72,7 +72,7 @@ public class ResponseResult<T, R> {
|
||||||
log.info("run api , param {}", t);
|
log.info("run api , param {}", t);
|
||||||
}
|
}
|
||||||
return Ok(f.apply(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);
|
log.error("api run fail", e);
|
||||||
return Error(e.getMessage());
|
return Error(e.getMessage());
|
||||||
} catch (ECException e) {
|
} catch (ECException e) {
|
||||||
|
|
@ -95,7 +95,7 @@ public class ResponseResult<T, R> {
|
||||||
}
|
}
|
||||||
f.accept(t);
|
f.accept(t);
|
||||||
return Ok();
|
return Ok();
|
||||||
} catch (com.engine.xxx.exception.CustomizeRunTimeException e) {
|
} catch (com.engine.secret.exception.CustomizeRunTimeException e) {
|
||||||
log.error("api run fail", e);
|
log.error("api run fail", e);
|
||||||
return Error(e.getMessage());
|
return Error(e.getMessage());
|
||||||
} catch (ECException e) {
|
} catch (ECException e) {
|
||||||
|
|
@ -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.ParamUtil;
|
||||||
import com.engine.common.util.ServiceUtil;
|
import com.engine.common.util.ServiceUtil;
|
||||||
import com.engine.xxx.service.RecruitDemandService;
|
import com.engine.secret.service.QualificationApplicationService;
|
||||||
import com.engine.xxx.service.impl.RecruitDemandServiceImpl;
|
import com.engine.secret.service.impl.QualificationApplicationServiceImpl;
|
||||||
import com.engine.xxx.util.ResponseResult;
|
import com.engine.secret.util.ResponseResult;
|
||||||
import weaver.hrm.HrmUserVarify;
|
import weaver.hrm.HrmUserVarify;
|
||||||
import weaver.hrm.User;
|
import weaver.hrm.User;
|
||||||
|
|
||||||
|
|
@ -22,18 +22,18 @@ import java.util.Map;
|
||||||
* @createTime: 2024/08/29
|
* @createTime: 2024/08/29
|
||||||
* @version: 1.0
|
* @version: 1.0
|
||||||
*/
|
*/
|
||||||
public class RecruitDemandController {
|
public class QualificationApplicationController {
|
||||||
public RecruitDemandService getService(User user) {
|
public QualificationApplicationService getService(User user) {
|
||||||
return ServiceUtil.getService(RecruitDemandServiceImpl.class, user);
|
return ServiceUtil.getService(QualificationApplicationServiceImpl.class, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/getStaffNum")
|
@Path("/parsingFiles")
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@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);
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
Map<String, Object> params = ParamUtil.request2Map(request);
|
Map<String, Object> params = ParamUtil.request2Map(request);
|
||||||
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getService(user)::getStaffNum, params);
|
return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getService(user)::parsingFiles, params);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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<String, Object> getStaffNum(Map<String, Object> param);
|
|
||||||
}
|
|
||||||
|
|
@ -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<String, Object> getStaffNum(Map<String, Object> param) {
|
|
||||||
Map<String, Object> 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue