%@ 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
-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;
}
}
}