brook 3 năm trước cách đây
mục cha
commit
a4d1b518aa

+ 1 - 1
common/helpers/bonus/Calc/BaseBusiness.php

@@ -45,10 +45,10 @@ class BaseBusiness
             return 0;
         }
         $db     = self::CALC_DB_NAME;
+        //同步字段去掉 IS_CALCULATED, 否则自动拉取的轮询间隔之间奖金计算完成后更新该字段则会认为已经拉取过奖金数据
         $period = \Yii::$app->$db->createCommand("SELECT 
                 PERIOD_NUM,
                 IS_PERFED,
-                IS_CALCULATED,
                 IS_PERFING,
                 IS_CALCING,
                 PERF_PERCENT,

+ 3 - 1
common/helpers/bonus/Calc/CalcConsole.php

@@ -27,7 +27,7 @@ class CalcConsole extends BaseBusiness
         $businessPeriod = Period::find()->where(['PERIOD_NUM' => $period['PERIOD_NUM']])
             ->asArray()->one();
         //用户选择是否自动执行
-        $autoExec = $businessPeriod['AUTO_EXEC'] > 0;
+        $autoExec             = $businessPeriod['AUTO_EXEC'] > 0;
         $businessIsCalculated = $businessPeriod['IS_CALCULATED'] > 0;
 
         if (2 == $period['IS_PREPARE'] && 1 == $period['IS_PERFED'] && $autoExec) {
@@ -64,6 +64,8 @@ class CalcConsole extends BaseBusiness
             $res = (new PullCalcBonusData($period['PERIOD_NUM']))->start();
             if (200 == $res['code']) {
                 CalcRecord::record($period['PERIOD_NUM'], '第' . $period['PERIOD_NUM'] . '期的奖金数据已全部拉取');
+                //待拉取完成后再将计算完成标识改为已完成
+                \Yii::$app->$db->createCommand()->update('AR_PERIOD', ['IS_CALCULATED' => 1], 'PERIOD_NUM=' . $period['PERIOD_NUM'])->execute();
                 //自动执行完成 更新对应字段
                 //计算结束
                 Period::updatePeriodIsProcessing($period['PERIOD_NUM'], Period::NOT_PROCESSING);