금형 코드, 금형 차수 데이터 추가 및 오류 수정

This commit is contained in:
정영민
2025-05-21 18:06:54 +09:00
parent 510d701f50
commit dcd1bddc21
16 changed files with 1222 additions and 1031 deletions

View File

@@ -14,7 +14,7 @@ public class HighLighterManager : MonoBehaviour, ISingle
machines = building.floors.SelectMany(f => f.machines).ToArray();
}
public void ClickNotKPIToHighlight(Machine highLightMachine)
public void ClickMachinToHighlight(Machine highLightMachine)
{
ActiveHighLighter(highLightMachine);
}

View File

@@ -19,15 +19,11 @@ namespace CHN
private Dictionary<UI_MachineKPI, Machine> kpiToMachines = new();
private List<UI_MachineKPI> kpis = new List<UI_MachineKPI>();
private UI_MachineKPI current_MachineKPI;
public float defaultNameHeight;
public float radius;
public Vector3 originScale;
public float verticalSpacing = 100f;
public Action<Machine> onClickKPIToMachine;
public Action<SimpleField> onClickKPIToData;
public Action<SimpleField, Machine> onClickKPIToData;
[Range(0.1f, 0.8f)]
public float minScale;
@@ -77,9 +73,6 @@ namespace CHN
if (machineKPIs.ContainsKey(machine.code))
{
machine.machineKPI = machineKPIs[machine.code];
var machinePos = machine.centerPos;
machine.machineKPI.transform.position = new Vector3(machinePos.x, machinePos.y + defaultNameHeight, machinePos.z);
matchingMachines.Add(machine);
kpiToMachines.Add(machine.machineKPI, machine);
machine.SetAnimationSpeed();
@@ -91,7 +84,7 @@ namespace CHN
machineKPI.transform.SetAsLastSibling();
var currentMachine = kpiToMachines[machineKPI];
onClickKPIToMachine?.Invoke(currentMachine);
onClickKPIToData?.Invoke(machineKPI.data);
onClickKPIToData?.Invoke(machineKPI.data, currentMachine);
}
private void Update()
{

View File

@@ -5,6 +5,7 @@ using CHN;
using System;
using System.Globalization;
using WI;
using System.Linq;
public class Panel_DetailDashBoard : PanelBase
{
@@ -36,6 +37,7 @@ public class Panel_DetailDashBoard : PanelBase
private TextMeshProUGUI progressrate;
private TextMeshProUGUI porate;
private TextMeshProUGUI goodqtyrate;
#endregion
#region Slider
@@ -52,6 +54,8 @@ public class Panel_DetailDashBoard : PanelBase
private Slider Slider_goodqtyrate;
#endregion
private TextMeshProUGUI AttributeName_10;
private Image Circle_10;
private Button Button_Close;
public Action onCloseDashboard;
@@ -66,7 +70,7 @@ public class Panel_DetailDashBoard : PanelBase
onCloseDashboard?.Invoke();
gameObject.SetActive(false);
}
public void SetDetailDashBoardData(SimpleField data)
public void SetDetailDashBoardData(SimpleField data, Machine machine)
{
var canvas_popup = FindSingle<Canvas_Popup>();
if (canvas_popup.isSimpleDashboardAcitve)
@@ -74,10 +78,10 @@ public class Panel_DetailDashBoard : PanelBase
gameObject.SetActive(true);
SetTextData(data);
SetTextData(data, machine);
SetSliderData(data);
}
private void SetTextData(SimpleField data)
private void SetTextData(SimpleField data, Machine machine)
{
MachineName.SetText(SetTextData(data.machineInfo.worknm));
wordno.SetText(SetTextData(data.machineInfo.wordno));
@@ -93,7 +97,7 @@ public class Panel_DetailDashBoard : PanelBase
matcd.SetText(SetTextData(data.machineInfo.matcd));
cavity.SetText(SetTextData(data.machineInfo.cavity));
cycletime.SetText(SetTextData(data.machineInfo.cycletime));
moldData.SetText(SetTextData(data.machineInfo.MOLDCD));
planqty.SetText(SetTextData(data.machineInfo.planqty));
goalqty.SetText(SetTextData(data.machineInfo.goalqty));
workqty.SetText(SetTextData(data.machineInfo.workqty));
@@ -108,6 +112,8 @@ public class Panel_DetailDashBoard : PanelBase
goodqtyrate.SetText(DecimalPointCalculate(data.kpiDataInfo.goodqtyrate).ToString() + "%");
workdt.SetText(CorrectionMonthDay(data.machineInfo.workdt, "yyyy-MM-dd"));
SetMoldData(machine, data);
}
private void SetSliderData(SimpleField data)
{
@@ -123,6 +129,33 @@ public class Panel_DetailDashBoard : PanelBase
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)
@@ -140,7 +173,7 @@ public class Panel_DetailDashBoard : PanelBase
private bool CheckDataExists(string value)
{
if (value == null)
if (value == string.Empty || value == null)
{
return false;
}
@@ -160,7 +193,7 @@ public class Panel_DetailDashBoard : PanelBase
}
private string CorrectionMonthDay(string value, string dateForm)
{
if (value == string.Empty)
if (value == string.Empty || value == null)
{
return "-";
}
@@ -170,7 +203,7 @@ public class Panel_DetailDashBoard : PanelBase
}
private string CorrectionTime(string value, string dateForm)
{
if (value == string.Empty)
if (value == string.Empty || value == null)
{
return "-";
}

View File

@@ -28,9 +28,9 @@ public class UI_MachineKPI : UIBase, IPointerClickHandler, IPointerEnterHandler,
private TextMeshProUGUI porate;
private TextMeshProUGUI goodqtyrate;
private TextMeshProUGUI workdt;
private TextMeshProUGUI wordno;
public bool isExpand;
public string secondaryFontName = "PretendardVariable SDF";
public Action<UI_MachineKPI> onClickKPI;
@@ -39,17 +39,18 @@ public class UI_MachineKPI : UIBase, IPointerClickHandler, IPointerEnterHandler,
this.data = data;
eorate.SetText(DecimalPointCalculate(data.kpiDataInfo.eorate).ToString() + "%");
daynight.SetText(data.machineInfo.daynight);
workcd.SetText(data.machineInfo.workcd);
daynight.SetText(SetTextData(data.machineInfo.daynight));
workcd.SetText(SetTextData(data.machineInfo.workcd));
goodqtyrate.SetText(DecimalPointCalculate(data.kpiDataInfo.goodqtyrate).ToString() + "%");
porate.SetText(DecimalPointCalculate(data.kpiDataInfo.porate).ToString() +"%");
workdt.SetText(CorrectionTime(data.machineInfo.workdt, "yyyy-MM-dd"));
wordno.SetText(SetTextData(data.machineInfo.wordno));
DefaultMachineName.SetText(data.machineInfo.worknm);
ExpandMachineName.SetText(data.machineInfo.worknm);
DefaultMachineName.SetText(SetTextData(data.machineInfo.worknm));
ExpandMachineName.SetText(SetTextData(data.machineInfo.worknm));
Default_Status.color = SetStatusColor(data.machineInfo.statusnm);
Expand_Status.color = SetStatusColor(data.machineInfo.statusnm);
Default_Status.color = SetStatusColor(SetTextData(data.machineInfo.statusnm));
Expand_Status.color = SetStatusColor(SetTextData(data.machineInfo.statusnm));
}
private Color SetStatusColor(string value)
{
@@ -57,6 +58,9 @@ public class UI_MachineKPI : UIBase, IPointerClickHandler, IPointerEnterHandler,
switch (value)
{
case "-":
color = Color.black;
break;
case "°¡µ¿Áß":
color = Color.green;
break;
@@ -71,7 +75,7 @@ public class UI_MachineKPI : UIBase, IPointerClickHandler, IPointerEnterHandler,
}
private bool CheckDataExists(string value)
{
if(value == null)
if (value == null || value == string.Empty)
{
return false;
}
@@ -89,14 +93,21 @@ public class UI_MachineKPI : UIBase, IPointerClickHandler, IPointerEnterHandler,
return floatValue;
}
private string SetTextData(string value)
{
if (!CheckDataExists(value))
{
return "-";
}
return value;
}
private string CorrectionTime(string value, string dateForm)
{
if(DateTime.TryParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out var parsedDate))
{
return parsedDate.ToString(dateForm);
}
return "----/--/--";
return "-";
}
public void OnPointerClick(PointerEventData eventData)
{

View File

@@ -7,6 +7,11 @@ public class ViewManager : MonoBehaviour, ISingle
private Building building;
private OrbitalController controller;
private ViewMode preViewMode;
public float checkRadius = 0.5f;
public LayerMask wallLayer;
public float pushOutDistance = 1.0f;
public int maxPushAttempts = 10;
public override void AfterAwake()
{
building = FindSingle<Building>();
@@ -63,6 +68,12 @@ public class ViewManager : MonoBehaviour, ISingle
{
if (controller.saveTargetPositions[ViewMode.TopView] == null)
{
var pos = controller.nextPosition;
var floorStartPos = building.currentFloor.StartPoint.position;
pos.y = floorStartPos.y;
controller.nextPosition = pos;
building.SetAllFloorExternalState();
}
else
@@ -98,6 +109,8 @@ public class ViewManager : MonoBehaviour, ISingle
startPos = tourModePos;
}
controller.nextPosition = startPos;
CheckHitWall();
}
else
{
@@ -108,6 +121,7 @@ public class ViewManager : MonoBehaviour, ISingle
slider.ChangeValueFromOutside(floorIndex);
}
}
public void ChangeViewWithFloorControl(Floor currentFloor, Vector3 pos)
{
var startPos = building.currentFloor.StartPoint.position;
@@ -138,4 +152,39 @@ public class ViewManager : MonoBehaviour, ISingle
currentFloor.SetInternalState();
controller.LastPositioning(true);
}
private void CheckHitWall()
{
var targetPosition = controller.option.target.position;
if (!IsPositionBlocked(targetPosition))
return;
Vector3[] directions = { Vector3.forward, Vector3.back, Vector3.left, Vector3.right };
var foundFreeSpot = false;
for (int attempt = 0; attempt < maxPushAttempts && !foundFreeSpot; attempt++)
{
foreach (var dir in directions)
{
var candidatePos = targetPosition + dir * pushOutDistance * attempt;
if (!IsPositionBlocked(candidatePos))
{
targetPosition = candidatePos;
foundFreeSpot = true;
break;
}
}
}
if (!foundFreeSpot)
{
targetPosition = building.currentFloor.StartPoint.position;
}
controller.nextPosition = targetPosition;
}
bool IsPositionBlocked(Vector3 position)
{
return Physics.CheckSphere(position, checkRadius, wallLayer);
}
}