작업 진행 현황판 UI 기능 개발

This commit is contained in:
정영민
2025-03-17 14:35:34 +09:00
parent e19619c53b
commit 3ac2c52d08
12 changed files with 5589 additions and 41 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -0,0 +1,153 @@
fileFormatVersion: 2
guid: 5cd2354d7ff2596489aec6d4ae577832
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
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: 0, y: 0, z: 0, w: 0}
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: 3
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: 3
buildTarget: WebGL
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: 3
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
- serializedVersion: 3
buildTarget: Android
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: 3
buildTarget: Server
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: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 31cf56547e9b8c94e8b4232098fe3a7d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -40,6 +40,7 @@ namespace CHN
topCanvas.panel_toptoolbar.GetFloor = building.GetFloor;
topCanvas.panel_toptoolbar.onClickAlarms += popupCanvas.panel_completealramhistory.SetActive;
topCanvas.panel_toptoolbar.onClickScreenInitialization += SceneReLoad;
topCanvas.panel_toptoolbar.onClickWorkProgress += popupCanvas.panel_workprogressstatus.Open;
topCanvas.panel_toptoolbar.onClickProductionProgress += popupCanvas.panel_injectionproduction.Open;
topCanvas.panel_toptoolbar.onClickAssemblyProgress += popupCanvas.panel_assemblyproduction.Open;
topCanvas.panel_toptoolbar.onClickSetting += popupCanvas.panel_menu.Open;
@@ -80,9 +81,11 @@ namespace CHN
mqttManager.onMachineData += datamanager.MachineMatching;
mqttManager.onMachineData += completeTimeManager.SetCurrentData;
mqttManager.onMachineData += productionStatusManager.SetFloorProductionStatus;
mqttManager.onWorkshopData += productionStatusManager.SetWorkProgressStatus;
productionStatusManager.onFirstFloorInfo += popupCanvas.panel_injectionproduction.SetProductionStatus;
productionStatusManager.onSecondFloorInfo += popupCanvas.panel_assemblyproduction.SetProductionStatus;
productionStatusManager.onWorkShopInfo += popupCanvas.panel_workprogressstatus.SetWorkProgressStatus;
productionStatusManager.onActiveFirstBoard += popupCanvas.panel_injectionproduction.Open;
productionStatusManager.onActiveSecondBoard += popupCanvas.panel_assemblyproduction.Open;

View File

@@ -20,6 +20,8 @@ namespace CHN
public Action<List<CompleteInfo>> onFirstFloorInfo;
public Action<List<CompleteInfo>> onSecondFloorInfo;
public Action<List<WorkShopInfo>> onWorkShopInfo;
public Action onActiveFirstBoard;
public Action onActiveSecondBoard;
@@ -28,6 +30,10 @@ namespace CHN
building = FindSingle<Building>();
}
public void SetWorkProgressStatus(List<WorkShopInfo> workShopInfos)
{
onWorkShopInfo?.Invoke(workShopInfos);
}
public void SetFloorProductionStatus(List<CompleteInfo> completeInfos)
{
productionStatusInfos = completeInfos;

View File

@@ -17,6 +17,7 @@ namespace CHN
public Panel_WorkTimeAnalysis panel_worktimeanalysis;
public Panel_InjectionProduction panel_injectionproduction;
public Panel_AssemblyProduction panel_assemblyproduction;
public Panel_WorkProgressStatus panel_workprogressstatus;
public Panel_MiniMap panel_minimap;
[Label(typeof(UI_WorkAnalysis),nameof(UI_WorkAnalysis))]
public UI_WorkAnalysis ui_workanalysis;

View File

@@ -1,18 +1,92 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using static MQTT;
using WI;
public class Panel_WorkProgressStatus : MonoBehaviour
public class Panel_WorkProgressStatus : PanelBase
{
// Start is called before the first frame update
void Start()
{
}
public Dictionary<string, UI_WorkStatusItem> workStatuses = new Dictionary<string, UI_WorkStatusItem>();
private Panel_Effect effect;
private UI_WorkStatusItem prf_workStatusItem;
public ScrollRect ScrollView_StatusItems;
public Button CloseButton;
public TextMeshProUGUI CurrentDate;
public TextMeshProUGUI CurrentTime;
// Update is called once per frame
void Update()
public float fadeTime;
public override void AfterAwake()
{
prf_workStatusItem = Resources.Load<UI_WorkStatusItem>("Prefabs/UI/UI_WorkStatusItem");
CloseButton.onClick.AddListener(Close);
SetDate();
Close();
}
public void Update()
{
SetTime();
}
public void Open()
{
effect.gameObject.SetActive(true);
gameObject.SetActive(true);
StopAllCoroutines();
StartCoroutine(ScaleUp());
}
public void Close()
{
effect.gameObject.SetActive(false);
gameObject.SetActive(false);
gameObject.transform.localScale = Vector3.zero;
}
public void SetWorkProgressStatus(List<WorkShopInfo> workShopInfos)
{
bool odd = true;
foreach (var workShopInfo in workShopInfos)
{
if (!workStatuses.ContainsKey(workShopInfo.groupcd))
{
var workStatusItem = Instantiate(prf_workStatusItem, ScrollView_StatusItems.content);
workStatuses.Add(workShopInfo.groupcd, workStatusItem);
}
if (odd)
{
workStatuses[workShopInfo.groupcd].SetStatusData(workShopInfo, new Color(0.07058824f, 0.1294118f, 0.2941177f));
}
else
{
workStatuses[workShopInfo.groupcd].SetStatusData(workShopInfo, new Color(0.04313726f, 0.09019608f, 0.2235294f));
}
odd = !odd;
}
}
public void SetDate()
{
CurrentDate.text = DateTime.Now.ToString("yyyy.MM.dd");
}
public void SetTime()
{
CurrentTime.text = DateTime.Now.ToString("HH:mm");
}
IEnumerator ScaleUp()
{
float timer = 0f;
float percent = 0f;
while (percent < 1)
{
timer += Time.deltaTime;
percent = timer / fadeTime;
transform.localScale = Vector3.Lerp(transform.localScale, Vector3.one, percent);
yield return null;
}
}
}

View File

@@ -0,0 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using static MQTT;
using WI;
using UnityEngine.UI;
public class UI_WorkStatusItem : UIBase
{
private TextMeshProUGUI groupcd;
private TextMeshProUGUI groupnm;
private TextMeshProUGUI mchcnt;
private TextMeshProUGUI planqty;
private TextMeshProUGUI workqty;
private TextMeshProUGUI goodqty;
private TextMeshProUGUI badqty;
private TextMeshProUGUI badrate;
private TextMeshProUGUI progressrate;
private Image background;
public void SetStatusData(WorkShopInfo workshopInfo, Color color)
{
background = GetComponent<Image>();
groupcd.SetText(workshopInfo.groupcd);
groupnm.SetText(workshopInfo.groupnm);
mchcnt.SetText(workshopInfo.mchcnt);
planqty.SetText(workshopInfo.planqty);
workqty.SetText(workshopInfo.workqty);
goodqty.SetText(workshopInfo.goodqty);
badqty.SetText(workshopInfo.badqty);
badrate.SetText(workshopInfo.badrate);
progressrate.SetText(workshopInfo.progressrate);
background.color = color;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7c3791ab1f033574e8f2ce1733edb9df
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -803,7 +803,7 @@
"ptotm": "2025-03-19 07:57:24",
"psttm": "2025-03-11 08:03:31"
},
"isCheck": true
"isCheck": false
},
{
"completeInfo": {
@@ -922,7 +922,7 @@
"worknm": "GF6 C/VB LINE-1",
"workseq": "1",
"status": "1",
"statusnm": "가동",
"statusnm": "가동",
"itemcd": "24295087",
"itemdesc": "COVER ASM-C/VLV BODY",
"pjtcd": "GF6",
@@ -957,7 +957,7 @@
"worknm": "GF9 C/VB LINE",
"workseq": "1",
"status": "1",
"statusnm": "가동",
"statusnm": "가동",
"itemcd": "24049859-GMA",
"itemdesc": "COVER ASM-C/VLV BODY",
"pjtcd": "GF9",
@@ -992,7 +992,7 @@
"worknm": "CVT C/VB LINE",
"workseq": "1",
"status": "4",
"statusnm": "가동",
"statusnm": "가동",
"itemcd": "00000000",
"itemdesc": "None",
"pjtcd": "None",
@@ -1062,7 +1062,7 @@
"worknm": "SGE W/O LINE",
"workseq": "1",
"status": "1",
"statusnm": "가동",
"statusnm": "가동",
"itemcd": "12707589-GMA",
"itemdesc": "OUTLET ASM WATER",
"pjtcd": "SGE",
@@ -1097,7 +1097,7 @@
"worknm": "CSS W/O LINE",
"workseq": "1",
"status": "1",
"statusnm": "가동",
"statusnm": "가동",
"itemcd": "55513502",
"itemdesc": "OUTLET ASM-WAT",
"pjtcd": "CSS PRIME",
@@ -1132,7 +1132,7 @@
"worknm": "U/SONIC WELD-1",
"workseq": "2",
"status": "4",
"statusnm": "가동",
"statusnm": "가동",
"itemcd": "24051088-KOR",
"itemdesc": "SCOOP ASM-DRV LINK LUB",
"pjtcd": "GF6",
@@ -1167,7 +1167,7 @@
"worknm": "U/SONIC WELD-2",
"workseq": "1",
"status": "1",
"statusnm": "가동",
"statusnm": "가동",
"itemcd": "24298736",
"itemdesc": "SCOOP ASM-DRV LINK LUB",
"pjtcd": "GF9",
@@ -1272,7 +1272,7 @@
"worknm": "INSULATOR-ENG FFRT CVR",
"workseq": "1",
"status": "4",
"statusnm": "가동",
"statusnm": "가동",
"itemcd": "12713791",
"itemdesc": "INSULATOR-ENG FFRT CVR",
"pjtcd": "CSS PRIME",
@@ -1412,7 +1412,7 @@
"worknm": "최종검사-02",
"workseq": "1",
"status": "1",
"statusnm": "가동중",
"statusnm": "휴식시간",
"itemcd": "42805124-KOR",
"itemdesc": "SHIELD-RR CLSR HANDS FREE SEN",
"pjtcd": "9BYC(MCM)",
@@ -1447,7 +1447,7 @@
"worknm": "최종검사-04",
"workseq": "2",
"status": "1",
"statusnm": "가동중",
"statusnm": "휴식시간",
"itemcd": "42817941-KOR",
"itemdesc": "MOLDING ASM-RR S/D WDO GARN RH",
"pjtcd": "",
@@ -1482,7 +1482,7 @@
"worknm": "최종검사-05",
"workseq": "1",
"status": "1",
"statusnm": "가동중",
"statusnm": "휴식시간",
"itemcd": "24299058-KOR",
"itemdesc": "BAFFLE-FRT DIFF CARR",
"pjtcd": "GF6 GEN3",
@@ -1500,7 +1500,7 @@
"sttm": "0818",
"totm": "",
"goaltime": "111",
"ptotm": "2025-03-17 12:01:38",
"ptotm": "2025-03-17 16:37:14",
"psttm": "2025-03-11 08:18:02"
},
"isCheck": false
@@ -1517,7 +1517,7 @@
"worknm": "최종검사-07",
"workseq": "1",
"status": "1",
"statusnm": "가동중",
"statusnm": "휴식시간",
"itemcd": "24299051-KOR",
"itemdesc": "BAFFLE-FRT DIFF CARR",
"pjtcd": "GF6 GEN3",
@@ -1552,7 +1552,7 @@
"worknm": "최종검사-09",
"workseq": "1",
"status": "1",
"statusnm": "가동중",
"statusnm": "휴식시간",
"itemcd": "24298741-GMA",
"itemdesc": "BAFFLE ASM-FRT DIFF CARR",
"pjtcd": "GF9",
@@ -1587,7 +1587,7 @@
"worknm": "최종검사-10",
"workseq": "1",
"status": "1",
"statusnm": "가동중",
"statusnm": "휴식시간",
"itemcd": "24298740-GMA",
"itemdesc": "BAFFLE ASM-FRT DIFF CARR",
"pjtcd": "GF9",
@@ -1675,7 +1675,7 @@
"sttm": "0758",
"totm": "",
"goaltime": "439",
"ptotm": "2025-03-17 10:46:43",
"ptotm": "2025-03-17 15:47:18",
"psttm": "2025-03-12 07:58:05"
},
"isCheck": false
@@ -1727,7 +1727,7 @@
"worknm": "최종검사-08",
"workseq": "1",
"status": "1",
"statusnm": "가동중",
"statusnm": "휴식시간",
"itemcd": "24298738-SGM",
"itemdesc": "BAFFLE ASM-FRT DIFF CARR",
"pjtcd": "GF9",
@@ -1749,6 +1749,41 @@
"psttm": "2025-03-12 15:24:58"
},
"isCheck": false
},
{
"completeInfo": {
"datagbn": "D",
"wordno": "WO202503170084",
"workdt": "20250317",
"daynight": "1",
"sitecd": "1",
"wccd": "W40",
"workcd": "MN-02",
"worknm": "가공반-2",
"workseq": "1",
"status": "1",
"statusnm": "가동중",
"itemcd": "24268570-GMA",
"itemdesc": "CAP-A/TRNS WRG HARN CONN",
"pjtcd": "GF9",
"matcd": "",
"cycletime": "2.00",
"cavity": "1",
"planqty": "20000.00000",
"goalqty": "81.00000",
"workqty": "0.00000",
"goodqty": "0.00000",
"badqty": "0.00000",
"adrate": "",
"efficiency": "0.00000",
"progressrate": "0.00000",
"sttm": "1332",
"totm": "",
"goaltime": "666",
"ptotm": "2025-03-18 00:38:21",
"psttm": "2025-03-17 13:32:21"
},
"isCheck": false
}
]
}