首页 > 其他 > 详细

生产管理系统被动接受最佳实践

时间:2019-02-15 11:04:30      阅读:182      评论:0      收藏:0      [点我收藏+]

1.结果如图所示:

技术分享图片

2. 搜索模型相关代码:

<?php

namespace backend\models;

use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use core\models\WmsMaterialInSheet;

class WmsMaterialInSheetSearch extends WmsMaterialInSheet
{
    public static $stateList = [‘wait_mng‘=>‘待验收‘, ‘wait_in‘=>‘待入库‘, ‘already_in‘=>‘已入库‘, ‘wait_settle‘=>‘待结算‘, ‘finish‘=>‘已完成‘, ‘all‘=>‘全部单据‘, ‘is_del‘=>‘已作废‘];
    public $disabled = false;
    /**
     * 是否显示更多筛选
     * @var
     */
    public $is_display;
    /**
     * 晒选类型
     * @var
     */
    public $search_type;

    public function rules()
    {
        return [
            [[‘id‘, ‘wms_material_in_sheet_create_order_date‘, ‘wms_material_in_sheet_tare_weight‘, ‘wms_material_in_sheet_gross_weight‘, ‘wms_material_in_sheet_net_weight‘,
                ‘wms_material_in_sheet_unit_price‘, ‘wms_material_in_sheet_total_price‘, ‘wms_material_in_sheet_in_weight‘, ‘wms_material_in_sheet_in_weight_before‘,
                ‘wms_material_in_sheet_in_weight_after‘, ‘wms_material_in_sheet_delivery_man_sign_date‘, ‘wms_material_in_sheet_receiving_man_sign_date‘, ‘wms_material_in_sheet_storage_manager_sign_date‘,
                ‘wms_material_in_sheet_product_in_date‘, ‘common_producer_info_id‘, ‘common_producer_herb_info_id‘, ‘common_supplier_info_id‘, ‘common_producer_herb_place_info_id‘,
                ‘common_producer_wms_info_id‘, ‘common_producer_wms_area_info_id‘, ‘common_producer_herb_grade_info_id‘, ‘common_supplier_delivery_man_id‘, ‘common_producer_people_info_id_receiver‘,
                ‘common_producer_people_info_id_storage_manager‘, ‘created_at‘, ‘updated_at‘, ‘is_del‘], ‘integer‘],
            [[‘wms_material_in_sheet_number‘, ‘wms_material_in_sheet_batch_number‘, ‘wms_material_in_sheet_material_description‘, ‘wms_material_in_sheet_note‘, ‘common_producer_herb_info_name‘,
                ‘common_supplier_info_name‘, ‘common_producer_herb_place_info_name‘, ‘common_producer_herb_grade_name‘, ‘purchase_contract_id‘, ‘common_supplier_delivery_man_name‘,
                ‘common_supplier_delivery_man_phone‘, ‘common_supplier_delivery_man_license_plate_number‘, ‘common_producer_people_info_receiver_name‘, ‘common_producer_people_info_id_storage_manager_name‘], ‘safe‘],
            [[‘begin_at‘, ‘end_at‘], ‘string‘],
        ];
    }

    public function attributes()
    {
        return array_merge(parent::attributes(),["begin_at","end_at"]); // TODO: Change the autogenerated stub
    }

