123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- using SmartCoalApplication.Base.FunctionModel;
- using SmartCoalApplication.Base.MeasureModel;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace SmartCoalApplication.Base.CommTool
- {
- /// <summary>
- /// 命名规则辅助工具类
- /// </summary>
- public class NamingRuleHelper
- {
- private NameRuleListDetails nameRuleListDetails;
- private string ruleName;
- private string ruleGain;
- private MeasureMaintenanceType measureMaintenanceType;
- private string filePath;
- /// <summary>
- /// 按命名规则生成名字
- /// </summary>
- /// <param name="configModel"></param>
- /// <returns></returns>
- public string GetNameFromXml(NameRuleListDetails model, string ruleName, string ruleGain, MeasureMaintenanceType measureMaintenanceType,string filePath)
- {
- string nameStr;
- nameRuleListDetails = model;
- this.filePath = filePath;
- this.ruleName = ruleName;
- this.ruleGain = ruleGain;
- this.measureMaintenanceType = measureMaintenanceType;
- if (!string.IsNullOrEmpty(nameRuleListDetails.NameFormat) && nameRuleListDetails.NameFormat.IndexOf('%') != -1)
- nameStr = SplitStringToRuleList();
- else
- nameStr = GetContinueNum();
- return nameStr;
- }
- /// <summary>
- /// 将字符串拆分为规则格式的list
- /// </summary>
- /// <returns></returns>
- private string SplitStringToRuleList()
- {
- List<int> indexList = new List<int>();
- int index = 0;
- foreach (char c in nameRuleListDetails.NameFormat)
- {
- if (c.Equals('%'))
- indexList.Add(index);
- index++;
- }
- if (indexList.Count > 0)
- {
- List<string> ruleList = new List<string>();
- for (int i = 0; i < indexList.Count; i++)
- {
- if (i == indexList.Count - 1)
- ruleList.Add(nameRuleListDetails.NameFormat.Substring(indexList[i]));
- else
- ruleList.Add(nameRuleListDetails.NameFormat.Substring(indexList[i], indexList[i + 1] - indexList[i]));
- }
- return JointToName(ruleList);
- }
- else
- return GetContinueNum();
- }
- /// <summary>
- /// 拼接出符合规则的
- /// </summary>
- /// <returns></returns>
- private string JointToName(List<string> ruleList)
- {
- if (ruleList.Count > 0)
- {
- //ConfigModel config =
- string nameStr = "";
- foreach (string str in ruleList)
- {
- switch (str)
- {
- case "%P":
- if (!string.IsNullOrEmpty(nameRuleListDetails.Text))
- nameStr += nameRuleListDetails.Text;
- break;
- case "%I":
- nameStr += GetContinueNum();
- break;
- case "%h":
- nameStr += DateTime.Now.ToString("HH");
- break;
- case "%m":
- nameStr += DateTime.Now.ToString("mm");
- break;
- case "%s":
- nameStr += DateTime.Now.ToString("ss");
- break;
- case "%Y":
- nameStr += DateTime.Now.ToString("yyyy");
- break;
- case "%M":
- nameStr += DateTime.Now.ToString("MM");
- break;
- case "%D":
- nameStr += DateTime.Now.ToString("dd");
- break;
- case "%G":
- nameStr += Guid.NewGuid().ToString();
- break;
- case "%U":
- nameStr += Environment.UserName;
- break;
- case "%N":
- nameStr += ruleName;
- break;
- case "%E":
- nameStr += ruleGain;
- break;
- case "%Z1":
- nameStr += nameRuleListDetails.ZTextOne;
- break;
- case "%Z2":
- nameStr += nameRuleListDetails.ZTextTwo;
- break;
- case "%R":
- int index = 0;
- if (filePath.Contains('\\'))
- {
- index = filePath.LastIndexOf('\\');
- filePath = filePath.Substring(index + 1);
- }
- nameStr += filePath;
- break;
- case "%AB":
- nameStr += this.measureMaintenanceType == null ? string.Empty: this.measureMaintenanceType.measureMaintenanceBasicDataList[0].measureMaintenanceBasicDataValue;
- break;
- case "%BC":
- nameStr += this.measureMaintenanceType == null ? string.Empty : this.measureMaintenanceType.measureMaintenanceBasicDataList[1].measureMaintenanceBasicDataValue;
- break;
- case "%CD":
- nameStr += this.measureMaintenanceType == null ? string.Empty : this.measureMaintenanceType.measureMaintenanceBasicDataList[2].measureMaintenanceBasicDataValue;
- break;
- case "%DE":
- nameStr += this.measureMaintenanceType == null ? string.Empty : this.measureMaintenanceType.measureMaintenanceBasicDataList[3].measureMaintenanceBasicDataValue;
- break;
- case "%EF":
- nameStr += this.measureMaintenanceType == null ? string.Empty : this.measureMaintenanceType.measureMaintenanceBasicDataList[4].measureMaintenanceBasicDataValue;
- break;
- case "%FG":
- nameStr += this.measureMaintenanceType == null ? string.Empty : this.measureMaintenanceType.measureMaintenanceBasicDataList[5].measureMaintenanceBasicDataValue;
- break;
- case "%GH":
- nameStr += this.measureMaintenanceType == null ? string.Empty : this.measureMaintenanceType.measureMaintenanceBasicDataList[6].measureMaintenanceBasicDataValue;
- break;
- case "%HI":
- nameStr += this.measureMaintenanceType == null ? string.Empty : this.measureMaintenanceType.measureMaintenanceBasicDataList[7].measureMaintenanceBasicDataValue;
- break;
- case "%IJ":
- nameStr += this.measureMaintenanceType == null ? string.Empty : this.measureMaintenanceType.measureMaintenanceBasicDataList[8].measureMaintenanceBasicDataValue;
- break;
- case "%JK":
- nameStr += this.measureMaintenanceType == null ? string.Empty : this.measureMaintenanceType.measureMaintenanceBasicDataList[9].measureMaintenanceBasicDataValue;
- break;
- }
- }
- return nameStr;
- }
- else
- return GetContinueNum();
- }
- /// <summary>
- /// 获取并格式化延续数值
- /// </summary>
- /// <returns></returns>
- private string GetContinueNum()
- {
- string continueNum = nameRuleListDetails.NowNumber.ToString();
- if (nameRuleListDetails.DigitNum > continueNum.Length)
- return continueNum.PadLeft(nameRuleListDetails.DigitNum, '0');
- else
- return continueNum;
- }
- }
- }
|