Files
ChunilENG/Assets/WorkSpace/Personal/JYM/Panel_DetailDashBoard.cs
2025-04-24 08:36:29 +09:00

160 lines
6.1 KiB
C#

using UnityEngine;
using TMPro;
using UnityEngine.UI;
using CHN;
using System;
using System.Globalization;
using WI;
public class Panel_DetailDashBoard : PanelBase
{
#region TextMeshProUGUI
private TextMeshProUGUI MachineName;
private TextMeshProUGUI wordno;
private TextMeshProUGUI sttm;
private TextMeshProUGUI totm;
private TextMeshProUGUI workseq;
private TextMeshProUGUI daynight;
private TextMeshProUGUI statusnm;
private TextMeshProUGUI workcd;
private TextMeshProUGUI itemcd;
private TextMeshProUGUI itemdesc;
private TextMeshProUGUI pjtcd;
private TextMeshProUGUI matcd;
private TextMeshProUGUI cavity;
private TextMeshProUGUI cycletime;
private TextMeshProUGUI moldData;
private TextMeshProUGUI eorate;
private TextMeshProUGUI workdt;
private TextMeshProUGUI planqty;
private TextMeshProUGUI goalqty;
private TextMeshProUGUI workqty;
private TextMeshProUGUI goodqty;
private TextMeshProUGUI badqty;
private TextMeshProUGUI badrate;
private TextMeshProUGUI efficiency;
private TextMeshProUGUI progressrate;
private TextMeshProUGUI porate;
private TextMeshProUGUI goodqtyrate;
#endregion
#region Slider
private Slider Slider_eorate;
private Slider Slider_planqty;
private Slider Slider_goalqty;
private Slider Slider_workqty;
private Slider Slider_goodqty;
private Slider Slider_badqty;
private Slider Slider_badrate;
private Slider Slider_efficiency;
private Slider Slider_progressrate;
private Slider Slider_porate;
private Slider Slider_goodqtyrate;
#endregion
private Button Button_Close;
public Action onCloseDashboard;
public override void AfterAwake()
{
Button_Close.onClick.AddListener(OnClickCloseButton);
gameObject.SetActive(false);
}
private void OnClickCloseButton()
{
onCloseDashboard?.Invoke();
gameObject.SetActive(false);
}
public void SetDetailDashBoardData(SimpleField data)
{
var canvas_popup = FindSingle<Canvas_Popup>();
if (canvas_popup.isSimpleDashboardAcitve)
return;
gameObject.SetActive(true);
SetTextData(data);
SetSliderData(data);
}
private void SetTextData(SimpleField data)
{
MachineName.SetText(data.machineInfo.worknm);
wordno.SetText(data.machineInfo.wordno);
sttm.SetText(CorrectionTime(data.machineInfo.sttm, "hh:mm"));
totm.SetText(CorrectionTime(data.machineInfo.totm, "hh:mm"));
daynight.SetText(data.machineInfo.daynight);
workseq.SetText(data.machineInfo.workseq);
statusnm.SetText(data.machineInfo.statusnm);
workcd.SetText(data.machineInfo.workcd);
itemcd.SetText(data.machineInfo.itemcd);
itemdesc.SetText(data.machineInfo.itemdesc);
pjtcd.SetText(data.machineInfo.pjtcd);
matcd.SetText(data.machineInfo.matcd);
cavity.SetText(data.machineInfo.cavity);
cycletime.SetText(data.machineInfo.cycletime);
moldData.SetText(data.machineInfo.MOLDCD);
planqty.SetText(data.machineInfo.planqty);
goalqty.SetText(data.machineInfo.goalqty);
workqty.SetText(data.machineInfo.workqty);
goodqty.SetText(data.machineInfo.goodqty);
badqty.SetText(data.machineInfo.badqty);
badrate.SetText(DecimalPointCalculate(data.machineInfo.badrate).ToString() + "%");
efficiency.SetText(DecimalPointCalculate(data.machineInfo.efficiency).ToString() + "%");
progressrate.SetText(DecimalPointCalculate(data.machineInfo.progressrate).ToString() + "%");
eorate.SetText(DecimalPointCalculate(data.kpiDataInfo.eorate).ToString() + "%");
porate.SetText(DecimalPointCalculate(data.kpiDataInfo.porate).ToString() + "%");
goodqtyrate.SetText(DecimalPointCalculate(data.kpiDataInfo.goodqtyrate).ToString() + "%");
workdt.SetText(CorrectionTime(data.machineInfo.workdt, "yyyy-MM-dd"));
}
private void SetSliderData(SimpleField data)
{
SetSliderValue(Slider_eorate, 100f, DecimalPointCalculate(data.kpiDataInfo.eorate));
SetSliderValue(Slider_planqty, DecimalPointCalculate(data.machineInfo.planqty), DecimalPointCalculate(data.machineInfo.planqty));
SetSliderValue(Slider_goalqty, DecimalPointCalculate(data.machineInfo.planqty), DecimalPointCalculate(data.machineInfo.goalqty));
SetSliderValue(Slider_workqty, DecimalPointCalculate(data.machineInfo.planqty), DecimalPointCalculate(data.machineInfo.workqty));
SetSliderValue(Slider_goodqty, DecimalPointCalculate(data.machineInfo.planqty), DecimalPointCalculate(data.machineInfo.goodqty));
SetSliderValue(Slider_badqty, DecimalPointCalculate(data.machineInfo.planqty), DecimalPointCalculate(data.machineInfo.badqty));
SetSliderValue(Slider_badrate, 100f, DecimalPointCalculate(data.machineInfo.badrate));
SetSliderValue(Slider_efficiency, 100f, DecimalPointCalculate(data.machineInfo.efficiency));
SetSliderValue(Slider_progressrate, 100f, DecimalPointCalculate(data.machineInfo.progressrate));
SetSliderValue(Slider_porate, 100f, DecimalPointCalculate(data.kpiDataInfo.porate));
SetSliderValue(Slider_goodqtyrate, 100f, DecimalPointCalculate(data.kpiDataInfo.goodqtyrate));
}
private void SetSliderValue(Slider slider, float max, float value)
{
slider.minValue = 0f;
slider.maxValue = max;
slider.value = value;
}
private bool CheckDataExists(string value)
{
if (value == null)
{
return false;
}
return true;
}
private float DecimalPointCalculate(string value)
{
if (!CheckDataExists(value))
{
return 0f;
}
var originFloatValue = float.Parse(value);
var floatValue = Mathf.Round(originFloatValue * 10f) / 10f;
return floatValue;
}
private string CorrectionTime(string value, string dateForm)
{
DateTime.TryParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out var parsedDate);
return parsedDate.ToString(dateForm);
}
}