using System;
using System.Collections;
using System.Collections.Generic;
using FantomLib;
using LitJson;
using UnityEngine;
using UnityEngine.UI;
using static BaoBiaoDetail;

public class GongDanXQManager : MonoBehaviour
{
    public GameObject buttongotobg;
    public BaoBiaoDetail XQData;

    public Text customerName;
    public Text contact;
    public Text mobilePhone;
    public Text phone;
    public Text email;
    public Text customerAddress;
    public Text demandNumber;
    public Text projectNumber;
    public Text projectManager;
    public Text deviceModel;
    public Text deviceNumber;
    public Text manufacturingTime;



    public Text number;
    public Text woKind;
    public Text taskName;
    public Text kind;
    public Text serviceType;
    public Text acceptedBy;
    public Text description;
    public Text planStartTime;
    public Text planEndTime;
    public Text dispatch;
    public Text dispatchTime;
    



    public Text numberF;
    public Text kindF;
    public Text customerNameF;
    public Text contactF;
    public Text mobilePhoneF;
    public Text customerAddressF;
    public Text deviceModelF;
    public Text serviceTypeF;
    public Text createTime;
    public Text descriptionF;

    public Text results;
    public Text unresolved;
    public Text followup;
    public Text suggestion;
    public Text isAdequatelyPrepared;
    public Text appraiselist;
    public Text isResolved;

    public Slider attitudeScores;
    public Text attitudeScoresT;
    public Slider responseScores;
    public Text responseScoresT;
    public Slider engineerSkillScores;
    public Text engineerSkillScoresT;
    public Text situation;
    public Text customerSuggestion;
    public QianZiItem customerSignature;
    public QianZiItem solverSignature;
    public ItemChooseView itemview;
    public List<ItemChooseView> itemviewList = new List<ItemChooseView>();
    public static GongDanXQManager Instance { get;set; }

