KevinProvincialOfficeCrontab.php 8.6 KB
<?php

namespace app\api\controller\reservoir;

use app\common\controller\Api;
use app\common\helper\HttpHelper;
use fast\Http;
use function GuzzleHttp\Psr7\str;
use think\Request;
use think\Db;
use qx\Qx;
use addons\alisms\controller\Index;

set_time_limit(0);

/**
 * 对接省厅的定时任务
 * Class KevinProvincialOfficeCronHour
 * @package app\api\controller\reservoir
 */
class KevinProvincialOfficeCrontab extends Api
{
    protected $noNeedLogin = '*';
    protected $noNeedRight = '*';

    public function _initialize()
    {
        parent::_initialize(); // TODO: Change the autogenerated stub
    }

    /**
     * 7779、每小时推送蒙自市的所有水库设备数据到省厅
     */
    public function hour_push()
    {

        //所有水库信息
        $w = [];
        $w["b.RSCD"] = ["neq", ""];
        $w["b.STCD"] = ["neq", ""];
        $w["b.client_id"] = ["neq", ""];
        $w["b.client_secret"] = ["neq", ""];

        $list = Db::name("reservoir_list")->alias("a")
            ->join("reservoir_provincial_office_token b", "b.reservoir_id=a.id")
            ->where($w)
            ->order("a.id asc")
            ->column("a.id");

        if (!empty($list)) {
            foreach ($list as $k => $v) {
                $url = "";
                //循环上报处理水库水位、雨量、渗流测点、渗流、渗压测点、渗压数据
                //水位
                $url = "https://www.ynzhsk.cn/api/reservoir/kevin_provincial_office/pushOBZ" . "?skid=" . $v;
                HttpHelper::get($url);
                //雨量
                $url = "https://www.ynzhsk.cn/api/reservoir/kevin_provincial_office/pushOBP" . "?skid=" . $v;
                HttpHelper::get($url);
                //渗流测点
                $url = "https://www.ynzhsk.cn/api/reservoir/kevin_provincial_office/pushSPQNMP" . "?skid=" . $v;
                HttpHelper::get($url);
                //渗流
                $url = "https://www.ynzhsk.cn/api/reservoir/kevin_provincial_office/pushSPQN" . "?skid=" . $v;
                HttpHelper::get($url);
                //渗压测点
                $url = "https://www.ynzhsk.cn/api/reservoir/kevin_provincial_office/pushSPPRMP" . "?skid=" . $v;
                HttpHelper::get($url);
                //渗压数据
                $url = "https://www.ynzhsk.cn/api/reservoir/kevin_provincial_office/pushSPPR" . "?skid=" . $v;
                HttpHelper::get($url);
            }
        }
        echo date("Y-m-d H:i:s") . "运行完毕";
        die;
    }

    /***
     * 处理保存的日志数据,删除24小时前的记录
     */
    public function del_provincial_office_push_log()
    {
        $time = strtotime('-1 day', time());
        $list = Db::name('reservoir_provincial_office_push_log')
            ->where("createtime<" . $time)
            ->select();
        if ($list) {
            //把数据保存到总表,然后删除过期数据
            foreach ($list as $k => $v) {
                $data = $v;
                unset($data['id']);
                Db::name('reservoir_provincial_office_push_logall')->insertGetId($data);
                $rs = Db::name('reservoir_provincial_office_push_log')
                    ->where(['id' => $v['id']])
                    ->delete();
            }
        }

        $this->success('执行成功', $rs);
    }

    /**
     * 上传到省平台 水位
     * @return void
     */
    public function pushwater(){
        //所有水库信息
        $w = [];
        $w["b.RSCD"] = ["neq", ""];
        $w["b.STCD"] = ["neq", ""];
        $w["b.client_id"] = ["neq", ""];
        $w["b.client_secret"] = ["neq", ""];

        $list = Db::name("reservoir_list")->alias("a")
            ->join("reservoir_provincial_office_token b", "b.reservoir_id=a.id")
            ->where($w)
            ->order("a.id asc")
            ->column("a.id");
        foreach ($list as $k=>$v){
            $kevin_provincial_office= new KevinProvincialOffice();
            $res=$kevin_provincial_office->pushOBZ($v);
        }
        echo date("Y-m-d H:i:s") . "运行完毕";
        die;
    }

