From 0f2c1a3e95155243753ff81c81f6196e4d2d994f Mon Sep 17 00:00:00 2001 From: fl <3098731433@qq.com> Date: Wed, 2 Apr 2025 18:37:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E7=94=A8=E4=B8=8A=E4=BC=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=20=E8=BF=9D=E7=AB=A0=E5=A2=9E=E5=88=A0=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SafetyViolationController.java | 94 +++++++ .../imgUpload/dao/SafetyViolationDao.java | 27 ++ .../service/SafetyViolationService.java | 21 ++ .../impl/SafetyViolationServiceImpl.java | 111 +++++++++ .../imgUpload/vo/SafetyViolationVo.java | 129 ++++++++++ .../imgUpload/vo/dto/SafetyViolationDto.java | 124 +++++++++ .../controller/FileUploadController.java | 120 ++++++--- .../imgTool/system/vo/dto/FileStorageDto.java | 94 +++++++ .../bonus/imgTool/utils/FastJsonHelper.java | 149 +++++++++++ .../java/com/bonus/imgTool/utils/IDUtils.java | 8 + src/main/resources/application.properties | 4 +- .../imgUpload/SafetyViolationMapper.xml | 235 ++++++++++++++++++ 12 files changed, 1085 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/bonus/imgTool/imgUpload/controller/SafetyViolationController.java create mode 100644 src/main/java/com/bonus/imgTool/imgUpload/dao/SafetyViolationDao.java create mode 100644 src/main/java/com/bonus/imgTool/imgUpload/service/SafetyViolationService.java create mode 100644 src/main/java/com/bonus/imgTool/imgUpload/service/impl/SafetyViolationServiceImpl.java create mode 100644 src/main/java/com/bonus/imgTool/imgUpload/vo/SafetyViolationVo.java create mode 100644 src/main/java/com/bonus/imgTool/imgUpload/vo/dto/SafetyViolationDto.java create mode 100644 src/main/java/com/bonus/imgTool/system/vo/dto/FileStorageDto.java create mode 100644 src/main/java/com/bonus/imgTool/utils/FastJsonHelper.java create mode 100644 src/main/resources/mappers/imgUpload/SafetyViolationMapper.xml diff --git a/src/main/java/com/bonus/imgTool/imgUpload/controller/SafetyViolationController.java b/src/main/java/com/bonus/imgTool/imgUpload/controller/SafetyViolationController.java new file mode 100644 index 0000000..15f5bd4 --- /dev/null +++ b/src/main/java/com/bonus/imgTool/imgUpload/controller/SafetyViolationController.java @@ -0,0 +1,94 @@ +package com.bonus.imgTool.imgUpload.controller; + +import com.bonus.imgTool.annotation.DecryptAndVerify; +import com.bonus.imgTool.annotation.LogAnnotation; +import com.bonus.imgTool.basic.vo.dto.ProDto; +import com.bonus.imgTool.basic.vo.dto.ProcessDto; +import com.bonus.imgTool.imgUpload.service.SafetyViolationService; +import com.bonus.imgTool.imgUpload.vo.SafetyViolationVo; +import com.bonus.imgTool.imgUpload.vo.dto.SafetyViolationDto; +import com.bonus.imgTool.system.vo.EncryptedReq; +import com.bonus.imgTool.system.vo.UserDto; +import com.bonus.imgTool.utils.ServerResponse; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @author fly + */ +@RestController +@RequestMapping("/imgUpload/safetyViolation/") +@Slf4j +public class SafetyViolationController { + + @Resource + private SafetyViolationService service; + + @GetMapping(value = "getList") + @DecryptAndVerify(decryptedClass = SafetyViolationDto.class)//加解密统一管理 + @LogAnnotation(operModul = "安全违章", operation = "查询列表", operDesc = "系统级事件",operType="查询") +// @PreAuthorize("@pms.hasPermission('sys:safetyViolation:query')" ) + public ServerResponse getList(EncryptedReq data) { + PageHelper.startPage(data.getData().getPage(), data.getData().getLimit()); + try { + List list = service.getList(data.getData()); + PageInfo pageInfo = new PageInfo<>(list); + return ServerResponse.createSuccessPage(pageInfo,data.getData().getPage(),data.getData().getLimit()); + }catch (Exception e){ + log.error(e.toString(),e); + } + return ServerResponse.createErrorPage(data.getData().getPage(),data.getData().getLimit()); + } + + @PostMapping(value = "insertSafetyViolation") + @DecryptAndVerify(decryptedClass = SafetyViolationDto.class)//加解密统一管理 + @LogAnnotation(operModul = "安全违章", operation = "新增数据", operDesc = "系统级事件",operType="新增") +// @PreAuthorize("@pms.hasPermission('sys:safetyViolation:query')" ) + public ServerResponse insertSafetyViolation(EncryptedReq data) { + try { + SafetyViolationDto bean = data.getData(); + return service.insertSafetyViolation(bean); + }catch (Exception e){ + log.error(e.toString(),e); + } + return ServerResponse.createErroe("操作失败"); + } + + @PostMapping(value = "getSafetyViolationById") + @DecryptAndVerify(decryptedClass = SafetyViolationDto.class)//加解密统一管理 + @LogAnnotation(operModul = "安全违章", operation = "查询单个数据", operDesc = "系统级事件",operType="查询") +// @PreAuthorize("@pms.hasPermission('sys:safetyViolation:query')" ) + public ServerResponse getSafetyViolationById(EncryptedReq data) { + try { + SafetyViolationVo safetyViolation = service.getSafetyViolationById(data.getData().getId()); + return ServerResponse.createSuccess(safetyViolation); + }catch (Exception e){ + log.error(e.toString(),e); + } + return ServerResponse.createErroe("操作失败"); + } + + @PostMapping(value = "updateSafetyViolationById") + @DecryptAndVerify(decryptedClass = SafetyViolationDto.class)//加解密统一管理 + @LogAnnotation(operModul = "安全违章", operation = "修改单个数据", operDesc = "系统级事件",operType="修改") +// @PreAuthorize("@pms.hasPermission('sys:safetyViolation:query')" ) + public ServerResponse updateSafetyViolationById(EncryptedReq data) { + try { + SafetyViolationDto bean = data.getData(); + return service.updateSafetyViolationById(bean); + }catch (Exception e){ + log.error(e.toString(),e); + } + return ServerResponse.createErroe("操作失败"); + } + +} diff --git a/src/main/java/com/bonus/imgTool/imgUpload/dao/SafetyViolationDao.java b/src/main/java/com/bonus/imgTool/imgUpload/dao/SafetyViolationDao.java new file mode 100644 index 0000000..dece2de --- /dev/null +++ b/src/main/java/com/bonus/imgTool/imgUpload/dao/SafetyViolationDao.java @@ -0,0 +1,27 @@ +package com.bonus.imgTool.imgUpload.dao; + +import com.bonus.imgTool.basic.vo.dto.ProDto; +import com.bonus.imgTool.imgUpload.vo.SafetyViolationVo; +import com.bonus.imgTool.imgUpload.vo.dto.SafetyViolationDto; +import com.bonus.imgTool.system.vo.dto.FileStorageDto; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SafetyViolationDao { + + List getList(SafetyViolationDto data); + + int insertSafetyViolation(SafetyViolationDto bean); + + int insertImgPhoto(List fileList); + + SafetyViolationVo getSafetyViolationById(Long id); + + List getImgPhotoList(FileStorageDto bean); + + int updateSafetyViolationById(SafetyViolationDto bean); + + int delImgPhoto(List delFileList); +} diff --git a/src/main/java/com/bonus/imgTool/imgUpload/service/SafetyViolationService.java b/src/main/java/com/bonus/imgTool/imgUpload/service/SafetyViolationService.java new file mode 100644 index 0000000..fc1880d --- /dev/null +++ b/src/main/java/com/bonus/imgTool/imgUpload/service/SafetyViolationService.java @@ -0,0 +1,21 @@ +package com.bonus.imgTool.imgUpload.service; + + + +import com.bonus.imgTool.basic.vo.dto.ProDto; +import com.bonus.imgTool.imgUpload.vo.SafetyViolationVo; +import com.bonus.imgTool.imgUpload.vo.dto.SafetyViolationDto; +import com.bonus.imgTool.utils.ServerResponse; + +import java.util.List; + +public interface SafetyViolationService { + + List getList(SafetyViolationDto data); + + ServerResponse insertSafetyViolation(SafetyViolationDto bean); + + SafetyViolationVo getSafetyViolationById(Long id); + + ServerResponse updateSafetyViolationById(SafetyViolationDto bean); +} diff --git a/src/main/java/com/bonus/imgTool/imgUpload/service/impl/SafetyViolationServiceImpl.java b/src/main/java/com/bonus/imgTool/imgUpload/service/impl/SafetyViolationServiceImpl.java new file mode 100644 index 0000000..1c31612 --- /dev/null +++ b/src/main/java/com/bonus/imgTool/imgUpload/service/impl/SafetyViolationServiceImpl.java @@ -0,0 +1,111 @@ +package com.bonus.imgTool.imgUpload.service.impl; + +import com.bonus.imgTool.basic.vo.dto.ProDto; +import com.bonus.imgTool.imgUpload.dao.SafetyViolationDao; +import com.bonus.imgTool.imgUpload.service.SafetyViolationService; +import com.bonus.imgTool.imgUpload.vo.SafetyViolationVo; +import com.bonus.imgTool.imgUpload.vo.dto.SafetyViolationDto; +import com.bonus.imgTool.system.vo.LoginUser; +import com.bonus.imgTool.system.vo.dto.FileStorageDto; +import com.bonus.imgTool.task.job.ProPullTask; +import com.bonus.imgTool.utils.ServerResponse; +import com.bonus.imgTool.utils.UserUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + + +@Service +public class SafetyViolationServiceImpl implements SafetyViolationService { + + private static final Logger log = LoggerFactory.getLogger("SafetyViolationServiceImpl"); + + @Resource + private SafetyViolationDao dao; + + @Override + public List getList(SafetyViolationDto data) { + return dao.getList(data); + } + + @Override + @Transactional + public ServerResponse insertSafetyViolation(SafetyViolationDto bean) { + LoginUser loginUser = UserUtil.getLoginUser(); + bean.setCreateUserId(loginUser.getId()); + bean.setCreateUserName(loginUser.getUsername()); + //基础数据存入库 + int i = dao.insertSafetyViolation(bean); + if (i > 0) { + List fileList = bean.getFileList(); + fileList.forEach(item -> { + item.setSourceId(bean.getId()); + item.setCreateUser(bean.getCreateUserId()); + item.setCreateUserName(bean.getCreateUserName()); + }); + //照片入库 + if (!bean.getFileList().isEmpty()) { + int j = dao.insertImgPhoto(bean.getFileList()); + } + //存入总库 TODO + + return ServerResponse.createSuccess("新增成功"); + } + return ServerResponse.createErroe("新增失败"); + } + + @Override + public SafetyViolationVo getSafetyViolationById(Long id) { + SafetyViolationVo bean = dao.getSafetyViolationById(id); + //照片查询 + FileStorageDto fileStorageDto = new FileStorageDto(); + fileStorageDto.setSourceId(id); + fileStorageDto.setSourceType("1"); + bean.setVioPhotoList(dao.getImgPhotoList(fileStorageDto)); + fileStorageDto.setSourceType("2"); + bean.setRectPhotoList(dao.getImgPhotoList(fileStorageDto)); + return bean; + } + + @Override + public ServerResponse updateSafetyViolationById(SafetyViolationDto bean) { + LoginUser loginUser = UserUtil.getLoginUser(); + bean.setUpdateUserId(loginUser.getId()); + bean.setUpdateUserName(loginUser.getUsername()); + int num = dao.updateSafetyViolationById(bean); + if (num > 0) { + List fileList = bean.getFileList(); + List delFileList = bean.getDelFileList(); + fileList.forEach(item -> { + item.setSourceId(bean.getId()); + item.setCreateUser(bean.getUpdateUserId()); + item.setCreateUserName(bean.getUpdateUserName()); + }); + delFileList.forEach(item -> { + item.setSourceId(bean.getId()); + item.setCreateUser(bean.getUpdateUserId()); + item.setCreateUserName(bean.getUpdateUserName()); + }); + //照片入库 + if (!bean.getFileList().isEmpty()) { + int j = dao.insertImgPhoto(bean.getFileList()); + } + //照片删除 + if (!bean.getDelFileList().isEmpty()) { + int j = dao.delImgPhoto(bean.getDelFileList()); + } + //总库修改 TODO + + return ServerResponse.createSuccess("修改成功"); + } else { + + return ServerResponse.createErroe("修改失败"); + } + } + + +} diff --git a/src/main/java/com/bonus/imgTool/imgUpload/vo/SafetyViolationVo.java b/src/main/java/com/bonus/imgTool/imgUpload/vo/SafetyViolationVo.java new file mode 100644 index 0000000..5045733 --- /dev/null +++ b/src/main/java/com/bonus/imgTool/imgUpload/vo/SafetyViolationVo.java @@ -0,0 +1,129 @@ +package com.bonus.imgTool.imgUpload.vo; + +import com.bonus.imgTool.base.entity.PageEntity; +import com.bonus.imgTool.system.vo.dto.FileStorageDto; +import lombok.Data; + +import java.util.List; + +/** + * SafetyViolations + */ +@Data +public class SafetyViolationVo extends PageEntity { + /** + * 检查人 + */ + private String checkUserName; + /** + * 创建时间 + */ + private String createTime; + /** + * 创建人 + */ + private Long createUserId; + /** + * 创建人姓名 + */ + private String createUserName; + /** + * 数据来源 1.web 2.app + */ + private String dataSource; + /** + * 工序id + */ + private Long gxId; + /** + * 工序名称 + */ + private String gxName; + /** + * id + */ + private long id; + /** + * 是否可用 1.可用 0.不可用 + */ + private String isActive; + /** + * 专业id + */ + private Long majorId; + /** + * 专业名称 + */ + private String majorName; + /** + * 工程id + */ + private Long proId; + /** + * 工程名称 + */ + private String proName; + /** + * 整改期限 + */ + private String rectDate; + /** + * 整改说明 + */ + private String rectDesc; + /** + * 整改状态 0.待整改 1.已整改 + */ + private String rectStatus; + /** + * 整改时间 + */ + private String rectTime; + /** + * 整改人 + */ + private String rectUserName; + /** + * 修改时间 + */ + private String updateTime; + /** + * 修改人 + */ + private Long updateUserId; + /** + * 修改人姓名 + */ + private String updateUserName; + /** + * 违章时间 + */ + private String vioDate; + /** + * 违章描述 + */ + private String vioDesc; + /** + * 违章地点 + */ + private String vioPlace; + /** + * 违章照片数量 + */ + private String vioPhotoNum; + /** + * 整改照片数量 + */ + private String rectPhotoNum; + + /** + * 违章照片 + */ + private List vioPhotoList; + /** + * 整改照片 + */ + private List rectPhotoList; + + +} diff --git a/src/main/java/com/bonus/imgTool/imgUpload/vo/dto/SafetyViolationDto.java b/src/main/java/com/bonus/imgTool/imgUpload/vo/dto/SafetyViolationDto.java new file mode 100644 index 0000000..f41af01 --- /dev/null +++ b/src/main/java/com/bonus/imgTool/imgUpload/vo/dto/SafetyViolationDto.java @@ -0,0 +1,124 @@ +package com.bonus.imgTool.imgUpload.vo.dto; + +import com.bonus.imgTool.base.entity.PageEntity; +import com.bonus.imgTool.system.vo.dto.FileStorageDto; +import lombok.Data; + +import java.time.LocalDate; +import java.util.List; + +/** + * SafetyViolations + */ +@Data +public class SafetyViolationDto extends PageEntity { + /** + * 检查人 + */ + private String checkUserName; + /** + * 创建时间 + */ + private String createTime; + /** + * 创建人 + */ + private Long createUserId; + /** + * 创建人姓名 + */ + private String createUserName; + /** + * 数据来源 1.web 2.app + */ + private String dataSource; + /** + * 工序id + */ + private Long gxId; + /** + * 工序名称 + */ + private String gxName; + /** + * id + */ + private Long id; + /** + * 是否可用 1.可用 0.不可用 + */ + private String isActive; + /** + * 专业id + */ + private Long majorId; + /** + * 专业名称 + */ + private String majorName; + /** + * 工程id + */ + private Long proId; + /** + * 工程名称 + */ + private String proName; + /** + * 整改期限 + */ + private String rectDate; + /** + * 整改说明 + */ + private String rectDesc; + /** + * 整改状态 0.待整改 1.已整改 + */ + private String rectStatus; + /** + * 整改时间 + */ + private String rectTime; + /** + * 整改人 + */ + private String rectUserName; + /** + * 修改时间 + */ + private String updateTime; + /** + * 修改人 + */ + private Long updateUserId; + /** + * 修改人姓名 + */ + private String updateUserName; + /** + * 违章时间 + */ + private String vioDate; + /** + * 违章描述 + */ + private String vioDesc; + /** + * 违章地点 + */ + private String vioPlace; + + + /** + * 文件集合 + */ + private List fileList; + + /** + * 删除文件集合 + */ + private List delFileList; + + +} diff --git a/src/main/java/com/bonus/imgTool/system/controller/FileUploadController.java b/src/main/java/com/bonus/imgTool/system/controller/FileUploadController.java index 93a9384..e694ddd 100644 --- a/src/main/java/com/bonus/imgTool/system/controller/FileUploadController.java +++ b/src/main/java/com/bonus/imgTool/system/controller/FileUploadController.java @@ -1,8 +1,8 @@ package com.bonus.imgTool.system.controller; -import com.bonus.imgTool.utils.DateTimeHelper; -import com.bonus.imgTool.utils.IDUtils; -import com.bonus.imgTool.utils.SystemUtils; +import com.alibaba.fastjson.JSONObject; +import com.bonus.imgTool.system.vo.dto.FileStorageDto; +import com.bonus.imgTool.utils.*; import com.bonus.imgTool.webResult.AjaxResult; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -12,11 +12,17 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.Files; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.List; -import java.util.Map; /** * @className:FileUploadController @@ -26,38 +32,94 @@ import java.util.Map; * @description:文件上传 */ @RestController -@RequestMapping("/common/file/") +@RequestMapping("/sys/file/") @Slf4j public class FileUploadController { + private static final Set imageExtensions = new HashSet<>(Arrays.asList(".jpg", ".jpeg", ".png", ".gif")); + private static long desFileSize = 500; // 目标大小,单位kb + @ApiOperation(value = "文件上传") @PostMapping("uploadFile") - public AjaxResult appUploadFile(@RequestParam(value = "files") MultipartFile[] files) { + public AjaxResult appUploadFile(@RequestParam(value = "files") MultipartFile[] files,@RequestParam(value = "params")String params) { try { - List> fileList = new ArrayList<>(); - for (MultipartFile file : files) { - String fileName = file.getOriginalFilename(); - String suffix = IDUtils.getSuffix(fileName); - String fileMbSize = IDUtils.getFileMbSize(file.getSize()); - String path = File.separator + DateTimeHelper.getNowYMD() + File.separator + IDUtils.createID() + suffix; - String newPath = SystemUtils.getUploadPath() + path; - File uploadFile = new File(newPath); - //生成文件夹 - if (!uploadFile.getParentFile().exists()) { - uploadFile.getParentFile().mkdirs(); - } - // 存入临时文件 - file.transferTo(uploadFile); - Map map = new HashMap<>(); - map.put("filePath", path); - map.put("fileName", fileName); - map.put("fileSize", fileMbSize); - fileList.add(map); + if (files.length == 0) { + return AjaxResult.error("未接收到文件"); } - return AjaxResult.success("上传成功", fileList); + FileStorageDto fileStorageDto = FastJsonHelper.jsonStrToBean(params, FileStorageDto.class); + String uploadType = fileStorageDto.getUploadType(); + String sourceType = fileStorageDto.getSourceType(); + String sourceTypeName = fileStorageDto.getSourceTypeName(); + List fileInfoList = new ArrayList<>(); + for (MultipartFile file : files) { + if (file.isEmpty()) { + //忽略空文件 + continue; + } + //获取文件名 + String originalFilename = file.getOriginalFilename(); + String fileName; + String fileSuffix; + if (originalFilename != null && originalFilename.contains(".")) { + fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")); // 获取文件名 + fileSuffix = originalFilename.substring(originalFilename.lastIndexOf(".")); // 获取后缀 + } else { + // 如果没有".",则表示没有后缀,整个字符串视为文件名 + fileName = originalFilename; + fileSuffix = ""; // 或者根据实际情况设置默认值 + } + //获取文件大小 + Double fileMbSize = IDUtils.getFileMbSizeToDouble(file.getSize()); + // 创建年月/日文件夹 + SimpleDateFormat yearMonthFormat = new SimpleDateFormat("yyyyMM"); + SimpleDateFormat dayFormat = new SimpleDateFormat("dd"); + String yearMonthPath = yearMonthFormat.format(new Date()); + String day = dayFormat.format(new Date()); + //文件新名字 + String path = IDUtils.createID() + fileSuffix; + //文件存储新路径 + String savePath = SystemUtils.getUploadPath() + "/" + yearMonthPath + "/" + day; + File uploadFile = new File(savePath); + //生成文件夹 + if (!uploadFile.exists()) { + uploadFile.mkdirs(); + } + // 存入临时文件(方法1) +// file.transferTo(uploadFile); + // 保存文件(方法2) + byte[] bytes = file.getBytes(); + Path writePath = Paths.get(savePath, path); + Files.write(writePath, bytes); + FileStorageDto fileDto = new FileStorageDto(); + fileDto.setFileType("2"); + // 如果是图片,生成压缩图 + if (imageExtensions.contains(fileSuffix)) { + String compressedPath = SystemUtils.getUploadPath() + "/compressed/" + yearMonthPath + "/" + day; + File compressedFile = new File(compressedPath); + //生成文件夹 + if (!compressedFile.exists()) { + compressedFile.mkdirs(); + } + Path compressedFilePath = Paths.get(compressedPath, "compressed_" + path); + byte[] compressedImageBytes = PicUtils.compressPicForScale(file.getBytes(), desFileSize); + Files.write(compressedFilePath, compressedImageBytes); + fileDto.setCompressFilePath(compressedPath + "/compressed_" + path); + fileDto.setFileType("1"); + } + fileDto.setFileName(fileName); + fileDto.setFileSuffix(fileSuffix); + fileDto.setFileSize(fileMbSize); + fileDto.setOriginalFilePath(savePath+"/"+path); + fileDto.setUploadType(uploadType); + fileDto.setSourceType(sourceType); + fileDto.setSourceTypeName(sourceTypeName); + fileInfoList.add(fileDto); + } + return AjaxResult.success("上传成功", fileInfoList); } catch (Exception e) { log.error(e.toString(), e); - return AjaxResult.error("文件上传异常"); + return AjaxResult.error("文件上传异常",e); } } + } diff --git a/src/main/java/com/bonus/imgTool/system/vo/dto/FileStorageDto.java b/src/main/java/com/bonus/imgTool/system/vo/dto/FileStorageDto.java new file mode 100644 index 0000000..2a05451 --- /dev/null +++ b/src/main/java/com/bonus/imgTool/system/vo/dto/FileStorageDto.java @@ -0,0 +1,94 @@ +package com.bonus.imgTool.system.vo.dto; + +import lombok.Data; + +/** + * @className:FileStorageDto + * @author:fly + * @version:1.0 + * @description:文件存储字段 + */ +@Data +public class FileStorageDto { + + /** + * 文件ID + */ + private Long id; + + /** + * 文件名称(不含后缀) + */ + private String fileName; + + /** + * 文件后缀名(如:.jpg, .png) + */ + private String fileSuffix; + + /** + * 文件大小( Mb单位) + */ + private Double fileSize; + + /** + * 原图图片路径 + */ + private String originalFilePath; + + /** + * 压缩文件路径 + */ + private String compressFilePath; + + /** + * 水印文件路径 + */ + private String watermarkFilePath; + + /** + * 文件类型(文件类型 1.图片 2.文件) + */ + private String fileType; + + /** + * 资源id(安全违章ID、质量检查ID、3.安全措施落实ID、协调照片ID、重要事项及宣传照片ID) + */ + private Long sourceId; + + /** + * 上传类型 1.安全违章、2.质量检查、3.安全措施落实、4.协调照片、5.重要事项及宣传照片 + */ + private String uploadType; + + /** + * 照片类型阶段id + */ + private String sourceType; + + /** + * 照片类型阶段名称 + */ + private String sourceTypeName; + + /** + * 创建时间 + */ + private String createTime; + + /** + * 创建用户ID + */ + private Long createUser; + + /** + * 创建用户名 + */ + private String createUserName; + + /** + * 是否激活(1: 是, 0: 否) + */ + private Integer isActive; + +} diff --git a/src/main/java/com/bonus/imgTool/utils/FastJsonHelper.java b/src/main/java/com/bonus/imgTool/utils/FastJsonHelper.java new file mode 100644 index 0000000..671b5c6 --- /dev/null +++ b/src/main/java/com/bonus/imgTool/utils/FastJsonHelper.java @@ -0,0 +1,149 @@ +package com.bonus.imgTool.utils; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +import java.util.List; + +/** + * @author fly + * @version 1 + * json与jsonArray所有自定义bean嵌套的相关操作 + * 将fastjson2简单的封装和添加注释而成 + * + * com.alibaba.fastjson + * fastjson2 + * 2.0.30 + * + * 修改时间:2021-09-30 + */ +public class FastJsonHelper { + + /** + * 将任意bean转换成json字符串 + * fastjson2 + * @param bean + * @param + * @return + */ + public static String beanToJsonStr(T bean) { + return JSON.toJSONString(bean); + } + + /** + * 把一个json字符串转换成bean对象 + * fastjson2 + * @param str + * @param + * @return + */ + public static T jsonStrToBean(String str, Class clazz) { + return JSON.parseObject(str, clazz); + } + + /** + * 把一个jsonObj转换成bean对象 + * fastjson2 + * @param jsonObj + * @param + * @return + */ + public static T jsonObjToBean(JSONObject jsonObj, Class clazz) { + return jsonObj.toJavaObject(clazz); + } + + /** + * 把一个bean对象转换成jsonObj + * fastjson2 + * @param bean + * @param + * @return + */ + public static JSONObject beanToJsonObj(T bean) { + return (JSONObject) JSON.toJSON(bean); + } + + /** + * 把一个jsonStr转换成jsonObj + * fastjson2 + * @param str + * @return + */ + public static JSONObject jsonStrToJsonObj(String str) { + return JSON.parseObject(str); + } + + /** + * 把一个jsonObj转换成jsonStr + * fastjson2 + * @param jsonObj + * @return + */ + public static String jsonObjToJsonStr(JSONObject jsonObj) { + return jsonObj.toJSONString(); + } + + /** + * 把一个beanList对象转换成jsonArrStr + * fastjson2 + * @param beanList + * @param + * @return + */ + public static String beanListToJsonArrStr(List beanList) { + JSONArray jsonArray = (JSONArray) JSON.toJSON(beanList); + return jsonArray.toJSONString(); + } + + /** + * 把一个jsonArrStr转换成beanList对象 + * fastjson2 + * @param jsonArrStr + * @param + * @return + */ + public static List jsonArrStrToBeanList(String jsonArrStr, Class clazz) { + return JSON.parseArray(jsonArrStr, clazz); + } + + /** + * 把一个JsonArr转换成JsonArrStr + * fastjson2 + * @param jsonArr + * @return + */ + public static String jsonArrToJsonArrStr(JSONArray jsonArr) { + return jsonArr.toJSONString(); + } + + /** + * 把一个JsonArrStr文本转换成JsonArr + * fastjson2 + * @param jsonArrStr + * @return + */ + public static JSONArray jsonArrStrToJsonArr(String jsonArrStr) { + return JSON.parseArray(jsonArrStr); + } + + /** + * 把一个JsonArr转换成beanList + * fastjson2 + * @param jsonArr + * @return + */ + public static List jsonArrToBeanList(JSONArray jsonArr, Class clazz) { + return jsonArr.toJavaList(clazz); + } + + /** + * 把一个beanList文本转换成JsonArr + * fastjson2 + * @param beanList + * @return + */ + public static JSONArray beanListToJsonArr(List beanList) { + return (JSONArray) JSON.toJSON(beanList); + } +} diff --git a/src/main/java/com/bonus/imgTool/utils/IDUtils.java b/src/main/java/com/bonus/imgTool/utils/IDUtils.java index 502ee32..230d52a 100644 --- a/src/main/java/com/bonus/imgTool/utils/IDUtils.java +++ b/src/main/java/com/bonus/imgTool/utils/IDUtils.java @@ -40,4 +40,12 @@ public class IDUtils { return String.format("%.2f", mb); } + public static Double getFileMbSizeToDouble(long bytes){ + double mb = bytes / (1024.0 * 1024.0); + System.out.println("文件大小: " + String.format("%.2f MB", mb)); + double scale = Math.pow(10, 2); // 想保留几位小数,这里的2就是保留两位小数 + double result = Math.round(mb * scale) / scale; + return result; + } + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index defe2a5..bf9ae81 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -46,8 +46,8 @@ zhly.aq.file.html=login.html,index.html,pages/user/updateMyself.html,pages/user/ #mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl mybatis.configuration.mapUnderscoreToCamelCase=true -file.windwos.upload_path=L:/imgTool/files/ -file.linux.upload_path=L:/imgTool/files/ +file.windwos.upload_path=D:/files/imgTool +file.linux.upload_path=/data/imgTool #???? quartz.scan=false diff --git a/src/main/resources/mappers/imgUpload/SafetyViolationMapper.xml b/src/main/resources/mappers/imgUpload/SafetyViolationMapper.xml new file mode 100644 index 0000000..97e4e1d --- /dev/null +++ b/src/main/resources/mappers/imgUpload/SafetyViolationMapper.xml @@ -0,0 +1,235 @@ + + + + + + INSERT INTO tb_safety_violations + ( + pro_id, + pro_name, + major_id, + major_name, + gx_id, + gx_name, + check_user_name, + vio_date, + vio_place, + vio_desc, + rect_date, + rect_user_name, + rect_time, + rect_desc, + rect_status, + data_source, + create_user_id, + create_user_name, + create_time + )values ( + #{proId}, + #{proName}, + #{majorId}, + #{majorName}, + #{gxId}, + #{gxName}, + #{checkUserName}, + #{vioDate}, + #{vioPlace}, + #{vioDesc}, + #{rectDate}, + #{rectUserName}, + #{rectTime}, + #{rectDesc}, + #{rectStatus}, + #{dataSource}, + #{createUserId}, + #{createUserName}, + #{createTime} + ) + + + + INSERT INTO sys_file_resource + ( + file_name, + file_suffix, + file_size, + original_file_path, + compress_file_path, + file_type, + source_id, + upload_type, + source_type, + source_type_name, + create_user, + create_user_name + )values + + ( + #{item.fileName}, + #{item.fileSuffix}, + #{item.fileSize}, + #{item.originalFilePath}, + #{item.compressFilePath}, + #{item.fileType}, + #{item.sourceId}, + #{item.uploadType}, + #{item.sourceType}, + #{item.sourceTypeName}, + #{item.createUser}, + #{item.createUserName} + ) + + + + + UPDATE tb_safety_violations + + + pro_id = #{proId}, + + + pro_name = #{proName}, + + + major_id = #{majorId}, + + + major_name = #{majorName}, + + + gx_id = #{gxId}, + + + gx_name = #{gxName}, + + + check_user_name = #{checkUserName}, + + + vio_date = #{vioDate}, + + + vio_place = #{vioPlace}, + + + vio_desc = #{vioDesc}, + + + rect_date = #{rectDate}, + + + rect_user_name = #{rectUserName}, + + + rect_time = #{rectTime}, + + + rect_desc = #{rectDesc}, + + + rect_status = #{rectStatus}, + + + data_source = #{dataSource}, + + + update_user_id = #{updateUserId}, + + + update_user_name = #{updateUserName} + + + where id = #{id} + + + update sys_file_resource set is_active = '0' + WHERE id IN + + #{item.id} + + + + + + + + + +