package com.example.bpa.view.from;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;

import com.bigkoo.pickerview.TimePickerView;
import com.example.bpa.R;
import com.example.bpa.db.QueryDB;
import com.example.bpa.helper.DateUtils;
import com.example.bpa.helper.T;
import com.example.bpa.view.adapter.ddgl_adapter;
import com.example.bpa.view.adapter.yjrz_adapter;
import com.example.bpa.view.mode.ResAlertLog;
import com.example.bpa.view.mode.ResSubOrder;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 订单管理
 */
public class ddgl_activity extends AppCompatActivity  implements View.OnClickListener{

    //region 变量
    /**
     * 返回按钮
     */
    ImageView gongneng_fanhui;
    /**
     * 标题设置
     */
    TextView gongneng_title;
    //endregion

    //region 操作变量
    /**
     * 输入框
     */
    TextView edittext;
    /**
     * 查询按钮
     */
    Button button;
    /**
     * 表格显示
     */
    ListView datatab;
    /**
     * 子订单数据
     */
    ArrayList<ResSubOrder> subOrders = new ArrayList<>();
    /**
     * 订单管理控制器
     */
    com.example.bpa.view.adapter.ddgl_adapter adapter;
    /**
     * 日期选择器
     */
    TimePickerView pvTime;
    /**
     * 开始时间-结束时间
     */
    EditText starttime, stoptime;
    TextView count;
    /**
     * 日志类型
     */
    Spinner rzlx;
    Map<String,Integer> lx_map = new LinkedHashMap<>();
    //endregion

    //region 私有函数
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ddgl);
        Init();
        initEvents();
    }
    //endregion

    //region 公共函数

    /**
     * 初始化
     */
    private void Init(){
        gongneng_fanhui = this.findViewById(R.id.gongneng_fanhui);
        gongneng_title = this.findViewById(R.id.gongneng_title);
        edittext = this.findViewById(R.id.edittext);
        button = this.findViewById(R.id.button);
        datatab = this.findViewById(R.id.datatab);
        starttime = this.findViewById(R.id.starttime);
        stoptime = this.findViewById(R.id.stoptime);
        rzlx = this.findViewById(R.id.rzlx);
        count=this.findViewById(R.id.count);
        //通过Activity.getIntent()获取当前页面接收到的Intent。 getXxxExtra方法获取Intent传递过来的数据
        String msg = getIntent().getStringExtra("data");
        gongneng_title.setText(msg);
        lx_map.put("全部",-1);
        lx_map.put("未开始",0);
        lx_map.put("制作中",1);
        lx_map.put("已制作",2);
        lx_map.put("已超时",3);
        ArrayAdapter<String> adapter2 = new ArrayAdapter<>(this, R.layout.spinner_text_item, new ArrayList<>(lx_map.keySet()));
        adapter2.setDropDownViewResource(R.layout.spinner_dropdown_item);
        rzlx.setAdapter(adapter2);

        starttime.setText(new SimpleDateFormat("yyyy-MM-dd 00:00:00").format(new Date()));
        stoptime.setText(new SimpleDateFormat("yyyy-MM-dd 23:59:59").format(new Date()));
        starttime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (pvTime != null) {
                    pvTime.show(starttime);
                }
            }
        });
        stoptime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (pvTime != null) {
                    pvTime.show(stoptime);
                }
            }
        });
        CalendarTime();
        Initdata();
    }
    /**
     * CalendarTime
     * 时间选择器
     */
    public void CalendarTime() {
        //控制时间范围(如果不设置范围，则使用默认时间1900-2100年，此段代码可注释)
        //因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11
        Calendar selectedDate = Calendar.getInstance();
        Calendar startDate = Calendar.getInstance();
        startDate.set(2023, 0, 23);
        Calendar endDate = Calendar.getInstance();
        endDate.set(2099, 11, 28);
        //时间选择器
        pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() {
            @Override
            public void onTimeSelect(Date date, View v) {//选中事件回调
                // 这里回调过来的v,就是show()方法里面所添加的 View 参数，如果show的时候没有添加参数，v则为null
                TextView btn = (TextView) v;
                btn.setText(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
            }
        })
                //年月日时分秒 的显示与否，不设置则默认全部显示
                .setType(new boolean[]{true, true, true, true, true, false})
                .setLabel("年", "月", "日", "时", "分", "秒")
                .isCenterLabel(true)
                .setDividerColor(Color.DKGRAY)
                .setContentSize(16)//字号
                .setDate(selectedDate)
                .setRangDate(startDate, endDate)
                .setDecorView(null)
                .build();
    }
    /**
     * 初始化按钮事件
     */
    private void initEvents() {
        gongneng_fanhui.setOnClickListener(this);
        button.setOnClickListener(this);
    }

    /**
     * 初始化数据加载
     */
    public void Initdata() {
        try {
            String str= starttime.getText().toString();
            String stop= stoptime.getText().toString();
            if(DateUtils.compareDate(stop,str))
            {
                T.show(ddgl_activity.this,"开始时间不能大于结束时间!!!");
                return;
            }
            String lx= rzlx.getSelectedItem().toString();
            String text= edittext.getText().toString();
            subOrders= QueryDB.GetSubOrders(str,stop, lx_map.get(lx),text);
            count.setText(subOrders.size()+"");
            adapter = new ddgl_adapter(ddgl_activity.this,R.layout.ddgl_item,subOrders);
            datatab.setAdapter(adapter);
        } catch (Exception e) {

        }
    }
    //endregion

    //region 点击事件
    /**
     * 本页面点击事件监听
     *
     * @param v
     */
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.gongneng_fanhui://返回按钮
                this.finish();
                break;
            case R.id.button://查询按钮
                Initdata();
                break;
        }
    }
    //endregion
}