From c98b653dd115a681feab21a794eb5e2330cc8e5d Mon Sep 17 00:00:00 2001 From: wangbing <1919101440@qq.com> Date: Thu, 21 Nov 2019 00:13:17 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/action/GlobalController.java | 51 +----------- .../SpringBoot/java/action/ajax/Ajax.java | 33 +++++--- .../java/action/ajax/system/DictAjax.java | 13 ++-- .../java/action/ajax/system/DictItemAjax.java | 77 +++++++++---------- .../SpringBoot/java/config/TaskConfig.java | 4 +- .../SpringBoot/java/frame/excel/WColumn.java | 34 ++++---- .../SpringBoot/java/frame/excel/WSheet.java | 12 ++- .../frame/excel/annotation/ColumnName.java | 17 ++-- .../SpringBoot/java/module/ent/entity.ftl | 12 +++ .../SpringBoot/java/module/mpr/mapper.ftl | 1 - .../java/module/system/ent/Dict.java | 2 +- .../java/module/system/ent/DictItem.java | 14 ++++ .../module/system/mpr/DictItemMapper.java | 2 +- .../java/module/system/mpr/DictItemMapper.xml | 2 - .../java/module/system/mpr/DictMapper.java | 2 +- .../java/module/system/mpr/DictMapper.xml | 1 - .../system/req/DictItemCreateRequest.java | 6 +- .../system/req/DictItemUpdateRequest.java | 15 +--- .../resources/templates/control/nav.ftl | 6 +- .../resources/templates/screen/home.ftl | 10 +-- .../resources/templates/screen/index.ftl | 8 +- 21 files changed, 155 insertions(+), 167 deletions(-) diff --git a/src/main/resources/modules/SpringBoot/java/action/GlobalController.java b/src/main/resources/modules/SpringBoot/java/action/GlobalController.java index ca1d4680..603d7852 100644 --- a/src/main/resources/modules/SpringBoot/java/action/GlobalController.java +++ b/src/main/resources/modules/SpringBoot/java/action/GlobalController.java @@ -224,32 +224,6 @@ public class GlobalController implements ErrorController { return layout; } - @RequestMapping("/upload") - @ResponseBody - public BaseResponse upload(HttpServletRequest request) { - FileUploadResponse fileUploadResponse = new FileUploadResponse(); - MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; - MultipartFile target = multipartHttpServletRequest.getFile("file"); - - String fileName = target.getOriginalFilename(); - - //======== - //处理文件 - //======== - fileUploadResponse.setId(1L); - fileUploadResponse.setUrl("example.com\\img\\1.jpg"); - fileUploadResponse.setDownloadUrl("example.com\\img\\1.jpg"); - - - if (target != null) { - fileUploadResponse.addError(ErrorType.BUSINESS_ERROR, "文件上传成功,但未处理文件[" + fileName + "]!"); - } else { - fileUploadResponse.addError(ErrorType.BUSINESS_ERROR, "文件上传失败!"); - } - - return fileUploadResponse; - } - @RequestMapping("/ajax/{module}/{target}/{method}") @ResponseBody public Object ajax( @@ -300,42 +274,23 @@ public class GlobalController implements ErrorController { } return methodC.invoke(ajax, arg); } catch (BeansException e) { + e.printStackTrace(); BaseResponse baseResponse = new BaseResponse(); baseResponse.addError(ErrorType.BUSINESS_ERROR, "未找到对应的目标!"); return baseResponse; } catch (IllegalAccessException e) { + e.printStackTrace(); BaseResponse baseResponse = new BaseResponse(); baseResponse.addError(ErrorType.BUSINESS_ERROR, "方法执必须公开!"); return baseResponse; } catch (InvocationTargetException e) { + e.getTargetException().printStackTrace(); BaseResponse baseResponse = new BaseResponse(); baseResponse.addError(ErrorType.BUSINESS_ERROR, "方法执行错误[" + e.getTargetException().getMessage() + "]"); return baseResponse; } } - @RequestMapping("/download") - @ResponseBody - public ResponseEntity download(@RequestParam(value = "file", required = false) String file) throws IOException { - - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); - - //======== - //下载DEMO - //======== - if (file == null) { - file = "test.txt"; - headers.setContentDispositionFormData("attachment", new String(file.getBytes("UTF-8"), "iso-8859-1")); - return new ResponseEntity("test".getBytes(), - headers, HttpStatus.CREATED); - } - - return new ResponseEntity(FileUtil.readFileToByteArray(new File(file)), - headers, HttpStatus.CREATED); - } - - private static ConcurrentHashMap sseMap = new ConcurrentHashMap(); /** diff --git a/src/main/resources/modules/SpringBoot/java/action/ajax/Ajax.java b/src/main/resources/modules/SpringBoot/java/action/ajax/Ajax.java index b95b1fbe..e6cc89a8 100644 --- a/src/main/resources/modules/SpringBoot/java/action/ajax/Ajax.java +++ b/src/main/resources/modules/SpringBoot/java/action/ajax/Ajax.java @@ -1,22 +1,25 @@ package ${basePackage}.action.ajax.${module}; +import com.fasterxml.jackson.core.TreeNode; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.multipart.MultipartFile; +import ${basePackage}.frame.excel.WSheet; +import ${basePackage}.frame.utils.LogUtil; import ${basePackage}.frame.auth.LocalData; +import ${basePackage}.frame.base.ErrorType; import ${basePackage}.frame.utils.MapperUtil; +import ${basePackage}.frame.base.BaseResponse; import ${basePackage}.frame.utils.ResponseUtil; -import ${basePackage}.module.${module}.mgr.${table.getCName()}Manager; +import ${basePackage}.frame.utils.ValidationUtil; +import ${basePackage}.frame.excel.exception.ReadErrorException; +import ${basePackage}.frame.excel.exception.TemplateNotMatchException; import ${basePackage}.module.${module}.ent.${table.getCName()}; +import ${basePackage}.module.${module}.mgr.${table.getCName()}Manager; import ${basePackage}.module.${module}.req.*; import ${basePackage}.module.${module}.rsp.*; -import ${basePackage}.frame.base.BaseResponse; -import ${basePackage}.frame.base.ErrorType; -import ${basePackage}.frame.excel.WSheet; -import ${basePackage}.frame.excel.exception.ReadErrorException; -import ${basePackage}.frame.excel.exception.TemplateNotMatchException; -import com.fasterxml.jackson.core.TreeNode; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.List; public class ${table.getCName()}Ajax{ @@ -89,14 +92,22 @@ public class ${table.getCName()}Ajax{ public Object imports(MultipartFile file) { BaseResponse baseResponse = new BaseResponse(); try { - WSheet<${table.getCName()}> sheet = new WSheet<>(file.getBytes(), ${table.getCName()}.class); + WSheet<${table.getCName()}> sheet = new WSheet<>(file.getBytes(), ${table.getCName()}.class, new WSheet.Validator<${table.getCName()}>() { + @Override + public List validate(${table.getCName()} o) { + ${table.getCName()}CreateRequest request = MapperUtil.map(o, ${table.getCName()}CreateRequest.class); + return ValidationUtil.validate(request); + } + }); if (sheet.hasError()) { - return ResponseUtil.apply(sheet.getBytes(), sheet.getName() + "-err.xlsx"); + return ResponseUtil.apply(sheet.getBytes(), sheet.getName() + "-检查.xlsx"); } else { return baseResponse; } } catch (IOException e) { + e.printStackTrace(); + LogUtil.dumpException(e); baseResponse.addError(ErrorType.BUSINESS_ERROR, "上传文件出错"); } catch (TemplateNotMatchException | ReadErrorException e) { baseResponse.addError(ErrorType.BUSINESS_ERROR, e.getMessage()); diff --git a/src/main/resources/modules/SpringBoot/java/action/ajax/system/DictAjax.java b/src/main/resources/modules/SpringBoot/java/action/ajax/system/DictAjax.java index ee056115..bf18c96c 100644 --- a/src/main/resources/modules/SpringBoot/java/action/ajax/system/DictAjax.java +++ b/src/main/resources/modules/SpringBoot/java/action/ajax/system/DictAjax.java @@ -3,15 +3,16 @@ package ${basePackage}.action.ajax.system; import com.fasterxml.jackson.core.TreeNode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.multipart.MultipartFile; +import ${basePackage}.frame.excel.WSheet; +import ${basePackage}.frame.utils.LogUtil; import ${basePackage}.frame.auth.LocalData; -import ${basePackage}.frame.base.BaseResponse; import ${basePackage}.frame.base.ErrorType; -import ${basePackage}.frame.excel.WSheet; -import ${basePackage}.frame.excel.exception.ReadErrorException; -import ${basePackage}.frame.excel.exception.TemplateNotMatchException; import ${basePackage}.frame.utils.MapperUtil; +import ${basePackage}.frame.base.BaseResponse; import ${basePackage}.frame.utils.ResponseUtil; import ${basePackage}.frame.utils.ValidationUtil; +import ${basePackage}.frame.excel.exception.ReadErrorException; +import ${basePackage}.frame.excel.exception.TemplateNotMatchException; import ${basePackage}.module.system.ent.Dict; import ${basePackage}.module.system.mgr.DictManager; import ${basePackage}.module.system.req.*; @@ -80,11 +81,13 @@ public class DictAjax { }); if (sheet.hasError()) { - return ResponseUtil.apply(sheet.getBytes(true), sheet.getName() + "-err.xlsx"); + return ResponseUtil.apply(sheet.getBytes(true), sheet.getName() + "-检查.xlsx"); } else { return baseResponse; } } catch (IOException e) { + e.printStackTrace(); + LogUtil.dumpException(e); baseResponse.addError(ErrorType.BUSINESS_ERROR, "上传文件出错"); } catch (TemplateNotMatchException | ReadErrorException e) { baseResponse.addError(ErrorType.BUSINESS_ERROR, e.getMessage()); diff --git a/src/main/resources/modules/SpringBoot/java/action/ajax/system/DictItemAjax.java b/src/main/resources/modules/SpringBoot/java/action/ajax/system/DictItemAjax.java index 2df710eb..c320eb01 100644 --- a/src/main/resources/modules/SpringBoot/java/action/ajax/system/DictItemAjax.java +++ b/src/main/resources/modules/SpringBoot/java/action/ajax/system/DictItemAjax.java @@ -1,93 +1,92 @@ package ${basePackage}.action.ajax.system; -import ${basePackage}.frame.auth.LocalData; +import com.fasterxml.jackson.core.TreeNode; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.multipart.MultipartFile; import ${basePackage}.frame.excel.WSheet; +import ${basePackage}.frame.utils.LogUtil; +import ${basePackage}.frame.auth.LocalData; +import ${basePackage}.frame.base.ErrorType; import ${basePackage}.frame.utils.MapperUtil; -import ${basePackage}.module.system.mgr.DictItemManager; -import ${basePackage}.module.system.req.*; -import ${basePackage}.module.system.rsp.*; import ${basePackage}.frame.base.BaseResponse; -import ${basePackage}.frame.base.ErrorType; +import ${basePackage}.frame.utils.ResponseUtil; +import ${basePackage}.frame.utils.ValidationUtil; import ${basePackage}.frame.excel.exception.ReadErrorException; import ${basePackage}.frame.excel.exception.TemplateNotMatchException; -import org.springframework.web.multipart.MultipartFile; -import com.fasterxml.jackson.core.TreeNode; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; +import ${basePackage}.module.system.ent.DictItem; +import ${basePackage}.module.system.mgr.DictItemManager; +import ${basePackage}.module.system.req.*; +import ${basePackage}.module.system.rsp.*; import java.io.IOException; -import java.net.URLEncoder; +import java.util.List; public class DictItemAjax { @Autowired - private DictItemManager dictManager; + private DictItemManager dictItemManager; public DictItemCreateResponse create(TreeNode jsonParam) { DictItemCreateRequest request = MapperUtil.toJava(jsonParam, DictItemCreateRequest.class); - return dictManager.create(request, LocalData.getToken()); + return dictItemManager.create(request, LocalData.getToken()); } public DictItemDeleteResponse delete(TreeNode jsonParam) { DictItemDeleteRequest request = MapperUtil.toJava(jsonParam, DictItemDeleteRequest.class); - return dictManager.delete(request, LocalData.getToken()); + return dictItemManager.delete(request, LocalData.getToken()); } public DictItemUpdateResponse update(TreeNode jsonParam) { DictItemUpdateRequest request = MapperUtil.toJava(jsonParam, DictItemUpdateRequest.class); - return dictManager.update(request, LocalData.getToken()); + return dictItemManager.update(request, LocalData.getToken()); } public DictItemFindResponse find(TreeNode jsonParam) { DictItemFindRequest request = MapperUtil.toJava(jsonParam, DictItemFindRequest.class); - return dictManager.find(request, LocalData.getToken()); + return dictItemManager.find(request, LocalData.getToken()); } public DictItemGetResponse get(TreeNode jsonParam) { DictItemGetRequest request = MapperUtil.toJava(jsonParam, DictItemGetRequest.class); - return dictManager.get(request, LocalData.getToken()); + return dictItemManager.get(request, LocalData.getToken()); } public Object template(){ - try { - WSheet sheet = new WSheet<>(DictItemCreateRequest.class); - byte[] bytes = sheet.getBytes(); - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); - headers.setContentDispositionFormData("attachment", URLEncoder.encode(sheet.getName() + ".xlsx","utf-8")); - return new ResponseEntity<>(bytes, headers, HttpStatus.OK); - } catch (IOException e) { - BaseResponse baseResponse = new BaseResponse(); - baseResponse.addError(ErrorType.BUSINESS_ERROR, ""); - return baseResponse; + return ResponseUtil.apply(new WSheet<>(DictItem.class)); + } + + public Object exports(TreeNode jsonParam) { + DictItemFindRequest request = MapperUtil.toJava(jsonParam, DictItemFindRequest.class); + DictItemFindResponse response = dictItemManager.find(request, LocalData.getToken()); + if (response.hasError()) { + return response; } + return ResponseUtil.apply(new WSheet<>(response.getResult())); } public Object imports(MultipartFile file) { BaseResponse baseResponse = new BaseResponse(); try { - byte[] bytes = file.getBytes(); - - WSheet sheet = new WSheet<>(bytes, DictItemCreateRequest.class); + WSheet sheet = new WSheet<>(file.getBytes(), DictItem.class, new WSheet.Validator() { + @Override + public List validate(DictItem o) { + DictItemCreateRequest request = MapperUtil.map(o, DictItemCreateRequest.class); + return ValidationUtil.validate(request); + } + }); if (sheet.hasError()) { - byte[] sheetBytes = sheet.getBytes(true); - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); - headers.setContentDispositionFormData("attachment", URLEncoder.encode(sheet.getName() + "-err.xlsx","utf-8")); - return new ResponseEntity<>(sheetBytes, headers, HttpStatus.OK); + return ResponseUtil.apply(sheet.getBytes(true), sheet.getName() + "-检查.xlsx"); } else { return baseResponse; } } catch (IOException e) { + e.printStackTrace(); + LogUtil.dumpException(e); baseResponse.addError(ErrorType.BUSINESS_ERROR, "上传文件出错"); } catch (TemplateNotMatchException | ReadErrorException e) { baseResponse.addError(ErrorType.BUSINESS_ERROR, e.getMessage()); } - return baseResponse; } } diff --git a/src/main/resources/modules/SpringBoot/java/config/TaskConfig.java b/src/main/resources/modules/SpringBoot/java/config/TaskConfig.java index 1a9c359a..4e9e32ee 100644 --- a/src/main/resources/modules/SpringBoot/java/config/TaskConfig.java +++ b/src/main/resources/modules/SpringBoot/java/config/TaskConfig.java @@ -20,10 +20,10 @@ import java.util.concurrent.Executors; */ @Configuration @EnableScheduling -@Profile("prod") +@Profile("dev") public class TaskConfig implements SchedulingConfigurer { - @Scheduled(cron="0/30 * * * * ? ") + @Scheduled(cron="0/5 * * * * ? ") public void task(){ // todo 自定实现的定时任务 SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss"); diff --git a/src/main/resources/modules/SpringBoot/java/frame/excel/WColumn.java b/src/main/resources/modules/SpringBoot/java/frame/excel/WColumn.java index af7917ed..4e63dbf8 100644 --- a/src/main/resources/modules/SpringBoot/java/frame/excel/WColumn.java +++ b/src/main/resources/modules/SpringBoot/java/frame/excel/WColumn.java @@ -19,24 +19,23 @@ public class WColumn implements Serializable { /** * 列名 */ - private String name; + private String name = ""; /** * 列宽度 */ - private int cellWidth; + private int cellWidth = 8; /** * 是否是必输列 */ - private boolean isRequired; + private boolean isRequired = false; /** * 该列的描述字段 */ - private String description; + private String description = ""; /** * 列转换器 */ private Converter converter; - /** * Field对象 */ @@ -45,21 +44,21 @@ public class WColumn implements Serializable { * set方法 */ private Method setMethod; - + /** + * get方法 + */ + private Method getMethod; + /** + * ExcelType + */ private int cellType = 1; public WColumn() { this.name = ""; - this.cellWidth = 1; - this.isRequired = false; - this.description = ""; } public WColumn(String name) { this.name = name; - this.cellWidth = 1; - this.isRequired = false; - this.description = ""; } public String getName() { @@ -67,9 +66,6 @@ public class WColumn implements Serializable { } public void setName(String name) { - if (StringUtil.getByteLength(name) > cellWidth) { - cellWidth = StringUtil.getByteLength(name); - } this.name = name; } @@ -128,4 +124,12 @@ public class WColumn implements Serializable { public void setSetMethod(Method setMethod) { this.setMethod = setMethod; } + + public Method getGetMethod() { + return getMethod; + } + + public void setGetMethod(Method getMethod) { + this.getMethod = getMethod; + } } diff --git a/src/main/resources/modules/SpringBoot/java/frame/excel/WSheet.java b/src/main/resources/modules/SpringBoot/java/frame/excel/WSheet.java index 8c8febae..38bfdd28 100644 --- a/src/main/resources/modules/SpringBoot/java/frame/excel/WSheet.java +++ b/src/main/resources/modules/SpringBoot/java/frame/excel/WSheet.java @@ -91,6 +91,9 @@ public class WSheet implements Serializable, Cloneable { Method set = ClassUtil.setMethod(field.getName(), clazz, field.getType()); WColumn.setSetMethod(set); + Method get = ClassUtil.getMethod(field.getName(), clazz); + WColumn.setGetMethod(get); + //获取列名称 if (!field.isAnnotationPresent(ColumnName.class)) { WColumn.setName(field.getName()); @@ -98,17 +101,13 @@ public class WSheet implements Serializable, Cloneable { ColumnName columnColumnName = field.getAnnotation(ColumnName.class); WColumn.setName(columnColumnName.value()); WColumn.setCellWidth(columnColumnName.width()); + WColumn.setRequired(columnColumnName.required()); } //获取列填写说明或描述 if (field.isAnnotationPresent(ColumnDescription.class)) { WColumn.setDescription(field.getAnnotation(ColumnDescription.class).value()); } - //列填写标志(是否必填) - if (field.isAnnotationPresent(NotNull.class)) { - WColumn.setRequired(true); - } - //获取列类型 if (field.isAnnotationPresent(${basePackage}.frame.excel.annotation.Converter.class)) { ${basePackage}.frame.excel.annotation.Converter converter = field.getAnnotation(${basePackage}.frame.excel.annotation.Converter.class); @@ -180,8 +179,7 @@ public class WSheet implements Serializable, Cloneable { if (column == null) { continue; } - Field field = column.getField(); - Method method = ClassUtil.setMethod(field.getName(), t.getClass(), field.getType()); + Method method = column.getGetMethod(); try { Object value = method.invoke(t); if (null == value) { diff --git a/src/main/resources/modules/SpringBoot/java/frame/excel/annotation/ColumnName.java b/src/main/resources/modules/SpringBoot/java/frame/excel/annotation/ColumnName.java index 3ce1657c..0c295767 100644 --- a/src/main/resources/modules/SpringBoot/java/frame/excel/annotation/ColumnName.java +++ b/src/main/resources/modules/SpringBoot/java/frame/excel/annotation/ColumnName.java @@ -9,23 +9,28 @@ import java.lang.annotation.*; * @version 0.0.1 * @since 2017-01-01 */ -@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE}) +@Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ColumnName { + + /** + * 列名 + */ String value(); /** - * 排序 - * - * @return + * 默认宽度 */ int width() default 8; + /** + * *标志 + */ + boolean required() default false; + /** * 日期格式化 - * - * @return */ String dateFormat() default "yyyy-MM-dd"; } diff --git a/src/main/resources/modules/SpringBoot/java/module/ent/entity.ftl b/src/main/resources/modules/SpringBoot/java/module/ent/entity.ftl index 89f97191..6bbf8bce 100644 --- a/src/main/resources/modules/SpringBoot/java/module/ent/entity.ftl +++ b/src/main/resources/modules/SpringBoot/java/module/ent/entity.ftl @@ -3,6 +3,11 @@ package ${basePackage}.module.${moduleName}.ent; <#if table.has('Date')> import java.util.Date; +<#if table.getHtml()> +import ${basePackage}.frame.excel.annotation.ColumnDescription; +import ${basePackage}.frame.excel.annotation.ColumnName; +import ${basePackage}.frame.excel.annotation.SheetName; + import ${basePackage}.frame.base.BaseEntity; /** @@ -12,6 +17,9 @@ import ${basePackage}.frame.base.BaseEntity; * @version 0.0.1 * @since ${date?string("yyyy-MM-dd")} */ +<#if table.getHtml()> +@SheetName("${table.tableComment?default("")}") + public class ${table.getCName()} extends BaseEntity { <#list table.fields as field> @@ -19,6 +27,10 @@ public class ${table.getCName()} extends BaseEntity { /** * ${field.fieldName} - ${field.fieldComment?default("")} */ +<#if table.getHtml()> + @ColumnName("${field.fieldComment?default("")}") + @ColumnDescription("") + private ${field.fieldType.javaType()} ${field.getFName()}; diff --git a/src/main/resources/modules/SpringBoot/java/module/mpr/mapper.ftl b/src/main/resources/modules/SpringBoot/java/module/mpr/mapper.ftl index ee941bf7..96d180ad 100644 --- a/src/main/resources/modules/SpringBoot/java/module/mpr/mapper.ftl +++ b/src/main/resources/modules/SpringBoot/java/module/mpr/mapper.ftl @@ -154,7 +154,6 @@ `LAST_UPDATE_BY` = ${r"#{"}token.userId}, `LAST_UPDATE_TIME` = sysdate() - WHERE <#if dataBase == 'ORACLE'> "IS_DELETED" = 0 diff --git a/src/main/resources/modules/SpringBoot/java/module/system/ent/Dict.java b/src/main/resources/modules/SpringBoot/java/module/system/ent/Dict.java index 9808cfae..ece89e4f 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/ent/Dict.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/ent/Dict.java @@ -37,7 +37,7 @@ public class Dict extends BaseEntity { * VALID - 是否有效 */ @ColumnName("是否有效") - @ColumnDescription("true/false") + @ColumnDescription("Y/N,是/否") private Boolean valid; public String getDictName() { diff --git a/src/main/resources/modules/SpringBoot/java/module/system/ent/DictItem.java b/src/main/resources/modules/SpringBoot/java/module/system/ent/DictItem.java index 673ec041..a4c16eab 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/ent/DictItem.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/ent/DictItem.java @@ -1,6 +1,9 @@ package ${basePackage}.module.system.ent; import ${basePackage}.frame.base.BaseEntity; +import ${basePackage}.frame.excel.annotation.ColumnDescription; +import ${basePackage}.frame.excel.annotation.ColumnName; +import ${basePackage}.frame.excel.annotation.SheetName; /** * DICT_ITEM - 字典项 @@ -9,27 +12,38 @@ import ${basePackage}.frame.base.BaseEntity; * @version 0.0.1 * @since 2019-07-20 */ +@SheetName("字典项") public class DictItem extends BaseEntity { /** * DICT_ID - 字典ID */ + @ColumnName("字典主键") + @ColumnDescription("字典主键一般为一窜数字,可通过字典查询页获取字典主键") private Long dictId; /** * KEY - 字典KEY */ + @ColumnName("字典键") + @ColumnDescription("字典键一般使用数字或字母 01,02... A,B...") private String key; /** * VALUE - 字典VALUE */ + @ColumnName("字典值") + @ColumnDescription("字典值一般是实际意思字符或文字\n 长度在(1-100)之间") private String value; /** * SORT - 排序 */ + @ColumnName("字典排序值") + @ColumnDescription("用于标识字典值排列顺序、必须为数字") private Integer sort; /** * VALID - 是否有效 */ + @ColumnName("是否有效") + @ColumnDescription("用于标识该字典值是否有效") private Boolean valid; public Long getDictId() { diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictItemMapper.java b/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictItemMapper.java index 8f7ba09c..658fd7af 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictItemMapper.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictItemMapper.java @@ -15,7 +15,7 @@ import java.util.List; * DICT_ITEM - 字典项 * * @author wangbing - * @date 2019-07-20 + * @since 2019-07-20 */ @Mapper public interface DictItemMapper { diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictItemMapper.xml b/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictItemMapper.xml index e2c1c688..e8f2d074 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictItemMapper.xml +++ b/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictItemMapper.xml @@ -97,7 +97,6 @@ UPDATE SET - `DICT_ID` = ${r"#{"}request.dictId,jdbcType=BIGINT}, `KEY` = ${r"#{"}request.key,jdbcType=CHAR}, `VALUE` = ${r"#{"}request.value,jdbcType=VARCHAR}, `SORT` = ${r"#{"}request.sort,jdbcType=INTEGER}, @@ -105,7 +104,6 @@ `ROW_VERSION` = `ROW_VERSION` + 1, `LAST_UPDATE_BY` = ${r"#{"}token.userId}, `LAST_UPDATE_TIME` = sysdate() - WHERE `IS_DELETED` = 0 AND `ID` = ${r"#{"}request.id} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictMapper.java b/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictMapper.java index a1dd1a67..d64c438e 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictMapper.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictMapper.java @@ -11,7 +11,7 @@ import java.util.List; * DICT - 字典 * * @author wangbing - * @date 2019-07-20 + * @since 2019-07-20 */ @Mapper public interface DictMapper { diff --git a/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictMapper.xml b/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictMapper.xml index 0e5bf83e..8d2119f2 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictMapper.xml +++ b/src/main/resources/modules/SpringBoot/java/module/system/mpr/DictMapper.xml @@ -99,7 +99,6 @@ `ROW_VERSION` = `ROW_VERSION` + 1, `LAST_UPDATE_BY` = ${r"#{"}token.userId}, `LAST_UPDATE_TIME` = sysdate() - WHERE `IS_DELETED` = 0 AND `ID` = ${r"#{"}request.id} diff --git a/src/main/resources/modules/SpringBoot/java/module/system/req/DictItemCreateRequest.java b/src/main/resources/modules/SpringBoot/java/module/system/req/DictItemCreateRequest.java index 1312da2c..1cce44ba 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/req/DictItemCreateRequest.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/req/DictItemCreateRequest.java @@ -17,18 +17,19 @@ public class DictItemCreateRequest extends BaseRequest { /** * 字典ID */ + @NotNull(message = "字典主键不能为空") private Long dictId; /** * 字典KEY */ - @Length(min = 0, max = 10, message = "字典KEY长度不合法(0-10)") + @Length(min = 1, max = 10, message = "字典KEY长度不合法(1-10)") private String key; /** * 字典VALUE */ - @Length(min = 0, max = 100, message = "字典VALUE长度不合法(0-100)") + @Length(min = 1, max = 100, message = "字典VALUE长度不合法(1-100)") private String value; /** @@ -40,6 +41,7 @@ public class DictItemCreateRequest extends BaseRequest { /** * 是否有效 */ + @NotNull(message = "是否有效不能为空") private Boolean valid; public Long getDictId() { diff --git a/src/main/resources/modules/SpringBoot/java/module/system/req/DictItemUpdateRequest.java b/src/main/resources/modules/SpringBoot/java/module/system/req/DictItemUpdateRequest.java index 52f6c60d..dc318563 100644 --- a/src/main/resources/modules/SpringBoot/java/module/system/req/DictItemUpdateRequest.java +++ b/src/main/resources/modules/SpringBoot/java/module/system/req/DictItemUpdateRequest.java @@ -20,11 +20,6 @@ public class DictItemUpdateRequest extends BaseUpdateRequest { @NotNull(message = "主键不能为NULL") private Long id; - /** - * 字典ID - */ - private Long dictId; - /** * 字典KEY */ @@ -40,11 +35,13 @@ public class DictItemUpdateRequest extends BaseUpdateRequest { /** * 排序 */ + @NotNull(message = "字典项排序值不能为空") private Integer sort; /** * 是否有效 */ + @NotNull(message = "是否有效不能为空") private Boolean valid; public Long getId() { @@ -55,14 +52,6 @@ public class DictItemUpdateRequest extends BaseUpdateRequest { this.id = id; } - public Long getDictId() { - return this.dictId; - } - - public void setDictId(Long dictId) { - this.dictId = dictId; - } - public String getKey() { return this.key; } diff --git a/src/main/resources/modules/SpringBoot/resources/templates/control/nav.ftl b/src/main/resources/modules/SpringBoot/resources/templates/control/nav.ftl index 26bca7dd..404f1af0 100644 --- a/src/main/resources/modules/SpringBoot/resources/templates/control/nav.ftl +++ b/src/main/resources/modules/SpringBoot/resources/templates/control/nav.ftl @@ -169,13 +169,13 @@ }, upload: function (data) { return upRequest({ - url: "system/File/upload", + url: "ajax/system/File/upload", data: data, }) }, download: function (data) { return downRequest({ - url: "system/File/download", + url: "ajax/system/File/download", data: JSON.stringify(data), }) }, @@ -228,7 +228,7 @@ }) }, exports: function (module, target, data) { - return upRequest({ + return downRequest({ url: "/ajax/" + module + "/" + target + "/exports", data: data, }) diff --git a/src/main/resources/modules/SpringBoot/resources/templates/screen/home.ftl b/src/main/resources/modules/SpringBoot/resources/templates/screen/home.ftl index 3f4c7e22..03aec9ea 100644 --- a/src/main/resources/modules/SpringBoot/resources/templates/screen/home.ftl +++ b/src/main/resources/modules/SpringBoot/resources/templates/screen/home.ftl @@ -141,7 +141,7 @@ -

ajax.login({}).then(function (response) {

+

this.$ajax.login({}).then(function (response) {

if (response.errors.length > 0) {

@@ -173,7 +173,7 @@ -

ajax.upload(req.file).then(function (response) {

+

this.$ajax.upload(req.file).then(function (response) {

if (response.errors.length > 0) {

@@ -941,10 +941,10 @@