120 lines
4.6 KiB
C#
120 lines
4.6 KiB
C#
using System;
|
|
using System.Globalization;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using EnglewoodLAB.Extensions;
|
|
using EnglewoodLAB.Management;
|
|
using static MQTT;
|
|
|
|
namespace EnglewoodLAB.UI
|
|
{
|
|
public class MachineStatusItem : MonoBehaviour
|
|
{
|
|
public Image icon_status;
|
|
public TextMeshProUGUI worknm;
|
|
public TextMeshProUGUI status;
|
|
public TextMeshProUGUI itemcd;
|
|
public TextMeshProUGUI itemdesc;
|
|
public TextMeshProUGUI goalqty;
|
|
public TextMeshProUGUI workqty;
|
|
public TextMeshProUGUI goodqty;
|
|
public TextMeshProUGUI badqty;
|
|
public TextMeshProUGUI efficiency;
|
|
public TextMeshProUGUI goaltime;
|
|
public Image Image_Status;
|
|
|
|
public float fontSize;
|
|
public float blankSize;
|
|
|
|
public void Init()
|
|
{
|
|
transform.TryGetComponentInChildren(nameof(icon_status), out icon_status);
|
|
transform.TryGetComponentInChildren(nameof(worknm), out worknm);
|
|
transform.TryGetComponentInChildren(nameof(status), out status);
|
|
transform.TryGetComponentInChildren(nameof(itemcd), out itemcd);
|
|
transform.TryGetComponentInChildren(nameof(itemdesc), out itemdesc);
|
|
transform.TryGetComponentInChildren(nameof(goalqty), out goalqty);
|
|
transform.TryGetComponentInChildren(nameof(workqty), out workqty);
|
|
transform.TryGetComponentInChildren(nameof(goodqty), out goodqty);
|
|
transform.TryGetComponentInChildren(nameof(badqty), out badqty);
|
|
transform.TryGetComponentInChildren(nameof(efficiency), out efficiency);
|
|
transform.TryGetComponentInChildren(nameof(goaltime), out goaltime);
|
|
transform.TryGetComponentInChildren(nameof(Image_Status), out Image_Status);
|
|
}
|
|
public void SetStatusData(CompleteInfo completeInfo)
|
|
{
|
|
|
|
var currentTime = DateTime.Now.ToString("HHmm");
|
|
|
|
worknm.SetText(completeInfo.worknm);
|
|
status.SetText(completeInfo.statusnm);
|
|
SetStatusColor(completeInfo.statusnm);
|
|
itemcd.SetText(completeInfo.itemcd);
|
|
itemdesc.SetText(completeInfo.itemdesc);
|
|
goaltime.SetText(CalculateDate(currentTime, completeInfo.sttm));
|
|
|
|
goalqty.SetText(RoundToIntData(completeInfo.goalqty));
|
|
workqty.SetText(RoundToIntData(completeInfo.workqty));
|
|
goodqty.SetText(RoundToIntData(completeInfo.goodqty));
|
|
badqty.SetText(RoundToIntData(completeInfo.badqty));
|
|
|
|
efficiency.SetText(RoundToFloatData(completeInfo.efficiency));
|
|
SetStatusImageResize();
|
|
}
|
|
private string CalculateDate(string currentTimeData, string startTimeData)
|
|
{
|
|
string formattedCurrentTimeData = currentTimeData.Insert(2, ":");
|
|
string formattedStartTimeData = startTimeData.Insert(2, ":");
|
|
|
|
DateTime.TryParseExact(formattedCurrentTimeData, "HH:mm", null, DateTimeStyles.None, out var currentTime);
|
|
DateTime.TryParseExact(formattedStartTimeData, "HH:mm", null, DateTimeStyles.None, out var startTime);
|
|
|
|
var dateTime = currentTime.Subtract(startTime);
|
|
return dateTime.ToString(@"hh\:mm");
|
|
}
|
|
public string RoundToIntData(string data)
|
|
{
|
|
float.TryParse(data, out var floatData);
|
|
var intData = Mathf.RoundToInt(floatData);
|
|
|
|
return intData.ToString();
|
|
}
|
|
public string RoundToFloatData(string data)
|
|
{
|
|
float.TryParse(data, out var floatData);
|
|
var truncateData = Math.Truncate(floatData * 10) / 10;
|
|
|
|
return truncateData.ToString();
|
|
}
|
|
void SetStatusColor(string stat)
|
|
{
|
|
switch (stat)
|
|
{
|
|
case "°¡µ¿Áß":
|
|
status.color = new Color(0, 1f, 0f);
|
|
break;
|
|
case "ºñ°¡µ¿":
|
|
status.color = new Color(1f, 0, 0);
|
|
break;
|
|
case "°èȹÁ¤Áö":
|
|
status.color = new Color(1f, 1f, 1f);
|
|
break;
|
|
default:
|
|
status.color = new Color(1f, 1f, 0);
|
|
break;
|
|
}
|
|
Image_Status.color = status.color;
|
|
icon_status.color = status.color;
|
|
}
|
|
private void SetStatusImageResize()
|
|
{
|
|
var newWidth = status.text.Length * fontSize + blankSize;
|
|
var height = Image_Status.rectTransform.sizeDelta.y;
|
|
|
|
Image_Status.rectTransform.sizeDelta = new Vector2(newWidth, height);
|
|
}
|
|
}
|
|
}
|
|
|