using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;
///
/// 数据管理类
///
public class DataManager : BaseManager
{
private DataManager()
{
}
///
/// 方案
///
private Dictionary schemeDic = new Dictionary();
///
/// 流程
///
private Dictionary processDic = new Dictionary();
///
/// 子流程
///
private Dictionary subProcessDic = new Dictionary();
///
/// 子流程步骤
///
private Dictionary subProcessStepDic = new Dictionary();
///
/// 虚拟仿真系统
///
private Dictionary systemDic = new Dictionary();
///
/// 设备类型
///
private Dictionary deviceTypeDic = new Dictionary();
///
/// 工具材料
///
private Dictionary toolAndMaterialDic = new Dictionary();
///
/// 初始化
///
public void Init()
{
schemeDic = GameManager.BinaryMgr.GetTable().dataDic;
processDic = GameManager.BinaryMgr.GetTable().dataDic;
subProcessDic = GameManager.BinaryMgr.GetTable().dataDic;
subProcessStepDic = GameManager.BinaryMgr.GetTable().dataDic;
systemDic = GameManager.BinaryMgr.GetTable().dataDic;
deviceTypeDic = GameManager.BinaryMgr.GetTable().dataDic;
toolAndMaterialDic = GameManager.BinaryMgr.GetTable().dataDic;
}
public Dictionary GetAllDeviceTypes()
{
return deviceTypeDic;
}
///
/// 获取当前系统所有的方案
///
///
public List GetAllSchemeName()
{
var allSchemeList = new List();
foreach (var item in schemeDic.Values)
{
if (item.systemId == GameManager.Instance.systemId)
allSchemeList.Add(item);
}
return allSchemeList;
}
/////
///// 获取当前系统全部工器具和材料
/////
/////
//public List GetCurrentSystemToolAndMaterials()
//{
// var currentSystemToolAndMaterials = new List();
// foreach (var item in toolAndMaterialDic.Values)
// {
// if (item.systemID == GameManager.ProcessMgr.id)
// {
// currentSystemToolAndMaterials.Add(item);
// }
// }
// return currentSystemToolAndMaterials;
//}
///
/// 获取D_Scheme
///
///
///
public D_Scheme GetSchemeData(int id)
{
D_Scheme d_Scheme = new D_Scheme();
//获取方案数据
if (schemeDic.ContainsKey(id))
{
d_Scheme.id = schemeDic[id].id;
d_Scheme.schemeName = schemeDic[id].schemeName;
}
d_Scheme.processes = GetD_Processes(d_Scheme.id);
return d_Scheme;
}
///
/// 根据方案Id 获取流程列表
///
///
///
private List GetD_Processes(int schemeId)
{
List d_Processes = new List();
//获取方案流程数据
foreach (var item in processDic.Values)
{
if (item.schemeId == schemeId)
{
D_Process d_Process = new D_Process();
d_Process.id = item.id;
d_Process.processName = item.processName;
int processId = item.id;
d_Process.subProcesses = GetD_SubProcesses(schemeId, processId);
d_Processes.Add(d_Process);
}
}
return d_Processes;
}
///
/// 根据方案Id,流程Id ,获取子流程列表
///
///
///
///
public List GetD_SubProcesses(int schemeId, int processId)
{
List d_SubProcesses = new List();
foreach (var item in subProcessDic.Values)
{
if (item.schemeId == schemeId && item.processId == processId)
{
D_SubProcess d_SubProcess = new D_SubProcess();
d_SubProcess.id = item.id;
d_SubProcess.schemeId = item.schemeId;
d_SubProcess.processId = item.processId;
d_SubProcess.subProcessName = item.subProcessName;
d_SubProcess.isPrecondition = item.isPrecondition;
d_SubProcess.precondition = item.precondition;
d_SubProcess.tips = item.tips;
int subProcessId = item.id;
d_SubProcess.subProcessStepes = GetD_SubProcessSteps(schemeId, processId, subProcessId);
d_SubProcesses.Add(d_SubProcess);
}
}
return d_SubProcesses;
}
///
/// 根据方案Id,流程Id,子流程Id 获取子流程步骤列表
///
///
///
///
///
private List GetD_SubProcessSteps(int schemeId, int processId, int subProcessId)
{
List d_SubProcessSteps = new List();
foreach (var step in subProcessStepDic.Values)
{
if (step.schemeId == schemeId && step.processId == processId && step.subProcessId == subProcessId)
{
D_SubProcessStep d_SubProcessStep = new D_SubProcessStep();
d_SubProcessStep.id = step.id;
d_SubProcessStep.schemeId = step.schemeId;
d_SubProcessStep.processId = step.processId;
d_SubProcessStep.subProcessId = step.subProcessId;
d_SubProcessStep.subProcessStepName = step.subProcessStepName;
d_SubProcessStep.isPrecondition = step.isPrecondition;
d_SubProcessStep.precondition = step.precondition;
d_SubProcessStep.toolId = step.toolID;
d_SubProcessStep.tipTitle = step.tipTitle;
d_SubProcessStep.score = step.score;
d_SubProcessSteps.Add(d_SubProcessStep);
}
}
return d_SubProcessSteps;
}
public List GetSubProcessStepIDByToolID(int toolID)
{
List tb_subProcesssSteps = new List();
List stepIDsTemp = new List();
foreach (var item in subProcessStepDic.Values)
{
if (item.schemeId == GameManager.ProcessMgr.schemeID)
tb_subProcesssSteps.Add(item);
}
foreach (var item in tb_subProcesssSteps)
{
if (string.IsNullOrEmpty(item.toolID))
{
continue;
}
string[] subProcessStepToolID = item.toolID.Split(',');
for (int i = 0; i < subProcessStepToolID.Length; i++)
{
if (int.Parse(subProcessStepToolID[i]) == toolID)
stepIDsTemp.Add(item.id);
}
}
return stepIDsTemp;
}
///
/// 根据系统Id 获取系统信息
///
///
///
public TB_System GetSystemInfo(int systemId)
{
if (systemDic.ContainsKey(systemId))
{
return systemDic[systemId];
}
return null;
}
///
/// 获取报告
///
///
public R_Scheme GetSchemeReport(int id)
{
R_Scheme r_Scheme = new R_Scheme();
return r_Scheme;
}
///
///
///
///
///
public TB_Scheme GetTitleSpriteName(int id)
{
if (schemeDic.ContainsKey(id))
{
return schemeDic[id];
}
return null;
}
}