@ -122,11 +122,15 @@ class SetWipOutputByItemId
throw new Exception ( '工序单元[' . $workingsubclass . ']下设备编码[' . $device_code . ']找不到对应投入物料生产批次信息' );
}
$item_code_in_process_log = array_column ( $ret , " item_code " );
//获取原材料的正向追溯的uuid
$forward_tracing_uuid = array_unique ( array_merge ( ... array_map ( function ( $json ) {
return is_array ( $decoded = json_decode ( $json , true )) ? $decoded : [];
}, array_column ( $ret , " forward_tracing_uuid " ))));
//获取正向追溯的uuid
$forward_tracing_uuid_in_process_log = array_column ( $ret , " forward_tracing_uuid " );
$forward_tracing_uuid = [];
foreach ( $forward_tracing_uuid_in_process_log as $json_str ) {
$decoded = json_decode ( $json_str , true ); // 转成数组
if ( is_array ( $decoded )) {
$forward_tracing_uuid = array_merge ( $forward_tracing_uuid , $decoded );
}
}
$batch = $ret [ 0 ][ 'batch' ];
@ -223,14 +227,16 @@ class SetWipOutputByItemId
} else {
$sql_val_out_result_param [] = " ' " . $param_out_val . " ' " ;
}
$ng_code_val = 0 ;
// 判断NG是否存在
if ( $val [ 'code' ] == 'NG' ) {
if ( $param_out [ $val [ 'code' ]] != '' ) {
$ng_code = $param_out [ $val [ 'code' ]];
} else {
$ng_code = 0 ;
}
}
$ng_code = $ng_code_val ;
}
// 8.获取设备投入物料信息, 为后续追加battery_map、bkv表做准备
@ -345,17 +351,15 @@ class SetWipOutputByItemId
} else {
$uuid = json_encode ( array_values ( array_unique ( $uuid )));
}
//需要读取input_item_id的$forward_tracing_uuid进行拼接
$sql = " SELECT forward_tracing_uuid FROM hf_mes_bkv_batch_process_log WHERE item_id = ' " . $input_item_id . " ' ORDER BY id DESC LIMIT 1 " ;
$input_item_id_forward_tracing_uuid = Db :: fetchAll ( $sql );
if ( ! empty ( $input_item_id_forward_tracing_uuid )) {
$forward_tracing_uuid = array_unique ( array_merge ( $forward_tracing_uuid , json_decode ( $input_item_id_forward_tracing_uuid [ 0 ][ 'forward_tracing_uuid' ], true )));
}
if ( $input_item_id != $item_id ) {
//保证每个正向追溯的uuid都是唯一的
$forward_tracing_uuid = array_unique ( array_merge ( $forward_tracing_uuid , [ generateUniqueId ()]));
$forward_tracing_uuid_only [] = generateUniqueId ();
$forward_tracing_uuid_only = json_encode ( $forward_tracing_uuid_only );
$decoded_uuid = json_decode ( $forward_tracing_uuid_only , true );
if ( is_array ( $decoded_uuid )) {
$forward_tracing_uuid = array_merge ( $forward_tracing_uuid , $decoded_uuid );
}
$forward_tracing_uuid = json_encode ( $forward_tracing_uuid );
$forward_tracing_uuid = json_encode ( array_unique ( $forward_tracing_uuid ));
$wip_uuid = json_encode ( array_values ( array_unique ( $wip_uuid )));
$now_date = date ( 'Y-m-d H:i:s' );
$start_time = isset ( $param_out [ 'START_TIME' ]) ? $param_out [ 'START_TIME' ] : date ( 'Y-m-d H:i:s' );
@ -364,9 +368,9 @@ class SetWipOutputByItemId
$battery_id = $item_id ;
// 新增数据到process_log表
$wip_process_log_sql_head = 'INSERT INTO "hf_mes_bkv_batch_process_log" (item_id, batch, subbatch, workingsubclass, process_code, device_code, status, start_time, finish_time, bom_source_id, item_batch, item_quantity, pid, uuid, bom_id, item_code, item_name, lot, tray, ng_code, device_category_id,last_status,forward_tracing_uuid ,input_finish_time ) VALUES';
$wip_process_log_sql_head = 'INSERT INTO "hf_mes_bkv_batch_process_log" (item_id, batch, subbatch, workingsubclass, process_code, device_code, status, start_time, finish_time, bom_source_id, item_batch, item_quantity, pid, uuid, bom_id, item_code, item_name, lot, tray, ng_code, device_category_id,last_status,forward_tracing_uuid ) VALUES';
$wip_process_log_sql_val = sprintf (
" ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' , '%s' )" ,
" ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )" ,
$battery_id ,
$batch ,
$subbatch ,
@ -389,8 +393,7 @@ class SetWipOutputByItemId
$ng_code ,
$device_category_id ,
1 ,
$forward_tracing_uuid ,
$finish_time
$forward_tracing_uuid
);
$sql = $wip_process_log_sql_head . $wip_process_log_sql_val ;
$row = Db :: query ( $sql );