    public function search($params)
    {
        $query = WmsMaterialInSheet::find();

        if(!empty($params[‘WmsMaterialInSheetSearch‘][‘search_type‘])){
            $this->search_type = $params[‘WmsMaterialInSheetSearch‘][‘search_type‘];
            $query = self::searchCondition($params,$query);
        }
        $dataProvider = new ActiveDataProvider([
            ‘query‘ => $query,
            ‘sort‘ => [
                ‘defaultOrder‘ => [
                    ‘wms_material_in_sheet_number‘ => SORT_DESC,
                ]
            ],
        ]);

        //判断是否展开更多筛选
        if(!empty($params[‘WmsMaterialInSheetSearch‘][‘is_display‘])){
            $this->is_display = $params[‘WmsMaterialInSheetSearch‘][‘is_display‘];
        }
        $this->load($params);

        $division_id = \core\models\Division::getTopDivisionId(Yii::$app->user->identity->division_id,true);
        if (!empty($division_id)) {
            $this->common_producer_info_id = $division_id;
            $this->disabled = true;
        }

        if (!$this->validate()) {
            return $dataProvider;
        }

        $query->andFilterWhere([
            ‘id‘ => $this->id,
            ‘wms_material_in_sheet_create_order_date‘ => $this->wms_material_in_sheet_create_order_date,
            ‘wms_material_in_sheet_tare_weight‘ => $this->wms_material_in_sheet_tare_weight,
            ‘wms_material_in_sheet_gross_weight‘ => $this->wms_material_in_sheet_gross_weight,
            ‘wms_material_in_sheet_net_weight‘ => $this->wms_material_in_sheet_net_weight,
            ‘wms_material_in_sheet_unit_price‘ => $this->wms_material_in_sheet_unit_price,
            ‘wms_material_in_sheet_total_price‘ => $this->wms_material_in_sheet_total_price,
            ‘wms_material_in_sheet_in_weight‘ => $this->wms_material_in_sheet_in_weight,
            ‘wms_material_in_sheet_in_weight_before‘ => $this->wms_material_in_sheet_in_weight_before,
            ‘wms_material_in_sheet_in_weight_after‘ => $this->wms_material_in_sheet_in_weight_after,
            ‘wms_material_in_sheet_delivery_man_sign_date‘ => $this->wms_material_in_sheet_delivery_man_sign_date,
            ‘wms_material_in_sheet_receiving_man_sign_date‘ => $this->wms_material_in_sheet_receiving_man_sign_date,
            ‘wms_material_in_sheet_storage_manager_sign_date‘ => $this->wms_material_in_sheet_storage_manager_sign_date,
            ‘wms_material_in_sheet_product_in_date‘ => $this->wms_material_in_sheet_product_in_date,
            ‘wms_material_in_sheet_type‘ => $this->wms_material_in_sheet_type,
            ‘common_producer_info_id‘ => $this->common_producer_info_id,
            ‘common_producer_herb_info_id‘ => $this->common_producer_herb_info_id,
            ‘common_supplier_info_id‘ => $this->common_supplier_info_id,
            ‘common_producer_herb_place_info_id‘ => $this->common_producer_herb_place_info_id,
            ‘common_producer_wms_info_id‘ => $this->common_producer_wms_info_id,
            ‘common_producer_wms_area_info_id‘ => $this->common_producer_wms_area_info_id,
            ‘common_producer_herb_grade_info_id‘ => $this->common_producer_herb_grade_info_id,
            ‘common_supplier_delivery_man_id‘ => $this->common_supplier_delivery_man_id,
            ‘common_producer_people_info_id_receiver‘ => $this->common_producer_people_info_id_receiver,
            ‘common_producer_people_info_id_storage_manager‘ => $this->common_producer_people_info_id_storage_manager,
            ‘created_at‘ => $this->created_at,
            ‘updated_at‘ => $this->updated_at,
        ]);
        if(!empty($this->begin_at)){
            $query->andWhere([‘>=‘,‘wms_material_in_sheet_product_in_date‘,strtotime($this->begin_at)]);
        }
        if(!empty($this->end_at)){
            $query->andWhere([‘<‘,‘wms_material_in_sheet_product_in_date‘,strtotime($this->end_at) + 24*3600]);
        }
        $querySecondProduct = WmsMaterialInSheet::find()->andWhere([‘wms_material_in_sheet_type‘=>‘二次加工‘])->andWhere([‘wms_material_in_sheet_status‘=>0])->select([‘wms_material_in_sheet_number‘]);

        $query->andFilterWhere([‘like‘, ‘wms_material_in_sheet_number‘, $this->wms_material_in_sheet_number])
            ->andFilterWhere([‘like‘, ‘wms_material_in_sheet_batch_number‘, $this->wms_material_in_sheet_batch_number])
            ->andFilterWhere([‘like‘, ‘wms_material_in_sheet_material_description‘, $this->wms_material_in_sheet_material_description])
            ->andFilterWhere([‘like‘, ‘wms_material_in_sheet_note‘, $this->wms_material_in_sheet_note])
            ->andFilterWhere([‘like‘, ‘common_producer_herb_info_name‘, $this->common_producer_herb_info_name])
            ->andFilterWhere([‘like‘, ‘common_supplier_info_name‘, $this->common_supplier_info_name])
            ->andFilterWhere([‘like‘, ‘common_producer_herb_place_info_name‘, $this->common_producer_herb_place_info_name])
            ->andFilterWhere([‘like‘, ‘common_producer_herb_grade_name‘, $this->common_producer_herb_grade_name])
            ->andFilterWhere([‘like‘, ‘purchase_contract_id‘, $this->purchase_contract_id])
            ->andFilterWhere([‘like‘, ‘common_supplier_delivery_man_name‘, $this->common_supplier_delivery_man_name])
            ->andFilterWhere([‘like‘, ‘common_supplier_delivery_man_phone‘, $this->common_supplier_delivery_man_phone])
            ->andFilterWhere([‘like‘, ‘common_supplier_delivery_man_license_plate_number‘, $this->common_supplier_delivery_man_license_plate_number])
            ->andFilterWhere([‘like‘, ‘common_producer_people_info_receiver_name‘, $this->common_producer_people_info_receiver_name])
            ->andFilterWhere([‘like‘, ‘common_producer_people_info_id_storage_manager_name‘, $this->common_producer_people_info_id_storage_manager_name]);
        $query->andFilterWhere([‘not in ‘, ‘wms_material_in_sheet_number‘ ,$querySecondProduct]);
        return $dataProvider;
    }

