/**
* 入库时效报表
*/
class Common_Service_PutawaySendReport {
/**
* @param $start_date
* @param $end_date
* @param string $warehouse
* @param $reRun
*/
public function createPutawayReport($start_date, $end_date, $warehouse, $reRun) {
try {
$list['todaySku'] = 0;
//当天入库的产品总数
$list['todayQty'] = 0;
//24小时入库的SKU 和 qty
$qclSku24Condition = array(
'warehouse_id' => $warehouse,
'start_time' => $start_date,
'end_time' => $end_date,
'qcl_type' => 6, //上架时间,
);
$qclRe = Product_Service_QualityControlLog::getByCondition($qclSku24Condition, array('qco_code', 'qcl_create_time', 'qty', 'container_code', 'receiving_code'));
$sku24Count = 0;
$qty24Count = 0;
$sku48Count = 0;
$qty48Count = 0;
$sku72Count = 0;
$qty72Count = 0;
$qcNoPass = 0;
$qty8CountTotal = 0;
$qty8Count = 0;
$tmpProduct = array();
//所有 asn
$asnList = array();
//有问题的 asn
$asnErrList = array();
//当天包装产品总数
$list['asr_all_packaging'] = 0;
//自动包装产品总数
$list['asr_automaticity_item'] = 0;
//CSP 产品入库总数
$asrCSPrate = 0;
if (!empty($qclRe)) {
//new一个问题件
$pbService = new Order_Service_ProblemOrder();
$pbCondition = array(
'po_protype' => array(1, 2),
'po_status' => array(3, 4),
);
$customer_id_neq = array('A0200', 'R2036', 'SFCHC', 'SFCXZ');
foreach ($qclRe as $qclKey => $qclValue) {
if (!$qclValue['qco_code'] || $qclValue['qco_code'] == '') {
continue;
}
//如果是测试用户,则跳过
$qcoRe = Product_Service_QualityControlOrder::getQcoCode($qclValue['qco_code']);
if (isset($qcoRe['customer_id']) && in_array($qcoRe['customer_id'], $customer_id_neq)) {
continue;
}
//如果是不良品 则跳过
$combinat = array(
'ref_code' => $qclValue['qco_code'],
'product_type' => 2,
'putaway_time_start' => $start_date,
'putaway_time_end' => $end_date
);
$cbRows = Container_Service_ContainerBinding::getByCondition($combinat);
if (!empty($cbRows)) {
$cbFlog = 0;
foreach ($cbRows as $cbKey => $cbValue) {
if ($cbValue['container_code'] == $qclValue['container_code']) {
continue 2;
}
}
}
//asd单合格率 深坑 别挖了
if (!in_array($qclValue['receiving_code'], $asnList)) {
//所有asn 单
$asnList[] = $qclValue['receiving_code'];
}
$list['todayQty'] += $qclValue['qty'];
if (isset($qcoRe['tracking_number']) && $qcoRe['tracking_number'] != '') {
$rpRe = Product_Service_ReceivingPre::getByValue($qcoRe['tracking_number'], 'rp_tracking_number');
if (!empty($rpRe)) {
if ($rpRe['exception_status'] == 1 || $qcoRe['exception_status'] == 1) {
//问题件
if ($rpRe['exception_status'] == 1 && $qcoRe['exception_status'] == 1) {
//ASN错误的同时又QC错误
if (!in_array($qclValue['receiving_code'], $asnErrList)) {
//有问题的asn单
$asnErrList[] = $qclValue['receiving_code'];
}
$pbCondition['tracking_number'] = $rpRe['rp_tracking_number'];
$pbRe = $pbService->getByCondition($pbCondition);
$pbCondition['tracking_number'] = $qclValue['qco_code'];
$pbRe2 = $pbService->getByCondition($pbCondition);
if (!empty($pbRe)) {
$customer_submit_time = strtotime($pbRe[0]['customer_submit_time']) >= strtotime($pbRe2[0]['customer_submit_time']) ? strtotime($pbRe[0]['customer_submit_time']) : strtotime($pbRe2[0]['customer_submit_time']);
$pbTime = strtotime($qclValue['qcl_create_time']) - $customer_submit_time;
//var_dump($pbTime);
if ($pbTime <= 259200) { //72小时内入库
if (!in_array($qclValue['qco_code'], $tmpProduct)) {
$sku72Count++;
}
//数量
$qty72Count += $qclValue['qty'];
//var_dump($qty72Count);exit;
if ($pbTime <= 172800) { //48小时内入库
if (!in_array($qclValue['qco_code'], $tmpProduct)) {
$sku48Count++;
}
//数量
$qty48Count += $qclValue['qty'];
if ($pbTime <= 86400) { //24小时内入库
if (!in_array($qclValue['qco_code'], $tmpProduct)) {
$sku24Count++;
}
//数量
$qty24Count += $qclValue['qty'];
}
}
}
$qcNoPass++;
if ($rpRe['rp_qclevel'] == 1) {
//紧急入库
if ($pbTime <= 28800) {
$qty8Count += $qclValue['qty'];
}
$qty8CountTotal += $qclValue['qty'];
}
}
} else {
//QC或ASN错误
$pbCondition['tracking_number'] = $rpRe['exception_status'] == 1 ? $rpRe['rp_tracking_number'] : $qclValue['qco_code'];
$pbRe = $pbService->getByCondition($pbCondition);
if (!empty($pbRe)) {
$pbTime = strtotime($qclValue['qcl_create_time']) - strtotime($pbRe[0]['customer_submit_time']);
if ($pbTime <= 259200) { //72小时内入库
if (!in_array($qclValue['qco_code'], $tmpProduct)) {
$sku72Count++;
}
//数量
$qty72Count += $qclValue['qty'];
if ($pbTime <= 172800) { //48小时内入库
if (!in_array($qclValue['qco_code'], $tmpProduct)) {
$sku48Count++;
}
//数量
$qty48Count += $qclValue['qty'];
if ($pbTime <= 86400) { //24小时内入库
if (!in_array($qclValue['qco_code'], $tmpProduct)) {
$sku24Count++;
}
//数量
$qty24Count += $qclValue['qty'];
}
}
}
if ($pbRe[0]['po_protype'] == 1) {
if (!in_array($qclValue['receiving_code'], $asnErrList)) {
//有问题的asn单
$asnErrList[] = $qclValue['receiving_code'];
}
} else if ($pbRe[0]['po_protype'] == 2) {
$qcNoPass++;
}
if ($rpRe['rp_qclevel'] == 1) {
//紧急入库
if ($pbTime <= 28800) {
$qty8Count += $qclValue['qty'];
}
$qty8CountTotal += $qclValue['qty'];
}
}
}
} else if ($rpRe['exception_status'] == 0 || $qcoRe['exception_status'] == 0) {
//正常件
$sku24Time = strtotime($qclValue['qcl_create_time']) - strtotime($rpRe['rp_receiving_time']);
//var_dump($sku24Time);
if ($sku24Time <= 259200) { //72小时内入库
if (!in_array($qclValue['qco_code'], $tmpProduct)) {
$sku72Count++;
}
//数量
$qty72Count += $qclValue['qty'];
if ($sku24Time <= 172800) { //48小时内入库
if (!in_array($qclValue['qco_code'], $tmpProduct)) {
$sku48Count++;
}
//数量
$qty48Count += $qclValue['qty'];
if ($sku24Time <= 86400) { //24小时内入库
if (!in_array($qclValue['qco_code'], $tmpProduct)) {
$sku24Count++;
}
//数量
$qty24Count += $qclValue['qty'];
}
}
}
if ($rpRe['rp_qclevel'] == 1) {
//紧急入库
if ($sku24Time <= 28800) {
$qty8Count += $qclValue['qty'];
}
$qty8CountTotal += $qclValue['qty'];
}
}
}
}
if (!in_array($qclValue['qco_code'], $tmpProduct)) {
$tmpProduct[] = $qclValue['qco_code'];
$list['todaySku'] ++;
}
//当天包装产品总数
$spoId = Special_Service_SpecialProjectOrder::getBySpoRefCode($qclValue['qco_code']);
if ($spoId && $spoId['spo_code']) {
$combination = array(
"spo_code" => $spoId['spo_code'],
"warehouse_id" => $warehouse,
);
$spackageIds = Special_Service_SpecialProjectPackage::getByLeftJoinCondition($combination, "*");
if ($spackageIds) {
foreach ($spackageIds as $key => $value) {
if ($qclValue['qty'] > 5) {
$list['asr_all_packaging'] += $qclValue['qty'];
}
//自动包装产品总数
if ($value['pp_category'] == 1) {
$list['asr_automaticity_item'] += $qclValue['qty'];
}
}
}
}
//CSP 产品入库总数
$receivingId = Product_Service_Receiving::getByCondition($qclValue['reciving_code']);
if ($receivingId && $receivingId['plat_from'] == "CSP") {
$asrCSPrate += $qclValue['qty'];
}
}
}
//24小时入库SKU
$list['sku24Count'] = $sku24Count;
//24小时入库QTY
$list['qty24Count'] = $qty24Count;
//48小时入库SKU
$list['sku48Count'] = $sku48Count;
//48小时入库QTY
$list['qty48Count'] = $qty48Count;
//72小时入库SKU
$list['sku72Count'] = $sku72Count;
//72小时入库QTY
$list['qty72Count'] = $qty72Count;
//asn及格率
count($asnList) == 0 ? $list['asnPass'] = 0 : $list['asnPass'] = number_format(100 * (count($asnList) - count($asnErrList)) / count($asnList), 2);
//QC及格率
$list['todaySku'] == 0 ? $list['qcPass'] = 0 : $list['qcPass'] = number_format(100 * ($list['todaySku'] - $qcNoPass) / $list['todaySku'], 2);
//24小时入库及时率
$list['todayQty'] == 0 ? $list['qty24Pass'] = 0 : $list['qty24Pass'] = number_format(100 * $list['qty24Count'] / $list['todayQty'], 2);
//48小时入库及时率
$list['todayQty'] == 0 ? $list['qty48Pass'] = 0 : $list['qty48Pass'] = number_format(100 * $list['qty48Count'] / $list['todayQty'], 2);
//72小时入库及时率
$list['todayQty'] == 0 ? $list['qty72Pass'] = 0 : $list['qty72Pass'] = number_format(100 * $list['qty72Count'] / $list['todayQty'], 2);
//8小时优先入库及时率
//当天入库的产品总数(优先)
$qty8CountTotal == 0 ? $list['qty8Pass'] = 0 : $list['qty8Pass'] = number_format(100 * $qty8Count / $qty8CountTotal, 2);
//CSP 产品入库占比率
$list['todayQty'] == 0 ? $list['asr_csp_rate'] = 0 : $list['asr_csp_rate'] = number_format(100 * $asrCSPrate / $list['todayQty'], 2);
//自动包装产品占比率
$list['asr_all_packaging'] == 0 ? $list['asr_automaticity_rate'] = 0 : $list['asr_automaticity_rate'] = number_format(100 * $list['asr_automaticity_item'] / $list['asr_all_packaging'], 2);
$addRow = array(
'asr_date' => $start_date,
'warehouse_id' => $warehouse,
'asr_24h_sku' => $list['sku24Count'],
'asr_24h_item' => $list['qty24Count'],
'asr_48h_sku' => $list['sku48Count'],
'asr_48h_item' => $list['qty48Count'],
'asr_72h_sku' => $list['sku72Count'],
'asr_72h_item' => $list['qty72Count'],
'asr_all_sku' => $list['todaySku'],
'asr_all_item' => $list['todayQty'],
'asr_asn_rate' => $list['asnPass'],
'asr_qc_rate' => $list['qcPass'],
'asr_priority_rate' => $list['qty8Pass'],
'asr_all_rate' => $list['qty24Pass'],
'asr_48h_rate' => $list['qty48Pass'],
'asr_72h_rate' => $list['qty72Pass'],
'asr_create_time' => date('Y-m-d H:i:s'),
"asr_all_packaging" => $list['asr_all_packaging'],
"asr_automaticity_item" => $list['asr_automaticity_item'],
"asr_csp_rate" => $list['asr_csp_rate'],
"asr_automaticity_rate" => $list['asr_automaticity_rate'],
);
if ($reRun && !empty($aspRe)) {
Product_Service_AsnSendReport::update($addRow, $aspRe['asr_id']);
echo '更新成功';
} else {
Product_Service_AsnSendReport::add($addRow);
//echo '插入成功';
}
} catch (Exception $e) {
echo '[' . date('Y-m-d H:is') . ']出现异常,异常信息为:' . $e->getMessage() . '\r\n';
}
}
public static function putawaySendMail($start_date, $end_date, $warehouse = '1') {
$config = Common_Service_Config::getByAttribute('PUTAWAY_SEND_REPORT', $warehouse);
if (!$config || $config['config_value'] == '')
throw new Exception('请配置PUTAWAY_SEND_REPORT项');
$mailUser = explode(';', $config['config_value']);
$weekArray = array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
$aspCondition = array(
'start_date' => date('Y-m-01', strtotime($start_date)),
'end_date' => date('Y-m-d', strtotime($end_date)),
'warehouse_id' => $warehouse,
);
$aspRe = Product_Service_AsnSendReport::getByCondition($aspCondition, '*', array('asr_date'));
$content = "月份,,24小时内入库的SKU数,24小时内入库的产品数,当天入库的SKU总数,当天入库的产品总数,当天包装产品总数,自动包装产品总数,CSP 产品入库占比率,自动包装产品占比率,ASN单合格率,QC单合格率,优先入库及时率(8H),入库及时率(24H),入库及时率(48H),入库及时率(72H)\n";
$content1 = '<style>.tab-report{border-top:1px solid #cccccc;border-left:1px solid #cccccc;} .tab-report td, .tab-report th{border-bottom:1px solid #cccccc;border-right:1px solid #cccccc; text-align:center;} .tab-report .yellow{background-color:yellow} .tab-report .blue{background-color:#82A3F8} .tab-report .orange{background-color:#E6F3F9} .tab-report .event-tr{background-color:#E6F3F9}</style>';
$content1 .= '<table width="100%" border="0" cellspacing="0" cellpadding="0" class="tab-report">';
$content1 .= '<tr class="orange"><th colspan="2">月份</th><th colspan="1">24小时内入库的SKU数</th><th colspan="1">24小时内入库的产品数</th><th colspan="1">当天入库的SKU总数</th><th>当天入库的产品总数</th><th>当天包装产品总数</th><th>自动包装产品总数</th><th>CSP 产品入库占比率</th><th>自动包装产品占比率</th><th width="85">ASN单合格率</th><th width="85">QC单合格率</th><th width="85">优先入库及时率(8H)</th><th>入库及时率(24H)</th><th>入库及时率(48H)</th><th>入库及时率(72H)</th></tr>';
if (!empty($aspRe)) {
$asr_24h_sku_sum = $asr_24h_item_sum = $asr_all_sku_sum = $asr_all_item_sum = $asr_all_packaging_sum = $asr_automaticity_item_sum = $asr_csp_rate_sum = $asr_automaticity_rate_sum = $asr_asn_rate_sum = $asr_qc_rate_sum = $asr_priority_rate_sum = $asr_all_rate_sum = $asr_48h_rate_sum = $asr_72h_rate_sum = 0;
$day = 0;
foreach ($aspRe as $aspKey => $aspValue) {
$content .= $aspValue['asr_date'] . ','
. $weekArray[date("w", strtotime($aspValue['asr_date']))] . ','
. $aspValue['asr_24h_sku'] . ','
. $aspValue['asr_24h_item'] . ','
. $aspValue['asr_all_sku'] . ','
. $aspValue['asr_all_item'] . ','
. $aspValue['asr_all_packaging'] . ","
. $aspValue['asr_automaticity_item'] . ","
. $aspValue['asr_csp_rate'] . "%,"
. $aspValue['asr_automaticity_rate'] . "%,"
. $aspValue['asr_asn_rate'] . '%,'
. $aspValue['asr_qc_rate'] . '%,'
. $aspValue['asr_priority_rate'] . '%,'
. $aspValue['asr_all_rate'] . '%,'
. $aspValue['asr_48h_rate'] . '%,'
. $aspValue['asr_72h_rate'] . '%' . "\n";
if ($aspValue['asr_all_sku'] != 0) {
$asr_24h_sku_sum += $aspValue['asr_24h_sku'];
$asr_24h_item_sum += $aspValue['asr_24h_item'];
$asr_all_sku_sum += $aspValue['asr_all_sku'];
$asr_all_item_sum += $aspValue['asr_all_item'];
$asr_all_packaging_sum += $aspValue['asr_all_packaging'];
$asr_automaticity_item_sum += $aspValue['asr_automaticity_item'];
$asr_csp_rate_sum += $aspValue['asr_csp_rate'];
$asr_automaticity_rate_sum += $aspValue['asr_automaticity_rate'];
$asr_asn_rate_sum += $aspValue['asr_asn_rate'];
$asr_qc_rate_sum += $aspValue['asr_qc_rate'];
$asr_priority_rate_sum += $aspValue['asr_priority_rate'];
$asr_all_rate_sum += $aspValue['asr_all_rate'];
$asr_48h_rate_sum += $aspValue['asr_48h_rate'];
$asr_72h_rate_sum += $aspValue['asr_72h_rate'];
$day++;
}
$content1 .= '<tr class="' . ($aspKey % 2 == 0 ? '' : 'event-tr') . '">'
. "<td>{$aspValue['asr_date']}</td>"
. "<td>{$weekArray[date("w", strtotime($aspValue['asr_date']))]}</td>"
. "<td>{$aspValue['asr_24h_sku']}</td>"
. "<td>{$aspValue['asr_24h_item']}</td>"
. "<td>{$aspValue['asr_all_sku']}</td>"
. "<td>{$aspValue['asr_all_item']}</td>"
. "<td> {$aspValue['asr_all_packaging']} </td>"
. "<td> {$aspValue['asr_automaticity_item']} </td>"
. "<td> {$aspValue['asr_csp_rate']}% </td>"
. "<td> {$aspValue['asr_automaticity_rate']}% </td>"
. "<td>{$aspValue['asr_asn_rate']}%</td>"
. "<td>{$aspValue['asr_qc_rate']}%</td>"
. "<td>{$aspValue['asr_priority_rate']}%</td>"
. "<td>{$aspValue['asr_all_rate']}%</td>"
. "<td>{$aspValue['asr_48h_rate']}%</td>"
. "<td>{$aspValue['asr_72h_rate']}%</td>"
. '</tr>';
}
}
$day == 0 ? $asr_24h_sku_svg = 0 : $asr_24h_sku_svg = number_format($asr_24h_sku_sum / $day, 2);
$day == 0 ? $asr_24h_item_svg = 0 : $asr_24h_item_svg = number_format($asr_24h_item_sum / $day, 2);
$day == 0 ? $asr_all_sku_svg = 0 : $asr_all_sku_svg = number_format($asr_all_sku_sum / $day, 2);
$day == 0 ? $asr_all_item_svg = 0 : $asr_all_item_svg = number_format($asr_all_item_sum / $day, 2);
$day == 0 ? $asr_all_packaging_svg = 0 : $asr_all_packaging_svg = number_format($asr_all_packaging_sum / $day, 2);
$day == 0 ? $asr_automaticity_item_svg = 0 : $asr_automaticity_item_svg = number_format($asr_automaticity_item_sum / $day, 2);
$day == 0 ? $asr_csp_rate_svg = 0 : $asr_csp_rate_svg = number_format($asr_csp_rate_sum / $day, 2);
$day == 0 ? $asr_automaticity_rate_svg = 0 : $asr_automaticity_rate_svg = number_format($asr_automaticity_rate_sum / $day, 2);
$day == 0 ? $asr_asn_rate_svg = 0 : $asr_asn_rate_svg = number_format($asr_asn_rate_sum / $day, 2);
$day == 0 ? $asr_qc_rate_svg = 0 : $asr_qc_rate_svg = number_format($asr_qc_rate_sum / $day, 2);
$day == 0 ? $asr_priority_rate_svg = 0 : $asr_priority_rate_svg = number_format($asr_priority_rate_sum / $day, 2);
$day == 0 ? $asr_all_rate_svg = 0 : $asr_all_rate_svg = number_format($asr_all_rate_sum / $day, 2);
$day == 0 ? $asr_48h_rate_svg = 0 : $asr_48h_rate_svg = number_format($asr_48h_rate_sum / $day, 2);
$day == 0 ? $asr_72h_rate_svg = 0 : $asr_72h_rate_svg = number_format($asr_72h_rate_sum / $day, 2);
$month = date('Y.m', strtotime($start_date));
$content .= "$month,合计,$asr_24h_sku_sum,$asr_24h_item_sum,$asr_all_sku_sum,$asr_all_item_sum,$asr_all_packaging_sum,$asr_automaticity_item_sum,$asr_csp_rate_svg%,$asr_automaticity_rate_svg%,$asr_asn_rate_svg%,$asr_qc_rate_svg%,$asr_priority_rate_svg%,$asr_all_rate_svg%,$asr_48h_rate_svg%,$asr_72h_rate_svg%\n";
$content .= ",平均,$asr_24h_sku_svg,$asr_24h_item_svg,$asr_all_sku_svg,$asr_all_item_svg,$asr_all_packaging_svg,$asr_automaticity_item_svg,$asr_csp_rate_svg%,$asr_automaticity_rate_svg%,$asr_asn_rate_svg%,$asr_qc_rate_svg%,$asr_priority_rate_svg%,$asr_all_rate_svg%,$asr_48h_rate_svg%,$asr_72h_rate_svg%\n";
$content1 .= '<tr>'
. "<td rowspan=2>{$month}</td>"
. "<td>合计</td>"
. "<td>$asr_24h_sku_sum</td>"
. "<td>$asr_24h_item_sum</td>"
. "<td>$asr_all_sku_sum</td>"
. "<td>{$asr_all_item_sum}</td>"
. "<td> {$asr_all_packaging_sum} </td>"
. "<td> {$asr_automaticity_item_sum} </td>"
. "<td> {$asr_csp_rate_svg}% </td>"
. "<td> {$asr_automaticity_rate_svg}% </td>"
. "<td>{$asr_asn_rate_svg}%</td>"
. "<td>{$asr_qc_rate_svg}%</td>"
. "<td>{$asr_priority_rate_svg}%</td>"
. "<td>{$asr_all_rate_svg}%</td>"
. "<td>{$asr_48h_rate_svg}%</td>"
. "<td>{$asr_72h_rate_svg}%</td>"
. '</tr>';
$content1 .= '<tr>'
. "<td>平均</td>"
. "<td>{$asr_24h_sku_svg}</td>"
. "<td>{$asr_24h_item_svg}</td>"
. "<td>{$asr_all_sku_svg}</td>"
. "<td>{$asr_all_item_svg}</td>"
. "<td> {$asr_all_packaging_svg} </td>"
. "<td> {$asr_automaticity_item_svg} </td>"
. "<td> {$asr_csp_rate_svg}% </td>"
. "<td> {$asr_automaticity_rate_svg}% </td>"
. "<td>{$asr_asn_rate_svg}%</td>"
. "<td>{$asr_qc_rate_svg}%</td>"
. "<td>{$asr_priority_rate_svg}%</td>"
. "<td>{$asr_all_rate_svg}%</td>"
. "<td>{$asr_48h_rate_svg}%</td>"
. "<td>{$asr_72h_rate_svg}%</td>"
. '</tr>';
$content1 .= '</table>';
$whRow = Warehouse_Service_Warehouse::getById($warehouse);
$content = iconv("UTF-8", "GB2312", $content);
$mail_subject = "CFF" . $whRow['warehouse_name_cn'] . "仓储中心质检入库时效报表-" . date('Y-m-d', strtotime($start_date));
$mail = Product_Service_ReceivingItem::setupMail();
$mail->setBodyHtml($content1);
$mail->addTo($mailUser, $mail_subject);
$mail->setSubject($mail_subject);
$at = $mail->createAttachment($content);
$at->type = 'application/vnd.ms-excel';
$at->disposition = Zend_Mime::DISPOSITION_INLINE;
$at->encoding = Zend_Mime::ENCODING_8BIT;
$at->filename = iconv("UTF-8", "GB2312", $mail_subject . '.csv');
$path = APPLICATION_PATH . "/../public/file/attachment/" . $mail_subject . '.csv';
if ($path) {
$handle = fopen($path, 'a');
if ($handle) {
fwrite($handle, $content);
fclose($handle);
}
}
if ($mail->send()) {
if (is_array($mailUser)) {
$mailUser = implode(';', $mailUser);
}
$contents = array(
'eq_to' => $mailUser,
'eq_subject' => $mail_subject,
'eq_body' => $content1,
'eq_attachment' => $path,
'eq_add_time' => date('Y-m-d H:i:s'),
'eq_send_time' => date('Y-m-d H:i:s'),
'eq_status' => 1
);
Common_Service_MailRecord::addMailRecord($contents);
}
}
}