添加单位信息表

pull/362/head
AlanScipio 2 years ago
parent 17adb9ba0f
commit 58fa00199e

@ -2,11 +2,10 @@ package com.ruoyi.common.core.constant;
/**
*
*
*
* @author ruoyi
*/
public class Constants
{
public class Constants {
/**
* UTF-8
*/
@ -120,16 +119,16 @@ public class Constants
/**
* json
*/
public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.ruoyi" };
public static final String[] JSON_WHITELIST_STR = {"org.springframework", "com.ruoyi"};
/**
* 访
*/
public static final String[] JOB_WHITELIST_STR = { "com.ruoyi" };
public static final String[] JOB_WHITELIST_STR = {"com.ruoyi"};
/**
*
*/
public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
"org.springframework", "org.apache", "com.ruoyi.common.core.utils.file" };
public static final String[] JOB_ERROR_STR = {"java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
"org.springframework", "org.apache", "com.ruoyi.common.core.utils.file"};
}

@ -1,98 +1,83 @@
package com.ruoyi.common.core.context;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.alibaba.ttl.TransmittableThreadLocal;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.core.utils.StringUtils;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 线 idToken
* 线 idToken
* HeaderInterceptor
*
* @author ruoyi
*/
public class SecurityContextHolder
{
public class SecurityContextHolder {
private static final TransmittableThreadLocal<Map<String, Object>> THREAD_LOCAL = new TransmittableThreadLocal<>();
public static void set(String key, Object value)
{
public static void set(String key, Object value) {
Map<String, Object> map = getLocalMap();
map.put(key, value == null ? StringUtils.EMPTY : value);
}
public static String get(String key)
{
public static String get(String key) {
Map<String, Object> map = getLocalMap();
return Convert.toStr(map.getOrDefault(key, StringUtils.EMPTY));
}
public static <T> T get(String key, Class<T> clazz)
{
public static <T> T get(String key, Class<T> clazz) {
Map<String, Object> map = getLocalMap();
return StringUtils.cast(map.getOrDefault(key, null));
}
public static Map<String, Object> getLocalMap()
{
public static Map<String, Object> getLocalMap() {
Map<String, Object> map = THREAD_LOCAL.get();
if (map == null)
{
if (map == null) {
map = new ConcurrentHashMap<String, Object>();
THREAD_LOCAL.set(map);
}
return map;
}
public static void setLocalMap(Map<String, Object> threadLocalMap)
{
public static void setLocalMap(Map<String, Object> threadLocalMap) {
THREAD_LOCAL.set(threadLocalMap);
}
public static Long getUserId()
{
public static Long getUserId() {
return Convert.toLong(get(SecurityConstants.DETAILS_USER_ID), 0L);
}
public static void setUserId(String account)
{
public static void setUserId(String account) {
set(SecurityConstants.DETAILS_USER_ID, account);
}
public static String getUserName()
{
public static String getUserName() {
return get(SecurityConstants.DETAILS_USERNAME);
}
public static void setUserName(String username)
{
public static void setUserName(String username) {
set(SecurityConstants.DETAILS_USERNAME, username);
}
public static String getUserKey()
{
public static String getUserKey() {
return get(SecurityConstants.USER_KEY);
}
public static void setUserKey(String userKey)
{
public static void setUserKey(String userKey) {
set(SecurityConstants.USER_KEY, userKey);
}
public static String getPermission()
{
public static String getPermission() {
return get(SecurityConstants.ROLE_PERMISSION);
}
public static void setPermission(String permissions)
{
public static void setPermission(String permissions) {
set(SecurityConstants.ROLE_PERMISSION, permissions);
}
public static void remove()
{
public static void remove() {
THREAD_LOCAL.remove();
}
}

@ -1,21 +1,28 @@
package com.ruoyi.common.core.domain;
import java.io.Serializable;
import com.ruoyi.common.core.constant.Constants;
import java.io.Serial;
import java.io.Serializable;
/**
*
*
* @author ruoyi
*/
public class R<T> implements Serializable
{
public class R<T> implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/** 成功 */
/**
*
*/
public static final int SUCCESS = Constants.SUCCESS;
/** 失败 */
/**
*
*/
public static final int FAIL = Constants.FAIL;
private int code;
@ -24,48 +31,39 @@ public class R<T> implements Serializable
private T data;
public static <T> R<T> ok()
{
public static <T> R<T> ok() {
return restResult(null, SUCCESS, null);
}
public static <T> R<T> ok(T data)
{
public static <T> R<T> ok(T data) {
return restResult(data, SUCCESS, null);
}
public static <T> R<T> ok(T data, String msg)
{
public static <T> R<T> ok(T data, String msg) {
return restResult(data, SUCCESS, msg);
}
public static <T> R<T> fail()
{
public static <T> R<T> fail() {
return restResult(null, FAIL, null);
}
public static <T> R<T> fail(String msg)
{
public static <T> R<T> fail(String msg) {
return restResult(null, FAIL, msg);
}
public static <T> R<T> fail(T data)
{
public static <T> R<T> fail(T data) {
return restResult(data, FAIL, null);
}
public static <T> R<T> fail(T data, String msg)
{
public static <T> R<T> fail(T data, String msg) {
return restResult(data, FAIL, msg);
}
public static <T> R<T> fail(int code, String msg)
{
public static <T> R<T> fail(int code, String msg) {
return restResult(null, code, msg);
}
private static <T> R<T> restResult(T data, int code, String msg)
{
private static <T> R<T> restResult(T data, int code, String msg) {
R<T> apiResult = new R<>();
apiResult.setCode(code);
apiResult.setData(data);
@ -73,43 +71,35 @@ public class R<T> implements Serializable
return apiResult;
}
public int getCode()
{
public int getCode() {
return code;
}
public void setCode(int code)
{
public void setCode(int code) {
this.code = code;
}
public String getMsg()
{
public String getMsg() {
return msg;
}
public void setMsg(String msg)
{
public void setMsg(String msg) {
this.msg = msg;
}
public T getData()
{
public T getData() {
return data;
}
public void setData(T data)
{
public void setData(T data) {
this.data = data;
}
public static <T> Boolean isError(R<T> ret)
{
public static <T> Boolean isError(R<T> ret) {
return !isSuccess(ret);
}
public static <T> Boolean isSuccess(R<T> ret)
{
public static <T> Boolean isSuccess(R<T> ret) {
return R.SUCCESS == ret.getCode();
}
}

@ -2,29 +2,29 @@ package com.ruoyi.common.core.enums;
/**
*
*
*
* @author ruoyi
*/
public enum UserStatus
{
OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除");
public enum UserStatus {
OK("0", "正常"),
DISABLE("1", "停用"),
DELETED("2", "删除"),
;
private final String code;
private final String info;
UserStatus(String code, String info)
{
UserStatus(String code, String info) {
this.code = code;
this.info = info;
}
public String getCode()
{
public String getCode() {
return code;
}
public String getInfo()
{
public String getInfo() {
return info;
}
}

@ -1,12 +1,13 @@
package com.ruoyi.common.core.text;
import com.ruoyi.common.core.utils.StringUtils;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import com.ruoyi.common.core.utils.StringUtils;
/**
*
*
*
* @author ruoyi
*/
public class CharsetKit
@ -19,15 +20,15 @@ public class CharsetKit
public static final String GBK = "GBK";
/** ISO-8859-1 */
public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1);
public static final Charset CHARSET_ISO_8859_1 = StandardCharsets.ISO_8859_1;
/** UTF-8 */
public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8);
public static final Charset CHARSET_UTF_8 = StandardCharsets.UTF_8;
/** GBK */
public static final Charset CHARSET_GBK = Charset.forName(GBK);
/**
* Charset
*
*
* @param charset
* @return Charset
*/
@ -38,7 +39,7 @@ public class CharsetKit
/**
*
*
*
* @param source
* @param srcCharset ISO-8859-1
* @param destCharset UTF-8
@ -51,7 +52,7 @@ public class CharsetKit
/**
*
*
*
* @param source
* @param srcCharset ISO-8859-1
* @param destCharset UTF-8

@ -4,11 +4,10 @@ import com.ruoyi.common.core.utils.StringUtils;
/**
*
*
*
* @author ruoyi
*/
public class StrFormatter
{
public class StrFormatter {
public static final String EMPTY_JSON = "{}";
public static final char C_BACKSLASH = '\\';
public static final char C_DELIM_START = '{';
@ -22,15 +21,13 @@ public class StrFormatter
* 使format("this is {} for {}", "a", "b") -> this is a for b<br>
* {} format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
* \ format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
*
*
* @param strPattern
* @param argArray
* @param argArray
* @return
*/
public static String format(final String strPattern, final Object... argArray)
{
if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray))
{
public static String format(final String strPattern, final Object... argArray) {
if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)) {
return strPattern;
}
final int strPatternLength = strPattern.length();
@ -40,43 +37,30 @@ public class StrFormatter
int handledPosition = 0;
int delimIndex;// 占位符所在位置
for (int argIndex = 0; argIndex < argArray.length; argIndex++)
{
for (int argIndex = 0; argIndex < argArray.length; argIndex++) {
delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition);
if (delimIndex == -1)
{
if (handledPosition == 0)
{
if (delimIndex == -1) {
if (handledPosition == 0) {
return strPattern;
}
else
{ // 字符串模板剩余部分不再包含占位符,加入剩余部分后返回结果
} else { // 字符串模板剩余部分不再包含占位符,加入剩余部分后返回结果
sbuf.append(strPattern, handledPosition, strPatternLength);
return sbuf.toString();
}
}
else
{
if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH)
{
if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH)
{
} else {
if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH) {
if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH) {
// 转义符之前还有一个转义符,占位符依旧有效
sbuf.append(strPattern, handledPosition, delimIndex - 1);
sbuf.append(Convert.utf8Str(argArray[argIndex]));
handledPosition = delimIndex + 2;
}
else
{
} else {
// 占位符被转义
argIndex--;
sbuf.append(strPattern, handledPosition, delimIndex - 1);
sbuf.append(C_DELIM_START);
handledPosition = delimIndex + 1;
}
}
else
{
} else {
// 正常占位符
sbuf.append(strPattern, handledPosition, delimIndex);
sbuf.append(Convert.utf8Str(argArray[argIndex]));

@ -1,23 +1,19 @@
package com.ruoyi.common.core.utils;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.lang.management.ManagementFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.*;
import java.util.Date;
import org.apache.commons.lang3.time.DateFormatUtils;
/**
*
*
* @author ruoyi
*/
public class DateUtils extends org.apache.commons.lang3.time.DateUtils
{
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
public static String YYYY = "yyyy";
public static String YYYY_MM = "yyyy-MM";
@ -28,7 +24,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
private static String[] parsePatterns = {
private static final String[] parsePatterns = {
"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
"yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
@ -38,8 +34,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
*
* @return Date()
*/
public static Date getNowDate()
{
public static Date getNowDate() {
return new Date();
}
@ -48,44 +43,34 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
*
* @return String
*/
public static String getDate()
{
public static String getDate() {
return dateTimeNow(YYYY_MM_DD);
}
public static final String getTime()
{
public static String getTime() {
return dateTimeNow(YYYY_MM_DD_HH_MM_SS);
}
public static final String dateTimeNow()
{
public static String dateTimeNow() {
return dateTimeNow(YYYYMMDDHHMMSS);
}
public static final String dateTimeNow(final String format)
{
public static String dateTimeNow(final String format) {
return parseDateToStr(format, new Date());
}
public static final String dateTime(final Date date)
{
public static String dateTime(final Date date) {
return parseDateToStr(YYYY_MM_DD, date);
}
public static final String parseDateToStr(final String format, final Date date)
{
public static String parseDateToStr(final String format, final Date date) {
return new SimpleDateFormat(format).format(date);
}
public static final Date dateTime(final String format, final String ts)
{
try
{
public static Date dateTime(final String format, final String ts) {
try {
return new SimpleDateFormat(format).parse(ts);
}
catch (ParseException e)
{
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
@ -93,8 +78,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* // 2018/08/08
*/
public static final String datePath()
{
public static String datePath() {
Date now = new Date();
return DateFormatUtils.format(now, "yyyy/MM/dd");
}
@ -102,8 +86,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* // 20180808
*/
public static final String dateTime()
{
public static String dateTime() {
Date now = new Date();
return DateFormatUtils.format(now, "yyyyMMdd");
}
@ -111,18 +94,13 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
*
*/
public static Date parseDate(Object str)
{
if (str == null)
{
public static Date parseDate(Object str) {
if (str == null) {
return null;
}
try
{
try {
return parseDate(str.toString(), parsePatterns);
}
catch (ParseException e)
{
} catch (ParseException e) {
return null;
}
}
@ -130,8 +108,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
*
*/
public static Date getServerStartDate()
{
public static Date getServerStartDate() {
long time = ManagementFactory.getRuntimeMXBean().getStartTime();
return new Date(time);
}
@ -139,12 +116,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
*
*
* @param endDate
* @param endDate
* @param startTime
* @return //
*/
public static String timeDistance(Date endDate, Date startTime)
{
public static String timeDistance(Date endDate, Date startTime) {
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
@ -165,8 +141,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* LocalDateTime ==> Date
*/
public static Date toDate(LocalDateTime temporalAccessor)
{
public static Date toDate(LocalDateTime temporalAccessor) {
ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant());
}
@ -174,8 +149,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* LocalDate ==> Date
*/
public static Date toDate(LocalDate temporalAccessor)
{
public static Date toDate(LocalDate temporalAccessor) {
LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0));
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant());

@ -1,37 +1,33 @@
package com.ruoyi.common.core.utils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import java.io.PrintWriter;
import java.io.StringWriter;
import org.apache.commons.lang3.exception.ExceptionUtils;
/**
*
*
* @author ruoyi
*/
public class ExceptionUtil
{
public class ExceptionUtil {
/**
* exception
*/
public static String getExceptionMessage(Throwable e)
{
public static String getExceptionMessage(Throwable e) {
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw, true));
return sw.toString();
}
public static String getRootErrorMessage(Exception e)
{
public static String getRootErrorMessage(Exception e) {
Throwable root = ExceptionUtils.getRootCause(e);
root = (root == null ? e : root);
if (root == null)
{
if (root == null) {
return "";
}
String msg = root.getMessage();
if (msg == null)
{
if (msg == null) {
return "null";
}
return StringUtils.defaultString(msg);

@ -7,16 +7,14 @@ import com.ruoyi.common.core.web.page.TableSupport;
/**
*
*
*
* @author ruoyi
*/
public class PageUtils extends PageHelper
{
public class PageUtils extends PageHelper {
/**
*
*/
public static void startPage()
{
public static void startPage() {
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
@ -28,8 +26,7 @@ public class PageUtils extends PageHelper
/**
* 线
*/
public static void clearPage()
{
public static void clearPage() {
PageHelper.clearPage();
}
}

@ -9,106 +9,72 @@ import org.springframework.stereotype.Component;
/**
* spring 便springbean
*
*
* @author ruoyi
*/
@Component
public final class SpringUtils implements BeanFactoryPostProcessor
{
/** Spring应用上下文环境 */
public final class SpringUtils implements BeanFactoryPostProcessor {
/**
* Spring
*/
private static ConfigurableListableBeanFactory beanFactory;
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
{
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
SpringUtils.beanFactory = beanFactory;
}
/**
*
*
* @param name
* @return Object bean
* @throws org.springframework.beans.BeansException
*
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) throws BeansException
{
public static <T> T getBean(String name) throws BeansException {
return (T) beanFactory.getBean(name);
}
/**
* requiredType
*
* @param clz
* @return
* @throws org.springframework.beans.BeansException
*
*/
public static <T> T getBean(Class<T> clz) throws BeansException
{
public static <T> T getBean(Class<T> clz) throws BeansException {
T result = (T) beanFactory.getBean(clz);
return result;
}
/**
* BeanFactorybeantrue
*
* @param name
* @return boolean
*/
public static boolean containsBean(String name)
{
public static boolean containsBean(String name) {
return beanFactory.containsBean(name);
}
/**
* beansingletonprototype beanNoSuchBeanDefinitionException
*
* @param name
* @return boolean
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/
public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException
{
public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
return beanFactory.isSingleton(name);
}
/**
* @param name
* @return Class
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/
public static Class<?> getType(String name) throws NoSuchBeanDefinitionException
{
public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
return beanFactory.getType(name);
}
/**
* beanbean
*
* @param name
* @return
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/
public static String[] getAliases(String name) throws NoSuchBeanDefinitionException
{
public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
return beanFactory.getAliases(name);
}
/**
* aop
*
* @param invoker
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T getAopProxy(T invoker)
{
public static <T> T getAopProxy(T invoker) {
return (T) AopContext.currentProxy();
}
}

@ -1,191 +1,178 @@
package com.ruoyi.common.core.utils;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.text.StrFormatter;
import org.springframework.util.AntPathMatcher;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.springframework.util.AntPathMatcher;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.text.StrFormatter;
/**
*
*
*
* @author ruoyi
*/
public class StringUtils extends org.apache.commons.lang3.StringUtils
{
/** 空字符串 */
private static final String NULLSTR = "";
public class StringUtils extends org.apache.commons.lang3.StringUtils {
/** 下划线 */
/**
*
*/
private static final String NULL_STR = "";
/**
* 线
*/
private static final char SEPARATOR = '_';
/**
*
*
*
* @param value defaultValue value
* @return value
*/
public static <T> T nvl(T value, T defaultValue)
{
public static <T> T nvl(T value, T defaultValue) {
return value != null ? value : defaultValue;
}
/**
* * Collection ListSetQueue
*
*
* @param coll Collection
* @return true false
*/
public static boolean isEmpty(Collection<?> coll)
{
public static boolean isEmpty(Collection<?> coll) {
return isNull(coll) || coll.isEmpty();
}
/**
* * CollectionListSetQueue
*
*
* @param coll Collection
* @return true false
*/
public static boolean isNotEmpty(Collection<?> coll)
{
public static boolean isNotEmpty(Collection<?> coll) {
return !isEmpty(coll);
}
/**
* *
*
*
* @param objects
** @return true false
* * @return true false
*/
public static boolean isEmpty(Object[] objects)
{
public static boolean isEmpty(Object[] objects) {
return isNull(objects) || (objects.length == 0);
}
/**
* *
*
*
* @param objects
* @return true false
*/
public static boolean isNotEmpty(Object[] objects)
{
public static boolean isNotEmpty(Object[] objects) {
return !isEmpty(objects);
}
/**
* * Map
*
*
* @param map Map
* @return true false
*/
public static boolean isEmpty(Map<?, ?> map)
{
public static boolean isEmpty(Map<?, ?> map) {
return isNull(map) || map.isEmpty();
}
/**
* * Map
*
*
* @param map Map
* @return true false
*/
public static boolean isNotEmpty(Map<?, ?> map)
{
public static boolean isNotEmpty(Map<?, ?> map) {
return !isEmpty(map);
}
/**
* *
*
*
* @param str String
* @return true false
*/
public static boolean isEmpty(String str)
{
return isNull(str) || NULLSTR.equals(str.trim());
public static boolean isEmpty(String str) {
return isNull(str) || NULL_STR.equals(str.trim());
}
/**
* *
*
*
* @param str String
* @return true false
*/
public static boolean isNotEmpty(String str)
{
public static boolean isNotEmpty(String str) {
return !isEmpty(str);
}
/**
* *
*
*
* @param object Object
* @return true false
*/
public static boolean isNull(Object object)
{
public static boolean isNull(Object object) {
return object == null;
}
/**
* *
*
*
* @param object Object
* @return true false
*/
public static boolean isNotNull(Object object)
{
public static boolean isNotNull(Object object) {
return !isNull(object);
}
/**
* * Java
*
*
* @param object
* @return true false
*/
public static boolean isArray(Object object)
{
public static boolean isArray(Object object) {
return isNotNull(object) && object.getClass().isArray();
}
/**
*
*/
public static String trim(String str)
{
public static String trim(String str) {
return (str == null ? "" : str.trim());
}
/**
*
*
* @param str
*
* @param str
* @param start
* @return
*/
public static String substring(final String str, int start)
{
if (str == null)
{
return NULLSTR;
public static String substring(final String str, int start) {
if (str == null) {
return NULL_STR;
}
if (start < 0)
{
if (start < 0) {
start = str.length() + start;
}
if (start < 0)
{
if (start < 0) {
start = 0;
}
if (start > str.length())
{
return NULLSTR;
if (start > str.length()) {
return NULL_STR;
}
return str.substring(start);
@ -193,44 +180,36 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
/**
*
*
* @param str
*
* @param str
* @param start
* @param end
* @param end
* @return
*/
public static String substring(final String str, int start, int end)
{
if (str == null)
{
return NULLSTR;
public static String substring(final String str, int start, int end) {
if (str == null) {
return NULL_STR;
}
if (end < 0)
{
if (end < 0) {
end = str.length() + end;
}
if (start < 0)
{
if (start < 0) {
start = str.length() + start;
}
if (end > str.length())
{
if (end > str.length()) {
end = str.length();
}
if (start > end)
{
return NULLSTR;
if (start > end) {
return NULL_STR;
}
if (start < 0)
{
if (start < 0) {
start = 0;
}
if (end < 0)
{
if (end < 0) {
end = 0;
}
@ -239,22 +218,18 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
/**
*
*
*
* @param str value
* @return
*/
public static boolean hasText(String str)
{
public static boolean hasText(String str) {
return (str != null && !str.isEmpty() && containsText(str));
}
private static boolean containsText(CharSequence str)
{
private static boolean containsText(CharSequence str) {
int strLen = str.length();
for (int i = 0; i < strLen; i++)
{
if (!Character.isWhitespace(str.charAt(i)))
{
for (int i = 0; i < strLen; i++) {
if (!Character.isWhitespace(str.charAt(i))) {
return true;
}
}
@ -269,15 +244,13 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
* 使format("this is {} for {}", "a", "b") -> this is a for b<br>
* {} format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
* \ format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
*
*
* @param template {}
* @param params
* @param params
* @return
*/
public static String format(String template, Object... params)
{
if (isEmpty(params) || isEmpty(template))
{
public static String format(String template, Object... params) {
if (isEmpty(params) || isEmpty(template)) {
return template;
}
return StrFormatter.format(template, params);
@ -285,12 +258,11 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
/**
* http(s)://开头
*
*
* @param link
* @return
*/
public static boolean ishttp(String link)
{
public static boolean ishttp(String link) {
return StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS);
}
@ -298,21 +270,15 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
* collectionarray arrayvalue
*
* @param collection
* @param array
* @param array
* @return boolean
*/
public static boolean containsAny(Collection<String> collection, String... array)
{
if (isEmpty(collection) || isEmpty(array))
{
public static boolean containsAny(Collection<String> collection, String... array) {
if (isEmpty(collection) || isEmpty(array)) {
return false;
}
else
{
for (String str : array)
{
if (collection.contains(str))
{
} else {
for (String str : array) {
if (collection.contains(str)) {
return true;
}
}
@ -323,10 +289,8 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
/**
* 线
*/
public static String toUnderScoreCase(String str)
{
if (str == null)
{
public static String toUnderScoreCase(String str) {
if (str == null) {
return null;
}
StringBuilder sb = new StringBuilder();
@ -336,31 +300,23 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
boolean curreCharIsUpperCase = true;
// 下一字符是否大写
boolean nexteCharIsUpperCase = true;
for (int i = 0; i < str.length(); i++)
{
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (i > 0)
{
if (i > 0) {
preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1));
}
else
{
} else {
preCharIsUpperCase = false;
}
curreCharIsUpperCase = Character.isUpperCase(c);
if (i < (str.length() - 1))
{
if (i < (str.length() - 1)) {
nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));
}
if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase)
{
if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) {
sb.append(SEPARATOR);
}
else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase)
{
} else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) {
sb.append(SEPARATOR);
}
sb.append(Character.toLowerCase(c));
@ -371,19 +327,15 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
/**
*
*
* @param str
*
* @param str
* @param strs
* @return true
*/
public static boolean inStringIgnoreCase(String str, String... strs)
{
if (str != null && strs != null)
{
for (String s : strs)
{
if (str.equalsIgnoreCase(trim(s)))
{
public static boolean inStringIgnoreCase(String str, String... strs) {
if (str != null && strs != null) {
for (String s : strs) {
if (str.equalsIgnoreCase(trim(s))) {
return true;
}
}
@ -393,31 +345,25 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
/**
* 线线 HELLO_WORLD->HelloWorld
*
*
* @param name 线
* @return
*/
public static String convertToCamelCase(String name)
{
public static String convertToCamelCase(String name) {
StringBuilder result = new StringBuilder();
// 快速检查
if (name == null || name.isEmpty())
{
if (name == null || name.isEmpty()) {
// 没必要转换
return "";
}
else if (!name.contains("_"))
{
} else if (!name.contains("_")) {
// 不含下划线,仅将首字母大写
return name.substring(0, 1).toUpperCase() + name.substring(1);
}
// 用下划线将原始字符串分割
String[] camels = name.split("_");
for (String camel : camels)
{
for (String camel : camels) {
// 跳过原始字符串中开头、结尾的下换线或双重下划线
if (camel.isEmpty())
{
if (camel.isEmpty()) {
continue;
}
// 首字母大写
@ -431,34 +377,25 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
*
* user_name->userName
*/
public static String toCamelCase(String s)
{
if (s == null)
{
public static String toCamelCase(String s) {
if (s == null) {
return null;
}
if (s.indexOf(SEPARATOR) == -1)
{
if (s.indexOf(SEPARATOR) == -1) {
return s;
}
s = s.toLowerCase();
StringBuilder sb = new StringBuilder(s.length());
boolean upperCase = false;
for (int i = 0; i < s.length(); i++)
{
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == SEPARATOR)
{
if (c == SEPARATOR) {
upperCase = true;
}
else if (upperCase)
{
} else if (upperCase) {
sb.append(Character.toUpperCase(c));
upperCase = false;
}
else
{
} else {
sb.append(c);
}
}
@ -467,21 +404,17 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
/**
*
*
* @param str
*
* @param str
* @param strs
* @return
*/
public static boolean matches(String str, List<String> strs)
{
if (isEmpty(str) || isEmpty(strs))
{
public static boolean matches(String str, List<String> strs) {
if (isEmpty(str) || isEmpty(strs)) {
return false;
}
for (String pattern : strs)
{
if (isMatch(pattern, str))
{
for (String pattern : strs) {
if (isMatch(pattern, str)) {
return true;
}
}
@ -489,70 +422,57 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
}
/**
* url:
* ? ;
* * ;
* url:
* ? ;
* * ;
* ** ;
*
*
* @param pattern
* @param url url
* @return
* @param url url
*/
public static boolean isMatch(String pattern, String url)
{
public static boolean isMatch(String pattern, String url) {
AntPathMatcher matcher = new AntPathMatcher();
return matcher.match(pattern, url);
}
@SuppressWarnings("unchecked")
public static <T> T cast(Object obj)
{
public static <T> T cast(Object obj) {
return (T) obj;
}
/**
* 0使size size
*
* @param num
*
* @param num
* @param size
* @return
*/
public static final String padl(final Number num, final int size)
{
public static String padl(final Number num, final int size) {
return padl(num.toString(), size, '0');
}
/**
* ssizesize
*
* @param s
*
* @param s
* @param size
* @param c
* @param c
* @return
*/
public static final String padl(final String s, final int size, final char c)
{
public static String padl(final String s, final int size, final char c) {
final StringBuilder sb = new StringBuilder(size);
if (s != null)
{
if (s != null) {
final int len = s.length();
if (s.length() <= size)
{
for (int i = size - len; i > 0; i--)
{
if (s.length() <= size) {
for (int i = size - len; i > 0; i--) {
sb.append(c);
}
sb.append(s);
}
else
{
} else {
return s.substring(len - size, len);
}
}
else
{
for (int i = size; i > 0; i--)
{
} else {
for (int i = size; i > 0; i--) {
sb.append(c);
}
}

@ -2,48 +2,43 @@ package com.ruoyi.common.core.utils.uuid;
/**
* ID
*
*
* @author ruoyi
*/
public class IdUtils
{
public class IdUtils {
/**
* UUID
*
*
* @return UUID
*/
public static String randomUUID()
{
public static String randomUUID() {
return UUID.randomUUID().toString();
}
/**
* UUID线
*
*
* @return UUID线
*/
public static String simpleUUID()
{
public static String simpleUUID() {
return UUID.randomUUID().toString(true);
}
/**
* UUID使ThreadLocalRandomUUID
*
*
* @return UUID
*/
public static String fastUUID()
{
public static String fastUUID() {
return UUID.fastUUID().toString();
}
/**
* UUID线使ThreadLocalRandomUUID
*
*
* @return UUID线
*/
public static String fastSimpleUUID()
{
public static String fastSimpleUUID() {
return UUID.fastUUID().toString(true);
}
}

@ -1,14 +1,14 @@
package com.ruoyi.common.core.utils.uuid;
import java.util.concurrent.atomic.AtomicInteger;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @author ruoyi
*/
public class Seq
{
public class Seq {
// 通用序列类型
public static final String commSeqType = "COMMON";
@ -16,34 +16,31 @@ public class Seq
public static final String uploadSeqType = "UPLOAD";
// 通用接口序列数
private static AtomicInteger commSeq = new AtomicInteger(1);
private static final AtomicInteger commSeq = new AtomicInteger(1);
// 上传接口序列数
private static AtomicInteger uploadSeq = new AtomicInteger(1);
private static final AtomicInteger uploadSeq = new AtomicInteger(1);
// 机器标识
private static final String machineCode = "A";
/**
*
*
*
* @return
*/
public static String getId()
{
public static String getId() {
return getId(commSeqType);
}
/**
* 16 yyMMddHHmmss + + 3
*
*
* @return
*/
public static String getId(String type)
{
public static String getId(String type) {
AtomicInteger atomicInt = commSeq;
if (uploadSeqType.equals(type))
{
if (uploadSeqType.equals(type)) {
atomicInt = uploadSeq;
}
return getId(atomicInt, 3);
@ -51,13 +48,12 @@ public class Seq
/**
* yyMMddHHmmss + + length
*
*
* @param atomicInt
* @param length
* @param length
* @return
*/
public static String getId(AtomicInteger atomicInt, int length)
{
public static String getId(AtomicInteger atomicInt, int length) {
String result = DateUtils.dateTimeNow();
result += machineCode;
result += getSeq(atomicInt, length);
@ -66,18 +62,16 @@ public class Seq
/**
* [1, 10 (length)), 0length
*
*
* @return
*/
private synchronized static String getSeq(AtomicInteger atomicInt, int length)
{
private synchronized static String getSeq(AtomicInteger atomicInt, int length) {
// 先取值再+1
int value = atomicInt.getAndIncrement();
// 如果更新后值>=10 的 (length)幂次方则重置为1
int maxSeq = (int) Math.pow(10, length);
if (atomicInt.get() >= maxSeq)
{
if (atomicInt.get() >= maxSeq) {
atomicInt.set(1);
}
// 转字符串用0左补齐

@ -1,52 +1,53 @@
package com.ruoyi.common.core.utils.uuid;
import com.ruoyi.common.core.exception.UtilException;
import java.io.Serial;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
import com.ruoyi.common.core.exception.UtilException;
/**
* universally unique identifierUUID
*
* @author ruoyi
*/
public final class UUID implements java.io.Serializable, Comparable<UUID>
{
public final class UUID implements java.io.Serializable, Comparable<UUID> {
@Serial
private static final long serialVersionUID = -1185015143654744140L;
/**
* SecureRandom
*
*/
private static class Holder
{
private static class Holder {
static final SecureRandom numberGenerator = getSecureRandom();
}
/** 此UUID的最高64有效位 */
/**
* UUID64
*/
private final long mostSigBits;
/** 此UUID的最低64有效位 */
/**
* UUID64
*/
private final long leastSigBits;
/**
*
*
*
* @param data
*/
private UUID(byte[] data)
{
private UUID(byte[] data) {
long msb = 0;
long lsb = 0;
assert data.length == 16 : "data must be 16 bytes in length";
for (int i = 0; i < 8; i++)
{
for (int i = 0; i < 8; i++) {
msb = (msb << 8) | (data[i] & 0xff);
}
for (int i = 8; i < 16; i++)
{
for (int i = 8; i < 16; i++) {
lsb = (lsb << 8) | (data[i] & 0xff);
}
this.mostSigBits = msb;
@ -56,43 +57,39 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
/**
* 使 UUID
*
* @param mostSigBits {@code UUID} 64
* @param mostSigBits {@code UUID} 64
* @param leastSigBits {@code UUID} 64
*/
public UUID(long mostSigBits, long leastSigBits)
{
public UUID(long mostSigBits, long leastSigBits) {
this.mostSigBits = mostSigBits;
this.leastSigBits = leastSigBits;
}
/**
* 4UUID
*
* 4UUID
*
* @return {@code UUID}
*/
public static UUID fastUUID()
{
public static UUID fastUUID() {
return randomUUID(false);
}
/**
* 4UUID 使 UUID
*
*
* @return {@code UUID}
*/
public static UUID randomUUID()
{
public static UUID randomUUID() {
return randomUUID(true);
}
/**
* 4UUID 使 UUID
*
*
* @param isSecure 使{@link SecureRandom}
* @return {@code UUID}
*/
public static UUID randomUUID(boolean isSecure)
{
public static UUID randomUUID(boolean isSecure) {
final Random ng = isSecure ? Holder.numberGenerator : getRandom();
byte[] randomBytes = new byte[16];
@ -108,18 +105,13 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
* 3UUID
*
* @param name UUID
*
* @return {@code UUID}
*/
public static UUID nameUUIDFromBytes(byte[] name)
{
public static UUID nameUUIDFromBytes(byte[] name) {
MessageDigest md;
try
{
try {
md = MessageDigest.getInstance("MD5");
}
catch (NoSuchAlgorithmException nsae)
{
} catch (NoSuchAlgorithmException nsae) {
throw new InternalError("MD5 not supported");
}
byte[] md5Bytes = md.digest(name);
@ -136,29 +128,25 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
* @param name {@code UUID}
* @return {@code UUID}
* @throws IllegalArgumentException name {@link #toString}
*
*/
public static UUID fromString(String name)
{
public static UUID fromString(String name) {
String[] components = name.split("-");
if (components.length != 5)
{
if (components.length != 5) {
throw new IllegalArgumentException("Invalid UUID string: " + name);
}
for (int i = 0; i < 5; i++)
{
for (int i = 0; i < 5; i++) {
components[i] = "0x" + components[i];
}
long mostSigBits = Long.decode(components[0]).longValue();
long mostSigBits = Long.decode(components[0]);
mostSigBits <<= 16;
mostSigBits |= Long.decode(components[1]).longValue();
mostSigBits |= Long.decode(components[1]);
mostSigBits <<= 16;
mostSigBits |= Long.decode(components[2]).longValue();
mostSigBits |= Long.decode(components[2]);
long leastSigBits = Long.decode(components[3]).longValue();
long leastSigBits = Long.decode(components[3]);
leastSigBits <<= 48;
leastSigBits |= Long.decode(components[4]).longValue();
leastSigBits |= Long.decode(components[4]);
return new UUID(mostSigBits, leastSigBits);
}
@ -168,8 +156,7 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
*
* @return UUID 128 64
*/
public long getLeastSignificantBits()
{
public long getLeastSignificantBits() {
return leastSigBits;
}
@ -178,8 +165,7 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
*
* @return UUID 128 64
*/
public long getMostSignificantBits()
{
public long getMostSignificantBits() {
return mostSigBits;
}
@ -196,8 +182,7 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
*
* @return {@code UUID}
*/
public int version()
{
public int version() {
// Version is bits masked by 0x000000000000F000 in MS long
return (int) ((mostSigBits >> 12) & 0x0f);
}
@ -215,8 +200,7 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
*
* @return {@code UUID}
*/
public int variant()
{
public int variant() {
// This field is composed of a varying number of bits.
// 0 - - Reserved for NCS backward compatibility
// 1 0 - The IETF aka Leach-Salz variant (used by this class)
@ -238,8 +222,7 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
*
* @throws UnsupportedOperationException {@code UUID} version 1 UUID
*/
public long timestamp() throws UnsupportedOperationException
{
public long timestamp() throws UnsupportedOperationException {
checkTimeBase();
return (mostSigBits & 0x0FFFL) << 48//
| ((mostSigBits >> 16) & 0x0FFFFL) << 32//
@ -256,11 +239,9 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
* UnsupportedOperationException
*
* @return {@code UUID}
*
* @throws UnsupportedOperationException UUID version 1
*/
public int clockSequence() throws UnsupportedOperationException
{
public int clockSequence() throws UnsupportedOperationException {
checkTimeBase();
return (int) ((leastSigBits & 0x3FFF000000000000L) >>> 48);
}
@ -275,11 +256,9 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
* UUID UUID UnsupportedOperationException
*
* @return {@code UUID}
*
* @throws UnsupportedOperationException UUID version 1
*/
public long node() throws UnsupportedOperationException
{
public long node() throws UnsupportedOperationException {
checkTimeBase();
return leastSigBits & 0x0000FFFFFFFFFFFFL;
}
@ -289,7 +268,7 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
*
* <p>
* UUID BNF
*
*
* <pre>
* {@code
* UUID = <time_low>-<time_mid>-<time_high_and_version>-<variant_and_sequence>-<node>
@ -302,15 +281,14 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
* hexDigit = [0-9a-fA-F]
* }
* </pre>
*
*
* </blockquote>
*
* @return {@code UUID}
* @see #toString(boolean)
*/
@Override
public String toString()
{
public String toString() {
return toString(false);
}
@ -319,7 +297,7 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
*
* <p>
* UUID BNF
*
*
* <pre>
* {@code
* UUID = <time_low>-<time_mid>-<time_high_and_version>-<variant_and_sequence>-<node>
@ -332,37 +310,32 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
* hexDigit = [0-9a-fA-F]
* }
* </pre>
*
*
* </blockquote>
*
* @param isSimple '-'UUID
* @return {@code UUID}
*/
public String toString(boolean isSimple)
{
public String toString(boolean isSimple) {
final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36);
// time_low
builder.append(digits(mostSigBits >> 32, 8));
if (false == isSimple)
{
if (!isSimple) {
builder.append('-');
}
// time_mid
builder.append(digits(mostSigBits >> 16, 4));
if (false == isSimple)
{
if (!isSimple) {
builder.append('-');
}
// time_high_and_version
builder.append(digits(mostSigBits, 4));
if (false == isSimple)
{
if (!isSimple) {
builder.append('-');
}
// variant_and_sequence
builder.append(digits(leastSigBits >> 48, 4));
if (false == isSimple)
{
if (!isSimple) {
builder.append('-');
}
// node
@ -377,8 +350,7 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
* @return UUID
*/
@Override
public int hashCode()
{
public int hashCode() {
long hilo = mostSigBits ^ leastSigBits;
return ((int) (hilo >> 32)) ^ (int) hilo;
}
@ -389,14 +361,11 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
* {@code null} UUID UUID varriant {@code true}
*
* @param obj
*
* @return {@code true} {@code false}
*/
@Override
public boolean equals(Object obj)
{
if ((null == obj) || (obj.getClass() != UUID.class))
{
public boolean equals(Object obj) {
if ((null == obj) || (obj.getClass() != UUID.class)) {
return false;
}
UUID id = (UUID) obj;
@ -412,13 +381,10 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
* UUID UUID UUID UUID UUID
*
* @param val UUID UUID
*
* @return UUID val -10 1
*
*/
@Override
public int compareTo(UUID val)
{
public int compareTo(UUID val) {
// The ordering is intentionally set up so that the UUIDs
// can simply be numerically compared as two numbers
return (this.mostSigBits < val.mostSigBits ? -1 : //
@ -430,15 +396,15 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
// -------------------------------------------------------------------------------------------------------------------
// Private method start
/**
* hex
*
* @param val
*
* @param val
* @param digits
* @return
*/
private static String digits(long val, int digits)
{
private static String digits(long val, int digits) {
long hi = 1L << (digits * 4);
return Long.toHexString(hi | (val & (hi - 1))).substring(1);
}
@ -446,27 +412,21 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
/**
* time-basedUUID
*/
private void checkTimeBase()
{
if (version() != 1)
{
private void checkTimeBase() {
if (version() != 1) {
throw new UnsupportedOperationException("Not a time-based UUID");
}
}
/**
* {@link SecureRandom} (RNG)
*
*
* @return {@link SecureRandom}
*/
public static SecureRandom getSecureRandom()
{
try
{
public static SecureRandom getSecureRandom() {
try {
return SecureRandom.getInstance("SHA1PRNG");
}
catch (NoSuchAlgorithmException e)
{
} catch (NoSuchAlgorithmException e) {
throw new UtilException(e);
}
}
@ -474,11 +434,10 @@ public final class UUID implements java.io.Serializable, Comparable<UUID>
/**
* <br>
* ThreadLocalRandomJDK 7线
*
*
* @return {@link ThreadLocalRandom}
*/
public static ThreadLocalRandom getRandom()
{
public static ThreadLocalRandom getRandom() {
return ThreadLocalRandom.current();
}
}

@ -0,0 +1,346 @@
package com.ruoyi.common.core.utils.uuid.snowflake;
import java.lang.management.ManagementFactory;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Enumeration;
import java.util.concurrent.ThreadLocalRandom;
import java.util.regex.Pattern;
/**
* TwitterSnowflakeID(sequence)Snowflake
*
* <br>
* SnowFlake(-):<br>
* <br>
* 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 <br>
* <br>
* 1longJava01id0<br>
* <br>
* 41()41 - )
* id使START_TIME41使69T = (1L << 41) / (1000L * 60 * 60 * 24 * 365) = 69<br>
* <br>
* 1010245dataCenterId5workerId<br>
* <br>
* 1212()4096ID<br>
* <br>
* <br>
* 64Long<br>
* SnowFlakeID(IDID)SnowFlake26ID
* <p>
* <p>
*
* 1.<p>
* 2.0便使<p>
* 3.<p>
* 4.IPworkerId
* 5.10241010
* <p>
* :
* 1.
* 2.id
* 3.id
*
* @author lry
* @author Alan Scipio
* @version 3.0
* @see <a href="https://gitee.com/yu120/sequence">()</a>
* @see <a href="https://github.com/yu120/neural">(Github)</a>
*/
class Sequence {
/**
*
*/
private long twepoch;
/**
* bit41
*/
private long timestampBits;
/**
* idbit5
*/
private long datacenterIdBits;
/**
* idbit5
*/
private long workerIdBits;
/**
* bitid212
*/
private long sequenceBits;
protected long maxDatacenterId;
protected long maxWorkerId;
private long workerIdShift;
private long datacenterIdShift;
/**
*
*/
private long timestampLeftShift;
/**
*
*/
private long sequenceMask;
/**
*
*/
private long timestampMask;
/**
* id
*/
private final long datacenterId;
/**
* id
*/
private final long workerId;
/**
*
*/
private long sequence = 0L;
/**
* ID
*/
private long lastTimestamp = -1L;
private static volatile InetAddress LOCAL_ADDRESS = null;
private static final Pattern IP_PATTERN = Pattern.compile("\\d{1,3}(\\.\\d{1,3}){3,5}$");
public Sequence() {
this.datacenterId = getDatacenterId();
this.workerId = getMaxWorkerId(datacenterId);
}
/**
*
*
* @param workerId ID
* @param datacenterId
*/
public Sequence(long workerId, long datacenterId) {
if (workerId > maxWorkerId || workerId < 0) {
throw new IllegalArgumentException(String.format("Worker Id can't be greater than %d or less than 0", maxWorkerId));
}
if (datacenterId > maxDatacenterId || datacenterId < 0) {
throw new IllegalArgumentException(String.format("Datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
}
this.workerId = workerId;
this.datacenterId = datacenterId;
}
/**
* {@link SequenceBuilder}
*
* @param tsepoch
* @param timestampBits bit
* @param datacenterIdBits dataCenterIdbit
* @param workerIdBits workerIdbit
* @param sequenceBits bit
*/
void init(long tsepoch, long timestampBits, long datacenterIdBits, long workerIdBits, long sequenceBits) {
this.twepoch = tsepoch;
this.timestampBits = timestampBits;
this.datacenterIdBits = datacenterIdBits;
this.workerIdBits = workerIdBits;
this.sequenceBits = sequenceBits;
maxDatacenterId = ~(-1L << datacenterIdBits);
maxWorkerId = ~(-1L << workerIdBits);
workerIdShift = sequenceBits;
datacenterIdShift = sequenceBits + workerIdBits;
timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
sequenceMask = ~(-1L << sequenceBits);
timestampMask = ~(-1L << timestampBits);
}
/**
* MAC
* <p>
*
*/
protected long getDatacenterId() {
long id = 0L;
try {
NetworkInterface network = NetworkInterface.getByInetAddress(getLocalAddress());
if (null == network) {
id = 1L;
} else {
byte[] mac = network.getHardwareAddress();
if (null != mac) {
id = ((0x000000FF & (long) mac[mac.length - 2]) | (0x0000FF00 & (((long) mac[mac.length - 1]) << 8))) >> 6;
id = id % (maxDatacenterId + 1);
}
}
} catch (Exception e) {
System.err.println(" getDatacenterId: " + e);
}
return id;
}
/**
* MAC + PID hashcode 16
* <p>
*
*/
protected long getMaxWorkerId(long datacenterId) {
StringBuilder mpId = new StringBuilder();
mpId.append(datacenterId);
String name = ManagementFactory.getRuntimeMXBean().getName();
if (name != null && name.length() > 0) {
// GET jvmPid
mpId.append(name.split("@")[0]);
}
// MAC + PID 的 hashcode 获取16个低位
return (mpId.toString().hashCode() & 0xffff) % (maxWorkerId + 1);
}
/**
* ID
*
* @return next id
*/
public synchronized long nextId() {
long timestamp = timeGen();
// 闰秒
if (timestamp < lastTimestamp) {
long offset = lastTimestamp - timestamp;
if (offset <= 5) {
try {
// 休眠双倍差值后重新获取,再次校验
wait(offset << 1);
timestamp = timeGen();
if (timestamp < lastTimestamp) {
throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", offset));
}
} catch (Exception e) {
throw new RuntimeException(e);
}
} else {
throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", offset));
}
}
if (lastTimestamp == timestamp) {
// 相同毫秒内,序列号自增
sequence = (sequence + 1) & sequenceMask;
if (sequence == 0) {
// 同一毫秒的序列数已经达到最大
timestamp = tilNextMillis(lastTimestamp);
}
} else {
// 不同毫秒内,序列号置为 1 - 3 随机数
sequence = ThreadLocalRandom.current().nextLong(1, 3);
}
lastTimestamp = timestamp;
long timePart = (timestamp - twepoch) & timestampMask;
// 时间戳部分 | 数据中心部分 | 机器标识部分 | 序列号部分
return (timePart << timestampLeftShift)
| (datacenterId << datacenterIdShift)
| (workerId << workerIdShift)
| sequence;
}
protected long tilNextMillis(long lastTimestamp) {
long timestamp = timeGen();
while (timestamp <= lastTimestamp) {
timestamp = timeGen();
}
return timestamp;
}
protected long timeGen() {
return SystemClock.INSTANCE.currentTimeMillis();
}
public LocalDateTime getStartEpoch() {
return Instant.ofEpochMilli(twepoch).atZone(ZoneId.systemDefault()).toLocalDateTime();
}
public long getTotalBits() {
return (timestampBits + datacenterIdBits + workerIdBits + sequenceBits + 1);
}
/**
* Find first valid IP from local network card
*
* @return first valid local IP
*/
public static InetAddress getLocalAddress() {
if (LOCAL_ADDRESS != null) {
return LOCAL_ADDRESS;
}
LOCAL_ADDRESS = getLocalAddress0();
return LOCAL_ADDRESS;
}
private static InetAddress getLocalAddress0() {
InetAddress localAddress = null;
try {
localAddress = InetAddress.getLocalHost();
if (isValidAddress(localAddress)) {
return localAddress;
}
} catch (Throwable e) {
System.err.println("Failed to retrieving ip address, " + e);
}
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
if (interfaces != null) {
while (interfaces.hasMoreElements()) {
try {
NetworkInterface network = interfaces.nextElement();
Enumeration<InetAddress> addresses = network.getInetAddresses();
while (addresses.hasMoreElements()) {
try {
InetAddress address = addresses.nextElement();
if (isValidAddress(address)) {
return address;
}
} catch (Throwable e) {
System.err.println("Failed to retrieving ip address, " + e);
}
}
} catch (Throwable e) {
System.err.println("Failed to retrieving ip address, " + e);
}
}
}
} catch (Throwable e) {
System.err.println("Failed to retrieving ip address, " + e);
}
System.err.println("Could not get local host ip address, will use 127.0.0.1 instead.");
return localAddress;
}
private static boolean isValidAddress(InetAddress address) {
if (address == null || address.isLoopbackAddress()) {
return false;
}
String name = address.getHostAddress();
return (name != null && !"0.0.0.0".equals(name) && !"127.0.0.1".equals(name) && IP_PATTERN.matcher(name).matches());
}
}

@ -0,0 +1,93 @@
package com.ruoyi.common.core.utils.uuid.snowflake;
/**
* @author Alan Scipio
* create date: 2022/9/27
*/
public class SequenceBuilder {
/**
*
*/
private long twepoch = 1664268238500L;
/**
* bit41
*/
private long timestampBits = 41L;
/**
* idbit5
*/
private long datacenterIdBits = 5L;
/**
* idbit5
*/
private long workerIdBits = 5L;
/**
* bitid212
*/
private long sequenceBits = 12L;
/**
* id
*/
private Long datacenterId;
/**
* id
*/
private Long workerId;
public static SequenceBuilder builder() {
return new SequenceBuilder();
}
public Sequence build() {
Sequence sequence;
if (datacenterId != null && workerId != null) {
sequence = new Sequence(workerId, datacenterId);
} else {
sequence = new Sequence();
}
sequence.init(twepoch, timestampBits, datacenterIdBits, workerIdBits, sequenceBits);
return sequence;
}
public SequenceBuilder setTwepoch(long twepoch) {
this.twepoch = twepoch;
return this;
}
public SequenceBuilder setTimestampBits(long timestampBits) {
this.timestampBits = timestampBits;
return this;
}
public SequenceBuilder setDatacenterIdBits(long datacenterIdBits) {
this.datacenterIdBits = datacenterIdBits;
return this;
}
public SequenceBuilder setWorkerIdBits(long workerIdBits) {
this.workerIdBits = workerIdBits;
return this;
}
public SequenceBuilder setSequenceBits(long sequenceBits) {
this.sequenceBits = sequenceBits;
return this;
}
public SequenceBuilder setDatacenterId(Long datacenterId) {
this.datacenterId = datacenterId;
return this;
}
public SequenceBuilder setWorkerId(Long workerId) {
this.workerId = workerId;
return this;
}
}

@ -0,0 +1,63 @@
package com.ruoyi.common.core.utils.uuid.snowflake;
import java.util.HashMap;
import java.util.Map;
/**
* ID
*
* @author Alan Scipio
* @since 2022/7/15
*/
public class SnowFlakeIdGenerator {
//默认id生成器不指定机器id和数据中心id
private static final String DEFAULT_SEQ = "defaultSeq";
private static final Map<String, Sequence> SEQUENCE_MAP = new HashMap<>();
private SnowFlakeIdGenerator() {
}
/**
*
*/
private static SequenceBuilder defaultBuilder() {
return SequenceBuilder.builder()
.setTwepoch(1657864986440L) //起始时间戳
.setTimestampBits(40L) //时间戳的bit位数
.setDatacenterIdBits(1L) //数据中心的bit位数
.setWorkerIdBits(2L) //机器id的bit位数
.setSequenceBits(4L); //序列号的bit位数
}
/**
* ID
*/
public static long nextIdLong() {
Sequence sequence = SEQUENCE_MAP.computeIfAbsent(DEFAULT_SEQ, key -> defaultBuilder().build());
return sequence.nextId();
}
/**
* ID
*
* @param workerId ID
* @param datacenterId ID
*/
public static long nextIdLong(long workerId, long datacenterId) {
Sequence sequence = SEQUENCE_MAP.computeIfAbsent(workerId + "-" + datacenterId, key -> defaultBuilder()
.setWorkerId(workerId)
.setDatacenterId(datacenterId)
.build());
return sequence.nextId();
}
public static String nextId() {
return nextIdLong() + "";
}
public static String nextId(long workerId, long datacenterId) {
return nextIdLong(workerId, datacenterId) + "";
}
}

@ -0,0 +1,79 @@
package com.ruoyi.common.core.utils.uuid.snowflake;
import java.sql.Timestamp;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
/**
* System Clock
* <p>
* ScheduledExecutorServiceSystem.currentTimeMillis().
*
* @author lry
*/
enum SystemClock {
// ====
INSTANCE(1);
private final long period;
private final AtomicLong nowTime;
private boolean started = false;
private ScheduledExecutorService executorService;
SystemClock(long period) {
this.period = period;
this.nowTime = new AtomicLong(System.currentTimeMillis());
}
/**
* The initialize scheduled executor service
*/
public void initialize() {
if (started) {
return;
}
this.executorService = new ScheduledThreadPoolExecutor(1, r -> {
Thread thread = new Thread(r, "system-clock");
thread.setDaemon(true);
return thread;
});
executorService.scheduleAtFixedRate(() -> nowTime.set(System.currentTimeMillis()),
this.period, this.period, TimeUnit.MILLISECONDS);
Runtime.getRuntime().addShutdownHook(new Thread(this::destroy));
started = true;
}
/**
* The get current time milliseconds
*
* @return long time
*/
public long currentTimeMillis() {
return started ? nowTime.get() : System.currentTimeMillis();
}
/**
* The get string current time
*
* @return string time
*/
public String currentTime() {
return new Timestamp(currentTimeMillis()).toString();
}
/**
* The destroy of executor service
*/
public void destroy() {
if (executorService != null) {
executorService.shutdown();
}
}
}

@ -1,104 +1,104 @@
package com.ruoyi.common.core.web.domain;
import java.util.HashMap;
import java.util.Objects;
import com.ruoyi.common.core.constant.HttpStatus;
import com.ruoyi.common.core.utils.StringUtils;
import java.io.Serial;
import java.util.HashMap;
import java.util.Objects;
/**
*
*
*
* @author ruoyi
*/
public class AjaxResult extends HashMap<String, Object>
{
public class AjaxResult extends HashMap<String, Object> {
@Serial
private static final long serialVersionUID = 1L;
/** 状态码 */
/**
*
*/
public static final String CODE_TAG = "code";
/** 返回内容 */
/**
*
*/
public static final String MSG_TAG = "msg";
/** 数据对象 */
/**
*
*/
public static final String DATA_TAG = "data";
/**
* AjaxResult 使
*/
public AjaxResult()
{
public AjaxResult() {
}
/**
* AjaxResult
*
*
* @param code
* @param msg
* @param msg
*/
public AjaxResult(int code, String msg)
{
public AjaxResult(int code, String msg) {
super.put(CODE_TAG, code);
super.put(MSG_TAG, msg);
}
/**
* AjaxResult
*
*
* @param code
* @param msg
* @param msg
* @param data
*/
public AjaxResult(int code, String msg, Object data)
{
public AjaxResult(int code, String msg, Object data) {
super.put(CODE_TAG, code);
super.put(MSG_TAG, msg);
if (StringUtils.isNotNull(data))
{
if (StringUtils.isNotNull(data)) {
super.put(DATA_TAG, data);
}
}
/**
*
*
*
* @return
*/
public static AjaxResult success()
{
public static AjaxResult success() {
return AjaxResult.success("操作成功");
}
/**
*
*
*
* @return
*/
public static AjaxResult success(Object data)
{
public static AjaxResult success(Object data) {
return AjaxResult.success("操作成功", data);
}
/**
*
*
*
* @param msg
* @return
*/
public static AjaxResult success(String msg)
{
public static AjaxResult success(String msg) {
return AjaxResult.success(msg, null);
}
/**
*
*
* @param msg
*
* @param msg
* @param data
* @return
*/
public static AjaxResult success(String msg, Object data)
{
public static AjaxResult success(String msg, Object data) {
return new AjaxResult(HttpStatus.SUCCESS, msg, data);
}
@ -108,65 +108,59 @@ public class AjaxResult extends HashMap<String, Object>
* @param msg
* @return
*/
public static AjaxResult warn(String msg)
{
public static AjaxResult warn(String msg) {
return AjaxResult.warn(msg, null);
}
/**
*
*
* @param msg
* @param msg
* @param data
* @return
*/
public static AjaxResult warn(String msg, Object data)
{
public static AjaxResult warn(String msg, Object data) {
return new AjaxResult(HttpStatus.WARN, msg, data);
}
/**
*
*
*
* @return
*/
public static AjaxResult error()
{
public static AjaxResult error() {
return AjaxResult.error("操作失败");
}
/**
*
*
*
* @param msg
* @return
*/
public static AjaxResult error(String msg)
{
public static AjaxResult error(String msg) {
return AjaxResult.error(msg, null);
}
/**
*
*
* @param msg
*
* @param msg
* @param data
* @return
*/
public static AjaxResult error(String msg, Object data)
{
public static AjaxResult error(String msg, Object data) {
return new AjaxResult(HttpStatus.ERROR, msg, data);
}
/**
*
*
*
* @param code
* @param msg
* @param msg
* @return
*/
public static AjaxResult error(int code, String msg)
{
public static AjaxResult error(int code, String msg) {
return new AjaxResult(code, msg, null);
}
@ -175,8 +169,7 @@ public class AjaxResult extends HashMap<String, Object>
*
* @return
*/
public boolean isSuccess()
{
public boolean isSuccess() {
return Objects.equals(HttpStatus.SUCCESS, this.get(CODE_TAG));
}
@ -185,8 +178,7 @@ public class AjaxResult extends HashMap<String, Object>
*
* @return
*/
public boolean isWarn()
{
public boolean isWarn() {
return Objects.equals(HttpStatus.WARN, this.get(CODE_TAG));
}
@ -195,21 +187,15 @@ public class AjaxResult extends HashMap<String, Object>
*
* @return
*/
public boolean isError()
{
public boolean isError() {
return Objects.equals(HttpStatus.ERROR, this.get(CODE_TAG));
}
/**
* 便
*
* @param key
* @param value
* @return
*/
@Override
public AjaxResult put(String key, Object value)
{
public AjaxResult put(String key, Object value) {
super.put(key, value);
return this;
}

@ -0,0 +1,41 @@
package com.ruoyi.common.core.web.domain;
import java.io.Serial;
/**
*
*
* @author Alan Scipio
* created on 2024/2/2
*/
public class ExtBaseEntity extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* truefalse
*/
private Integer deleteFlag;
/**
*
*/
private Integer updateCount;
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getUpdateCount() {
return updateCount;
}
public void setUpdateCount(Integer updateCount) {
this.updateCount = updateCount;
}
}

@ -1,79 +1,80 @@
package com.ruoyi.common.core.web.domain;
import java.io.Serial;
import java.util.ArrayList;
import java.util.List;
/**
* Tree
*
*
* @author ruoyi
*/
public class TreeEntity extends BaseEntity
{
public class TreeEntity extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/** 父菜单名称 */
/**
*
*/
private String parentName;
/** 父菜单ID */
/**
* ID
*/
private Long parentId;
/** 显示顺序 */
/**
*
*/
private Integer orderNum;
/** 祖级列表 */
/**
*
*/
private String ancestors;
/** 子部门 */
/**
*
*/
private List<?> children = new ArrayList<>();
public String getParentName()
{
public String getParentName() {
return parentName;
}
public void setParentName(String parentName)
{
public void setParentName(String parentName) {
this.parentName = parentName;
}
public Long getParentId()
{
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId)
{
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public Integer getOrderNum()
{
public Integer getOrderNum() {
return orderNum;
}
public void setOrderNum(Integer orderNum)
{
public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum;
}
public String getAncestors()
{
public String getAncestors() {
return ancestors;
}
public void setAncestors(String ancestors)
{
public void setAncestors(String ancestors) {
this.ancestors = ancestors;
}
public List<?> getChildren()
{
public List<?> getChildren() {
return children;
}
public void setChildren(List<?> children)
{
public void setChildren(List<?> children) {
this.children = children;
}
}

@ -4,98 +4,90 @@ import com.ruoyi.common.core.utils.StringUtils;
/**
*
*
*
* @author ruoyi
*/
public class PageDomain
{
/** 当前记录起始索引 */
public class PageDomain {
/**
*
*/
private Integer pageNum;
/** 每页显示记录数 */
/**
*
*/
private Integer pageSize;
/** 排序列 */
/**
*
*/
private String orderByColumn;
/** 排序的方向desc或者asc */
/**
* descasc
*/
private String isAsc = "asc";
/** 分页参数合理化 */
/**
*
*/
private Boolean reasonable = true;
public String getOrderBy()
{
if (StringUtils.isEmpty(orderByColumn))
{
public String getOrderBy() {
if (StringUtils.isEmpty(orderByColumn)) {
return "";
}
return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc;
}
public Integer getPageNum()
{
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum)
{
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize()
{
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize)
{
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public String getOrderByColumn()
{
public String getOrderByColumn() {
return orderByColumn;
}
public void setOrderByColumn(String orderByColumn)
{
public void setOrderByColumn(String orderByColumn) {
this.orderByColumn = orderByColumn;
}
public String getIsAsc()
{
public String getIsAsc() {
return isAsc;
}
public void setIsAsc(String isAsc)
{
if (StringUtils.isNotEmpty(isAsc))
{
public void setIsAsc(String isAsc) {
if (StringUtils.isNotEmpty(isAsc)) {
// 兼容前端排序类型
if ("ascending".equals(isAsc))
{
if ("ascending".equals(isAsc)) {
isAsc = "asc";
}
else if ("descending".equals(isAsc))
{
} else if ("descending".equals(isAsc)) {
isAsc = "desc";
}
this.isAsc = isAsc;
}
}
public Boolean getReasonable()
{
if (StringUtils.isNull(reasonable))
{
public Boolean getReasonable() {
if (StringUtils.isNull(reasonable)) {
return Boolean.TRUE;
}
return reasonable;
}
public void setReasonable(Boolean reasonable)
{
public void setReasonable(Boolean reasonable) {
this.reasonable = reasonable;
}
}

@ -1,85 +1,84 @@
package com.ruoyi.common.core.web.page;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
*
*
*
* @author ruoyi
*/
public class TableDataInfo implements Serializable
{
public class TableDataInfo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/** 总记录数 */
/**
*
*/
private long total;
/** 列表数据 */
/**
*
*/
private List<?> rows;
/** 消息状态码 */
/**
*
*/
private int code;
/** 消息内容 */
/**
*
*/
private String msg;
/**
*
*/
public TableDataInfo()
{
public TableDataInfo() {
}
/**
*
*
* @param list
*
* @param list
* @param total
*/
public TableDataInfo(List<?> list, int total)
{
public TableDataInfo(List<?> list, int total) {
this.rows = list;
this.total = total;
}
public long getTotal()
{
public long getTotal() {
return total;
}
public void setTotal(long total)
{
public void setTotal(long total) {
this.total = total;
}
public List<?> getRows()
{
public List<?> getRows() {
return rows;
}
public void setRows(List<?> rows)
{
public void setRows(List<?> rows) {
this.rows = rows;
}
public int getCode()
{
public int getCode() {
return code;
}
public void setCode(int code)
{
public void setCode(int code) {
this.code = code;
}
public String getMsg()
{
public String getMsg() {
return msg;
}
public void setMsg(String msg)
{
public void setMsg(String msg) {
this.msg = msg;
}
}

@ -5,11 +5,10 @@ import com.ruoyi.common.core.utils.ServletUtils;
/**
*
*
*
* @author ruoyi
*/
public class TableSupport
{
public class TableSupport {
/**
*
*/
@ -38,8 +37,7 @@ public class TableSupport
/**
*
*/
public static PageDomain getPageDomain()
{
public static PageDomain getPageDomain() {
PageDomain pageDomain = new PageDomain();
pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1));
pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10));
@ -49,8 +47,7 @@ public class TableSupport
return pageDomain;
}
public static PageDomain buildPageRequest()
{
public static PageDomain buildPageRequest() {
return getPageDomain();
}
}

@ -1,32 +1,29 @@
package com.ruoyi.common.core.xss;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.ruoyi.common.core.utils.StringUtils;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import com.ruoyi.common.core.utils.StringUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* xss
*
*
* @author ruoyi
*/
public class XssValidator implements ConstraintValidator<Xss, String>
{
public class XssValidator implements ConstraintValidator<Xss, String> {
private static final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />";
@Override
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext)
{
if (StringUtils.isBlank(value))
{
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
if (StringUtils.isBlank(value)) {
return true;
}
return !containsHtml(value);
}
public static boolean containsHtml(String value)
{
public static boolean containsHtml(String value) {
Pattern pattern = Pattern.compile(HTML_PATTERN);
Matcher matcher = pattern.matcher(value);
return matcher.matches();

@ -75,6 +75,13 @@
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common-log</artifactId>
</dependency>
<!-- Mybatis Generator -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>

@ -0,0 +1,141 @@
package com.ruoyi.wms.domain;
import com.ruoyi.common.core.web.domain.ExtBaseEntity;
import jakarta.annotation.Generated;
/**
*
* This class was generated by MyBatis Generator.
* This class corresponds to the database table SF_WMS_M_UNIT_INFO
*/
public class UnitInfo extends ExtBaseEntity {
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.ORG_CD")
private String orgCd;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT")
private String unit;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_NAME")
private String unitName;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_CONV_RATE")
private String unitConvRate;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.SRC_CONV_UNIT")
private String srcConvUnit;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_1")
private String remark1;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_2")
private String remark2;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_3")
private String remark3;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_4")
private String remark4;
@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 field: SF_WMS_M_UNIT_INFO.ORG_CD")
public String getOrgCd() {
return orgCd;
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.ORG_CD")
public void setOrgCd(String orgCd) {
this.orgCd = orgCd == null ? null : orgCd.trim();
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT")
public String getUnit() {
return unit;
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT")
public void setUnit(String unit) {
this.unit = unit == null ? null : unit.trim();
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_NAME")
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.UNIT_CONV_RATE")
public String getUnitConvRate() {
return unitConvRate;
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_CONV_RATE")
public void setUnitConvRate(String unitConvRate) {
this.unitConvRate = unitConvRate == null ? null : unitConvRate.trim();
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.SRC_CONV_UNIT")
public String getSrcConvUnit() {
return srcConvUnit;
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.SRC_CONV_UNIT")
public void setSrcConvUnit(String srcConvUnit) {
this.srcConvUnit = srcConvUnit == null ? null : srcConvUnit.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();
}
}

@ -0,0 +1,124 @@
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;
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();
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.ORG_CD")
public static final SqlColumn<String> orgCd = unitInfo.orgCd;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT")
public static final SqlColumn<String> unit = unitInfo.unit;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_NAME")
public static final SqlColumn<String> unitName = unitInfo.unitName;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UNIT_CONV_RATE")
public static final SqlColumn<String> unitConvRate = unitInfo.unitConvRate;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.SRC_CONV_UNIT")
public static final SqlColumn<String> srcConvUnit = unitInfo.srcConvUnit;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_1")
public static final SqlColumn<String> remark1 = unitInfo.remark1;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_2")
public static final SqlColumn<String> remark2 = unitInfo.remark2;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_3")
public static final SqlColumn<String> remark3 = unitInfo.remark3;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_4")
public static final SqlColumn<String> remark4 = unitInfo.remark4;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.REMARK_5")
public static final SqlColumn<String> remark5 = unitInfo.remark5;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.UPDATE_COUNT")
public static final SqlColumn<Integer> updateCount = unitInfo.updateCount;
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source field: SF_WMS_M_UNIT_INFO.DELETE_FLAG")
public static final SqlColumn<Integer> 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<String> 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<Date> 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<String> 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<Date> 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<String> 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<UnitInfo> {
public final SqlColumn<String> orgCd = column("ORG_CD", JDBCType.VARCHAR);
public final SqlColumn<String> unit = column("UNIT", JDBCType.VARCHAR);
public final SqlColumn<String> unitName = column("UNIT_NAME", JDBCType.VARCHAR);
public final SqlColumn<String> unitConvRate = column("UNIT_CONV_RATE", JDBCType.VARCHAR);
public final SqlColumn<String> srcConvUnit = column("SRC_CONV_UNIT", JDBCType.VARCHAR);
public final SqlColumn<String> remark1 = column("REMARK_1", JDBCType.VARCHAR);
public final SqlColumn<String> remark2 = column("REMARK_2", JDBCType.VARCHAR);
public final SqlColumn<String> remark3 = column("REMARK_3", JDBCType.VARCHAR);
public final SqlColumn<String> remark4 = column("REMARK_4", JDBCType.VARCHAR);
public final SqlColumn<String> remark5 = column("REMARK_5", JDBCType.VARCHAR);
public final SqlColumn<Integer> updateCount = column("UPDATE_COUNT", JDBCType.INTEGER);
public final SqlColumn<Integer> deleteFlag = column("DELETE_FLAG", JDBCType.INTEGER);
public final SqlColumn<String> createBy = column("create_by", JDBCType.VARCHAR);
public final SqlColumn<Date> createTime = column("create_time", JDBCType.TIMESTAMP);
public final SqlColumn<String> updateBy = column("update_by", JDBCType.VARCHAR);
public final SqlColumn<Date> updateTime = column("update_time", JDBCType.TIMESTAMP);
public final SqlColumn<String> remark = column("remark", JDBCType.VARCHAR);
public UnitInfo() {
super("SF_WMS_M_UNIT_INFO", UnitInfo::new);
}
}
}

@ -0,0 +1,267 @@
package com.ruoyi.wms.mapper;
import static com.ruoyi.wms.mapper.UnitInfoDynamicSqlSupport.*;
import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo;
import com.ruoyi.wms.domain.UnitInfo;
import jakarta.annotation.Generated;
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;
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.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<UnitInfo>, CommonUpdateMapper {
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO")
BasicColumn[] selectList = BasicColumn.columnList(orgCd, unit, unitName, unitConvRate, srcConvUnit, 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="ORG_CD", property="orgCd", jdbcType=JdbcType.VARCHAR, id=true),
@Result(column="UNIT", property="unit", jdbcType=JdbcType.VARCHAR, id=true),
@Result(column="UNIT_NAME", property="unitName", jdbcType=JdbcType.VARCHAR),
@Result(column="UNIT_CONV_RATE", property="unitConvRate", jdbcType=JdbcType.VARCHAR),
@Result(column="SRC_CONV_UNIT", property="srcConvUnit", 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<UnitInfo> 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<UnitInfo> 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 orgCd_, String unit_) {
return delete(c ->
c.where(orgCd, isEqualTo(orgCd_))
.and(unit, isEqualTo(unit_))
);
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO")
default int insert(UnitInfo row) {
return MyBatis3Utils.insert(this::insert, row, unitInfo, c ->
c.map(orgCd).toProperty("orgCd")
.map(unit).toProperty("unit")
.map(unitName).toProperty("unitName")
.map(unitConvRate).toProperty("unitConvRate")
.map(srcConvUnit).toProperty("srcConvUnit")
.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")
);
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO")
default int insertMultiple(Collection<UnitInfo> records) {
return MyBatis3Utils.insertMultiple(this::insertMultiple, records, unitInfo, c ->
c.map(orgCd).toProperty("orgCd")
.map(unit).toProperty("unit")
.map(unitName).toProperty("unitName")
.map(unitConvRate).toProperty("unitConvRate")
.map(srcConvUnit).toProperty("srcConvUnit")
.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")
);
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO")
default int insertSelective(UnitInfo row) {
return MyBatis3Utils.insert(this::insert, row, unitInfo, c ->
c.map(orgCd).toPropertyWhenPresent("orgCd", row::getOrgCd)
.map(unit).toPropertyWhenPresent("unit", row::getUnit)
.map(unitName).toPropertyWhenPresent("unitName", row::getUnitName)
.map(unitConvRate).toPropertyWhenPresent("unitConvRate", row::getUnitConvRate)
.map(srcConvUnit).toPropertyWhenPresent("srcConvUnit", row::getSrcConvUnit)
.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)
);
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO")
default Optional<UnitInfo> 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<UnitInfo> 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<UnitInfo> 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<UnitInfo> selectByPrimaryKey(String orgCd_, String unit_) {
return selectOne(c ->
c.where(orgCd, isEqualTo(orgCd_))
.and(unit, isEqualTo(unit_))
);
}
@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<UpdateModel> updateAllColumns(UnitInfo row, UpdateDSL<UpdateModel> dsl) {
return dsl.set(orgCd).equalTo(row::getOrgCd)
.set(unit).equalTo(row::getUnit)
.set(unitName).equalTo(row::getUnitName)
.set(unitConvRate).equalTo(row::getUnitConvRate)
.set(srcConvUnit).equalTo(row::getSrcConvUnit)
.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);
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO")
static UpdateDSL<UpdateModel> updateSelectiveColumns(UnitInfo row, UpdateDSL<UpdateModel> dsl) {
return dsl.set(orgCd).equalToWhenPresent(row::getOrgCd)
.set(unit).equalToWhenPresent(row::getUnit)
.set(unitName).equalToWhenPresent(row::getUnitName)
.set(unitConvRate).equalToWhenPresent(row::getUnitConvRate)
.set(srcConvUnit).equalToWhenPresent(row::getSrcConvUnit)
.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);
}
@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)
.set(unitConvRate).equalTo(row::getUnitConvRate)
.set(srcConvUnit).equalTo(row::getSrcConvUnit)
.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(orgCd, isEqualTo(row::getOrgCd))
.and(unit, isEqualTo(row::getUnit))
);
}
@Generated(value="org.mybatis.generator.api.MyBatisGenerator", comments="Source Table: SF_WMS_M_UNIT_INFO")
default int updateByPrimaryKeySelective(UnitInfo row) {
return update(c ->
c.set(unitName).equalToWhenPresent(row::getUnitName)
.set(unitConvRate).equalToWhenPresent(row::getUnitConvRate)
.set(srcConvUnit).equalToWhenPresent(row::getSrcConvUnit)
.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(orgCd, isEqualTo(row::getOrgCd))
.and(unit, isEqualTo(row::getUnit))
);
}
}

@ -19,7 +19,7 @@
<!-- Java 模型 -->
<javaModelGenerator targetPackage="com.ruoyi.wms.domain" targetProject="ruoyi-modules/ruoyi-wms/src/main/java">
<property name="rootClass" value="com.ruoyi.common.core.web.domain.BaseEntity"/>
<property name="rootClass" value="com.ruoyi.common.core.web.domain.ExtBaseEntity"/>
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
@ -35,6 +35,6 @@
</javaClientGenerator>
<!-- 要生成的表 -->
<table tableName="sys_common" domainObjectName="SysCommon"/>
<table tableName="SF_WMS_M_UNIT_INFO" domainObjectName="UnitInfo"/>
</context>
</generatorConfiguration>
Loading…
Cancel
Save