委外到货单子表数据同步 Normal 0 / interface_id ID_BATCH Y ID_BATCH CHANNEL_ID Y CHANNEL_ID TRANSNAME Y TRANSNAME STATUS Y STATUS LINES_READ Y LINES_READ LINES_WRITTEN Y LINES_WRITTEN LINES_UPDATED Y LINES_UPDATED LINES_INPUT Y LINES_INPUT LINES_OUTPUT Y LINES_OUTPUT LINES_REJECTED Y LINES_REJECTED ERRORS Y ERRORS STARTDATE Y STARTDATE ENDDATE Y ENDDATE LOGDATE Y LOGDATE DEPDATE Y DEPDATE REPLAYDATE Y REPLAYDATE LOG_FIELD Y LOG_FIELD EXECUTING_SERVER N EXECUTING_SERVER EXECUTING_USER N EXECUTING_USER CLIENT N CLIENT
ID_BATCH Y ID_BATCH SEQ_NR Y SEQ_NR LOGDATE Y LOGDATE TRANSNAME Y TRANSNAME STEPNAME Y STEPNAME STEP_COPY Y STEP_COPY LINES_READ Y LINES_READ LINES_WRITTEN Y LINES_WRITTEN LINES_UPDATED Y LINES_UPDATED LINES_INPUT Y LINES_INPUT LINES_OUTPUT Y LINES_OUTPUT LINES_REJECTED Y LINES_REJECTED ERRORS Y ERRORS INPUT_BUFFER_ROWS Y INPUT_BUFFER_ROWS OUTPUT_BUFFER_ROWS Y OUTPUT_BUFFER_ROWS
ID_BATCH Y ID_BATCH CHANNEL_ID Y CHANNEL_ID LOG_DATE Y LOG_DATE LOGGING_OBJECT_TYPE Y LOGGING_OBJECT_TYPE OBJECT_NAME Y OBJECT_NAME OBJECT_COPY Y OBJECT_COPY REPOSITORY_DIRECTORY Y REPOSITORY_DIRECTORY FILENAME Y FILENAME OBJECT_ID Y OBJECT_ID OBJECT_REVISION Y OBJECT_REVISION PARENT_CHANNEL_ID Y PARENT_CHANNEL_ID ROOT_CHANNEL_ID Y ROOT_CHANNEL_ID
ID_BATCH Y ID_BATCH CHANNEL_ID Y CHANNEL_ID LOG_DATE Y LOG_DATE TRANSNAME Y TRANSNAME STEPNAME Y STEPNAME STEP_COPY Y STEP_COPY LINES_READ Y LINES_READ LINES_WRITTEN Y LINES_WRITTEN LINES_UPDATED Y LINES_UPDATED LINES_INPUT Y LINES_INPUT LINES_OUTPUT Y LINES_OUTPUT LINES_REJECTED Y LINES_REJECTED ERRORS Y ERRORS LOG_FIELD N LOG_FIELD
ID_BATCH Y ID_BATCH CHANNEL_ID Y CHANNEL_ID LOG_DATE Y LOG_DATE METRICS_DATE Y METRICS_DATE METRICS_CODE Y METRICS_CODE METRICS_DESCRIPTION Y METRICS_DESCRIPTION METRICS_SUBJECT Y METRICS_SUBJECT METRICS_TYPE Y METRICS_TYPE METRICS_VALUE Y METRICS_VALUE
0.0 0.0 10000 50 50 N Y 50000 Y N 1000 100 - 2024/01/10 11:03:15.382 - 2024/01/10 11:03:15.382 H4sIAAAAAAAAAAMAAAAAAAAAAAA= N MOM ${mysql_host} MYSQL Native ${mysql_dbname} 3306 ${mysql_username} ${mysql_password} EXTRA_OPTION_MYSQL.characterEncoding utf-8 EXTRA_OPTION_MYSQL.defaultFetchSize 5000 EXTRA_OPTION_MYSQL.rewriteBatchedStatements true EXTRA_OPTION_MYSQL.useCompression true EXTRA_OPTION_MYSQL.useCursorFetch true EXTRA_OPTION_MYSQL.useServerPrepStmts true FORCE_IDENTIFIERS_TO_LOWERCASE N FORCE_IDENTIFIERS_TO_UPPERCASE N IS_CLUSTERED N PORT_NUMBER 3306 PRESERVE_RESERVED_WORD_CASE Y QUOTE_ALL_FIELDS N STREAM_RESULTS N SUPPORTS_BOOLEAN_DATA_TYPE Y SUPPORTS_TIMESTAMP_DATA_TYPE Y USE_POOLING N U8 ${U8DB_HOST} GENERIC Native ${U8DB_NAME} 1433 ${sqlserver_username} ${sqlserver_password} CUSTOM_DRIVER_CLASS ${sqlserver_driverclassname} CUSTOM_URL ${sqlserver_url} DATABASE_DIALECT_ID Generic database FORCE_IDENTIFIERS_TO_LOWERCASE N FORCE_IDENTIFIERS_TO_UPPERCASE N IS_CLUSTERED N PORT_NUMBER 1433 PRESERVE_RESERVED_WORD_CASE Y QUOTE_ALL_FIELDS N SUPPORTS_BOOLEAN_DATA_TYPE Y SUPPORTS_TIMESTAMP_DATA_TYPE Y USE_POOLING N 流查询 插入 / 更新 Y 表输入 Java 代码-id Y 表输入-mom物料档案 流查询 Y 表输入-主id 流查询-主id Y Java 代码-id 流查询-主id Y 流查询-主id 流查询 Y 获取变量 表输入 Y 获取变量 表输入-主id Y 获取变量 表输入-mom物料档案 Y Java 代码-id UserDefinedJavaClass Y 1 none TRANSFORM_CLASS Processor public 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(); } } id String -1 -1 N 288 128 Y 插入 / 更新 InsertUpdate Y 1 none MOM 1000 Y
wms_task_ins
interface_id interface_id = interface_id interface_id N interface_row interface_row N id id N task_in_id mom_task_in_id N `row_number` row_number N material_code material_code N task_qty task_qty N unit_code unit_code N excess_ratio_in mom_excess_ratio_in N warehouse_code mom_warehouse_code N location_code mom_location_code N batch1 batch1 N batch2 batch2 N status status N is_close is_close N create_id sync_id N create_by sync_name N create_time sync_time N audit_by sync_name N audit_time sync_time N 768 128 Y 流查询 StreamLookup Y 1 none 表输入-mom物料档案 N N N N material_code mom_material_code mom_warehouse_code mom_warehouse_code String mom_location_code mom_location_code String mom_excess_ratio_in mom_excess_ratio_in BigNumber 640 128 Y 流查询-主id StreamLookup Y 1 none 表输入-主id N N N N master_interface_id master_interface_id mom_task_in_id mom_task_in_id String 480 128 Y 表输入 TableInput Y 1 none U8 DECLARE @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} 0 N Y N N Integer normal master_interface_id 9 0 表输入 master_interface_id ####0;-####0 . , none N Y 0 N N N zh_CN Asia/Shanghai N Integer normal interface_id 9 0 表输入 interface_id ####0;-####0 . , none N Y 0 N N N zh_CN Asia/Shanghai N Integer normal interface_row 9 0 表输入 interface_row ####0;-####0 . , none N Y 0 N N N zh_CN Asia/Shanghai N Integer normal row_number 9 0 表输入 row_number ####0;-####0 . , none N Y 0 N N N zh_CN Asia/Shanghai N String normal material_code 60 -1 表输入 material_code . , none N Y 0 N N N zh_CN Asia/Shanghai N BigNumber normal task_qty 20 6 表输入 task_qty ######0.0###################;-######0.0################### . none N Y 0 N N N zh_CN Asia/Shanghai N String normal unit_code 35 -1 表输入 unit_code . , none N Y 0 N N N zh_CN Asia/Shanghai N String normal batch1 60 -1 表输入 batch1 . , none N Y 0 N N N zh_CN Asia/Shanghai N String normal batch2 120 -1 表输入 batch2 . , none N Y 0 N N N zh_CN Asia/Shanghai N Integer normal status 9 0 表输入 status ####0;-####0 . , none N Y 0 N N N zh_CN Asia/Shanghai N Integer normal is_close 9 0 表输入 is_close ####0;-####0 . , none N Y 0 N N N zh_CN Asia/Shanghai N String normal sync_name 50 -1 表输入 sync_name . , none N Y 0 N N N zh_CN Asia/Shanghai N Integer normal sync_id 9 0 表输入 sync_id ####0;-####0 . , none N Y 0 N N N zh_CN Asia/Shanghai N Timestamp normal sync_time 3 -1 表输入 sync_time . , none N Y 0 N N N zh_CN Asia/Shanghai N 144 128 Y 表输入-mom物料档案 TableInput Y 1 none MOM SELECT 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_material 0 N N N N String normal mom_material_code 50 -1 表输入-mom物料档案 mom_material_code . , none N Y 0 N N N zh_CN Asia/Shanghai N BigNumber normal mom_excess_ratio_in 24 6 表输入-mom物料档案 mom_excess_ratio_in ######0.0###################;-######0.0################### . none N Y 0 N N N zh_CN Asia/Shanghai N String normal mom_warehouse_code 50 -1 表输入-mom物料档案 mom_warehouse_code . , none N Y 0 N N N zh_CN Asia/Shanghai N String normal mom_location_code 50 -1 表输入-mom物料档案 mom_location_code . , none N Y 0 N N N zh_CN Asia/Shanghai N 528 224 Y 表输入-主id TableInput Y 1 none MOM SELECT 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 ='3' ORDER BY create_time DESC LIMIT 1 0 N Y N N Integer normal master_interface_id 15 0 表输入-主id master_interface_id ####0;-####0 . , none N Y 0 N N N zh_CN Asia/Shanghai N String normal mom_task_in_id 20 -1 表输入-主id mom_task_in_id . , none N Y 0 N N N zh_CN Asia/Shanghai N 336 224 Y 获取变量 GetVariable Y 1 none mysql_driverclassname ${mysql_driverclassname} String -1 -1 none mysql_password ${mysql_password} String -1 -1 none mysql_url ${mysql_url} String -1 -1 none mysql_username ${mysql_username} String -1 -1 none USER_ID ${USER_ID} String -1 -1 none sqlserver_driverclassname ${sqlserver_driverclassname} String -1 -1 none sqlserver_password ${sqlserver_password} String -1 -1 none sqlserver_url ${sqlserver_url} String -1 -1 none sqlserver_username ${sqlserver_username} String -1 -1 none USER_NAME ${USER_NAME} String -1 -1 none BEGIN_DATE ${BEGIN_DATE} String -1 -1 none END_DATE ${END_DATE} String -1 -1 none DEPT_CODE ${DEPT_CODE} String -1 -1 none mysql_host ${mysql_host} String -1 -1 none mysql_dbname ${mysql_dbname} String -1 -1 none 111 550 Y N