    public static function searchCondition($params,$query){
        if($params[‘WmsMaterialInSheetSearch‘][‘search_type‘]==‘all‘){
            return self::searchAll($params, $query);
        }elseif ($params[‘WmsMaterialInSheetSearch‘][‘search_type‘]==‘is_del‘){
            return self::searchIsDel($params, $query);
        }elseif ($params[‘WmsMaterialInSheetSearch‘][‘search_type‘]==‘finish‘){
            return self::searchFinish($params, $query);
        }elseif ($params[‘WmsMaterialInSheetSearch‘][‘search_type‘]==‘wait_mng‘){
            return self::searchWaitMng($params, $query);
        }elseif ($params[‘WmsMaterialInSheetSearch‘][‘search_type‘]==‘wait_in‘){
            return self::searchWaitIn($params, $query);
        }elseif ($params[‘WmsMaterialInSheetSearch‘][‘search_type‘]==‘already_in‘){
            return self::searchAlreadyIn($params, $query);
        }elseif ($params[‘WmsMaterialInSheetSearch‘][‘search_type‘]==‘wait_settle‘){
            return self::searchWaitSettle($params, $query);
        }elseif ($params[‘WmsMaterialInSheetSearch‘][‘search_type‘]==‘retreat_finish‘){ // 领料退回已入库订单(生产领料退回入库单申请使用)
            return self::searchRetreatFinish($params, $query);
        }elseif ($params[‘WmsMaterialInSheetSearch‘][‘search_type‘]==‘retreat_wait_in‘){ // 领料退回待入库订单(生产领料退回入库单申请使用)
            return self::searchRetreatWaitIn($params, $query);
        }
    }


    public static function searchAll($params, $query){
        return $query->andFilterWhere([‘or‘, [‘is_del‘=>0], [‘is_del‘=>NULL]]);
    }

    public static function searchIsDel($params, $query){
        return $query->andFilterWhere([‘is_del‘=>1]);
    }

    public static function searchWaitMng($params, $query){
        //搜索入库类型为采购,未质检,未入库
        $query = self::searchAll($params, $query);
        $query = $query->andWhere([‘or‘, [‘wms_material_in_sheet_type‘=>‘‘], [‘wms_material_in_sheet_type‘=>NULL],[‘wms_material_in_sheet_type‘=>‘二次加工‘],[‘wms_material_in_sheet_type‘=>‘原始库存‘]]);
        $query = $query->andWhere([‘or‘, [‘wms_material_in_sheet_status‘=>0], [‘wms_material_in_sheet_status‘=>NULL]]);
        return $query->andWhere([‘not in‘, ‘wms_material_in_sheet_number‘, self::getAlreadyMngCodeList()]);
    }

