TemplateController.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System;
  2. using System.IO;
  3. using System.Data;
  4. using SHJX.Service.Dao;
  5. using SHJX.Service.Common.Utils;
  6. using SHJX.Service.Model.Control;
  7. using System.Collections.Generic;
  8. using SHJX.Service.Common.ReadXML;
  9. using SHJX.Service.Common.ExtendElement;
  10. namespace SHJX.Service.Control.ServiceController
  11. {
  12. public class TemplateController
  13. {
  14. private readonly TemplateDataManager _templateDataManager;
  15. private readonly ReadConfigUtil _config;
  16. public TemplateController(ReadConfigUtil config)
  17. {
  18. _config = config;
  19. _templateDataManager = new TemplateDataManager(config);
  20. }
  21. public List<SampleDetail> GetSampleDetailsByTemplate()
  22. {
  23. if (string.IsNullOrWhiteSpace(_config.TemplateFilePath))
  24. {
  25. UMessageBox.Error("模板路径为空,无法进行保存与导入!");
  26. return null;
  27. }
  28. if (!File.Exists(_config.TemplateFilePath))
  29. {
  30. UMessageBox.Error("本地模板不存在!");
  31. return null;
  32. }
  33. return _config.TemplateFilePath.ReadExcel().ConvertToList<SampleDetail>();
  34. }
  35. public void SaveTemplate(List<SampleDetail> details)
  36. {
  37. if (string.IsNullOrWhiteSpace(_config.TemplateFilePath))
  38. {
  39. UMessageBox.Error($"导出模板失败,模板路径为空!");
  40. return;
  41. }
  42. var dt = new DataTable("Template");
  43. dt.Columns.Add("节点名称", Type.GetType("System.String")!);
  44. dt.Columns.Add("详细描述", Type.GetType("System.String")!);
  45. dt.Columns.Add("样品体积", Type.GetType("System.Double")!);
  46. dt.Columns.Add("样品倍数", Type.GetType("System.Double")!);
  47. dt.Columns.Add("硫酸汞", Type.GetType("System.Double")!);
  48. dt.Columns.Add("样品类型", Type.GetType("System.String")!);
  49. dt.Columns.Add("样品浓度", Type.GetType("System.String")!);
  50. dt.Columns.Add("快速滴定", Type.GetType("System.Boolean")!);
  51. details.ForEach(item =>
  52. {
  53. dt.Rows.Add(item.NodeName, item.Detail, item.SampleVolume, item.Multiple, item.HgSO4, item.SampleType, item.Concentration,
  54. item.QuickTitration);
  55. });
  56. dt.ConvertToExcel(_config.TemplateFilePath);
  57. }
  58. }
  59. }