| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- <%@ WebHandler Language="C#" Class="testform_importBarCode" %>
- using System;
- using System.Web;
- using System.Web.SessionState;
- using System.Data;
- using DK.XuWei.WebMes;
- using Curtain.DataAccess;
- using Curtain.Log;
- //EXCEL模板,要求
- //...
- public class testform_importBarCode : IHttpHandler, IReadOnlySessionState
- {
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/plain";
- //上传文件
- string filePath = "/mes/upload/"+DateTime.Now.ToString("yyyy-MM-dd");
- System.IO.Directory.CreateDirectory(context.Server.MapPath(filePath));
- string fileName = filePath + "/研发实验单" + DateTime.Now.ToString("yyyy-MM-dd");
- fileName += System.IO.Path.GetExtension(context.Request.Files[0].FileName);
- string diskFileName = context.Server.MapPath(fileName);
- if (System.IO.File.Exists(diskFileName)) System.IO.File.Delete(diskFileName);
- context.Request.Files[0].SaveAs(diskFileName);
- //读excel
- DataTable dt = Import.ExcelToDataTable(diskFileName);
- //Logger.Debug(dt.Rows.Count.ToString());
- //写入数据
- using (IDataAccess conn = DataAccess.Create())
- {
- int errorLineNo = 0;
- conn.BeginTransaction();
- try
- {
- #region 删除实验单所有产品
- //object a = context.Request["testformguidMaster"];
- //int result0 = conn.ExecuteNonQuery(@"
- // DELETE
- // TP_PM_TESTFORM2_GOODS
- // WHERE
- // TESTFORMGUID = @TESTFORMGUID@
- // ",
- // new CDAParameter("TESTFORMGUID", context.Request["testformguidMaster"])
- //);
- #endregion
- //判断字段包含
- string barCodeStr = "";
- for (int i=0;i<dt.Rows.Count;i++)
- {
- if (dt.Rows[i]["产品条码"] + "" == "") {
- continue;
- }
- if (barCodeStr.IndexOf(dt.Rows[i]["产品条码"] + ",") > -1) {
- continue;
- }
- barCodeStr += dt.Rows[i]["产品条码"] + ",";
- #region 校验重复
- object isExists = conn.ExecuteScalar(
- @"SELECT DISTINCT 1 FROM TP_PM_TESTFORM2_GOODS WHERE TESTFORMGUID = @TESTFORMGUID@ AND BARCODE = REPLACE(@BARCODE@,' ','') AND VALUEFLAG = 1",
- new CDAParameter("BARCODE", dt.Rows[i]["产品条码"]),
- new CDAParameter("TESTFORMGUID", context.Request["testformguidMaster"])
- );
- if (isExists != null)
- {
- continue;
- }
- #endregion
- //记录行号
- errorLineNo = i;
- int result = conn.ExecuteNonQuery(@"
- INSERT INTO TP_PM_TESTFORM2_GOODS (
- TESTFORMGUID,
- BARCODE,
- ACCOUNTID,CREATEUSERID,UPDATEUSERID
- ) VALUES (
- @TESTFORMGUID@,
- REPLACE(@BARCODE@,' ',''),
- @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
- )
- ",
- new CDAParameter("TESTFORMGUID",context.Request["testformguidMaster"]),
- new CDAParameter("BARCODE",dt.Rows[i]["产品条码"].ToString()),
- new CDAParameter("ACCOUNTID",HttpContext.Current.Session["accountId"]),
- new CDAParameter("CREATEUSERID",HttpContext.Current.Session["userId"]),
- new CDAParameter("UPDATEUSERID",HttpContext.Current.Session["userId"])
- );
- int result1 = conn.ExecuteNonQuery(@"
- UPDATE TP_PM_GROUTINGDAILYDETAIL SET TESTFORMFLAG=2 WHERE BARCODE = @BARCODE@
- ",
- new CDAParameter("BARCODE",dt.Rows[i]["产品条码"].ToString())
- );
- }
- conn.Commit();
- context.Response.Write(new JsonResult(JsonStatus.success).ToJson());
- }
- catch(Exception e)
- {
- Logger.Error(e);
- conn.Rollback();
- context.Response.Write(new JsonResult(JsonStatus.otherError) { message = "行号:" + errorLineNo + " 数据错误,请检查!" }.ToJson());
- }
- }
- }
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- }
|