bug修复

This commit is contained in:
guo 2023-12-14 15:51:12 +08:00
parent a7442c177e
commit 7c1ce3d46e
7 changed files with 36 additions and 146 deletions

View File

@ -20,8 +20,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.*;
@ -48,35 +46,14 @@ public class UploadFileServiceImpl implements UploadFileService {
@Override
public Map<String, Object> uploadImage(MultipartFile[] files) throws Exception {
Map<String, Object> result = new HashMap<>();
//String separator = File.separator;
String path = null;
String savePath = null;
//String imageUrl = PropertiesUtils.getValue("imageUrl");
List<Map<String, Object>> datalist = new ArrayList<>();
try {
for (MultipartFile file : files) {
// 文件原始扩展名
/* String uuid = UUID.randomUUID().toString();
String oldname = file.getOriginalFilename();
String fileExtension = StringUtils.substringAfter(file.getOriginalFilename(), ".");
String newFileName = uuid + "." + fileExtension;
log.info("----文件名---"+oldname+",类型----"+fileExtension);
path = basePath + newFileName;
//String completeUrl = imageUrl + newFileName;
File localfile = new File(path);
// 判断文件夹是否存在如果不存在则创建文件夹
*//*if (!localfile.exists()) {
//localfile.mkdir();
FileUtils.touch(localfile);
}*//*
file.transferTo(localfile);*/
//FileInfo fileInfo=fileService.upload(file);
FileInfo fileInfo = fileStorageService.of(file).upload();
Map<String, Object> dataMap = new HashMap<>();
/*dataMap.put("imageUrl", newFileName);
dataMap.put("filename", oldname);*/
dataMap.put("imageUrl", fileInfo.getFilename());
dataMap.put("filename", fileInfo.getFilename());
dataMap.put("fileInfo", fileInfo);
@ -98,41 +75,6 @@ public class UploadFileServiceImpl implements UploadFileService {
public Map<String, Object> uploadBase64Image(String base64Data) {
Map<String, Object> result = new HashMap<>();
try {
/*String dataPrix = "";
String data = "";
//String imageUrl = PropertiesUtils.getValue("imageUrl");
String uuid = UUID.randomUUID().toString();
if (base64Data == null || "".equals(base64Data)) {
throw new Exception(MessageUtil.get("uploadEmptyErr"));
} else {
String[] d = base64Data.split("base64,");
if (d != null && d.length == 2) {
dataPrix = d[0];
data = d[1];
} else {
throw new Exception(MessageUtil.get("uploadDataErr"));
}
}
String suffix = "";
if ("data:image/jpeg;".equalsIgnoreCase(dataPrix)) {// data:image/jpeg;base64,base64编码的jpeg图片数据
suffix = ".jpg";
} else if ("data:image/x-icon;".equalsIgnoreCase(dataPrix)) {// data:image/x-icon;base64,base64编码的icon图片数据
suffix = ".ico";
} else if ("data:image/gif;".equalsIgnoreCase(dataPrix)) {// data:image/gif;base64,base64编码的gif图片数据
suffix = ".gif";
} else if ("data:image/png;".equalsIgnoreCase(dataPrix)) {// data:image/png;base64,base64编码的png图片数据
suffix = ".png";
} else if ("data:image/jpg;".equalsIgnoreCase(dataPrix)) {// data:image/png;base64,base64编码的png图片数据
suffix = ".jpg";
} else {
throw new Exception(MessageUtil.get("uploadFileFormatErr"));
}
String newFileName = uuid + suffix;
//log.info("data-------" + data);
//data = data.replaceAll(" ", "+");
generateImage(data, basePath + newFileName);*/
FileInfo fileInfo = uploadFileBase64Image(base64Data);
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("imageUrl", fileInfo.getUrl());
@ -155,10 +97,8 @@ public class UploadFileServiceImpl implements UploadFileService {
throw new RuntimeException(MessageUtil.get("uploadEmptyErr"));
} else {
String[] d = base64Data.split("base64,");
if (d != null && d.length == 2) {
if (d.length == 2) {
dataPrix = d[0];
} else {
throw new OpenAlertException(MessageUtil.get("uploadDataErr"));
}
}
String suffix = "";
@ -173,13 +113,12 @@ public class UploadFileServiceImpl implements UploadFileService {
} else if ("data:image/jpg;".equalsIgnoreCase(dataPrix)) {// data:image/png;base64,base64编码的png图片数据
suffix = ".jpg";
} else {
throw new RuntimeException(MessageUtil.get("uploadFileFormatErr"));
//没有前缀的base64图片加前缀
base64Data = "data:image/jpeg;base64," + base64Data;
suffix = ".jpeg";
}
String newFileName = uuid + suffix;
//fileInfo.setOriginalFilename(newFileName);
MultipartFile file = FileUtil.base64toMultipart(base64Data, newFileName);
fileInfo = fileStorageService.of(file).upload();
return fileInfo;
}
@ -218,67 +157,6 @@ public class UploadFileServiceImpl implements UploadFileService {
throw new RuntimeException("转码错误!");
}
public static boolean generateImage(String imgStr, String path) {
if (imgStr == null) {
return false;
}
Base64.Decoder decoder = Base64.getMimeDecoder();
//BASE64Decoder decoder = new BASE64Decoder();
try {
//byte[] b = decoder.decodeBuffer(imgStr);
byte[] b = decoder.decode(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
OutputStream out = new FileOutputStream(path);
out.write(b);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}
/*@Override
public Map<String, Object> companyImage(MultipartFile file, String companySn) {
Map<String, Object> result = new HashMap<>();
String path = null;
try {
String tempBasePath=basePath+"/"+companySn;
File pathFile = new File(tempBasePath);
if (!pathFile.exists()) {
pathFile.mkdirs();
}
// 文件原始扩展名
String uuid = UUID.randomUUID().toString();
String oldname = file.getOriginalFilename();
String fileExtension = StringUtils.substringAfter(file.getOriginalFilename(), ".");
String newFileName = uuid + "." + fileExtension;
path = tempBasePath + newFileName;
File localfile = new File(path);
// 判断文件夹是否存在如果不存在则创建文件夹
*//*if (!localfile.exists()) {
//localfile.mkdir();
FileUtils.touch(localfile);
}*//*
file.transferTo(localfile);
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("imageUrl", companySn+"/"+newFileName);
dataMap.put("filename", oldname);
result.put("status", "SUCCESS");
result.put("data", dataMap);
} catch (Exception ex) {
ex.printStackTrace();
}
return result;
}*/
/**
* 异步文件上传
*/

View File

@ -25,14 +25,14 @@ public class UfaceDevApiController {
@ApiOperation(value = "下载白名单(拉取允许通行人员信息)", notes = "下载白名单(拉取允许通行人员信息)", httpMethod = "GET")
@GetMapping(value = "/service-address/workers")
public Result<GetWorkerInfoByDevVo> getWorkerInfoByDev(GetWorkerInfoByDevDto dto) {
return Result.success(workerInfoService.getWorkerInfoByDev(dto));
public GetWorkerInfoByDevVo getWorkerInfoByDev(GetWorkerInfoByDevDto dto) {
return workerInfoService.getWorkerInfoByDev(dto);
}
@ApiOperation(value = "考勤照片上传", notes = "考勤照片上传", httpMethod = "POST")
@PostMapping(value = "/service-address/photo")
public Result<GetWorkerInfoByDevVo> uploadAttendanceByDev(@RequestBody UploadAttendanceByDevDto dto) {
return Result.success(workerAttendanceService.uploadAttendanceByDev(dto));
public GetWorkerInfoByDevVo uploadAttendanceByDev(@RequestBody UploadAttendanceByDevDto dto) {
return workerAttendanceService.uploadAttendanceByDev(dto);
}

View File

@ -1,6 +1,9 @@
package com.zhgd.xmgl.modules.worker.entity.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -38,10 +41,8 @@ public class GetWorkerInfoByDevVo {
@JsonProperty("photo")
private String photo;
@ApiModelProperty("项目id项目sn")
@JsonProperty("photo")
private String projectId;
@ApiModelProperty("0 修改过的数据 1 删除的数据")
@JsonProperty("photo")
private String del;
}

View File

@ -10,11 +10,6 @@ public class UploadAttendanceByDevDto {
*/
@ApiModelProperty("图片base64编码 (没有文件类型的头)")
private String base64;
/**
* 项目编号
*/
@ApiModelProperty("项目编号")
private String projectId;
/**
* 设备编号
*/

View File

@ -1080,11 +1080,14 @@ status 状态码 String 1表示成功其余表示失败
WorkerAttendance attendance = new WorkerAttendance();
attendance.setPersonSn(workerInfo.getPersonSn());
attendance.setPassType(getPassType(dto.getDirection()));
attendance.setCreateTime(DateUtil.formatDateTime(new Date(dto.getTime())));
attendance.setCreateTime(DateUtil.formatDateTime(new Date(Long.valueOf(dto.getTime()))));
attendance.setProjectSn(workerInfo.getProjectSn());
attendance.setCardType(getCardType(dto.getType()));
FileInfo fileInfo = uploadFileService.uploadFileBase64Image(dto.getBase64());
attendance.setImageUrl(fileInfo.getUrl());
FileInfo fileInfo = null;
if (StringUtils.isNotBlank(dto.getBase64())) {
fileInfo = uploadFileService.uploadFileBase64Image(dto.getBase64());
attendance.setImageUrl(fileInfo.getUrl());
}
attendance.setAttendanceType(1);
attendance.setPassagewayName(dev.getDevName());
attendance.setAttendanceStatus(1);
@ -1093,14 +1096,16 @@ status 状态码 String 1表示成功其余表示失败
attendance.setIsStatistics(1);
baseMapper.insert(attendance);
HashMap<String, String> rtMap = new HashMap<>();
rtMap.put("path", serverUrl + "/image/" + fileInfo.getUrl());
GetWorkerInfoByDevVo vo = new GetWorkerInfoByDevVo();
vo.setSuccess(true);
vo.setCode(0);
vo.setMessage("success");
vo.setTime(System.currentTimeMillis() / 1000);
vo.setData(rtMap);
HashMap<String, String> rtMap = new HashMap<>();
if (fileInfo != null) {
rtMap.put("path", serverUrl + "/image/" + fileInfo.getUrl());
vo.setData(rtMap);
}
vo.setEvent("photo");
return vo;
}

View File

@ -306,6 +306,12 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
govtOpenApiService.workerInfoAddSync(workerInfo);
}
asyncJiLianDa.saveWorkerInfo(workerInfo);
//删除人员删除表的记录
workerInfoDeleteMapper.delete(new LambdaQueryWrapper<WorkerInfoDelete>()
.eq(WorkerInfoDelete::getProjectSn, workerInfo.getProjectSn())
.eq(WorkerInfoDelete::getIdCard, workerInfo.getIdCard())
);
return workerInfo;
}
@ -387,6 +393,11 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
govtOpenApiService.workerInfoDelSync(workerInfo);
}
asyncJiLianDa.removeWorkerInfo(workerInfo);
//添加到人员删除表中
WorkerInfoDelete entity = new WorkerInfoDelete();
BeanUtil.copyProperties(workerInfo, entity);
workerInfoDeleteMapper.insert(entity);
}
private void checkExistAccount(String id) {
@ -1885,7 +1896,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
}
String update = null;
if (StringUtils.isNotBlank(dto.getUpdate())) {
update = DateUtil.formatDateTime(new Date(Long.valueOf(dto.getUpdate())));
update = DateUtil.formatDateTime(new Date(Long.valueOf(dto.getUpdate()) * 1000));
}
String projectSn = dev.getProjectSn();
List<WorkerInfo> workerInfos = workerInfoMapper.selectList(new LambdaQueryWrapper<WorkerInfo>()
@ -1916,7 +1927,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
getWorkerInfoByDevVo.setSuccess(true);
getWorkerInfoByDevVo.setCode(0);
getWorkerInfoByDevVo.setMessage("success");
getWorkerInfoByDevVo.setTime(null);
getWorkerInfoByDevVo.setTime(System.currentTimeMillis() / 1000);
getWorkerInfoByDevVo.setData(datas);
getWorkerInfoByDevVo.setEvent("workers");
return getWorkerInfoByDevVo;

View File

@ -28,7 +28,7 @@ video.alarm.newUrl=223.82.100.80:6040
wx-appid=
wx-AppSecret=
mqtt-scope=zjsjTopic
serverUrl=http://192.168.34.221:30002
serverUrl=http://192.168.34.221:19111
#serverUrl=http://182.90.224.237:7000
#serverUrl=http://127.0.0.1:6023
#\u89C6\u9891\u5206\u6790url