diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java index a98de2e8..7ab5bac0 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java @@ -92,7 +92,7 @@ public class ExcelUtil { /** * 当前行号 */ - private int rownum; + private int rowNum; /** * 标题 @@ -159,7 +159,7 @@ public class ExcelUtil { public void init(List list, String sheetName, String title, Type type) { if (list == null) { - list = new ArrayList(); + list = new ArrayList<>(); } this.list = list; this.sheetName = sheetName; @@ -182,7 +182,7 @@ public class ExcelUtil { if (isSubList()) { titleLastCol = titleLastCol + subFields.size() - 1; } - Row titleRow = sheet.createRow(rownum == 0 ? rownum++ : 0); + Row titleRow = sheet.createRow(rowNum == 0 ? rowNum++ : 0); titleRow.setHeightInPoints(30); Cell titleCell = titleRow.createCell(0); titleCell.setCellStyle(styles.get("title")); @@ -198,7 +198,7 @@ public class ExcelUtil { if (isSubList()) { subMergedFirstRowNum++; subMergedLastRowNum++; - Row subRow = sheet.createRow(rownum); + Row subRow = sheet.createRow(rowNum); int excelNum = 0; for (Object[] objects : fields) { Excel attr = (Excel) objects[1]; @@ -210,9 +210,9 @@ public class ExcelUtil { int headFirstRow = excelNum - 1; int headLastRow = headFirstRow + subFields.size() - 1; if (headLastRow > headFirstRow) { - sheet.addMergedRegion(new CellRangeAddress(rownum, rownum, headFirstRow, headLastRow)); + sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, headFirstRow, headLastRow)); } - rownum++; + rowNum++; } } @@ -257,7 +257,7 @@ public class ExcelUtil { public List importExcel(String sheetName, InputStream is, int titleNum) throws Exception { this.type = Type.IMPORT; this.wb = WorkbookFactory.create(is); - List list = new ArrayList(); + List list = new ArrayList<>(); // 如果指定sheet名,则取指定sheet中的内容 否则默认指向第1个sheet Sheet sheet = StringUtils.isNotEmpty(sheetName) ? wb.getSheet(sheetName) : wb.getSheetAt(0); if (sheet == null) { @@ -268,7 +268,7 @@ public class ExcelUtil { int rows = sheet.getLastRowNum(); if (rows > 0) { // 定义一个map用于存放excel列的序号和field. - Map cellMap = new HashMap(); + Map cellMap = new HashMap<>(); // 获取表头 Row heard = sheet.getRow(titleNum); for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) { @@ -282,7 +282,7 @@ public class ExcelUtil { } // 有数据时才处理 得到类的所有field. List fields = this.getFields(); - Map fieldsMap = new HashMap(); + Map fieldsMap = new HashMap<>(); for (Object[] objects : fields) { Excel attr = (Excel) objects[1]; Integer column = cellMap.get(attr.name()); @@ -428,7 +428,7 @@ public class ExcelUtil { createSheet(sheetNo, index); // 产生一行 - Row row = sheet.createRow(rownum); + Row row = sheet.createRow(rowNum); int column = 0; // 写入各个字段的列头名称 for (Object[] os : fields) { @@ -460,9 +460,9 @@ public class ExcelUtil { public void fillExcelData(int index, Row row) { int startNo = index * sheetSize; int endNo = Math.min(startNo + sheetSize, list.size()); - int rowNo = (1 + rownum) - startNo; + int rowNo = (1 + rowNum) - startNo; for (int i = startNo; i < endNo; i++) { - rowNo = isSubList() ? (i > 1 ? rowNo + 1 : rowNo + i) : i + 1 + rownum - startNo; + rowNo = isSubList() ? (i > 1 ? rowNo + 1 : rowNo + i) : i + 1 + rowNum - startNo; row = sheet.createRow(rowNo); // 得到导出对象. T vo = (T) list.get(i); @@ -515,7 +515,7 @@ public class ExcelUtil { */ private Map createStyles(Workbook wb) { // 写入各条记录,每条记录对应excel表中的一行 - Map styles = new HashMap(); + Map styles = new HashMap<>(); CellStyle style = wb.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER); style.setVerticalAlignment(VerticalAlignment.CENTER); @@ -566,7 +566,7 @@ public class ExcelUtil { * @return 自定义样式列表 */ private Map annotationHeaderStyles(Workbook wb, Map styles) { - Map headerStyles = new HashMap(); + Map headerStyles = new HashMap<>(); for (Object[] os : fields) { Excel excel = (Excel) os[1]; String key = StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor()); @@ -596,7 +596,7 @@ public class ExcelUtil { * @return 自定义样式列表 */ private Map annotationDataStyles(Workbook wb) { - Map styles = new HashMap(); + Map styles = new HashMap<>(); for (Object[] os : fields) { Excel excel = (Excel) os[1]; String key = StringUtils.format("data_{}_{}_{}", excel.align(), excel.color(), excel.backgroundColor()); @@ -639,7 +639,7 @@ public class ExcelUtil { // 填充默认样式,防止合并单元格样式失效 sheet.setDefaultColumnStyle(column, styles.get(StringUtils.format("data_{}_{}_{}", attr.align(), attr.color(), attr.backgroundColor()))); if (attr.needMerge()) { - sheet.addMergedRegion(new CellRangeAddress(rownum - 1, rownum, column, column)); + sheet.addMergedRegion(new CellRangeAddress(rowNum - 1, rowNum, column, column)); } } return cell; @@ -1005,7 +1005,7 @@ public class ExcelUtil { * 获取字段注解信息 */ public List getFields() { - List fields = new ArrayList(); + List fields = new ArrayList<>(); List tempFields = new ArrayList<>(); tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); tempFields.addAll(Arrays.asList(clazz.getDeclaredFields())); @@ -1184,7 +1184,7 @@ public class ExcelUtil { try { value = subMethod.invoke(obj, new Object[]{}); } catch (Exception e) { - return new ArrayList(); + return new ArrayList<>(); } return (Collection) value; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/reflect/ReflectUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/reflect/ReflectUtils.java index a1af9bbc..c0439fbd 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/reflect/ReflectUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/reflect/ReflectUtils.java @@ -1,21 +1,18 @@ package com.ruoyi.common.core.utils.reflect; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.util.Arrays; -import java.util.Date; - +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.core.utils.DateUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.apache.poi.ss.usermodel.DateUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.ruoyi.common.core.text.Convert; -import com.ruoyi.common.core.utils.DateUtils; + +import java.lang.reflect.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; /** * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数. @@ -326,4 +323,52 @@ public class ReflectUtils { } return new RuntimeException(msg, e); } + + /** + * 深度寻找字段(不断往父类上去找) + * + * @param clazz 目标类 + * @param fieldName 字段名 + * @return 字段对象 + * @throws NoSuchFieldException 最终还是找不到 + */ + public static Field getFieldDeep(Class clazz, String fieldName) throws NoSuchFieldException { + if (clazz == Object.class) { + throw new NoSuchFieldException(fieldName); + } + try { + return clazz.getDeclaredField(fieldName); + } catch (NoSuchFieldException e0) { + Class superClass = clazz.getSuperclass(); + return getFieldDeep(superClass, fieldName); + } + } + + /** + * 获取所有字段(包括父类的) + * + * @param clazz 起始类(包含) + * @param endClass 终止类(不包含) + * @return 所有字段 + */ + public static Field[] getFieldsDeep(Class clazz, Class endClass) { + List fieldList = new ArrayList<>(); + while (clazz != endClass) { + Field[] fields = clazz.getDeclaredFields(); + fieldList.addAll(Arrays.asList(fields)); + clazz = clazz.getSuperclass(); + } + Field[] f = new Field[fieldList.size()]; + return fieldList.toArray(f); + } + + /** + * 获取所有字段(包括父类的,一直查到Object类为止,不包括Object的字段) + * + * @param clazz 起始类 + * @return 所有字段 + */ + public static Field[] getFieldsDeep(Class clazz) { + return getFieldsDeep(clazz, Object.class); + } } diff --git a/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/mybatis/gen/MyCommentGenerator.java b/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/mybatis/gen/MyCommentGenerator.java new file mode 100644 index 00000000..18128219 --- /dev/null +++ b/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/mybatis/gen/MyCommentGenerator.java @@ -0,0 +1,459 @@ +package com.ruoyi.common.datasource.mybatis.gen; + +import org.mybatis.generator.api.CommentGenerator; +import org.mybatis.generator.api.IntrospectedColumn; +import org.mybatis.generator.api.IntrospectedTable; +import org.mybatis.generator.api.MyBatisGenerator; +import org.mybatis.generator.api.dom.java.*; +import org.mybatis.generator.api.dom.kotlin.KotlinFile; +import org.mybatis.generator.api.dom.xml.TextElement; +import org.mybatis.generator.api.dom.xml.XmlElement; +import org.mybatis.generator.config.MergeConstants; +import org.mybatis.generator.config.PropertyRegistry; +import org.mybatis.generator.internal.util.StringUtility; + +import java.text.SimpleDateFormat; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.Properties; +import java.util.Set; + +import static org.mybatis.generator.internal.util.StringUtility.isTrue; + +/** + * 抄录自{@link org.mybatis.generator.internal.DefaultCommentGenerator},并作个性化修改 + * + * @author Alan Scipio + * created on 2024/2/18 + */ +public class MyCommentGenerator implements CommentGenerator { + + private final Properties properties = new Properties(); + + private boolean suppressDate; + + private boolean suppressAllComments; + + /** If suppressAllComments is true, this option is ignored. */ + private boolean addRemarkComments; + + private SimpleDateFormat dateFormat; + + private FullyQualifiedJavaType generatedImport = + new FullyQualifiedJavaType("jakarta.annotation.Generated"); + + public MyCommentGenerator() { + super(); + suppressDate = false; + suppressAllComments = false; + addRemarkComments = false; + } + + /** + * Adds a suitable comment to warn users that the element was generated, and + * when it was generated. + * + * @param xmlElement the xml element + */ + @Override + public void addComment(XmlElement xmlElement) { + if (suppressAllComments) { + return; + } + + xmlElement.addElement(new TextElement("")); + } + + @Override + public void addConfigurationProperties(Properties props) { + this.properties.putAll(props); + + suppressDate = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_DATE)); + + suppressAllComments = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_ALL_COMMENTS)); + + addRemarkComments = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_ADD_REMARK_COMMENTS)); + + if (isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_USE_LEGACY_GENERATED_ANNOTATION))) { + generatedImport = new FullyQualifiedJavaType("javax.annotation.Generated"); + } + + String dateFormatString = properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_DATE_FORMAT); + if (StringUtility.stringHasValue(dateFormatString)) { + dateFormat = new SimpleDateFormat(dateFormatString); + } else { + dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + } + } + + /** + * This method adds the custom javadoc tag for. You may do nothing if you do not + * wish to include the Javadoc tag - however, if you do not include the Javadoc + * tag then the Java merge capability of the eclipse plugin will break. + * + * @param javaElement the java element + * @param markAsDoNotDelete the mark as do not delete + */ + protected void addJavadocTag(JavaElement javaElement, boolean markAsDoNotDelete) { + javaElement.addJavaDocLine(" *"); + StringBuilder sb = new StringBuilder(); + sb.append(" * "); + sb.append(MergeConstants.NEW_ELEMENT_TAG); + if (markAsDoNotDelete) { + sb.append(" do_not_delete_during_merge"); + } + String s = getDateString(); + if (s != null) { + sb.append(' '); + sb.append(s); + } + javaElement.addJavaDocLine(sb.toString()); + } + + /** + * Returns a formatted date string to include in the Javadoc tag and XML + * comments. You may return null if you do not want the date in these + * documentation elements. + * + * @return a string representing the current timestamp, or null + */ + protected String getDateString() { + if (suppressDate) { + return null; + } else if (dateFormat != null) { + return dateFormat.format(new Date()); + } else { + return new Date().toString(); + } + } + + @Override + public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) { + if (suppressAllComments) { + return; + } + + StringBuilder sb = new StringBuilder(); + + innerClass.addJavaDocLine("/**"); + sb.append(introspectedTable.getFullyQualifiedTable()); + innerClass.addJavaDocLine(sb.toString()); + + addJavadocTag(innerClass, false); + + innerClass.addJavaDocLine(" */"); + } + + @Override + public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean markAsDoNotDelete) { + if (suppressAllComments) { + return; + } + + StringBuilder sb = new StringBuilder(); + + innerClass.addJavaDocLine("/**"); + sb.append(introspectedTable.getFullyQualifiedTable()); + innerClass.addJavaDocLine(sb.toString()); + + addJavadocTag(innerClass, markAsDoNotDelete); + + innerClass.addJavaDocLine(" */"); + } + + @Override + public void addModelClassComment(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { + if (suppressAllComments || !addRemarkComments) { + return; + } + + topLevelClass.addJavaDocLine("/**"); + topLevelClass.addJavaDocLine(" * This class was generated by MyBatis Generator."); + topLevelClass.addJavaDocLine(" *"); + + + + topLevelClass.addJavaDocLine(" *
    "); + //表名 + String s = " *
  • Table: " + introspectedTable.getFullyQualifiedTable() + "
  • "; + topLevelClass.addJavaDocLine(s); + + //表注释 + String remarks = introspectedTable.getRemarks() == null ? "" : introspectedTable.getRemarks(); + StringBuilder remarksSb = new StringBuilder(); + if (addRemarkComments && StringUtility.stringHasValue(remarks)) { + remarksSb.append(" *
  • Remarks: "); + remarksSb.append(remarks); + remarksSb.append("
  • "); + topLevelClass.addJavaDocLine(remarksSb.toString()); + } + topLevelClass.addJavaDocLine(" *
"); + topLevelClass.addJavaDocLine(" *"); + + //作者 + topLevelClass.addJavaDocLine(" * @author ryas"); + if (!suppressDate && !suppressAllComments) { + topLevelClass.addJavaDocLine(" * created on " + getDateString()); + } + + topLevelClass.addJavaDocLine(" */"); + } + + @Override + public void addEnumComment(InnerEnum innerEnum, IntrospectedTable introspectedTable) { + if (suppressAllComments) { + return; + } + + StringBuilder sb = new StringBuilder(); + + innerEnum.addJavaDocLine("/**"); + sb.append(introspectedTable.getFullyQualifiedTable()); + innerEnum.addJavaDocLine(sb.toString()); + + addJavadocTag(innerEnum, false); + + innerEnum.addJavaDocLine(" */"); + } + + @Override + public void addFieldComment(Field field, IntrospectedTable introspectedTable, + IntrospectedColumn introspectedColumn) { + if (suppressAllComments) { + return; + } + + field.addJavaDocLine("/**"); + + String remarks = introspectedTable.getRemarks() == null ? "" : introspectedTable.getRemarks(); + if (addRemarkComments && StringUtility.stringHasValue(remarks)) { + String[] remarkLines = remarks.split(System.lineSeparator()); + for (String remarkLine : remarkLines) { + field.addJavaDocLine(" * " + remarkLine); + } + } + + String s = "" + + introspectedTable.getFullyQualifiedTable() + + '.' + + introspectedColumn.getActualColumnName(); + field.addJavaDocLine(s); + + addJavadocTag(field, false); + + field.addJavaDocLine(" */"); + } + + @Override + public void addFieldComment(Field field, IntrospectedTable introspectedTable) { + if (suppressAllComments) { + return; + } + + StringBuilder sb = new StringBuilder(); + + field.addJavaDocLine("/**"); + sb.append(introspectedTable.getFullyQualifiedTable()); + field.addJavaDocLine(sb.toString()); + + addJavadocTag(field, false); + + field.addJavaDocLine(" */"); + } + + @Override + public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) { + if (suppressAllComments) { + return; + } + + StringBuilder sb = new StringBuilder(); + + method.addJavaDocLine("/**"); + sb.append(introspectedTable.getFullyQualifiedTable()); + method.addJavaDocLine(sb.toString()); + + addJavadocTag(method, false); + + method.addJavaDocLine(" */"); + } + + @Override + public void addGetterComment(Method method, IntrospectedTable introspectedTable, + IntrospectedColumn introspectedColumn) { + if (suppressAllComments) { + return; + } + + StringBuilder sb = new StringBuilder(); + + method.addJavaDocLine("/**"); + sb.append(introspectedTable.getFullyQualifiedTable()); + sb.append('.'); + sb.append(introspectedColumn.getActualColumnName()); + method.addJavaDocLine(sb.toString()); + + sb.setLength(0); + sb.append(" * @return the value of "); + sb.append(introspectedTable.getFullyQualifiedTable()); + sb.append('.'); + sb.append(introspectedColumn.getActualColumnName()); + method.addJavaDocLine(sb.toString()); + + addJavadocTag(method, false); + + method.addJavaDocLine(" */"); + } + + @Override + public void addSetterComment(Method method, IntrospectedTable introspectedTable, + IntrospectedColumn introspectedColumn) { + if (suppressAllComments) { + return; + } + + StringBuilder sb = new StringBuilder(); + + method.addJavaDocLine("/**"); + sb.append(introspectedTable.getFullyQualifiedTable()); + sb.append('.'); + sb.append(introspectedColumn.getActualColumnName()); + method.addJavaDocLine(sb.toString()); + + method.addJavaDocLine(" *"); + + Parameter parm = method.getParameters().getFirst(); + sb.setLength(0); + sb.append(" * @param "); + sb.append(parm.getName()); + sb.append(" the value for "); + sb.append(introspectedTable.getFullyQualifiedTable()); + sb.append('.'); + sb.append(introspectedColumn.getActualColumnName()); + method.addJavaDocLine(sb.toString()); + + addJavadocTag(method, false); + + method.addJavaDocLine(" */"); + } + + @Override + public void addGeneralMethodAnnotation(Method method, IntrospectedTable introspectedTable, + Set imports) { +// imports.add(generatedImport); +// String comment = "Source Table: " + introspectedTable.getFullyQualifiedTable().toString(); +// method.addAnnotation(getGeneratedAnnotation(comment)); + } + + @Override + public void addGeneralMethodAnnotation(Method method, IntrospectedTable introspectedTable, + IntrospectedColumn introspectedColumn, Set imports) { +// imports.add(generatedImport); +// String comment = "Source field: " +// + introspectedTable.getFullyQualifiedTable().toString() + "." +// + introspectedColumn.getActualColumnName(); +// method.addAnnotation(getGeneratedAnnotation(comment)); + } + + @Override + public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, + Set imports) { +// imports.add(generatedImport); +// String comment = "Source Table: " + introspectedTable.getFullyQualifiedTable().toString(); +// field.addAnnotation(getGeneratedAnnotation(comment)); + } + + @Override + public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, + IntrospectedColumn introspectedColumn, Set imports) { +// imports.add(generatedImport); +// String comment = "Source field: " +// + introspectedTable.getFullyQualifiedTable().toString() + "." +// + introspectedColumn.getActualColumnName(); +// field.addAnnotation(getGeneratedAnnotation(comment)); + + if (!suppressAllComments && addRemarkComments) { + String remarks = introspectedColumn.getRemarks(); + if (addRemarkComments && StringUtility.stringHasValue(remarks)) { + field.addJavaDocLine("/**"); + String[] remarkLines = remarks.split(System.lineSeparator()); + for (String remarkLine : remarkLines) { + field.addJavaDocLine(" * " + remarkLine); + } + field.addJavaDocLine(" */"); + } + } + } + + @Override + public void addClassAnnotation(InnerClass innerClass, IntrospectedTable introspectedTable, + Set imports) { +// imports.add(generatedImport); +// String comment = "Source Table: " + introspectedTable.getFullyQualifiedTable().toString(); +// innerClass.addAnnotation(getGeneratedAnnotation(comment)); + } + + private String getGeneratedAnnotation(String comment) { + StringBuilder buffer = new StringBuilder(); + buffer.append("@Generated("); + if (suppressAllComments) { + buffer.append('\"'); + } else { + buffer.append("value=\""); + } + + buffer.append(MyBatisGenerator.class.getName()); + buffer.append('\"'); + + if (!suppressDate && !suppressAllComments) { + buffer.append(", date=\""); + buffer.append(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now())); + buffer.append('\"'); + } + + if (!suppressAllComments) { + buffer.append(", comments=\""); + buffer.append(comment); + buffer.append('\"'); + } + + buffer.append(')'); + return buffer.toString(); + } + + @Override + public void addFileComment(KotlinFile kotlinFile) { + if (suppressAllComments) { + return; + } + + kotlinFile.addFileCommentLine("/*"); + kotlinFile.addFileCommentLine(" * Auto-generated file. Created by MyBatis Generator"); + if (!suppressDate) { + kotlinFile.addFileCommentLine(" * Generation date: " + + DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(ZonedDateTime.now())); + } + kotlinFile.addFileCommentLine(" */"); + } + +} diff --git a/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/mybatis/gen/RyasMyBatisDynamicPlugin.java b/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/mybatis/gen/RyasMyBatisDynamicPlugin.java index adae13b6..a43a42e3 100644 --- a/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/mybatis/gen/RyasMyBatisDynamicPlugin.java +++ b/ruoyi-common/ruoyi-common-datasource/src/main/java/com/ruoyi/common/datasource/mybatis/gen/RyasMyBatisDynamicPlugin.java @@ -5,6 +5,7 @@ import org.mybatis.generator.api.PluginAdapter; import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; import org.mybatis.generator.api.dom.java.Interface; import org.mybatis.generator.api.dom.java.Method; +import org.mybatis.generator.api.dom.java.TopLevelClass; import org.mybatis.generator.internal.util.StringUtility; import java.util.List; @@ -15,6 +16,8 @@ import java.util.List; */ public class RyasMyBatisDynamicPlugin extends PluginAdapter { + private String modelClassName; + // 校验插件配置的正确性 @Override public boolean validate(List warnings) { @@ -26,6 +29,13 @@ public class RyasMyBatisDynamicPlugin extends PluginAdapter { return true; } + @Override + public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { + // 获取模型类的完整名称 + modelClassName = topLevelClass.getType().getShortName(); + return true; + } + // int insert(UnitInfo row) @Override public boolean clientInsertMethodGenerated(Method method, Interface interfaze, IntrospectedTable introspectedTable) { @@ -82,7 +92,7 @@ public class RyasMyBatisDynamicPlugin extends PluginAdapter { //从头插入,所以需要倒着 bodyLines.addFirst("}"); bodyLines.addFirst("row.setCommonForInsert(SecurityUtilsExt.getUserIdStr());"); - bodyLines.addFirst("for (UnitInfo row : records) {"); + bodyLines.addFirst("for (" + modelClassName + " row : records) {"); } private void setForUpdate(Method method, Interface interfaze) { diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java index eb9a13aa..cf665841 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/service/AsyncLogService.java @@ -9,12 +9,11 @@ import com.ruoyi.system.api.domain.SysOperLog; /** * 异步调用日志服务 - * + * * @author ruoyi */ @Service -public class AsyncLogService -{ +public class AsyncLogService { @Autowired private RemoteLogService remoteLogService; @@ -22,8 +21,7 @@ public class AsyncLogService * 保存系统日志记录 */ @Async - public void saveSysLog(SysOperLog sysOperLog) throws Exception - { + public void saveSysLog(SysOperLog sysOperLog) throws Exception { remoteLogService.saveLog(sysOperLog, SecurityConstants.INNER); } } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/config/CommonFieldsSet.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/config/CommonFieldsSet.java new file mode 100644 index 00000000..b0e2861a --- /dev/null +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/config/CommonFieldsSet.java @@ -0,0 +1,60 @@ +package com.ruoyi.gen.config; + +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.reflect.ReflectUtils; +import com.ruoyi.common.core.web.domain.ExtBaseEntity; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.List; + +/** + * 共通字段设定 + * + * @author Alan Scipio + * created on 2024/2/18 + */ +public class CommonFieldsSet { + + private static final List COMMON_FIELDS = new ArrayList<>(); + + static { + Field[] fields = ReflectUtils.getFieldsDeep(ExtBaseEntity.class); + for (Field field : fields) { + //跳过静态字段 + if (Modifier.isStatic(field.getModifiers())) { + continue; + } + //将驼峰命名转换为下划线命名 + String columnName = StringUtils.toUnderScoreCase(field.getName()); + COMMON_FIELDS.add(columnName); + } + + //从属部门ID也相当于是共通字段 + COMMON_FIELDS.add("DEPT_ID"); + //备注字段默认都是共通字段 + COMMON_FIELDS.add("remark*"); + } + + public static boolean isCommonField(String columnName) { + for (String commonField : COMMON_FIELDS) { + //如果字段名相同则是共通字段,不区分大小写 + if (commonField.equalsIgnoreCase(columnName)) { + return true; + } else if (commonField.endsWith("*")) { + //如果字段名以*结尾则是通配符,不区分大小写 + String prefix = commonField.substring(0, commonField.length() - 1); + if (columnName.toLowerCase().startsWith(prefix.toLowerCase())) { + return true; + } + } + } + return false; + } + + public static List getCommonFields() { + return COMMON_FIELDS; + } + +} diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java index 124490d8..cd8d44ec 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java @@ -12,96 +12,145 @@ import java.util.List; /** * 业务表 gen_table - * + * * @author ruoyi */ -public class GenTable extends BaseEntity -{ +public class GenTable extends BaseEntity { @Serial private static final long serialVersionUID = 1L; - /** 编号 */ + /** + * 编号 + */ private Long tableId; - /** 表名称 */ + /** + * 表名称 + */ @NotBlank(message = "表名称不能为空") private String tableName; - /** 表描述 */ + /** + * 表描述 + */ @NotBlank(message = "表描述不能为空") private String tableComment; - /** 关联父表的表名 */ + /** + * 关联父表的表名 + */ private String subTableName; - /** 本表关联父表的外键名 */ + /** + * 本表关联父表的外键名 + */ private String subTableFkName; - /** 实体类名称(首字母大写) */ + /** + * 实体类名称(首字母大写) + */ @NotBlank(message = "实体类名称不能为空") private String className; - /** 使用的模板(crud单表操作 tree树表操作 sub主子表操作) */ + /** + * 使用的模板(crud单表操作 tree树表操作 sub主子表操作) + */ private String tplCategory; - /** 前端类型(element-ui模版 element-plus模版) */ + /** + * 前端类型(element-ui模版 element-plus模版) + */ private String tplWebType; - /** 后端类型(MyBaitsDynamicSQL模板,常规模板) */ + /** + * 后端类型(MyBaitsDynamicSQL模板,常规模板) + */ private String tplBackendType; - /** 生成包路径 */ + /** + * 生成包路径 + */ @NotBlank(message = "生成包路径不能为空") private String packageName; - /** 生成模块名 */ + /** + * 生成模块名 + */ @NotBlank(message = "生成模块名不能为空") private String moduleName; - /** 生成业务名 */ + /** + * 生成业务名 + */ @NotBlank(message = "生成业务名不能为空") private String businessName; - /** 生成功能名 */ + /** + * 生成功能名 + */ @NotBlank(message = "生成功能名不能为空") private String functionName; - /** 生成作者 */ + /** + * 生成作者 + */ @NotBlank(message = "作者不能为空") private String functionAuthor; - /** 生成代码方式(0zip压缩包 1自定义路径) */ + /** + * 生成代码方式(0zip压缩包 1自定义路径) + */ private String genType; - /** 生成路径(不填默认项目路径) */ + /** + * 生成路径(不填默认项目路径) + */ private String genPath; - /** 主键信息 */ + /** + * 主键信息 + */ private GenTableColumn pkColumn; - /** 子表信息 */ + /** + * 子表信息 + */ private GenTable subTable; - /** 表列信息 */ + /** + * 表列信息 + */ @Valid private List columns; - /** 其它生成选项 */ + /** + * 其它生成选项 + */ private String options; - /** 树编码字段 */ + /** + * 树编码字段 + */ private String treeCode; - /** 树父编码字段 */ + /** + * 树父编码字段 + */ private String treeParentCode; - /** 树名称字段 */ + /** + * 树名称字段 + */ private String treeName; - /** 上级菜单ID字段 */ + /** + * 上级菜单ID字段 + */ private String parentMenuId; - /** 上级菜单名称字段 */ + /** + * 上级菜单名称字段 + */ private String parentMenuName; public String getTplBackendType() { @@ -112,283 +161,228 @@ public class GenTable extends BaseEntity this.tplBackendType = tplBackendType; } - public Long getTableId() - { + public Long getTableId() { return tableId; } - public void setTableId(Long tableId) - { + public void setTableId(Long tableId) { this.tableId = tableId; } - public String getTableName() - { + public String getTableName() { return tableName; } - public void setTableName(String tableName) - { + public void setTableName(String tableName) { this.tableName = tableName; } - public String getTableComment() - { + public String getTableComment() { return tableComment; } - public void setTableComment(String tableComment) - { + public void setTableComment(String tableComment) { this.tableComment = tableComment; } - public String getSubTableName() - { + public String getSubTableName() { return subTableName; } - public void setSubTableName(String subTableName) - { + public void setSubTableName(String subTableName) { this.subTableName = subTableName; } - public String getSubTableFkName() - { + public String getSubTableFkName() { return subTableFkName; } - public void setSubTableFkName(String subTableFkName) - { + public void setSubTableFkName(String subTableFkName) { this.subTableFkName = subTableFkName; } - public String getClassName() - { + public String getClassName() { return className; } - public void setClassName(String className) - { + public void setClassName(String className) { this.className = className; } - public String getTplCategory() - { + public String getTplCategory() { return tplCategory; } - public void setTplCategory(String tplCategory) - { + public void setTplCategory(String tplCategory) { this.tplCategory = tplCategory; } - public String getTplWebType() - { + public String getTplWebType() { return tplWebType; } - public void setTplWebType(String tplWebType) - { + public void setTplWebType(String tplWebType) { this.tplWebType = tplWebType; } - public String getPackageName() - { + public String getPackageName() { return packageName; } - public void setPackageName(String packageName) - { + public void setPackageName(String packageName) { this.packageName = packageName; } - public String getModuleName() - { + public String getModuleName() { return moduleName; } - public void setModuleName(String moduleName) - { + public void setModuleName(String moduleName) { this.moduleName = moduleName; } - public String getBusinessName() - { + public String getBusinessName() { return businessName; } - public void setBusinessName(String businessName) - { + public void setBusinessName(String businessName) { this.businessName = businessName; } - public String getFunctionName() - { + public String getFunctionName() { return functionName; } - public void setFunctionName(String functionName) - { + public void setFunctionName(String functionName) { this.functionName = functionName; } - public String getFunctionAuthor() - { + public String getFunctionAuthor() { return functionAuthor; } - public void setFunctionAuthor(String functionAuthor) - { + public void setFunctionAuthor(String functionAuthor) { this.functionAuthor = functionAuthor; } - public String getGenType() - { + public String getGenType() { return genType; } - public void setGenType(String genType) - { + public void setGenType(String genType) { this.genType = genType; } - public String getGenPath() - { + public String getGenPath() { return genPath; } - public void setGenPath(String genPath) - { + public void setGenPath(String genPath) { this.genPath = genPath; } - public GenTableColumn getPkColumn() - { + public GenTableColumn getPkColumn() { return pkColumn; } - public void setPkColumn(GenTableColumn pkColumn) - { + public void setPkColumn(GenTableColumn pkColumn) { this.pkColumn = pkColumn; } - public GenTable getSubTable() - { + public GenTable getSubTable() { return subTable; } - public void setSubTable(GenTable subTable) - { + public void setSubTable(GenTable subTable) { this.subTable = subTable; } - public List getColumns() - { + + public List getColumns() { return columns; } - public void setColumns(List columns) - { + public void setColumns(List columns) { this.columns = columns; } - public String getOptions() - { + public String getOptions() { return options; } - public void setOptions(String options) - { + public void setOptions(String options) { this.options = options; } - public String getTreeCode() - { + public String getTreeCode() { return treeCode; } - public void setTreeCode(String treeCode) - { + public void setTreeCode(String treeCode) { this.treeCode = treeCode; } - public String getTreeParentCode() - { + public String getTreeParentCode() { return treeParentCode; } - public void setTreeParentCode(String treeParentCode) - { + public void setTreeParentCode(String treeParentCode) { this.treeParentCode = treeParentCode; } - public String getTreeName() - { + public String getTreeName() { return treeName; } - public void setTreeName(String treeName) - { + public void setTreeName(String treeName) { this.treeName = treeName; } - public String getParentMenuId() - { + public String getParentMenuId() { return parentMenuId; } - public void setParentMenuId(String parentMenuId) - { + public void setParentMenuId(String parentMenuId) { this.parentMenuId = parentMenuId; } - public String getParentMenuName() - { + public String getParentMenuName() { return parentMenuName; } - public void setParentMenuName(String parentMenuName) - { + public void setParentMenuName(String parentMenuName) { this.parentMenuName = parentMenuName; } - public boolean isSub() - { + public boolean isSub() { return isSub(this.tplCategory); } - public static boolean isSub(String tplCategory) - { + public static boolean isSub(String tplCategory) { return tplCategory != null && StringUtils.equals(GenConstants.TPL_SUB, tplCategory); } - public boolean isTree() - { + + public boolean isTree() { return isTree(this.tplCategory); } - public static boolean isTree(String tplCategory) - { + public static boolean isTree(String tplCategory) { return tplCategory != null && StringUtils.equals(GenConstants.TPL_TREE, tplCategory); } - public boolean isCrud() - { + public boolean isCrud() { return isCrud(this.tplCategory); } - public static boolean isCrud(String tplCategory) - { + public static boolean isCrud(String tplCategory) { return tplCategory != null && StringUtils.equals(GenConstants.TPL_CRUD, tplCategory); } - public boolean isSuperColumn(String javaField) - { + public boolean isSuperColumn(String javaField) { return isSuperColumn(this.tplCategory, javaField); } - public static boolean isSuperColumn(String tplCategory, String javaField) - { - if (isTree(tplCategory)) - { + public static boolean isSuperColumn(String tplCategory, String javaField) { + if (isTree(tplCategory)) { return StringUtils.equalsAnyIgnoreCase(javaField, ArrayUtils.addAll(GenConstants.TREE_ENTITY, GenConstants.BASE_ENTITY)); } diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableColumnServiceImpl.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableColumnServiceImpl.java index ad96f7c9..be769385 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableColumnServiceImpl.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableColumnServiceImpl.java @@ -3,7 +3,7 @@ package com.ruoyi.gen.service; import com.ruoyi.common.core.text.Convert; import com.ruoyi.gen.domain.GenTableColumn; import com.ruoyi.gen.mapper.GenTableColumnMapper; -import org.springframework.beans.factory.annotation.Autowired; +import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import java.util.List; @@ -15,7 +15,7 @@ import java.util.List; */ @Service public class GenTableColumnServiceImpl implements IGenTableColumnService { - @Autowired + @Resource private GenTableColumnMapper genTableColumnMapper; /** diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java index dfbe63c9..82c160c9 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java @@ -15,6 +15,7 @@ import com.ruoyi.gen.mapper.GenTableMapper; import com.ruoyi.gen.util.GenUtils; import com.ruoyi.gen.util.VelocityInitializer; import com.ruoyi.gen.util.VelocityUtils; +import jakarta.annotation.Resource; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.velocity.Template; @@ -22,7 +23,6 @@ import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -47,10 +47,10 @@ import java.util.zip.ZipOutputStream; public class GenTableServiceImpl implements IGenTableService { private static final Logger log = LoggerFactory.getLogger(GenTableServiceImpl.class); - @Autowired + @Resource private GenTableMapper genTableMapper; - @Autowired + @Resource private GenTableColumnMapper genTableColumnMapper; /** diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java index f55bb722..1dccf017 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/GenUtils.java @@ -2,6 +2,7 @@ package com.ruoyi.gen.util; import com.ruoyi.common.core.constant.GenConstants; import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.gen.config.CommonFieldsSet; import com.ruoyi.gen.config.GenConfig; import com.ruoyi.gen.domain.GenTable; import com.ruoyi.gen.domain.GenTableColumn; @@ -68,19 +69,21 @@ public class GenUtils { } } - // 插入字段(默认所有字段都需要插入) - column.setIsInsert(GenConstants.REQUIRE); + // 插入字段(默认所有字段都需要插入,除了共通字段) + if (!CommonFieldsSet.isCommonField(columnName)) { + column.setIsInsert(GenConstants.REQUIRE); + } // 编辑字段 - if (!arraysContains(GenConstants.COLUMNNAME_NOT_EDIT, columnName) && !column.isPk()) { + if (!arraysContains(GenConstants.COLUMNNAME_NOT_EDIT, columnName) && !column.isPk() && !CommonFieldsSet.isCommonField(columnName)) { column.setIsEdit(GenConstants.REQUIRE); } // 列表字段 - if (!arraysContains(GenConstants.COLUMNNAME_NOT_LIST, columnName) && !column.isPk()) { + if (!arraysContains(GenConstants.COLUMNNAME_NOT_LIST, columnName) && !column.isPk() && !CommonFieldsSet.isCommonField(columnName)) { column.setIsList(GenConstants.REQUIRE); } // 查询字段 - if (!arraysContains(GenConstants.COLUMNNAME_NOT_QUERY, columnName) && !column.isPk()) { + if (!arraysContains(GenConstants.COLUMNNAME_NOT_QUERY, columnName) && !column.isPk() && !CommonFieldsSet.isCommonField(columnName)) { column.setIsQuery(GenConstants.REQUIRE); } diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/ruoyi-modules/ruoyi-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml index 23f41748..ab855d7c 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -33,7 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time from gen_table_column - where table_id = #{tableId} order by sort @@ -45,7 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by ordinal_position - + insert into gen_table_column ( table_id, column_name, @@ -89,7 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - + update gen_table_column column_comment = #{columnComment}, diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/serviceImpl-dynamic.java.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/serviceImpl-dynamic.java.vm index c7fce517..9dd58a30 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/serviceImpl-dynamic.java.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/serviceImpl-dynamic.java.vm @@ -22,7 +22,7 @@ import org.springframework.transaction.annotation.Transactional; import ${packageName}.domain.${subClassName}; #end import com.ruoyi.common.core.web.domain.ExtBaseEntity; -import com.ruoyi.common.security.utils.SecurityUtilsExt +import com.ruoyi.common.security.utils.SecurityUtilsExt; import ${packageName}.mapper.${ClassName}Mapper; import ${packageName}.domain.${ClassName}; import ${packageName}.mapper.${ClassName}DynamicSqlSupport; @@ -91,7 +91,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service #end ## 对like条件的特殊处理 #if ($column.queryType == "LIKE") - .and(${ClassName}DynamicSqlSupport.$column.javaField, SqlBuilder.${conditionFuncName}(${className}.get${column.javaFieldUpper}() == null ? null : "%" + ${className}.get${column.javaFieldUpper}() + "%") + .and(${ClassName}DynamicSqlSupport.$column.javaField, SqlBuilder.${conditionFuncName}(${className}.get${column.javaFieldUpper}() == null ? null : "%" + ${className}.get${column.javaFieldUpper}() + "%")) #else .and(${ClassName}DynamicSqlSupport.$column.javaField, SqlBuilder.${conditionFuncName}(${className}.get${column.javaFieldUpper}())) #end @@ -114,11 +114,11 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service @Override public int insert${ClassName}(${ClassName} ${className}) { -#foreach ($column in $columns) -#if($column.javaField == 'createTime') - ${className}.setCreateTime(DateUtils.getNowDate()); -#end -#end +###foreach ($column in $columns) +###if($column.javaField == 'createTime') +## ${className}.setCreateTime(DateUtils.getNowDate()); +###end +###end #if($table.sub) int rows = ${className}Mapper.insertSelective(${className}); insert${subClassName}(${className}); @@ -140,11 +140,11 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service @Override public int update${ClassName}(${ClassName} ${className}) { -#foreach ($column in $columns) -#if($column.javaField == 'updateTime') - ${className}.setUpdateTime(DateUtils.getNowDate()); -#end -#end +###foreach ($column in $columns) +###if($column.javaField == 'updateTime') +## ${className}.setUpdateTime(DateUtils.getNowDate()); +###end +###end #if($table.sub) ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); insert${subClassName}(${className}); @@ -169,11 +169,11 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service #end ## return ${className}Mapper.delete(dsl -> dsl.where(${ClassName}DynamicSqlSupport.${pkColumn.javaField}, SqlBuilder.isIn(${pkColumn.javaField}s))); String userId = SecurityUtilsExt.getUserIdStr(); - UpdateStatementProvider provider = SqlBuilder.update(UnitInfoDynamicSqlSupport.${className}) + UpdateStatementProvider provider = SqlBuilder.update(${ClassName}DynamicSqlSupport.${className}) .set(${ClassName}DynamicSqlSupport.deleteFlag).equalTo(ExtBaseEntity.DELETED) .set(${ClassName}DynamicSqlSupport.updateTime).equalTo(DateUtils.getNowDate()) .set(${ClassName}DynamicSqlSupport.updateBy).equalTo(userId) - .where(${ClassName}DynamicSqlSupport.unitCode, SqlBuilder.isIn(${pkColumn.javaField}s)) + .where(${ClassName}DynamicSqlSupport.${pkColumn.javaField}, SqlBuilder.isIn(${pkColumn.javaField}s)) .build() .render(RenderingStrategies.MYBATIS3); return ${className}Mapper.update(provider); diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm index 74c05bb1..f05695c5 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm @@ -108,7 +108,7 @@ - + #foreach($column in $columns) #set($javaField=$column.javaField) diff --git a/ruoyi-modules/ruoyi-system/src/test/resources/generatorConfig.xml b/ruoyi-modules/ruoyi-system/src/test/resources/generatorConfig.xml index 840af233..24089531 100644 --- a/ruoyi-modules/ruoyi-system/src/test/resources/generatorConfig.xml +++ b/ruoyi-modules/ruoyi-system/src/test/resources/generatorConfig.xml @@ -10,9 +10,9 @@ - + - + diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/GoodsTypeController.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/GoodsTypeController.java new file mode 100644 index 00000000..003d69f8 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/GoodsTypeController.java @@ -0,0 +1,91 @@ +package com.ruoyi.wms.controller; + +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.wms.domain.GoodsType; +import com.ruoyi.wms.service.IGoodsTypeService; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 物品类型管理Controller + * + * @author ryas + * created on 2024-02-18 + */ +@RestController +@RequestMapping("/GoodsType") +public class GoodsTypeController extends BaseController { + @Autowired + private IGoodsTypeService goodsTypeService; + + /** + * 查询物品类型管理列表 + */ + @RequiresPermissions("wms:GoodsType:list") + @GetMapping("/list") + public TableDataInfo list(GoodsType goodsType) { + startPage(); + List list = goodsTypeService.selectGoodsTypeList(goodsType); + return getDataTable(list); + } + + /** + * 导出物品类型管理列表 + */ + @RequiresPermissions("wms:GoodsType:export") + @Log(title = "物品类型管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, GoodsType goodsType) { + List list = goodsTypeService.selectGoodsTypeList(goodsType); + ExcelUtil util = new ExcelUtil<>(GoodsType.class); + util.exportExcel(response, list, "物品类型管理数据"); + } + + /** + * 获取物品类型管理详细信息 + */ + @RequiresPermissions("wms:GoodsType:query") + @GetMapping(value = "/{goodsTypeCd}") + public AjaxResult getInfo(@PathVariable("goodsTypeCd") String goodsTypeCd) { + return success(goodsTypeService.selectGoodsTypeByGoodsTypeCd(goodsTypeCd)); + } + + /** + * 新增物品类型管理 + */ + @RequiresPermissions("wms:GoodsType:add") + @Log(title = "物品类型管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody GoodsType goodsType) { + return toAjax(goodsTypeService.insertGoodsType(goodsType)); + } + + /** + * 修改物品类型管理 + */ + @RequiresPermissions("wms:GoodsType:edit") + @Log(title = "物品类型管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody GoodsType goodsType) { + return toAjax(goodsTypeService.updateGoodsType(goodsType)); + } + + /** + * 删除物品类型管理 + */ + @RequiresPermissions("wms:GoodsType:remove") + @Log(title = "物品类型管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{goodsTypeCds}") + public AjaxResult remove(@PathVariable String[] goodsTypeCds) { + return toAjax(goodsTypeService.deleteGoodsTypeByGoodsTypeCds(goodsTypeCds)); + } +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/UnitInfoController.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/UnitInfoController.java index 46b15678..85ee1fe1 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/UnitInfoController.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/UnitInfoController.java @@ -1,5 +1,6 @@ package com.ruoyi.wms.controller; +import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; @@ -8,6 +9,7 @@ import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.wms.domain.UnitInfo; import com.ruoyi.wms.service.IUnitInfoService; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -36,19 +38,17 @@ public class UnitInfoController extends BaseController { return getDataTable(list); } - //TODO 如果要启用导出功能,需要在domain实体类的字段上添加注解:@com.ruoyi.common.core.annotation.Excel(name = "字段名") - /* + /** * 导出单位信息管理列表 */ -// @RequiresPermissions("wms:UnitInfo:export") -// @Log(title = "单位信息管理", businessType = BusinessType.EXPORT) -// @PostMapping("/export") -// public void export(HttpServletResponse response, UnitInfo unitInfo) -// { -// List list = unitInfoService.selectUnitInfoList(unitInfo); -// ExcelUtil util = new ExcelUtil<>(UnitInfo.class); -// util.exportExcel(response, list, "单位信息管理数据"); -// } + @RequiresPermissions("wms:UnitInfo:export") + @Log(title = "单位信息管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, UnitInfo unitInfo) { + List list = unitInfoService.selectUnitInfoList(unitInfo); + ExcelUtil util = new ExcelUtil<>(UnitInfo.class); + util.exportExcel(response, list, "单位信息管理数据"); + } /** * 获取单位信息管理详细信息 diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/WarehouseInfoController.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/WarehouseInfoController.java new file mode 100644 index 00000000..0542e2ff --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/controller/WarehouseInfoController.java @@ -0,0 +1,91 @@ +package com.ruoyi.wms.controller; + +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.wms.domain.WarehouseInfo; +import com.ruoyi.wms.service.IWarehouseInfoService; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 仓库基础信息Controller + * + * @author ryas + * created on 2024-02-18 + */ +@RestController +@RequestMapping("/WarehouseInfo") +public class WarehouseInfoController extends BaseController { + @Autowired + private IWarehouseInfoService warehouseInfoService; + + /** + * 查询仓库基础信息列表 + */ + @RequiresPermissions("wms:WarehouseInfo:list") + @GetMapping("/list") + public TableDataInfo list(WarehouseInfo warehouseInfo) { + startPage(); + List list = warehouseInfoService.selectWarehouseInfoList(warehouseInfo); + return getDataTable(list); + } + + /** + * 导出仓库基础信息列表 + */ + @RequiresPermissions("wms:WarehouseInfo:export") + @Log(title = "仓库基础信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, WarehouseInfo warehouseInfo) { + List list = warehouseInfoService.selectWarehouseInfoList(warehouseInfo); + ExcelUtil util = new ExcelUtil<>(WarehouseInfo.class); + util.exportExcel(response, list, "仓库基础信息数据"); + } + + /** + * 获取仓库基础信息详细信息 + */ + @RequiresPermissions("wms:WarehouseInfo:query") + @GetMapping(value = "/{whsCd}") + public AjaxResult getInfo(@PathVariable("whsCd") String whsCd) { + return success(warehouseInfoService.selectWarehouseInfoByWhsCd(whsCd)); + } + + /** + * 新增仓库基础信息 + */ + @RequiresPermissions("wms:WarehouseInfo:add") + @Log(title = "仓库基础信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody WarehouseInfo warehouseInfo) { + return toAjax(warehouseInfoService.insertWarehouseInfo(warehouseInfo)); + } + + /** + * 修改仓库基础信息 + */ + @RequiresPermissions("wms:WarehouseInfo:edit") + @Log(title = "仓库基础信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WarehouseInfo warehouseInfo) { + return toAjax(warehouseInfoService.updateWarehouseInfo(warehouseInfo)); + } + + /** + * 删除仓库基础信息 + */ + @RequiresPermissions("wms:WarehouseInfo:remove") + @Log(title = "仓库基础信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{whsCds}") + public AjaxResult remove(@PathVariable String[] whsCds) { + return toAjax(warehouseInfoService.deleteWarehouseInfoByWhsCds(whsCds)); + } +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/GoodsType.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/GoodsType.java new file mode 100644 index 00000000..4ebdb9a5 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/GoodsType.java @@ -0,0 +1,149 @@ +package com.ruoyi.wms.domain; + +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.ExtBaseEntity; + +import java.io.Serial; +import java.io.Serializable; + +/** + * This class was generated by MyBatis Generator. + * + *
    + *
  • Table: WMS_M_GOODS_TYPE_INFO
  • + *
  • Remarks: 物品类型表
  • + *
+ * + * @author ryas + * created on 2024-02-18 + */ +public class GoodsType extends ExtBaseEntity implements Serializable { + /** + * 物品类型编码 + */ + @Excel(name = "物品类型编码") + private String goodsTypeCd; + + /** + * 从属部门ID + */ + private Integer deptId; + + /** + * 物品类型名称 + */ + @Excel(name = "物品类型名称") + private String goodsTypeName; + + /** + * 备注1 + */ + @Excel(name = "备注") + private String remark1; + + /** + * 备注2 + */ + private String remark2; + + /** + * 备注3 + */ + private String remark3; + + /** + * 备注4 + */ + private String remark4; + + /** + * 备注5 + */ + private String remark5; + + @Serial + private static final long serialVersionUID = 1L; + + public String getGoodsTypeCd() { + return goodsTypeCd; + } + + public void setGoodsTypeCd(String goodsTypeCd) { + this.goodsTypeCd = goodsTypeCd == null ? null : goodsTypeCd.trim(); + } + + public Integer getDeptId() { + return deptId; + } + + public void setDeptId(Integer deptId) { + this.deptId = deptId; + } + + public String getGoodsTypeName() { + return goodsTypeName; + } + + public void setGoodsTypeName(String goodsTypeName) { + this.goodsTypeName = goodsTypeName == null ? null : goodsTypeName.trim(); + } + + public String getRemark1() { + return remark1; + } + + public void setRemark1(String remark1) { + this.remark1 = remark1 == null ? null : remark1.trim(); + } + + public String getRemark2() { + return remark2; + } + + public void setRemark2(String remark2) { + this.remark2 = remark2 == null ? null : remark2.trim(); + } + + public String getRemark3() { + return remark3; + } + + public void setRemark3(String remark3) { + this.remark3 = remark3 == null ? null : remark3.trim(); + } + + public String getRemark4() { + return remark4; + } + + public void setRemark4(String remark4) { + this.remark4 = remark4 == null ? null : remark4.trim(); + } + + public String getRemark5() { + return remark5; + } + + public void setRemark5(String remark5) { + this.remark5 = remark5 == null ? null : remark5.trim(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", goodsTypeCd=").append(goodsTypeCd); + sb.append(", deptId=").append(deptId); + sb.append(", goodsTypeName=").append(goodsTypeName); + sb.append(", remark1=").append(remark1); + sb.append(", remark2=").append(remark2); + sb.append(", remark3=").append(remark3); + sb.append(", remark4=").append(remark4); + sb.append(", remark5=").append(remark5); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/UnitInfo.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/UnitInfo.java index 758a5a2b..2c4fc24e 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/UnitInfo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/UnitInfo.java @@ -1,147 +1,138 @@ package com.ruoyi.wms.domain; +import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.web.domain.ExtBaseEntity; -import jakarta.annotation.Generated; import java.io.Serializable; /** - * Database Table Remarks: - * 单位基础信息表 - * * This class was generated by MyBatis Generator. - * This class corresponds to the database table SF_WMS_M_UNIT_INFO + * + *
    + *
  • Table: WMS_M_UNIT_INFO
  • + *
  • Remarks: 单位基础信息表
  • + *
+ * + * @author ryas + * created on 2024-02-18 */ public class UnitInfo extends ExtBaseEntity implements Serializable { /** - * Database Column Remarks: * 单位代码 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_CODE") + @Excel(name = "单位代码") private String unitCode; /** - * Database Column Remarks: + * 从属部门ID + */ + private Integer deptId; + + /** * 单位名称 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_NAME") + @Excel(name = "单位名称") private String unitName; /** - * Database Column Remarks: * 备注1 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_1") + @Excel(name = "备注") private String remark1; /** - * Database Column Remarks: * 备注2 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_2") private String remark2; /** - * Database Column Remarks: * 备注3 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_3") private String remark3; /** - * Database Column Remarks: * 备注4 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_4") private String remark4; /** - * Database Column Remarks: * 备注5 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_5") private String remark5; - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") private static final long serialVersionUID = 1L; - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_CODE") public String getUnitCode() { return unitCode; } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_CODE") public void setUnitCode(String unitCode) { this.unitCode = unitCode == null ? null : unitCode.trim(); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_NAME") + public Integer getDeptId() { + return deptId; + } + + public void setDeptId(Integer deptId) { + this.deptId = deptId; + } + public String getUnitName() { return unitName; } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_NAME") public void setUnitName(String unitName) { this.unitName = unitName == null ? null : unitName.trim(); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_1") public String getRemark1() { return remark1; } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_1") public void setRemark1(String remark1) { this.remark1 = remark1 == null ? null : remark1.trim(); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_2") public String getRemark2() { return remark2; } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_2") public void setRemark2(String remark2) { this.remark2 = remark2 == null ? null : remark2.trim(); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_3") public String getRemark3() { return remark3; } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_3") public void setRemark3(String remark3) { this.remark3 = remark3 == null ? null : remark3.trim(); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_4") public String getRemark4() { return remark4; } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_4") public void setRemark4(String remark4) { this.remark4 = remark4 == null ? null : remark4.trim(); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_5") public String getRemark5() { return remark5; } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_5") public void setRemark5(String remark5) { this.remark5 = remark5 == null ? null : remark5.trim(); } @Override - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getClass().getSimpleName()); sb.append(" ["); sb.append("Hash = ").append(hashCode()); sb.append(", unitCode=").append(unitCode); + sb.append(", deptId=").append(deptId); sb.append(", unitName=").append(unitName); sb.append(", remark1=").append(remark1); sb.append(", remark2=").append(remark2); diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/WarehouseInfo.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/WarehouseInfo.java new file mode 100644 index 00000000..1774598d --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/domain/WarehouseInfo.java @@ -0,0 +1,328 @@ +package com.ruoyi.wms.domain; + +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.ExtBaseEntity; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * This class was generated by MyBatis Generator. + * + *
    + *
  • Table: WMS_M_WAREHOUSE_INFO
  • + *
  • Remarks: 仓库基础信息表
  • + *
+ * + * @author ryas + * created on 2024-02-18 + */ +public class WarehouseInfo extends ExtBaseEntity implements Serializable { + /** + * 仓库代码 + */ + @Excel(name = "仓库代码") + private String whsCd; + + /** + * 从属部门ID + */ + private Integer deptId; + + /** + * 仓库名称 + */ + @Excel(name = "仓库名称") + private String whsName; + + /** + * 仓库类型代码 + */ + private String whsTypeCd; + + /** + * 缩写 + */ + @Excel(name = "缩写") + private String abbr; + + /** + * 地址1 + */ + @Excel(name = "地址1") + private String addr1; + + /** + * 地址2 + */ + @Excel(name = "地址2") + private String addr2; + + /** + * 地址3 + */ + @Excel(name = "地址3") + private String addr3; + + /** + * 联系电话 + */ + @Excel(name = "联系电话") + private String phoneNo; + + /** + * 邮编 + */ + @Excel(name = "邮编") + private String zipCd; + + /** + * 联系邮箱 + */ + @Excel(name = "联系邮箱") + private String email; + + /** + * 传真号 + */ + @Excel(name = "传真号") + private String faxNo; + + /** + * 负责人 + */ + @Excel(name = "负责人") + private String respPerson; + + /** + * 区域 + */ + @Excel(name = "区域") + private String area; + + /** + * 租赁费用 + */ + @Excel(name = "租赁费用") + private BigDecimal rentalFee; + + /** + * 存储费用 + */ + @Excel(name = "存储费用") + private BigDecimal storingFee; + + private String remark1; + + private String remark2; + + private String remark3; + + private String remark4; + + private String remark5; + + @Serial + private static final long serialVersionUID = 1L; + + public String getWhsCd() { + return whsCd; + } + + public void setWhsCd(String whsCd) { + this.whsCd = whsCd == null ? null : whsCd.trim(); + } + + public Integer getDeptId() { + return deptId; + } + + public void setDeptId(Integer deptId) { + this.deptId = deptId; + } + + public String getWhsName() { + return whsName; + } + + public void setWhsName(String whsName) { + this.whsName = whsName == null ? null : whsName.trim(); + } + + public String getWhsTypeCd() { + return whsTypeCd; + } + + public void setWhsTypeCd(String whsTypeCd) { + this.whsTypeCd = whsTypeCd == null ? null : whsTypeCd.trim(); + } + + public String getAbbr() { + return abbr; + } + + public void setAbbr(String abbr) { + this.abbr = abbr == null ? null : abbr.trim(); + } + + public String getAddr1() { + return addr1; + } + + public void setAddr1(String addr1) { + this.addr1 = addr1 == null ? null : addr1.trim(); + } + + public String getAddr2() { + return addr2; + } + + public void setAddr2(String addr2) { + this.addr2 = addr2 == null ? null : addr2.trim(); + } + + public String getAddr3() { + return addr3; + } + + public void setAddr3(String addr3) { + this.addr3 = addr3 == null ? null : addr3.trim(); + } + + public String getPhoneNo() { + return phoneNo; + } + + public void setPhoneNo(String phoneNo) { + this.phoneNo = phoneNo == null ? null : phoneNo.trim(); + } + + public String getZipCd() { + return zipCd; + } + + public void setZipCd(String zipCd) { + this.zipCd = zipCd == null ? null : zipCd.trim(); + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email == null ? null : email.trim(); + } + + public String getFaxNo() { + return faxNo; + } + + public void setFaxNo(String faxNo) { + this.faxNo = faxNo == null ? null : faxNo.trim(); + } + + public String getRespPerson() { + return respPerson; + } + + public void setRespPerson(String respPerson) { + this.respPerson = respPerson == null ? null : respPerson.trim(); + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area == null ? null : area.trim(); + } + + public BigDecimal getRentalFee() { + return rentalFee; + } + + public void setRentalFee(BigDecimal rentalFee) { + this.rentalFee = rentalFee; + } + + public BigDecimal getStoringFee() { + return storingFee; + } + + public void setStoringFee(BigDecimal storingFee) { + this.storingFee = storingFee; + } + + public String getRemark1() { + return remark1; + } + + public void setRemark1(String remark1) { + this.remark1 = remark1 == null ? null : remark1.trim(); + } + + public String getRemark2() { + return remark2; + } + + public void setRemark2(String remark2) { + this.remark2 = remark2 == null ? null : remark2.trim(); + } + + public String getRemark3() { + return remark3; + } + + public void setRemark3(String remark3) { + this.remark3 = remark3 == null ? null : remark3.trim(); + } + + public String getRemark4() { + return remark4; + } + + public void setRemark4(String remark4) { + this.remark4 = remark4 == null ? null : remark4.trim(); + } + + public String getRemark5() { + return remark5; + } + + public void setRemark5(String remark5) { + this.remark5 = remark5 == null ? null : remark5.trim(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", whsCd=").append(whsCd); + sb.append(", deptId=").append(deptId); + sb.append(", whsName=").append(whsName); + sb.append(", whsTypeCd=").append(whsTypeCd); + sb.append(", abbr=").append(abbr); + sb.append(", addr1=").append(addr1); + sb.append(", addr2=").append(addr2); + sb.append(", addr3=").append(addr3); + sb.append(", phoneNo=").append(phoneNo); + sb.append(", zipCd=").append(zipCd); + sb.append(", email=").append(email); + sb.append(", faxNo=").append(faxNo); + sb.append(", respPerson=").append(respPerson); + sb.append(", area=").append(area); + sb.append(", rentalFee=").append(rentalFee); + sb.append(", storingFee=").append(storingFee); + sb.append(", remark1=").append(remark1); + sb.append(", remark2=").append(remark2); + sb.append(", remark3=").append(remark3); + sb.append(", remark4=").append(remark4); + sb.append(", remark5=").append(remark5); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeDynamicSqlSupport.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeDynamicSqlSupport.java new file mode 100644 index 00000000..4c0d7aee --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeDynamicSqlSupport.java @@ -0,0 +1,121 @@ +package com.ruoyi.wms.mapper; + +import java.sql.JDBCType; +import java.util.Date; +import org.mybatis.dynamic.sql.AliasableSqlTable; +import org.mybatis.dynamic.sql.SqlColumn; + +public final class GoodsTypeDynamicSqlSupport { + public static final GoodsType goodsType = new GoodsType(); + + /** + * 物品类型编码 + */ + public static final SqlColumn goodsTypeCd = goodsType.goodsTypeCd; + + /** + * 从属部门ID + */ + public static final SqlColumn deptId = goodsType.deptId; + + /** + * 物品类型名称 + */ + public static final SqlColumn goodsTypeName = goodsType.goodsTypeName; + + /** + * 备注1 + */ + public static final SqlColumn remark1 = goodsType.remark1; + + /** + * 备注2 + */ + public static final SqlColumn remark2 = goodsType.remark2; + + /** + * 备注3 + */ + public static final SqlColumn remark3 = goodsType.remark3; + + /** + * 备注4 + */ + public static final SqlColumn remark4 = goodsType.remark4; + + /** + * 备注5 + */ + public static final SqlColumn remark5 = goodsType.remark5; + + /** + * 更新次数 + */ + public static final SqlColumn updateCount = goodsType.updateCount; + + /** + * 更新次数 + */ + public static final SqlColumn deleteFlag = goodsType.deleteFlag; + + /** + * 创建者 + */ + public static final SqlColumn createBy = goodsType.createBy; + + /** + * 创建时间 + */ + public static final SqlColumn createTime = goodsType.createTime; + + /** + * 更新者 + */ + public static final SqlColumn updateBy = goodsType.updateBy; + + /** + * 更新时间 + */ + public static final SqlColumn updateTime = goodsType.updateTime; + + /** + * 备注 + */ + public static final SqlColumn remark = goodsType.remark; + + public static final class GoodsType extends AliasableSqlTable { + public final SqlColumn goodsTypeCd = column("GOODS_TYPE_CD", JDBCType.VARCHAR); + + public final SqlColumn deptId = column("DEPT_ID", JDBCType.INTEGER); + + public final SqlColumn goodsTypeName = column("GOODS_TYPE_NAME", JDBCType.VARCHAR); + + public final SqlColumn remark1 = column("REMARK_1", JDBCType.VARCHAR); + + public final SqlColumn remark2 = column("REMARK_2", JDBCType.VARCHAR); + + public final SqlColumn remark3 = column("REMARK_3", JDBCType.VARCHAR); + + public final SqlColumn remark4 = column("REMARK_4", JDBCType.VARCHAR); + + public final SqlColumn remark5 = column("REMARK_5", JDBCType.VARCHAR); + + public final SqlColumn updateCount = column("UPDATE_COUNT", JDBCType.INTEGER); + + public final SqlColumn deleteFlag = column("DELETE_FLAG", JDBCType.INTEGER); + + public final SqlColumn createBy = column("create_by", JDBCType.VARCHAR); + + public final SqlColumn createTime = column("create_time", JDBCType.TIMESTAMP); + + public final SqlColumn updateBy = column("update_by", JDBCType.VARCHAR); + + public final SqlColumn updateTime = column("update_time", JDBCType.TIMESTAMP); + + public final SqlColumn remark = column("remark", JDBCType.VARCHAR); + + public GoodsType() { + super("WMS_M_GOODS_TYPE_INFO", GoodsType::new); + } + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeMapper.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeMapper.java new file mode 100644 index 00000000..4e2b985f --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/GoodsTypeMapper.java @@ -0,0 +1,231 @@ +package com.ruoyi.wms.mapper; + +import com.ruoyi.common.security.utils.SecurityUtilsExt; +import com.ruoyi.wms.domain.GoodsType; +import org.apache.ibatis.annotations.*; +import org.apache.ibatis.type.JdbcType; +import org.mybatis.dynamic.sql.BasicColumn; +import org.mybatis.dynamic.sql.delete.DeleteDSLCompleter; +import org.mybatis.dynamic.sql.select.CountDSLCompleter; +import org.mybatis.dynamic.sql.select.SelectDSLCompleter; +import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; +import org.mybatis.dynamic.sql.update.UpdateDSL; +import org.mybatis.dynamic.sql.update.UpdateDSLCompleter; +import org.mybatis.dynamic.sql.update.UpdateModel; +import org.mybatis.dynamic.sql.util.SqlProviderAdapter; +import org.mybatis.dynamic.sql.util.mybatis3.*; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; + +import static com.ruoyi.wms.mapper.GoodsTypeDynamicSqlSupport.*; +import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo; + +@Mapper +public interface GoodsTypeMapper extends CommonCountMapper, CommonDeleteMapper, CommonInsertMapper, CommonUpdateMapper { + BasicColumn[] selectList = BasicColumn.columnList(goodsTypeCd, deptId, goodsTypeName, remark1, remark2, remark3, remark4, remark5, updateCount, deleteFlag, createBy, createTime, updateBy, updateTime, remark); + + @SelectProvider(type=SqlProviderAdapter.class, method="select") + @Results(id="GoodsTypeResult", value = { + @Result(column="GOODS_TYPE_CD", property="goodsTypeCd", jdbcType=JdbcType.VARCHAR, id=true), + @Result(column="DEPT_ID", property="deptId", jdbcType=JdbcType.INTEGER), + @Result(column="GOODS_TYPE_NAME", property="goodsTypeName", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_1", property="remark1", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_2", property="remark2", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_3", property="remark3", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_4", property="remark4", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_5", property="remark5", jdbcType=JdbcType.VARCHAR), + @Result(column="UPDATE_COUNT", property="updateCount", jdbcType=JdbcType.INTEGER), + @Result(column="DELETE_FLAG", property="deleteFlag", jdbcType=JdbcType.INTEGER), + @Result(column="create_by", property="createBy", jdbcType=JdbcType.VARCHAR), + @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="update_by", property="updateBy", jdbcType=JdbcType.VARCHAR), + @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR) + }) + List selectMany(SelectStatementProvider selectStatement); + + @SelectProvider(type=SqlProviderAdapter.class, method="select") + @ResultMap("GoodsTypeResult") + Optional selectOne(SelectStatementProvider selectStatement); + + default long count(CountDSLCompleter completer) { + return MyBatis3Utils.countFrom(this::count, goodsType, completer); + } + + default int delete(DeleteDSLCompleter completer) { + return MyBatis3Utils.deleteFrom(this::delete, goodsType, completer); + } + + default int deleteByPrimaryKey(String goodsTypeCd_) { + return delete(c -> + c.where(goodsTypeCd, isEqualTo(goodsTypeCd_)) + ); + } + + default int insert(GoodsType row) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + return MyBatis3Utils.insert(this::insert, row, goodsType, c -> + c.map(goodsTypeCd).toProperty("goodsTypeCd") + .map(deptId).toProperty("deptId") + .map(goodsTypeName).toProperty("goodsTypeName") + .map(remark1).toProperty("remark1") + .map(remark2).toProperty("remark2") + .map(remark3).toProperty("remark3") + .map(remark4).toProperty("remark4") + .map(remark5).toProperty("remark5") + .map(updateCount).toProperty("updateCount") + .map(deleteFlag).toProperty("deleteFlag") + .map(createBy).toProperty("createBy") + .map(createTime).toProperty("createTime") + .map(updateBy).toProperty("updateBy") + .map(updateTime).toProperty("updateTime") + .map(remark).toProperty("remark") + ); + } + + default int insertMultiple(Collection records) { + for (GoodsType row : records) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + } + return MyBatis3Utils.insertMultiple(this::insertMultiple, records, goodsType, c -> + c.map(goodsTypeCd).toProperty("goodsTypeCd") + .map(deptId).toProperty("deptId") + .map(goodsTypeName).toProperty("goodsTypeName") + .map(remark1).toProperty("remark1") + .map(remark2).toProperty("remark2") + .map(remark3).toProperty("remark3") + .map(remark4).toProperty("remark4") + .map(remark5).toProperty("remark5") + .map(updateCount).toProperty("updateCount") + .map(deleteFlag).toProperty("deleteFlag") + .map(createBy).toProperty("createBy") + .map(createTime).toProperty("createTime") + .map(updateBy).toProperty("updateBy") + .map(updateTime).toProperty("updateTime") + .map(remark).toProperty("remark") + ); + } + + default int insertSelective(GoodsType row) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + return MyBatis3Utils.insert(this::insert, row, goodsType, c -> + c.map(goodsTypeCd).toPropertyWhenPresent("goodsTypeCd", row::getGoodsTypeCd) + .map(deptId).toPropertyWhenPresent("deptId", row::getDeptId) + .map(goodsTypeName).toPropertyWhenPresent("goodsTypeName", row::getGoodsTypeName) + .map(remark1).toPropertyWhenPresent("remark1", row::getRemark1) + .map(remark2).toPropertyWhenPresent("remark2", row::getRemark2) + .map(remark3).toPropertyWhenPresent("remark3", row::getRemark3) + .map(remark4).toPropertyWhenPresent("remark4", row::getRemark4) + .map(remark5).toPropertyWhenPresent("remark5", row::getRemark5) + .map(updateCount).toPropertyWhenPresent("updateCount", row::getUpdateCount) + .map(deleteFlag).toPropertyWhenPresent("deleteFlag", row::getDeleteFlag) + .map(createBy).toPropertyWhenPresent("createBy", row::getCreateBy) + .map(createTime).toPropertyWhenPresent("createTime", row::getCreateTime) + .map(updateBy).toPropertyWhenPresent("updateBy", row::getUpdateBy) + .map(updateTime).toPropertyWhenPresent("updateTime", row::getUpdateTime) + .map(remark).toPropertyWhenPresent("remark", row::getRemark) + ); + } + + default Optional selectOne(SelectDSLCompleter completer) { + return MyBatis3Utils.selectOne(this::selectOne, selectList, goodsType, completer); + } + + default List select(SelectDSLCompleter completer) { + return MyBatis3Utils.selectList(this::selectMany, selectList, goodsType, completer); + } + + default List selectDistinct(SelectDSLCompleter completer) { + return MyBatis3Utils.selectDistinct(this::selectMany, selectList, goodsType, completer); + } + + default Optional selectByPrimaryKey(String goodsTypeCd_) { + return selectOne(c -> + c.where(goodsTypeCd, isEqualTo(goodsTypeCd_)) + ); + } + + default int update(UpdateDSLCompleter completer) { + return MyBatis3Utils.update(this::update, goodsType, completer); + } + + static UpdateDSL updateAllColumns(GoodsType row, UpdateDSL dsl) { + return dsl.set(goodsTypeCd).equalTo(row::getGoodsTypeCd) + .set(deptId).equalTo(row::getDeptId) + .set(goodsTypeName).equalTo(row::getGoodsTypeName) + .set(remark1).equalTo(row::getRemark1) + .set(remark2).equalTo(row::getRemark2) + .set(remark3).equalTo(row::getRemark3) + .set(remark4).equalTo(row::getRemark4) + .set(remark5).equalTo(row::getRemark5) + .set(updateCount).equalTo(row::getUpdateCount) + .set(deleteFlag).equalTo(row::getDeleteFlag) + .set(createBy).equalTo(row::getCreateBy) + .set(createTime).equalTo(row::getCreateTime) + .set(updateBy).equalTo(row::getUpdateBy) + .set(updateTime).equalTo(row::getUpdateTime) + .set(remark).equalTo(row::getRemark); + } + + static UpdateDSL updateSelectiveColumns(GoodsType row, UpdateDSL dsl) { + row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); + return dsl.set(goodsTypeCd).equalToWhenPresent(row::getGoodsTypeCd) + .set(deptId).equalToWhenPresent(row::getDeptId) + .set(goodsTypeName).equalToWhenPresent(row::getGoodsTypeName) + .set(remark1).equalToWhenPresent(row::getRemark1) + .set(remark2).equalToWhenPresent(row::getRemark2) + .set(remark3).equalToWhenPresent(row::getRemark3) + .set(remark4).equalToWhenPresent(row::getRemark4) + .set(remark5).equalToWhenPresent(row::getRemark5) + .set(updateCount).equalToWhenPresent(row::getUpdateCount) + .set(deleteFlag).equalToWhenPresent(row::getDeleteFlag) + .set(createBy).equalToWhenPresent(row::getCreateBy) + .set(createTime).equalToWhenPresent(row::getCreateTime) + .set(updateBy).equalToWhenPresent(row::getUpdateBy) + .set(updateTime).equalToWhenPresent(row::getUpdateTime) + .set(remark).equalToWhenPresent(row::getRemark); + } + + default int updateByPrimaryKey(GoodsType row) { + return update(c -> + c.set(deptId).equalTo(row::getDeptId) + .set(goodsTypeName).equalTo(row::getGoodsTypeName) + .set(remark1).equalTo(row::getRemark1) + .set(remark2).equalTo(row::getRemark2) + .set(remark3).equalTo(row::getRemark3) + .set(remark4).equalTo(row::getRemark4) + .set(remark5).equalTo(row::getRemark5) + .set(updateCount).equalTo(row::getUpdateCount) + .set(deleteFlag).equalTo(row::getDeleteFlag) + .set(createBy).equalTo(row::getCreateBy) + .set(createTime).equalTo(row::getCreateTime) + .set(updateBy).equalTo(row::getUpdateBy) + .set(updateTime).equalTo(row::getUpdateTime) + .set(remark).equalTo(row::getRemark) + .where(goodsTypeCd, isEqualTo(row::getGoodsTypeCd)) + ); + } + + default int updateByPrimaryKeySelective(GoodsType row) { + row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); + return update(c -> + c.set(deptId).equalToWhenPresent(row::getDeptId) + .set(goodsTypeName).equalToWhenPresent(row::getGoodsTypeName) + .set(remark1).equalToWhenPresent(row::getRemark1) + .set(remark2).equalToWhenPresent(row::getRemark2) + .set(remark3).equalToWhenPresent(row::getRemark3) + .set(remark4).equalToWhenPresent(row::getRemark4) + .set(remark5).equalToWhenPresent(row::getRemark5) + .set(updateCount).equalToWhenPresent(row::getUpdateCount) + .set(deleteFlag).equalToWhenPresent(row::getDeleteFlag) + .set(createBy).equalToWhenPresent(row::getCreateBy) + .set(createTime).equalToWhenPresent(row::getCreateTime) + .set(updateBy).equalToWhenPresent(row::getUpdateBy) + .set(updateTime).equalToWhenPresent(row::getUpdateTime) + .set(remark).equalToWhenPresent(row::getRemark) + .where(goodsTypeCd, isEqualTo(row::getGoodsTypeCd)) + ); + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/UnitInfoDynamicSqlSupport.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/UnitInfoDynamicSqlSupport.java index 9441d7a4..854a8ad2 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/UnitInfoDynamicSqlSupport.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/UnitInfoDynamicSqlSupport.java @@ -1,117 +1,94 @@ package com.ruoyi.wms.mapper; -import jakarta.annotation.Generated; -import java.sql.JDBCType; -import java.util.Date; import org.mybatis.dynamic.sql.AliasableSqlTable; import org.mybatis.dynamic.sql.SqlColumn; +import java.sql.JDBCType; +import java.util.Date; + public final class UnitInfoDynamicSqlSupport { - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") public static final UnitInfo unitInfo = new UnitInfo(); /** - * Database Column Remarks: * 单位代码 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_CODE") public static final SqlColumn unitCode = unitInfo.unitCode; /** - * Database Column Remarks: + * 从属部门ID + */ + public static final SqlColumn deptId = unitInfo.deptId; + + /** * 单位名称 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_NAME") public static final SqlColumn unitName = unitInfo.unitName; /** - * Database Column Remarks: * 备注1 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_1") public static final SqlColumn remark1 = unitInfo.remark1; /** - * Database Column Remarks: * 备注2 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_2") public static final SqlColumn remark2 = unitInfo.remark2; /** - * Database Column Remarks: * 备注3 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_3") public static final SqlColumn remark3 = unitInfo.remark3; /** - * Database Column Remarks: * 备注4 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_4") public static final SqlColumn remark4 = unitInfo.remark4; /** - * Database Column Remarks: * 备注5 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_5") public static final SqlColumn remark5 = unitInfo.remark5; /** - * Database Column Remarks: * 更新次数 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UPDATE_COUNT") public static final SqlColumn updateCount = unitInfo.updateCount; /** - * Database Column Remarks: * 删除标志 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.DELETE_FLAG") public static final SqlColumn deleteFlag = unitInfo.deleteFlag; /** - * Database Column Remarks: * 创建者 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.create_by") public static final SqlColumn createBy = unitInfo.createBy; /** - * Database Column Remarks: * 创建时间 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.create_time") public static final SqlColumn createTime = unitInfo.createTime; /** - * Database Column Remarks: * 更新者 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.update_by") public static final SqlColumn updateBy = unitInfo.updateBy; /** - * Database Column Remarks: * 更新时间 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.update_time") public static final SqlColumn updateTime = unitInfo.updateTime; /** - * Database Column Remarks: * 备注 */ - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.remark") public static final SqlColumn remark = unitInfo.remark; - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") public static final class UnitInfo extends AliasableSqlTable { public final SqlColumn unitCode = column("UNIT_CODE", JDBCType.VARCHAR); + public final SqlColumn deptId = column("DEPT_ID", JDBCType.INTEGER); + public final SqlColumn unitName = column("UNIT_NAME", JDBCType.VARCHAR); public final SqlColumn remark1 = column("REMARK_1", JDBCType.VARCHAR); @@ -139,7 +116,7 @@ public final class UnitInfoDynamicSqlSupport { public final SqlColumn remark = column("remark", JDBCType.VARCHAR); public UnitInfo() { - super("SF_WMS_M_UNIT_INFO", UnitInfo::new); + super("WMS_M_UNIT_INFO", UnitInfo::new); } } } \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/UnitInfoMapper.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/UnitInfoMapper.java index 24bb642e..f6f3b5e7 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/UnitInfoMapper.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/UnitInfoMapper.java @@ -1,9 +1,18 @@ package com.ruoyi.wms.mapper; +import static com.ruoyi.wms.mapper.UnitInfoDynamicSqlSupport.*; +import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo; + import com.ruoyi.common.security.utils.SecurityUtilsExt; import com.ruoyi.wms.domain.UnitInfo; -import jakarta.annotation.Generated; -import org.apache.ibatis.annotations.*; +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Result; +import org.apache.ibatis.annotations.ResultMap; +import org.apache.ibatis.annotations.Results; +import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.type.JdbcType; import org.mybatis.dynamic.sql.BasicColumn; import org.mybatis.dynamic.sql.delete.DeleteDSLCompleter; @@ -14,24 +23,20 @@ import org.mybatis.dynamic.sql.update.UpdateDSL; import org.mybatis.dynamic.sql.update.UpdateDSLCompleter; import org.mybatis.dynamic.sql.update.UpdateModel; import org.mybatis.dynamic.sql.util.SqlProviderAdapter; -import org.mybatis.dynamic.sql.util.mybatis3.*; - -import java.util.Collection; -import java.util.List; -import java.util.Optional; - -import static com.ruoyi.wms.mapper.UnitInfoDynamicSqlSupport.*; -import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo; +import org.mybatis.dynamic.sql.util.mybatis3.CommonCountMapper; +import org.mybatis.dynamic.sql.util.mybatis3.CommonDeleteMapper; +import org.mybatis.dynamic.sql.util.mybatis3.CommonInsertMapper; +import org.mybatis.dynamic.sql.util.mybatis3.CommonUpdateMapper; +import org.mybatis.dynamic.sql.util.mybatis3.MyBatis3Utils; @Mapper public interface UnitInfoMapper extends CommonCountMapper, CommonDeleteMapper, CommonInsertMapper, CommonUpdateMapper { - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") - BasicColumn[] selectList = BasicColumn.columnList(unitCode, unitName, remark1, remark2, remark3, remark4, remark5, updateCount, deleteFlag, createBy, createTime, updateBy, updateTime, remark); + BasicColumn[] selectList = BasicColumn.columnList(unitCode, deptId, unitName, remark1, remark2, remark3, remark4, remark5, updateCount, deleteFlag, createBy, createTime, updateBy, updateTime, remark); - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") @SelectProvider(type=SqlProviderAdapter.class, method="select") @Results(id="UnitInfoResult", value = { @Result(column="UNIT_CODE", property="unitCode", jdbcType=JdbcType.VARCHAR, id=true), + @Result(column="DEPT_ID", property="deptId", jdbcType=JdbcType.INTEGER), @Result(column="UNIT_NAME", property="unitName", jdbcType=JdbcType.VARCHAR), @Result(column="REMARK_1", property="remark1", jdbcType=JdbcType.VARCHAR), @Result(column="REMARK_2", property="remark2", jdbcType=JdbcType.VARCHAR), @@ -48,33 +53,29 @@ public interface UnitInfoMapper extends CommonCountMapper, CommonDeleteMapper, C }) List selectMany(SelectStatementProvider selectStatement); - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") @SelectProvider(type=SqlProviderAdapter.class, method="select") @ResultMap("UnitInfoResult") Optional selectOne(SelectStatementProvider selectStatement); - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default long count(CountDSLCompleter completer) { return MyBatis3Utils.countFrom(this::count, unitInfo, completer); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default int delete(DeleteDSLCompleter completer) { return MyBatis3Utils.deleteFrom(this::delete, unitInfo, completer); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default int deleteByPrimaryKey(String unitCode_) { return delete(c -> c.where(unitCode, isEqualTo(unitCode_)) ); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default int insert(UnitInfo row) { row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); return MyBatis3Utils.insert(this::insert, row, unitInfo, c -> c.map(unitCode).toProperty("unitCode") + .map(deptId).toProperty("deptId") .map(unitName).toProperty("unitName") .map(remark1).toProperty("remark1") .map(remark2).toProperty("remark2") @@ -91,13 +92,13 @@ public interface UnitInfoMapper extends CommonCountMapper, CommonDeleteMapper, C ); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default int insertMultiple(Collection records) { for (UnitInfo row : records) { row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); } return MyBatis3Utils.insertMultiple(this::insertMultiple, records, unitInfo, c -> c.map(unitCode).toProperty("unitCode") + .map(deptId).toProperty("deptId") .map(unitName).toProperty("unitName") .map(remark1).toProperty("remark1") .map(remark2).toProperty("remark2") @@ -114,11 +115,11 @@ public interface UnitInfoMapper extends CommonCountMapper, CommonDeleteMapper, C ); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default int insertSelective(UnitInfo row) { row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); return MyBatis3Utils.insert(this::insert, row, unitInfo, c -> c.map(unitCode).toPropertyWhenPresent("unitCode", row::getUnitCode) + .map(deptId).toPropertyWhenPresent("deptId", row::getDeptId) .map(unitName).toPropertyWhenPresent("unitName", row::getUnitName) .map(remark1).toPropertyWhenPresent("remark1", row::getRemark1) .map(remark2).toPropertyWhenPresent("remark2", row::getRemark2) @@ -135,36 +136,31 @@ public interface UnitInfoMapper extends CommonCountMapper, CommonDeleteMapper, C ); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default Optional selectOne(SelectDSLCompleter completer) { return MyBatis3Utils.selectOne(this::selectOne, selectList, unitInfo, completer); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default List select(SelectDSLCompleter completer) { return MyBatis3Utils.selectList(this::selectMany, selectList, unitInfo, completer); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default List selectDistinct(SelectDSLCompleter completer) { return MyBatis3Utils.selectDistinct(this::selectMany, selectList, unitInfo, completer); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default Optional selectByPrimaryKey(String unitCode_) { return selectOne(c -> c.where(unitCode, isEqualTo(unitCode_)) ); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default int update(UpdateDSLCompleter completer) { return MyBatis3Utils.update(this::update, unitInfo, completer); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") static UpdateDSL updateAllColumns(UnitInfo row, UpdateDSL dsl) { return dsl.set(unitCode).equalTo(row::getUnitCode) + .set(deptId).equalTo(row::getDeptId) .set(unitName).equalTo(row::getUnitName) .set(remark1).equalTo(row::getRemark1) .set(remark2).equalTo(row::getRemark2) @@ -180,10 +176,10 @@ public interface UnitInfoMapper extends CommonCountMapper, CommonDeleteMapper, C .set(remark).equalTo(row::getRemark); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") static UpdateDSL updateSelectiveColumns(UnitInfo row, UpdateDSL dsl) { row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); return dsl.set(unitCode).equalToWhenPresent(row::getUnitCode) + .set(deptId).equalToWhenPresent(row::getDeptId) .set(unitName).equalToWhenPresent(row::getUnitName) .set(remark1).equalToWhenPresent(row::getRemark1) .set(remark2).equalToWhenPresent(row::getRemark2) @@ -199,10 +195,10 @@ public interface UnitInfoMapper extends CommonCountMapper, CommonDeleteMapper, C .set(remark).equalToWhenPresent(row::getRemark); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default int updateByPrimaryKey(UnitInfo row) { return update(c -> - c.set(unitName).equalTo(row::getUnitName) + c.set(deptId).equalTo(row::getDeptId) + .set(unitName).equalTo(row::getUnitName) .set(remark1).equalTo(row::getRemark1) .set(remark2).equalTo(row::getRemark2) .set(remark3).equalTo(row::getRemark3) @@ -219,11 +215,11 @@ public interface UnitInfoMapper extends CommonCountMapper, CommonDeleteMapper, C ); } - @Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO") default int updateByPrimaryKeySelective(UnitInfo row) { row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); return update(c -> - c.set(unitName).equalToWhenPresent(row::getUnitName) + c.set(deptId).equalToWhenPresent(row::getDeptId) + .set(unitName).equalToWhenPresent(row::getUnitName) .set(remark1).equalToWhenPresent(row::getRemark1) .set(remark2).equalToWhenPresent(row::getRemark2) .set(remark3).equalToWhenPresent(row::getRemark3) diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/WarehouseInfoDynamicSqlSupport.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/WarehouseInfoDynamicSqlSupport.java new file mode 100644 index 00000000..09cb00f2 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/WarehouseInfoDynamicSqlSupport.java @@ -0,0 +1,198 @@ +package com.ruoyi.wms.mapper; + +import java.math.BigDecimal; +import java.sql.JDBCType; +import java.util.Date; +import org.mybatis.dynamic.sql.AliasableSqlTable; +import org.mybatis.dynamic.sql.SqlColumn; + +public final class WarehouseInfoDynamicSqlSupport { + public static final WarehouseInfo warehouseInfo = new WarehouseInfo(); + + /** + * 仓库代码 + */ + public static final SqlColumn whsCd = warehouseInfo.whsCd; + + /** + * 从属部门ID + */ + public static final SqlColumn deptId = warehouseInfo.deptId; + + /** + * 仓库名称 + */ + public static final SqlColumn whsName = warehouseInfo.whsName; + + /** + * 仓库类型代码 + */ + public static final SqlColumn whsTypeCd = warehouseInfo.whsTypeCd; + + /** + * 缩写 + */ + public static final SqlColumn abbr = warehouseInfo.abbr; + + /** + * 地址1 + */ + public static final SqlColumn addr1 = warehouseInfo.addr1; + + /** + * 地址2 + */ + public static final SqlColumn addr2 = warehouseInfo.addr2; + + /** + * 地址3 + */ + public static final SqlColumn addr3 = warehouseInfo.addr3; + + /** + * 联系电话 + */ + public static final SqlColumn phoneNo = warehouseInfo.phoneNo; + + /** + * 邮编 + */ + public static final SqlColumn zipCd = warehouseInfo.zipCd; + + /** + * 联系邮箱 + */ + public static final SqlColumn email = warehouseInfo.email; + + /** + * 传真号 + */ + public static final SqlColumn faxNo = warehouseInfo.faxNo; + + /** + * 负责人 + */ + public static final SqlColumn respPerson = warehouseInfo.respPerson; + + /** + * 区域 + */ + public static final SqlColumn area = warehouseInfo.area; + + /** + * 租赁费用 + */ + public static final SqlColumn rentalFee = warehouseInfo.rentalFee; + + /** + * 存储费用 + */ + public static final SqlColumn storingFee = warehouseInfo.storingFee; + + public static final SqlColumn remark1 = warehouseInfo.remark1; + + public static final SqlColumn remark2 = warehouseInfo.remark2; + + public static final SqlColumn remark3 = warehouseInfo.remark3; + + public static final SqlColumn remark4 = warehouseInfo.remark4; + + public static final SqlColumn remark5 = warehouseInfo.remark5; + + /** + * 更新次数 + */ + public static final SqlColumn updateCount = warehouseInfo.updateCount; + + /** + * 删除标志 + */ + public static final SqlColumn deleteFlag = warehouseInfo.deleteFlag; + + /** + * 创建者 + */ + public static final SqlColumn createBy = warehouseInfo.createBy; + + /** + * 创建时间 + */ + public static final SqlColumn createTime = warehouseInfo.createTime; + + /** + * 更新者 + */ + public static final SqlColumn updateBy = warehouseInfo.updateBy; + + /** + * 更新时间 + */ + public static final SqlColumn updateTime = warehouseInfo.updateTime; + + /** + * 备注 + */ + public static final SqlColumn remark = warehouseInfo.remark; + + public static final class WarehouseInfo extends AliasableSqlTable { + public final SqlColumn whsCd = column("WHS_CD", JDBCType.VARCHAR); + + public final SqlColumn deptId = column("DEPT_ID", JDBCType.INTEGER); + + public final SqlColumn whsName = column("WHS_NAME", JDBCType.VARCHAR); + + public final SqlColumn whsTypeCd = column("WHS_TYPE_CD", JDBCType.VARCHAR); + + public final SqlColumn abbr = column("ABBR", JDBCType.VARCHAR); + + public final SqlColumn addr1 = column("ADDR_1", JDBCType.VARCHAR); + + public final SqlColumn addr2 = column("ADDR_2", JDBCType.VARCHAR); + + public final SqlColumn addr3 = column("ADDR_3", JDBCType.VARCHAR); + + public final SqlColumn phoneNo = column("PHONE_NO", JDBCType.VARCHAR); + + public final SqlColumn zipCd = column("ZIP_CD", JDBCType.VARCHAR); + + public final SqlColumn email = column("EMAIL", JDBCType.VARCHAR); + + public final SqlColumn faxNo = column("FAX_NO", JDBCType.VARCHAR); + + public final SqlColumn respPerson = column("RESP_PERSON", JDBCType.VARCHAR); + + public final SqlColumn area = column("AREA", JDBCType.VARCHAR); + + public final SqlColumn rentalFee = column("RENTAL_FEE", JDBCType.DECIMAL); + + public final SqlColumn storingFee = column("STORING_FEE", JDBCType.DECIMAL); + + public final SqlColumn remark1 = column("REMARK_1", JDBCType.VARCHAR); + + public final SqlColumn remark2 = column("REMARK_2", JDBCType.VARCHAR); + + public final SqlColumn remark3 = column("REMARK_3", JDBCType.VARCHAR); + + public final SqlColumn remark4 = column("REMARK_4", JDBCType.VARCHAR); + + public final SqlColumn remark5 = column("REMARK_5", JDBCType.VARCHAR); + + public final SqlColumn updateCount = column("UPDATE_COUNT", JDBCType.INTEGER); + + public final SqlColumn deleteFlag = column("DELETE_FLAG", JDBCType.INTEGER); + + public final SqlColumn createBy = column("create_by", JDBCType.VARCHAR); + + public final SqlColumn createTime = column("create_time", JDBCType.TIMESTAMP); + + public final SqlColumn updateBy = column("update_by", JDBCType.VARCHAR); + + public final SqlColumn updateTime = column("update_time", JDBCType.TIMESTAMP); + + public final SqlColumn remark = column("remark", JDBCType.VARCHAR); + + public WarehouseInfo() { + super("WMS_M_WAREHOUSE_INFO", WarehouseInfo::new); + } + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/WarehouseInfoMapper.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/WarehouseInfoMapper.java new file mode 100644 index 00000000..126f7f89 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/mapper/WarehouseInfoMapper.java @@ -0,0 +1,335 @@ +package com.ruoyi.wms.mapper; + +import com.ruoyi.common.security.utils.SecurityUtilsExt; +import com.ruoyi.wms.domain.WarehouseInfo; +import org.apache.ibatis.annotations.*; +import org.apache.ibatis.type.JdbcType; +import org.mybatis.dynamic.sql.BasicColumn; +import org.mybatis.dynamic.sql.delete.DeleteDSLCompleter; +import org.mybatis.dynamic.sql.select.CountDSLCompleter; +import org.mybatis.dynamic.sql.select.SelectDSLCompleter; +import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; +import org.mybatis.dynamic.sql.update.UpdateDSL; +import org.mybatis.dynamic.sql.update.UpdateDSLCompleter; +import org.mybatis.dynamic.sql.update.UpdateModel; +import org.mybatis.dynamic.sql.util.SqlProviderAdapter; +import org.mybatis.dynamic.sql.util.mybatis3.*; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; + +import static com.ruoyi.wms.mapper.WarehouseInfoDynamicSqlSupport.*; +import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo; + +@Mapper +public interface WarehouseInfoMapper extends CommonCountMapper, CommonDeleteMapper, CommonInsertMapper, CommonUpdateMapper { + BasicColumn[] selectList = BasicColumn.columnList(whsCd, deptId, whsName, whsTypeCd, abbr, addr1, addr2, addr3, phoneNo, zipCd, email, faxNo, respPerson, area, rentalFee, storingFee, remark1, remark2, remark3, remark4, remark5, updateCount, deleteFlag, createBy, createTime, updateBy, updateTime, remark); + + @SelectProvider(type=SqlProviderAdapter.class, method="select") + @Results(id="WarehouseInfoResult", value = { + @Result(column="WHS_CD", property="whsCd", jdbcType=JdbcType.VARCHAR, id=true), + @Result(column="DEPT_ID", property="deptId", jdbcType=JdbcType.INTEGER), + @Result(column="WHS_NAME", property="whsName", jdbcType=JdbcType.VARCHAR), + @Result(column="WHS_TYPE_CD", property="whsTypeCd", jdbcType=JdbcType.VARCHAR), + @Result(column="ABBR", property="abbr", jdbcType=JdbcType.VARCHAR), + @Result(column="ADDR_1", property="addr1", jdbcType=JdbcType.VARCHAR), + @Result(column="ADDR_2", property="addr2", jdbcType=JdbcType.VARCHAR), + @Result(column="ADDR_3", property="addr3", jdbcType=JdbcType.VARCHAR), + @Result(column="PHONE_NO", property="phoneNo", jdbcType=JdbcType.VARCHAR), + @Result(column="ZIP_CD", property="zipCd", jdbcType=JdbcType.VARCHAR), + @Result(column="EMAIL", property="email", jdbcType=JdbcType.VARCHAR), + @Result(column="FAX_NO", property="faxNo", jdbcType=JdbcType.VARCHAR), + @Result(column="RESP_PERSON", property="respPerson", jdbcType=JdbcType.VARCHAR), + @Result(column="AREA", property="area", jdbcType=JdbcType.VARCHAR), + @Result(column="RENTAL_FEE", property="rentalFee", jdbcType=JdbcType.DECIMAL), + @Result(column="STORING_FEE", property="storingFee", jdbcType=JdbcType.DECIMAL), + @Result(column="REMARK_1", property="remark1", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_2", property="remark2", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_3", property="remark3", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_4", property="remark4", jdbcType=JdbcType.VARCHAR), + @Result(column="REMARK_5", property="remark5", jdbcType=JdbcType.VARCHAR), + @Result(column="UPDATE_COUNT", property="updateCount", jdbcType=JdbcType.INTEGER), + @Result(column="DELETE_FLAG", property="deleteFlag", jdbcType=JdbcType.INTEGER), + @Result(column="create_by", property="createBy", jdbcType=JdbcType.VARCHAR), + @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="update_by", property="updateBy", jdbcType=JdbcType.VARCHAR), + @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP), + @Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR) + }) + List selectMany(SelectStatementProvider selectStatement); + + @SelectProvider(type=SqlProviderAdapter.class, method="select") + @ResultMap("WarehouseInfoResult") + Optional selectOne(SelectStatementProvider selectStatement); + + default long count(CountDSLCompleter completer) { + return MyBatis3Utils.countFrom(this::count, warehouseInfo, completer); + } + + default int delete(DeleteDSLCompleter completer) { + return MyBatis3Utils.deleteFrom(this::delete, warehouseInfo, completer); + } + + default int deleteByPrimaryKey(String whsCd_) { + return delete(c -> + c.where(whsCd, isEqualTo(whsCd_)) + ); + } + + default int insert(WarehouseInfo row) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + return MyBatis3Utils.insert(this::insert, row, warehouseInfo, c -> + c.map(whsCd).toProperty("whsCd") + .map(deptId).toProperty("deptId") + .map(whsName).toProperty("whsName") + .map(whsTypeCd).toProperty("whsTypeCd") + .map(abbr).toProperty("abbr") + .map(addr1).toProperty("addr1") + .map(addr2).toProperty("addr2") + .map(addr3).toProperty("addr3") + .map(phoneNo).toProperty("phoneNo") + .map(zipCd).toProperty("zipCd") + .map(email).toProperty("email") + .map(faxNo).toProperty("faxNo") + .map(respPerson).toProperty("respPerson") + .map(area).toProperty("area") + .map(rentalFee).toProperty("rentalFee") + .map(storingFee).toProperty("storingFee") + .map(remark1).toProperty("remark1") + .map(remark2).toProperty("remark2") + .map(remark3).toProperty("remark3") + .map(remark4).toProperty("remark4") + .map(remark5).toProperty("remark5") + .map(updateCount).toProperty("updateCount") + .map(deleteFlag).toProperty("deleteFlag") + .map(createBy).toProperty("createBy") + .map(createTime).toProperty("createTime") + .map(updateBy).toProperty("updateBy") + .map(updateTime).toProperty("updateTime") + .map(remark).toProperty("remark") + ); + } + + default int insertMultiple(Collection records) { + for (WarehouseInfo row : records) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + } + return MyBatis3Utils.insertMultiple(this::insertMultiple, records, warehouseInfo, c -> + c.map(whsCd).toProperty("whsCd") + .map(deptId).toProperty("deptId") + .map(whsName).toProperty("whsName") + .map(whsTypeCd).toProperty("whsTypeCd") + .map(abbr).toProperty("abbr") + .map(addr1).toProperty("addr1") + .map(addr2).toProperty("addr2") + .map(addr3).toProperty("addr3") + .map(phoneNo).toProperty("phoneNo") + .map(zipCd).toProperty("zipCd") + .map(email).toProperty("email") + .map(faxNo).toProperty("faxNo") + .map(respPerson).toProperty("respPerson") + .map(area).toProperty("area") + .map(rentalFee).toProperty("rentalFee") + .map(storingFee).toProperty("storingFee") + .map(remark1).toProperty("remark1") + .map(remark2).toProperty("remark2") + .map(remark3).toProperty("remark3") + .map(remark4).toProperty("remark4") + .map(remark5).toProperty("remark5") + .map(updateCount).toProperty("updateCount") + .map(deleteFlag).toProperty("deleteFlag") + .map(createBy).toProperty("createBy") + .map(createTime).toProperty("createTime") + .map(updateBy).toProperty("updateBy") + .map(updateTime).toProperty("updateTime") + .map(remark).toProperty("remark") + ); + } + + default int insertSelective(WarehouseInfo row) { + row.setCommonForInsert(SecurityUtilsExt.getUserIdStr()); + return MyBatis3Utils.insert(this::insert, row, warehouseInfo, c -> + c.map(whsCd).toPropertyWhenPresent("whsCd", row::getWhsCd) + .map(deptId).toPropertyWhenPresent("deptId", row::getDeptId) + .map(whsName).toPropertyWhenPresent("whsName", row::getWhsName) + .map(whsTypeCd).toPropertyWhenPresent("whsTypeCd", row::getWhsTypeCd) + .map(abbr).toPropertyWhenPresent("abbr", row::getAbbr) + .map(addr1).toPropertyWhenPresent("addr1", row::getAddr1) + .map(addr2).toPropertyWhenPresent("addr2", row::getAddr2) + .map(addr3).toPropertyWhenPresent("addr3", row::getAddr3) + .map(phoneNo).toPropertyWhenPresent("phoneNo", row::getPhoneNo) + .map(zipCd).toPropertyWhenPresent("zipCd", row::getZipCd) + .map(email).toPropertyWhenPresent("email", row::getEmail) + .map(faxNo).toPropertyWhenPresent("faxNo", row::getFaxNo) + .map(respPerson).toPropertyWhenPresent("respPerson", row::getRespPerson) + .map(area).toPropertyWhenPresent("area", row::getArea) + .map(rentalFee).toPropertyWhenPresent("rentalFee", row::getRentalFee) + .map(storingFee).toPropertyWhenPresent("storingFee", row::getStoringFee) + .map(remark1).toPropertyWhenPresent("remark1", row::getRemark1) + .map(remark2).toPropertyWhenPresent("remark2", row::getRemark2) + .map(remark3).toPropertyWhenPresent("remark3", row::getRemark3) + .map(remark4).toPropertyWhenPresent("remark4", row::getRemark4) + .map(remark5).toPropertyWhenPresent("remark5", row::getRemark5) + .map(updateCount).toPropertyWhenPresent("updateCount", row::getUpdateCount) + .map(deleteFlag).toPropertyWhenPresent("deleteFlag", row::getDeleteFlag) + .map(createBy).toPropertyWhenPresent("createBy", row::getCreateBy) + .map(createTime).toPropertyWhenPresent("createTime", row::getCreateTime) + .map(updateBy).toPropertyWhenPresent("updateBy", row::getUpdateBy) + .map(updateTime).toPropertyWhenPresent("updateTime", row::getUpdateTime) + .map(remark).toPropertyWhenPresent("remark", row::getRemark) + ); + } + + default Optional selectOne(SelectDSLCompleter completer) { + return MyBatis3Utils.selectOne(this::selectOne, selectList, warehouseInfo, completer); + } + + default List select(SelectDSLCompleter completer) { + return MyBatis3Utils.selectList(this::selectMany, selectList, warehouseInfo, completer); + } + + default List selectDistinct(SelectDSLCompleter completer) { + return MyBatis3Utils.selectDistinct(this::selectMany, selectList, warehouseInfo, completer); + } + + default Optional selectByPrimaryKey(String whsCd_) { + return selectOne(c -> + c.where(whsCd, isEqualTo(whsCd_)) + ); + } + + default int update(UpdateDSLCompleter completer) { + return MyBatis3Utils.update(this::update, warehouseInfo, completer); + } + + static UpdateDSL updateAllColumns(WarehouseInfo row, UpdateDSL dsl) { + return dsl.set(whsCd).equalTo(row::getWhsCd) + .set(deptId).equalTo(row::getDeptId) + .set(whsName).equalTo(row::getWhsName) + .set(whsTypeCd).equalTo(row::getWhsTypeCd) + .set(abbr).equalTo(row::getAbbr) + .set(addr1).equalTo(row::getAddr1) + .set(addr2).equalTo(row::getAddr2) + .set(addr3).equalTo(row::getAddr3) + .set(phoneNo).equalTo(row::getPhoneNo) + .set(zipCd).equalTo(row::getZipCd) + .set(email).equalTo(row::getEmail) + .set(faxNo).equalTo(row::getFaxNo) + .set(respPerson).equalTo(row::getRespPerson) + .set(area).equalTo(row::getArea) + .set(rentalFee).equalTo(row::getRentalFee) + .set(storingFee).equalTo(row::getStoringFee) + .set(remark1).equalTo(row::getRemark1) + .set(remark2).equalTo(row::getRemark2) + .set(remark3).equalTo(row::getRemark3) + .set(remark4).equalTo(row::getRemark4) + .set(remark5).equalTo(row::getRemark5) + .set(updateCount).equalTo(row::getUpdateCount) + .set(deleteFlag).equalTo(row::getDeleteFlag) + .set(createBy).equalTo(row::getCreateBy) + .set(createTime).equalTo(row::getCreateTime) + .set(updateBy).equalTo(row::getUpdateBy) + .set(updateTime).equalTo(row::getUpdateTime) + .set(remark).equalTo(row::getRemark); + } + + static UpdateDSL updateSelectiveColumns(WarehouseInfo row, UpdateDSL dsl) { + row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); + return dsl.set(whsCd).equalToWhenPresent(row::getWhsCd) + .set(deptId).equalToWhenPresent(row::getDeptId) + .set(whsName).equalToWhenPresent(row::getWhsName) + .set(whsTypeCd).equalToWhenPresent(row::getWhsTypeCd) + .set(abbr).equalToWhenPresent(row::getAbbr) + .set(addr1).equalToWhenPresent(row::getAddr1) + .set(addr2).equalToWhenPresent(row::getAddr2) + .set(addr3).equalToWhenPresent(row::getAddr3) + .set(phoneNo).equalToWhenPresent(row::getPhoneNo) + .set(zipCd).equalToWhenPresent(row::getZipCd) + .set(email).equalToWhenPresent(row::getEmail) + .set(faxNo).equalToWhenPresent(row::getFaxNo) + .set(respPerson).equalToWhenPresent(row::getRespPerson) + .set(area).equalToWhenPresent(row::getArea) + .set(rentalFee).equalToWhenPresent(row::getRentalFee) + .set(storingFee).equalToWhenPresent(row::getStoringFee) + .set(remark1).equalToWhenPresent(row::getRemark1) + .set(remark2).equalToWhenPresent(row::getRemark2) + .set(remark3).equalToWhenPresent(row::getRemark3) + .set(remark4).equalToWhenPresent(row::getRemark4) + .set(remark5).equalToWhenPresent(row::getRemark5) + .set(updateCount).equalToWhenPresent(row::getUpdateCount) + .set(deleteFlag).equalToWhenPresent(row::getDeleteFlag) + .set(createBy).equalToWhenPresent(row::getCreateBy) + .set(createTime).equalToWhenPresent(row::getCreateTime) + .set(updateBy).equalToWhenPresent(row::getUpdateBy) + .set(updateTime).equalToWhenPresent(row::getUpdateTime) + .set(remark).equalToWhenPresent(row::getRemark); + } + + default int updateByPrimaryKey(WarehouseInfo row) { + return update(c -> + c.set(deptId).equalTo(row::getDeptId) + .set(whsName).equalTo(row::getWhsName) + .set(whsTypeCd).equalTo(row::getWhsTypeCd) + .set(abbr).equalTo(row::getAbbr) + .set(addr1).equalTo(row::getAddr1) + .set(addr2).equalTo(row::getAddr2) + .set(addr3).equalTo(row::getAddr3) + .set(phoneNo).equalTo(row::getPhoneNo) + .set(zipCd).equalTo(row::getZipCd) + .set(email).equalTo(row::getEmail) + .set(faxNo).equalTo(row::getFaxNo) + .set(respPerson).equalTo(row::getRespPerson) + .set(area).equalTo(row::getArea) + .set(rentalFee).equalTo(row::getRentalFee) + .set(storingFee).equalTo(row::getStoringFee) + .set(remark1).equalTo(row::getRemark1) + .set(remark2).equalTo(row::getRemark2) + .set(remark3).equalTo(row::getRemark3) + .set(remark4).equalTo(row::getRemark4) + .set(remark5).equalTo(row::getRemark5) + .set(updateCount).equalTo(row::getUpdateCount) + .set(deleteFlag).equalTo(row::getDeleteFlag) + .set(createBy).equalTo(row::getCreateBy) + .set(createTime).equalTo(row::getCreateTime) + .set(updateBy).equalTo(row::getUpdateBy) + .set(updateTime).equalTo(row::getUpdateTime) + .set(remark).equalTo(row::getRemark) + .where(whsCd, isEqualTo(row::getWhsCd)) + ); + } + + default int updateByPrimaryKeySelective(WarehouseInfo row) { + row.setCommonForUpdate(SecurityUtilsExt.getUserIdStr()); + return update(c -> + c.set(deptId).equalToWhenPresent(row::getDeptId) + .set(whsName).equalToWhenPresent(row::getWhsName) + .set(whsTypeCd).equalToWhenPresent(row::getWhsTypeCd) + .set(abbr).equalToWhenPresent(row::getAbbr) + .set(addr1).equalToWhenPresent(row::getAddr1) + .set(addr2).equalToWhenPresent(row::getAddr2) + .set(addr3).equalToWhenPresent(row::getAddr3) + .set(phoneNo).equalToWhenPresent(row::getPhoneNo) + .set(zipCd).equalToWhenPresent(row::getZipCd) + .set(email).equalToWhenPresent(row::getEmail) + .set(faxNo).equalToWhenPresent(row::getFaxNo) + .set(respPerson).equalToWhenPresent(row::getRespPerson) + .set(area).equalToWhenPresent(row::getArea) + .set(rentalFee).equalToWhenPresent(row::getRentalFee) + .set(storingFee).equalToWhenPresent(row::getStoringFee) + .set(remark1).equalToWhenPresent(row::getRemark1) + .set(remark2).equalToWhenPresent(row::getRemark2) + .set(remark3).equalToWhenPresent(row::getRemark3) + .set(remark4).equalToWhenPresent(row::getRemark4) + .set(remark5).equalToWhenPresent(row::getRemark5) + .set(updateCount).equalToWhenPresent(row::getUpdateCount) + .set(deleteFlag).equalToWhenPresent(row::getDeleteFlag) + .set(createBy).equalToWhenPresent(row::getCreateBy) + .set(createTime).equalToWhenPresent(row::getCreateTime) + .set(updateBy).equalToWhenPresent(row::getUpdateBy) + .set(updateTime).equalToWhenPresent(row::getUpdateTime) + .set(remark).equalToWhenPresent(row::getRemark) + .where(whsCd, isEqualTo(row::getWhsCd)) + ); + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IGoodsTypeService.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IGoodsTypeService.java new file mode 100644 index 00000000..eed265a7 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IGoodsTypeService.java @@ -0,0 +1,61 @@ +package com.ruoyi.wms.service; + +import java.util.List; + +import com.ruoyi.wms.domain .GoodsType; + +/** + * 物品类型管理Service接口 + * + * @author ryas + * created on 2024-02-18 + */ +public interface IGoodsTypeService { + /** + * 查询物品类型管理 + * + * @param goodsTypeCd 物品类型管理主键 + * @return 物品类型管理 + */ + GoodsType selectGoodsTypeByGoodsTypeCd(String goodsTypeCd); + + /** + * 查询物品类型管理列表 + * + * @param goodsType 物品类型管理 + * @return 物品类型管理集合 + */ + List selectGoodsTypeList(GoodsType goodsType); + + /** + * 新增物品类型管理 + * + * @param goodsType 物品类型管理 + * @return 结果 + */ + int insertGoodsType(GoodsType goodsType); + + /** + * 修改物品类型管理 + * + * @param goodsType 物品类型管理 + * @return 结果 + */ + int updateGoodsType(GoodsType goodsType); + + /** + * 批量删除物品类型管理 + * + * @param goodsTypeCds 需要删除的物品类型管理主键集合 + * @return 结果 + */ + int deleteGoodsTypeByGoodsTypeCds(String[] goodsTypeCds); + + /** + * 删除物品类型管理信息 + * + * @param goodsTypeCd 物品类型管理主键 + * @return 结果 + */ + int deleteGoodsTypeByGoodsTypeCd(String goodsTypeCd); +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IWarehouseInfoService.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IWarehouseInfoService.java new file mode 100644 index 00000000..f544d7fb --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/IWarehouseInfoService.java @@ -0,0 +1,61 @@ +package com.ruoyi.wms.service; + +import java.util.List; + +import com.ruoyi.wms.domain .WarehouseInfo; + +/** + * 仓库基础信息Service接口 + * + * @author ryas + * created on 2024-02-18 + */ +public interface IWarehouseInfoService { + /** + * 查询仓库基础信息 + * + * @param whsCd 仓库基础信息主键 + * @return 仓库基础信息 + */ + WarehouseInfo selectWarehouseInfoByWhsCd(String whsCd); + + /** + * 查询仓库基础信息列表 + * + * @param warehouseInfo 仓库基础信息 + * @return 仓库基础信息集合 + */ + List selectWarehouseInfoList(WarehouseInfo warehouseInfo); + + /** + * 新增仓库基础信息 + * + * @param warehouseInfo 仓库基础信息 + * @return 结果 + */ + int insertWarehouseInfo(WarehouseInfo warehouseInfo); + + /** + * 修改仓库基础信息 + * + * @param warehouseInfo 仓库基础信息 + * @return 结果 + */ + int updateWarehouseInfo(WarehouseInfo warehouseInfo); + + /** + * 批量删除仓库基础信息 + * + * @param whsCds 需要删除的仓库基础信息主键集合 + * @return 结果 + */ + int deleteWarehouseInfoByWhsCds(String[] whsCds); + + /** + * 删除仓库基础信息信息 + * + * @param whsCd 仓库基础信息主键 + * @return 结果 + */ + int deleteWarehouseInfoByWhsCd(String whsCd); +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/GoodsTypeServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/GoodsTypeServiceImpl.java new file mode 100644 index 00000000..02338249 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/GoodsTypeServiceImpl.java @@ -0,0 +1,122 @@ +package com.ruoyi.wms.service.impl; + +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.uuid.snowflake.SnowFlakeIdGenerator; +import com.ruoyi.common.core.web.domain.ExtBaseEntity; +import com.ruoyi.common.security.utils.SecurityUtilsExt; +import com.ruoyi.wms.domain.GoodsType; +import com.ruoyi.wms.mapper.GoodsTypeDynamicSqlSupport; +import com.ruoyi.wms.mapper.GoodsTypeMapper; +import com.ruoyi.wms.service.IGoodsTypeService; +import org.mybatis.dynamic.sql.SqlBuilder; +import org.mybatis.dynamic.sql.render.RenderingStrategies; +import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; +import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +/** + * 物品类型管理Service业务层处理 + * + * @author ryas + * created on 2024-02-18 + */ +@Service +public class GoodsTypeServiceImpl implements IGoodsTypeService { + @Autowired + private GoodsTypeMapper goodsTypeMapper; + + /** + * 查询物品类型管理 + * + * @param goodsTypeCd 物品类型管理主键 + * @return 物品类型管理 + */ + @Override + public GoodsType selectGoodsTypeByGoodsTypeCd(String goodsTypeCd) { + Optional result = goodsTypeMapper.selectOne(dsl -> dsl.where(GoodsTypeDynamicSqlSupport.goodsTypeCd, SqlBuilder.isEqualTo(goodsTypeCd))); + return result.orElse(null); + } + + /** + * 查询物品类型管理列表 + * + * @param goodsType 物品类型管理 + * @return 物品类型管理 + */ + @Override + public List selectGoodsTypeList(GoodsType goodsType) { + SelectStatementProvider provider = SqlBuilder.select(GoodsTypeMapper.selectList) + .from(GoodsTypeDynamicSqlSupport.goodsType) + .where(GoodsTypeDynamicSqlSupport.deleteFlag, SqlBuilder.isEqualTo(ExtBaseEntity.NOT_DELETE)) + .and(GoodsTypeDynamicSqlSupport.goodsTypeCd, SqlBuilder.isEqualToWhenPresent(goodsType.getGoodsTypeCd())) + .and(GoodsTypeDynamicSqlSupport.goodsTypeName, SqlBuilder.isLikeWhenPresent(goodsType.getGoodsTypeName() == null ? null : "%" + goodsType.getGoodsTypeName() + "%")) + .and(GoodsTypeDynamicSqlSupport.remark1, SqlBuilder.isLikeWhenPresent(goodsType.getRemark1() == null ? null : "%" + goodsType.getRemark1() + "%")) + .build() + .render(RenderingStrategies.MYBATIS3); + return goodsTypeMapper.selectMany(provider); + } + + /** + * 新增物品类型管理 + * + * @param goodsType 物品类型管理 + * @return 结果 + */ + @Override + public int insertGoodsType(GoodsType goodsType) { + if (StringUtils.isBlank(goodsType.getGoodsTypeCd())) { + goodsType.setGoodsTypeCd(SnowFlakeIdGenerator.nextId()); + } + return goodsTypeMapper.insertSelective(goodsType); + } + + /** + * 修改物品类型管理 + * + * @param goodsType 物品类型管理 + * @return 结果 + */ + @Override + public int updateGoodsType(GoodsType goodsType) { + return goodsTypeMapper.updateByPrimaryKeySelective(goodsType); + } + + /** + * 批量删除物品类型管理 + * + * @param goodsTypeCds 需要删除的物品类型管理主键 + * @return 结果 + */ + @Override + public int deleteGoodsTypeByGoodsTypeCds(String[] goodsTypeCds) { + String userId = SecurityUtilsExt.getUserIdStr(); + UpdateStatementProvider provider = SqlBuilder.update(GoodsTypeDynamicSqlSupport.goodsType) + .set(GoodsTypeDynamicSqlSupport.deleteFlag).equalTo(ExtBaseEntity.DELETED) + .set(GoodsTypeDynamicSqlSupport.updateTime).equalTo(DateUtils.getNowDate()) + .set(GoodsTypeDynamicSqlSupport.updateBy).equalTo(userId) + .where(GoodsTypeDynamicSqlSupport.goodsTypeCd, SqlBuilder.isIn(goodsTypeCds)) + .build() + .render(RenderingStrategies.MYBATIS3); + return goodsTypeMapper.update(provider); + } + + /** + * 删除物品类型管理信息 + * + * @param goodsTypeCd 物品类型管理主键 + * @return 结果 + */ + @Override + public int deleteGoodsTypeByGoodsTypeCd(String goodsTypeCd) { + GoodsType record = new GoodsType(); + record.setGoodsTypeCd(goodsTypeCd); + record.setDeleteFlag(ExtBaseEntity.DELETED); + record.setUpdateTime(DateUtils.getNowDate()); + return goodsTypeMapper.updateByPrimaryKey(record); + } +} diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/WarehouseInfoServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/WarehouseInfoServiceImpl.java new file mode 100644 index 00000000..565df981 --- /dev/null +++ b/ruoyi-modules/ruoyi-wms/src/main/java/com/ruoyi/wms/service/impl/WarehouseInfoServiceImpl.java @@ -0,0 +1,121 @@ +package com.ruoyi.wms.service.impl; + +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.uuid.snowflake.SnowFlakeIdGenerator; +import com.ruoyi.common.core.web.domain.ExtBaseEntity; +import com.ruoyi.common.security.utils.SecurityUtilsExt; +import com.ruoyi.wms.domain.WarehouseInfo; +import com.ruoyi.wms.mapper.WarehouseInfoDynamicSqlSupport; +import com.ruoyi.wms.mapper.WarehouseInfoMapper; +import com.ruoyi.wms.service.IWarehouseInfoService; +import org.mybatis.dynamic.sql.SqlBuilder; +import org.mybatis.dynamic.sql.render.RenderingStrategies; +import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; +import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +/** + * 仓库基础信息Service业务层处理 + * + * @author ryas + * created on 2024-02-18 + */ +@Service +public class WarehouseInfoServiceImpl implements IWarehouseInfoService { + @Autowired + private WarehouseInfoMapper warehouseInfoMapper; + + /** + * 查询仓库基础信息 + * + * @param whsCd 仓库基础信息主键 + * @return 仓库基础信息 + */ + @Override + public WarehouseInfo selectWarehouseInfoByWhsCd(String whsCd) { + Optional result = warehouseInfoMapper.selectOne(dsl -> dsl.where(WarehouseInfoDynamicSqlSupport.whsCd, SqlBuilder.isEqualTo(whsCd))); + return result.orElse(null); + } + + /** + * 查询仓库基础信息列表 + * + * @param warehouseInfo 仓库基础信息 + * @return 仓库基础信息 + */ + @Override + public List selectWarehouseInfoList(WarehouseInfo warehouseInfo) { + SelectStatementProvider provider = SqlBuilder.select(WarehouseInfoMapper.selectList) + .from(WarehouseInfoDynamicSqlSupport.warehouseInfo) + .where(WarehouseInfoDynamicSqlSupport.deleteFlag, SqlBuilder.isEqualTo(ExtBaseEntity.NOT_DELETE)) + .and(WarehouseInfoDynamicSqlSupport.whsCd, SqlBuilder.isEqualToWhenPresent(warehouseInfo.getWhsCd())) + .and(WarehouseInfoDynamicSqlSupport.whsName, SqlBuilder.isLikeWhenPresent(warehouseInfo.getWhsName() == null ? null : "%" + warehouseInfo.getWhsName() + "%")) + .build() + .render(RenderingStrategies.MYBATIS3); + return warehouseInfoMapper.selectMany(provider); + } + + /** + * 新增仓库基础信息 + * + * @param warehouseInfo 仓库基础信息 + * @return 结果 + */ + @Override + public int insertWarehouseInfo(WarehouseInfo warehouseInfo) { + if (StringUtils.isBlank(warehouseInfo.getWhsCd())) { + warehouseInfo.setWhsCd(SnowFlakeIdGenerator.nextId()); + } + return warehouseInfoMapper.insertSelective(warehouseInfo); + } + + /** + * 修改仓库基础信息 + * + * @param warehouseInfo 仓库基础信息 + * @return 结果 + */ + @Override + public int updateWarehouseInfo(WarehouseInfo warehouseInfo) { + return warehouseInfoMapper.updateByPrimaryKeySelective(warehouseInfo); + } + + /** + * 批量删除仓库基础信息 + * + * @param whsCds 需要删除的仓库基础信息主键 + * @return 结果 + */ + @Override + public int deleteWarehouseInfoByWhsCds(String[] whsCds) { + String userId = SecurityUtilsExt.getUserIdStr(); + UpdateStatementProvider provider = SqlBuilder.update(WarehouseInfoDynamicSqlSupport.warehouseInfo) + .set(WarehouseInfoDynamicSqlSupport.deleteFlag).equalTo(ExtBaseEntity.DELETED) + .set(WarehouseInfoDynamicSqlSupport.updateTime).equalTo(DateUtils.getNowDate()) + .set(WarehouseInfoDynamicSqlSupport.updateBy).equalTo(userId) + .where(WarehouseInfoDynamicSqlSupport.whsCd, SqlBuilder.isIn(whsCds)) + .build() + .render(RenderingStrategies.MYBATIS3); + return warehouseInfoMapper.update(provider); + } + + /** + * 删除仓库基础信息信息 + * + * @param whsCd 仓库基础信息主键 + * @return 结果 + */ + @Override + public int deleteWarehouseInfoByWhsCd(String whsCd) { + WarehouseInfo record = new WarehouseInfo(); + record.setWhsCd(whsCd); + record.setDeleteFlag(ExtBaseEntity.DELETED); + record.setUpdateTime(DateUtils.getNowDate()); + return warehouseInfoMapper.updateByPrimaryKey(record); + } +} diff --git a/ruoyi-modules/ruoyi-wms/src/test/resources/generatorConfig.xml b/ruoyi-modules/ruoyi-wms/src/test/resources/generatorConfig.xml index cd956ac8..9833bc75 100644 --- a/ruoyi-modules/ruoyi-wms/src/test/resources/generatorConfig.xml +++ b/ruoyi-modules/ruoyi-wms/src/test/resources/generatorConfig.xml @@ -10,9 +10,9 @@ - + - + @@ -40,6 +40,9 @@ - + + +
+ \ No newline at end of file diff --git a/ruoyi-ui/src/api/wms/GoodsType.js b/ruoyi-ui/src/api/wms/GoodsType.js new file mode 100644 index 00000000..dc21c1e2 --- /dev/null +++ b/ruoyi-ui/src/api/wms/GoodsType.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询物品类型管理列表 +export function listGoodsType(query) { + return request({ + url: '/wms/GoodsType/list', + method: 'get', + params: query + }) +} + +// 查询物品类型管理详细 +export function getGoodsType(goodsTypeCd) { + return request({ + url: '/wms/GoodsType/' + goodsTypeCd, + method: 'get' + }) +} + +// 新增物品类型管理 +export function addGoodsType(data) { + return request({ + url: '/wms/GoodsType', + method: 'post', + data: data + }) +} + +// 修改物品类型管理 +export function updateGoodsType(data) { + return request({ + url: '/wms/GoodsType', + method: 'put', + data: data + }) +} + +// 删除物品类型管理 +export function delGoodsType(goodsTypeCd) { + return request({ + url: '/wms/GoodsType/' + goodsTypeCd, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/wms/WarehouseInfo.js b/ruoyi-ui/src/api/wms/WarehouseInfo.js new file mode 100644 index 00000000..7f7c8eba --- /dev/null +++ b/ruoyi-ui/src/api/wms/WarehouseInfo.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询仓库基础信息列表 +export function listWarehouseInfo(query) { + return request({ + url: '/wms/WarehouseInfo/list', + method: 'get', + params: query + }) +} + +// 查询仓库基础信息详细 +export function getWarehouseInfo(whsCd) { + return request({ + url: '/wms/WarehouseInfo/' + whsCd, + method: 'get' + }) +} + +// 新增仓库基础信息 +export function addWarehouseInfo(data) { + return request({ + url: '/wms/WarehouseInfo', + method: 'post', + data: data + }) +} + +// 修改仓库基础信息 +export function updateWarehouseInfo(data) { + return request({ + url: '/wms/WarehouseInfo', + method: 'put', + data: data + }) +} + +// 删除仓库基础信息 +export function delWarehouseInfo(whsCd) { + return request({ + url: '/wms/WarehouseInfo/' + whsCd, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index ccd88c52..da64255d 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -4,15 +4,15 @@

RYAS后台管理框架

- 此后台管理系统基于Ruoyi开源基盘(v{{ version }}) + 此后台管理系统基于开源基盘Ruoyi(v{{ version }})

已从原本的Ruoyi全面升级:

    -
  • Java8 -> Java21
  • -
  • SpringBoot 2.7 -> SpringBoot 3.1
  • -
  • SpringCloud 2020.x -> SpringCloud 2023.0.5
  • +
  • Java 8 升级到 Java 21
  • +
  • SpringBoot 2.7 升级到 SpringBoot 3.1
  • +
  • SpringCloud 2020.x 升级到 SpringCloud 2023.0.5
diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue index c434e492..fff47085 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/ruoyi-ui/src/views/login.vue @@ -59,7 +59,7 @@ diff --git a/ruoyi-ui/src/views/wms/GoodsType/index.vue b/ruoyi-ui/src/views/wms/GoodsType/index.vue new file mode 100644 index 00000000..e0712f3c --- /dev/null +++ b/ruoyi-ui/src/views/wms/GoodsType/index.vue @@ -0,0 +1,258 @@ + + + diff --git a/ruoyi-ui/src/views/wms/UnitInfo/index.vue b/ruoyi-ui/src/views/wms/UnitInfo/index.vue index 2096fe08..6a262b12 100644 --- a/ruoyi-ui/src/views/wms/UnitInfo/index.vue +++ b/ruoyi-ui/src/views/wms/UnitInfo/index.vue @@ -65,11 +65,11 @@ - + - +