ProcessImortEnd.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. using ConvertLog.common;
  2. using System;
  3. using System.Data;
  4. namespace ConvertLog.thread
  5. {
  6. public class ProcessImortEnd : MainThread
  7. {
  8. static readonly log4net.ILog logger = log4net.LogManager.GetLogger(typeof(ProcessImortEnd));
  9. public override void Process()
  10. {
  11. if (!ConfigData.loadOK) { return; }
  12. Sleep(10000);
  13. try
  14. {
  15. if (!ConfigData._ImportQueue.IsEmpty()) return;
  16. if(ConfigData._arrtotal.Count>0 & allThreadIsFree())
  17. {
  18. foreach (var item in ConfigData._arrtotal)
  19. {
  20. string _uploadId = item.Key;
  21. List<totalFileImportObj> _listFile = item.Value;
  22. foreach (totalFileImportObj file in _listFile)
  23. {
  24. DataAccess.importFinishFile(file.uploadId, file.uploadDetailId, file.totalRow.ToString(), file.totalRowErr.ToString());
  25. logger.Info("Finish File uploadDetailId " + file.uploadDetailId + " of uploadId "+ file.uploadId);
  26. }
  27. ConfigData._arrtotal.Remove(_uploadId);
  28. DataAccess.importFinishAllFile(_uploadId);
  29. logger.Info("Finish uploadId " + _uploadId);
  30. }
  31. }
  32. }
  33. catch (Exception ex)
  34. {
  35. logger.Info("ProcessImortEnd file total exeption: " + ex.ToString());
  36. }
  37. }
  38. public static bool allThreadIsFree()
  39. {
  40. bool reuslt = false;
  41. try
  42. {
  43. foreach (var item in ConfigData.threadIsFree)
  44. {
  45. string _isFree = item.Value;
  46. if (_isFree == "0") return false;
  47. }
  48. reuslt = true;
  49. }
  50. catch (Exception)
  51. {
  52. }
  53. return reuslt;
  54. }
  55. public static void upload_off(List<importObj> _data)
  56. {
  57. List<List<string>> DataColumms = new List<List<string>>();
  58. var v_upload_id = new List<string>();
  59. var v_upload_detail_id = new List<string>();
  60. var v_type = new List<string>();
  61. var v_ticket = new List<string>();
  62. foreach (importObj _obj in _data)
  63. {
  64. v_upload_id.Add(_obj.uploadId);
  65. v_upload_detail_id.Add(_obj.uploadDetailId);
  66. v_type.Add(_obj.type);
  67. v_ticket.Add(_obj.ticket);
  68. }
  69. DataColumms.Add(v_upload_id);
  70. DataColumms.Add(v_upload_detail_id);
  71. DataColumms.Add(v_type);
  72. DataColumms.Add(v_ticket);
  73. DataAccess.upload_data("LUCKY_PKG.IMPORT_INSERT", DataColumms);
  74. }
  75. }
  76. }