/** * WaveInfoManageView::view_makeMultiWave() * 生成多料号配货单 * @param $time 操作时间 * @author Gary * @return void */ public function makeMultiWave($time) { $waveBuild = new WaveBuildAct(); $info = $waveBuild->make_multi_wave($time); //返回多料号配货单生成情况 $update = array('createUserId' => $_SESSION['userId'], 'createTime' => time(), 'waveStatus' => 1); $where = array('waveType' => 3, 'createUserId' => 0, 'is_delete' => 0); WhBaseModel::begin(); $a = WhWaveInfoModel::update_wave_info($update, $where); if ($a) { $shipOrderIds = empty($info['success']) ? 0 : $info['success']; WhShippingOrderModel::update(array('orderStatus' => PKS_PROCESS_GET_GOODS), array('id in' => $shipOrderIds)); $info['success'] = WhBaseModel::affected_rows(); } WhBaseModel::commit(); return $info; }
/** * WaveBuildAct::make_multi_wave() * 批量生成多料号配货单 * @param $time 操作时间 * @author Gary * @return void */ public function make_multi_wave($time) { //$area_index = WhWaveAreaIndexModel::select('', '*'); // $indexs = array(); // foreach($area_index as $val){ // $indexs[$val['areaInfo']] = $val['id']; //区域索引集合 // } // unset($area_index); //获取多料号订单集合 $time = $time ? $time : time(); $multi_shipOrders = whWaveMultiShipAreaRecordModel::get_multi_ship_records('*', array('addTime <=' => $time, 'is_wave' => 0, 'is_delete' => 0)); //var_dump($multi_shipOrders);exit; $new_orders = array(); //经过排序后的多料号订单集合 if (empty($multi_shipOrders)) { self::$errCode = 100; self::$errMsg = '暂无可配货多料号订单'; return FALSE; } foreach ($multi_shipOrders as $val) { $area_count = substr_count($val['area'], ',') + 1; $area_id_count = self::get_area_ids_count($val['area']); //获取该订单所有区域ID索引值的总和 $new_orders[$area_count][$area_id_count][] = $val; } ksort($new_orders); //按照订单区域数从小到大排列 $success = array(); //生成成功发货单 $fail = array(); //生成失败发货单 foreach ($new_orders as $val) { ksort($val); //按照区域id综合从小到大排序 //print_r($val);exit; foreach ($val as $v) { //print_r($v);exit; foreach ($v as $order) { //print_r($order);exit; $wave_id = WhWaveInfoModel::get_wave_info('id', array('waveType' => 3, 'waveStatus' => 0, 'is_delete' => 0)); $wave_id = empty($wave_id) ? 0 : $wave_id[0]['id']; $info = self::make_wave($order['shipOrderId'], $wave_id, 0, '', 3); if ($info) { $success[] = $order['shipOrderId']; } else { $fail[] = array('shipOrderId' => $order['shipOrderId'], 'reason' => self::$errMsg); } } } } //var_dump($fail);exit; return array('success' => $success, 'fail' => $fail); }
$detailId = OmAvailableModel::addTNameRow($detail_tname, $detail_set); if (!$detailId) { Log::write("INSERT INTO " . $detail_tname . $detail_set, Log::ERR); OmAvailableModel::rollback(); $detail_flag = false; break; } } if ($detail_flag) { echo "发货单[{$shipOrderId}]入库成功.\n\n"; $msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']); OmAvailableModel::commit(); } } } } } } if ($sku_flag) { $waveBuild = new WaveBuildAct(); $waveBuild->waveBuild($shipOrderId); } } } }; $channel->basic_consume($queue_name, '', false, true, false, false, $callback); while (count($channel->callbacks)) { $channel->wait(); } $channel->close(); $connection->close();