UI 디자인 변경 및 작업 조건/시간 분석 작업 지시 번호 기능 수정

This commit is contained in:
정영민
2025-07-23 17:43:32 +09:00
parent 988c28d91d
commit ddc38acca1
11 changed files with 1328 additions and 1020 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: 59f34091de14e5248910e7f7f9fd82c1
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 35, y: 35, z: 35, w: 35}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -80,11 +80,11 @@ namespace CHN
popupCanvas.panel_completealramhistory.onCheckAlarm += topCanvas.panel_toptoolbar.SetAlarmCount;
popupCanvas.panel_completealramhistory.onOpen += popupCanvas.CurrentDashoboardClose;
popupCanvas.panel_workconditionanalysis.onDateData += httpManager.GetWorkItemCodeData;
popupCanvas.panel_workconditionanalysis.onDateData += httpManager.GetConditionWorkOrderCodeData;
popupCanvas.panel_workconditionanalysis.onSearchData += httpManager.SearchWorkConditions;
popupCanvas.panel_workconditionanalysis.onChangedDropdownValue += workConditionsManager.ChangeMainChartData;
popupCanvas.panel_worktimeanalysis.onDateData += httpManager.GetWorkItemCodeData;
popupCanvas.panel_worktimeanalysis.onDateData += httpManager.GetTimeWorkOrderCodeData;
popupCanvas.panel_worktimeanalysis.onSearchData += httpManager.SearchWorkTime;
popupCanvas.panel_totalproduction.onSelected += popupCanvas.SetChangedProductionPanel;

View File