    public static function searchWaitIn($params, $query){
        $query = self::searchAll($params, $query);
        $query = $query->andWhere([‘or‘,
            [‘and‘, [‘or‘, [‘wms_material_in_sheet_type‘=>‘‘], [‘wms_material_in_sheet_type‘=>NULL], [‘wms_material_in_sheet_type‘=>‘二次加工‘],[‘wms_material_in_sheet_type‘=>‘原始库存‘]], [‘in‘, ‘wms_material_in_sheet_number‘, self::getAlreadyMngCodeList()], [‘or‘, [‘wms_material_in_sheet_status‘=>0], [‘wms_material_in_sheet_status‘=>NULL]]],
            //非采购类型,未入库
            [‘and‘, [‘or‘, [‘wms_material_in_sheet_type‘=>‘库存调拨‘], [‘wms_material_in_sheet_type‘=>‘库存报溢‘], [‘wms_material_in_sheet_type‘=>‘生产退料‘]], [‘or‘, [‘wms_material_in_sheet_status‘=>0], [‘wms_material_in_sheet_status‘=>NULL]]]
        ]);
        return $query;
    }

    public static function searchAlreadyIn($params, $query){
        $query = self::searchAll($params, $query);
        return $query->andFilterWhere([‘wms_material_in_sheet_status‘=>1]);
    }

    public static function searchWaitSettle($params, $query){
        $query = self::searchAll($params, $query);
        $query = $query->andWhere([‘or‘, [‘wms_material_in_sheet_type‘=>‘‘], [‘wms_material_in_sheet_type‘=>NULL]]);
        $query =  $query->andWhere([‘wms_material_in_sheet_status‘=>1]);
        return $query->andWhere([‘not in‘, ‘wms_material_in_sheet_number‘, self::getAlreadySettleCodeList2()]);
    }

    public static function searchFinish($params, $query){
        $query = self::searchAll($params, $query);
        $query = $query->andWhere([‘or‘,
            [‘and‘, [‘or‘, [‘wms_material_in_sheet_type‘=>‘‘], [‘wms_material_in_sheet_type‘=>NULL]], [‘in‘, ‘wms_material_in_sheet_number‘, self::getAlreadySettleCodeList2()], [‘wms_material_in_sheet_status‘=>1]],
            [‘and‘, [‘or‘,[‘wms_material_in_sheet_type‘=>‘二次加工‘],[‘wms_material_in_sheet_type‘=>‘原始库存‘], [‘wms_material_in_sheet_type‘=>‘库存调拨‘], [‘wms_material_in_sheet_type‘=>‘库存报溢‘]], [‘wms_material_in_sheet_status‘=>1]]
        ]);
        return $query;
    }

    /**
     * 领料退回已完成单据
     * @param $params
     * @param $query
     * @return mixed
     */
    public static function searchRetreatFinish($params, $query){
        $query = self::searchAll($params, $query);
        $query = $query->andWhere([‘wms_material_in_sheet_status‘=>1]);
        return $query;
    }

    /**
     * 领料退回待入库单据
     * @param $params
     * @param $query
     * @return mixed
     */
    public static function searchRetreatWaitIn($params, $query){
        $query = self::searchAll($params, $query);
        $query = $query->andWhere([‘or‘, [‘wms_material_in_sheet_status‘=>0], [‘wms_material_in_sheet_status‘=>NULL]]);
        return $query;
    }

    public static function getAlreadyMngCodeList(){
        $qualityCheckReportForMaterialList = \common\models\mongodb\QualityCheckReportForMaterial::find()->select([‘wms_material_in_sheet_number‘])->where([‘in‘, ‘wms_material_in_sheet_quality_confirm‘, [‘1‘, ‘3‘]])->asArray()->all();
        $alreadyMngCodeList = \yii\helpers\ArrayHelper::getColumn($qualityCheckReportForMaterialList, ‘wms_material_in_sheet_number‘);
        return $alreadyMngCodeList;
    }

    public static function getAlreadySettleCodeList(){
        $_querySettle = \core\models\PurchaseSettlementSheet::find();
        $consition = [
            \core\models\DingtalkApproval::COMPLETE_APPROVAL,
        ];
        $_querySettleApproved = $_querySettle->alias(‘ps‘)->select(‘ps.wms_material_in_sheet_number‘)
            ->leftJoin(\core\models\CommonApproveStatus::tableName()." cas","ps.purchase_settlement_sheet_number = cas.batch_number")
            ->andWhere([‘cas.common_approve_status_current_status‘=>$consition])
            ->andWhere([‘or‘, [‘ps.is_del‘=>0], [‘ps.is_del‘=>NULL]]);
        $purchaseSettleSheetList = $_querySettleApproved->groupBy(‘ps.wms_material_in_sheet_number‘)->all();
        return \yii\helpers\ArrayHelper::getColumn($purchaseSettleSheetList, ‘wms_material_in_sheet_number‘);
    }

