AuditTrailPage.xaml.cs 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. using CCDCount.DLL.Tools;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Windows.Controls;
  7. namespace CCDCountWpf.WpfPage
  8. {
  9. /// <summary>
  10. /// AuditTrailPage.xaml 的交互逻辑
  11. /// </summary>
  12. public partial class AuditTrailPage : Page
  13. {
  14. public AuditTrailPage()
  15. {
  16. InitializeComponent();
  17. this.Height = Double.NaN;
  18. this.Width = Double.NaN;
  19. DataContext = ShowMessageBus.ShowBinding;
  20. InitBatchItems();
  21. test();
  22. string patch = $"{AppDomain.CurrentDomain.BaseDirectory}PDF\\report_with_images.pdf";
  23. //BatchRecordWebBrowser.Navigate(new Uri(patch));
  24. }
  25. /// <summary>
  26. /// 初始化配方列表
  27. /// </summary>
  28. private void InitBatchItems()
  29. {
  30. string folderPath = $"{AppDomain.CurrentDomain.BaseDirectory}DATA\\ActiveObjectData\\Cam{MessageBus.MainThreadS[0].cameraConfig.CamerNo}";
  31. if (!Directory.Exists(folderPath))
  32. {
  33. // 创建文件夹
  34. Directory.CreateDirectory(folderPath);
  35. }
  36. try
  37. {
  38. // 使用 DirectoryInfo 获取文件并按修改时间排序
  39. DirectoryInfo dirInfo = new DirectoryInfo(folderPath);
  40. FileInfo[] files = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
  41. // 按照修改时间排序(最新的在前)
  42. var sortedFiles = files.OrderByDescending(f => f.LastWriteTime).ToArray();
  43. ShowMessageBus.ShowBinding.BatchItems.Clear();
  44. foreach (FileInfo file in sortedFiles)
  45. {
  46. ShowMessageBus.ShowBinding.BatchItems.Add(Path.GetFileNameWithoutExtension(file.Name).Split('_')[1]);
  47. }
  48. BatchNumComBox.SelectedIndex = 0;
  49. }
  50. catch
  51. { }
  52. }
  53. /// <summary>
  54. /// 初始化配方列表
  55. /// </summary>
  56. private void InitBatchItems(DateTime Mintime,DateTime MaxTime)
  57. {
  58. string folderPath = $"{AppDomain.CurrentDomain.BaseDirectory}DATA\\ActiveObjectData\\Cam{MessageBus.MainThreadS[0].cameraConfig.CamerNo}";
  59. if (!Directory.Exists(folderPath))
  60. {
  61. // 创建文件夹
  62. Directory.CreateDirectory(folderPath);
  63. }
  64. try
  65. {
  66. // 使用 DirectoryInfo 获取文件并按修改时间排序
  67. DirectoryInfo dirInfo = new DirectoryInfo(folderPath);
  68. FileInfo[] files = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
  69. // 按照修改时间排序(最新的在前)
  70. var sortedFiles = files.Where(f=>f.CreationTime>Mintime&&f.CreationTime<MaxTime.AddDays(1)).OrderByDescending(f => f.LastWriteTime).ToArray();
  71. ShowMessageBus.ShowBinding.BatchItems.Clear();
  72. foreach (FileInfo file in sortedFiles)
  73. {
  74. ShowMessageBus.ShowBinding.BatchItems.Add(Path.GetFileNameWithoutExtension(file.Name).Split('_')[1]);
  75. }
  76. BatchNumComBox.SelectedIndex = 0;
  77. }
  78. catch
  79. { }
  80. }
  81. /// <summary>
  82. /// 初始化配方列表
  83. /// </summary>
  84. private void InitBatchItemsByMinTime(DateTime Mintime)
  85. {
  86. string folderPath = $"{AppDomain.CurrentDomain.BaseDirectory}DATA\\ActiveObjectData\\Cam{MessageBus.MainThreadS[0].cameraConfig.CamerNo}";
  87. if (!Directory.Exists(folderPath))
  88. {
  89. // 创建文件夹
  90. Directory.CreateDirectory(folderPath);
  91. }
  92. try
  93. {
  94. // 使用 DirectoryInfo 获取文件并按修改时间排序
  95. DirectoryInfo dirInfo = new DirectoryInfo(folderPath);
  96. FileInfo[] files = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
  97. // 按照修改时间排序(最新的在前)
  98. var sortedFiles = files.Where(f => f.CreationTime > Mintime).OrderByDescending(f => f.LastWriteTime).ToArray();
  99. ShowMessageBus.ShowBinding.BatchItems.Clear();
  100. foreach (FileInfo file in sortedFiles)
  101. {
  102. ShowMessageBus.ShowBinding.BatchItems.Add(Path.GetFileNameWithoutExtension(file.Name).Split('_')[1]);
  103. }
  104. BatchNumComBox.SelectedIndex = 0;
  105. }
  106. catch
  107. { }
  108. }
  109. /// <summary>
  110. /// 初始化配方列表
  111. /// </summary>
  112. private void InitBatchItemsByMaxTime(DateTime MaxTime)
  113. {
  114. string folderPath = $"{AppDomain.CurrentDomain.BaseDirectory}DATA\\ActiveObjectData\\Cam{MessageBus.MainThreadS[0].cameraConfig.CamerNo}";
  115. if (!Directory.Exists(folderPath))
  116. {
  117. // 创建文件夹
  118. Directory.CreateDirectory(folderPath);
  119. }
  120. try
  121. {
  122. // 使用 DirectoryInfo 获取文件并按修改时间排序
  123. DirectoryInfo dirInfo = new DirectoryInfo(folderPath);
  124. FileInfo[] files = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
  125. // 按照修改时间排序(最新的在前)
  126. var sortedFiles = files.Where(f=>f.CreationTime < MaxTime.AddDays(1)).OrderByDescending(f => f.LastWriteTime).ToArray();
  127. ShowMessageBus.ShowBinding.BatchItems.Clear();
  128. foreach (FileInfo file in sortedFiles)
  129. {
  130. ShowMessageBus.ShowBinding.BatchItems.Add(Path.GetFileNameWithoutExtension(file.Name).Split('_')[1]);
  131. }
  132. BatchNumComBox.SelectedIndex = 0;
  133. }
  134. catch
  135. { }
  136. }
  137. private void BatchMinTime_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
  138. {
  139. if(BatchMinTime.SelectedDate==null)
  140. {
  141. return;
  142. }
  143. else
  144. {
  145. if(BatchMaxTime.SelectedDate == null)
  146. {
  147. InitBatchItemsByMinTime((DateTime)BatchMinTime.SelectedDate);
  148. }
  149. else
  150. {
  151. InitBatchItems((DateTime)BatchMinTime.SelectedDate, (DateTime)BatchMaxTime.SelectedDate);
  152. }
  153. }
  154. }
  155. private void BatchMaxTime_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
  156. {
  157. if (BatchMaxTime.SelectedDate == null)
  158. {
  159. return;
  160. }
  161. else
  162. {
  163. if (BatchMinTime.SelectedDate == null)
  164. {
  165. InitBatchItemsByMaxTime((DateTime)BatchMaxTime.SelectedDate);
  166. }
  167. else
  168. {
  169. InitBatchItems((DateTime)BatchMinTime.SelectedDate, (DateTime)BatchMaxTime.SelectedDate);
  170. }
  171. }
  172. }
  173. private void test()
  174. {
  175. PDFGenerateTools pDFGenerate = new PDFGenerateTools($"{AppDomain.CurrentDomain.BaseDirectory}PDF\\report_with_images.pdf");
  176. pDFGenerate.InsertText("工资单", 20, 3);
  177. pDFGenerate.InsertNewLine();
  178. pDFGenerate.InsertImage("D:\\work\\WindowsFormsTest\\PDFTest\\bin\\Debug\\mmexport1752891278116.jpg");
  179. pDFGenerate.InsertNewLine();
  180. pDFGenerate.InsertNewLine();
  181. pDFGenerate.InsertText("员工列表", 12, 1);
  182. pDFGenerate.SavePDF();
  183. }
  184. }
  185. }