<?php
require_once ('config.php');
$flagFile = APPLICATION_PATH . '/../data/log/submitProdcutRecord.lock';
if (@file_exists($flagFile)) {
    echo 'Anather process is running.'."\r\n";
    echo $flagFile."\r\n";
    exit();
}
$link = fopen($flagFile, 'wb');
fclose($link);
define('RUNTIME', '[' . date('Y-m-d H:i:s') . '] ');
echo RUNTIME . "Starting.\r\n\r\n";
//状态为0(从未提交过备案的)的料件号
echo "提交状态为0的料件号\r\n";
try {
	$goodsList = Service_ProductGoods::getByCondition(array('pg_status'=>0));
	$recordProcess = new Service_ProductRecordProcess();
	foreach($goodsList as $goodsRow) {
		$fpr_id = $recordProcess->addGoodsRecord($goodsRow);
		if(!is_int($fpr_id)) {
			echo $fpr_id."\r\n";
			$uGoods['pg_status'] = 3;
			$uGoods['pg_update_time'] = date('Y-m-d H:i:s');
			Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
			continue;
		}
		$result = $recordProcess->ftpSendRecord($fpr_id);
		if(!$result) {
			echo '料件号['.$goodsRow['goods_code']."]提交备案失败\r\n";
			$uGoods['pg_status'] = 3;
			$uGoods['pg_update_time'] = date('Y-m-d H:i:s');
			Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
			continue;
		}
		//修改状态
		$uGoods['pg_status'] = 2;
		$uGoods['pg_update_time'] = date('Y-m-d H:i:s');
		Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
		echo '料件号['.$goodsRow['goods_code']."]提交备案成功\r\n";
		
		//break;
	}
} catch (Exception $e) {
    @unlink($flagFile);
    echo '[' . date('Y-m-d H:i:s') . '] Fail Exception:' . $e->getMessage() ."\r\n";
}
echo "提交状态为4的料件号\r\n";
//状态为4(已经备案成功的)的料件号
try {
	$goodsList = Service_ProductGoods::getByCondition(array('pg_status'=>4));
	$recordProcess = new Service_ProductRecordProcess();
	foreach($goodsList as $goodsRow) {
		$fpr_id = $recordProcess->addGoodsRecord($goodsRow);
		if(!is_int($fpr_id)) {
			echo $fpr_id."\r\n";
			$uGoods['pg_status'] = 3;
			$uGoods['pg_update_time'] = date('Y-m-d H:i:s');
			Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
			continue;
		}
		$result = $recordProcess->ftpSendRecord($fpr_id);
		if(!$result) {
			echo '料件号['.$goodsRow['goods_code']."]提交备案失败\r\n";
			$uGoods['pg_status'] = 3;
			$uGoods['pg_update_time'] = date('Y-m-d H:i:s');
			Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
			continue;
		}
		//修改状态
		$uGoods['pg_status'] = 1;
		$uGoods['pg_update_time'] = date('Y-m-d H:i:s');
		Service_ProductGoods::update($uGoods, $goodsRow['pg_id']);
		echo '料件号['.$goodsRow['goods_code']."]提交备案成功\r\n";
		//修改产品状态
		Service_Product::update(array('product_status'=>1), $goodsRow['goods_code'], 'goods_id');
	}
} catch (Exception $e) {
	@unlink($flagFile);
	echo '[' . date('Y-m-d H:i:s') . '] Fail Exception:' . $e->getMessage() ."\r\n";
}
echo "\r\n[" . date('Y-m-d H:i:s') . "] End run\r\n";
@unlink($flagFile);