ProductPlanController.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. using Cksoft.Data;
  2. using Cksoft.Data.Repository;
  3. using Cksoft.Unity;
  4. using DllEapDal.OFILM;
  5. using DllEapEntity;
  6. using DllEapEntity.OFILM;
  7. using Microsoft.AspNetCore.Mvc;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Text;
  11. namespace DllEapBll.OFILM
  12. {
  13. [Route("eap/api/[controller]/[action]")]
  14. public class ProductPlanController : ControllerBase
  15. {
  16. [HttpPost]
  17. public EapResponse Upload([FromBody] WorkingProcedureDto str)
  18. {
  19. string usercode = Request.Headers["usercode"];
  20. List<Productionplan> wps = new List<Productionplan>();
  21. List<string> columns = new List<string>();
  22. if (str.Sheet1.Count > 0)
  23. {
  24. foreach (string it in str.Sheet1[0])
  25. {
  26. columns.Add(it);
  27. }
  28. }
  29. foreach (List<string> it in str.Sheet1)
  30. {
  31. if (it.Count > 7 && it[1] != "楼层")
  32. {
  33. for (int i = 6; i < it.Count; i++)
  34. {
  35. Productionplan workingProcedure = new Productionplan();
  36. workingProcedure.Park = it[0]?.Trim();
  37. workingProcedure.Floor = it[1]?.Trim();
  38. workingProcedure.MachineType = it[2]?.Trim();
  39. workingProcedure.Customer = it[3]?.Trim();
  40. workingProcedure.Technology = it[4]?.Trim();
  41. workingProcedure.TechnologyCode = it[5]?.Trim();
  42. //workingProcedure.MonthPlan = it[6]?.Trim().Replace('-', '0').Replace(",", "");
  43. workingProcedure.DayPlan = it[i]?.Trim().Replace('-', '0').Replace(",", "");
  44. workingProcedure.PlanTime = DateTime.Now.ToString("yyyy") + "-" + DateFormat( columns[i]);
  45. workingProcedure.RecCode = usercode;
  46. workingProcedure.ModCode = usercode;
  47. workingProcedure.RecTime = DateTime.Now;
  48. workingProcedure.ModTime = DateTime.Now;
  49. wps.Add(workingProcedure);
  50. }
  51. }
  52. }
  53. IDatabase db = null;
  54. string errormsg = string.Empty;
  55. Object er = null;
  56. try
  57. {
  58. db = DbFactory.Base("eap");
  59. var dal = new ProductPlanDal(db);
  60. db.BeginTrans();
  61. int ck = dal.CheckSame(wps, ref er);
  62. var res = dal.Adds(wps, usercode, ref errormsg);
  63. //上传成功,上传机种未包含在UPH及工序
  64. if (ck < 0 && res > 0)
  65. {
  66. db.Commit();
  67. return new EapResponse()
  68. {
  69. Code = -2,
  70. Data = er
  71. };
  72. }
  73. //上传失败,上传机种未包含在UPH及工序
  74. if (ck < 0 && res < 0)
  75. {
  76. db.Rollback();
  77. return new EapResponse()
  78. {
  79. Code = -3,
  80. Msg = errormsg,
  81. Data = er
  82. };
  83. }
  84. //上传失败,上传机种已经包含在UPH及工序
  85. if (ck > 0 && res < 0)
  86. {
  87. db.Rollback();
  88. return new EapResponse()
  89. {
  90. Code = -1,
  91. Msg = errormsg
  92. };
  93. }
  94. db.Commit();
  95. return new EapResponse()
  96. {
  97. Code = 1,
  98. Msg = ""
  99. };
  100. }
  101. catch (Exception e)
  102. {
  103. errormsg = e.Message;
  104. return new EapResponse
  105. {
  106. Code = -1,
  107. Msg = errormsg
  108. };
  109. }
  110. finally
  111. {
  112. if (db != null)
  113. db.Close();
  114. }
  115. }
  116. public string DateFormat(string str)
  117. {
  118. try
  119. {
  120. string dt = str?.Replace("月", "-").Replace("日", "");
  121. dt = dt.Split('-')[0].PadLeft(2, '0')+"-"+ dt.Split('-')[1].PadLeft(2,'0');
  122. return dt;
  123. }
  124. catch (Exception ex)
  125. {
  126. return "";
  127. }
  128. }
  129. }
  130. }