Files
ChunilENG/Assets/WorkSpace/Personal/JYM/Panel_DetailDashBoard.cs

215 lines
7.9 KiB
C#

using UnityEngine;
using TMPro;
using UnityEngine.UI;
using CHN;
using System;
using System.Globalization;
using WI;
using System.Linq;
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 TextMeshProUGUI AttributeName_10;
private Image Circle_10;
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, Machine machine)
{
var canvas_popup = FindSingle<Canvas_Popup>();
if (canvas_popup.isSimpleDashboardAcitve)
return;
gameObject.SetActive(true);
SetTextData(data, machine);
SetSliderData(data);
}
private void SetTextData(SimpleField data, Machine machine)
{
MachineName.SetText(SetTextData(data.machineInfo.worknm));
wordno.SetText(SetTextData(data.machineInfo.wordno));
sttm.SetText(CorrectionTime(data.machineInfo.sttm, "hh:mm"));
totm.SetText(CorrectionTime(data.machineInfo.totm, "hh:mm"));
daynight.SetText(SetTextData(data.machineInfo.daynight));
workseq.SetText(SetTextData(data.machineInfo.workseq));
statusnm.SetText(SetTextData(data.machineInfo.statusnm));
workcd.SetText(SetTextData(data.machineInfo.workcd));
itemcd.SetText(SetTextData(data.machineInfo.itemcd));
itemdesc.SetText(SetTextData(data.machineInfo.itemdesc));
pjtcd.SetText(SetTextData(data.machineInfo.pjtcd));
matcd.SetText(SetTextData(data.machineInfo.matcd));
cavity.SetText(SetTextData(data.machineInfo.cavity));
cycletime.SetText(SetTextData(data.machineInfo.cycletime));
planqty.SetText(SetTextData(data.machineInfo.planqty));
goalqty.SetText(SetTextData(data.machineInfo.goalqty));
workqty.SetText(SetTextData(data.machineInfo.workqty));
goodqty.SetText(SetTextData(data.machineInfo.goodqty));
badqty.SetText(SetTextData(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(CorrectionMonthDay(data.machineInfo.workdt, "yyyy-MM-dd"));
SetMoldData(machine, data);
}
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 SetMoldData(Machine machine, SimpleField data)
{
var moldDataTitle = "";
var moldDataValue = "";
if (machine.typeOptions.Count() > 1)
{
Circle_10.gameObject.SetActive(true);
if (machine.typeOptions[1].Contains("엔겔") || machine.typeOptions[1].Contains("스미토모"))
{
moldDataTitle = "금형 차수";
moldDataValue = data.machineInfo.moldseq;
}
else if (machine.typeOptions[1].Contains("우진"))
{
moldDataTitle = "금형 코드";
moldDataValue = data.machineInfo.moldcd;
}
}
else
{
Circle_10.gameObject.SetActive(false);
}
AttributeName_10.SetText(moldDataTitle);
moldData.SetText(moldDataValue);
}
private string SetTextData(string value)
{
if (value == string.Empty || value == null)
{
return "-";
}
return value;
}
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 == string.Empty || 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 CorrectionMonthDay(string value, string dateForm)
{
if (value == string.Empty || value == null)
{
return "-";
}
DateTime.TryParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out var parsedDate);
return parsedDate.ToString(dateForm);
}
private string CorrectionTime(string value, string dateForm)
{
if (value == string.Empty || value == null)
{
return "-";
}
DateTime.TryParseExact(value, "hhmm", CultureInfo.InvariantCulture, DateTimeStyles.None, out var parsedDate);
return parsedDate.ToString(dateForm);
}
}