CommonModel_importGOODS.ashx 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <%@ WebHandler Language="C#" Class="testform_importBarCode" %>
  2. using System;
  3. using System.Web;
  4. using System.Web.SessionState;
  5. using System.Data;
  6. using DK.XuWei.WebMes;
  7. using Curtain.DataAccess;
  8. using Curtain.Log;
  9. //EXCEL模板,要求
  10. //...
  11. public class testform_importBarCode : IHttpHandler, IReadOnlySessionState
  12. {
  13. public void ProcessRequest(HttpContext context)
  14. {
  15. context.Response.ContentType = "text/plain";
  16. //上传文件
  17. string filePath = "/mes/upload/"+DateTime.Now.ToString("yyyy-MM-dd");
  18. System.IO.Directory.CreateDirectory(context.Server.MapPath(filePath));
  19. string fileName = filePath + "/常用产品" + DateTime.Now.ToString("yyyy-MM-dd");
  20. fileName += System.IO.Path.GetExtension(context.Request.Files[0].FileName);
  21. string diskFileName = context.Server.MapPath(fileName);
  22. if (System.IO.File.Exists(diskFileName)) System.IO.File.Delete(diskFileName);
  23. context.Request.Files[0].SaveAs(diskFileName);
  24. //读excel
  25. DataTable dt = Import.ExcelToDataTable(diskFileName);
  26. //Logger.Debug(dt.Rows.Count.ToString());
  27. //写入数据
  28. using (IDataAccess conn = DataAccess.Create())
  29. {
  30. int errorLineNo = 0;
  31. conn.BeginTransaction();
  32. try
  33. {
  34. #region 删除实验单所有产品
  35. object a = context.Request["testformguidMaster"];
  36. //int result0 = conn.ExecuteNonQuery(@"
  37. // DELETE
  38. // TP_PM_TESTFORM2_GOODS
  39. // WHERE
  40. // TESTFORMGUID = @TESTFORMGUID@
  41. // ",
  42. // new CDAParameter("TESTFORMGUID", context.Request["testformguidMaster"])
  43. //);
  44. #endregion
  45. //判断字段包含
  46. string barCodeStr = "";
  47. for (int i=0;i<dt.Rows.Count;i++)
  48. {
  49. if (dt.Rows[i]["产品"] + "" == "") {
  50. continue;
  51. }
  52. if (dt.Rows[i]["商标"] + "" == "") {
  53. continue;
  54. }
  55. #region 校验重复
  56. object isExists = conn.ExecuteScalar(
  57. @"SELECT 1 FROM TP_MST_COMMONMODEL WHERE GOODSCODE = @GOODSCODE@ AND LOGOID = (SELECT LOGOID FROM TP_MST_LOGO WHERE LOGONAME = @LOGONAME@)",
  58. new CDAParameter("GOODSCODE", dt.Rows[i]["产品"]),
  59. new CDAParameter("LOGONAME", dt.Rows[i]["商标"]),
  60. new CDAParameter("COMMONGOODSID", context.Request["testformguidMaster"])
  61. );
  62. if (isExists != null)
  63. {
  64. continue;
  65. }
  66. #endregion
  67. //记录行号
  68. errorLineNo = i;
  69. int result = conn.ExecuteNonQuery(@"
  70. INSERT INTO TP_MST_COMMONMODEL
  71. (GOODSCODE,GOODSID,LOGOID,OUTLETDISTANCE,MATERIALCODE,PLATELIMITNUM1,PLATELIMITNUM2,COMMONFLAG,EFFECTIVETIME,ENDTIME,CREATEUSERID,UPDATEUSERID,ACCOUNTID)
  72. VALUES
  73. (
  74. @GOODSCODE@,
  75. (SELECT GOODSID FROM TP_MST_GOODS WHERE GOODSCODE = @GOODSCODE@),
  76. (SELECT LOGOID FROM TP_MST_LOGO WHERE LOGONAME = @LOGONAME@),
  77. @OUTLETDISTANCE@,
  78. @MATERIALCODE@,
  79. @PLATELIMITNUM1@,
  80. @PLATELIMITNUM2@,
  81. @COMMONFLAG@,
  82. @EFFECTIVETIME@,
  83. @ENDTIME@,
  84. @CREATEUSERID@,
  85. @UPDATEUSERID@,
  86. @ACCOUNTID@
  87. )",
  88. new CDAParameter("GOODSCODE", dt.Rows[i]["产品"]),
  89. new CDAParameter("LOGONAME", dt.Rows[i]["商标"]),
  90. new CDAParameter("OUTLETDISTANCE", dt.Rows[i]["坑距"]),
  91. new CDAParameter("MATERIALCODE", dt.Rows[i]["物料号"]),
  92. new CDAParameter("PLATELIMITNUM1", dt.Rows[i]["装板数量1"]),
  93. new CDAParameter("PLATELIMITNUM2", dt.Rows[i]["装板数量2"]),
  94. new CDAParameter("COMMONFLAG", dt.Rows[i]["常用标识"]),
  95. new CDAParameter("EFFECTIVETIME", dt.Rows[i]["生效时间"], DataType.DateTime),
  96. new CDAParameter("ENDTIME", dt.Rows[i]["截止时间"], DataType.DateTime),
  97. new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
  98. new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
  99. new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
  100. );
  101. }
  102. conn.Commit();
  103. context.Response.Write(new JsonResult(JsonStatus.success).ToJson());
  104. }
  105. catch(Exception e)
  106. {
  107. Logger.Error(e);
  108. conn.Rollback();
  109. context.Response.Write(new JsonResult(JsonStatus.otherError) { message = "行号:" + errorLineNo + " 数据错误,请检查!" }.ToJson());
  110. }
  111. }
  112. }
  113. public bool IsReusable
  114. {
  115. get
  116. {
  117. return false;
  118. }
  119. }
  120. }