|
|
@@ -15,6 +15,7 @@ use common\models\CalcRecord;
|
|
|
use common\models\FlowBonus;
|
|
|
use common\models\forms\PeriodForm;
|
|
|
use common\models\Period;
|
|
|
+use common\models\CalcOperation;
|
|
|
use Yii;
|
|
|
|
|
|
/**
|
|
|
@@ -42,7 +43,9 @@ class CalcController extends BaseController
|
|
|
//设置自动计算标识
|
|
|
Period::updatePeriodIsAutoExec($periodNum, Period::MANUAL_EXEC_CALC);
|
|
|
//记录开始计算的时间
|
|
|
- Period::updateAll(['START_EXEC_TIME' => time()], ['PERIOD_NUM' => $periodNum]);
|
|
|
+ $calc_id = uniqid('perf_');
|
|
|
+ CalcOperation::record($calc_id, $periodNum);
|
|
|
+ Period::updateAll(['START_EXEC_TIME' => time(), 'CALC_ID' => $calc_id], ['PERIOD_NUM' => $periodNum]);
|
|
|
|
|
|
$formModel = new PeriodForm();
|
|
|
$formModel->scenario = 'autoPerf';
|
|
|
@@ -50,6 +53,8 @@ class CalcController extends BaseController
|
|
|
if ($formModel->load(Yii::$app->request->get(), '') && $formModel->autoPerf()) {
|
|
|
//设置预计算进行中标识
|
|
|
Period::updatePeriodIsPreparing($periodNum, Period::IS_PREPARING);
|
|
|
+ //设置redis开关
|
|
|
+ Yii::$app->cache->set('isPreparing', 1, 3600);
|
|
|
return static::notice('预计算已开始,请等待');
|
|
|
} else {
|
|
|
return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400);
|
|
|
@@ -77,12 +82,16 @@ class CalcController extends BaseController
|
|
|
//设置自动计算标识
|
|
|
Period::updatePeriodIsAutoExec($periodNum, Period::AUTO_EXEC_CALC);
|
|
|
//记录开始计算的时间
|
|
|
- Period::updateAll(['START_EXEC_TIME' => time()], ['PERIOD_NUM' => $periodNum]);
|
|
|
+ $calc_id = uniqid('calc_');
|
|
|
+ CalcOperation::record($calc_id, $periodNum);
|
|
|
+ Period::updateAll(['START_EXEC_TIME' => time(), 'CALC_ID' => $calc_id], ['PERIOD_NUM' => $periodNum]);
|
|
|
|
|
|
$formModel = new PeriodForm();
|
|
|
$formModel->scenario = 'perf';
|
|
|
|
|
|
if ($formModel->load(Yii::$app->request->get(), '') && $formModel->autoExec()) {
|
|
|
+ //设置redis开关
|
|
|
+ Yii::$app->cache->set('isCalcing', 1, 3600);
|
|
|
return static::notice('自动计算已开始,请等待');
|
|
|
} else {
|
|
|
return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400);
|
|
|
@@ -107,11 +116,17 @@ class CalcController extends BaseController
|
|
|
Period::updatePeriodIsAutoExec($periodNum, Period::MANUAL_EXEC_CALC);
|
|
|
//设置计算进行中标识
|
|
|
Period::updatePeriodIsProcessing($periodNum, Period::IS_PROCESSING);
|
|
|
+ //记录开始计算的时间
|
|
|
+ $calc_id = uniqid('manu_');
|
|
|
+ CalcOperation::record($calc_id, $periodNum);
|
|
|
+ Period::updateAll(['START_EXEC_TIME' => time(), 'CALC_ID' => $calc_id], ['PERIOD_NUM' => $periodNum]);
|
|
|
|
|
|
$formModel = new PeriodForm();
|
|
|
$formModel->scenario = 'perf';
|
|
|
|
|
|
if ($formModel->load(Yii::$app->request->get(), '') && $formModel->generatePerfOrder()) {
|
|
|
+ //设置redis开关
|
|
|
+ Yii::$app->cache->set('isCalcing', 1, 3600);
|
|
|
return static::notice('业绩单已开始生成,请等待');
|
|
|
} else {
|
|
|
Period::updatePeriodIsProcessing($periodNum, Period::NOT_PROCESSING);
|
|
|
@@ -174,6 +189,10 @@ class CalcController extends BaseController
|
|
|
$period = \Yii::$app->$db->createCommand('SELECT * FROM AR_PERIOD where PERIOD_NUM=:PERIOD_NUM')
|
|
|
->bindValue(':PERIOD_NUM', $periodNum)
|
|
|
->queryOne();
|
|
|
+ $businessPeriod = Period::find()->where(['PERIOD_NUM' => $periodNum])->asArray()->one();
|
|
|
+ if (!$period['CALC_ID'] || $period['CALC_ID'] != $businessPeriod['CALC_ID']) {
|
|
|
+ return static::notice('CALC ID不符', 400);
|
|
|
+ }
|
|
|
|
|
|
if (empty($period)) {
|
|
|
Period::updatePeriodIsProcessing($periodNum, Period::NOT_PROCESSING);
|
|
|
@@ -206,6 +225,10 @@ class CalcController extends BaseController
|
|
|
$period = \Yii::$app->$db->createCommand('SELECT * FROM AR_PERIOD where PERIOD_NUM=:PERIOD_NUM')
|
|
|
->bindValue(':PERIOD_NUM', $periodNum)
|
|
|
->queryOne();
|
|
|
+ $businessPeriod = Period::find()->where(['PERIOD_NUM' => $periodNum])->asArray()->one();
|
|
|
+ if (!$period['CALC_ID'] || $period['CALC_ID'] != $businessPeriod['CALC_ID']) {
|
|
|
+ return static::notice('CALC ID不符', 400);
|
|
|
+ }
|
|
|
|
|
|
if (empty($period)) {
|
|
|
return static::notice('计算系统中的第' . $periodNum . '期的业绩期信息不存在');
|
|
|
@@ -245,6 +268,10 @@ class CalcController extends BaseController
|
|
|
$period = \Yii::$app->$db->createCommand('SELECT * FROM AR_PERIOD where PERIOD_NUM=:PERIOD_NUM')
|
|
|
->bindValue(':PERIOD_NUM', $periodNum)
|
|
|
->queryOne();
|
|
|
+ $businessPeriod = Period::find()->where(['PERIOD_NUM' => $periodNum])->asArray()->one();
|
|
|
+ if (!$period['CALC_ID'] || $period['CALC_ID'] != $businessPeriod['CALC_ID']) {
|
|
|
+ return static::notice('CALC ID不符', 400);
|
|
|
+ }
|
|
|
|
|
|
$formModel = new PeriodForm();
|
|
|
$formModel->scenario = 'calc';
|
|
|
@@ -282,6 +309,10 @@ class CalcController extends BaseController
|
|
|
$period = \Yii::$app->$db->createCommand('SELECT * FROM AR_PERIOD where PERIOD_NUM=:PERIOD_NUM')
|
|
|
->bindValue(':PERIOD_NUM', $periodNum)
|
|
|
->queryOne();
|
|
|
+ $businessPeriod = Period::find()->where(['PERIOD_NUM' => $periodNum])->asArray()->one();
|
|
|
+ if (!$period['CALC_ID'] || $period['CALC_ID'] != $businessPeriod['CALC_ID']) {
|
|
|
+ return static::notice('CALC ID不符', 400);
|
|
|
+ }
|
|
|
|
|
|
if (empty($period)) {
|
|
|
return static::notice('计算系统中的第' . $periodNum . '期的业绩期信息不存在');
|