    public Text cancelReason;
    public GameObject cancelgo;
    public GameObject zhizhigo;
    public GameObject dianzigo;
    void Awake()
    {
        Instance = this;
    }
    void OnEnable()
    {
        for (int i = 0;i<itemviewList.Count;i++)
        {
            Destroy(itemviewList[i].gameObject);
        }
        itemviewList.Clear();
        JsonData jsonData =new JsonData();
        jsonData["id"] = int.Parse(ChuLiItemManager.ChooseData["id"].ToString());
        if(ChuLiItemManager.ChooseData["status"].ToString()=="3")
        {
            buttongotobg.SetActive(true);
        }
        else
        {
            buttongotobg.SetActive(false);
        }
        DataManager.Instance.GetBaoGaoItem(jsonData,(str)=>{

            JsonData d = JsonMapper.ToObject(str);
            XQData= JsonMapper.ToObject<BaoBiaoDetail>(d["data"].ToJson());

            customerName.text = XQData.demand.customerName;
            contact.text = XQData.demand.contact;
            mobilePhone.text = XQData.demand.mobilePhone;
            phone.text = XQData.demand.phone;
            email.text = XQData.demand.email;
            customerAddress.text = XQData.demand.customerAddress;
            demandNumber.text = XQData.demand.demandNumber;
            projectNumber.text = XQData.demand.projectNumber;
            projectManager.text = XQData.demand.projectManager;
            deviceModel.text = XQData.demand.deviceModel;
            deviceNumber.text = XQData.demand.deviceNumber;
             // 假设你有一个秒级时间戳(例如:1738036920 对应 2025-1-28 12:02)
            long timestamp = XQData.demand.manufacturingTime;
            
            // 转换为 DateTime
            DateTime dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
            
            // 格式化为 "2025-1-28   12:02" 这样的格式
            manufacturingTime.text =  dateTime.ToString("yyyy-M-d   HH:mm");
           
            
            number.text = XQData.workOrder.number;
            woKind.text = XQData.workOrder.woKind==1?"内部":"第三方";
            taskName.text = XQData.workOrder.taskName;
            List<string> list= TianJiWindowManager.getConfigServerTypestr( XQData.demand.kind,XQData.workOrder.serviceType);
            kind.text = list[0];
            serviceType.text =list[1];
            acceptedBy.text = XQData.workOrder.acceptedBy;
            description.text = XQData.workOrder.description;
             // 假设你有一个秒级时间戳(例如:1738036920 对应 2025-1-28 12:02)
            timestamp = XQData.workOrder.planStartTime;
            // 转换为 DateTime
            dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
            planStartTime.text =  dateTime.ToString("yyyy-M-d   HH:mm");
             // 假设你有一个秒级时间戳(例如:1738036920 对应 2025-1-28 12:02)
            timestamp = XQData.workOrder.planEndTime;
            // 转换为 DateTime
            dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
            planEndTime.text =  dateTime.ToString("yyyy-M-d   HH:mm");
             // 假设你有一个秒级时间戳(例如:1738036920 对应 2025-1-28 12:02)
            timestamp = XQData.workOrder.dispatchTime;
            // 转换为 DateTime
            dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
            dispatchTime.text =  dateTime.ToString("yyyy-M-d   HH:mm");


            EReports ereports = new EReports();
            Reports reports = new Reports();
            if(XQData.workOrder.reports!=null)
            {
                reports =XQData.workOrder.reports;
            }
            if(ChuLiItemManager.ChooseData["status"].ToString()=="3")
            {
                    cancelgo.SetActive(false);
                    zhizhigo.SetActive(false);
                    dianzigo.SetActive(false);
                    return;
            }
            if(XQData.workOrder.status == 99)
            {
                cancelReason.text = XQData.workOrder.cancelReason;
                cancelgo.SetActive(true);
                zhizhigo.SetActive(false);
                dianzigo.SetActive(false);
            }
            else if(reports.reportsType==1)
            {

                cancelgo.SetActive(false);
                zhizhigo.SetActive(true);
                dianzigo.SetActive(false);
            }
            else
            {
                cancelgo.SetActive(false);
                zhizhigo.SetActive(false);
                dianzigo.SetActive(true);
               
                numberF.text =XQData.workOrder.number;

                kindF.text = TianJiWindowManager.getConfigstr(XQData.demand.kind,0,0)[0].ToString(); 

                customerNameF.text = XQData.demand.customerName;
                contactF.text = XQData.demand.contact;
                mobilePhoneF.text = XQData.demand.mobilePhone;
                customerAddressF.text = XQData.demand.customerAddress;
                
                if(reports.reportsType==2)
                {
                    ereports = XQData.workOrder.reports.eReports;
                }
                deviceModelF.text = TianJiWindowManager.Instance.dtdlist.strings[ereports.deviceType];
  
                serviceType.text = TianJiWindowManager.getConfigServerTypestr(XQData.demand.kind,XQData.workOrder.serviceType)[1].ToString();

            
                // 假设你有一个秒级时间戳(例如:1738036920 对应 2025-1-28 12:02)
                timestamp = XQData.workOrder.createTime;
                
                // 转换为 DateTime
                dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
                
                // 格式化为 "2025-1-28   12:02" 这样的格式
                createTime.text =  dateTime.ToString("yyyy-M-d   HH:mm");

                description.text = XQData.workOrder.description;
                
                if(ereports.serviceTimeDetail!=null)
                {
                    for (int i=0;i<ereports.serviceTimeDetail.Count;i++)
                    {
                        addItem(ereports.serviceTimeDetail[i].date,ereports.serviceTimeDetail[i].startTime,ereports.serviceTimeDetail[i].endTime,ereports.serviceTimeDetail[i].restDuration,ereports.serviceTimeDetail[i].waitingDuration);
                    }
                }
                

                results.text = ereports.results;
                unresolved.text = ereports.unresolved;
                followup.text = ereports.followup;
                suggestion.text = ereports.suggestion;
                switch (ereports.appraise)
                {
                    case 1:
                        appraiselist.text= "满意";
                    break;  
                    case 2:
                        appraiselist.text= "一般";
                    break;
                    default:
                        appraiselist.text= "不满意";
                    break;
                }
                isAdequatelyPrepared.text = ereports.isAdequatelyPrepared?"是":"否";
                isResolved.text  = ereports.isResolved?"是":"否";

                attitudeScores.value = ereports.attitudeScores;
                attitudeScoresT.text = ereports.attitudeScores+"分";

                responseScores.value = ereports.responseScores;
                responseScoresT.text = ereports.responseScores+"分";

                engineerSkillScores.value = ereports.engineerSkillScores;
                engineerSkillScoresT.text = ereports.engineerSkillScores+"分";
                situation.text = ereports.situation;
                customerSuggestion.text = ereports.customerSuggestion;

                
                if(ereports.customerSignature!="")
                {
                    customerSignature.downloadimg(ereports.customerSignature);
                }
                if(ereports.solverSignature!="")
                {
                    solverSignature.downloadimg(ereports.solverSignature);
                }
                customerSignature.GetComponent<RawImage>().texture = customerSignature.defaultTexture;
                solverSignature.GetComponent<RawImage>().texture = solverSignature.defaultTexture;
                    
            }

        });
    }

    public void GotoXQGD()
    {
        XQGongdanManager.id = XQData.demand.id;
        QuanJuBackManager.Instance.nowWindow = GongDanWindowManager.Instance.XQXQ;
        QuanJuBackManager.Instance.setStack(GongDanWindowManager.Instance.XQGo);

        TopWindowManager.Instance.showTitle(TianJiWindowManager.Instance.GetTextByKey("110009"));
        GongDanWindowManager.Instance.gotoXQXQ();
    }
    public void GotoShangchuanbaogao()
    {
        QuanJuBackManager.Instance.nowWindow = GongDanWindowManager.Instance.BaoGaogo;
        QuanJuBackManager.Instance.setStack(GongDanWindowManager.Instance.MainGo);

        TopWindowManager.Instance.showTitle(TianJiWindowManager.Instance.GetTextByKey("110009"));
        GongDanWindowManager.Instance.gotoBaoGao();
    }
    public void addItem(string a,string b, string c,string d,string e)
    {
        ItemChooseView newitem = GameObject.Instantiate(itemview,itemview.transform.parent);
        newitem.init(a,b,c,d,e);
        newitem.gameObject.SetActive(true);
        newitem.transform.SetSiblingIndex(1);
        itemviewList.Add(newitem);
    }
}