XML工具 Tools 03

private static TableName_Field setFieldValueMapping(
Map.Entry<String, List<EsbTableField>> entry,
Map<String, String> propertiesValue)
{
// 取出log_sn,主要是如果log_sn=0 時,消息不需要寫入到ESB_BUSINESS_EX這表
String log_sn = propertiesValue.get("log_sn");
TableName_Field tableName_field = null;
//如果log_sn爲0那麼說明是系統級的日誌
if (entry.getKey().equalsIgnoreCase("ESB_BUSINESS_EX")
&& (!"0".equals(log_sn)))
{
tableName_field = null;
}
else
{
List<EsbTableField> list = new ArrayList<EsbTableField>(entry
.getValue().size());
// 每個數據庫字段的對象
EsbTableField putesbTableField = null;
tableName_field = new TableName_Field();
for (EsbTableField esbTableField : entry.getValue())
{
putesbTableField = new EsbTableField();
putesbTableField.setDatetype(esbTableField.getDatetype());
putesbTableField.setFieldName(esbTableField.getFieldName());
//根據xml的xpathfield的內容爲key,在Map propertiesValues中找到value
putesbTableField.setFieldValue(propertiesValue
.get(esbTableField.getFieldMappinValue()));
list.add(putesbTableField);
}
tableName_field.setTableName(entry.getKey());
tableName_field.setList(list);
}
return tableName_field;
}

/**
* 獲取當前系統的時間戳
*/
public static String getTimesTamp()
{
return dateFormatString(new Date());
}

public static String getEsb_Trancking_id()
{
StringBuffer sequenceid = new StringBuffer(30);
int snseqeunce = getSnSequence();
sequenceid.append(getNormalString())
.append(trancking_array[snseqeunce]);
return sequenceid.toString();
}

/**
* 防止多線程取到相同的讀取序列號,000~999的數據, 2012-1-5,Xgw123485
*/
private static synchronized int getSnSequence()
{
int temp = sn++;
if (temp == 0)
{
trancking_array = OperateDB.getTrancking_id();
}
if (temp == 99)
{
sn = 0;
}
return temp;
}

/**
* 功能說明:用於獲取cle_log_seq_id 2012-1-5,Xgw123485
*/
public static String getSeq_id_DFX()
{
int seq_index = getDfxSequence();
String seq_value = null;
if (seq_array != null)
{
seq_value = seq_array[seq_index];
}
if (seq_value == null)
{
seq_value = "";
}
return getDateString() + seq_value;
}

/**
* 需要使用同步讀取序列號,防止多線程取到相同的讀取序列號。獲取數據的cle_log_seq_id, 從數據庫裏取到的是100個序列號過來
* 2012-1-5,Xgw123485
*/
private static synchronized int getDfxSequence()
{
int temp = seq_id++;
if (temp == 0)
{
seq_array = OperateDB.getSeq_id();
}
if (temp == 99)
{
seq_id = 0;
}
return temp;
}

public static Date stringFormatDate(String date)
{
DateFormat format = new SimpleDateFormat(df);
Date returnDate = null;
try
{
returnDate = format.parse(date);
}
catch (Exception e)
{
logger.error("Format date is fail date:" + date, e);
}
return returnDate;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章