|
|
@@ -38,6 +38,7 @@ public class fqcitemsdetail : IHttpHandler, IReadOnlySessionState
|
|
|
b.fqcitemsdetailButtonExport = true;
|
|
|
b.fqcitemsdetailButtonReload = true;
|
|
|
b.fqcitemsdetailButtonBatch = true;
|
|
|
+ b.fqcitemsdetailButtonImport = true;
|
|
|
};
|
|
|
switch (context.Request["m"].ToString().ToLower())
|
|
|
{
|
|
|
@@ -142,6 +143,278 @@ public class fqcitemsdetail : IHttpHandler, IReadOnlySessionState
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
+ case "Import":
|
|
|
+ {
|
|
|
+ //批量插入修改删除处理
|
|
|
+ if (b.fqcitemsdetailButtonImport)
|
|
|
+ {
|
|
|
+ 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");
|
|
|
+ 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);
|
|
|
+ context.Response.Write(batch(context.Request["data"], context.Request["id"]));
|
|
|
+ DataTable detailTable = Import.ExcelToDataTable(diskFileName);
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ conn.BeginTransaction();
|
|
|
+ int itemsID = Convert.ToInt32(context.Request["id"]);
|
|
|
+ if (detailTable != null && detailTable.Rows.Count > 0)
|
|
|
+ {
|
|
|
+
|
|
|
+ DataTable itemsdetailsTable = conn.ExecuteDatatable(@" SELECT
|
|
|
+ 1
|
|
|
+ FROM
|
|
|
+ TP_PM_FQCITEMSDETAIL m
|
|
|
+ WHERE
|
|
|
+ m.VALUEFLAG = '1'
|
|
|
+ AND m.ITEMSID = @ITEMSID@
|
|
|
+ ",
|
|
|
+ new CDAParameter("ITEMSID", itemsID)
|
|
|
+ );
|
|
|
+
|
|
|
+ if (itemsdetailsTable != null && itemsdetailsTable.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ DataTable itemsTable = conn.ExecuteDatatable(@" SELECT
|
|
|
+ m.ITEMSID,
|
|
|
+ m.INSPECTTYPE,
|
|
|
+ m.INSPECTTYPE,
|
|
|
+ m.INSPECTNAME,
|
|
|
+ m.GOODSID,
|
|
|
+ m.GOODSCODE,
|
|
|
+ m.INSPECTVERSION,
|
|
|
+ m.REMARKS,
|
|
|
+ m.VALUEFLAG,
|
|
|
+ m.ACCOUNTID
|
|
|
+ FROM
|
|
|
+ TP_PM_FQCITEMS m
|
|
|
+ WHERE
|
|
|
+ m.VALUEFLAG = '1'
|
|
|
+ AND m.ITEMSID = @ITEMSID@
|
|
|
+ ",
|
|
|
+ new CDAParameter("ITEMSID", itemsID)
|
|
|
+ );
|
|
|
+
|
|
|
+ //产品明细
|
|
|
+ DataTable goodsTable = conn.ExecuteDatatable(@" SELECT
|
|
|
+ m.ITEMSID,
|
|
|
+ m.GOODSID,
|
|
|
+ m.GOODSCODE,
|
|
|
+ m.ACCOUNTID,
|
|
|
+ m.REMARKS
|
|
|
+ FROM
|
|
|
+ TP_PM_FQCITEMSGOODS m
|
|
|
+ WHERE
|
|
|
+ m.VALUEFLAG = '1'
|
|
|
+ AND m.ITEMSID = @ITEMSID@
|
|
|
+ ",
|
|
|
+ new CDAParameter("ITEMSID", itemsID)
|
|
|
+ );
|
|
|
+
|
|
|
+ //根据ID删除之前的版本
|
|
|
+ int result = conn.ExecuteNonQuery(@"
|
|
|
+ UPDATE TP_PM_FQCITEMS
|
|
|
+ SET
|
|
|
+ VALUEFLAG = 0,
|
|
|
+ UPDATEUSERID = @UPDATEUSERID@,
|
|
|
+ UPDATETIME = sysdate
|
|
|
+ WHERE
|
|
|
+ ITEMSID = @ITEMSID@
|
|
|
+ ",
|
|
|
+ new CDAParameter("ITEMSID", itemsID),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+ //查询原数据,新建一条版本号加一的数据,主表,明细,产品
|
|
|
+ int resultaddItems = conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_PM_FQCITEMS (
|
|
|
+ INSPECTTYPE,
|
|
|
+ INSPECTNAME,
|
|
|
+ GOODSID,
|
|
|
+ GOODSCODE,
|
|
|
+ INSPECTVERSION,
|
|
|
+ REMARKS,
|
|
|
+ ACCOUNTID,
|
|
|
+ CREATEUSERID,
|
|
|
+ UPDATEUSERID
|
|
|
+ ) VALUES (
|
|
|
+ @INSPECTTYPE@,
|
|
|
+ @INSPECTNAME@,
|
|
|
+ @GOODSID@,
|
|
|
+ @GOODSCODE@,
|
|
|
+ @INSPECTVERSION@,
|
|
|
+ @REMARKS@,
|
|
|
+ @ACCOUNTID@,
|
|
|
+ @CREATEUSERID@,
|
|
|
+ @UPDATEUSERID@
|
|
|
+ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("INSPECTTYPE", itemsTable.Rows[0]["INSPECTTYPE"].ToString()),
|
|
|
+ new CDAParameter("INSPECTNAME", itemsTable.Rows[0]["INSPECTNAME"].ToString()),
|
|
|
+ new CDAParameter("GOODSID", 0),
|
|
|
+ new CDAParameter("GOODSCODE", itemsTable.Rows[0]["GOODSCODE"].ToString()),
|
|
|
+ new CDAParameter("INSPECTVERSION", Convert.ToInt32(itemsTable.Rows[0]["INSPECTVERSION"]) + 1),
|
|
|
+ new CDAParameter("REMARKS", itemsTable.Rows[0]["REMARKS"]),
|
|
|
+ new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+ object newID = conn.ExecuteScalar(@"SELECT SEQ_PM_FQCITEMS_ID.currval from dual");
|
|
|
+
|
|
|
+ //产品
|
|
|
+ for (int i = 0; i < goodsTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ int goodsresult = conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_PM_FQCITEMSGOODS ( ITEMSID, GOODSID, GOODSCODE, ACCOUNTID, CREATEUSERID, UPDATEUSERID, REMARKS )
|
|
|
+ VALUES ( @ITEMSID@, @GOODSID@, @GOODSCODE@, @ACCOUNTID@, @CREATEUSERID@, @UPDATEUSERID@, @REMARKS@ )",
|
|
|
+ new CDAParameter("ITEMSID", newID),
|
|
|
+ new CDAParameter("GOODSID", goodsTable.Rows[i]["GOODSID"].ToString()),
|
|
|
+ new CDAParameter("GOODSCODE", goodsTable.Rows[i]["GOODSCODE"].ToString()),
|
|
|
+ new CDAParameter("REMARKS", goodsTable.Rows[i]["REMARKS"]),
|
|
|
+ new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ //明细
|
|
|
+ for (int i = 0; i < detailTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ int detailresult = conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_PM_FQCITEMSDETAIL (
|
|
|
+ ITEMSID,
|
|
|
+ INSPECTITEM,
|
|
|
+ INSPECTTOOL,
|
|
|
+ INSPECTMARK,
|
|
|
+ INSPECTWAY,
|
|
|
+ ISINSPECT,
|
|
|
+ INSPECTBASIS,
|
|
|
+ DEFECTGRADE,
|
|
|
+ TECHNICALREQUIREMENT,
|
|
|
+ LOWERLIMIT,
|
|
|
+ UPPERLIMIT,
|
|
|
+ INSPECTCOUNT,
|
|
|
+ ISAVERAGE,
|
|
|
+ UNITNAME,
|
|
|
+ REMARKS,
|
|
|
+ ACCOUNTID,CREATEUSERID,UPDATEUSERID
|
|
|
+ ) VALUES (
|
|
|
+ @ITEMSID@,
|
|
|
+ @INSPECTITEM@,
|
|
|
+ (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC022' AND T.DICTIONARYVALUE=@INSPECTTOOL@),
|
|
|
+ (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC023' AND T.DICTIONARYVALUE=@INSPECTMARK@),
|
|
|
+ @INSPECTWAY@,
|
|
|
+ @ISINSPECT@,
|
|
|
+ @INSPECTBASIS@,
|
|
|
+ @DEFECTGRADE@,
|
|
|
+ @TECHNICALREQUIREMENT@,
|
|
|
+ @LOWERLIMIT@,
|
|
|
+ @UPPERLIMIT@,
|
|
|
+ @INSPECTCOUNT@,
|
|
|
+ @ISAVERAGE@,
|
|
|
+ @UNITNAME@,
|
|
|
+ @REMARKS@,
|
|
|
+ @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
|
|
|
+ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("ITEMSID", newID),
|
|
|
+ new CDAParameter("INSPECTITEM", detailTable.Rows[i]["INSPECTITEM"]),
|
|
|
+ new CDAParameter("INSPECTTOOL", detailTable.Rows[i]["INSPECTTOOL"]),
|
|
|
+ new CDAParameter("INSPECTMARK", detailTable.Rows[i]["INSPECTMARK"]),
|
|
|
+ new CDAParameter("INSPECTWAY", detailTable.Rows[i]["INSPECTWAY"]),
|
|
|
+ new CDAParameter("ISINSPECT", detailTable.Rows[i]["ISINSPECT"]),
|
|
|
+ new CDAParameter("INSPECTBASIS", detailTable.Rows[i]["INSPECTBASIS"]),
|
|
|
+ new CDAParameter("DEFECTGRADE", detailTable.Rows[i]["DEFECTGRADE"]),
|
|
|
+ new CDAParameter("TECHNICALREQUIREMENT", detailTable.Rows[i]["TECHNICALREQUIREMENT"]),
|
|
|
+ new CDAParameter("LOWERLIMIT", detailTable.Rows[i]["LOWERLIMIT"]),
|
|
|
+ new CDAParameter("UPPERLIMIT", detailTable.Rows[i]["UPPERLIMIT"]),
|
|
|
+ new CDAParameter("INSPECTCOUNT", detailTable.Rows[i]["INSPECTCOUNT"]),
|
|
|
+ new CDAParameter("ISAVERAGE", detailTable.Rows[i]["ISAVERAGE"]),
|
|
|
+ new CDAParameter("UNITNAME", detailTable.Rows[i]["UNITNAME"]),
|
|
|
+ new CDAParameter("REMARKS", detailTable.Rows[i]["REMARKS"]),
|
|
|
+ new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //明细
|
|
|
+ for (int i = 0; i < detailTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ int detailresult = conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_PM_FQCITEMSDETAIL (
|
|
|
+ ITEMSID,
|
|
|
+ INSPECTITEM,
|
|
|
+ INSPECTTOOL,
|
|
|
+ INSPECTMARK,
|
|
|
+ INSPECTWAY,
|
|
|
+ ISINSPECT,
|
|
|
+ INSPECTBASIS,
|
|
|
+ DEFECTGRADE,
|
|
|
+ TECHNICALREQUIREMENT,
|
|
|
+ LOWERLIMIT,
|
|
|
+ UPPERLIMIT,
|
|
|
+ INSPECTCOUNT,
|
|
|
+ ISAVERAGE,
|
|
|
+ UNITNAME,
|
|
|
+ REMARKS,
|
|
|
+ ACCOUNTID,CREATEUSERID,UPDATEUSERID
|
|
|
+ ) VALUES (
|
|
|
+ @ITEMSID@,
|
|
|
+ @INSPECTITEM@,
|
|
|
+ @INSPECTTOOL@,
|
|
|
+ @INSPECTMARK@,
|
|
|
+ @INSPECTWAY@,
|
|
|
+ @ISINSPECT@,
|
|
|
+ @INSPECTBASIS@,
|
|
|
+ @DEFECTGRADE@,
|
|
|
+ @TECHNICALREQUIREMENT@,
|
|
|
+ @LOWERLIMIT@,
|
|
|
+ @UPPERLIMIT@,
|
|
|
+ @INSPECTCOUNT@,
|
|
|
+ @ISAVERAGE@,
|
|
|
+ @UNITNAME@,
|
|
|
+ @REMARKS@,
|
|
|
+ @ACCOUNTID@,@CREATEUSERID@,@UPDATEUSERID@
|
|
|
+ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("ITEMSID", itemsID),
|
|
|
+ new CDAParameter("INSPECTITEM", detailTable.Rows[i]["INSPECTITEM"]),
|
|
|
+ new CDAParameter("INSPECTTOOL", detailTable.Rows[i]["INSPECTTOOL"]),
|
|
|
+ new CDAParameter("INSPECTMARK", detailTable.Rows[i]["INSPECTMARK"]),
|
|
|
+ new CDAParameter("INSPECTWAY", detailTable.Rows[i]["INSPECTWAY"]),
|
|
|
+ new CDAParameter("ISINSPECT", detailTable.Rows[i]["ISINSPECT"]),
|
|
|
+ new CDAParameter("INSPECTBASIS", detailTable.Rows[i]["INSPECTBASIS"]),
|
|
|
+ new CDAParameter("DEFECTGRADE", detailTable.Rows[i]["DEFECTGRADE"]),
|
|
|
+ new CDAParameter("TECHNICALREQUIREMENT", detailTable.Rows[i]["TECHNICALREQUIREMENT"]),
|
|
|
+ new CDAParameter("LOWERLIMIT", detailTable.Rows[i]["LOWERLIMIT"]),
|
|
|
+ new CDAParameter("UPPERLIMIT", detailTable.Rows[i]["UPPERLIMIT"]),
|
|
|
+ new CDAParameter("INSPECTCOUNT", detailTable.Rows[i]["INSPECTCOUNT"]),
|
|
|
+ new CDAParameter("ISAVERAGE", detailTable.Rows[i]["ISAVERAGE"]),
|
|
|
+ new CDAParameter("UNITNAME", detailTable.Rows[i]["UNITNAME"]),
|
|
|
+ new CDAParameter("REMARKS", detailTable.Rows[i]["REMARKS"]),
|
|
|
+ new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"]),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ conn.Commit();
|
|
|
+ }
|
|
|
+ context.Response.Write(new JsonResult(JsonStatus.success).ToJson());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
default:
|
|
|
{
|
|
|
break;
|
|
|
@@ -161,7 +434,7 @@ public class fqcitemsdetail : IHttpHandler, IReadOnlySessionState
|
|
|
/// <returns></returns>
|
|
|
private string batch(string jsondata, string sid)
|
|
|
{
|
|
|
- using(IDataAccess conn = DataAccess.Create())
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
{
|
|
|
conn.BeginTransaction();
|
|
|
int itemsID = Convert.ToInt32(sid);
|
|
|
@@ -182,7 +455,7 @@ public class fqcitemsdetail : IHttpHandler, IReadOnlySessionState
|
|
|
);
|
|
|
|
|
|
if (itemsdetailsTable != null && itemsdetailsTable.Rows.Count > 0)
|
|
|
- {
|
|
|
+ {
|
|
|
DataTable itemsTable = conn.ExecuteDatatable(@" SELECT
|
|
|
m.ITEMSID,
|
|
|
m.INSPECTTYPE,
|
|
|
@@ -309,8 +582,8 @@ public class fqcitemsdetail : IHttpHandler, IReadOnlySessionState
|
|
|
) VALUES (
|
|
|
@ITEMSID@,
|
|
|
@INSPECTITEM@,
|
|
|
- @INSPECTTOOL@,
|
|
|
- @INSPECTMARK@,
|
|
|
+ (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC022' AND T.DICTIONARYVALUE=@INSPECTTOOL@),
|
|
|
+ (SELECT DISTINCT T.DICTIONARYID AS ID FROM TP_MST_DATADICTIONARY T WHERE T.VALUEFLAG = 1 AND T.DICTIONARYTYPE = 'TPC023' AND T.DICTIONARYVALUE=@INSPECTMARK@),
|
|
|
@INSPECTWAY@,
|
|
|
@ISINSPECT@,
|
|
|
@INSPECTBASIS@,
|
|
|
@@ -417,7 +690,7 @@ public class fqcitemsdetail : IHttpHandler, IReadOnlySessionState
|
|
|
}
|
|
|
conn.Commit();
|
|
|
return new JsonResult(JsonStatus.success).ToJson();
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -807,6 +1080,7 @@ public class fqcitemsdetail : IHttpHandler, IReadOnlySessionState
|
|
|
public bool fqcitemsdetailButtonExport = false;
|
|
|
public bool fqcitemsdetailButtonReload = false;
|
|
|
public bool fqcitemsdetailButtonBatch = false;
|
|
|
+ public bool fqcitemsdetailButtonImport = false;
|
|
|
}
|
|
|
|
|
|
private class xRecord
|