91 lines
2.7 KiB
C#
91 lines
2.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class ProcessManager : MonoBehaviour
|
|
{
|
|
List<ProcessModel> excelList = new();
|
|
List<ProcessModel> currList = new();
|
|
float totalWeight;
|
|
ExcelData excelData = new();
|
|
public void Init()
|
|
{
|
|
excelData.Init();
|
|
foreach (var loData in excelData.allProcessData)
|
|
{
|
|
ProcessModel processModel = GetProcessModel_Excel(loData.subModule, loData.task);
|
|
if (processModel != null)
|
|
{
|
|
processModel.weight += loData.weight;
|
|
}
|
|
else
|
|
{
|
|
processModel = new ProcessModel();
|
|
processModel.subModule = loData.subModule;
|
|
processModel.task = loData.task;
|
|
processModel.weight = loData.weight;
|
|
excelList.Add(processModel);
|
|
}
|
|
totalWeight += loData.weight;
|
|
}
|
|
//foreach (var item in excelList)
|
|
//{
|
|
// Debug.Log(item.subModule + "===" + item.task);
|
|
//}
|
|
}
|
|
public void SetProcess(string subModule,string task)
|
|
{
|
|
ProcessModel processModel_Excel = GetProcessModel_Excel(subModule, task);
|
|
if (processModel_Excel != null)
|
|
{
|
|
ProcessModel processModel_Curr = GetProcessModel_Curr(subModule, task);
|
|
if (processModel_Curr == null)
|
|
{
|
|
processModel_Curr = new ProcessModel();
|
|
processModel_Curr.subModule = subModule;
|
|
processModel_Curr.task = task;
|
|
processModel_Curr.weight = processModel_Excel.weight;
|
|
currList.Add(processModel_Curr);
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// »ñÈ¡µ±Ç°½ø¶È°Ù·Ö±È
|
|
/// </summary>
|
|
public float GetProcess()
|
|
{
|
|
int currWeight = 0;
|
|
foreach (var item in currList)
|
|
{
|
|
currWeight += item.weight;
|
|
}
|
|
return (float)Math.Round(currWeight / totalWeight, 2) * 100;
|
|
}
|
|
public void Clear()
|
|
{
|
|
currList.Clear();
|
|
}
|
|
ProcessModel GetProcessModel_Excel(string subModule, string task)
|
|
{
|
|
for (int i = 0; i < excelList.Count; i++)
|
|
{
|
|
if (subModule == excelList[i].subModule && task == excelList[i].task)
|
|
{
|
|
return excelList[i];
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
ProcessModel GetProcessModel_Curr(string subModule, string task)
|
|
{
|
|
for (int i = 0; i < currList.Count; i++)
|
|
{
|
|
if (subModule == currList[i].subModule && task == currList[i].task)
|
|
{
|
|
return currList[i];
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|