From 33948a0bac37b0fef52debae45b838f7fec2d397 Mon Sep 17 00:00:00 2001 From: hui <1753858361@qq.com> Date: Mon, 16 Jun 2025 10:25:52 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=8E=20ci(ci=E5=A4=9A=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=A3=80=E6=B5=8B):?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mes_in_sct/app/action/SetWipOutput.php | 31 ++++++------- .../app/action/SetWipOutputByItemId.php | 45 ++++++++++--------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/mes_in_sct/app/action/SetWipOutput.php b/mes_in_sct/app/action/SetWipOutput.php index 4891628..73a4dce 100644 --- a/mes_in_sct/app/action/SetWipOutput.php +++ b/mes_in_sct/app/action/SetWipOutput.php @@ -123,16 +123,15 @@ class SetWipOutput } $subbatch = $ret['subbatch']; // 拿到工序编码 - $ret_process = json_decode($ret['process'], true); - // 拿到工序编码 - foreach ($ret_process as $key => $val) { + foreach (json_decode($ret['process'], true) as $key => $val) { if ($val[4] == $workingsubclass) { - if (isset($ret_process[$key + 1])) { - $next_process_code = $ret_process[$key + 1][2]; + if (isset($process[$key + 1])) { + $next_process_code = $process[$key + 1][2]; } $process_code = $val[2]; } } + //4.通过以上关联信息查询物料编码 $sql = "SELECT a.flow_id,e.code as bom_source_code,e.name as bom_source_name,d.bom_source_id,d.bom_id,f.code as bom_source_category_code FROM hf_mes_production_planning_management_batch a INNER JOIN hf_mes_technology_flow b ON a.flow_id = b.id @@ -322,25 +321,24 @@ class SetWipOutput $uuid = json_encode(array_unique($uuid)); } //保证每个正向追溯的uuid都是唯一的 - $forward_tracing_uuid = json_encode(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(array_unique($forward_tracing_uuid)); $wip_uuid = count($wip_uuid) <= 0 ? $uuid : json_encode(array_values(array_unique($wip_uuid))); $now_date = date('Y-m-d H:i:s'); $start_time = $last_time; //isset($param_out['START_TIME'])? $param_out['START_TIME'] : date('Y-m-d H:i:s'); $finish_time = isset($param_out['FINISH_TIME']) ? $param_out['FINISH_TIME'] : date('Y-m-d H:i:s'); $lot = strtotime($now_date); - $wip_msg = generate_material_item_id_wip($workingsubclass, $device_code, $batch, $cut_list); + $wip_msg = generate_material_item_id_wip($workingsubclass, $device_code, $batch, $cut_list, $gun_count, $roller_press_batch); if (!$wip_msg[0]) { throw new Exception("获取物料批次条码失败!" . $wip_msg[1]); } else { $battery_id = $wip_msg[1]; } - //判断物料批次条码是否已经存在于生产批次中如果存在则提示失败 - $sql = 'SELECT id FROM "hf_mes_tmp_bkv_' . $subbatch . '" WHERE battery_id = \'' . $wip_msg[1] . '\' AND active = 1'; - $ret = Db::fetch($sql); - if (!empty($ret)) { - throw new Exception("产出批次【$wip_msg[1]】已经激活了,不要重复产出!"); - } // 新增数据到process_log表 //返回需要使用的数据 $data_list = array_merge($data_list, [$battery_id, $bom_relationship_array['bom_source_code'], $bom_relationship_array['bom_source_name'], $batch, $device_code]); @@ -403,15 +401,14 @@ class SetWipOutput } // 新增数据到bkv表 - $wip_bkv_sql_head = 'INSERT INTO "hf_mes_tmp_bkv_' . $subbatch . '" (battery_id, tray, lot, active, process_code, next_process_code, item_code, item_name, item_batch, item_quantity, item_batch_start_time, pid, uuid, bom_source_id, bom_id, ' . implode(',', $sql_key_out_result_param) . ') VALUES '; + $wip_bkv_sql_head = 'INSERT INTO "hf_mes_tmp_bkv_' . $subbatch . '" (battery_id, tray, lot, active, process_code, item_code, item_name, item_batch, item_quantity, item_batch_start_time, pid, uuid, bom_source_id, bom_id, ' . implode(',', $sql_key_out_result_param) . ') VALUES '; $wip_bkv_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)", $battery_id, '-1', $lot, 1, $process_code, - $next_process_code, $bom_relationship_array['bom_source_code'], $bom_relationship_array['bom_source_name'], $battery_id, diff --git a/mes_in_sct/app/action/SetWipOutputByItemId.php b/mes_in_sct/app/action/SetWipOutputByItemId.php index 774629b..a28259c 100644 --- a/mes_in_sct/app/action/SetWipOutputByItemId.php +++ b/mes_in_sct/app/action/SetWipOutputByItemId.php @@ -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);