| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- namespace SHJX.Service.Control.Utils
- {
- public class ExportFile
- {
- private readonly ReadConfigUtil _readConfig;
- private readonly IDataManager _dataManager;
- public ExportFile(ReadConfigUtil readConfig, IDataManager dataManager)
- {
- _readConfig = readConfig;
- _dataManager = dataManager;
- }
- public void ExportExcel(List<EquipmentTask> tasks)
- {
- DataTable dt = new("Result");
- dt.Columns.Add("类型", Type.GetType("System.String")!);
- dt.Columns.Add("样品编号", Type.GetType("System.String")!);
- dt.Columns.Add("取样体积", Type.GetType("System.String")!);
- dt.Columns.Add("取样倍数", Type.GetType("System.String")!);
- dt.Columns.Add("滴定体积", Type.GetType("System.String")!);
- dt.Columns.Add("结果", Type.GetType("System.String")!);
- dt.Columns.Add("分析时间", Type.GetType("System.String")!);
- List<EquipmentTask> calibrationTasks = tasks.Where(item => item.TaskType.Equals(TaskTypeName.CALIBRATION_ZH)).ToList();
- if (calibrationTasks is null or { Count: 0 })
- {
- calibrationTasks = SearchOtherTask(TaskTypeName.CALIBRATION_ZH);
- }
- if (calibrationTasks is not null)
- {
- InsertDataTable(calibrationTasks);
- }
- List<EquipmentTask> blankTasks = tasks.Where(item => item.TaskType.Equals(TaskTypeName.BLANK_ZH)).ToList();
- if (blankTasks is null or { Count: 0 })
- {
- blankTasks = SearchOtherTask(TaskTypeName.BLANK_ZH);
- }
- if (blankTasks is not null)
- {
- InsertDataTable(blankTasks);
- }
- List<EquipmentTask> sampleTasks = tasks.Where(item => item.TaskType.Equals(TaskTypeName.SAMPLE_ZH)).ToList();
- if (sampleTasks is not null)
- {
- InsertDataTable(sampleTasks);
- }
- dt.ExportResult(_readConfig.ResultFilePath);
- void InsertDataTable(List<EquipmentTask> insertTasks)
- {
- insertTasks.ForEach(task =>
- {
- dt.Rows.Add(task.TaskType, task.TaskDetailName, task.SampleVolume.ToString("F2"),
- task.SampleMultiple.ToString("F2"), task.Amount.ToString("F2"),
- task.Result.ToString("F2"), task.CreateTime.ToString("yyyy-MM-dd"));
- });
- }
- }
- public void ExportWord(List<EquipmentTask> tasks)
- {
- List<EquipmentTask> calibrationTasks = tasks.Where(item => item.TaskType.Equals(TaskTypeName.CALIBRATION_ZH)).ToList();
- if (calibrationTasks is null or { Count: 0 })
- {
- tasks.AddRange(SearchOtherTask(TaskTypeName.CALIBRATION_ZH));
- }
- List<EquipmentTask> blankTasks = tasks.Where(item => item.TaskType.Equals(TaskTypeName.BLANK_ZH)).ToList();
- if (blankTasks is null or { Count: 0 })
- {
- tasks.AddRange(SearchOtherTask(TaskTypeName.BLANK_ZH));
- }
- ExportWordByNPOI export = new ExportWordByNPOI();
- export.Write(tasks, _readConfig.ResultFilePath);
- }
- private List<EquipmentTask> SearchOtherTask(string type)
- {
- return _dataManager.Query<EquipmentTask>().Where(it => it.TaskType.Equals(type)).With(t1 => t1.WaveKey, t2 => t2.WaveKey, _dataManager.Query<EquipmentTask>().Where(it => it.TaskType.Equals(type) && it.Status.Equals(TaskState.Finished)).OrderBy(it => it.CreateTime, OrderPattern.Desc).Take(1), WithPattern.Equals).ToList();
- }
- }
- }
|