bug修复
This commit is contained in:
parent
e8a044b1de
commit
d2a26b02ec
@ -1,12 +1,12 @@
|
|||||||
package com.zhgd.xmgl.modules.worker.controller;
|
package com.zhgd.xmgl.modules.worker.controller;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.ZipUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.zhgd.annotation.OperLog;
|
import com.zhgd.annotation.OperLog;
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.redis.annotation.ApiIdempotent;
|
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.WorkerInfo;
|
||||||
import com.zhgd.xmgl.modules.worker.entity.vo.*;
|
import com.zhgd.xmgl.modules.worker.entity.vo.*;
|
||||||
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
|
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
|
||||||
@ -18,13 +18,11 @@ import io.swagger.annotations.ApiOperation;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import springfox.documentation.annotations.ApiIgnore;
|
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.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@ -43,7 +41,9 @@ import java.util.*;
|
|||||||
public class WorkerInfoController {
|
public class WorkerInfoController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private IWorkerInfoService workerInfoService;
|
private IWorkerInfoService workerInfoService;
|
||||||
|
@Autowired
|
||||||
|
@Lazy
|
||||||
|
private RedisRepository redisRepository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加
|
* 添加
|
||||||
@ -653,8 +653,11 @@ public class WorkerInfoController {
|
|||||||
})
|
})
|
||||||
@PostMapping(value = "/uploadWorkerInfoImgs")
|
@PostMapping(value = "/uploadWorkerInfoImgs")
|
||||||
public Result uploadWorkerInfoImgs(MultipartFile file, String projectSn) throws IOException {
|
public Result uploadWorkerInfoImgs(MultipartFile file, String projectSn) throws IOException {
|
||||||
|
if (!redisRepository.setNx("uploadWorkerInfoImgs:projectSn" + projectSn, 1000 * 30L)) {
|
||||||
|
return Result.ok("正在导入中,请耐心等待通知!");
|
||||||
|
}
|
||||||
workerInfoService.uploadWorkerInfoImgs(file, projectSn);
|
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.io.FileUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.text.CharSequenceUtil;
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.*;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import cn.hutool.core.util.ZipUtil;
|
|
||||||
import cn.hutool.poi.excel.ExcelUtil;
|
import cn.hutool.poi.excel.ExcelUtil;
|
||||||
import cn.hutool.poi.excel.ExcelWriter;
|
import cn.hutool.poi.excel.ExcelWriter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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.mapper.SystemUserMapper;
|
||||||
import com.zhgd.xmgl.modules.basicdata.service.ICompanyService;
|
import com.zhgd.xmgl.modules.basicdata.service.ICompanyService;
|
||||||
import com.zhgd.xmgl.modules.basicdata.service.UploadFileService;
|
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.govtapi.GovtOpenApiService;
|
||||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||||
import com.zhgd.xmgl.modules.project.entity.ProjectEnterprise;
|
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.enums.EduTypeEnum;
|
||||||
import com.zhgd.xmgl.modules.worker.mapper.*;
|
import com.zhgd.xmgl.modules.worker.mapper.*;
|
||||||
import com.zhgd.xmgl.modules.worker.service.*;
|
import com.zhgd.xmgl.modules.worker.service.*;
|
||||||
|
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||||
import com.zhgd.xmgl.util.*;
|
import com.zhgd.xmgl.util.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
@ -61,6 +60,7 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
@ -79,6 +79,8 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AsyncJiLianDa asyncJiLianDa;
|
private AsyncJiLianDa asyncJiLianDa;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private NoticeServiceImpl noticeService;
|
||||||
|
@Autowired
|
||||||
private UfaceDevMapper ufaceDevMapper;
|
private UfaceDevMapper ufaceDevMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICompanyService companyService;
|
private ICompanyService companyService;
|
||||||
@ -1982,16 +1984,88 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void uploadWorkerInfoImgs(MultipartFile file, String projectSn) throws IOException {
|
public void uploadWorkerInfoImgs(MultipartFile file, String projectSn) throws IOException {
|
||||||
InputStream is = file.getInputStream();
|
|
||||||
String folder = basePath + "/" + IdUtil.simpleUUID();
|
String folder = basePath + "/" + IdUtil.simpleUUID();
|
||||||
new File(folder).mkdirs();
|
new File(folder).mkdirs();
|
||||||
String zipPath = folder + "/" + IdUtil.simpleUUID() + ".zip";
|
String zipPath = folder + "/" + IdUtil.simpleUUID() + ".zip";
|
||||||
String unzipFolder = folder + "/" + IdUtil.simpleUUID();
|
String unzipFolder = folder + "/" + IdUtil.simpleUUID();
|
||||||
file.transferTo(new File(zipPath));
|
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) {
|
private void addDatas(List<WorkerInfo> infos, String del, ArrayList<GetWorkerInfoByDevVo.Worker> datas) {
|
||||||
for (WorkerInfo workerInfo : infos) {
|
for (WorkerInfo workerInfo : infos) {
|
||||||
GetWorkerInfoByDevVo.Worker worker = new GetWorkerInfoByDevVo.Worker();
|
GetWorkerInfoByDevVo.Worker worker = new GetWorkerInfoByDevVo.Worker();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user