0.00.0100005050NY50000YN1000100-2024/01/10 11:03:15.382-2024/01/10 11:03:15.382H4sIAAAAAAAAAAMAAAAAAAAAAAA=NMOM${mysql_host}MYSQLNative${mysql_dbname}3306${mysql_username}${mysql_password}EXTRA_OPTION_MYSQL.characterEncodingutf-8EXTRA_OPTION_MYSQL.defaultFetchSize5000EXTRA_OPTION_MYSQL.rewriteBatchedStatementstrueEXTRA_OPTION_MYSQL.useCompressiontrueEXTRA_OPTION_MYSQL.useCursorFetchtrueEXTRA_OPTION_MYSQL.useServerPrepStmtstrueFORCE_IDENTIFIERS_TO_LOWERCASENFORCE_IDENTIFIERS_TO_UPPERCASENIS_CLUSTEREDNPORT_NUMBER3306PRESERVE_RESERVED_WORD_CASEYQUOTE_ALL_FIELDSNSTREAM_RESULTSNSUPPORTS_BOOLEAN_DATA_TYPEYSUPPORTS_TIMESTAMP_DATA_TYPEYUSE_POOLINGNU8${U8DB_HOST}GENERICNative${U8DB_NAME}1433${sqlserver_username}${sqlserver_password}CUSTOM_DRIVER_CLASS${sqlserver_driverclassname}CUSTOM_URL${sqlserver_url}DATABASE_DIALECT_IDGeneric databaseFORCE_IDENTIFIERS_TO_LOWERCASENFORCE_IDENTIFIERS_TO_UPPERCASENIS_CLUSTEREDNPORT_NUMBER1433PRESERVE_RESERVED_WORD_CASEYQUOTE_ALL_FIELDSNSUPPORTS_BOOLEAN_DATA_TYPEYSUPPORTS_TIMESTAMP_DATA_TYPEYUSE_POOLINGN流查询-mom物料档案插入 / 更新Y表输入-mom物料档案流查询-mom物料档案Y流查询-主id流查询-mom物料档案Y表输入Java 代码-子idY表输入-主id流查询-主idYJava 代码-子id流查询-主idY获取变量表输入Y获取变量表输入-主idY获取变量表输入-mom物料档案YJava 代码-子idUserDefinedJavaClassY1noneTRANSFORM_CLASSProcessorpublic boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
r = createOutputRow(r, data.outputRowMeta.size());
if (snowflakeIdWorker == null) {
snowflakeIdWorker = new SnowflakeIdWorker(1, 1); // 设置你的workerId和datacenterId
}
String id = String.valueOf(snowflakeIdWorker.nextId());
get(Fields.Out, "id").setValue(r, id);
putRow(data.outputRowMeta, r);
return true;
}
// 定义全局变量(放在类顶部)
private static SnowflakeIdWorker snowflakeIdWorker = null;
// 内部类:雪花算法实现
public static class SnowflakeIdWorker {
private final long twepoch = 1288834974657L;
private final long workerIdBits = 5L;
private final long datacenterIdBits = 5L;
private final long maxWorkerId = -1L ^ (-1L << workerIdBits);
private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
private final long sequenceBits = 12L;
private final long workerIdShift = sequenceBits;
private final long datacenterIdShift = sequenceBits + workerIdBits;
private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
private final long sequenceMask = -1L ^ (-1L << sequenceBits);
private long workerId;
private long datacenterId;
private long sequence = 0L;
private long lastTimestamp = -1L;
public SnowflakeIdWorker(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;
}
public synchronized long nextId() {
long timestamp = timeGen();
if (timestamp < lastTimestamp) {
throw new RuntimeException("Clock moved backwards. Refusing to generate id for " + (lastTimestamp - timestamp) + " milliseconds");
}
if (lastTimestamp == timestamp) {
sequence = (sequence + 1) & sequenceMask;
if (sequence == 0) {
timestamp = tilNextMillis(lastTimestamp);
}
} else {
sequence = 0L;
}
lastTimestamp = timestamp;
return ((timestamp - twepoch) << timestampLeftShift)
| (datacenterId << datacenterIdShift)
| (workerId << workerIdShift)
| sequence;
}
private long tilNextMillis(long lastTimestamp) {
long timestamp = timeGen();
while (timestamp <= lastTimestamp) {
timestamp = timeGen();
}
return timestamp;
}
private long timeGen() {
return System.currentTimeMillis();
}
}idString-1-1N256128Y插入 / 更新InsertUpdateY1noneMOM1000Y
wms_task_ins
interface_idinterface_id=interface_idinterface_idNinterface_rowinterface_rowNididNtask_in_idmom_task_in_idN`row_number`row_numberNmaterial_codematerial_codeNtask_qtytask_qtyNunit_codeunit_codeNexcess_ratio_inmom_excess_ratio_inNwarehouse_codemom_warehouse_codeNlocation_codemom_location_codeNbatch1batch1Nbatch2batch2NstatusstatusNis_closeis_closeNcreate_idsync_idNcreate_bysync_nameNcreate_timesync_timeNaudit_bysync_nameNaudit_timesync_timeN736128Y流查询-mom物料档案StreamLookupY1none表输入-mom物料档案NNNNmaterial_codemom_material_codemom_warehouse_codemom_warehouse_codeStringmom_location_codemom_location_codeStringmom_excess_ratio_inmom_excess_ratio_inBigNumber592128Y流查询-主idStreamLookupY1none表输入-主idNNNNmaster_interface_idmaster_interface_idmom_task_in_idmom_task_in_idString432128Y表输入TableInputY1noneU8DECLARE @USER_NAME VARCHAR(50),@USER_ID INT
SET @USER_NAME = CASE '${USER_NAME}' WHEN '' THEN '管理员(kettle)' ELSE '${USER_NAME}' END
SET @USER_ID = CASE 0${USER_ID} WHEN 0 THEN 1 ELSE 0${USER_ID} END
SELECT
0${interface_id} AS master_interface_id
,T2.Autoid AS interface_id
,T2.iVouchRowNo AS interface_row
,T2.iVouchRowNo AS row_number
--,ROW_NUMBER()OVER(ORDER BY T2.iVouchRowNo) AS row_number
,T2.cInvCode AS material_code
,T2.iQuantity AS task_qty
,T6.cComUnitCode AS unit_code
,T2.cBatch AS batch1
,T2.cBatchProperty6 AS batch2
,0 AS status
,1 AS is_close
,@USER_NAME AS sync_name
,@USER_ID AS sync_id
,GETDATE() AS sync_time
FROM PU_ArrivalVouch T1
LEFT JOIN PU_ArrivalVouchs T2 ON T1.ID =T2.ID
LEFT JOIN Inventory T6 ON T2.cInvCode =T6.cInvCode
WHERE 1=1
AND T1.ID =0${interface_id}
0NYNNIntegernormalmaster_interface_id90表输入master_interface_id####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNIntegernormalinterface_id90表输入interface_id####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNIntegernormalinterface_row90表输入interface_row####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNIntegernormalrow_number90表输入row_number####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNStringnormalmaterial_code60-1表输入material_code.,noneNY0NNNzh_CNAsia/ShanghaiNBigNumbernormaltask_qty206表输入task_qty######0.0###################;-######0.0###################.noneNY0NNNzh_CNAsia/ShanghaiNStringnormalunit_code35-1表输入unit_code.,noneNY0NNNzh_CNAsia/ShanghaiNStringnormalbatch160-1表输入batch1.,noneNY0NNNzh_CNAsia/ShanghaiNStringnormalbatch2120-1表输入batch2.,noneNY0NNNzh_CNAsia/ShanghaiNIntegernormalstatus90表输入status####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNIntegernormalis_close90表输入is_close####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNStringnormalsync_name50-1表输入sync_name.,noneNY0NNNzh_CNAsia/ShanghaiNIntegernormalsync_id90表输入sync_id####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNTimestampnormalsync_time3-1表输入sync_time.,noneNY0NNNzh_CNAsia/ShanghaiN128128Y表输入-mom物料档案TableInputY1noneMOMSELECT
material_code AS mom_material_code
,excess_ratio_in AS mom_excess_ratio_in
,warehouse_code_in AS mom_warehouse_code
,location_code_in AS mom_location_code
FROM base_material0NNNNStringnormalmaterial_code50-1表输入-mom物料档案material_code.,noneNY0NNNzh_CNAsia/ShanghaiNBigNumbernormalexcess_ratio_in246表输入-mom物料档案excess_ratio_in######0.0###################;-######0.0###################.noneNY0NNNzh_CNAsia/ShanghaiNStringnormalwarehouse_code50-1表输入-mom物料档案warehouse_code.,noneNY0NNNzh_CNAsia/ShanghaiNStringnormallocation_code50-1表输入-mom物料档案location_code.,noneNY0NNNzh_CNAsia/ShanghaiN464224Y表输入-主idTableInputY1noneMOMSELECT
0${interface_id} as master_interface_id,
id as mom_task_in_id
FROM wms_task_in
WHERE interface_id =0${interface_id} AND bill_type_code ='5' ORDER BY create_time DESC LIMIT 1
0NYNNIntegernormalmaster_interface_id150表输入-主idmaster_interface_id####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNStringnormalmom_task_in_id20-1表输入-主idmom_task_in_id.,noneNY0NNNzh_CNAsia/ShanghaiN272224Y获取变量GetVariableY1nonemysql_driverclassname${mysql_driverclassname}String-1-1nonemysql_password${mysql_password}String-1-1nonemysql_url${mysql_url}String-1-1nonemysql_username${mysql_username}String-1-1noneUSER_ID${USER_ID}String-1-1nonesqlserver_driverclassname${sqlserver_driverclassname}String-1-1nonesqlserver_password${sqlserver_password}String-1-1nonesqlserver_url${sqlserver_url}String-1-1nonesqlserver_username${sqlserver_username}String-1-1noneUSER_NAME${USER_NAME}String-1-1noneBEGIN_DATE${BEGIN_DATE}String-1-1noneEND_DATE${END_DATE}String-1-1noneDEPT_CODE${DEPT_CODE}String-1-1nonemysql_host${mysql_host}String-1-1nonemysql_dbname${mysql_dbname}String-1-1none96448YN