diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java index fe70228..c1b6747 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java @@ -25,7 +25,6 @@ public class BusinessConstants { public final static String FEMALE = "女"; public final static String OTHER = "其他"; - public final static Integer CELL_1 = 1; public final static Integer CELL_2 = 2; public final static Integer CELL_3 = 3; diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/UploadCheckUtils.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/UploadCheckUtils.java index cbc9a69..41866b9 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/UploadCheckUtils.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/UploadCheckUtils.java @@ -2,6 +2,7 @@ package com.bonus.common.core.utils; import org.springframework.web.multipart.MultipartFile; +import sun.net.www.content.image.jpeg; import java.util.Arrays; import java.util.Locale; @@ -20,12 +21,18 @@ public class UploadCheckUtils { * 文件大小 10MB(可用于图片和视频区分) */ public static final long IMG_FILE_SIZE = 10 * 1024 * 1024; + /** + * EXCEL文件大小 100MB + */ + public static final long EXCEL_FILE_SIZE = 100 * 1024 * 1024; /** * 只支持图片格式 */ public static final String[] YES_IMAGE_SUPPORT = {".jpg", ".jpeg", ".png"}; + public static final String[] YES_EXCEL_SUPPORT = {".xlsx", ".xls"}; + /** * 只支持视频格式 */ @@ -97,4 +104,35 @@ public class UploadCheckUtils { return null; } + public static String uploadExcelVerify(MultipartFile multipartFile) { + // 校验文件是否为空 + if (multipartFile == null) { + return "上传文件不能为空"; + } + // 校验文件名字 + String originalFilename = multipartFile.getOriginalFilename(); + if (originalFilename == null) { + return "上传文件名字不能为空"; + } + for (String realKey : FILE_NAME_EXCLUDE) { + if (originalFilename.contains(realKey)) { + return "上传文件名称不允许出现"+realKey+"关键字"; + } + } + // 校验文件后缀 + if (!originalFilename.contains(SUFFIX)) { + return "上传文件不能没有后缀"; + } + String suffix = originalFilename.substring(originalFilename.lastIndexOf('.')); + /*校验: 文件格式是否符合要求*/ + if (!Arrays.asList(YES_EXCEL_SUPPORT).contains(suffix.toLowerCase(Locale.ROOT))) { + return "上传文件格式仅支持" + Arrays.asList(YES_EXCEL_SUPPORT).toString(); + } + Long fileSize = multipartFile.getSize(); + if (fileSize > EXCEL_FILE_SIZE) { + return "上传文件大小仅支持100MB以内"; + } + return null; + } + } diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/controller/PersonMgeController.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/controller/PersonMgeController.java index 7ad4011..35b7667 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/controller/PersonMgeController.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/controller/PersonMgeController.java @@ -1,6 +1,8 @@ package com.bonus.bracelet.controller; import com.bonus.bracelet.service.IPersonMgeService; +import com.bonus.common.core.constant.BusinessConstants; +import com.bonus.common.core.utils.UploadCheckUtils; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.page.TableDataInfo; @@ -10,6 +12,7 @@ import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.enums.OperaType; import com.bonus.common.security.annotation.RequiresPermissions; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -72,6 +75,10 @@ public class PersonMgeController extends BaseController { // @RequiresPermissions("basic:person:excelUpload") @SysLog(title = "人员管理", businessType = OperaType.IMPORT,logType = 0,module = "基础管理->人员管理",details ="人员导入" ) public AjaxResult excelUpload(MultipartFile file, HttpServletRequest request, HttpServletResponse response){ + String result = UploadCheckUtils.uploadExcelVerify(file); + if(StringUtils.isNotBlank(result)){ + return AjaxResult.error(result); + } return service.excelUpload(file, request, response); } } diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/PersonMgeMapper.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/PersonMgeMapper.java index b8e3bdf..53cee39 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/PersonMgeMapper.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/PersonMgeMapper.java @@ -3,6 +3,7 @@ package com.bonus.bracelet.mapper; import com.bonus.common.entity.bracelet.BraceletParamsDto; import com.bonus.common.entity.bracelet.vo.PersonVo; import org.apache.ibatis.annotations.MapKey; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -70,10 +71,22 @@ public interface PersonMgeMapper { /** * 查询人员列表 + * * @param dto * @return List * @author cwchen * @date 2024/7/16 15:45 */ List getPersonLists(BraceletParamsDto dto); + + /** + * 验证安全帽编号、马甲编码是否存在 + * + * @param vo + * @param type + * @return int + * @author cwchen + * @date 2024/7/17 13:27 + */ + int codeIsExist(@Param("params") PersonVo vo, @Param("type") int type); } diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/PersonMgeServiceImpl.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/PersonMgeServiceImpl.java index 7b9e0d4..57a471a 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/PersonMgeServiceImpl.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/PersonMgeServiceImpl.java @@ -99,6 +99,19 @@ public class PersonMgeServiceImpl implements IPersonMgeService { if (idCardIsExist(list, vo, 2)) { return AjaxResult.error("电话已存在"); } + // 验证安全帽编号是否重复、马甲编号是否重复 + if(StringUtils.isNotBlank(vo.getAqmCode())){ + int result = mapper.codeIsExist(vo,1); + if(result > 0){ + return AjaxResult.error("安全帽编号已存在"); + } + } + if(StringUtils.isNotBlank(vo.getMjCode())){ + int result = mapper.codeIsExist(vo,2); + if(result > 0){ + return AjaxResult.error("马甲编号已存在"); + } + } // 校验文件、上传文件 String isVerify = UploadCheckUtils.uploadImgVerify(file); if (StringUtils.isNotBlank(isVerify)) { @@ -140,6 +153,19 @@ public class PersonMgeServiceImpl implements IPersonMgeService { if (idCardIsExist(list, vo, 2)) { return AjaxResult.error("电话已存在"); } + // 验证安全帽编号是否重复、马甲编号是否重复 + if(StringUtils.isNotBlank(vo.getAqmCode())){ + int result = mapper.codeIsExist(vo,1); + if(result > 0){ + return AjaxResult.error("安全帽编号已存在"); + } + } + if(StringUtils.isNotBlank(vo.getMjCode())){ + int result = mapper.codeIsExist(vo,2); + if(result > 0){ + return AjaxResult.error("马甲编号已存在"); + } + } // 校验文件、上传文件 if (StringUtils.isNotBlank(vo.getDelFiles())) { String isVerify = UploadCheckUtils.uploadImgVerify(file); @@ -421,7 +447,7 @@ public class PersonMgeServiceImpl implements IPersonMgeService { String value = map.get(key); if (value.indexOf(",") != -1) { System.out.println(key + " 重复,行: " + value); - errList.add(name + ":" + key + " 重复,重复行: " + value); + errList.add(name + " 重复,重复行: " + value); } } return errList; diff --git a/bonus-modules/bonus-bracelet/src/main/resources/bootstrap.yml b/bonus-modules/bonus-bracelet/src/main/resources/bootstrap.yml index 0090175..7a443d3 100644 --- a/bonus-modules/bonus-bracelet/src/main/resources/bootstrap.yml +++ b/bonus-modules/bonus-bracelet/src/main/resources/bootstrap.yml @@ -3,7 +3,11 @@ server: port: 18086 # Spring -spring: +spring: + servlet: + multipart: + max-file-size: -1 + max-request-size: -1 application: # 应用名称 name: bonus-bracelet diff --git a/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/PersonMgeMapper.xml b/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/PersonMgeMapper.xml index 368c85b..6724b7c 100644 --- a/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/PersonMgeMapper.xml +++ b/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/PersonMgeMapper.xml @@ -99,4 +99,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY tp.create_time + + \ No newline at end of file