@@ -0,0 +1,63 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class CustomTMPDropdown : TMP_Dropdown
{
public string hideItemName;
public HashSet<string> deinteractableItems = new HashSet<string>();
public void SetHideAndDeinteractableItems(string hideItemName, HashSet<string> items)
{
this.hideItemName = hideItemName;
deinteractableItems.Clear();
foreach(var item in items)
{
deinteractableItems.Add(item);
}
}
public override void OnPointerClick(UnityEngine.EventSystems.PointerEventData eventData)
{
base.OnPointerClick(eventData);
StartCoroutine(SetHideAndDeinteractableDropdownItem());
}
private IEnumerator SetHideAndDeinteractableDropdownItem()
{
yield return null;
var dropdownList = GameObject.Find("Dropdown List");
if (dropdownList == null)
yield break;
var items = dropdownList.GetComponentsInChildren<TMP_Dropdown.DropdownItem>(true).ToList();
if (items.Count > 0)
{
var hideItem = items.Find(item => item.name.Contains(hideItemName));
hideItem.gameObject.SetActive(false);
}
var deinteractableSet = new HashSet<string>(deinteractableItems);
foreach (var item in items)
{
string itemText = item.text.text.Trim();
if (deinteractableSet.Contains(itemText))
{
if (item.toggle != null)
{
item.toggle.interactable = false;
item.text.color = Color.gray;
}
}
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: ba96b51d8a1abd046a5aeccb225b31ee

View File

@@ -27,7 +27,7 @@ namespace CHN
private Button Button_EndDay;
private TextMeshProUGUI Text_StartDay;
private TextMeshProUGUI Text_EndDay;
private TMP_Dropdown Dropdown_WorkOrderNumber;
private CustomTMPDropdown Dropdown_WorkOrderNumber;
private Image Image_WorkOrderNumberLoading;
private Button Button_Search;
private RectTransform Panel_NotData;
@@ -55,7 +55,7 @@ namespace CHN
public string startDate;
public string endDate;
public string facilityCode;
public Action<string, string, string, string> onDateData;
public Action<string, string, string> onDateData;
public override void AfterAwake()
{
@@ -90,10 +90,16 @@ namespace CHN
}
private void OnClickStartDayBtn()
{
if (Image_WorkOrderNumberLoading.gameObject.activeSelf)
return;
ui_Calendar.Open(Text_StartDay);
}
private void OnClickEndDayBtn()
{
if (Image_WorkOrderNumberLoading.gameObject.activeSelf)
return;
ui_Calendar.Open(Text_EndDay);
}
private void SetDayData(TextMeshProUGUI targetText)
@@ -126,7 +132,7 @@ namespace CHN
return;
}
onDateData?.Invoke("작업 조건 분석", startDate, endDate, facilityCode);
onDateData?.Invoke(startDate, endDate, facilityCode);
}
}
@@ -144,6 +150,7 @@ namespace CHN
DateTime startDate = Convert.ToDateTime(Text_StartDay.text);
DateTime endDate = Convert.ToDateTime(Text_EndDay.text);
endDate = endDate.AddDays(+1);
string startDateString = startDate.ToString("yyyy-MM-ddTHH:mm:ssZ");
string endDateString = endDate.ToString("yyyy-MM-ddTHH:mm:ssZ");
@@ -156,8 +163,8 @@ namespace CHN
}
else
{
this.startDate = todayDate;
this.endDate = todayDate;
startDate = "";
endDate = "";
ui_Calendar.SetCalendarData(Text_StartDay, todayDate);
ui_Calendar.SetCalendarData(Text_EndDay, todayDate);
@@ -175,10 +182,19 @@ namespace CHN
Dropdown_WorkOrderNumber.ClearOptions();
List<string> data = new List<string>();
foreach(var workOrderNumber in this.itemCodeData.data)
HashSet<string> deintercatableWorkno = new HashSet<string>();
foreach (var workOrderNumber in this.itemCodeData.data)
{
data.Add(workOrderNumber.wordno);
if (!workOrderNumber.isActive)
{
deintercatableWorkno.Add(workOrderNumber.wordno);
}
}
data.Add("-- 작업 지시 번호를 선택하세요 --");
Dropdown_WorkOrderNumber.SetHideAndDeinteractableItems(data[data.Count - 1], deintercatableWorkno);
List<TMP_Dropdown.OptionData> optionList = new List<TMP_Dropdown.OptionData>();
foreach (string str in data)
@@ -186,7 +202,7 @@ namespace CHN
optionList.Add(new TMP_Dropdown.OptionData(str));
}
Dropdown_WorkOrderNumber.AddOptions(optionList);
Dropdown_WorkOrderNumber.value = 0;
Dropdown_WorkOrderNumber.value = data.Count - 1;
Image_WorkOrderNumberLoading.gameObject.SetActive(false);
}
@@ -195,6 +211,7 @@ namespace CHN
{
DateTime startDate = Convert.ToDateTime(Text_StartDay.text);
DateTime endDate = Convert.ToDateTime(Text_EndDay.text);
endDate = endDate.AddDays(+1);
string startDateString = startDate.ToString("yyyy-MM-ddTHH:mm:ssZ");
string endDateString = endDate.ToString("yyyy-MM-ddTHH:mm:ssZ");

View File

@@ -25,7 +25,7 @@ namespace CHN
private Button Button_EndDay;
private TextMeshProUGUI Text_StartDay;
private TextMeshProUGUI Text_EndDay;
private TMP_Dropdown Dropdown_WorkOrderNumber;
private CustomTMPDropdown Dropdown_WorkOrderNumber;
private Image Image_WorkOrderNumberLoading;
private Button Button_Search;
private RectTransform Panel_NotData;
@@ -45,7 +45,7 @@ namespace CHN
public string startDate;
public string endDate;
public string facilityCode;
public Action<string, string, string, string> onDateData;
public Action<string, string, string> onDateData;
public override void AfterAwake()
{
ui_Calendar = transform.GetComponentInChildren<UI_Calendar>(true);
@@ -80,10 +80,16 @@ namespace CHN
private void OnClickStartDayBtn()
{
if (Image_WorkOrderNumberLoading.gameObject.activeSelf)
return;
ui_Calendar.Open(Text_StartDay);
}
private void OnClickEndDayBtn()
{
if (Image_WorkOrderNumberLoading.gameObject.activeSelf)
return;
ui_Calendar.Open(Text_EndDay);
}
private void SetDayData(TextMeshProUGUI targetText)
@@ -118,7 +124,7 @@ namespace CHN
return;
}
onDateData?.Invoke("ÀÛ¾÷ ½Ã°£ ºÐ¼®", startDate, endDate, facilityCode);
onDateData?.Invoke(startDate, endDate, facilityCode);
}
}
public void SetFacilityCode(SimpleField simple, Machine machine)
@@ -135,6 +141,7 @@ namespace CHN
DateTime startDate = Convert.ToDateTime(Text_StartDay.text);
DateTime endDate = Convert.ToDateTime(Text_EndDay.text);
endDate = endDate.AddDays(+1);
string startDateString = startDate.ToString("yyyy-MM-ddTHH:mm:ssZ");
string endDateString = endDate.ToString("yyyy-MM-ddTHH:mm:ssZ");
@@ -147,8 +154,8 @@ namespace CHN
}
else
{
this.startDate = todayDate;
this.endDate = todayDate;
startDate = "";
endDate = "";
ui_Calendar.SetCalendarData(Text_StartDay, todayDate);
ui_Calendar.SetCalendarData(Text_EndDay, todayDate);
@@ -165,10 +172,19 @@ namespace CHN
Dropdown_WorkOrderNumber.ClearOptions();
List<string> data = new List<string>();
foreach (var workOrderNumber in itemCodeData.data)
HashSet<string> deintercatableWorkno = new HashSet<string>();
foreach (var workOrderNumber in this.itemCodeData.data)
{
data.Add(workOrderNumber.wordno);
if (!workOrderNumber.isActive)
{
deintercatableWorkno.Add(workOrderNumber.wordno);
}
}
data.Add("-- 작업 지시 번호를 선택하세요 --");
Dropdown_WorkOrderNumber.SetHideAndDeinteractableItems(data[data.Count - 1], deintercatableWorkno);
List<TMP_Dropdown.OptionData> optionList = new List<TMP_Dropdown.OptionData>();
foreach (string str in data)
@@ -176,7 +192,7 @@ namespace CHN
optionList.Add(new TMP_Dropdown.OptionData(str));
}
Dropdown_WorkOrderNumber.AddOptions(optionList);
Dropdown_WorkOrderNumber.value = 0;
Dropdown_WorkOrderNumber.value = data.Count - 1;
Image_WorkOrderNumberLoading.gameObject.SetActive(false);
}
@@ -185,6 +201,7 @@ namespace CHN
{
DateTime startDate = Convert.ToDateTime(Text_StartDay.text);
DateTime endDate = Convert.ToDateTime(Text_EndDay.text);
endDate = endDate.AddDays(+1);
string startDateString = startDate.ToString("yyyy-MM-ddTHH:mm:ssZ");
string endDateString = endDate.ToString("yyyy-MM-ddTHH:mm:ssZ");

View File

@@ -14,4 +14,5 @@ public class CodeData
{
public string wordno;
public string itemcd;
public bool isActive;
}

View File

@@ -144,11 +144,11 @@ namespace CHN
break;
}
}
public void GetWorkItemCodeData(string panelName, string startDate, string endDate, string facilityCode)
public void GetConditionWorkOrderCodeData(string startDate, string endDate, string facilityCode)
{
StartCoroutine(GetWorkItemCode(panelName, startDate, endDate, facilityCode));
StartCoroutine(GetConditionWorkOrderCode(startDate, endDate, facilityCode));
}
IEnumerator GetWorkItemCode(string panelName, string startDate, string endDate, string facilityCode)
IEnumerator GetConditionWorkOrderCode(string startDate, string endDate, string facilityCode)
{
this.startDate = startDate;
this.endDate = endDate;
@@ -168,19 +168,34 @@ namespace CHN
var payload = Encoding.UTF8.GetString(www.downloadHandler.data);
var response = JsonConvert.DeserializeObject<WorkItemCodeData>(payload);
workItemCodeData = response;
if (panelName == "작업 조건 분석")
{
onWorkConditionsItemCodeData?.Invoke(workItemCodeData);
}
else if (panelName == "작업 시간 분석")
{
onWorkTimeItemCodeData?.Invoke(workItemCodeData);
}
onWorkConditionsItemCodeData?.Invoke(workItemCodeData);
}
else
}
public void GetTimeWorkOrderCodeData(string startDate, string endDate, string facilityCode)
{
StartCoroutine(GetTimeWorkOrderCode(startDate, endDate, facilityCode));
}
IEnumerator GetTimeWorkOrderCode(string startDate, string endDate, string facilityCode)
{
this.startDate = startDate;
this.endDate = endDate;
var path = httpServer + workItemCodeAPI;
var query = $"?startDate={this.startDate}&endDate={this.endDate}&workcd={facilityCode}";
string url = path + query;
UnityWebRequest www = UnityWebRequest.Get(url);
www.SetRequestHeader("access-token", testAPIKey);
yield return www.SendWebRequest();
if (www.error == null)
{
Debug.Log(www.error);
var payload = Encoding.UTF8.GetString(www.downloadHandler.data);
var response = JsonConvert.DeserializeObject<WorkItemCodeData>(payload);
workItemCodeData = response;
onWorkTimeItemCodeData?.Invoke(workItemCodeData);
}
}
@@ -197,8 +212,6 @@ namespace CHN
var path = httpServer + workingConditionsAPI;
var json = JsonUtility.ToJson(WorkConditionRequest);
StopAllCoroutines();
StartCoroutine(WorkConditionsPost(path, json));
}
IEnumerator WorkConditionsPost(string url, string jsonData)
@@ -234,8 +247,6 @@ namespace CHN
var path = httpServer + workingTimeAPI;
var json = JsonUtility.ToJson(WorkConditionRequest);
StopAllCoroutines();
StartCoroutine(WorkTimePost(path, json));
}
IEnumerator WorkTimePost(string url, string jsonData)
@@ -259,7 +270,4 @@ namespace CHN
}
}
}
}
}

File diff suppressed because it is too large Load Diff