From 070bacf20ef3685a7edb47feadcc31517107e6f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=80=9D=E6=B4=81?= Date: Tue, 20 Aug 2019 18:04:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=89=80=E6=9C=89=E5=A4=96=E9=83=A8?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=A2=9E=E5=8A=A0=E5=88=9B=E5=BB=BA=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=92=8C=E5=88=9B=E5=BB=BA=E4=BA=BA=E7=9A=84=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java b/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java index c9fc769..7595fc4 100644 --- a/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java +++ b/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java @@ -124,7 +124,7 @@ public class WmsHqlPack { DdlPreparedPack.getStringEqualPack(wmsDocMovementDetails.getPartNo(), "partNo", result); DdlPreparedPack.getStringLikerPack(wmsDocMovementDetails.getDestZoneNo(), "destZoneNo", result); DdlPreparedPack.getStringLikerPack(wmsDocMovementDetails.getDestLocateNo(), "destLocateNo", result); - + DdlPreparedPack.getStringLikerPack(wmsDocMovementDetails.getCreateUser(), "createUser", result); DdlPreparedPack.timeBuilder(wmsDocMovementDetails.getCreateDateTimeStart(), wmsDocMovementDetails.getCreateDateTimeEnd(), "createDatetime", result, true); getStringBuilderPack(wmsDocMovementDetails, result); @@ -165,6 +165,7 @@ public class WmsHqlPack { DdlPreparedPack.getNumEqualPack(wmsDocMovementMaster.getBusiType(), "busiType", packBean); DdlPreparedPack.getNumEqualPack(wmsDocMovementMaster.getOrderStatus(), "orderStatus", packBean); DdlPreparedPack.getStringEqualPack(wmsDocMovementMaster.getCustNo(), "custNo", packBean); + DdlPreparedPack.getStringLikerPack(wmsDocMovementMaster.getCreateUser(),"createUser",packBean); getStringBuilderPack(wmsDocMovementMaster, packBean); @@ -187,7 +188,8 @@ public class WmsHqlPack { DdlPreparedPack.getStringEqualPack(wmsPOMaster.getVendorNo(), "vendorNo", result); DdlPreparedPack.getStringEqualPack(wmsPOMaster.getSrc(), "src", result); DdlPreparedPack.getStringEqualPack(wmsPOMaster.getIsAsn(), "isAsn", result); - + DdlPreparedPack.getStringLikerPack(wmsPOMaster.getCreateUser(), "createUser", result); + DdlPreparedPack.timeBuilder(wmsPOMaster.getCreateDateTimeStart(),wmsPOMaster.getCreateDateTimeEnd(),"createDatetime",result,true); getStringBuilderPack(wmsPOMaster, result); return result; @@ -572,6 +574,8 @@ public class WmsHqlPack { DdlPreparedPack.getStringEqualPack(wmsASNMaster.getVersion(), "version", result); DdlPreparedPack.getStringLikerPack(wmsASNMaster.getSrc(), "src", result); DdlPreparedPack.getStringEqualPack(wmsASNMaster.getPoNo(), "poNo", result); + DdlPreparedPack.getStringLikerPack(wmsASNMaster.getCreateUser(), "createUser", result); + DdlPreparedPack.timeBuilder(wmsASNMaster.getCreateDateTimeStart(),wmsASNMaster.getCreateDateTimeEnd(),"createDatetime",result,true); getStringBuilderPack(wmsASNMaster, result); @@ -602,6 +606,9 @@ public class WmsHqlPack { //单据来源 DdlPreparedPack.getStringEqualPack(wmsShipping.getSrc(), "src", result); + DdlPreparedPack.getStringLikerPack(wmsShipping.getCreateUser(), "createUser", result); + DdlPreparedPack.timeBuilder(wmsShipping.getCreateDateTimeStart(),wmsShipping.getCreateDateTimeEnd(),"createDatetime",result,true); + getStringBuilderPack(wmsShipping, result); getStringBuilderPack(wmsShipping, result); return result; @@ -688,6 +695,8 @@ public class WmsHqlPack { DdlPreparedPack.getStringLikerPack(wmsFGInStock.getCustNo(), "custNo", result); DdlPreparedPack.getStringEqualPack(wmsFGInStock.getShippingFlag(), "shippingFlag", result); DdlPreparedPack.getStringEqualPack(wmsFGInStock.getMfgLogNo(), "mfgLogNo", result); + DdlPreparedPack.getStringLikerPack(wmsFGInStock.getCreateUser(), "createUser", result); + DdlPreparedPack.timeBuilder(wmsFGInStock.getCreateDateTimeStart(),wmsFGInStock.getCreateDateTimeEnd(),"createDatetime",result,true); getStringBuilderPack(wmsFGInStock, result); From 1b30b927cea74101271eb9cfc19cb1b7c7512d66 Mon Sep 17 00:00:00 2001 From: "wei.peng" <123456> Date: Tue, 20 Aug 2019 18:13:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/base/codemaker/SnowflakeIdMaker.java | 71 +++++++++++++++++++++- .../pojo/base/enumutil/BlockFormEnumUtil.java | 21 ++++++- 2 files changed, 87 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdMaker.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdMaker.java index 6a7d958..50b1ca8 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdMaker.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/codemaker/SnowflakeIdMaker.java @@ -1,5 +1,16 @@ package cn.estsh.i3plus.pojo.base.codemaker; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import sun.management.VMManagement; + +import java.lang.management.ManagementFactory; +import java.lang.management.RuntimeMXBean; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.net.InetAddress; +import java.net.NetworkInterface; + /** * @Description : 使用SnowFlake,生成分布式ID * @Reference : SnowFlake可以保证: @@ -11,13 +22,15 @@ package cn.estsh.i3plus.pojo.base.codemaker; **/ public class SnowflakeIdMaker { + public static final Logger LOGGER = LoggerFactory.getLogger(SnowflakeIdMaker.class); + private long workerId; private long datacenterId; private long sequence = 0L; public SnowflakeIdMaker(){ - this.workerId = 1; - this.datacenterId = 1; + this.workerId = getWorkerMacId(); + this.datacenterId = getDatacenterPid(); this.sequence = 0L; } @@ -89,6 +102,60 @@ public class SnowflakeIdMaker { return timestamp; } + /** + * 使用本机Mac 地址的HashCode 取摸 32 + * @return + */ + private long getWorkerMacId() { + long result; + try { + InetAddress ia; + byte[] mac = null; + //获取本地IP对象 + ia = InetAddress.getLocalHost(); + //获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。 + mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress(); + //下面代码是把mac地址拼装成String + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < mac.length; i++) { + if (i != 0) { + sb.append("-"); + } + //mac[i] & 0xFF 是为了把byte转化为正整数 + String s = Integer.toHexString(mac[i] & 0xFF); + sb.append(s.length() == 1 ? 0 + s : s); + } + + //把字符串所有小写字母改为大写成为正规的mac地址并返回 + result = sb.toString().toUpperCase().hashCode(); + }catch (Exception e){ + e.printStackTrace(); + result = 31; + LOGGER.error("[SnowflakeIdMaker] 获取设备ID错误:{}",e.getMessage()); + } + + result = result + timeGen(); + return result < 0 ? (0 - result) % 32 : result % 32; + } + + private long getDatacenterPid() { + long result; + try { + RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); + Field jvm = runtime.getClass().getDeclaredField("jvm"); + jvm.setAccessible(true); + VMManagement mgmt = (VMManagement) jvm.get(runtime); + Method pidMethod = mgmt.getClass().getDeclaredMethod("getProcessId"); + pidMethod.setAccessible(true); + result = (Integer) pidMethod.invoke(mgmt); + } catch (Exception e) { + result = 31; + } + + result = result + timeGen(); + return result < 0 ? (0 - result) % 32 : result % 32; + } + private long timeGen(){ return System.currentTimeMillis(); } diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java index 2fa0f79..650d294 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java @@ -833,7 +833,7 @@ public class BlockFormEnumUtil { TEXT(200, "TEXT", "文本"), NUMBER(210, "NUMBER", "数字"), PASSWORD(230, "PASSWORD", "密码"), - DATE_TIME(300, "DATE", "日期"), + DATE_TIME(300, "DATE", "日期",SQL_WHERE.BETWEEN), // DATE(300, "DATE", "日期(yyyy-MM-dd)"), // DATE_TIME(310, "DATE_TIME", "时间(yyyy-MM-dd hh:mm:ss)"), // ELEMENT(700, "DICT_SELECT", "元素"), @@ -847,10 +847,22 @@ public class BlockFormEnumUtil { private String code; private String description; - private PROPERTY_CONTROL_TYPE(int value, String code, String description) { + /** + * 默认查询关系 + */ + private SQL_WHERE defaultWhere; + + PROPERTY_CONTROL_TYPE(int value, String code, String description) { + this.value = value; + this.code = code; + this.description = description; + } + + PROPERTY_CONTROL_TYPE(int value, String code, String description, SQL_WHERE defaultWhere) { this.value = value; this.code = code; this.description = description; + this.defaultWhere = defaultWhere; } public int getValue() { @@ -865,6 +877,10 @@ public class BlockFormEnumUtil { return description; } + public SQL_WHERE getDefaultWhere() { + return defaultWhere; + } + public static String valueOfCode(int val) { String tmp = null; for (int i = 0; i < values().length; i++) { @@ -2476,7 +2492,6 @@ public class BlockFormEnumUtil { } public static SQL_WHERE valueOf(int val) { - String tmp = null; for (int i = 0; i < values().length; i++) { if (values()[i].value == val) { return values()[i];