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; } }