bug修复
This commit is contained in:
parent
e8a044b1de
commit
d2a26b02ec
@ -1,12 +1,12 @@
|
||||
package com.zhgd.xmgl.modules.worker.controller;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ZipUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zhgd.annotation.OperLog;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.redis.annotation.ApiIdempotent;
|
||||
import com.zhgd.redis.lock.RedisRepository;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.vo.*;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
|
||||
@ -18,13 +18,11 @@ import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
@ -43,7 +41,9 @@ import java.util.*;
|
||||
public class WorkerInfoController {
|
||||
@Autowired
|
||||
private IWorkerInfoService workerInfoService;
|
||||
|
||||
@Autowired
|
||||
@Lazy
|
||||
private RedisRepository redisRepository;
|
||||
|
||||
/**
|
||||
* 添加
|
||||
@ -653,8 +653,11 @@ public class WorkerInfoController {
|
||||
})
|
||||
@PostMapping(value = "/uploadWorkerInfoImgs")
|
||||
public Result uploadWorkerInfoImgs(MultipartFile file, String projectSn) throws IOException {
|
||||
if (!redisRepository.setNx("uploadWorkerInfoImgs:projectSn" + projectSn, 1000 * 30L)) {
|
||||
return Result.ok("正在导入中,请耐心等待通知!");
|
||||
}
|
||||
workerInfoService.uploadWorkerInfoImgs(file, projectSn);
|
||||
return Result.ok();
|
||||
return Result.ok("导入中,请耐心等待通知!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -7,10 +7,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.ZipUtil;
|
||||
import cn.hutool.core.util.*;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
import cn.hutool.poi.excel.ExcelWriter;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@ -32,6 +29,7 @@ import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.ICompanyService;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.UploadFileService;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl;
|
||||
import com.zhgd.xmgl.modules.govtapi.GovtOpenApiService;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.project.entity.ProjectEnterprise;
|
||||
@ -45,6 +43,7 @@ import com.zhgd.xmgl.modules.worker.entity.vo.*;
|
||||
import com.zhgd.xmgl.modules.worker.enums.EduTypeEnum;
|
||||
import com.zhgd.xmgl.modules.worker.mapper.*;
|
||||
import com.zhgd.xmgl.modules.worker.service.*;
|
||||
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||
import com.zhgd.xmgl.util.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
@ -61,6 +60,7 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.charset.Charset;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
@ -79,6 +79,8 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
@Autowired
|
||||
private AsyncJiLianDa asyncJiLianDa;
|
||||
@Autowired
|
||||
private NoticeServiceImpl noticeService;
|
||||
@Autowired
|
||||
private UfaceDevMapper ufaceDevMapper;
|
||||
@Autowired
|
||||
private ICompanyService companyService;
|
||||
@ -1982,16 +1984,88 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
|
||||
@Override
|
||||
public void uploadWorkerInfoImgs(MultipartFile file, String projectSn) throws IOException {
|
||||
InputStream is = file.getInputStream();
|
||||
String folder = basePath + "/" + IdUtil.simpleUUID();
|
||||
new File(folder).mkdirs();
|
||||
String zipPath = folder + "/" + IdUtil.simpleUUID() + ".zip";
|
||||
String unzipFolder = folder + "/" + IdUtil.simpleUUID();
|
||||
file.transferTo(new File(zipPath));
|
||||
File file1 = ZipUtil.unzip(zipPath, unzipFolder);
|
||||
File unzipFolderFile = ZipUtil.unzip(zipPath, unzipFolder, Charset.forName("gbk"));
|
||||
File[] files = unzipFolderFile.listFiles();
|
||||
if (files.length == 0) {
|
||||
throw new OpenAlertException("上传zip文件为空");
|
||||
}
|
||||
StringBuilder formatSb = new StringBuilder();
|
||||
StringBuilder failSb = new StringBuilder();
|
||||
for (int i = 0; i < files.length; i++) {
|
||||
File f = files[i];
|
||||
traverseFile(f.getAbsolutePath(), formatSb, failSb);
|
||||
}
|
||||
//通知
|
||||
if (SecurityUtils.getUser().getUserId() != null) {
|
||||
String failStr = failSb.toString();
|
||||
if (StrUtil.isNotBlank(failStr)) {
|
||||
failStr = "更新失败>" + failStr;
|
||||
}
|
||||
String formatStr = formatSb.toString();
|
||||
if (StrUtil.isNotBlank(formatStr)) {
|
||||
formatStr = "图片格式不正确>" + formatStr;
|
||||
}
|
||||
String msg = "";
|
||||
if (StrUtil.isNotBlank(failStr + formatStr)) {
|
||||
msg = "失败的信息:" + failStr + formatStr;
|
||||
}
|
||||
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, "更新人员图片成功", "2");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 真正递归的方法
|
||||
*
|
||||
* @param path 根目录的抽象路径
|
||||
*/
|
||||
public void traverseFile(String path, StringBuilder formatSb, StringBuilder failSb) {
|
||||
File file = new File(path);
|
||||
if (file.exists()) {
|
||||
File[] fileArray = file.listFiles();
|
||||
for (File f : fileArray) {
|
||||
if (f.isDirectory()) {
|
||||
System.out.println("【文件夹】-----" + f.getAbsolutePath());
|
||||
// -----递归的方法体
|
||||
traverseFile(f.getAbsolutePath(), formatSb, failSb);
|
||||
} else {
|
||||
System.out.println("【文件】-----" + f.getAbsolutePath());
|
||||
String name = f.getName();
|
||||
//处理
|
||||
//名称_身份证.jpg
|
||||
boolean isMatch = ReUtil.isMatch(".+_.+[.].+", name);
|
||||
if (!isMatch) {
|
||||
formatSb.append(name + ",");
|
||||
continue;
|
||||
}
|
||||
String idCard = name.split("_")[1].split("\\.")[0];
|
||||
String workerName = name.split("_")[0];
|
||||
String suffix = name.split("\\.")[1];
|
||||
String saveName = IdUtil.randomUUID() + "." + suffix;
|
||||
FileUtil.move(f, new File(basePath + "/" + saveName), true);
|
||||
List<WorkerInfo> workerInfos = workerInfoMapper.selectList(new LambdaQueryWrapper<WorkerInfo>()
|
||||
.eq(WorkerInfo::getIdCard, idCard));
|
||||
try {
|
||||
for (WorkerInfo workerInfo : workerInfos) {
|
||||
workerInfo.setFieldAcquisitionUrl(saveName);
|
||||
editWorkerInfo(workerInfo);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
failSb.append(workerName + ":错误原因" + e.getMessage() + ",");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
System.out.println("文件不存在!");
|
||||
}
|
||||
}
|
||||
|
||||
private void addDatas(List<WorkerInfo> infos, String del, ArrayList<GetWorkerInfoByDevVo.Worker> datas) {
|
||||
for (WorkerInfo workerInfo : infos) {
|
||||
GetWorkerInfoByDevVo.Worker worker = new GetWorkerInfoByDevVo.Worker();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user