Merge pull request '🐎 ci(ci多文件提交检测):' (#11) from bug/tao_version into main
All checks were successful
Run Unit Tests / test (push) Successful in 5s

Reviewed-on: #11
This commit is contained in:
hui 2025-06-16 10:48:56 +08:00
commit becd0a1a40

View File

@ -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)));
//保证每个正向追溯的uuid都是唯一的
$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);
}
if ($input_item_id != $item_id) {
//保证每个正向追溯的uuid都是唯一的
$forward_tracing_uuid = array_unique(array_merge($forward_tracing_uuid, [generateUniqueId()]));
}
$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);