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表输入Java 代码-idY表输入-mom物料档案流查询-物料档案Y流查询-物料档案插入 / 更新Y表输入-主id流查询-主idYJava 代码-id流查询-主idY流查询-主id流查询-物料档案Y获取变量表输入Y获取变量表输入-主idY获取变量表输入-mom物料档案YJava 代码-idUserDefinedJavaClassN1noneTRANSFORM_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-1N22464Y插入 / 更新InsertUpdateY1noneMOM1000Y
wms_task_outs
interface_idinterface_id=interface_idinterface_idNinterface_rowinterface_rowNididNtask_out_idmom_task_out_idNrow_numberrow_numberNmaterial_codematerial_codeNtask_qtytask_qtyNunit_codeunit_codeNexcess_ratio_outmom_excess_ratio_outNwarehouse_codemom_warehouse_codeNlocation_codemom_location_codeNbatch1batch1Nbatch2batch2NstatusstatusNis_closeis_closeNcreate_idsync_idNcreate_bysync_nameNcreate_timesync_timeNaudit_bysync_nameNaudit_timesync_timeN76864Y流查询-主idStreamLookupY1none表输入-主idNNNNmaster_interface_idmaster_interface_idmom_task_out_idmom_task_out_idString41664Y流查询-物料档案StreamLookupY1none表输入-mom物料档案NNNNmaterial_codemom_material_codemom_warehouse_codemom_warehouse_codeStringmom_location_codemom_location_codeStringmom_excess_ratio_outmom_excess_ratio_outBigNumber60864Y表输入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.iDLsID AS interface_id
,T2.irowno AS interface_row
,T2.irowno AS row_number
--,ROW_NUMBER()OVER(ORDER BY T2.irowno) 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 DispatchList T1
LEFT JOIN DispatchLists T2 ON T1.DLID =T2.DLID
LEFT JOIN Inventory T6 ON T2.cInvCode =T6.cInvCode
WHERE 1=1
AND T1.DLID =0${interface_id}
0NYNNIntegernormalmaster_interface_id90表输入master_interface_id####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNIntegernormalinterface_id90表输入interface_id####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNIntegernormalinterface_row150表输入interface_row####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNIntegernormalrow_number150表输入row_number####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNStringnormalmaterial_code60-1表输入material_code.,noneNY0NNNzh_CNAsia/ShanghaiNBigNumbernormaltask_qty3010表输入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/ShanghaiN8064Y表输入-mom物料档案TableInputY1noneMOMSELECT
material_code AS mom_material_code
,excess_ratio_out AS mom_excess_ratio_out
,warehouse_code_out AS mom_warehouse_code
,location_code_out AS mom_location_code
FROM base_material0NNNNStringnormalmom_material_code50-1表输入-mom物料档案mom_material_code.,noneNY0NNNzh_CNAsia/ShanghaiNBigNumbernormalmom_excess_ratio_out246表输入-mom物料档案mom_excess_ratio_out######0.0###################;-######0.0###################.noneNY0NNNzh_CNAsia/ShanghaiNStringnormalmom_warehouse_code50-1表输入-mom物料档案mom_warehouse_code.,noneNY0NNNzh_CNAsia/ShanghaiNStringnormalmom_location_code50-1表输入-mom物料档案mom_location_code.,noneNY0NNNzh_CNAsia/ShanghaiN464160Y表输入-主idTableInputY1noneMOMSELECT
interface_id as master_interface_id,
id as mom_task_out_id
FROM wms_task_out
WHERE interface_id =0${interface_id} AND bill_type_code ='7' ORDER BY create_time DESC LIMIT 10NYNNIntegernormalmaster_interface_id90表输入-主idmaster_interface_id####0;-####0.,noneNY0NNNzh_CNAsia/ShanghaiNStringnormalmom_task_out_id20-1表输入-主idmom_task_out_id.,noneNY0NNNzh_CNAsia/ShanghaiN272160Y获取变量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-1none131449YN