    public static function getAlreadySettleCodeList2() {
        $query = self::find();
        $query->alias(‘a‘);

        // 结算完成query
        $pss_query = self::find()->alias(‘mq‘);
        $pss_query->leftJoin([
            ‘pss‘ => \core\models\PurchaseSettlementSheet::tableName()
        ], ‘mq.wms_material_in_sheet_number = pss.wms_material_in_sheet_number‘);

        $pss_query->leftJoin([
          ‘cas‘ => \core\models\CommonApproveStatus::tableName(),
        ], ‘pss.purchase_settlement_sheet_number = cas.batch_number‘);

        $pss_query->where([
            ‘pss.is_del‘ => 0,
            ‘cas.common_approve_status_current_status‘ => \core\models\DingtalkApproval::COMPLETE_APPROVAL,
        ]);

        $pss_query->groupBy([‘pss.wms_material_in_sheet_number‘]);

        $pss_query->select([
          ‘mq.wms_material_in_sheet_number‘,
          ‘sum_settle_weight‘ => ‘sum(pss.purchase_settlement_sheet_net_weight)‘,
          ‘in_sheet_weight‘ => ‘mq.wms_material_in_sheet_purchase_weight‘
        ]);

        $pss_query->having(‘in_sheet_weight = sum_settle_weight‘);

        $query->select([
            ‘a.*‘,
            ‘in_sheet_number_at_pss‘ => ‘pss.wms_material_in_sheet_number‘
        ]);
        $query->leftJoin([‘pss‘ => $pss_query], ‘a.wms_material_in_sheet_number = pss.wms_material_in_sheet_number‘);
        $in_sheet_number_list = array_filter(\yii\helpers\ArrayHelper::getColumn($query->asArray()->all(), ‘in_sheet_number_at_pss‘));
        return $in_sheet_number_list;
    }
}

3. 页面相关代码:

<?php

use yii\helpers\Html;
use yii\widgets\ActiveForm;

?>

