validate()) { return ['code' => 1, 'msg' => $this->getErrorSummary(false)[0]]; } $t = \Yii::$app->db->beginTransaction(); if (!$this->sheet_list) { return [ 'code'=>1, 'msg'=>'请填写溯源记录' ]; } $product_batch_process_log = ProductBatchProcessLog::find()->where(['id' => $this->process_log_id])->one(); $product_batch_list = ProductBatchProcess::find()->alias("pbp") ->innerJoin(['pbpl' => ProductBatchProcessLog::tableName()], 'pbp.id=pbpl.product_batch_process_id') ->where([ 'pbp.is_delete' => 0, 'pbp.store_id' => $this->store_id, 'pbp.product_batch_id' => $product_batch_process_log->product_batch_id, ])->orderBy("pbp.sort asc")->select(['pbpl.*', 'pbp.process_name', 'pbp.process_user_id'])->asArray()->all(); $is_add = 0; foreach ($product_batch_list as $k => $v) { if($k>0){ if ($v['process_user_id'] == $this->user_id && $product_batch_list[$k-1]['state'] == 1 && $v['state'] == 0 && $v['id'] == $this->process_log_id) { $is_add = 1; break; } } else { if ($v['process_user_id'] == $this->user_id && $v['state'] == 0 && $v['id'] == $this->process_log_id) { $is_add = 1; break; } } } if ($is_add==0 && $product_batch_process_log->state == 0) { return [ 'code'=>1, 'msg'=>'还未到您的流程,暂时不能填写', 'msg1'=>$is_add ]; } $is_exist = ProductBatchProcessLogSheet::find()->where(['process_log_id' => $this->process_log_id, 'is_delete' => 0])->one(); if ($is_exist) { ProductBatchProcessLogSheet::updateAll(['is_delete' => 1], ['store_id' => $this->store_id, 'process_log_id' => $this->process_log_id]); } $sheet_list = $this->sheet_list ? json_decode($this->sheet_list, true) : []; foreach ($sheet_list as $value) { $product_batch_process_log_sheet = ProductBatchProcessLogSheet::find()->where(['process_log_id' => $this->process_log_id, 'process_sheet_id' => $value['process_sheet_id']])->one(); if (!$product_batch_process_log_sheet) { $product_batch_process_log_sheet = new ProductBatchProcessLogSheet(); } $product_batch_process_log_sheet->store_id = $this->store_id; $product_batch_process_log_sheet->process_log_id = $this->process_log_id; $product_batch_process_log_sheet->process_sheet_id = $value['process_sheet_id']; $product_batch_process_log_sheet->key = $value['key']; $product_batch_process_log_sheet->value = $value['value']; $product_batch_process_log_sheet->type = $value['type']; $product_batch_process_log_sheet->is_delete = 0; if (!$product_batch_process_log_sheet->save()) { $t->rollBack(); return [ 'code' => 1, 'msg' => $product_batch_process_log_sheet->getErrors(), ]; } } $product_batch_process_log->state = 1; if (!$product_batch_process_log->save()) { $t->rollBack(); return [ 'code' => 1, 'msg' => '编辑失败', ]; } $t->commit(); return [ 'code' => 0, 'msg' => '编辑成功', ]; } public function del(){ if (!$this->validate()) { return ['code' => 1, 'msg' => $this->getErrorSummary(false)[0]]; } $t = \Yii::$app->db->beginTransaction(); ProductBatchProcessLogSheet::updateAll(['is_delete' => 1], ['store_id' => $this->store_id, 'process_log_id' => $this->process_log_id]); $product_batch_process_log = ProductBatchProcessLog::find()->where(['id' => $this->process_log_id])->one(); $product_batch_process_log->state = 0; if (!$product_batch_process_log->save()) { $t->rollBack(); return [ 'code' => 1, 'msg' => '撤销失败', ]; } $t->commit(); return [ 'code' => 0, 'msg' => '撤销成功', ]; } }