123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using System.IO;
- using System.Linq;
- using UnityEditor;
- using System;
- public class BianDianZhanProxy : DataProxy
- {
- List<StepInfo> StepInfos;
- public override void OnRegister()
- {
- InitData();
- }
- public void InitData()
- {
- //表格读取
- string path = Application.streamingAssetsPath + "/Config/变电站巡视.csv";
- StepInfos = ReadOperationFromTable(path);
- }
- /// <summary>
- /// 获取所有步骤信息
- /// </summary>
- /// <returns></returns>
- public List<StepInfo> GetStepInfos()
- {
- return StepInfos;
- }
- /// <summary>
- /// 通过ID获取步骤信息
- /// </summary>
- /// <returns></returns>
- public StepInfo GetStepInfoById(int id)
- {
- return StepInfos.Find(stepInfo => stepInfo.id == id);
- }
- public override void OnRemove()
- {
- }
- /// <summary>
- /// 从表格读取流程信息
- /// </summary>
- /// <param name="path"></param>
- /// <returns></returns>
- private List<StepInfo> ReadOperationFromTable(string path)
- {
- List<StepInfo> tmpInfos = new List<StepInfo>();
- using (StreamReader streamReader = new StreamReader(path, System.Text.Encoding.UTF8))
- {
- string tmpStepInfo = streamReader.ReadToEnd();
- if (tmpStepInfo.Contains("\r")) tmpStepInfo = tmpStepInfo.Replace("\r", "");
- string[] tempStepInfos = tmpStepInfo.Split('\n');
- for (int i = 1; i < tempStepInfos.Length; i++)
- {
- string operationInfo = tempStepInfos[i];
- string[] operationInfoElements = operationInfo.Split(',');
- StepInfo tmpInfo = new StepInfo();
- for (int j = 0; j < operationInfoElements.Length; j++)
- {
- if (j == 0) tmpInfo.id = int.Parse( operationInfoElements[0]);
- if (j == 1) tmpInfo.stepName = operationInfoElements[1];
- if (j == 2) tmpInfo.stepDesctiption = operationInfoElements[2];
- if (j == 3) tmpInfo.stepScore = float.Parse(operationInfoElements[3]);
- }
- tmpInfos.Add(tmpInfo);
- }
- }
- return tmpInfos;
- }
- /// <summary>
- /// 将Operation信息写入到表格中
- /// </summary>
- public void WriteOprationInfoToTable(List<StepInfo> _infos, string _path)
- {
- using (FileStream fs = new FileStream(_path, FileMode.Create))
- {
- using (StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8))
- {
- sw.WriteLine("id" + "," + "StepName" + "," + "StepDescription" + "," + "StepScore");
- for (int i = 0; i < _infos.Count; i++)
- {
- string operationInfo = _infos[i].id + "," + _infos[i].stepName + "," + _infos[i].stepDesctiption + "," + _infos[i].stepScore;
- operationInfo = RemoveLineEndings(operationInfo);
- if (i == _infos.Count - 1) sw.Write(operationInfo);
- else sw.WriteLine(operationInfo);
- }
- }
- }
- }
- public string RemoveLineEndings(string value)
- {
- if (string.IsNullOrEmpty(value))
- {
- return value;
- }
- string lineSeparator = ((char)0x2028).ToString();
- string paragraphSeparator = ((char)0x2029).ToString();
- return value.Replace("\r\n", string.Empty)
- .Replace("\n", string.Empty)
- .Replace("\r", string.Empty)
- .Replace(lineSeparator, string.Empty)
- .Replace(paragraphSeparator, string.Empty);
- }
- }
- [Serializable]
- public class StepInfoManager
- {
- public List<float> S = new List<float>();
- }
- [Serializable]
- public class StepInfoJson
- {
- public int id;
- /// <summary>
- /// 步骤分数
- /// </summary>
- public float stepScore;
- }
- [Serializable]
- public class StepInfo
- {
- public int id;
- /// <summary>
- /// 步骤名称
- /// </summary>
- public string stepName;
- /// <summary>
- /// 步骤描述
- /// </summary>
- public string stepDesctiption;
- /// <summary>
- /// 步骤分数
- /// </summary>
- public float stepScore;
- }
|