    /**
     * 上传到省平台 雨量
     * @return void
     */
    public function pushrainfall(){
        //所有水库信息
        $w = [];
        $w["b.RSCD"] = ["neq", ""];
        $w["b.STCD"] = ["neq", ""];
        $w["b.client_id"] = ["neq", ""];
        $w["b.client_secret"] = ["neq", ""];

        $list = Db::name("reservoir_list")->alias("a")
            ->join("reservoir_provincial_office_token b", "b.reservoir_id=a.id")
            ->where($w)
            ->order("a.id asc")
            ->column("a.id");
        foreach ($list as $k=>$v){
            $kevin_provincial_office= new KevinProvincialOffice();
            $res=$kevin_provincial_office->pushOBP($v);
        }
        echo date("Y-m-d H:i:s") . "运行完毕";
        die;
    }


    /**
     * 上传到省平台 渗流测点
     * @return void
     */
    public function pushSPQNMP(){
        //所有水库信息
        $w = [];
        $w["b.RSCD"] = ["neq", ""];
        $w["b.STCD"] = ["neq", ""];
        $w["b.client_id"] = ["neq", ""];
        $w["b.client_secret"] = ["neq", ""];

        $list = Db::name("reservoir_list")->alias("a")
            ->join("reservoir_provincial_office_token b", "b.reservoir_id=a.id")
            ->where($w)
            ->order("a.id asc")
            ->column("a.id");
        foreach ($list as $k=>$v){
            $kevin_provincial_office= new KevinProvincialOffice();
            $res=$kevin_provincial_office->pushSPQNMP($v);
        }
        echo date("Y-m-d H:i:s") . "运行完毕";
        die;
    }

    /**
     * 上传到省平台 渗流
     * @return void
     */
    public function pushSPQN(){
        //所有水库信息
        $w = [];
        $w["b.RSCD"] = ["neq", ""];
        $w["b.STCD"] = ["neq", ""];
        $w["b.client_id"] = ["neq", ""];
        $w["b.client_secret"] = ["neq", ""];

        $list = Db::name("reservoir_list")->alias("a")
            ->join("reservoir_provincial_office_token b", "b.reservoir_id=a.id")
            ->where($w)
            ->order("a.id asc")
            ->column("a.id");
        foreach ($list as $k=>$v){
            $kevin_provincial_office= new KevinProvincialOffice();
            $res=$kevin_provincial_office->pushSPQN($v);
        }
        echo date("Y-m-d H:i:s") . "运行完毕";
        die;
    }

    /**
     * 上传到省平台 渗压测点
     * @return void
     */
    public function pushSPPRMP(){
        //所有水库信息
        $w = [];
        $w["b.RSCD"] = ["neq", ""];
        $w["b.STCD"] = ["neq", ""];
        $w["b.client_id"] = ["neq", ""];
        $w["b.client_secret"] = ["neq", ""];

        $list = Db::name("reservoir_list")->alias("a")
            ->join("reservoir_provincial_office_token b", "b.reservoir_id=a.id")
            ->where($w)
            ->order("a.id asc")
            ->column("a.id");
        foreach ($list as $k=>$v){
            $kevin_provincial_office= new KevinProvincialOffice();
            $res=$kevin_provincial_office->pushSPPRMP($v);
        }
        echo date("Y-m-d H:i:s") . "运行完毕";
        die;
    }

    /**
     * 上传到省平台 渗压数据
     * @return void
     */
    public function pushSPPR(){
        //所有水库信息
        $w = [];
        $w["b.RSCD"] = ["neq", ""];
        $w["b.STCD"] = ["neq", ""];
        $w["b.client_id"] = ["neq", ""];
        $w["b.client_secret"] = ["neq", ""];

        $list = Db::name("reservoir_list")->alias("a")
            ->join("reservoir_provincial_office_token b", "b.reservoir_id=a.id")
            ->where($w)
            ->order("a.id asc")
            ->column("a.id");
        foreach ($list as $k=>$v){
            $kevin_provincial_office= new KevinProvincialOffice();
            $res=$kevin_provincial_office->pushSPPR($v);
        }
        echo date("Y-m-d H:i:s") . "运行完毕";
        die;
    }

    /**
     * 上传到省平台 渗压数据
     * @return void
     */
    public function pushGNSShorizon(){
        //所有水库信息
        $w = [];
        $w["b.RSCD"] = ["neq", ""];
        $w["b.STCD"] = ["neq", ""];
        $w["b.client_id"] = ["neq", ""];
        $w["b.client_secret"] = ["neq", ""];

        $list = Db::name("reservoir_list")->alias("a")
            ->join("reservoir_provincial_office_token b", "b.reservoir_id=a.id")
            ->where($w)
            ->order("a.id asc")
            ->column("a.id");
        foreach ($list as $k=>$v){
            $kevin_provincial_office= new KevinProvincialOffice();
            $res=$kevin_provincial_office->pushGNSShorizon($v);
        }
        echo date("Y-m-d H:i:s") . "运行完毕";
        die;
    }
}