Form1.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using Abp;
  2. using DataTransmission.Joint;
  3. using System.CodeDom.Compiler;
  4. using System.Data;
  5. namespace DataTransmission
  6. {
  7. public partial class Form1 : Form
  8. {
  9. private readonly Order order = new Order();
  10. private readonly Execute execute = new Execute();
  11. private readonly CommonTool tool = new CommonTool();
  12. private readonly Knowledge knowledge = new Knowledge();
  13. public Form1()
  14. {
  15. InitializeComponent();
  16. }
  17. private void btn_tb_Click(object sender, EventArgs e)
  18. {
  19. btn_tb.Enabled = false;
  20. if (cb_zsk.Checked)
  21. {
  22. execute.ExecuteInsertKnowledge(st_time.Value.ToString("yyyy-MM-dd") + " 00:00:00", end_time.Value.ToString("yyyy-MM-dd") + " 23:59:59");
  23. //知识库类型
  24. //execute.ExecuteTypeSql();
  25. }
  26. if (cb_order.Checked) {
  27. ExecuteInsert();
  28. }
  29. if (cb_jg.Checked)
  30. {
  31. execute.ExecuteOrganizeSql();
  32. }
  33. if (cb_user.Checked)
  34. {
  35. execute.ExecuteUserSql();
  36. //工号
  37. //execute.ExecuteStaffSql();
  38. }
  39. MessageBox.Show("同步完成!请先别关闭程序!");
  40. btn_tb.Enabled = true;
  41. }
  42. private void ExecuteInsert()
  43. {
  44. var orderTable = order.GetOrder(st_time.Value.ToString("yyyy-MM-dd") + " 00:00:00", end_time.Value.ToString("yyyy-MM-dd") + " 23:59:59");
  45. var count = orderTable.Rows.Count;
  46. var exNum = 0;
  47. var threadNum = 100;
  48. var divisor = count / threadNum;
  49. var remainder = count % threadNum;
  50. for (int i = 0; i < divisor; i++)
  51. {
  52. var stNum = exNum;
  53. var enNum = exNum + threadNum;
  54. var data = orderTable.AsEnumerable().Where(x => ((int)x.Field<long>("Serial")) > stNum && ((int)x.Field<long>("Serial")) <= enNum).CopyToDataTable();
  55. execute.ExecuteSql(data);
  56. exNum += threadNum;
  57. }
  58. if (remainder > 0)
  59. {
  60. var stNum = divisor * threadNum;
  61. var data = orderTable.AsEnumerable().Where(x => ((int)x.Field<long>("Serial")) >= stNum).CopyToDataTable();
  62. execute.ExecuteSql(data);
  63. }
  64. }
  65. }
  66. }