StepListProxy.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System.IO;
  5. public class StepListProxy : DataProxy
  6. {
  7. public List<OperationStepDataInfo> m_StepMsgInfos;
  8. /// <summary>
  9. /// 表格名称
  10. /// </summary>
  11. string m_TableName;
  12. /// <summary>
  13. /// 处理一级和二级对应关系
  14. /// 注意:(此方法只适用于m_StepMsgInfos不为空的情况)
  15. /// </summary>
  16. /// <param name="tableName"></param>OpDataInfo
  17. public Dictionary<string, List<OperationStepDataInfo>> ProcessingData()
  18. {
  19. Dictionary<string, List<OperationStepDataInfo>> tmpDicStepListInfos = new Dictionary<string, List<OperationStepDataInfo>>();
  20. foreach (var item in m_StepMsgInfos)
  21. {
  22. if (!tmpDicStepListInfos.ContainsKey(item.parentStepName)) tmpDicStepListInfos.Add(item.parentStepName, new List<OperationStepDataInfo>());
  23. tmpDicStepListInfos[item.parentStepName].Add(item);
  24. }
  25. return tmpDicStepListInfos;
  26. }
  27. /// <summary>
  28. /// 处理一级和二级对应关系
  29. /// </summary>
  30. /// <param name="tableName"></param>OpDataInfo
  31. public Dictionary<string, List<OperationStepDataInfo>> ProcessingData(List<OperationStepDataInfo> stepListInfos)
  32. {
  33. Dictionary<string, List<OperationStepDataInfo>> tmpDicStepListInfos = new Dictionary<string, List<OperationStepDataInfo>>();
  34. foreach (var item in stepListInfos)
  35. {
  36. if (!tmpDicStepListInfos.ContainsKey(item.parentStepName)) tmpDicStepListInfos.Add(item.parentStepName, new List<OperationStepDataInfo>());
  37. tmpDicStepListInfos[item.parentStepName].Add(item);
  38. }
  39. return tmpDicStepListInfos;
  40. }
  41. /// <summary>
  42. /// 根据id获取信息
  43. /// </summary>
  44. public OperationStepDataInfo GetOpStepDataInfoById(int operationId)
  45. {
  46. return m_StepMsgInfos.Find(t => t.id == operationId.ToString());
  47. }
  48. /// <summary>
  49. /// 通过步骤ID获取对应的二级信息
  50. /// </summary>
  51. /// <returns></returns>
  52. public List<OperationStepDataInfo> GetOneLevelAndSecondLevelOpStepDataInfoByOperationLevelId(int operationId)
  53. {
  54. OperationStepDataInfo tmpOperationInfo = m_StepMsgInfos.Find(t => t.id == operationId.ToString());
  55. if (tmpOperationInfo != null)
  56. {
  57. return m_StepMsgInfos.FindAll(t => t.parentStepName == tmpOperationInfo.parentStepName);
  58. }
  59. return null;
  60. }
  61. /// <summary>
  62. /// 从Excel文件读取流程信息
  63. /// </summary>
  64. /// <param name="tableName">表明</param>
  65. /// <param name="headCount">表头</param>
  66. /// <returns></returns>
  67. public List<OperationStepDataInfo> ReadStepMsgInfoFromTable(string tableName)
  68. {
  69. m_TableName = tableName + GlobalConfig.excelSuffix;
  70. m_StepMsgInfos = new List<OperationStepDataInfo>();
  71. string tmpPath = System.IO.Path.Combine(GlobalConfig.operateTablePath, m_TableName);
  72. m_StepMsgInfos = ExcelHelper.ReadInfoFromExcel<OperationStepDataInfo>(tmpPath, 1);
  73. return m_StepMsgInfos;
  74. }
  75. public OperationStepDataInfo GetOperationStepDataInfoById(int id)
  76. {
  77. return m_StepMsgInfos.Find(t => int.Parse(t.id) == id);
  78. }
  79. public void SetOperationCameraPoseById(int id, Vector3 position, Vector3 eulerAngles)
  80. {
  81. OperationStepDataInfo tmpInfo = m_StepMsgInfos.Find(t => int.Parse(t.id) == id);
  82. tmpInfo.position = LUtilitys.ParseString(position);
  83. tmpInfo.rotation = LUtilitys.ParseString(eulerAngles);
  84. }
  85. /// <summary>
  86. /// 保存当前数据
  87. /// </summary>
  88. public void SaveOperation()
  89. {
  90. string tmpPath = Path.Combine(GlobalConfig.operateTablePath, m_TableName);
  91. ExcelHelper.WriteInfoToExcel<OperationStepDataInfo>(tmpPath, m_StepMsgInfos);
  92. }
  93. }