|
|
@@ -17,6 +17,7 @@ class ConfigPeriodForm extends Model
|
|
|
public $calcYear;
|
|
|
public $closeWeekDate;
|
|
|
public $closeTime;
|
|
|
+ public $closeDays;
|
|
|
|
|
|
public function init() {
|
|
|
parent::init();
|
|
|
@@ -31,10 +32,11 @@ class ConfigPeriodForm extends Model
|
|
|
public function rules()
|
|
|
{
|
|
|
return [
|
|
|
- [['calcYear', 'closeWeekDate', 'closeTime'], 'required'],
|
|
|
+ [['calcYear', 'closeWeekDate', 'closeTime', 'closeDays'], 'required'],
|
|
|
[['calcYear'], 'integer', 'max'=>2050, 'min'=>2018],
|
|
|
[['closeWeekDate'], 'match', 'pattern' => '/^[0-6]/', 'message' => '请填写有效的星期'],
|
|
|
[['closeTime'], 'time', 'format'=>'HH:mm'],
|
|
|
+ [['closeDays'], 'match', 'pattern' => '/^[1-4]/', 'message' => '请填写有效的天数'],
|
|
|
];
|
|
|
}
|
|
|
|
|
|
@@ -44,6 +46,7 @@ class ConfigPeriodForm extends Model
|
|
|
'calcYear' => '计算至年份',
|
|
|
'closeWeekDate' => '封期日期',
|
|
|
'closeTime' => '封期时间',
|
|
|
+ 'closeDays' => '封期周期天数',
|
|
|
];
|
|
|
}
|
|
|
|
|
|
@@ -75,10 +78,13 @@ class ConfigPeriodForm extends Model
|
|
|
if(!Config::updateAll(['VALUE'=>$this->closeTime, 'UPDATED_AT'=>Date::nowTime()], "CONFIG_NAME='closeTime'")){
|
|
|
throw new Exception('封期时间更新失败');
|
|
|
}
|
|
|
+ if(!Config::updateAll(['VALUE'=>$this->closeDays, 'UPDATED_AT'=>Date::nowTime()], "CONFIG_NAME='closeDays'")){
|
|
|
+ throw new Exception('封期天数更新失败');
|
|
|
+ }
|
|
|
// 异步重新生成业绩期先注释掉
|
|
|
// 异步处理添加任务
|
|
|
- //$taskKey = \Yii::$app->swooleAsyncTimer->asyncHandle('config/update-period', \Yii::$app->request->post());
|
|
|
- $taskKey = true;
|
|
|
+ $taskKey = \Yii::$app->swooleAsyncTimer->asyncHandle('config/update-period', \Yii::$app->request->post());
|
|
|
+// $taskKey = true;
|
|
|
if($taskKey === false){
|
|
|
throw new Exception('请求异步服务器失败');
|
|
|
}
|
|
|
@@ -120,8 +126,14 @@ class ConfigPeriodForm extends Model
|
|
|
$startDateTemp = $nowPeriodStart;
|
|
|
$transaction = \Yii::$app->db->beginTransaction();
|
|
|
try{
|
|
|
+ $days = 1;
|
|
|
for($startDate = $nowPeriodStart + 86400; $startDate < strtotime($this->calcYear.'-12-31'); $startDate += 86400 ){
|
|
|
if(Date::dateWeek(\date('Y-m-d',$startDate)) == $this->closeWeekDate){
|
|
|
+ $days++;
|
|
|
+ if ($days % $this->closeDays != 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
$periodModel = new Period();
|
|
|
$periodModel->PERIOD_NUM = $nowPeriodNum;
|
|
|
$periodModel->START_TIME = $startDateTemp;
|