Преглед изворни кода

预计算不再使用IS_PROCESSING标识

theo пре 3 година
родитељ
комит
2ffd785dbc

+ 3 - 5
backendApi/modules/v1/controllers/CalcController.php

@@ -36,11 +36,9 @@ class CalcController extends BaseController
         if (!$periodNum) {
             return static::notice('期数不存在', 400);
         }
-        if (Period::isProcessing($periodNum)) {
-            return static::notice('有操作正在进行中请稍后', 400);
+        if (Period::isPreparing($periodNum)) {
+            return static::notice('预计算正在进行中请稍后', 400);
         }
-        //设置计算进行中标识
-        Period::updatePeriodIsProcessing($periodNum, Period::IS_PROCESSING);
         //设置自动计算标识
         Period::updatePeriodIsAutoExec($periodNum, Period::MANUAL_EXEC_CALC);
         //记录开始计算的时间
@@ -52,7 +50,7 @@ class CalcController extends BaseController
         if ($formModel->load(Yii::$app->request->get(), '') && $formModel->autoPerf()) {
             //设置预计算进行中标识
             Period::updatePeriodIsPreparing($periodNum, Period::IS_PREPARING);
-            return static::notice('自动计算已开始,请等待');
+            return static::notice('计算已开始,请等待');
         } else {
             return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400);
         }

+ 7 - 7
common/helpers/bonus/Calc/CalcConsole.php

@@ -122,7 +122,7 @@ class CalcConsole extends BaseBusiness
         $currentPeriod = Period::find()->where('START_TIME< :NOW_TIME',['NOW_TIME'=>$nowTs])->where('END_TIME>= :NOW_TIME',['NOW_TIME'=>$nowTs-6])->asArray()->one();
         $periodNum = $currentPeriod['PERIOD_NUM'];
         if (
-            Period::isProcessing($periodNum)
+            Period::isPreparing($periodNum)
             || $currentPeriod['IS_MONTH'] == 0
         ) {
             return;
@@ -130,12 +130,12 @@ class CalcConsole extends BaseBusiness
         if($nowTs+86400>$currentPeriod['END_TIME'] ){
             $nowMin = date("i", $nowTs);
             $nowSec = date("s", $nowTs);
-            if(($nowMin!=0 || $nowSec >= 5 ) || Period::isProcessing($periodNum)){ // 当不是整点小时,当计算中,不计算
+            if(($nowMin!=0 || $nowSec >= 5 ) || Period::isPreparing($periodNum)){ // 当不是整点小时,当计算中,不计算
                 return;
             }
             print_r($periodNum."该预结算".$nowMin.PHP_EOL.$nowSec);
             //设置计算进行中标识
-            Period::updatePeriodIsProcessing($periodNum, Period::IS_PROCESSING);
+            Period::updatePeriodIsPreparing($periodNum, Period::IS_PREPARING);
             //设置自动计算标识
             Period::updatePeriodIsAutoExec($periodNum, Period::MANUAL_EXEC_CALC);
             //记录开始计算的时间
@@ -180,23 +180,23 @@ class CalcConsole extends BaseBusiness
         }
         if (
             2 == $period['IS_PREPARE']
-            && 3 == $period['IS_PERFED']
+            && 1 == $period['IS_PERFED']
         ) {
             //拉取期业绩
             CalcRecord::record($period['PERIOD_NUM'], '第' . $period['PERIOD_NUM'] . '期的预计算业绩数据已生成');
             CalcRecord::record($period['PERIOD_NUM'], '开始获取第' . $period['PERIOD_NUM'] . '期的预计算期业绩数据');
 
-            Period::updatePeriodIsProcessing($period['PERIOD_NUM'], Period::IS_PROCESSING);
+            Period::updatePeriodIsPreparing($period['PERIOD_NUM'], Period::IS_PREPARING);
             $res = (new PullPerfDataFromCalc($period['PERIOD_NUM']))->start();
             if (200 == $res['code']) {
-                Period::updatePeriodIsProcessing($period['PERIOD_NUM'], Period::NOT_PROCESSING);
+//                Period::updatePeriodIsProcessing($period['PERIOD_NUM'], Period::NOT_PROCESSING);
                 //设置预计算标识
                 Period::updatePeriodIsPreparing($period['PERIOD_NUM'], Period::NOT_PREPARING);
                 CalcRecord::record($period['PERIOD_NUM'], '第' . $period['PERIOD_NUM'] . '期的预计算期业绩数据已获取');
                 return $res;
             } else {
                 //结束计算状态
-                Period::updatePeriodIsProcessing($period['PERIOD_NUM'], Period::NOT_PROCESSING);
+//                Period::updatePeriodIsProcessing($period['PERIOD_NUM'], Period::NOT_PROCESSING);
                 //设置预计算标识
                 Period::updatePeriodIsPreparing($period['PERIOD_NUM'], Period::NOT_PREPARING);
                 CalcRecord::record($period['PERIOD_NUM'], '第' . $period['PERIOD_NUM'] . '期的预计算期业绩数据获取失败,原因:' . $res['msg']);

+ 13 - 0
common/models/Period.php

@@ -898,6 +898,19 @@ class Period extends \common\components\ActiveRecord
         //挂网则拒绝操作,返回true则拒绝操作
         if ($period['IS_SENT'] == self::SEND_FINISH) return true;
         if ($period['IS_PROCESSING'] == self::IS_PROCESSING) return true;
+        return false;
+    }
+
+    /**
+     * 是否预计算操作中
+     * @param $periodNum
+     * @return bool
+     */
+    public static function isPreparing($periodNum = null): bool
+    {
+        $period = static::findOneAsArray(['PERIOD_NUM' => $periodNum]);
+        //挂网则拒绝操作,返回true则拒绝操作
+        if ($period['IS_SENT'] == self::SEND_FINISH) return true;
         if ($period['IS_PREPARING'] == self::IS_PREPARING) return true;
         return false;
     }

+ 2 - 2
console/controllers/CalcController.php

@@ -109,7 +109,7 @@ class CalcController extends BaseController
         if (200 == $res['code']) {
             CalcRecord::record($periodNum, '业绩单已生成');
         } else {
-            Period::updatePeriodIsProcessing($periodNum, Period::NOT_PROCESSING);
+            Period::updatePeriodIsPreparing($periodNum, Period::NOT_PREPARING);
             CalcRecord::record($periodNum, '第' . $periodNum . '期业绩单生成失败,原因:' . substr($res['msg'],0,100));
             return false;
         }
@@ -120,7 +120,7 @@ class CalcController extends BaseController
         if (200 == $res['code']) {
             CalcRecord::record($periodNum, '基础数据完成推送');
         } else {
-            Period::updatePeriodIsProcessing($periodNum, Period::NOT_PROCESSING);
+            Period::updatePeriodIsPreparing($periodNum, Period::NOT_PREPARING);
             CalcRecord::record($periodNum, '第' . $periodNum . '期基础数据推送失败,原因:' . $res['msg']);
             return false;
         }