From 7c1ce3d46e9825cb1eae0d412d90f6a4129999bf Mon Sep 17 00:00:00 2001 From: guo Date: Thu, 14 Dec 2023 15:51:12 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/UploadFileServiceImpl.java | 130 +----------------- .../controller/UfaceDevApiController.java | 8 +- .../entity/vo/GetWorkerInfoByDevVo.java | 5 +- .../entity/vo/UploadAttendanceByDevDto.java | 5 - .../impl/WorkerAttendanceServiceImpl.java | 17 ++- .../service/impl/WorkerInfoServiceImpl.java | 15 +- .../application-gsx-other-env-show.properties | 2 +- 7 files changed, 36 insertions(+), 146 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/UploadFileServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/UploadFileServiceImpl.java index 0e31ce8c3..79eedb407 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/UploadFileServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/UploadFileServiceImpl.java @@ -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 uploadImage(MultipartFile[] files) throws Exception { Map result = new HashMap<>(); - //String separator = File.separator; String path = null; String savePath = null; - //String imageUrl = PropertiesUtils.getValue("imageUrl"); List> 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 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 uploadBase64Image(String base64Data) { Map 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 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 companyImage(MultipartFile file, String companySn) { - Map 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 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; - }*/ - - /** * 异步文件上传 */ diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/UfaceDevApiController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/UfaceDevApiController.java index 4b34ec7fc..68cf7a470 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/UfaceDevApiController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/UfaceDevApiController.java @@ -25,14 +25,14 @@ public class UfaceDevApiController { @ApiOperation(value = "下载白名单(拉取允许通行人员信息)", notes = "下载白名单(拉取允许通行人员信息)", httpMethod = "GET") @GetMapping(value = "/service-address/workers") - public Result 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 uploadAttendanceByDev(@RequestBody UploadAttendanceByDevDto dto) { - return Result.success(workerAttendanceService.uploadAttendanceByDev(dto)); + public GetWorkerInfoByDevVo uploadAttendanceByDev(@RequestBody UploadAttendanceByDevDto dto) { + return workerAttendanceService.uploadAttendanceByDev(dto); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/GetWorkerInfoByDevVo.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/GetWorkerInfoByDevVo.java index f3b4bbecf..f6ca19bc1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/GetWorkerInfoByDevVo.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/GetWorkerInfoByDevVo.java @@ -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; } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/UploadAttendanceByDevDto.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/UploadAttendanceByDevDto.java index 12291a9a5..45b087cda 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/UploadAttendanceByDevDto.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/UploadAttendanceByDevDto.java @@ -10,11 +10,6 @@ public class UploadAttendanceByDevDto { */ @ApiModelProperty("图片base64编码 (没有文件类型的头)") private String base64; - /** - * 项目编号 - */ - @ApiModelProperty("项目编号") - private String projectId; /** * 设备编号 */ diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java index 7540827b5..deea2bc90 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceServiceImpl.java @@ -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 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 rtMap = new HashMap<>(); + if (fileInfo != null) { + rtMap.put("path", serverUrl + "/image/" + fileInfo.getUrl()); + vo.setData(rtMap); + } vo.setEvent("photo"); return vo; } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index 4215ec21a..c9af817fd 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -306,6 +306,12 @@ public class WorkerInfoServiceImpl extends ServiceImpl() + .eq(WorkerInfoDelete::getProjectSn, workerInfo.getProjectSn()) + .eq(WorkerInfoDelete::getIdCard, workerInfo.getIdCard()) + ); return workerInfo; } @@ -387,6 +393,11 @@ public class WorkerInfoServiceImpl extends ServiceImpl workerInfos = workerInfoMapper.selectList(new LambdaQueryWrapper() @@ -1916,7 +1927,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl