207 lines
7.1 KiB
C#
207 lines
7.1 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using UnityEngine;
|
|
using static MQTT;
|
|
using WI;
|
|
using System.Text;
|
|
using System.Linq;
|
|
|
|
namespace CHN
|
|
{
|
|
[Serializable]
|
|
public class Data
|
|
{
|
|
public List<CompleteTimeAlarmData> completeTimeAlarmDatas = new List<CompleteTimeAlarmData>();
|
|
}
|
|
|
|
[Serializable]
|
|
public class CompleteTimeAlarmData
|
|
{
|
|
public AlarmInfo alarmInfo;
|
|
public bool isCheck;
|
|
}
|
|
public class CompleteTimeAlarmManager : MonoBehaviour, ISingle
|
|
{
|
|
public List<Machine> machines = new List<Machine>();
|
|
public Action<Machine> onActiveHighLighter;
|
|
|
|
public override void AfterStart()
|
|
{
|
|
var building = FindSingle<Building>();
|
|
machines = building.floors.SelectMany(f => f.machines).ToList();
|
|
}
|
|
|
|
public void MachineCorrespondingToAlarm(string machineCode)
|
|
{
|
|
foreach (var machine in machines)
|
|
{
|
|
if (machine.code == machineCode)
|
|
{
|
|
onActiveHighLighter?.Invoke(machine);
|
|
}
|
|
}
|
|
}
|
|
#region 저장 및 알람 체크 기능
|
|
// public static string filePath = "./CompleteTimeAlarmInfo.json";
|
|
|
|
|
|
// public List<CompleteTimeAlarmData> currentData = new List<CompleteTimeAlarmData>();
|
|
|
|
// public static Dictionary<string, CompleteTimeAlarmData> saveData = new Dictionary<string, CompleteTimeAlarmData>();
|
|
|
|
// public Action onNotloadData;
|
|
// public Action<List<CompleteTimeAlarmData>> onUnloadData;
|
|
// public Action<List<CompleteTimeAlarmData>> onLoadData;
|
|
|
|
|
|
// [RuntimeInitializeOnLoadMethod]
|
|
// static void RunOnStart()
|
|
// {
|
|
// Application.quitting += SaveCompleteTimeData;
|
|
// }
|
|
// public override void AfterAwake()
|
|
// {
|
|
// LoadCompleteTimeData();
|
|
// }
|
|
|
|
// public void SetCurrentData(List<AlarmInfo> alarmInfos)
|
|
// {
|
|
// currentData.Clear();
|
|
// foreach (var alarmInfo in alarmInfos)
|
|
// {
|
|
// CompleteTimeAlarmData completeTimeAlarmData = new CompleteTimeAlarmData();
|
|
// completeTimeAlarmData.alarmInfo = alarmInfo;
|
|
|
|
// completeTimeAlarmData.isCheck = false;
|
|
|
|
// currentData.Add(completeTimeAlarmData);
|
|
// }
|
|
|
|
// if (saveData.Count <= 0)
|
|
// {
|
|
// onUnloadData?.Invoke(currentData);
|
|
|
|
// foreach(var data in currentData)
|
|
// {
|
|
// var worknm = data.alarmInfo.설비명;
|
|
|
|
// if (saveData.ContainsKey(worknm))
|
|
// return;
|
|
|
|
// saveData.Add(worknm, data);
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// CompleteTimeAlarmDataComparison();
|
|
// }
|
|
// }
|
|
// private void CompleteTimeAlarmDataComparison()
|
|
// {
|
|
// foreach(var data in currentData)
|
|
// {
|
|
// var currentWorknm = data.alarmInfo.설비명;
|
|
|
|
// if (!saveData.ContainsKey(currentWorknm))
|
|
// {
|
|
// saveData.Add(currentWorknm, data);
|
|
// }
|
|
// else
|
|
// {
|
|
// var preInfo = saveData[currentWorknm].alarmInfo;
|
|
// var curInfo = data.alarmInfo;
|
|
|
|
// if (AlarmInfoCompare(preInfo, curInfo))
|
|
// {
|
|
// saveData[currentWorknm].alarmInfo = curInfo;
|
|
// saveData[currentWorknm].isCheck = false;
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// onLoadData?.Invoke(saveData.Values.ToList());
|
|
// }
|
|
// private bool AlarmInfoCompare(AlarmInfo preInfo, AlarmInfo curInfo)
|
|
// {
|
|
// if (!preInfo.호출구분.Equals(curInfo.호출구분))
|
|
// {
|
|
// return true;
|
|
// }
|
|
// else if (!preInfo.호출일.Equals(curInfo.호출일))
|
|
// {
|
|
// return true;
|
|
// }
|
|
// return false;
|
|
// }
|
|
|
|
// //public void CheckCompleteTimeAlarm(CompleteInfo completeInfo, bool isCheck)
|
|
// //{
|
|
// // var worknm = completeInfo.worknm;
|
|
// // saveData[worknm].isCheck = isCheck;
|
|
// //}
|
|
|
|
// public void LoadCompleteTimeData()
|
|
// {
|
|
//#if UNITY_EDITOR
|
|
// filePath = "./CompleteTimeAlarmInfo.json";
|
|
//#else
|
|
// filePath = "./CompleteTimeAlarmInfo.json";
|
|
//#endif
|
|
|
|
// saveData.Clear();
|
|
|
|
// if (File.Exists(filePath))
|
|
// {
|
|
// var json = File.ReadAllText(filePath);
|
|
// var data = JsonUtility.FromJson<Data>(json);
|
|
|
|
// if (data != null)
|
|
// {
|
|
// foreach(var d in data.completeTimeAlarmDatas)
|
|
// {
|
|
// saveData.Add(d.alarmInfo.설비명, d);
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// public static void SaveCompleteTimeData()
|
|
// {
|
|
// Data data = new Data();
|
|
|
|
// if (!File.Exists(filePath))
|
|
// {
|
|
// using (var fs = File.Create(filePath))
|
|
// {
|
|
// foreach (var saveData in saveData.Values)
|
|
// {
|
|
// data.completeTimeAlarmDatas.Add(saveData);
|
|
// }
|
|
|
|
// var json = JsonUtility.ToJson(data, true);
|
|
// var bytes = Encoding.UTF8.GetBytes(json);
|
|
// fs.Write(bytes, 0, bytes.Length);
|
|
// fs.Flush();
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// File.WriteAllText(filePath, "");
|
|
|
|
// foreach (var saveData in saveData.Values)
|
|
// {
|
|
// data.completeTimeAlarmDatas.Add(saveData);
|
|
// }
|
|
// var json = JsonUtility.ToJson(data, true);
|
|
|
|
// File.WriteAllText(filePath, json);
|
|
// }
|
|
// }
|
|
#endregion
|
|
|
|
}
|
|
}
|
|
|