package com.fzzy.api.utils;
|
|
import com.fzzy.api.Constant;
|
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.time.DateUtils;
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
|
import java.util.*;
|
|
/**
|
*
|
*/
|
public class ContextUtil {
|
|
|
/**
|
* 全局命令ID
|
*/
|
public static Map<String, Integer> contextOrderId = new HashMap<>();
|
|
|
public static String getUUID() {
|
return UUID.randomUUID().toString().replaceAll("-", "");
|
}
|
|
public static String getCurTimeMillis() {
|
return System.currentTimeMillis() + "";
|
}
|
|
|
/**
|
* 根据当前时间获取只有 yyyy-MM-dd的时间
|
*
|
* @param date
|
* @return
|
*/
|
public static Date getCurZero(Date date) {
|
//TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
|
date = DateUtils.setHours(date, 0);
|
date = DateUtils.setMinutes(date, 0);
|
date = DateUtils.setSeconds(date, 0);
|
date = DateUtils.setMilliseconds(date, 0);
|
return date;
|
}
|
|
/**
|
* 获取当前时间下一天的零点零分零秒
|
*
|
* @param date
|
* @return
|
*/
|
public static Date getNextZero(Date date) {
|
//TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
|
date = DateUtils.addDays(date, 1);
|
date = DateUtils.setHours(date, 0);
|
date = DateUtils.setMinutes(date, 0);
|
date = DateUtils.setSeconds(date, 0);
|
date = DateUtils.setMilliseconds(date, 0);
|
return date;
|
}
|
|
/**
|
* 根据时间获取当前时间星期
|
* <p>
|
* 周日=1,周一=2
|
*
|
* @param date
|
* @return
|
*/
|
public static int getDayOfWeek(Date date) {
|
Calendar now = Calendar.getInstance();
|
now.setTime(date);
|
return now.get(Calendar.DAY_OF_WEEK);
|
}
|
|
/**
|
* 获取当前时间在一天中的时间 24小时制
|
*
|
* @param date
|
* @return
|
*/
|
public static int getHourOfDay(Date date) {
|
Calendar now = Calendar.getInstance();
|
now.setTime(date);
|
|
return now.get(Calendar.HOUR_OF_DAY);
|
}
|
|
|
|
/**
|
* 获取时间在当前小时中的分钟
|
*
|
* @param date
|
* @return
|
*/
|
public static int getMinuteOfHour(Date date) {
|
Calendar now = Calendar.getInstance();
|
now.setTime(date);
|
return now.get(Calendar.MINUTE);
|
}
|
|
|
public static void main(String[] args) {
|
// Date date = new Date();
|
// int i = ContextUtil.getMinuteOfHour(date);
|
//
|
// System.out.println(i);
|
}
|
|
|
/**
|
* 最高的编码为:组织编码,然后逐级往下,如:5013,5013_001,5013_002,5013_001_001
|
*
|
* @param companyId 必须
|
* @param parentId 可空
|
* @param endId 可空
|
* @param format 必须 三位传1000,四位传10000
|
* @return
|
*/
|
public static String getNextId(String companyId, String parentId,
|
String endId, int format) {
|
if (parentId == null || Constant.DEFAULT_PARENT_CODE.equals(parentId)) {
|
return companyId;
|
}
|
try {
|
int endNum = 0;
|
if (StringUtils.isNotEmpty(endId)) {
|
endNum = Integer.valueOf(endId.substring(endId.length() - 3));
|
}
|
String endStr = ("" + (endNum + format + 1)).substring(1);
|
|
if (parentId.equals(companyId)) {
|
return companyId + "_" + endStr;
|
}
|
parentId = parentId.substring(parentId.lastIndexOf("_") + 1);
|
return companyId + "_" + parentId + "_" + endStr;
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
return null;
|
}
|
}
|
|
/**
|
* 生成TCP连接的KEY
|
*
|
* @param ip
|
* @param port
|
* @return
|
*/
|
public static String getServerKey(String ip, Integer port) {
|
return ip + ":" + port;
|
}
|
|
|
/**
|
* 根据参数生成 执行命令的缓存KEY
|
*
|
* @param companyId
|
* @param serId
|
* @param bizType
|
* @return
|
*/
|
public static final String buildExeOrderId(String companyId, String serId, String bizType) {
|
Integer start = contextOrderId.get("ORDER_ID") == null ? 5000 : contextOrderId.get("ORDER_ID");
|
|
contextOrderId.put("ORDER_ID", start + 1);
|
|
return start + "";
|
}
|
|
/**
|
* 设备ID生成规则
|
*
|
* @param companyId
|
* @param depotId
|
* @param passCode
|
* @return
|
*/
|
public static final String buildDeviceId(String companyId, String depotId, int passCode) {
|
return companyId + "_" + depotId + "_" + passCode;
|
}
|
|
public static String buildDeviceStatusKey(String companyId, String serId, String passCode) {
|
if (null == passCode) passCode = "NULL";
|
return companyId + "_" + serId + "_STATUS_" + passCode;
|
}
|
|
public static String buildDeviceStatusKey(String companyId, String serId, int passCode) {
|
return companyId + "_" + serId + "_STATUS_" + passCode;
|
}
|
|
|
public static String getDefaultBatchId() {
|
return DateFormatUtils.format(new Date(), "yyyyMMddHHmm");
|
}
|
}
|