<div id="search" class="wms-material-in-sheet-search">

    <?php $form = ActiveForm::begin([
        ‘action‘ => [‘index‘],
        ‘method‘ => ‘get‘,
    ]); ?>

    <div class="operation-more">
        <div>
            <div class="col-lg-10 common_column">
                <div class="common_column">
                    <a class="btn btn-success" href="<?= \yii\helpers\Url::to([‘create‘, ‘ist‘=>‘origin‘, ‘apply_or_wms‘=>1]) ?>"><i class="fa fa-plus" style="margin-right: 5px;"></i>原始入库</a>
                    <?= Html::a(‘<i class="fa fa-download" style="margin-right: 5px;"></i>‘.‘导出‘, [‘export‘,
                        ‘common_producer_info_id‘=>$model->common_producer_info_id,
                        ‘common_producer_herb_info_id‘=>$model->common_producer_herb_info_id,
                        ‘begin_at‘=>$model->begin_at,
                        ‘end_at‘=>$model->end_at,
                        ‘search_type‘=>$model->search_type,
                    ], [‘data-pjax‘=>0, ‘class‘ => ‘btn btn-default‘, ‘title‘=>Yii::t(‘app‘, ‘导出‘)]) ?>
                    <?= \backend\widgets\MultiPrintWidget::widget([‘viewObject‘=>$this, ‘viewUrl‘=>\yii\helpers\Url::toRoute([‘/wms-material-in-sheet/multi-print‘])]) ?>
                </div>
                <div class="ant-divider-vertical common_column"></div>
                <div class="common_column">
                    <?= \backend\widgets\StateWidget::widget([‘stateList‘=>\backend\models\WmsMaterialInSheetSearch::$stateList, ‘model‘ => $model, ‘modelRedirectStr‘=>‘/wms-material-in-sheet/index‘, ‘searchParamKeys‘=>[‘common_producer_info_id‘, ‘common_producer_herb_info_id‘, ‘begin_at‘, ‘end_at‘]]) ?>
                </div>
            </div>
            <div class="col-lg-2 common_column">
                <span class="button_more_content btn btn-more-float"><a href="javascript:void(0)" onclick="isdiplay(this)">更多筛选<span class="glyphicon glyphicon-chevron-down" aria-hidden="true"></span></a></span>
            </div>
        </div>

        <div id="sunburn_more_search" style="display: <?=$model->is_display;?>">
            <div class="row row-padding">
                <div class="col-lg-12 common-more">
                    <div class="row">
                        <div class="col-xs-3 common_column common_column_gap">
                            <?= $form->field($model, ‘common_producer_info_id‘, [
                                ‘template‘ => "{input}",
                            ])->label("基地名称")->widget(\kartik\select2\Select2::classname(), [
                                ‘name‘ => ‘common_producer_info_id‘,
                                ‘hideSearch‘ => false,
                                ‘data‘ => \yii\helpers\ArrayHelper::map(core\models\CommonProducerInfo::getCommonProducerInfoList(), ‘division_id‘, ‘common_producer_info_name‘),
                                ‘options‘ => [‘placeholder‘ => ‘请选择基地‘,‘disabled‘=>$model->disabled],
                                ‘pluginOptions‘ => [
                                    ‘maximumInputLength‘ => 100,
                                    ‘allowClear‘ => true,
                                ]
                            ]);
                            ?>
                        </div>
                        <div class="col-xs-2 common_column common_column_gap">
                            <?= $form->field($model, ‘common_producer_herb_info_id‘, [
                                ‘template‘ => "{input}",
                            ])->label("药材名称")->widget(\kartik\select2\Select2::classname(), [
                                ‘name‘ => ‘common_producer_herb_info_id‘,
                                ‘hideSearch‘ => false,
                                ‘data‘ => \yii\helpers\ArrayHelper::map(core\models\CommonProducerHerbInfo::getCommonProducerHerbInfoList(), ‘id‘, ‘common_producer_herb_info_name‘),
                                ‘options‘ => [‘placeholder‘ => ‘请选择药材‘],
                                ‘pluginOptions‘ => [
                                    ‘maximumInputLength‘ => 100,
                                    ‘allowClear‘ => true,
                                ]
                            ]);
                            ?>
                        </div>
                        <div class="col-xs-2 common_column common_column_gap">
                            <?= $form->field($model, ‘begin_at‘,[
                                ‘template‘ => "{input}",
                            ])->label(‘起始日期‘)->widget(\kartik\datetime\DateTimePicker::classname(), [
                                ‘options‘ => [
                                    ‘placeholder‘ => ‘起始日期‘,
                                ],
                                ‘readonly‘ => false,
                                ‘pluginOptions‘ => [
                                    ‘autoclose‘ => true,
                                    ‘format‘ => ‘yyyy-mm-dd‘,
                                    ‘minView‘ => 2,
                                    ‘maxView‘ => 4,
                                ]
                            ])
                            ?>
                        </div>
                        <div class="col-xs-2 common_column common_column_gap">
                            <?= $form->field($model, ‘end_at‘,[
                                ‘template‘ => "{input}",
                            ])->label(‘截止日期‘)->widget(\kartik\datetime\DateTimePicker::classname(), [
                                ‘options‘ => [
                                    ‘placeholder‘ => ‘截止日期‘,
                                ],
                                ‘readonly‘ => false,
                                ‘pluginOptions‘ => [
                                    ‘autoclose‘ => true,
                                    ‘format‘ => ‘yyyy-mm-dd‘,
                                    ‘minView‘ => 2,
                                    ‘maxView‘ => 4,
                                ]
                            ])
                            ?>
                        </div>
                        <div class="col-xs-1 common_column common_column_gap">
                            <div class="input-group">
                                <button type="submit" class="btn btn-default">查询</button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="clearfix"></div>
    </div>
    <?php ActiveForm::end(); ?>
</div>
<?php
$js = <<<JS
$(function() {
    var display = ‘{$model->is_display}‘;
    keepIsDisplay(display);
});
JS;
$this->registerJs($js);
?>

 

生产管理系统被动接受最佳实践

原文:https://www.cnblogs.com/liuzhiqaingxyz/p/10382279.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!