From 136aef9cb83bdfef93f9e15c2c5eb579993ebfc0 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Tue, 31 Aug 2021 11:24:58 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E9=83=A8=E9=97=A8=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jero/common/constant/CommonConstant.java | 2 ++ .../common/system/vo/SysDepartTreeModel.java | 7 ++++--- .../com/jero/common/util/ImportExcelUtil.java | 7 +++---- .../controller/SysDepartController.java | 19 ++++++++++++++--- .../controller/SysPermissionController.java | 5 +++-- .../system/controller/SysUserController.java | 11 +++++----- .../jero/modules/system/entity/SysDepart.java | 21 ++++++++++++------- .../modules/system/entity/SysDictItem.java | 5 ++++- .../modules/system/entity/SysPermission.java | 7 +++++++ .../service/impl/SysDepartServiceImpl.java | 6 +++--- 10 files changed, 62 insertions(+), 28 deletions(-) diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/CommonConstant.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/CommonConstant.java index 04045acd..ba05bb58 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/CommonConstant.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/CommonConstant.java @@ -239,6 +239,8 @@ public interface CommonConstant { public static final String SQL_INDEX_UNIQ_SYS_ROLE_CODE = "uniq_sys_role_role_code"; /** sys_depart 表 code 唯一键索引 */ public static final String SQL_INDEX_UNIQ_DEPART_ORG_CODE = "uniq_depart_org_code"; + /** sys_depart 表 部门名称 唯一键索引 */ + public static final String SQL_INDEX_UNIQ_DEPART_DEPART_NAME = "uniq_depart_depart_name"; /** * 在线聊天 是否为默认分组 */ diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartTreeModel.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartTreeModel.java index 63f30352..221b7212 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartTreeModel.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartTreeModel.java @@ -1,6 +1,7 @@ package com.jero.common.system.vo; import java.io.Serializable; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -41,7 +42,7 @@ public class SysDepartTreeModel implements Serializable{ private String departNameAbbr; - private Integer departOrder; + private BigDecimal departOrder; private String description; @@ -224,11 +225,11 @@ public class SysDepartTreeModel implements Serializable{ this.departNameAbbr = departNameAbbr; } - public Integer getDepartOrder() { + public BigDecimal getDepartOrder() { return departOrder; } - public void setDepartOrder(Integer departOrder) { + public void setDepartOrder(BigDecimal departOrder) { this.departOrder = departOrder; } diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ImportExcelUtil.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ImportExcelUtil.java index 65075d0b..c1d03c8f 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ImportExcelUtil.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ImportExcelUtil.java @@ -69,10 +69,7 @@ public class ImportExcelUtil { public static List importDateSaveOne(Object obj, Class serviceClass,List errorMessage,int i,String errorFlag) { IService bean =(IService) SpringContextUtils.getBean(serviceClass); try { - boolean save = bean.save(obj); - if(!save){ - throw new Exception(errorFlag); - } + bean.save(obj); } catch (Exception e) { String message = e.getMessage().toLowerCase(); int lineNumber = i + 1; @@ -85,6 +82,8 @@ public class ImportExcelUtil { errorMessage.add("第 " + lineNumber + " 行:职务编码已经存在,忽略导入。"); }else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_DEPART_ORG_CODE)) { errorMessage.add("第 " + lineNumber + " 行:部门编码已经存在,忽略导入。"); + }else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_DEPART_DEPART_NAME)) { + errorMessage.add("第 " + lineNumber + " 行:部门名称已经存在,忽略导入。"); }else { errorMessage.add("第 " + lineNumber + " 行:未知错误,忽略导入"); log.error(e.getMessage(), e); diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java index 7e21d935..b250d612 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java @@ -25,6 +25,7 @@ import com.jero.modules.system.service.ISysDepartService; import com.jero.modules.system.service.ISysUserDepartService; import com.jero.modules.system.service.ISysUserService; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.jeecgframework.poi.excel.ExcelImportCheckUtil; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -133,8 +134,15 @@ public class SysDepartController { // FindsDepartsChildrenUtil.clearDepartIdModel(); result.success("添加成功!"); } catch (Exception e) { - log.error(e.getMessage(),e); - result.error500("操作失败"); + String message = e.getMessage().toLowerCase(); + if (message.contains(CommonConstant.SQL_INDEX_UNIQ_DEPART_ORG_CODE)) { + result.error500("部门编码已经存在"); + }else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_DEPART_DEPART_NAME)) { + result.error500("部门名称已经存在"); + }else { + log.error(e.getMessage(),e); + result.error500("操作失败"); + } } return result; } @@ -326,7 +334,7 @@ public class SysDepartController { @RequiresPermissions("sys:depart:import") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) @CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true) - public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + public Result importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException{ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; List errorMessageList = new ArrayList<>(); List listSysDeparts = null; @@ -337,6 +345,11 @@ public class SysDepartController { params.setTitleRows(1); params.setHeadRows(1); params.setNeedSave(true); + //导入Excel格式校验,看匹配的字段文本概率 + Boolean t = ExcelImportCheckUtil.check(file.getInputStream(), SysDepart.class, params); + if(!t){ + return Result.error("导入Excel校验失败 !"); + } try { // orgCode编码长度 int codeLength = YouBianCodeUtil.zhanweiLength; diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysPermissionController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysPermissionController.java index 08c05461..385361cb 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysPermissionController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysPermissionController.java @@ -22,6 +22,7 @@ import com.jero.modules.system.model.TreeModel; import com.jero.modules.system.service.*; import com.jero.modules.system.util.PermissionDataUtil; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.*; @@ -250,7 +251,7 @@ public class SysPermissionController { */ //@RequiresRoles({ "admin" }) @RequestMapping(value = "/add", method = RequestMethod.POST) - public Result add(@RequestBody SysPermission permission) { + public Result add(@RequestBody @Validated SysPermission permission) { Result result = new Result(); try { permission = PermissionDataUtil.intelligentProcessData(permission); @@ -270,7 +271,7 @@ public class SysPermissionController { */ //@RequiresRoles({ "admin" }) @RequestMapping(value = "/edit", method = { RequestMethod.POST, RequestMethod.POST }) - public Result edit(@RequestBody SysPermission permission) { + public Result edit(@RequestBody @Validated SysPermission permission) { Result result = new Result<>(); try { permission = PermissionDataUtil.intelligentProcessData(permission); diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index 88d913fe..1a7c32d5 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -51,6 +51,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -603,12 +604,12 @@ public class SysUserController { params.setTitleRows(1); params.setHeadRows(1); params.setNeedSave(true); + //导入Excel格式校验,看匹配的字段文本概率 + Boolean t = ExcelImportCheckUtil.check(file.getInputStream(), SysUser.class, params); + if(!t){ + return Result.error("导入Excel校验失败 !"); + } try { - //导入Excel格式校验,看匹配的字段文本概率 - Boolean t = ExcelImportCheckUtil.check(file.getInputStream(), SysUser.class, params); - if(!t){ - return Result.error("导入Excel校验失败 !"); - } List listSysUsers = ExcelImportUtil.importExcel(file.getInputStream(), SysUser.class, params); for (int i = 0; i < listSysUsers.size(); i++) { int lineNumber = i + 3; diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java index f440a099..f077373f 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java @@ -8,8 +8,12 @@ import lombok.Data; import com.jero.common.aspect.annotation.Dict; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.format.annotation.NumberFormat; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; import java.util.Objects; @@ -30,6 +34,7 @@ public class SysDepart implements Serializable { @TableId(type = IdType.ASSIGN_ID) private String id; /**父机构ID*/ + @Excel(name="上级部门",width=15,orderNum = "1",dictTable = "sys_depart",dicText = "depart_name",dicCode = "id") private String parentId; /**机构/部门名称*/ @Excel(name="机构/部门名称",width=15) @@ -39,29 +44,31 @@ public class SysDepart implements Serializable { /**缩写*/ private String departNameAbbr; /**排序*/ - @Excel(name="排序",width=15) - private Integer departOrder; + @Excel(name="排序",width=15,orderNum = "4") + @Min(value = 1,message = "排序最小为1,最大为99999") + @Max(value = 99999,message = "排序最小为1,最大为99999") + private BigDecimal departOrder; /**描述*/ @Excel(name="描述",width=15) private String description; /**机构类别 1公司,2组织机构,2岗位*/ - @Excel(name="机构类别",width=15,dicCode="org_category",orderNum = "1") + @Excel(name="机构类别",width=15,dicCode="org_category",orderNum = "3") private String orgCategory; /**机构类型*/ private String orgType; /**机构编码*/ - @Excel(name="机构编码",width=15) + @Excel(name="机构编码",width=15,orderNum = "2") private String orgCode; /**手机号*/ - @Excel(name="电话",width=15,orderNum = "2") + @Excel(name="电话",width=15,orderNum = "5") private String mobile; /**传真*/ private String fax; /**地址*/ - @Excel(name="地址",width=15,orderNum = "3") + @Excel(name="地址",width=15,orderNum = "6") private String address; /**备注*/ - @Excel(name="备注",width=15,orderNum = "4") + @Excel(name="备注",width=15,orderNum = "7") private String memo; /**状态(1启用,0不启用)*/ @Dict(dicCode = "depart_status") diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java index 25e7c724..74786e45 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java @@ -14,6 +14,8 @@ import com.jero.common.aspect.annotation.Dict; import org.jeecgframework.poi.excel.annotation.Excel; import javax.validation.constraints.Digits; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; /** *

@@ -63,7 +65,8 @@ public class SysDictItem implements Serializable { * 排序 */ @Excel(name = "排序", width = 15,type=4) - @Digits(integer = 5,fraction = 2, message = "排序:最大为99999.99") + @Min(value = 1,message = "排序最小为1,最大为99999") + @Max(value = 99999,message = "排序最小为1,最大为99999") private BigDecimal sortOrder; diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysPermission.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysPermission.java index 460e183e..df53d414 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysPermission.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysPermission.java @@ -10,6 +10,10 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import com.jero.common.aspect.annotation.Dict; import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.NumberFormat; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; /** *

@@ -78,6 +82,9 @@ public class SysPermission implements Serializable { /** * 菜单排序 */ + @Min(value = 1,message = "排序最小为1,最大为99999") + @Max(value = 99999,message = "排序最小为1,最大为99999") + @NumberFormat(pattern = "#.00") private Double sortNo; /** diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java index be8394be..58368268 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java @@ -76,7 +76,7 @@ public class SysDepartServiceImpl extends ServiceImpl queryTreeList() { LambdaQueryWrapper query = new LambdaQueryWrapper(); @@ -88,7 +88,7 @@ public class SysDepartServiceImpl extends ServiceImpl queryDepartIdTreeList() { LambdaQueryWrapper query = new LambdaQueryWrapper(); @@ -104,7 +104,7 @@ public class SysDepartServiceImpl extends ServiceImpl