using DataexchangeServer.Helper; using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.IO; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Text; namespace DataexchangeServer { //数据推送类 public class AE_MES_ERP { private SQLHelper _sqlHelper; string conStr; public AE_MES_ERP() { //conStr = Encoding.Default.GetString(Convert.FromBase64String(ConfigurationManager.ConnectionStrings["conn"].ConnectionString)); conStr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; conStr = SecurityHelper.Decrypt(conStr); _sqlHelper = new SQLHelper(conStr); //_sqlHelper = new SQLHelper(conStr); } #region 0.同步金蝶系统数据bool ErpToMesData(string taskid, DataSet inputds, string operatype, DataRow drSource, ref string msg) /// /// 同步金蝶系统数据 /// /// 任务ID /// JSON数据表集合 /// INSERT,UPDATE,DELETE /// 原始数据行 /// 返回的执行错误信息 /// public bool ErpToMesData(string taskid, DataSet inputds, string operatype, DataRow drSource, ref string msg,ref string flag,string rtaskid) { bool result = true; switch (taskid) { //1.ERPBMA部门信息表(同步推送) case "TB_ERPTOMES_BM": result = TB_ERPTOMES_BM(inputds, operatype, ref msg); break; //2.ERPGWA岗位信息表(同步推送) case "TB_ERPTOMES_GW": result = TB_ERPTOMES_GW(inputds, operatype, ref msg); break; //3.ERPRYA人员信息表(同步推送) case "TB_ERPTOMES_RY": result = TB_ERPTOMES_RY(inputds, operatype, ref msg); break; //4.ERPWFL物料分类表(同步推送) case "TB_ERPTOMES_WF": result = TB_ERPTOMES_WF(inputds, operatype, ref msg); break; //5.ERPWLA物料表(同步推送) case "TB_ERPTOMES_WL": result = TB_ERPTOMES_WL(inputds, operatype, ref msg); break; //6.ERPDWA计量单位(同步推送) case "TB_ERPTOMES_DW": result = TB_ERPTOMES_DW(inputds, operatype, ref msg); break; //7.ERPKHA客户信息(同步推送) case "TB_ERPTOMES_KH": result = TB_ERPTOMES_KH(inputds, operatype, ref msg); break; //8.ERPGYS供应商信息(同步推送) case "TB_ERPTOMES_GYS": result = TB_ERPTOMES_GYS(inputds, operatype, ref msg); break; //9.ERPCKA仓库信息档(同步推送) case "TB_ERPTOMES_CK": result = TB_ERPTOMES_CK(inputds, operatype, ref msg); break; //10.ERPGXA工序(同步推送) case "TB_ERPTOMES_GX": result = TB_ERPTOMES_GX(inputds, operatype, ref msg); break; //11.ERPBOMA(同步推送) case "TB_ERPTOMES_BOM": result = TB_ERPTOMES_BOM(inputds, operatype, ref msg); break; //12.ERPTDL替代料同步(同步推送) case "TB_ERPTOMES_TDL": result = TB_ERPTOMES_TDL(inputds, operatype, ref msg); break; //15.同步客户信息(同步推送) case "TB_ERPTOME_KHWL": result = TB_ERPTOME_KHWL(inputds, operatype, ref msg); break; //13.ERPCGA采购订单|委外订单(同步推送) case "TB_ERPTOMES_CG": result = TB_ERPTOMES_CG(taskid, inputds, operatype, ref msg, rtaskid); break; //14.ERPTLA生产投料单(同步推送) case "TB_ERPTOMES_TL": result = TB_ERPTOMES_TL(inputds, operatype, ref msg, drSource); break; //15.ERPXCKA销售出库单(同步推送)(以后不用了) case "TB_ERPTOMES_XCK": result = TB_ERPTOMES_XCK(inputds, operatype, ref msg); break; //16.ERPQCKA其它出库单(同步推送)(以后不用了) case "TB_ERPTOMES_QCK": result = TB_ERPTOMES_QCK(taskid, inputds, operatype, ref msg); break; //17.ERPTHA供应商退货单(同步推送)(以后不用了) case "TB_ERPTOMES_TH": result = TB_ERPTOMES_TH(inputds, operatype, ref msg); break; //22.ERPTHCONFIRM供应商退货确认(同步推送) case "TB_ERPTOMES_TH_CONFIRM": result = TB_ERPTOMES_TH_CONFIRM(inputds, operatype, ref msg); break; //18.MesToErp(同步推送) case "TB_MESTOERP_WGRK"://MESWGRK金蝶条码入库(外购入库)(同步推送) case "TB_MESTOERP_WWRK"://MESWWRK金蝶条码入库(委外入库)(同步推送) case "TB_MESTOERP_QTRK"://MESQTRK金蝶条码入库(其他入库)(同步推送) case "TB_MESTOERP_CPRK"://MESCPRK金蝶条码入库(产品入库)(同步推送) case "TB_MESTOERP_CGRK"://MESCPRK金蝶条码入库(采购入库)(同步推送) case "TB_MESTOERP_XSCK"://MESCPRK金蝶条码出库(销售出库)(同步推送) case "TB_MESTOERP_WLQDBB"://MESGCBOM金蝶高冲用料变更(同步推送) case "TB_MESTOERP_DD"://MESDD金蝶条码入库(调拨)(同步推送) case "TB_MESTOERP_PYPK"://MESPYPK金蝶条码入库(盘盈盘亏)(同步推送) case "TB_MESTOERP_LL"://MESLL金蝶条码出库(领料单)(同步推送) case "TB_MESTOERP_SCTL"://MESLL金蝶条码入库(领料单)(同步推送) case "TB_MESTOERP_SCBL"://MESLL金蝶条码入库(领料单)(同步推送) case "TB_MESTOERP_WTRK"://MESWTRK金蝶条码入库(受托入库)(同步推送) case "TB_MESTOERP_QTCK"://其他出库 case "TB_MESTOERP_XCK"://销售出库(蓝-订单、红) case "TB_MESTOERP_WWCK"://委外出库(蓝、红) case "TB_MESTOERP_WGTL"://外购退料 case "TB_MESTOERP_JYTL"://检验退料 case "TB_MESTOERP_SLSH"://推送审核送货单 case "TB_MESTOERP_SCDDXD"://推送审核送货单 case "TB_MESTOERP_TransferIn"://分布式调入单 case "TB_MESTOERP_ZJDB"://直接调拨单 case "TB_MESTOERP_WWDDXD"://委外订单下达 case "TB_MESTOERP_WWCG"://委外下推采购 result = MesToErp(drSource, ref msg, rtaskid); break; case "TB_MESTOERP_GDRK"://ERP工单入库查询 result = MesToErp(drSource, ref msg, rtaskid); break; case "TB_MESTOERP_CGRKLD": result = MesToErpLD(drSource, ref msg, rtaskid); break; case "TB_ERPTOMES_XSD": result = TB_ERPTOMES_XSD(inputds, operatype, ref msg); break; //20.委外其它出库单(同步推送) case "TB_ERPTOMES_WCK": result = TB_ERPTOMES_WCK(inputds, operatype, ref msg); break; //21.到货单(同步推送) case "TB_ERPTOMES_CGDH": result = TB_ERPTOMES_CGDH(inputds, operatype, ref msg); break; case "TB_MESTOERP_ICMO"://超入工单生成 result = MesToErp(drSource, ref msg,rtaskid); break; //23.TB_ERPTOMES_GDRK工单入库数量查询(同步推送) case "TB_ERPTOMES_GDRK": result = TB_ERPTOMES_GDRK(inputds, operatype, ref msg); break; //24.TB_ERPTOMES_FHTZ发货通知单 case "TB_ERPTOMES_FHTZ"://接收发货通知单 result = TB_ERPTOMES_FHTZ(taskid, inputds, operatype, ref msg); break; //25.委外投料单 case "TB_ERPTOMES_WW": result = TB_ERPTOMES_WW(taskid, inputds, operatype, ref msg); break; case "TB_XKY_GET_DHD"://推送审核送货单 result = XKY_GET_DHD(drSource, ref msg); break; case "TB_XKY_GET_DETAILS"://推送审核送货单 result = XKY_GET_DETAILS(drSource, ref msg); break; case "TB_XKY_GET_BARCODE"://推送审核送货单 result = XKY_GET_BARCODE(drSource, ref msg); break; } if (result) flag = "1"; else flag = "0"; return result; } private bool TB_ERPTOME_KHWL(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["ERPID"].ToString()); } //处理前判断是否存在 // operatype = DataIsInDB("GS_KWL", "ID", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } //插入前先删除重复键 DeleteDataBeforeInsert("GS_KWL", "ID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("HRMMAA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "HRMMAA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("ERPID", "ID"); //ID colMapping[1] = new SqlBulkCopyColumnMapping("KWL001", "KWL001"); //ID colMapping[2] = new SqlBulkCopyColumnMapping("KWL002", "KWL002");//部门编号 colMapping[3] = new SqlBulkCopyColumnMapping("KWL003", "KWL003");//部门名称 colMapping[4] = new SqlBulkCopyColumnMapping("KWL004", "KWL004");//行政级别 colMapping[5] = new SqlBulkCopyColumnMapping("KWL005", "KWL005");//责任者工号 colMapping[6] = new SqlBulkCopyColumnMapping("KWL006", "KWL006");//责任者姓名 colMapping[7] = new SqlBulkCopyColumnMapping("KWL007", "KWL007");//上级部门 colMapping[8] = new SqlBulkCopyColumnMapping("WLA008", "KWL008"); return DataTableToSQLServer(dt, conStr, "GS_KWL", colMapping, ref ErrorMsg); #endregion } //else if (operatype == "UPDATE") //{ // //ErrorMsg = "执行修改数据表"; // #region UPDATE // foreach (DataRow dr in dt.Rows) // { // sql += string.Format(@" update GS_KWL // set // KWL001='{1}', // KWL002='{2}', // KWL003='{3}', // KWL004='{4}', // KWL005='{5}', // KWL006='{6}', // KWL007='{7}', // KWL008='{8}' // where ID='{0}' AND KWL003='{3}' ; ", dr["ERPID"], dr["KWL001"], dr["KWL002"], dr["KWL003"], dr["KWL004"], dr["KWL005"], dr["KWL006"], dr["KWL007"], dr["WLA008"]); // } // return _sqlHelper.ExecuteNonQuery(sql) > 0; // #endregion //} else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE return true; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 1.ERPBMA部门信息表(同步推送) bool TB_ERPTOMES_BM(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPBMA部门信息表(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_BM(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["ERPID"].ToString()); } //处理前判断是否存在 operatype = DataIsInDB("GS_BM", "ERPID", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT") { #region INSERT dt.Columns.Add("BM001", typeof(string)); dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; dr["BM001"] = dr["ERPID"]; if (dr["BMA003"].ToString() == "") { dr["BMA003"] = "3";//默认本部 } } //插入前先删除重复键 DeleteDataBeforeInsert("GS_BM", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("HRMMAA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "HRMMAA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[1] = new SqlBulkCopyColumnMapping("BM001", "BM001"); //ID colMapping[2] = new SqlBulkCopyColumnMapping("BMA001", "BM002");//部门编号 colMapping[3] = new SqlBulkCopyColumnMapping("BMA002", "BM003");//部门名称 colMapping[4] = new SqlBulkCopyColumnMapping("BMA003", "BM004");//行政级别 colMapping[5] = new SqlBulkCopyColumnMapping("BMA004", "BM005");//责任者工号 colMapping[6] = new SqlBulkCopyColumnMapping("BMA005", "BM006");//责任者姓名 colMapping[7] = new SqlBulkCopyColumnMapping("BMA006", "BM007");//上级部门 colMapping[8] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); return DataTableToSQLServer(dt, conStr, "GS_BM", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { sql += string.Format(@" update GS_BM set BM002='{1}', BM003='{2}', BM004='{3}', BM005='{4}', BM006='{5}', BM007='{6}' where ERPID='{0}'; ", dr["ERPID"], dr["BMA001"], dr["BMA002"], dr["BMA003"], dr["BMA004"], dr["BMA005"], dr["BMA006"]); } return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE return true; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 2.ERPGWA岗位信息表(同步推送) bool TB_ERPTOMES_GW(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPGWA岗位信息表(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_GW(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["ERPID"].ToString()); } //处理前判断是否存在 operatype = DataIsInDB("HRMMBA", "ERPID", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT") { #region INSERT dt.Columns.Add("MBA004", typeof(string)); dt.Columns.Add("MBA005", typeof(string)); dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; dr["MBA004"] = "1";//人员类别 1-一线;2-二线 dr["MBA005"] = "0";//岗位类别 0-一般职;1-管理职;2-技术职;3-专业职;4-其它职 } //插入前先删除重复键 DeleteDataBeforeInsert("HRMMBA", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("HRMMBA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "HRMMBA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[1] = new SqlBulkCopyColumnMapping("GWA001", "MBA001");//岗位编号 colMapping[2] = new SqlBulkCopyColumnMapping("GWA002", "MBA002");//岗位名称 colMapping[3] = new SqlBulkCopyColumnMapping("GWA003", "MBA007");//岗位要求 colMapping[4] = new SqlBulkCopyColumnMapping("GWA004", "MBA003");//建立日期 colMapping[5] = new SqlBulkCopyColumnMapping("GWA005", "MBA008");//备注 colMapping[6] = new SqlBulkCopyColumnMapping("MBA004", "MBA004");//人员类别 colMapping[7] = new SqlBulkCopyColumnMapping("MBA005", "MBA005");//岗位类别 colMapping[8] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); return DataTableToSQLServer(dt, conStr, "HRMMBA", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { sql += string.Format(@" update HRMMBA set MBA001='{1}', MBA002='{2}', MBA007='{3}', MBA003='{4}', MBA008='{5}' where ERPID='{0}'; ", dr["ERPID"], dr["GWA001"], dr["GWA002"], dr["GWA003"], dr["GWA004"], dr["GWA005"]); } return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from HRMMBA where ERPID in ('{0}'); ", string.Join("','", IDList)); return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 3.ERPRYA人员信息表(同步推送) bool TB_ERPTOMES_RY(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPRYA人员信息表(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_RY(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["ERPID"].ToString()); } //处理前判断是否存在 operatype = DataIsInDB("GS_RY", "ERPID", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT") { #region INSERT dt.Columns.Add("RY006", typeof(string)); dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; dr["RY006"] = "1";//人员类别 1-一线;2-二线 } //插入前先删除重复键 DeleteDataBeforeInsert("GS_RY", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("HRMMAC", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "HRMMAC重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[1] = new SqlBulkCopyColumnMapping("RYA001", "RY002");//职工工号 colMapping[2] = new SqlBulkCopyColumnMapping("RYA002", "RY003");//职工姓名 colMapping[3] = new SqlBulkCopyColumnMapping("RYA003", "RY001");//部门编码 colMapping[4] = new SqlBulkCopyColumnMapping("RYA004", "RY019");//部门名称 colMapping[5] = new SqlBulkCopyColumnMapping("RYA005", "RY004");//岗位编码 colMapping[6] = new SqlBulkCopyColumnMapping("RYA006", "RY005");//岗位名称 colMapping[7] = new SqlBulkCopyColumnMapping("RYA007", "RY007");//手机号 colMapping[8] = new SqlBulkCopyColumnMapping("RYA008", "RY010");//调入日期 colMapping[9] = new SqlBulkCopyColumnMapping("RYA009", "RY011");//调出日期 colMapping[10] = new SqlBulkCopyColumnMapping("RYA010", "RY013");//备注 colMapping[11] = new SqlBulkCopyColumnMapping("RY006", "RY006");//备注 colMapping[12] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); return DataTableToSQLServer(dt, conStr, "GS_RY", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { sql += string.Format(@" update GS_RY set RY002='{1}', RY003='{2}', RY001='{3}', RY019='{4}', RY004='{5}', RY005='{6}', RY007='{7}', RY010='{8}', RY011='{9}', RY013='{10}' where ERPID='{0}'; ", dr["ERPID"] , dr["RYA001"], dr["RYA002"], dr["RYA003"], dr["RYA004"], dr["RYA005"] , dr["RYA006"], dr["RYA007"], dr["RYA008"], dr["RYA009"], dr["RYA010"]); } return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE return true; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 4.ERPWFL物料分类表(同步推送) bool TB_ERPTOMES_WF(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPWFL物料分类表(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_WF(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["ERPID"].ToString()); } //处理前判断是否存在 operatype = DataIsInDB("BASBAB", "ERPID", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT") { #region INSERT dt.Columns.Add("BAB005", typeof(string)); //dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); //dr["AUDITING"] = "Y"; dr["BAB005"] = "N";//是否系统 if (dr["WFL001"].ToString()=="10" || dr["WFL001"].ToString() == "12" || dr["WFL001"].ToString() == "11") { dr["WFL003"] = "A"; } if (dr["WFL001"].ToString()== "30" ) { dr["WFL003"] = "C"; } if (dr["WFL001"].ToString()== "22"|| dr["WFL001"].ToString() == "21"|| dr["WFL001"].ToString() == "23"|| dr["WFL001"].ToString() == "24"|| dr["WFL001"].ToString() == "25") { dr["WFL003"] = "B"; } if (dr["WFL001"].ToString() == "90" || dr["WFL001"].ToString() == "91" || dr["WFL001"].ToString() == "92" ) { dr["WFL003"] = "D"; } } //插入前先删除重复键 DeleteDataBeforeInsert("BASBAB", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("BASBAB", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "BASBAB重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[1] = new SqlBulkCopyColumnMapping("WFL001", "BAB001");//分类编号 colMapping[2] = new SqlBulkCopyColumnMapping("WFL002", "BAB003");//分类名称 colMapping[3] = new SqlBulkCopyColumnMapping("WFL003", "BAB002");//父节点编号 colMapping[4] = new SqlBulkCopyColumnMapping("WFL004", "BAB004");//备注 colMapping[5] = new SqlBulkCopyColumnMapping("BAB005", "BAB005"); return DataTableToSQLServer(dt, conStr, "BASBAB", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { sql += string.Format(@" update BASBAB set BAB001='{1}', BAB003='{2}', BAB002='{3}', BAB004='{4}' where ERPID='{0}'; ", dr["ERPID"] , dr["WFL001"], dr["WFL002"], dr["WFL003"], dr["WFL004"]); } return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from BASBAB where ERPID in ('{0}'); ", string.Join("','", IDList)); return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 5.ERPWLA物料表(同步推送) bool TB_ERPTOMES_WL(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPWLA物料表(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_WL(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; string sqlL = ""; //用来拼ID集合 List IDList = new List(); if (operatype != "INSERT" && operatype != "UPDATE") { sql = string.Format(@" delete from GS_WL where WL001 in ('{0}') ", operatype); _sqlHelper.ExecuteNonQuery(sql); return true; } if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["WLA001"].ToString()); } //处理前判断是否存在 operatype = DataIsInDB("GS_WL", "WL001", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT") { #region INSERT dt.Columns.Add("AUDITING", typeof(string)); //dt.Columns.Add("MBA030", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["WLA001"].ToString()); string str = dr["WLA016"].ToString(); string strT = dr["WLA018"].ToString(); //dr["WLA011"] = str+"."+ strT; dr["AUDITING"] = "Y"; //dr["MBA030"] = "A"; } //插入前先删除重复键 DeleteDataBeforeInsert("GS_WL", "WL001", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("INVMBA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "INVMBA重复键删除失败!"; // return false; //} //选择想要的列插入新表 DataTable dtHead = dt.DefaultView.ToTable(true, "WLA001", "WLA002", "WLA003", "WLA004", "WLA005", "WLA006", "WLA007", "WLA008", "WLA009", "WLA010", "WLA011", "WLA012", "WLA015", "ERPID", "AUDITING", "WLA013", "WLA014", "WLA020", "WLA021", "WLA022", "WLA023", "WLA024", "WLA025", "WLA026", "WLA027", "WLA028", "WLA029", "WLA030", "WLA031", "WLA032", "WLA033", "WLA034", "WLA035", "WLA036", "WLA037", "WLA038", "WLA039", "WLA040", "WLA041","WLA042", "WLA043", "WLA044", "WLA045", "WLA046", "WLA047", "WLA048", "WLA049", "WLA050", "WLA051", "WLA052", "WLA053", "WLA054", "WLA055","WLA056", "WLA057", "WLA058"); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dtHead.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("WLA001", "WL001"); // 物料编码 colMapping[1] = new SqlBulkCopyColumnMapping("WLA002", "WL002"); // 物料名称 colMapping[2] = new SqlBulkCopyColumnMapping("WLA003", "WL004"); // 物料规格 colMapping[3] = new SqlBulkCopyColumnMapping("WLA004", "WL005"); // 单位 colMapping[4] = new SqlBulkCopyColumnMapping("WLA005", "WL007"); // ABC分类 colMapping[5] = new SqlBulkCopyColumnMapping("WLA006", "WL011"); // 安全库存 colMapping[6] = new SqlBulkCopyColumnMapping("WLA007", "WL012"); // 最大库存 colMapping[7] = new SqlBulkCopyColumnMapping("WLA008", "WL013"); // 最小包装数量 colMapping[8] = new SqlBulkCopyColumnMapping("WLA009", "WL020"); // 虚拟料号 colMapping[9] = new SqlBulkCopyColumnMapping("WLA010", "WL026"); // 主要仓库 colMapping[10] = new SqlBulkCopyColumnMapping("WLA011", "WL003"); // 物料分类编号 colMapping[11] = new SqlBulkCopyColumnMapping("WLA012", "WL029"); // 保质期 colMapping[12] = new SqlBulkCopyColumnMapping("WLA015", "WL024"); // 备注 colMapping[13] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); // ERPID colMapping[14] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); //免检标志根据数据看是否用备注来存,然后通过触发器更新到INVMBD特性表中 colMapping[15] = new SqlBulkCopyColumnMapping("WLA013", "WL015"); // 免检标志 colMapping[16] = new SqlBulkCopyColumnMapping("WLA014", "WL017"); // 客户编码 colMapping[17] = new SqlBulkCopyColumnMapping("WLA025", "WL008"); // 图号 //colMapping[17] = new SqlBulkCopyColumnMapping("WLA020", "MBA039"); // 分组编号 //colMapping[18] = new SqlBulkCopyColumnMapping("WLA021", "MBA040"); // 分组名称 //colMapping[19] = new SqlBulkCopyColumnMapping("WLA022", "Exprop1"); // 辅助属性1 //colMapping[20] = new SqlBulkCopyColumnMapping("WLA023", "Exprop2"); // 辅助属性2 //colMapping[21] = new SqlBulkCopyColumnMapping("WLA024", "Exprop3"); // 辅助属性3 //colMapping[22] = new SqlBulkCopyColumnMapping("WLA025", "Exprop4"); // 辅助属性4 //colMapping[23] = new SqlBulkCopyColumnMapping("WLA026", "Exprop5"); // 辅助属性5 //colMapping[24] = new SqlBulkCopyColumnMapping("WLA027", "MBA037"); // 是否启用批号 //colMapping[25] = new SqlBulkCopyColumnMapping("MBA030", "MBA030"); // 生成分类,默认原料 //colMapping[26] = new SqlBulkCopyColumnMapping("WLA028", "MBA041"); // 上级分组编号 //colMapping[27] = new SqlBulkCopyColumnMapping("WLA029", "MBA042"); // 上级分组名称 //colMapping[28] = new SqlBulkCopyColumnMapping("WLA030", "MBA043"); // 图号 // int A = _sqlHelper.ExecuteNonQuery(sqlL); colMapping[23] = new SqlBulkCopyColumnMapping("WLA026", "WL039"); colMapping[24] = new SqlBulkCopyColumnMapping("WLA027", "WL040"); colMapping[25] = new SqlBulkCopyColumnMapping("WLA028", "WL041"); colMapping[26] = new SqlBulkCopyColumnMapping("WLA029", "WL042"); colMapping[27] = new SqlBulkCopyColumnMapping("WLA030", "WL043"); colMapping[28] = new SqlBulkCopyColumnMapping("WLA031", "WL044"); colMapping[29] = new SqlBulkCopyColumnMapping("WLA032", "WL045"); colMapping[30] = new SqlBulkCopyColumnMapping("WLA033", "WL046"); colMapping[31] = new SqlBulkCopyColumnMapping("WLA034", "WL047"); colMapping[32] = new SqlBulkCopyColumnMapping("WLA035", "WL048"); colMapping[33] = new SqlBulkCopyColumnMapping("WLA036", "WL049"); colMapping[34] = new SqlBulkCopyColumnMapping("WLA037", "WL050"); colMapping[35] = new SqlBulkCopyColumnMapping("WLA038", "WL051"); colMapping[36] = new SqlBulkCopyColumnMapping("WLA039", "WL052"); colMapping[37] = new SqlBulkCopyColumnMapping("WLA040", "WL053"); colMapping[38] = new SqlBulkCopyColumnMapping("WLA041", "WL054"); colMapping[39] = new SqlBulkCopyColumnMapping("WLA042", "WL055"); colMapping[40] = new SqlBulkCopyColumnMapping("WLA043", "WL056"); colMapping[41] = new SqlBulkCopyColumnMapping("WLA044", "WL057"); colMapping[42] = new SqlBulkCopyColumnMapping("WLA045", "WL058"); colMapping[43] = new SqlBulkCopyColumnMapping("WLA046", "WL059"); colMapping[44] = new SqlBulkCopyColumnMapping("WLA047", "WL060"); colMapping[45] = new SqlBulkCopyColumnMapping("WLA048", "WL061"); colMapping[46] = new SqlBulkCopyColumnMapping("WLA049", "WL062"); colMapping[47] = new SqlBulkCopyColumnMapping("WLA050", "WL063"); colMapping[48] = new SqlBulkCopyColumnMapping("WLA051", "WL064"); colMapping[49] = new SqlBulkCopyColumnMapping("WLA052", "WL065"); colMapping[50] = new SqlBulkCopyColumnMapping("WLA053", "WL066"); colMapping[51] = new SqlBulkCopyColumnMapping("WLA054", "WL067"); colMapping[52] = new SqlBulkCopyColumnMapping("WLA055", "WL068"); colMapping[53] = new SqlBulkCopyColumnMapping("WLA056", "WL069"); colMapping[54] = new SqlBulkCopyColumnMapping("WLA057", "WL070"); colMapping[55] = new SqlBulkCopyColumnMapping("WLA058", "WL071"); return DataTableToSQLServer(dtHead, conStr, "GS_WL", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { string str = dr["WLA016"].ToString(); string strT = dr["WLA018"].ToString(); //dr["WLA011"] = str + "." + strT; sql += string.Format(@" update GS_WL set WL001='{1}', WL002='{2}', WL004='{3}', WL005='{4}', WL007='{5}', WL011='{6}', WL012='{7}', WL013='{8}', WL020='{9}', WL026='{10}', WL003='{11}', WL024='{12}', WL015='{13}', WL017='{14}', WL008='{15}',ERPID='{16}', WL039='{17}',WL040='{18}',WL041='{19}',WL042='{20}',WL043='{21}',WL044='{22}',WL045='{23}',WL046='{24}',WL047='{25}',WL048='{26}', WL049='{27}',WL050='{28}',WL051='{29}',WL052='{30}',WL053='{31}',WL054='{32}',WL055='{33}',WL056='{34}',WL057='{35}',WL058='{36}', WL059='{37}',WL060='{38}',WL061='{39}',WL062='{40}',WL063='{41}',WL064='{42}',WL065='{43}',WL066='{44}',WL067='{45}',WL068='{46}',WL069='{47}',WL070='{48}',WL071='{49}' where WL001='{0}'; ", dr["WLA001"] , dr["WLA001"], dr["WLA002"], dr["WLA003"], dr["WLA004"], dr["WLA005"], dr["WLA006"], dr["WLA007"] , dr["WLA008"], dr["WLA009"], dr["WLA010"], dr["WLA011"], dr["WLA015"], dr["WLA013"], dr["WLA014"], dr["WLA025"], dr["ERPID"] , dr["WLA026"], dr["WLA027"], dr["WLA028"], dr["WLA029"], dr["WLA030"], dr["WLA031"], dr["WLA032"], dr["WLA033"], dr["WLA034"] , dr["WLA035"], dr["WLA036"], dr["WLA037"], dr["WLA038"], dr["WLA039"], dr["WLA040"], dr["WLA041"], dr["WLA042"], dr["WLA043"] , dr["WLA044"], dr["WLA045"], dr["WLA046"], dr["WLA047"], dr["WLA048"], dr["WLA049"], dr["WLA050"], dr["WLA051"], dr["WLA052"] , dr["WLA053"], dr["WLA054"], dr["WLA055"], dr["WLA056"], dr["WLA057"], dr["WLA058"] ); } //int A = _sqlHelper.ExecuteNonQuery(sqlL); return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE return true; //foreach (DataRow dr in dt.Rows) //{ // IDList.Add(dr["ERPID"].ToString()); //} //sql = string.Format(@" delete from INVMBA where ERPID in ('{0}'); ", string.Join("','", IDList)); //return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 6.ERPDWA计量单位(同步推送) bool TB_ERPTOMES_DW(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPDWA计量单位(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_DW(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["ERPID"].ToString()); } //处理前判断是否存在 operatype = DataIsInDB("BASMUA", "ERPID", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT") { #region INSERT //dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); //dr["AUDITING"] = "Y"; } //插入前先删除重复键 DeleteDataBeforeInsert("BASMUA", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("BASMUA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "BASMUA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[1] = new SqlBulkCopyColumnMapping("DWA001", "MUA001");//单位编码 colMapping[2] = new SqlBulkCopyColumnMapping("DWA002", "MUA002");//单位名称 return DataTableToSQLServer(dt, conStr, "BASMUA", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { sql += string.Format(@" update BASMUA set MUA001='{1}', MUA002='{2}' where ERPID='{0}'; ", dr["ERPID"] , dr["DWA001"], dr["DWA002"]); } return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from BASMUA where ERPID in ('{0}'); ", string.Join("','", IDList)); return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 7.ERPKHA客户信息(同步推送) bool TB_ERPTOMES_KH(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPKHA客户信息(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_KH(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["ERPID"].ToString()); } //处理前判断是否存在 operatype = DataIsInDB("COMMAA", "ERPID", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT") { #region INSERT //dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); //dr["AUDITING"] = "Y"; //dr["KHA002"] = dr["KHA003"]; } //插入前先删除重复键 DeleteDataBeforeInsert("COMMAA", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("COMMAA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "COMMAA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("KHA001", "MAA001"); // 客户编号 colMapping[1] = new SqlBulkCopyColumnMapping("KHA002", "MAA002"); // 客户简称 colMapping[2] = new SqlBulkCopyColumnMapping("KHA003", "MAA003"); // 客户名称 colMapping[3] = new SqlBulkCopyColumnMapping("KHA004", "MAA004"); // 客户英文 colMapping[4] = new SqlBulkCopyColumnMapping("KHA005", "MAA009"); // 联系人 colMapping[5] = new SqlBulkCopyColumnMapping("KHA006", "MAA010"); // 电话 colMapping[6] = new SqlBulkCopyColumnMapping("KHA007", "MAA006"); // 备注 colMapping[7] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); // ERPID //colMapping[8] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); return DataTableToSQLServer(dt, conStr, "COMMAA", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { sql += string.Format(@" update COMMAA set MAA001='{1}', MAA002='{2}', MAA003='{3}', MAA004='{4}', MAA009='{5}', MAA010='{6}', MAA006='{7}' where ERPID='{0}'; ", dr["ERPID"] , dr["KHA001"], dr["KHA003"], dr["KHA003"], dr["KHA004"], dr["KHA005"], dr["KHA006"], dr["KHA007"]); } return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from COMMAA where ERPID in ('{0}'); ", string.Join("','", IDList)); return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 8.ERPGYS供应商信息(同步推送) bool TB_ERPTOMES_GYS(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPGYS供应商信息(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_GYS(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["ERPID"].ToString()); } //处理前判断是否存在 operatype = DataIsInDB("GS_GYS", "ERPID", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT //dt.Columns.Add("MAA005", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } //插入前先删除重复键 DeleteDataBeforeInsert("GS_GYS", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("PURMAA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "PURMAA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("GYSA001", "GYS001"); // 供应商编号 colMapping[1] = new SqlBulkCopyColumnMapping("GYSA002", "GYS002"); // 供应商简称 colMapping[2] = new SqlBulkCopyColumnMapping("GYSA003", "GYS003"); // 审核状态 colMapping[3] = new SqlBulkCopyColumnMapping("GYSA004", "GYS004"); // 禁用状态 colMapping[4] = new SqlBulkCopyColumnMapping("GYSA005", "GYS005"); // 组织号 colMapping[5] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); // ERPID colMapping[6] = new SqlBulkCopyColumnMapping("FUseOrgId", "FUseOrgId"); // 内/外销 //colMapping[8] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); return DataTableToSQLServer(dt, conStr, "GS_GYS", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { sql += string.Format(@" update GS_GYS set GYS001='{1}', GYS002='{2}', GYS003='{3}', GYS004='{4}', GYS005='{5}', FUseOrgld='{6}' where ERPID='{0}'; ", dr["ERPID"] , dr["GYSA001"], dr["GYSA002"], dr["GYSA003"], dr["GYSA004"], dr["GYSA005"], dr["FUseOrgld"]); } return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from GS_GYS where ERPID in ('{0}'); ", string.Join("','", IDList)); return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 9.ERPCKA仓库信息档(同步推送) bool TB_ERPTOMES_CK(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPCKA仓库信息档(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_CK(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["ERPID"].ToString()); } //处理前判断是否存在 operatype = DataIsInDB("GS_CKA", "ERPID", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT") { #region INSERT dt.Columns.Add("MDA003", typeof(string));//ERP仓库编号 dt.Columns.Add("MDA004", typeof(string));//部材类型 A=原材料,B=半成品,C=成品 dt.Columns.Add("MDA006", typeof(string));//存货性质 1=存货仓 0=非存货仓 dt.Columns.Add("MDA007", typeof(string));//纳入可用量计算 Y=纳入,N=不纳入 dt.Columns.Add("MDA008", typeof(string));//库存量不足准许出库 Y=可以,N=不可以 dt.Columns.Add("MDA009", typeof(string));//是否参与盘点 Y=参与,N=不参与 dt.Columns.Add("MDA011", typeof(string));//仓库状态 Y=生效,N=失效 dt.Columns.Add("MDA012", typeof(string));//仓库状态 Y=生效,N=失效 foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["MDA003"] = dr["CKA001"]; dr["MDA004"] = "A"; dr["MDA006"] = "1"; dr["MDA007"] = "Y"; dr["MDA008"] = "N"; dr["MDA009"] = "Y"; dr["MDA011"] = "Y"; dr["CKA003"] = "1"; } //插入前先删除重复键 DeleteDataBeforeInsert("GS_CKA", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("BASMDA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "BASMDA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("CKA001", "CKA001"); // 仓库编号 colMapping[1] = new SqlBulkCopyColumnMapping("CKA002", "CKA002"); // 仓库名称 colMapping[2] = new SqlBulkCopyColumnMapping("CKA003", "CKA005"); // 质量状态 colMapping[3] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); // ERPID colMapping[4] = new SqlBulkCopyColumnMapping("MDA003", "CKA003"); // ERP仓库编号 colMapping[5] = new SqlBulkCopyColumnMapping("MDA004", "CKA004"); // 部材类型 A=原材料,B=半成品,C=成品 colMapping[6] = new SqlBulkCopyColumnMapping("MDA006", "CKA006"); // 仓库性质 1=存货仓 0=非存货仓 colMapping[7] = new SqlBulkCopyColumnMapping("MDA007", "CKA007"); // 纳入可用量计算 Y=纳入,N=不纳入 colMapping[8] = new SqlBulkCopyColumnMapping("MDA008", "CKA008"); // 库存量不足准许出库 Y=可以,N=不可以 colMapping[9] = new SqlBulkCopyColumnMapping("MDA009", "CKA009"); // 是否参与盘点 Y=参与,N=不参与 colMapping[10] = new SqlBulkCopyColumnMapping("MDA011", "CKA011"); // 仓库状态 Y=生效,N=失效 colMapping[11] = new SqlBulkCopyColumnMapping("MDA012", "CKA012");//仓库性质 1良品2不良品3待检品4报废品5途中品 return DataTableToSQLServer(dt, conStr, "GS_CKA", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { sql += string.Format(@" update GS_CKA set CKA001='{1}', CKA002='{2}', CKA005='{3}' where ERPID='{0}'; ", dr["ERPID"] , dr["CKA001"], dr["CKA002"], "1"); } return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE return true; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 10.ERPGXA工序(同步推送) bool TB_ERPTOMES_GX(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPGXA工序(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_GX(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } if (operatype == "INSERT" || operatype == "UPDATE") { foreach (DataRow dr in ds.Tables[0].Rows) { IDList.Add(dr["ERPID"].ToString()); } //处理前判断是否存在 operatype = DataIsInDB("MCSMBA", "ERPID", string.Join("','", IDList), "") ? "UPDATE" : "INSERT"; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT") { #region INSERT dt.Columns.Add("MBA008", typeof(string));//是否返工点 foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["GXA005"] = "Y"; dr["MBA008"] = "N"; } //插入前先删除重复键 DeleteDataBeforeInsert("MCSMBA", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("MCSMBA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "MCSMBA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); // ERPID colMapping[1] = new SqlBulkCopyColumnMapping("GXA001", "MBA001"); // 工序代码 colMapping[2] = new SqlBulkCopyColumnMapping("GXA002", "MBA002"); // 工序名称 colMapping[3] = new SqlBulkCopyColumnMapping("GXA003", "MBA003"); // 工序描述 colMapping[4] = new SqlBulkCopyColumnMapping("GXA004", "MBA004"); // 工序要求 colMapping[5] = new SqlBulkCopyColumnMapping("GXA005", "MBA006"); // 使用状态 colMapping[6] = new SqlBulkCopyColumnMapping("GXA006", "MBA007"); // 备注信息 colMapping[7] = new SqlBulkCopyColumnMapping("MBA008", "MBA008"); // 是否返工点 //colMapping[8] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); return DataTableToSQLServer(dt, conStr, "MCSMBA", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { sql += string.Format(@" update MCSMBA set MBA001='{1}', MBA002='{2}', MBA003='{3}', MBA004='{4}', MBA006='{5}', MBA007='{6}' where ERPID='{0}'; ", dr["ERPID"] , dr["GXA001"], dr["GXA002"], dr["GXA003"], dr["GXA004"], dr["GXA005"], dr["GXA006"]); } return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from MCSMBA where ERPID in ('{0}'); ", string.Join("','", IDList)); return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 11.ERPBOMA(同步推送) bool TB_ERPTOMES_BOM(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPBOMA(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_BOM(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "ERPBOMA") { #region BOM主表的处理 dt.Columns.Add("AUDITING", typeof(string)); //dt.Columns.Add("ID", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; if (dr["BOMA007"].ToString() == "") { dr["BOMA007"] = "0"; } if (dr["BOMA009"].ToString() == "") { dr["BOMA009"] = "0"; } if (dr["BOMA010"].ToString() == "") { dr["BOMA010"] = "0"; } if (dr["BOMA011"].ToString() == "") { dr["BOMA011"] = "0"; } if (dr["BOMA013"].ToString() == "") { dr["BOMA013"] = "0"; } //dr["ID"] = dr["ERPID"]; } //插入前先删除重复键 DeleteDataBeforeInsert("BOMMAA", "ID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("BOMMAA", "ID", string.Join("','", IDList), "")) //{ // ErrorMsg = "BOMMAA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("ERPID", "ID"); // ID colMapping[1] = new SqlBulkCopyColumnMapping("BOMA001", "MAA001"); // 主件编码 colMapping[2] = new SqlBulkCopyColumnMapping("BOMA002", "MAA002"); // 单位 colMapping[3] = new SqlBulkCopyColumnMapping("BOMA003", "MAA003"); // BOM版本 colMapping[4] = new SqlBulkCopyColumnMapping("BOMA004", "MAA004"); // 变更单号 colMapping[5] = new SqlBulkCopyColumnMapping("BOMA005", "MAA005"); // ECN变更版次 colMapping[6] = new SqlBulkCopyColumnMapping("BOMA006", "MAA006"); // 程序编号 colMapping[7] = new SqlBulkCopyColumnMapping("BOMA007", "MAA007"); // 总点数 colMapping[8] = new SqlBulkCopyColumnMapping("BOMA008", "MAA008"); // 基板名称 colMapping[9] = new SqlBulkCopyColumnMapping("BOMA009", "MAA009"); // 基板厚度 colMapping[10] = new SqlBulkCopyColumnMapping("BOMA010", "MAA010"); // 基版宽度 colMapping[11] = new SqlBulkCopyColumnMapping("BOMA011", "MAA011"); // 基板枚数 colMapping[12] = new SqlBulkCopyColumnMapping("BOMA012", "MAA012"); // 时间戳 colMapping[13] = new SqlBulkCopyColumnMapping("BOMA013", "MAA013"); // 标准用量 colMapping[14] = new SqlBulkCopyColumnMapping("BOMA014", "MAA014"); // 备注信息 colMapping[15] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); DataTableToSQLServer(dt, conStr, "BOMMAA", colMapping, ref ErrorMsg); #endregion } if (dt.TableName == "ERPBOMB") { #region BOM明细的处理 dt.Columns.Add("AUDITING", typeof(string)); //dt.Columns.Add("ID", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; if (dr["BOMB007"].ToString() == "") { dr["BOMB007"] = "0"; } if (dr["BOMB008"].ToString() == "") { dr["BOMB008"] = "1"; } if (dr["BOMB009"].ToString() == "") { dr["BOMB009"] = "0"; } if (dr["BOMB011"].ToString() == "") { dr["BOMB011"] = "0"; } if (dr["BOMB017"].ToString() == "") { dr["BOMB017"] = "0"; } if (dr["BOMB006"].ToString() == "") { dr["BOMB006"] = "PCS"; } //dr["ID"] = dr["ERPID"]; } //插入前先删除重复键 DeleteDataBeforeInsert("BOMMAB", "ID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("BOMMAB", "ID+MAB002", string.Join("','", IDList), "")) //{ // ErrorMsg = "BOMMAB重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("ERPID", "ID"); // ID colMapping[1] = new SqlBulkCopyColumnMapping("BOMB001", "MAB001"); // 主件编码 colMapping[2] = new SqlBulkCopyColumnMapping("BOMB002", "MAB002"); // 序号 colMapping[3] = new SqlBulkCopyColumnMapping("BOMB003", "MAB003"); // 物料编码 colMapping[4] = new SqlBulkCopyColumnMapping("BOMB004", "MAB024"); // 物料名称 colMapping[5] = new SqlBulkCopyColumnMapping("BOMB005", "MAB029"); // 物料规格 colMapping[6] = new SqlBulkCopyColumnMapping("BOMB006", "MAB004"); // 单位 colMapping[7] = new SqlBulkCopyColumnMapping("BOMB007", "MAB006"); // 组成用量 colMapping[8] = new SqlBulkCopyColumnMapping("BOMB008", "MAB007"); // 底数 colMapping[9] = new SqlBulkCopyColumnMapping("BOMB009", "MAB008"); // 损耗率% colMapping[10] = new SqlBulkCopyColumnMapping("BOMB010", "MAB009"); // 工艺 colMapping[11] = new SqlBulkCopyColumnMapping("BOMB011", "MAB010"); // 水口料比例 colMapping[12] = new SqlBulkCopyColumnMapping("BOMB012", "MAB011"); // 生效日期 colMapping[13] = new SqlBulkCopyColumnMapping("BOMB013", "MAB013"); // 失效日期 colMapping[14] = new SqlBulkCopyColumnMapping("BOMB014", "MAB012"); // 板号 colMapping[15] = new SqlBulkCopyColumnMapping("BOMB015", "MAB015"); // 点位 colMapping[16] = new SqlBulkCopyColumnMapping("BOMB016", "MAB016"); // 材料类型 colMapping[17] = new SqlBulkCopyColumnMapping("BOMB017", "MAB017"); // 水口 colMapping[18] = new SqlBulkCopyColumnMapping("BOMB018", "MAB018"); // 工位 colMapping[19] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); DataTableToSQLServer(dt, conStr, "BOMMAB", colMapping, ref ErrorMsg); #endregion } #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE if (dt.TableName == "ERPBOMA") { foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from BOMMAA where ID in ('{0}'); delete from BOMMAB where ID in ('{0}'); ", string.Join("','", IDList)); } _sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 12.ERPTDL替代料同步(同步推送) bool TB_ERPTOMES_TDL(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPTDL替代料同步(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_TDL(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { DataTable dt = ds.Tables[0]; if (operatype == "INSERT") { #region INSERT dt.Columns.Add("ID", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["ID"] = dr["ERPID"]; } //插入前先删除重复键 DeleteDataBeforeInsert("BOMMBB", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("BOMMBB", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "BOMMBB重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); // ID colMapping[1] = new SqlBulkCopyColumnMapping("TDL001", "MBB001"); // 主件品号 colMapping[2] = new SqlBulkCopyColumnMapping("TDL002", "MBB002"); // BOM版本号 colMapping[3] = new SqlBulkCopyColumnMapping("TDL003", "MBB003"); // 材料品号 colMapping[4] = new SqlBulkCopyColumnMapping("TDL004", "MBB004"); // 通用材料品号 colMapping[5] = new SqlBulkCopyColumnMapping("TDL005", "MBB006"); // 通用顺序 colMapping[6] = new SqlBulkCopyColumnMapping("TDL006", "MBB007"); // 生效日期 colMapping[7] = new SqlBulkCopyColumnMapping("TDL007", "MBB008"); // 失效日期 colMapping[8] = new SqlBulkCopyColumnMapping("TDL008", "MBB013"); // 配套变更组 colMapping[9] = new SqlBulkCopyColumnMapping("TDL009", "MBB012"); // 备注 colMapping[10] = new SqlBulkCopyColumnMapping("ID", "ID"); // 备注 return DataTableToSQLServer(dt, conStr, "BOMMBB", colMapping, ref ErrorMsg); #endregion } else if (operatype == "UPDATE") { //ErrorMsg = "执行修改数据表"; #region UPDATE foreach (DataRow dr in dt.Rows) { sql += string.Format(@" update BOMMBB set MBB001='{1}', MBB002='{2}', MBB003='{3}', MBB004='{4}', MBB006='{5}', MBB007='{6}', MBB008='{7}', MBB013='{8}', MBB012='{9}' where ERPID='{0}'; ", dr["ERPID"] , dr["TDL001"], dr["TDL002"], dr["TDL003"], dr["TDL004"] , dr["TDL005"], dr["TDL006"], dr["TDL007"], dr["TDL008"], dr["TDL009"]); } return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from BOMMBB where ERPID in ('{0}'); ", string.Join("','", IDList)); return _sqlHelper.ExecuteNonQuery(sql) > 0; #endregion } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion #region 13.ERPCGA采购订单|委外订单(同步推送) bool TB_ERPTOMES_CG(string task_name,DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPCGA采购订单|委外订单(同步推送) /// /// 任务名称 /// 数据集 /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_CG(string task_name,DataSet ds, string operatype, ref string ErrorMsg,string rtaskid) { string sql = ""; string org = "宁波"; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (operatype != "INSERT" && operatype != "UPDATE") { sql = string.Format(@" delete from GS_CG where CGA001 in ('{0}') ", operatype); string sqlTT = string.Format(@" delete from CGDB where CGB001 in ('{0}') ", operatype); _sqlHelper.ExecuteNonQuery(sql); _sqlHelper.ExecuteNonQuery(sqlTT); return true; } if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "ERPCGA") { #region 采购订单主表的处理 dt.Columns.Add("AUDITING", typeof(string)); dt.Columns.Add("NEWERPID", typeof(string)); foreach (DataRow dr in dt.Rows) { if (dr.Table.Columns.Contains("CGAORG")) { org = "丽德"; string UP = string.Format(@"EXEC [WMS_CGLD_TOJX] '{0}' ", rtaskid); _sqlHelper.ExecuteNonQuery(UP); dr["NEWERPID"] = "LD"+dr["ERPID"].ToString(); IDList.Add("LD"+dr["ERPID"].ToString()); } else { IDList.Add(dr["ERPID"].ToString()); dr["NEWERPID"] = dr["ERPID"].ToString(); } dr["AUDITING"] = "Y"; if (dr["CGA002"].ToString() == "") { dr["CGA002"] = task_name == "TB_ERPTOMES_CG" ? "3301" : "3302"; } } //插入前先删除重复键 DeleteDataBeforeInsert("GS_CG", "ID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("PURDDA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "PURDDA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "flagApp"); colMapping[1] = new SqlBulkCopyColumnMapping("NEWERPID", "ID"); //ID colMapping[2] = new SqlBulkCopyColumnMapping("CGA001", "CGA001"); //采购单号 colMapping[3] = new SqlBulkCopyColumnMapping("CGA002", "CGA002"); //采购单别 colMapping[4] = new SqlBulkCopyColumnMapping("CGA003", "CGA003"); //采购日期 colMapping[5] = new SqlBulkCopyColumnMapping("CGA004", "CGA004"); //单据日期 colMapping[6] = new SqlBulkCopyColumnMapping("CGA005", "CGA005"); //单据类型 1、采购2、委外 colMapping[7] = new SqlBulkCopyColumnMapping("CGA006", "CGA006"); //供应商 colMapping[8] = new SqlBulkCopyColumnMapping("CGA007", "CGA007"); //供应商简称 colMapping[9] = new SqlBulkCopyColumnMapping("CGA008", "CGA008"); //关闭状态 colMapping[10] = new SqlBulkCopyColumnMapping("CGA009", "CGA009"); //客户编号 colMapping[11] = new SqlBulkCopyColumnMapping("CGA0010", "CGA010"); //发文单号 colMapping[12] = new SqlBulkCopyColumnMapping("CGA0011", "CGA011"); //交易币种 colMapping[13] = new SqlBulkCopyColumnMapping("CGA0012", "CGA012"); //营业担当 colMapping[14] = new SqlBulkCopyColumnMapping("CGA0013", "CGA013"); //营业电话 colMapping[15] = new SqlBulkCopyColumnMapping("CGA0014", "CGA014"); //采购担当 colMapping[16] = new SqlBulkCopyColumnMapping("CGA0015", "CGA015"); //审核者 colMapping[17] = new SqlBulkCopyColumnMapping("CGA0016", "CGA016"); //审核日期 colMapping[18] = new SqlBulkCopyColumnMapping("CGA0017", "CGA017"); //备注 if (dt.Columns.Contains("CGAORG")) { colMapping[19] = new SqlBulkCopyColumnMapping("CGAORG", "CGAORG"); //备注 } else { } if (dt.Columns.Contains("CGA018")) { colMapping[20] = new SqlBulkCopyColumnMapping("CGA018", "CGA018"); //备注 } if (dt.Columns.Contains("CGA0018")) { colMapping[20] = new SqlBulkCopyColumnMapping("CGA0018", "CGA018"); //备注 } DataTableToSQLServer(dt, conStr, "GS_CG", colMapping, ref ErrorMsg); #endregion } if (dt.TableName == "ERPCGB") { #region 采购订单明细的处理 dt.Columns.Add("AUDITING", typeof(string)); dt.Columns.Add("NEWERPID", typeof(string)); dt.Columns.Add("NEWERPIDB", typeof(string)); foreach (DataRow dr in dt.Rows) { if (org=="丽德") { IDList.Add("LD"+dr["ERPID"].ToString()); dr["NEWERPID"] = "LD" + dr["ERPID"].ToString(); dr["NEWERPIDB"] = "LD" + dr["ERP_EntryID"].ToString(); } else { IDList.Add(dr["ERPID"].ToString()); dr["NEWERPID"] = dr["ERPID"].ToString(); dr["NEWERPIDB"] = dr["ERP_EntryID"].ToString(); } dr["AUDITING"] = "Y"; if (dr["CGB008"].ToString() == "") { dr["CGB008"] = "0"; } else { Decimal A = Convert.ToDecimal(dr["CGB008"].ToString()); string B = A.ToString(); dr["CGB008"] = B; } if (dr["CGB0010"].ToString() == "") { dr["CGB0010"] = "0"; } else { Decimal A = Convert.ToDecimal(dr["CGB0010"].ToString()); string B = A.ToString(); dr["CGB0010"] = B; } if (dr["CGB0011"].ToString() == "") { dr["CGB0011"] = "0"; } else { Decimal A = Convert.ToDecimal(dr["CGB0011"].ToString()); string B = A.ToString(); dr["CGB0011"] = B; } if (dr["CGB0014"].ToString() == "") { dr["CGB0014"] = "0"; } else { Decimal A = Convert.ToDecimal(dr["CGB0014"].ToString()); string B = A.ToString(); dr["CGB0014"] = B; } if (dr["CGB0015"].ToString() == "") { dr["CGB0015"] = "0"; } } //插入前先删除重复键 DeleteDataBeforeInsert("CGDB", "PID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("PURDDB", "ERPID+DDB002", string.Join("','", IDList), "")) //{ // ErrorMsg = "PURDDB重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "flagApp"); colMapping[1] = new SqlBulkCopyColumnMapping("NEWERPID", "PID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("CGB001", "CGB001"); //采购单号 colMapping[3] = new SqlBulkCopyColumnMapping("CGB002", "CGB002"); //序号 colMapping[4] = new SqlBulkCopyColumnMapping("CGB003", "CGB003"); //物料编码 colMapping[5] = new SqlBulkCopyColumnMapping("CGB004", "CGB004"); //物料名称 colMapping[6] = new SqlBulkCopyColumnMapping("CGB005", "CGB005"); //物料规格 colMapping[7] = new SqlBulkCopyColumnMapping("CGB006", "CGB006"); //仓库编号 colMapping[8] = new SqlBulkCopyColumnMapping("CGB007", "CGB007"); //仓库名称 colMapping[9] = new SqlBulkCopyColumnMapping("CGB008", "CGB008"); //采购数量 colMapping[10] = new SqlBulkCopyColumnMapping("CGB009", "CGB009"); //单位 colMapping[11] = new SqlBulkCopyColumnMapping("CGB0010", "CGB010"); //采购单价 colMapping[12] = new SqlBulkCopyColumnMapping("CGB0011", "CGB011"); //采购金额 colMapping[13] = new SqlBulkCopyColumnMapping("CGB0012", "CGB012"); //预交货日 colMapping[14] = new SqlBulkCopyColumnMapping("CGB0013", "CGB013"); //客户料号 colMapping[15] = new SqlBulkCopyColumnMapping("CGB0014", "CGB014"); //已交数量 colMapping[16] = new SqlBulkCopyColumnMapping("CGB0015", "CGB015"); //已委外出库数量 colMapping[17] = new SqlBulkCopyColumnMapping("CGB0016", "CGB016"); //结束 colMapping[18] = new SqlBulkCopyColumnMapping("CGB0018", "CGB018"); //备注 colMapping[19] = new SqlBulkCopyColumnMapping("NEWERPIDB", "ID"); //备注 colMapping[20] = new SqlBulkCopyColumnMapping("CGB0017", "CGB017"); //备注 colMapping[21] = new SqlBulkCopyColumnMapping("CGB0019", "CGB019"); //交货上限 colMapping[22] = new SqlBulkCopyColumnMapping("CGB0020", "CGB020"); //超收比例 colMapping[23] = new SqlBulkCopyColumnMapping("CGB0021", "CGB021"); //含税单价 colMapping[24] = new SqlBulkCopyColumnMapping("CGB0022", "CGB022"); //价税合计 DataTableToSQLServer(dt, conStr, "CGDB", colMapping, ref ErrorMsg); foreach (DataRow dF in dt.Rows) { string UP = string.Format(@"EXEC API_UPDATE_CGDB {0},{1} ", dF["CGB001"].ToString(), dF["CGB002"].ToString()); _sqlHelper.ExecuteNonQuery(UP); } #endregion } #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE //if (dt.TableName == "ERPCGA") //{ // foreach (DataRow dr in dt.Rows) // { // IDList.Add(dr["ERPID"].ToString()); // } // sql = string.Format(@" delete from PURDDA where ERPID in ('{0}'); delete from PURDDB where ERPID in ('{0}'); ", string.Join("','", IDList)); //} //_sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 14.ERPTLA生产投料单(同步推送) bool TB_ERPTOMES_TL(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPTLA生产投料单(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_TL(DataSet ds, string operatype, ref string ErrorMsg,DataRow drT) { string sql = ""; string taskid = drT["task_id"].ToString(); string data = drT["data"].ToString(); //用来拼ID集合 List IDList = new List(); string dtName = ""; if (operatype != "INSERT" && operatype != "UPDATE") { sql = string.Format(@" delete from WOMCAA where CAA002 in ('{0}') ", operatype); _sqlHelper.ExecuteNonQuery(sql); return true; } if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "ERPTLA") { #region 投料单主表的处理 // dt.Columns.Add("AUDITING", typeof(string)); dt.Columns.Add("CAA022", typeof(string)); dt.Columns.Add("CAA020", typeof(string)); foreach (DataRow dr in dt.Rows) { String sqlDE = string.Format(@"delete from WOMCAB where PID in ('{0}')", dr["TLA001"].ToString()); _sqlHelper.ExecuteNonQuery(sqlDE); IDList.Add(dr["ERP_EntryID"].ToString()); dr["TLA012"] = Convert.ToDouble(dr["TLA012"]).ToString(); // dr["AUDITING"] = "Y"; dr["CAA022"] = dr["TLA012"]; dr["TLA002"] = dr["TLA019"];//工单批次直接取任务单号吧 dr["CAA020"] = DateTime.Now.ToString("yyyy-MM-dd"); if (dr["TLA004"].ToString() == "" || dr["TLA004"].ToString() == "1") { dr["TLA004"] = "5102";//默认DIP工单 } else { dr["TLA004"] = "5109";//返工工单 } if (dr["TLA015"].ToString().Length<5) { string womcaa = string.Format(@"SELECT * FROM WORKNO(NOLOCK) WHERE 单据编号='{0}'", dr["TLA002"].ToString()); DataTable WOM= _sqlHelper.ExecuteDataTable(womcaa); if (WOM.Rows.Count<1) { dr["TLA015"] =""; dr["TLA021"] = ""; } else { dr["TLA015"] = WOM.Rows[0]["备注"].ToString(); dr["TLA021"] = WOM.Rows[0]["客户名称"].ToString(); string womca = string.Format(@"SELECT * FROM KUDD(NOLOCK) WHERE fbillno='{0}'", WOM.Rows[0]["备注"].ToString()); DataTable WOMT = _sqlHelper.ExecuteDataTable(womca); if (WOMT.Rows.Count < 1) { dr["TLA014"] = ""; } else { dr["TLA014"] = WOMT.Rows[0]["forderbillno"].ToString(); } } } } //插入前先删除重复键 DeleteDataBeforeInsert("WOMCAA", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("WOMCAA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "WOMCAA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; //colMapping[1] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERP_EntryID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("TLA001", "CAA001"); //单号 colMapping[3] = new SqlBulkCopyColumnMapping("TLA002", "CAA002"); //ERP工单批次 colMapping[4] = new SqlBulkCopyColumnMapping("TLA003", "CAA003"); //客户编号 colMapping[5] = new SqlBulkCopyColumnMapping("TLA004", "CAA004"); //单据类型 colMapping[6] = new SqlBulkCopyColumnMapping("TLA005", "CAA005"); //开单日期 colMapping[7] = new SqlBulkCopyColumnMapping("TLA006", "CAA006"); //产品编码 colMapping[8] = new SqlBulkCopyColumnMapping("TLA007", "CAA007"); //产品名称 colMapping[9] = new SqlBulkCopyColumnMapping("TLA008", "CAA008"); //产品规格 colMapping[10] = new SqlBulkCopyColumnMapping("TLA009", "CAA009"); //单位 colMapping[11] = new SqlBulkCopyColumnMapping("TLA010", "CAA010"); //预计开工时间 colMapping[12] = new SqlBulkCopyColumnMapping("TLA011", "CAA011"); //预计完工时间 colMapping[13] = new SqlBulkCopyColumnMapping("TLA012", "CAA012"); //工单数量 colMapping[14] = new SqlBulkCopyColumnMapping("TLA013", "CAA015"); //BOM版次 colMapping[15] = new SqlBulkCopyColumnMapping("TLA021", "CAA017"); //客户名称 colMapping[16] = new SqlBulkCopyColumnMapping("TLA015", "CAA018"); //销售订单号 colMapping[17] = new SqlBulkCopyColumnMapping("TLA023", "CAA021"); //备注 colMapping[18] = new SqlBulkCopyColumnMapping("CAA022", "CAA022"); //计划数量 colMapping[19] = new SqlBulkCopyColumnMapping("TLA017", "CAA023"); //ERP源单ID colMapping[20] = new SqlBulkCopyColumnMapping("TLA018", "CAA025"); //ERP源单行号 colMapping[21] = new SqlBulkCopyColumnMapping("TLA019", "CAA024"); //ERP源单单号 colMapping[22] = new SqlBulkCopyColumnMapping("TLA020", "CAA014"); //工作中心 colMapping[23] = new SqlBulkCopyColumnMapping("TLA001", "ID"); //工作中心 colMapping[24] = new SqlBulkCopyColumnMapping("TLA022", "CAA019"); //已入库数量 colMapping[25] = new SqlBulkCopyColumnMapping("TLA014", "CAA016"); //客户订单号 colMapping[26] = new SqlBulkCopyColumnMapping("ERPID", "PID"); //客户订单号 colMapping[0] = new SqlBulkCopyColumnMapping("CAA020", "CAA020"); //审核时间 colMapping[27] = new SqlBulkCopyColumnMapping("TLA024", "CAA029"); //工单状态 colMapping[28] = new SqlBulkCopyColumnMapping("TLA025", "CAA030"); //废料关联 DataTableToSQLServer(dt, conStr, "WOMCAA", colMapping, ref ErrorMsg); //更新指令工单 foreach (DataRow dF in dt.Rows) { if (dF["TLA020"].ToString().Contains("装配")) { if (dF["TLA023"].ToString().Contains("-")) { string[] tr = dF["TLA023"].ToString().Split('-'); //int i = dF["TLA023"].ToString().LastIndexOf('-'); string StrNew = tr[1].ToString();//dF["TLA023"].ToString().Substring(i + 1, 10); string SQLT = string.Format(@"SELECT TOP 1 * FROM WOMCAA(NOLOCK) WHERE CAA018='{0}' ", StrNew); DataTable CAA = _sqlHelper.ExecuteDataTable(SQLT); if (CAA.Rows.Count > 0) { string UP = string.Format(@"UPDATE WOMCAA SET CAA016='{0}',CAA017='{1}',CAA018='{2}' WHERE CAA002='{3}' ", CAA.Rows[0]["CAA016"].ToString(), CAA.Rows[0]["CAA017"].ToString(), CAA.Rows[0]["CAA018"].ToString(), dF["TLA002"].ToString()); _sqlHelper.ExecuteNonQuery(UP); } } } string womDaa = string.Format(@"UPDATE WOMDAA SET DAA059 = CAA018, DAA016 = CAA008, DAA039 = CAA017,DAA058=CAA016 FROM WOMCAA WHERE CAA002 = DAA043 and CAA001='{0}' AND CAA001 <> '1'", dF["TLA001"].ToString()); _sqlHelper.ExecuteNonQuery(womDaa); string womDa = string.Format(@" ;WITH A AS( SELECT SUM(DAA027) F ,DAA014,DAA059 ,DAA043 FROM WOMDAA(NOLOCK) WHERE DAA038='{0}' AND DAA014='{1}' GROUP BY DAA014,DAA059 ,DAA043 ) UPDATE WOMCAA SET CAA013=A.F,CAA027=1 FROM A WHERE A.DAA059=CAA018 AND A.DAA043=CAA002 AND CAA006=DAA014 AND CAA001='{0}'", dF["TLA001"].ToString(), dF["TLA006"].ToString()); _sqlHelper.ExecuteNonQuery(womDa); } #endregion } if (dt.TableName == "ERPTLB") { #region 投料单明细的处理 //dt.Columns.Add("AUDITING", typeof(string)); dt.Columns.Add("CAB016", typeof(string)); foreach (DataRow dr in dt.Rows) { if (dr["TLB003"].ToString().Contains("05.0001.")) { dr["TLB006"]=Math.Ceiling(Convert.ToDecimal(dr["TLB006"].ToString())).ToString(); } else { dr["TLB006"] = Convert.ToDecimal(dr["TLB006"]).ToString(); } IDList.Add(dr["ERP_EntryID"].ToString()); dr["TLB012"] = Convert.ToDecimal(dr["TLB012"]).ToString(); // dr["AUDITING"] = "Y"; dr["CAB016"] = "0"; if (dr["TLB006"].ToString() == "") { dr["TLB006"] = "0"; } if (dr["TLB007"].ToString() == "") { dr["TLB007"] = "0"; } if (dr["TLB012"].ToString() == "") { dr["TLB012"] = "0"; } if (dr["TLB013"].ToString() == "") { dr["TLB013"] = "1"; } } //插入前先删除重复键 DeleteDataBeforeInsert("WOMCAB", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("WOMCAB", "ERPID+CAB002", string.Join("','", IDList), "")) //{ // ErrorMsg = "WOMCAB重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; // colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERP_EntryID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("TLB001", "CAB001"); //单号 colMapping[3] = new SqlBulkCopyColumnMapping("TLB002", "CAB002"); //序号 colMapping[4] = new SqlBulkCopyColumnMapping("TLB003", "CAB003"); //材料编码 colMapping[5] = new SqlBulkCopyColumnMapping("TLB004", "CAB004"); //材料名称 colMapping[6] = new SqlBulkCopyColumnMapping("TLB005", "CAB005"); //材料规格 colMapping[7] = new SqlBulkCopyColumnMapping("TLB006", "CAB006"); //需领用量 colMapping[8] = new SqlBulkCopyColumnMapping("TLB007", "CAB007"); //已领用量 colMapping[9] = new SqlBulkCopyColumnMapping("TLB008", "CAB008"); //工艺 colMapping[10] = new SqlBulkCopyColumnMapping("TLB009", "CAB009"); //单位 colMapping[11] = new SqlBulkCopyColumnMapping("TLB010", "CAB010"); //材料类型 colMapping[12] = new SqlBulkCopyColumnMapping("TLB011", "CAB011"); //主料 colMapping[13] = new SqlBulkCopyColumnMapping("TLB012", "CAB012"); //组成用量 colMapping[14] = new SqlBulkCopyColumnMapping("TLB013", "CAB013"); //底数 colMapping[15] = new SqlBulkCopyColumnMapping("TLB014", "CAB014"); //是否替料 colMapping[16] = new SqlBulkCopyColumnMapping("TLB015", "CAB015"); //点位 colMapping[17] = new SqlBulkCopyColumnMapping("CAB016", "CAB016"); //损耗 colMapping[18] = new SqlBulkCopyColumnMapping("TLB001", "PID"); //损耗 colMapping[0] = new SqlBulkCopyColumnMapping("TLB017", "CAB023"); //仓库 colMapping[19] = new SqlBulkCopyColumnMapping("TLB019", "CAB025"); //MES指令单 if (dt.Columns.Contains("TLB020")) colMapping[20] = new SqlBulkCopyColumnMapping("TLB020", "CAB028"); //MES指令单 if (dt.Columns.Contains("TLB021")) colMapping[21] = new SqlBulkCopyColumnMapping("TLB021", "CAB029"); //MES指令单 if (dt.Columns.Contains("TLB022")) colMapping[22] = new SqlBulkCopyColumnMapping("TLB022", "CAB030"); //MES指令单 //colMapping[19] = new SqlBulkCopyColumnMapping("TLB017", "CAB024"); //单身备注 //colMapping[0] = new SqlBulkCopyColumnMapping("ERPMXID", "ERPMXID"); //ERPMXID DataTableToSQLServer(dt, conStr, "WOMCAB", colMapping, ref ErrorMsg); #endregion } string SYSDEC = string.Format(@"UPDATE SYSDEC SET STATES='IGNORE' WHERE task_name='TB_ERPTOMES_TL' AND DATA='{0}' AND STATES='NEW' AND TASK_ID !='{1}'", data, taskid); _sqlHelper.ExecuteNonQuery(SYSDEC); #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE if (dt.TableName == "ERPTLA") { foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from WOMCAA where ERPID in ('{0}'); delete from WOMCAB where ERPID in ('{0}'); ", string.Join("','", IDList)); } _sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 15.ERPXCKA销售出库单(同步推送) bool TB_ERPTOMES_XCK(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPXCKA销售出库单(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_XCK(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; string djType = "出库"; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "ERPXCKA") { #region 销售出库单主表的处理 dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; //dr["XCKA002"] = dr["XCKA002"] == "退货" ? "2401" : "2307"; if (dr["XCKA002"].ToString() == "退货") { dr["XCKA002"] = "2401"; djType = "退货"; } else { dr["XCKA002"] = "2307"; djType = "出库"; } if (dr["XCKA020"].ToString() == "") { dr["XCKA020"] = "0"; } } if (djType == "退货") { #region 退货 //插入前先删除重复键 DeleteDataBeforeInsert("COMDEA", "ERPID", string.Join("','", IDList), ""); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("XCKA001", "DEA001"); //单号 colMapping[3] = new SqlBulkCopyColumnMapping("XCKA002", "DEA002"); //单据类型 colMapping[4] = new SqlBulkCopyColumnMapping("XCKA003", "DEA003"); //交易日期 colMapping[5] = new SqlBulkCopyColumnMapping("XCKA004", "DEA004"); //送货时间 colMapping[6] = new SqlBulkCopyColumnMapping("XCKA005", "DEA005"); //单据日期 colMapping[7] = new SqlBulkCopyColumnMapping("XCKA006", "DEA006"); //退货工厂 colMapping[8] = new SqlBulkCopyColumnMapping("XCKA007", "DEA007"); //工厂简称 colMapping[9] = new SqlBulkCopyColumnMapping("XCKA008", "DEA008"); //客户编号 colMapping[10] = new SqlBulkCopyColumnMapping("XCKA009", "DEA009"); //客户简称 colMapping[11] = new SqlBulkCopyColumnMapping("XCKA010", "DEA010"); //退货类型 colMapping[12] = new SqlBulkCopyColumnMapping("XCKA011", "DEA012"); //发行单号 colMapping[13] = new SqlBulkCopyColumnMapping("XCKA012", "DEA016"); //送货公司 colMapping[14] = new SqlBulkCopyColumnMapping("XCKA013", "DEA018"); //运输方式 colMapping[15] = new SqlBulkCopyColumnMapping("XCKA014", "DEA017"); //送货地点 colMapping[16] = new SqlBulkCopyColumnMapping("XCKA015", "DEA013"); //结算币种 colMapping[17] = new SqlBulkCopyColumnMapping("XCKA016", "DEA011"); //收货公司 colMapping[18] = new SqlBulkCopyColumnMapping("XCKA017", "DEA015"); //送货地址 colMapping[19] = new SqlBulkCopyColumnMapping("XCKA018", "DEA019"); //审核人员 colMapping[20] = new SqlBulkCopyColumnMapping("XCKA019", "DEA020"); //审核时间 colMapping[21] = new SqlBulkCopyColumnMapping("XCKA020", "DEA021"); //送货数量 colMapping[22] = new SqlBulkCopyColumnMapping("XCKA021", "DEA014"); //备注 DataTableToSQLServer(dt, conStr, "COMDEA", colMapping, ref ErrorMsg); #endregion } else { #region 出库 //插入前先删除重复键 DeleteDataBeforeInsert("COMDFA", "ERPID", string.Join("','", IDList), ""); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("XCKA001", "DFA001"); //送货单号 colMapping[3] = new SqlBulkCopyColumnMapping("XCKA002", "DFA002"); //单据类型 colMapping[4] = new SqlBulkCopyColumnMapping("XCKA003", "DFA003"); //送货日期 colMapping[5] = new SqlBulkCopyColumnMapping("XCKA004", "DFA004"); //送货时间 colMapping[6] = new SqlBulkCopyColumnMapping("XCKA005", "DFA005"); //单据日期 colMapping[7] = new SqlBulkCopyColumnMapping("XCKA006", "DFA006"); //送货工厂 colMapping[8] = new SqlBulkCopyColumnMapping("XCKA007", "DFA007"); //工厂简称 colMapping[9] = new SqlBulkCopyColumnMapping("XCKA008", "DFA008"); //客户编号 colMapping[10] = new SqlBulkCopyColumnMapping("XCKA009", "DFA009"); //客户简称 colMapping[11] = new SqlBulkCopyColumnMapping("XCKA010", "DFA010"); //送货类型 colMapping[12] = new SqlBulkCopyColumnMapping("XCKA011", "DFA011"); //发行单号 colMapping[13] = new SqlBulkCopyColumnMapping("XCKA012", "DFA012"); //起运地 colMapping[14] = new SqlBulkCopyColumnMapping("XCKA013", "DFA013"); //运输方式 colMapping[15] = new SqlBulkCopyColumnMapping("XCKA014", "DFA014"); //目的地 colMapping[16] = new SqlBulkCopyColumnMapping("XCKA015", "DFA015"); //结算币种 colMapping[17] = new SqlBulkCopyColumnMapping("XCKA016", "DFA016"); //收货公司 colMapping[18] = new SqlBulkCopyColumnMapping("XCKA017", "DFA017"); //送货地址 colMapping[19] = new SqlBulkCopyColumnMapping("XCKA018", "DFA018"); //审核人员 colMapping[20] = new SqlBulkCopyColumnMapping("XCKA019", "DFA019"); //审核时间 colMapping[21] = new SqlBulkCopyColumnMapping("XCKA020", "DFA020"); //送货数量 colMapping[22] = new SqlBulkCopyColumnMapping("XCKA021", "DFA021"); //备注 DataTableToSQLServer(dt, conStr, "COMDFA", colMapping, ref ErrorMsg); #endregion } #endregion } if (dt.TableName == "ERPXCKB") { #region 销售出库单明细的处理 dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "N"; if (dr["XCKB006"].ToString() == "") { dr["XCKB006"] = "0"; } else { if (djType == "退货") { dr["XCKB006"] = Convert.ToDouble(dr["XCKB006"].ToString()) * -1; } } if (dr["XCKB007"].ToString() == "") { dr["XCKB007"] = "0"; } if (dr["XCKB008"].ToString() == "") { dr["XCKB008"] = "0"; } else { if (djType == "退货") { dr["XCKB008"] = Convert.ToDouble(dr["XCKB008"].ToString()) * -1; } } if (dr["XCKB009"].ToString() == "") { dr["XCKB009"] = "0"; } if (dr["XCKB010"].ToString() == "") { dr["XCKB010"] = "0"; } if (dr["XCKB016"].ToString() == "") { dr["XCKB016"] = "0"; } if (dr["XCKB017"].ToString() == "") { dr["XCKB017"] = "0"; } if (dr["XCKB018"].ToString() == "") { dr["XCKB018"] = "0"; } } if (djType == "退货") { #region 退货 //插入前先删除重复键 DeleteDataBeforeInsert("COMDEB", "ERPID", string.Join("','", IDList), ""); DataTable dtt = new DataTable(); dtt.Columns.Add("AUDITING", typeof(String)); dtt.Columns.Add("ERPID", typeof(String)); dtt.Columns.Add("XCKB001", typeof(String)); dtt.Columns.Add("XCKB002", typeof(String)); dtt.Columns.Add("XCKB003", typeof(String)); dtt.Columns.Add("XCKB004", typeof(String)); dtt.Columns.Add("XCKB005", typeof(String)); dtt.Columns.Add("XCKB006", typeof(double)); dtt.Columns.Add("XCKB007", typeof(double)); dtt.Columns.Add("XCKB008", typeof(double)); dtt.Columns.Add("XCKB011", typeof(String)); dtt.Columns.Add("XCKB012", typeof(String)); dtt.Columns.Add("XCKB013", typeof(String)); dtt.Columns.Add("XCKB014", typeof(String)); dtt.Columns.Add("XCKB015", typeof(String)); dtt.Columns.Add("XCKB020", typeof(String)); dtt.Columns.Add("XCKB024", typeof(String)); foreach (DataRow dr in dt.Rows) { DataRow newRow = dtt.NewRow(); newRow["AUDITING"] = dr["AUDITING"]; newRow["ERPID"] = dr["ERPID"]; newRow["XCKB001"] = dr["XCKB001"]; newRow["XCKB002"] = dr["XCKB002"]; newRow["XCKB003"] = dr["XCKB003"]; newRow["XCKB004"] = dr["XCKB004"]; newRow["XCKB005"] = dr["XCKB005"]; newRow["XCKB006"] = dr["XCKB006"]; newRow["XCKB007"] = dr["XCKB007"]; newRow["XCKB008"] = dr["XCKB008"]; newRow["XCKB011"] = dr["XCKB011"]; newRow["XCKB012"] = dr["XCKB012"]; newRow["XCKB013"] = dr["XCKB013"]; newRow["XCKB014"] = dr["XCKB014"]; newRow["XCKB015"] = dr["XCKB015"]; newRow["XCKB020"] = dr["XCKB020"]; newRow["XCKB024"] = dr["XCKB024"]; dtt.Rows.Add(newRow); } SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dtt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("XCKB001", "DEB001"); // 单号 colMapping[3] = new SqlBulkCopyColumnMapping("XCKB002", "DEB002"); // 序号 colMapping[4] = new SqlBulkCopyColumnMapping("XCKB003", "DEB003"); // 产品编号 colMapping[5] = new SqlBulkCopyColumnMapping("XCKB004", "DEB004"); // 产品名称 colMapping[6] = new SqlBulkCopyColumnMapping("XCKB005", "DEB005"); // 产品规格 colMapping[7] = new SqlBulkCopyColumnMapping("XCKB006", "DEB006"); // 数量 colMapping[8] = new SqlBulkCopyColumnMapping("XCKB007", "DEB011"); // 单价 colMapping[9] = new SqlBulkCopyColumnMapping("XCKB008", "DEB012"); // 金额 //colMapping[10] = new SqlBulkCopyColumnMapping("XCKB009", "DFB009"); // 已完成数量 //colMapping[11] = new SqlBulkCopyColumnMapping("XCKB010", "DFB010"); // 总箱数 colMapping[10] = new SqlBulkCopyColumnMapping("XCKB011", "DEB018"); // 订单单号 colMapping[11] = new SqlBulkCopyColumnMapping("XCKB012", "DEB015"); // 客户单号 colMapping[12] = new SqlBulkCopyColumnMapping("XCKB013", "DEB027"); // 订单序号 colMapping[13] = new SqlBulkCopyColumnMapping("XCKB014", "DEB007"); // 仓库 colMapping[14] = new SqlBulkCopyColumnMapping("XCKB015", "DEB008"); // 仓库名称 //colMapping[17] = new SqlBulkCopyColumnMapping("XCKB016", "DFB016"); // 净重 //colMapping[18] = new SqlBulkCopyColumnMapping("XCKB017", "DFB017"); // 毛重 //colMapping[19] = new SqlBulkCopyColumnMapping("XCKB018", "DFB018"); // 体积 //colMapping[20] = new SqlBulkCopyColumnMapping("XCKB019", "DFB019"); // 包装明细 colMapping[15] = new SqlBulkCopyColumnMapping("XCKB020", "DEB029"); // BOM版本号 //colMapping[22] = new SqlBulkCopyColumnMapping("XCKB021", "DFB021"); // 客户料号 //colMapping[23] = new SqlBulkCopyColumnMapping("XCKB022", "DFB022"); // LOT批号 //colMapping[24] = new SqlBulkCopyColumnMapping("XCKB023", "DFB023"); // 卡板号 colMapping[16] = new SqlBulkCopyColumnMapping("XCKB024", "DEB030"); // 备注信息 DataTableToSQLServer(dtt, conStr, "COMDEB", colMapping, ref ErrorMsg); #endregion } else { #region 出库 //插入前先删除重复键 DeleteDataBeforeInsert("COMDFB", "ERPID", string.Join("','", IDList), ""); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("XCKB001", "DFB001"); // 单号 colMapping[3] = new SqlBulkCopyColumnMapping("XCKB002", "DFB002"); // 序号 colMapping[4] = new SqlBulkCopyColumnMapping("XCKB003", "DFB003"); // 产品编号 colMapping[5] = new SqlBulkCopyColumnMapping("XCKB004", "DFB004"); // 产品名称 colMapping[6] = new SqlBulkCopyColumnMapping("XCKB005", "DFB005"); // 产品规格 colMapping[7] = new SqlBulkCopyColumnMapping("XCKB006", "DFB006"); // 数量 colMapping[8] = new SqlBulkCopyColumnMapping("XCKB007", "DFB007"); // 单价 colMapping[9] = new SqlBulkCopyColumnMapping("XCKB008", "DFB008"); // 金额 colMapping[10] = new SqlBulkCopyColumnMapping("XCKB009", "DFB009"); // 已完成数量 colMapping[11] = new SqlBulkCopyColumnMapping("XCKB010", "DFB010"); // 总箱数 colMapping[12] = new SqlBulkCopyColumnMapping("XCKB011", "DFB011"); // 订单单号 colMapping[13] = new SqlBulkCopyColumnMapping("XCKB012", "DFB012"); // 客户单号 colMapping[14] = new SqlBulkCopyColumnMapping("XCKB013", "DFB013"); // 订单序号 colMapping[15] = new SqlBulkCopyColumnMapping("XCKB014", "DFB014"); // 仓库 colMapping[16] = new SqlBulkCopyColumnMapping("XCKB015", "DFB015"); // 仓库名称 colMapping[17] = new SqlBulkCopyColumnMapping("XCKB016", "DFB016"); // 净重 colMapping[18] = new SqlBulkCopyColumnMapping("XCKB017", "DFB017"); // 毛重 colMapping[19] = new SqlBulkCopyColumnMapping("XCKB018", "DFB018"); // 体积 colMapping[20] = new SqlBulkCopyColumnMapping("XCKB019", "DFB019"); // 包装明细 colMapping[21] = new SqlBulkCopyColumnMapping("XCKB020", "DFB020"); // BOM版本号 colMapping[22] = new SqlBulkCopyColumnMapping("XCKB021", "DFB021"); // 客户料号 colMapping[23] = new SqlBulkCopyColumnMapping("XCKB022", "DFB022"); // LOT批号 colMapping[24] = new SqlBulkCopyColumnMapping("XCKB023", "DFB023"); // 卡板号 colMapping[25] = new SqlBulkCopyColumnMapping("XCKB024", "DFB024"); // 备注信息 DataTableToSQLServer(dt, conStr, "COMDFB", colMapping, ref ErrorMsg); #endregion } #endregion } #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE if (dt.TableName == "ERPXCKA") { foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from COMDFA where ERPID in ('{0}'); delete from COMDFB where ERPID in ('{0}'); ", string.Join("','", IDList)); } _sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 16.ERPQCKA其它出库单(同步推送) bool TB_ERPTOMES_QCK(string task_name, DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPQCKA其它出库单(同步推送) /// /// 任务名称 /// 数据集 /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_QCK(string task_name, DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "ERPQCKA") { #region 其它出库单主表的处理 dt.Columns.Add("AUDITING", typeof(string)); dt.Columns.Add("DAF001", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; dr["DAF001"] = task_name == "TB_ERPTOMES_QCK" ? "5403" : "5408";//委外出库单 if (dr["QCKA008"].ToString() == "") { dr["QCKA008"] = "0"; } } //插入前先删除重复键 DeleteDataBeforeInsert("WOMDAF", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("WOMDAF", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "WOMDAF重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("DAF001", "DAF001"); //单别 colMapping[3] = new SqlBulkCopyColumnMapping("QCKA001", "DAF002"); //单号 colMapping[4] = new SqlBulkCopyColumnMapping("QCKA002", "DAF003"); //客户编码 colMapping[5] = new SqlBulkCopyColumnMapping("QCKA003", "DAF005"); //单据日期 colMapping[6] = new SqlBulkCopyColumnMapping("QCKA004", "DAF006"); //单据时间 colMapping[7] = new SqlBulkCopyColumnMapping("QCKA005", "DAF007"); //创建人员 colMapping[8] = new SqlBulkCopyColumnMapping("QCKA006", "DAF012"); //委外厂商 colMapping[9] = new SqlBulkCopyColumnMapping("QCKA007", "DAF013"); //厂商名称 colMapping[10] = new SqlBulkCopyColumnMapping("QCKA008", "DAF017"); //生产套数 colMapping[11] = new SqlBulkCopyColumnMapping("QCKA009", "DAF018"); //班次 colMapping[12] = new SqlBulkCopyColumnMapping("QCKA010", "DAF020"); //生产线别 colMapping[13] = new SqlBulkCopyColumnMapping("QCKA011", "DAF021"); //备注 DataTableToSQLServer(dt, conStr, "WOMDAF", colMapping, ref ErrorMsg); #endregion } if (dt.TableName == "ERPQCKB") { #region 其它出库单明细的处理 dt.Columns.Add("AUDITING", typeof(string)); dt.Columns.Add("DAG001", typeof(string)); dt.Columns.Add("DAG014", typeof(string)); dt.Columns.Add("DAG015", typeof(string)); dt.Columns.Add("DAG021", typeof(string)); dt.Columns.Add("DAG023", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "N"; dr["DAG001"] = task_name == "TB_ERPTOMES_QCK" ? "5403" : "5408";//委外出库单 dr["DAG014"] = dr["QCKB008"];//配料数量 dr["DAG015"] = "0";//已发数量 dr["DAG021"] = 0 - Convert.ToDecimal(dr["QCKB008"].ToString());//差异数量 dr["DAG023"] = dr["QCKB008"];//待发数量 if (dr["QCKB007"].ToString() == "") { dr["QCKB007"] = "0"; } if (dr["QCKB008"].ToString() == "") { dr["QCKB008"] = "0"; } } //处理K3的产品信息在明细的问题 sql = ""; DataTable dtCPMsg = dt.DefaultView.ToTable(true, "ERPID", "QCKB013", "QCKB014", "QCKB015", "QCKB016"); foreach (DataRow dr in dtCPMsg.Rows) { sql += string.Format(@" update WOMDAF set DAF023='{1}',--产品编码 DAF024='{2}',--产品名称 DAF025='{3}',--产品型号 DAF019='{4}' --BOM版本 where ERPID='{0}'; ", dr["ERPID"], dr["QCKB013"], dr["QCKB014"], dr["QCKB015"], dr["QCKB016"]); } _sqlHelper.ExecuteNonQuery(sql); //插入前先删除重复键 DeleteDataBeforeInsert("WOMDAG", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("WOMDAG", "ERPID+DAG003", string.Join("','", IDList), "")) //{ // ErrorMsg = "WOMDAG重复键删除失败!"; // return false; //} DataTable dt1 = dt.DefaultView.ToTable(false,"AUDITING","ERPID","DAG001","QCKB001","QCKB002","QCKB003","QCKB004","QCKB005", "QCKB006", "QCKB007", "QCKB008", "QCKB009", "QCKB010", "QCKB011", "QCKB012", "QCKB017", "DAG014", "DAG015", "DAG021", "DAG023"); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt1.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("DAG001", "DAG001"); // 单别 colMapping[3] = new SqlBulkCopyColumnMapping("QCKB001", "DAG002"); // 单号 colMapping[4] = new SqlBulkCopyColumnMapping("QCKB002", "DAG003"); // 序号 colMapping[5] = new SqlBulkCopyColumnMapping("QCKB003", "DAG004"); // 物料编码 colMapping[6] = new SqlBulkCopyColumnMapping("QCKB004", "DAG005"); // 物料名称 colMapping[7] = new SqlBulkCopyColumnMapping("QCKB005", "DAG006"); // 物料规格 colMapping[8] = new SqlBulkCopyColumnMapping("QCKB006", "DAG007"); // 单位 colMapping[9] = new SqlBulkCopyColumnMapping("QCKB007", "DAG010"); // BOM用量 colMapping[10] = new SqlBulkCopyColumnMapping("QCKB008", "DAG011"); // 出库数量 colMapping[11] = new SqlBulkCopyColumnMapping("DAG014", "DAG014"); // 配料数量 colMapping[12] = new SqlBulkCopyColumnMapping("DAG015", "DAG015"); // 已发数量 colMapping[13] = new SqlBulkCopyColumnMapping("DAG021", "DAG021"); // 差异数量 colMapping[14] = new SqlBulkCopyColumnMapping("DAG023", "DAG023"); // 待发数量 colMapping[15] = new SqlBulkCopyColumnMapping("QCKB009", "DAG028"); // 主料 colMapping[16] = new SqlBulkCopyColumnMapping("QCKB010", "DAG029"); // 是否替代 colMapping[17] = new SqlBulkCopyColumnMapping("QCKB011", "DAG016"); // 配料人员 colMapping[18] = new SqlBulkCopyColumnMapping("QCKB012", "DAG033"); // 备注 colMapping[19] = new SqlBulkCopyColumnMapping("QCKB017", "DAG040"); // 发料仓库 DataTableToSQLServer(dt1, conStr, "WOMDAG", colMapping, ref ErrorMsg); #endregion } #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE if (dt.TableName == "ERPQCKA") { foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from WOMDAF where ERPID in ('{0}'); delete from WOMDAG where ERPID in ('{0}'); ", string.Join("','", IDList)); } _sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 17.ERPTHA供应商退货单(同步推送) bool TB_ERPTOMES_TH(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPTHA供应商退货单(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_TH(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "ERPTHA") { #region 退货单主表的处理 dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "N"; dr["THA002"] = "3601"; if (dr["THA011"].ToString() == "") { dr["THA011"] = "0"; } string tha003 =dr["THA003"].ToString().Substring(0,10); dr["THA003"] = tha003; } //插入前先删除重复键 DeleteDataBeforeInsert("PURDKA", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("PURDKA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "PURDKA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("THA001", "DKA001"); //退货单号 colMapping[3] = new SqlBulkCopyColumnMapping("THA002", "DKA002"); //退货类型 colMapping[4] = new SqlBulkCopyColumnMapping("THA003", "DKA003"); //退货日期 colMapping[5] = new SqlBulkCopyColumnMapping("THA004", "DKA004"); //退货时间 colMapping[6] = new SqlBulkCopyColumnMapping("THA005", "DKA005"); //供应商编码 colMapping[7] = new SqlBulkCopyColumnMapping("THA006", "DKA006"); //供应商名称 colMapping[8] = new SqlBulkCopyColumnMapping("THA007", "DKA007"); //退货单号 colMapping[9] = new SqlBulkCopyColumnMapping("THA008", "DKA009"); //客户编号 colMapping[10] = new SqlBulkCopyColumnMapping("THA009", "DKA010"); //工厂编号 colMapping[11] = new SqlBulkCopyColumnMapping("THA010", "DKA011"); //目的地 colMapping[12] = new SqlBulkCopyColumnMapping("THA011", "DKA016"); //数量 colMapping[13] = new SqlBulkCopyColumnMapping("THA012", "DKA008"); //创建人员 colMapping[14] = new SqlBulkCopyColumnMapping("THA013", "DKA017"); //备注 DataTableToSQLServer(dt, conStr, "PURDKA", colMapping, ref ErrorMsg); #endregion } if (dt.TableName == "ERPTHB") { #region 退货单明细的处理 dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "N"; if (dr["THB006"].ToString() == "") { dr["THB006"] = "0"; } //if (dr["THB007"].ToString() == "") //{ dr["THB007"] = "0"; //} //if (dr["THB008"].ToString() == "") //{ dr["THB008"] = dr["THB006"]; //} if (dr["THB010"].ToString() == "") { dr["THB010"] = "0"; } if (dr["THB011"].ToString() == "") { dr["THB011"] = "0"; } } //插入前先删除重复键 DeleteDataBeforeInsert("PURDKB", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("PURDKB", "ERPID+DKB002", string.Join("','", IDList), "")) //{ // ErrorMsg = "PURDKB重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("THB001", "DKB001"); //单号 colMapping[3] = new SqlBulkCopyColumnMapping("THB002", "DKB002"); //序号 colMapping[4] = new SqlBulkCopyColumnMapping("THB003", "DKB003"); //物料编码 colMapping[5] = new SqlBulkCopyColumnMapping("THB004", "DKB004"); //物料名称 colMapping[6] = new SqlBulkCopyColumnMapping("THB005", "DKB005"); //物料规格 colMapping[7] = new SqlBulkCopyColumnMapping("THB006", "DKB006"); //申请退货数量 colMapping[8] = new SqlBulkCopyColumnMapping("THB007", "DKB007"); //实际退货数量 colMapping[9] = new SqlBulkCopyColumnMapping("THB008", "DKB008"); //差异数量 colMapping[10] = new SqlBulkCopyColumnMapping("THB009", "DKB009"); //单位 colMapping[11] = new SqlBulkCopyColumnMapping("THB010", "DKB010"); //单价 colMapping[12] = new SqlBulkCopyColumnMapping("THB011", "DKB011"); //金额 colMapping[13] = new SqlBulkCopyColumnMapping("THB012", "DKB012"); //来源单号 colMapping[14] = new SqlBulkCopyColumnMapping("THB013", "DKB013"); //来源序号 colMapping[15] = new SqlBulkCopyColumnMapping("THB014", "DKB014"); //包装明细 colMapping[16] = new SqlBulkCopyColumnMapping("THB015", "DKB015"); //不良区分 colMapping[17] = new SqlBulkCopyColumnMapping("THB016", "DKB016"); //不良项目 colMapping[18] = new SqlBulkCopyColumnMapping("THB017", "DKB017"); //仓库编码 colMapping[19] = new SqlBulkCopyColumnMapping("THB018", "DKB018"); //备注 colMapping[20] = new SqlBulkCopyColumnMapping("ERPMXID", "ERPMXID"); //ERPMXID DataTableToSQLServer(dt, conStr, "PURDKB", colMapping, ref ErrorMsg); #endregion } #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE if (dt.TableName == "ERPTHA") { foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from PURDKA where ERPID in ('{0}'); delete from PURDKB where ERPID in ('{0}'); ", string.Join("','", IDList)); } _sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 18.MesToErp(同步推送) bool MesToErp(DataRow dr, ref string ErrorMsg) /// /// MesToErp(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool MesToErp(DataRow dr, ref string ErrorMsg,string rtaskid) { string sql = string.Format(@" update sysdec set states='NEWIN' WHERE TASK_ID='{0}' ", rtaskid); _sqlHelper.ExecuteNonQuery(sql); try { string task_name = dr["task_name"].ToString(); string descript = dr["descript"].ToString(); string create_time = dr["create_time"].ToString(); string creator = dr["creator"].ToString(); string operatype = dr["operatype"].ToString(); string source_table = dr["source_table"].ToString(); string target_table = dr["target_table"].ToString(); string data = dr["data"].ToString(); string data_inserted = dr["data_inserted"].ToString(); string data_deleted = dr["data_deleted"].ToString(); WebReference.UserServiceImplService a = new WebReference.UserServiceImplService(); WebReference.user US = new WebReference.user(); // sendt.arg0. US.category = task_name; US.data = data_inserted; US.op = operatype; string res = a.Body(US).msg.ToString(); sql = string.Format(@" update sysdec set states='NEW' WHERE TASK_ID='{0}' ", rtaskid); _sqlHelper.ExecuteNonQuery(sql); //string res = a.arg0.ws.MES_TO_ERP_DataTransport(task_name, descript, create_time, creator, operatype, source_table, target_table, data, data_inserted, data_deleted); if (res.Contains("OK")) { ErrorMsg = res; return true; } else { ErrorMsg = res; return false; } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #endregion private bool MesToErpLD(DataRow dr, ref string ErrorMsg, string rtaskid) { string sql = string.Format(@" update sysdec set states='NEWIN' WHERE TASK_ID='{0}' ", rtaskid); _sqlHelper.ExecuteNonQuery(sql); try { string task_name = dr["task_name"].ToString(); string descript = dr["descript"].ToString(); string create_time = dr["create_time"].ToString(); string creator = dr["creator"].ToString(); string operatype = dr["operatype"].ToString(); string source_table = dr["source_table"].ToString(); string target_table = dr["target_table"].ToString(); string data = dr["data"].ToString(); string data_inserted = dr["data_inserted"].ToString(); string data_deleted = dr["data_deleted"].ToString(); WebReferenceLD1.UserServiceImplService a = new WebReferenceLD1.UserServiceImplService(); WebReferenceLD1.user US = new WebReferenceLD1.user(); // sendt.arg0. US.category = "TB_MESTOERP_CGRK"; US.data = data_inserted; US.op = operatype; string res = a.Body(US).msg.ToString(); sql = string.Format(@" update sysdec set states='NEW' WHERE TASK_ID='{0}' ", rtaskid); _sqlHelper.ExecuteNonQuery(sql); //string res = a.arg0.ws.MES_TO_ERP_DataTransport(task_name, descript, create_time, creator, operatype, source_table, target_table, data, data_inserted, data_deleted); if (res.Contains("OK")) { ErrorMsg = res; return true; } else { ErrorMsg = res; return false; } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #region 19.ERPXSA销售订单(同步推送) bool TB_ERPTOMES_XSD(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPXSA销售订单(同步推送) /// /// 数据集 /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_XSD(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "ERPXSA") { #region 采购订单主表的处理 dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; if (dr["XSA002"].ToString() == "") { dr["XSA002"] = "2201"; } if (dr["XSA012"].ToString() == "") { dr["XSA012"] = "0"; } } //插入前先删除重复键 DeleteDataBeforeInsert("COMDBA", "ERPID", string.Join("','", IDList), ""); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ID colMapping[2] = new SqlBulkCopyColumnMapping("XSA001", "DBA001"); // 订单单号 colMapping[3] = new SqlBulkCopyColumnMapping("XSA002", "DBA002"); // 订单单别 colMapping[4] = new SqlBulkCopyColumnMapping("XSA003", "DBA003"); // 受订日期 colMapping[5] = new SqlBulkCopyColumnMapping("XSA004", "DBA004"); // 单据版本 colMapping[6] = new SqlBulkCopyColumnMapping("XSA005", "DBA005"); // 单据日期 colMapping[7] = new SqlBulkCopyColumnMapping("XSA006", "DBA006"); // 工厂编号 colMapping[8] = new SqlBulkCopyColumnMapping("XSA007", "DBA007"); // 工厂简称 colMapping[9] = new SqlBulkCopyColumnMapping("XSA008", "DBA008"); // 客户编号 colMapping[10] = new SqlBulkCopyColumnMapping("XSA009", "DBA009"); // 客户简称 colMapping[11] = new SqlBulkCopyColumnMapping("XSA010", "DBA010"); // 客户单号 colMapping[12] = new SqlBulkCopyColumnMapping("XSA011", "DBA011"); // 部门编号 colMapping[13] = new SqlBulkCopyColumnMapping("XSA012", "DBA033"); // 总数量 colMapping[14] = new SqlBulkCopyColumnMapping("XSA013", "DBA023"); // 备注 colMapping[15] = new SqlBulkCopyColumnMapping("XSA014", "DBA031"); // 审核日期 colMapping[16] = new SqlBulkCopyColumnMapping("XSA015", "DBA032"); // 审核者 DataTableToSQLServer(dt, conStr, "COMDBA", colMapping, ref ErrorMsg); #endregion } if (dt.TableName == "ERPXSB") { #region 采购订单明细的处理 dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; if (dr["XSB008"].ToString() == "") { dr["XSB008"] = "0"; } if (dr["XSB009"].ToString() == "") { dr["XSB009"] = "0"; } if (dr["XSB010"].ToString() == "") { dr["XSB010"] = "0"; } if (dr["XSB012"].ToString() == "") { dr["XSB012"] = "0"; } } //插入前先删除重复键 DeleteDataBeforeInsert("COMDBB", "ERPID", string.Join("','", IDList), ""); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("XSB001", "DBB001"); //订单单号 colMapping[3] = new SqlBulkCopyColumnMapping("XSB002", "DBB002"); //序号 colMapping[4] = new SqlBulkCopyColumnMapping("XSB003", "DBB003"); //产品编码 colMapping[5] = new SqlBulkCopyColumnMapping("XSB004", "DBB004"); //产品名称 colMapping[6] = new SqlBulkCopyColumnMapping("XSB005", "DBB005"); //产品规格 colMapping[7] = new SqlBulkCopyColumnMapping("XSB006", "DBB006"); //预交货日期 colMapping[8] = new SqlBulkCopyColumnMapping("XSB007", "DBB007"); //订单数量 colMapping[9] = new SqlBulkCopyColumnMapping("XSB008", "DBB008"); //单位 colMapping[10] = new SqlBulkCopyColumnMapping("XSB009", "DBB009"); //单价 colMapping[11] = new SqlBulkCopyColumnMapping("XSB010", "DBB010"); //金额 colMapping[12] = new SqlBulkCopyColumnMapping("XSB011", "DBB011"); //客户产品编码 colMapping[13] = new SqlBulkCopyColumnMapping("XSB012", "DBB012"); //已交货数 colMapping[14] = new SqlBulkCopyColumnMapping("XSB013", "DBB013"); //结束 colMapping[15] = new SqlBulkCopyColumnMapping("XSB014", "DBB015"); //备注 DataTableToSQLServer(dt, conStr, "COMDBB", colMapping, ref ErrorMsg); #endregion } #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE if (dt.TableName == "ERPXSA") { foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from COMDBA where ERPID in ('{0}'); delete from COMDBB where ERPID in ('{0}'); ", string.Join("','", IDList)); } _sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 20.icstockbill委外出库单(同步推送) TB_ERPTOMES_WCK(DataSet ds, string operatype, ref string ErrorMsg) /// /// icstockbill委外出库单(同步推送) /// /// 数据集 /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_WCK(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); string dtName = ""; string BillNo = ""; if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "icstockbill") { #region 委外出库单主表的处理 dt.Columns.Add("AUDITING", typeof(string)); dt.Columns.Add("DAF001", typeof(string)); dt.Columns.Add("DAF017", typeof(decimal)); dt.Columns.Add("DAF026", typeof(decimal)); dt.Columns.Add("DAF027", typeof(decimal)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["FInterID"].ToString()); dr["AUDITING"] = "N"; dr["DAF001"] = "5408";//委外出库单 BillNo = dr["FBillNo"].ToString(); dr["DAF017"] = "0"; dr["DAF026"] = "0"; dr["DAF027"] = "0"; } //插入前先删除重复键 DeleteDataBeforeInsert("WOMDAF", "ERPID", string.Join("','", IDList), ""); DataTable dtHead = dt.DefaultView.ToTable(true, "AUDITING", "FInterID", "DAF001", "DAF017", "DAF026", "DAF027", "FBillNo", "ftdate", "fsupplyid", "fsupplyName", "fexplanation", "ffmanagerid", "FDeptID"); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dtHead.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("FInterID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("DAF001", "DAF001"); //单别 colMapping[3] = new SqlBulkCopyColumnMapping("FBillNo", "DAF002"); //单号 colMapping[4] = new SqlBulkCopyColumnMapping("ftdate", "DAF005"); //单据日期 colMapping[5] = new SqlBulkCopyColumnMapping("fsupplyid", "DAF012"); //委外厂商 colMapping[6] = new SqlBulkCopyColumnMapping("fsupplyname", "DAF013"); //厂商名称 colMapping[7] = new SqlBulkCopyColumnMapping("fexplanation", "DAF021"); //备注 colMapping[8] = new SqlBulkCopyColumnMapping("ffmanagerid", "DAF007"); //领料人 colMapping[9] = new SqlBulkCopyColumnMapping("FDeptID", "DAF004"); //部门 colMapping[10] = new SqlBulkCopyColumnMapping("DAF017", "DAF017"); //生产套数 colMapping[11] = new SqlBulkCopyColumnMapping("DAF026", "DAF026"); //指令数量 colMapping[12] = new SqlBulkCopyColumnMapping("DAF027", "DAF027"); //标准产能 DataTableToSQLServer(dtHead, conStr, "WOMDAF", colMapping, ref ErrorMsg); #endregion } if (dt.TableName == "icstockbillentry") { #region 委外出库单明细的处理 dt.Columns.Add("AUDITING", typeof(string)); dt.Columns.Add("DAG001", typeof(string)); dt.Columns.Add("DAG002", typeof(string)); dt.Columns.Add("DAG010", typeof(double)); dt.Columns.Add("DAG014", typeof(string)); dt.Columns.Add("DAG015", typeof(string)); dt.Columns.Add("DAG021", typeof(string)); dt.Columns.Add("DAG023", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["FInterID"].ToString()); dr["AUDITING"] = "N"; dr["DAG001"] = "5408";//委外出库单 dr["DAG002"] = BillNo;//委外出库单 dr["DAG010"] = 1;//委外出库单 dr["DAG014"] = dr["FQty"];//配料数量 dr["DAG015"] = "0";//已发数量 dr["DAG021"] = 0 - Convert.ToDecimal(dr["FQty"].ToString());//差异数量 dr["DAG023"] = dr["FQty"];//待发数量 if (dr["FQty"].ToString() == "") { dr["FQty"] = "0"; } } //处理K3的产品信息在明细的问题 sql = ""; DataTable dtCPMsg = dt.DefaultView.ToTable(true, "FInterID", "FNumberProduct", "FNameProduct", "FModelProduct", "FOrderBillNo"); foreach (DataRow dr in dtCPMsg.Rows) { sql += string.Format(@" update WOMDAF set DAF023='{1}',--产品编码 DAF024='{2}',--产品名称 DAF025='{3}',--产品型号 DAF010='{4}'--委外订单号 where ERPID='{0}'; ", dr["FInterID"], dr["FNumberProduct"], dr["FNameProduct"], dr["FModelProduct"], dr["FOrderBillNo"]); } _sqlHelper.ExecuteNonQuery(sql); //插入前先删除重复键 DeleteDataBeforeInsert("WOMDAG", "ERPID", string.Join("','", IDList), ""); DataTable dt1 = dt.DefaultView.ToTable(false, "AUDITING", "FInterID", "DAG001", "DAG002", "FEntryID", "FNumber", "Fname", "Fmodel", "FUnitID", "DAG010", "FQtyMust", "DAG014", "DAG015", "DAG021", "DAG023" , "FBatchNo", "Fnote", "FDCStockID"); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt1.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("FInterID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("DAG001", "DAG001"); // 单别 colMapping[3] = new SqlBulkCopyColumnMapping("DAG002", "DAG002"); // 单号 colMapping[4] = new SqlBulkCopyColumnMapping("FEntryID", "DAG003"); // 序号 colMapping[5] = new SqlBulkCopyColumnMapping("FNumber", "DAG004"); // 物料编码 colMapping[6] = new SqlBulkCopyColumnMapping("Fname", "DAG005"); // 物料名称 colMapping[7] = new SqlBulkCopyColumnMapping("Fmodel", "DAG006"); // 物料规格 colMapping[8] = new SqlBulkCopyColumnMapping("FUnitID", "DAG007"); // 单位 colMapping[9] = new SqlBulkCopyColumnMapping("DAG010", "DAG010"); // BOM用量 colMapping[10] = new SqlBulkCopyColumnMapping("FQtyMust", "DAG011"); // 出库数量 colMapping[11] = new SqlBulkCopyColumnMapping("DAG014", "DAG014"); // 配料数量 colMapping[12] = new SqlBulkCopyColumnMapping("DAG015", "DAG015"); // 已发数量 colMapping[13] = new SqlBulkCopyColumnMapping("DAG021", "DAG021"); // 差异数量 colMapping[14] = new SqlBulkCopyColumnMapping("DAG023", "DAG023"); // 待发数量 colMapping[15] = new SqlBulkCopyColumnMapping("FBatchNo", "DAG026"); // 批号 colMapping[16] = new SqlBulkCopyColumnMapping("Fnote", "DAG033"); // 备注 colMapping[17] = new SqlBulkCopyColumnMapping("FDCStockID", "DAG040"); // 发料仓库 DataTableToSQLServer(dt1, conStr, "WOMDAG", colMapping, ref ErrorMsg); #endregion } #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE if (dt.TableName == "icstockbill") { foreach (DataRow dr in dt.Rows) { IDList.Add(dr["FInterID"].ToString()); } sql = string.Format(@" delete from WOMDAF where ERPID in ('{0}'); delete from WOMDAG where ERPID in ('{0}'); ", string.Join("','", IDList)); } _sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 21.ERPDHA到货单(同步推送) bool TB_ERPTOMES_CGDH(DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPDHA到货单(同步推送) /// /// /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_CGDH(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "ERPDHA") { #region 到货单主表的处理 dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "N"; } //插入前先删除重复键 DeleteDataBeforeInsert("PURDHA", "ERPID", string.Join("','", IDList), ""); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("DHA001", "DHA001"); //单号 colMapping[1] = new SqlBulkCopyColumnMapping("DHA002", "DHA002"); //单据日期 colMapping[2] = new SqlBulkCopyColumnMapping("DHA003", "DHA003"); //单据类型 colMapping[3] = new SqlBulkCopyColumnMapping("DHA004", "DHA004"); //到货日期 colMapping[4] = new SqlBulkCopyColumnMapping("DHA005", "DHA007"); //供应商编号 colMapping[5] = new SqlBulkCopyColumnMapping("DHA006", "DHA008"); //供应商名称 colMapping[6] = new SqlBulkCopyColumnMapping("DHA007", "DHA009"); //客户编号 colMapping[7] = new SqlBulkCopyColumnMapping("DHA008", "DHA010"); //客户名称 colMapping[8] = new SqlBulkCopyColumnMapping("DHA009", "DHA011"); //供应商送货单号 colMapping[9] = new SqlBulkCopyColumnMapping("DHA010", "DHA012"); //发票号码 colMapping[10] = new SqlBulkCopyColumnMapping("DHA011", "DHA016"); //收货方式 colMapping[11] = new SqlBulkCopyColumnMapping("DHA012", "DHA020"); //是否急料 colMapping[12] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); // ERPID colMapping[13] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); //AUDITING DataTableToSQLServer(dt, conStr, "PURDHA", colMapping, ref ErrorMsg); #endregion } if (dt.TableName == "ERPDHB") { #region 到货单明细的处理 dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "N"; if (dr["DHB006"].ToString() == "") { dr["DHB006"] = "0"; } if (dr["DHB014"].ToString() == "") { dr["DHB014"] = "0"; } else { dr["DHB014"] = Convert.ToDouble(dr["DHB014"]).ToString() ; } if (dr["DHB015"].ToString() == "") { dr["DHB015"] = "0"; } else { dr["DHB015"] = Convert.ToDouble(dr["DHB015"]).ToString(); } if (dr["DHB020"].ToString() == "") { dr["DHB020"] = "0"; } else { dr["DHB020"] = Convert.ToDouble(dr["DHB020"]).ToString(); } } //插入前先删除重复键 DeleteDataBeforeInsert("PURDHB", "ERPID", string.Join("','", IDList), ""); DataTable dtHead = dt.DefaultView.ToTable(true, "DHB001", "DHB002", "DHB003", "DHB004", "DHB005", "DHB006", "DHB007", "DHB008", "DHB009", "DHB010", "DHB011", "DHB012", "DHB013", "DHB014", "AUDITING", "DHB015", "DHB016", "DHB017", "DHB018", "DHB019", "DHB020", "DHB021", "DHB022", "DHB023", "DHB024", "DHB025", "ERPID", "ERPMXID", "WLA027", "WLA029", "WLA031", "WLA033", "WLA035"); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dtHead.Columns.Count]; //SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("DHB001", "DHB001"); // 单号 colMapping[1] = new SqlBulkCopyColumnMapping("DHB002", "DHB002"); // 序号 colMapping[2] = new SqlBulkCopyColumnMapping("DHB003", "DHB003"); // 物料编码 colMapping[3] = new SqlBulkCopyColumnMapping("DHB004", "DHB004"); // 物料名称 colMapping[4] = new SqlBulkCopyColumnMapping("DHB005", "DHB005"); // 物料规格 colMapping[5] = new SqlBulkCopyColumnMapping("DHB006", "DHB006"); // 交货数量 colMapping[6] = new SqlBulkCopyColumnMapping("DHB007", "DHB007"); // 单位 colMapping[7] = new SqlBulkCopyColumnMapping("DHB008", "DHB008"); // 仓库 colMapping[8] = new SqlBulkCopyColumnMapping("DHB009", "DHB009"); // 仓库名称 colMapping[9] = new SqlBulkCopyColumnMapping("DHB010", "DHB010"); // 批号 colMapping[10] = new SqlBulkCopyColumnMapping("DHB011", "DHB011"); // 来源单号 colMapping[11] = new SqlBulkCopyColumnMapping("DHB012", "DHB012"); // 来源序号 colMapping[12] = new SqlBulkCopyColumnMapping("DHB013", "DHB014"); // 到厂日期 colMapping[13] = new SqlBulkCopyColumnMapping("DHB014", "DHB017"); // 进货单价 colMapping[14] = new SqlBulkCopyColumnMapping("DHB015", "DHB018"); // 进货金额 colMapping[15] = new SqlBulkCopyColumnMapping("DHB016", "DHB021"); // 备品数 colMapping[16] = new SqlBulkCopyColumnMapping("DHB017", "DHB025"); // ERP采购单号ID colMapping[17] = new SqlBulkCopyColumnMapping("DHB018", "DHB026"); // ERP采购序号ID colMapping[18] = new SqlBulkCopyColumnMapping("DHB019", "DHB027"); // ERP物料ID colMapping[19] = new SqlBulkCopyColumnMapping("DHB020", "DHB028"); // 当时订单数 colMapping[20] = new SqlBulkCopyColumnMapping("DHB021", "DHB029"); // po下单时间 colMapping[21] = new SqlBulkCopyColumnMapping("DHB022", "DHB024"); // 备注 colMapping[22] = new SqlBulkCopyColumnMapping("DHB023", "DHB046"); // 客户编号 colMapping[23] = new SqlBulkCopyColumnMapping("DHB024", "DHB047"); // 客户名称 colMapping[24] = new SqlBulkCopyColumnMapping("DHB025", "DHB045"); // 销售订单号 colMapping[25] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); // ERPID colMapping[26] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); // AUDITING colMapping[27] = new SqlBulkCopyColumnMapping("ERPMXID", "ERPMXID"); // ERPMXID colMapping[28] = new SqlBulkCopyColumnMapping("WLA027", "Exprop1"); // 辅助属性 colMapping[29] = new SqlBulkCopyColumnMapping("WLA029", "Exprop2"); // 辅助属性 colMapping[30] = new SqlBulkCopyColumnMapping("WLA031", "Exprop3"); // 辅助属性 colMapping[31] = new SqlBulkCopyColumnMapping("WLA033", "Exprop4"); // 辅助属性 colMapping[32] = new SqlBulkCopyColumnMapping("WLA035", "Exprop5"); // 辅助属性 DataTableToSQLServer(dtHead, conStr, "PURDHB", colMapping, ref ErrorMsg); #endregion } #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE if (dt.TableName == "ERPDHA") { foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from PURDHA where ERPID in ('{0}'); delete from PURDHB where ERPID in ('{0}'); ", string.Join("','", IDList)); } _sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 22.ERPTHCONFIRM供应商退货确认 bool TB_ERPTOMES_TH_CONFIRM(DataSet ds, string operatype, ref string ErrorMsg) private bool TB_ERPTOMES_TH_CONFIRM(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region 更新至供应商退货单明细表 PURDKB if (dt.TableName == "ERPTHCONFIRM") { foreach (DataRow dr in dt.Rows) { sql += string.Format(@" UPDATE PURDKB SET DKB024 = '{0}', DKB025 = '{1}' WHERE DKB012 = '{2}' AND DKB013 = '{3}' AND DKB003 = '{4}' AND DKB007 = '{5}'; ", dr["THC007"] , dr["THC008"], dr["THC003"], dr["THC004"], dr["THC005"], dr["THC006"]); } #endregion } } else //DELETE { continue; } } _sqlHelper.ExecuteNonQuery(sql); return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 23.TB_ERPTOMES_GDRK工单入库数量查询 bool TB_ERPTOMES_GDRK(DataSet ds, string operatype, ref string ErrorMsg) private bool TB_ERPTOMES_GDRK(DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region 更新工单表 WOMCAA if (dt.TableName == "ERPGDRKA") { foreach (DataRow dr in dt.Rows) { sql += string.Format(@" UPDATE WOMCAA SET CAA026 = '{1}', CAA027 = '{2}',CAA013='{4}' WHERE CAA002='{0}' AND CAA006='{3}' AND CAA025='{5}' ; ", dr["FICMOBILLNO"] , dr["FStockInQuaAuxQty"], dr["FPickMtlQty"], dr["FItemid"], dr["FStockInQuaAuxQty"], dr["FEntryId"]); } #endregion } } else //DELETE { continue; } } _sqlHelper.ExecuteNonQuery(sql); return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 24.ERPFHA发货通知单(同步推送) bool TB_ERPTOMES_FHTZ(string task_name,DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPCGA采购订单|委外订单(同步推送) /// /// 任务名称 /// 数据集 /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_FHTZ(string task_name, DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (operatype != "INSERT" && operatype != "UPDATE") { sql = string.Format(@" delete from COMDFA where DFA001 in ('{0}') ", operatype); string sqlTT = string.Format(@" delete from COMDFB where DFB001 in ('{0}') ", operatype); _sqlHelper.ExecuteNonQuery(sql); _sqlHelper.ExecuteNonQuery(sqlTT); return true; } if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "ERPFHA") { #region 发货通知单主表的处理 dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; } //插入前先删除重复键 DeleteDataBeforeInsert("COMDFA", "ID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("PURDDA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "PURDDA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "flagApp"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ID"); //ID colMapping[2] = new SqlBulkCopyColumnMapping("FHA001", "DFA001"); //发货单号 colMapping[3] = new SqlBulkCopyColumnMapping("FHA002", "DFA002"); //客户名称 colMapping[4] = new SqlBulkCopyColumnMapping("FHA003", "DFA003"); //发货组织 colMapping[5] = new SqlBulkCopyColumnMapping("FHA004", "DFA004"); //审核日期 colMapping[6] = new SqlBulkCopyColumnMapping("FHA005", "DFA005"); //审核人员 colMapping[7] = new SqlBulkCopyColumnMapping("FHA006", "DFA006"); //关闭状态 colMapping[8] = new SqlBulkCopyColumnMapping("FHA007", "DFA007"); //关闭日期 colMapping[9] = new SqlBulkCopyColumnMapping("FHA008", "DFA008"); //作废状态 colMapping[10] = new SqlBulkCopyColumnMapping("FHA009", "DFA009"); //作废日期 colMapping[11] = new SqlBulkCopyColumnMapping("FHA0010", "DFA010"); //备注 DataTableToSQLServer(dt, conStr, "COMDFA", colMapping, ref ErrorMsg); #endregion } if (dt.TableName == "ERPFHB") { #region 采购订单明细的处理 dt.Columns.Add("AUDITING", typeof(string)); foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); dr["AUDITING"] = "Y"; //销售数量 if (dr["FHB008"].ToString() == "") { dr["FHB008"] = "0"; } else { double A = Convert.ToDouble(dr["FHB008"].ToString()); string B = A.ToString(); dr["FHB008"] = B; } //未出库数 if (dr["FHB020"].ToString() == "") { dr["FHB020"] = "0"; } else { double A = Convert.ToDouble(dr["FHB020"].ToString()); string B = A.ToString(); dr["FHB020"] = B; } //累计已出库数 if (dr["FHB024"].ToString() == "") { dr["FHB024"] = "0"; } else { double A = Convert.ToDouble(dr["FHB024"].ToString()); string B = A.ToString(); dr["FHB024"] = B; } if (dr["FHB024"].ToString() == "") { dr["FHB024"] = "0"; } else { double A = Convert.ToDouble(dr["FHB024"].ToString()); string B = A.ToString(); dr["FHB024"] = B; } } //插入前先删除重复键 DeleteDataBeforeInsert("COMDFB", "PID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("PURDDB", "ERPID+DDB002", string.Join("','", IDList), "")) //{ // ErrorMsg = "PURDDB重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "flagApp"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "PID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("FHB001", "DFB001"); //发货单号 colMapping[3] = new SqlBulkCopyColumnMapping("FHB002", "DFB002"); //序号 colMapping[4] = new SqlBulkCopyColumnMapping("FHB003", "DFB003"); //客户物料编码 colMapping[5] = new SqlBulkCopyColumnMapping("FHB004", "DFB004"); //客户物料名称 colMapping[6] = new SqlBulkCopyColumnMapping("FHB005", "DFB005"); //产品编号 colMapping[7] = new SqlBulkCopyColumnMapping("FHB006", "DFB006"); //产品名称 colMapping[8] = new SqlBulkCopyColumnMapping("FHB007", "DFB007"); //产品规格 colMapping[9] = new SqlBulkCopyColumnMapping("FHB008", "DFB008"); //销售数量 colMapping[10] = new SqlBulkCopyColumnMapping("FHB009", "DFB009"); //销售单位 colMapping[11] = new SqlBulkCopyColumnMapping("FHB010", "DFB010"); //单价 colMapping[12] = new SqlBulkCopyColumnMapping("FHB011", "DFB011"); //含税单价 colMapping[13] = new SqlBulkCopyColumnMapping("FHB012", "DFB012"); //税率 colMapping[14] = new SqlBulkCopyColumnMapping("FHB013", "DFB013"); //税额 colMapping[15] = new SqlBulkCopyColumnMapping("FHB014", "DFB014"); //含税合计 colMapping[16] = new SqlBulkCopyColumnMapping("FHB015", "DFB015"); //要货日期 colMapping[17] = new SqlBulkCopyColumnMapping("FHB016", "DFB016"); //出货仓库 colMapping[18] = new SqlBulkCopyColumnMapping("FHB017", "DFB017"); //计价数量 colMapping[19] = new SqlBulkCopyColumnMapping("FHB018", "DFB018"); //订单单号 colMapping[20] = new SqlBulkCopyColumnMapping("FHB019", "DFB019"); //备注信息 colMapping[21] = new SqlBulkCopyColumnMapping("FHB020", "DFB020"); //未出库数 colMapping[22] = new SqlBulkCopyColumnMapping("FHB021", "DFB021"); //出库上限 colMapping[23] = new SqlBulkCopyColumnMapping("FHB022", "DFB022"); //出库下线 colMapping[24] = new SqlBulkCopyColumnMapping("FHB023", "DFB023"); //是否控制出库数量 colMapping[25] = new SqlBulkCopyColumnMapping("FHB024", "DFB024"); //累计出库数 colMapping[26] = new SqlBulkCopyColumnMapping("FHB025", "DFB025"); //产品类型 colMapping[27] = new SqlBulkCopyColumnMapping("FHB026", "DFB026"); //父标识 colMapping[28] = new SqlBulkCopyColumnMapping("FHB027", "DFB027"); //标识列 colMapping[29] = new SqlBulkCopyColumnMapping("ERP_EntryID", "ID"); //明细ID DataTableToSQLServer(dt, conStr, "COMDFB", colMapping, ref ErrorMsg); #endregion } #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE //if (dt.TableName == "ERPCGA") //{ // foreach (DataRow dr in dt.Rows) // { // IDList.Add(dr["ERPID"].ToString()); // } // sql = string.Format(@" delete from PURDDA where ERPID in ('{0}'); delete from PURDDB where ERPID in ('{0}'); ", string.Join("','", IDList)); //} //_sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion #region 25.ERPWWA委外订单(同步推送) bool TB_ERPTOMES_WW(string task_name,DataSet ds, string operatype, ref string ErrorMsg) /// /// ERPCGA采购订单|委外订单(同步推送) /// /// 任务名称 /// 数据集 /// 执行类型 /// 错误说明 /// private bool TB_ERPTOMES_WW(string task_name, DataSet ds, string operatype, ref string ErrorMsg) { string sql = ""; //用来拼ID集合 List IDList = new List(); string dtName = ""; if (operatype != "INSERT" && operatype != "UPDATE") { sql = string.Format(@" delete from WOMWAA where WAA002 in ('{0}') ", operatype); _sqlHelper.ExecuteNonQuery(sql); return true; } if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { ErrorMsg = "生成数据表失败"; return false; } try { foreach (DataTable dt in ds.Tables) { dtName = dt.TableName; IDList.Clear(); //主从表的同步,修改和新增一样,先删除原记录后插入新记录,要求同步过来的数据也是整单完整数据 if (operatype == "INSERT" || operatype == "UPDATE") { #region INSERT if (dt.TableName == "ERPWWA") { #region 投料单主表的处理 // dt.Columns.Add("AUDITING", typeof(string)); dt.Columns.Add("WAA022", typeof(string)); dt.Columns.Add("WAA020", typeof(string)); foreach (DataRow dr in dt.Rows) { String sqlDE = string.Format(@"delete from WOMWAB where PID in ('{0}')", dr["WWTL001"].ToString()); _sqlHelper.ExecuteNonQuery(sqlDE); IDList.Add(dr["ERPID"].ToString()); //dr["TLA012"] = Convert.ToDouble(dr["TLA012"]).ToString(); //// dr["AUDITING"] = "Y"; //dr["WAA022"] = dr["TLA012"]; ////dr["TLA002"] = dr["TLA019"];//工单批次直接取任务单号吧 //dr["WAA020"] = DateTime.Now.ToString("yyyy-MM-dd"); //if (dr["TLA004"].ToString() == "" || dr["TLA004"].ToString() == "1") //{ // dr["TLA004"] = "5102";//默认DIP工单 //} //else //{ // dr["TLA004"] = "5109";//返工工单 //} } //插入前先删除重复键 DeleteDataBeforeInsert("WOMWAA", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("WOMCAA", "ERPID", string.Join("','", IDList), "")) //{ // ErrorMsg = "WOMCAA重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; //colMapping[1] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERPID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("WWTL001", "WAA001"); //单号 colMapping[3] = new SqlBulkCopyColumnMapping("WWTL020", "WAA002"); //ERP工单批次 colMapping[4] = new SqlBulkCopyColumnMapping("WWTL003", "WAA003"); //客户编号 colMapping[5] = new SqlBulkCopyColumnMapping("WWTL004", "WAA004"); //单据类型 colMapping[6] = new SqlBulkCopyColumnMapping("WWTL005", "WAA005"); //开单日期 colMapping[7] = new SqlBulkCopyColumnMapping("WWTL006", "WAA006"); //产品编码 colMapping[8] = new SqlBulkCopyColumnMapping("WWTL007", "WAA007"); //产品名称 colMapping[9] = new SqlBulkCopyColumnMapping("WWTL008", "WAA008"); //产品规格 colMapping[10] = new SqlBulkCopyColumnMapping("WWTL009", "WAA009"); //单位 colMapping[11] = new SqlBulkCopyColumnMapping("WWTL010", "WAA010"); //预计开工时间 colMapping[12] = new SqlBulkCopyColumnMapping("WWTL011", "WAA011"); //预计完工时间 colMapping[13] = new SqlBulkCopyColumnMapping("WWTL012", "WAA012"); //工单数量 colMapping[14] = new SqlBulkCopyColumnMapping("WWTL013", "WAA013"); //BOM版次 colMapping[15] = new SqlBulkCopyColumnMapping("WWTL014", "WAA014"); //供应商 colMapping[16] = new SqlBulkCopyColumnMapping("WWTL015", "WAA015"); //采购订单 colMapping[17] = new SqlBulkCopyColumnMapping("WWTL016", "WAA016"); //采购订单行号 colMapping[18] = new SqlBulkCopyColumnMapping("WWTL017", "WAA017"); //备注 colMapping[19] = new SqlBulkCopyColumnMapping("WWTL018", "WAA018"); //ERP源单ID colMapping[20] = new SqlBulkCopyColumnMapping("WWTL019", "WAA019"); //ERP源单序号 colMapping[21] = new SqlBulkCopyColumnMapping("WWTL020", "WAA020"); //委外订单号 colMapping[22] = new SqlBulkCopyColumnMapping("WWTL021", "WAA021"); //工作中心 colMapping[23] = new SqlBulkCopyColumnMapping("WWTL022", "WAA022"); //未入库数 colMapping[24] = new SqlBulkCopyColumnMapping("WWTL023", "WAA023"); //业务状态 colMapping[25] = new SqlBulkCopyColumnMapping("WWTL024", "WAA024"); //领料状态 colMapping[26] = new SqlBulkCopyColumnMapping("WWTL001", "ID"); //客户订单号 //colMapping[0] = new SqlBulkCopyColumnMapping("WAA020", "WAA020"); //审核时间 DataTableToSQLServer(dt, conStr, "WOMWAA", colMapping, ref ErrorMsg); #endregion } if (dt.TableName == "ERPWWB") { #region 投料单明细的处理 //dt.Columns.Add("AUDITING", typeof(string)); //dt.Columns.Add("CAB016", typeof(string)); foreach (DataRow dr in dt.Rows) { //IDList.Add(dr["ERP_EntryID"].ToString()); if (dr["WWTLB006"].ToString() == " "|| dr["WWTLB006"].ToString() == "") { dr["WWTLB006"] = "0"; } if (dr["WWTLB007"].ToString() == " "|| dr["WWTLB007"].ToString() == "") { dr["WWTLB007"] = "0"; } if (dr["WWTLB012"].ToString() == " "|| dr["WWTLB012"].ToString() == "") { dr["WWTLB012"] = "0"; } if (dr["WWTLB013"].ToString() == " "|| dr["WWTLB013"].ToString() == "") { dr["WWTLB013"] = "1"; } dr["WWTLB006"] = Convert.ToDecimal(dr["WWTLB006"]).ToString(); dr["WWTLB007"] = Convert.ToDecimal(dr["WWTLB007"]).ToString(); dr["WWTLB012"] = Convert.ToDecimal(dr["WWTLB012"]).ToString(); dr["WWTLB013"] = Convert.ToDecimal(dr["WWTLB013"]).ToString(); //// dr["AUDITING"] = "Y"; //dr["CAB016"] = "0"; } //插入前先删除重复键 DeleteDataBeforeInsert("WOMWAB", "ERPID", string.Join("','", IDList), ""); //if (!DeleteDataBeforeInsert("WOMCAB", "ERPID+CAB002", string.Join("','", IDList), "")) //{ // ErrorMsg = "WOMCAB重复键删除失败!"; // return false; //} SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count+5]; // colMapping[0] = new SqlBulkCopyColumnMapping("AUDITING", "AUDITING"); colMapping[1] = new SqlBulkCopyColumnMapping("ERP_EntryID", "ERPID"); //ERPID colMapping[2] = new SqlBulkCopyColumnMapping("WWTLB001", "WAB001"); //用料清单单号 colMapping[3] = new SqlBulkCopyColumnMapping("WWTLB002", "WAB002"); //序号 colMapping[4] = new SqlBulkCopyColumnMapping("WWTLB003", "WAB003"); //材料编码 colMapping[5] = new SqlBulkCopyColumnMapping("WWTLB004", "WAB004"); //材料名称 colMapping[6] = new SqlBulkCopyColumnMapping("WWTLB005", "WAB005"); //材料规格 colMapping[7] = new SqlBulkCopyColumnMapping("WWTLB006", "WAB006"); //需领用量 colMapping[8] = new SqlBulkCopyColumnMapping("WWTLB007", "WAB007"); //已领用量 colMapping[9] = new SqlBulkCopyColumnMapping("WWTLB008", "WAB008"); //工艺 colMapping[10] = new SqlBulkCopyColumnMapping("WWTLB009", "WAB009"); //单位 colMapping[11] = new SqlBulkCopyColumnMapping("WWTLB010", "WAB010"); //材料类型 colMapping[12] = new SqlBulkCopyColumnMapping("WWTLB011", "WAB011"); //主料 colMapping[13] = new SqlBulkCopyColumnMapping("WWTLB012", "WAB012"); //组成用量 colMapping[14] = new SqlBulkCopyColumnMapping("WWTLB013", "WAB013"); //底数 colMapping[15] = new SqlBulkCopyColumnMapping("WWTLB014", "WAB014"); //是否替料 colMapping[16] = new SqlBulkCopyColumnMapping("WWTLB015", "WAB015"); //点位 colMapping[17] = new SqlBulkCopyColumnMapping("WWTLB016", "WAB016"); //委外单号 colMapping[18] = new SqlBulkCopyColumnMapping("WWTLB001", "PID"); colMapping[0] = new SqlBulkCopyColumnMapping("WWTLB017", "WAB017"); //委外单号ID colMapping[19] = new SqlBulkCopyColumnMapping("WWTLB018", "WAB018"); colMapping[20] = new SqlBulkCopyColumnMapping("ERP_EntryID", "ID"); //colMapping[19] = new SqlBulkCopyColumnMapping("WWTLB017", "CAB024"); //单身备注 //colMapping[0] = new SqlBulkCopyColumnMapping("ERPMXID", "ERPMXID"); //ERPMXID DataTableToSQLServer(dt, conStr, "WOMWAB", colMapping, ref ErrorMsg); #endregion } #endregion } else //DELETE { //ErrorMsg = "执行删除数据表"; #region DELETE if (dt.TableName == "ERPWWA") { foreach (DataRow dr in dt.Rows) { IDList.Add(dr["ERPID"].ToString()); } sql = string.Format(@" delete from WOMCAA where ERPID in ('{0}'); delete from WOMCAB where ERPID in ('{0}'); ", string.Join("','", IDList)); } _sqlHelper.ExecuteNonQuery(sql); #endregion } } return true; } catch (Exception ex) { ErrorMsg = "[" + dtName + "]" + ex.Message; return false; } } #endregion private bool XKY_GET_DHD(DataRow dr, ref string ErrorMsg) { //DataTable dt=new DataTable(); DataTable dt = _sqlHelper.ExecuteDataTable("select top(1) * from XKYDHD(nolock) where 1=2"); ApiCommonParam Apiparam = ApiCommonParam.NewApiCommon(); try { string task_name = dr["task_name"].ToString(); string descript = dr["descript"].ToString(); string create_time = dr["create_time"].ToString(); string creator = dr["creator"].ToString(); string operatype = dr["operatype"].ToString(); string source_table = dr["source_table"].ToString(); string target_table = dr["target_table"].ToString(); string data = dr["data"].ToString(); string data_inserted = dr["data_inserted"].ToString(); string data_deleted = dr["data_deleted"].ToString(); ArrayList SQLStringList = new ArrayList(); // var client = new HttpClient(); var url = "https://openapi.xiekeyun.com/delivery/getNoList.json"; HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string json = "{\"commonParam\":" + JsonConvert.SerializeObject(Apiparam) + ",\"body\":" + data_inserted + "}"; byte[] postData = Encoding.UTF8.GetBytes(json); // 创建请求对象 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://openapi.xiekeyun.com/delivery/getNoList.json"); request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = postData.Length; // 发送请求数据 using (Stream stream = request.GetRequestStream()) { stream.Write(postData, 0, postData.Length); } dynamic responseJson; // 发送请求并获取响应 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { string result2 = reader.ReadToEnd(); responseJson = JsonConvert.DeserializeObject(result2); } // 读取响应内容 //dt.Columns.Add("DELIVERYNO", typeof(string)); //dt.Columns.Add("DELIVERYTYPE", typeof(string)); //dt.Columns.Add("INNERVENDORCODE", typeof(string)); //dt.Columns.Add("PURCHASETYPE", typeof(string)); //dt.Columns.Add("STATUS", typeof(string)); //dt.Columns.Add("LOGISTICSSTATUS", typeof(string)); //dt.Columns.Add("LASTOPERATETIME", typeof(string)); //dt.Columns.Add("GETTIME", typeof(string)); //dt.Columns.Add("FLAG", typeof(string)); SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; //colMapping[0] = new SqlBulkCopyColumnMapping("DELIVERYNO", "deliveryno"); // //colMapping[1] = new SqlBulkCopyColumnMapping("DELIVERYTYPE", "deliverytype"); // //colMapping[2] = new SqlBulkCopyColumnMapping("INNERVENDORCODE", "innervendorcode"); // //colMapping[3] = new SqlBulkCopyColumnMapping("PURCHASETYPE", "purchasetype"); // //colMapping[4] = new SqlBulkCopyColumnMapping("STATUS", "status"); // //colMapping[5] = new SqlBulkCopyColumnMapping("LOGISTICSSTATUS", "logisticsstatus"); // //colMapping[6] = new SqlBulkCopyColumnMapping("LASTOPERATETIME", "lastoperatetime"); // //colMapping[7] = new SqlBulkCopyColumnMapping("GETTIME", "gettime"); // //colMapping[8] = new SqlBulkCopyColumnMapping("FLAG", "flag"); // if (responseJson.result == 1) { foreach (var item in responseJson.dataList) { //插入前先删除重复键 // DeleteDataBeforeInsert("XKYDHD", "DELIVERYNO", string.Join("','", item.deliveryNo), ""); // DeleteDataBeforeInsert("XKYDHD_DETAILS", "DELIVERYNO", string.Join("','", item.deliveryNo), ""); // DeleteDataBeforeInsert("XKYDHD_DETAILS_LINE", "DELIVERYNO", string.Join("','", item.deliveryNo), ""); DataRow dr2 = dt.NewRow(); dr2["DELIVERYNO"] = item.deliveryNo;//通过名称赋值 dr2["DELIVERYTYPE"] = item.deliveryType;//通过名称赋值 dr2["INNERVENDORCODE"] = item.innerVendorCode;//通过名称赋值 dr2["PURCHASETYPE"] = item.purchaseType;//通过名称赋值 dr2["STATUS"] = item.status;//通过名称赋值 dr2["LOGISTICSSTATUS"] = item.logisticsStatus;//通过名称赋值 dr2["LASTOPERATETIME"] = item.lastOperateTime;//通过名称赋值 dr2["GETTIME"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//通过名称赋值 dr2["FLAG"] = "0";//通过名称赋值 dt.Rows.Add(dr2); } if (DataTableToSQLServer(dt, conStr, "XKYDHD", colMapping, ref ErrorMsg)) return true; else return false; } else { ErrorMsg = responseJson.errorMsg; return false; } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } private bool XKY_GET_DETAILS(DataRow dr, ref string ErrorMsg) { DataTable dt = _sqlHelper.ExecuteDataTable("select top(1) * from XKYDETAIL(nolock) where 1=2"); DataTable dt_line = _sqlHelper.ExecuteDataTable("select top(1) * from XKYDETAIL_LINE(nolock) where 1=2"); ApiCommonParam Apiparam = ApiCommonParam.NewApiCommon(); try { string task_name = dr["task_name"].ToString(); string descript = dr["descript"].ToString(); string create_time = dr["create_time"].ToString(); string creator = dr["creator"].ToString(); string operatype = dr["operatype"].ToString(); string source_table = dr["source_table"].ToString(); string target_table = dr["target_table"].ToString(); string data = dr["data"].ToString(); string data_inserted = dr["data_inserted"].ToString(); string data_deleted = dr["data_deleted"].ToString(); ArrayList SQLStringList = new ArrayList(); // var client = new HttpClient(); var url = "https://openapi.xiekeyun.com/delivery/getDetail.json"; HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string json = "{\"commonParam\":" + JsonConvert.SerializeObject(Apiparam) + ",\"body\":" + data_inserted + "}"; byte[] postData = Encoding.UTF8.GetBytes(json); // 创建请求对象 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = postData.Length; // 发送请求数据 using (Stream stream = request.GetRequestStream()) { stream.Write(postData, 0, postData.Length); } dynamic responseJson; // 发送请求并获取响应 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { string result2 = reader.ReadToEnd(); // data_insertedf = result2.Substring(0,3900); responseJson = JsonConvert.DeserializeObject(result2); } // 读取响应内容 // SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[0]; // 读取响应内容 if (responseJson.result == 1) { dynamic item = responseJson.data; //插入前先删除重复键 //DeleteDataBeforeInsert("XKYDHD", "DELIVERYNO", string.Join("','", item.deliveryNo), ""); DeleteDataBeforeInsert("XKYDETAIL", "DELIVERYNO", string.Join("','", item.deliveryNo), ""); // DeleteDataBeforeInsert("XKYDHD_DETAILS_LINE", "DELIVERYNO", string.Join("','", item.deliveryNo), ""); DataRow dr2 = dt.NewRow(); dr2["DELIVERYNO"] = item.deliveryNo; dr2["INNERVENDORCODE"] = item.innerVendorCode; dr2["INNERVENDORNAME"] = item.innerVendorName; dr2["DELIVERYTYPE"] = item.deliveryType; dr2["DELIVERYDATE"] = item.deliveryDate; dr2["PLANARRIVEDDATE"] = item.planArrivedDate; dr2["CONTACTPERSION"] = item.contactPersion; dr2["CONTACTMOBILE"] = item.contactMobile; dr2["ADDRESSCODE"] = item.addressCode; dr2["ADDRESSINFO"] = item.addressInfo; dr2["DELIVERYCARNO"] = item.deliveryCarNo; dr2["REMARK"] = item.remark; dr2["STATUS"] = item.status; dr2["DIRECTDELIVERYFLAG"] = item.directDeliveryFlag; dr2["LOGISTICSSTATUS"] = item.logisticsStatus; dr2["PUBLISHTIME"] = item.publishTime; dr2["UPDATETIME"] = item.updateTime; dr2["PROFITCENTERCODE"] = item.profitCenterCode; dr2["GROSSWEIGHT"] = item.grossWeight; dr2["NETWEIGHT"] = item.netWeight; dr2["UNITWEIGHTCODE"] = item.unitWeightCode; dr2["UNITWEIGHTNAME"] = item.unitWeightName; dr2["TOTALPACKINGQTY"] = item.totalPackingQty; dr2["TOTALPACKAGEQUANTITY"] = item.totalPackageQuantity; dr2["TRANSPORTTYPECODE"] = item.transportTypeCode; dr2["TRANSPORTTYPENAME"] = item.transportTypeName; dr2["PACKINGWAYCODE"] = item.packingWayCode; dr2["PACKINGWAYNAME"] = item.packingWayName; // dr2["EXTENDN01"] = item.extendN01; // dr2["EXTENDN02"] = item.extendN02; // dr2["EXTENDN03"] = item.extendN03; dr2["CARGODELIVERYTIME"] = item.cargoDeliveryTime; dr2["LOGISTICSTYPE"] = item.logisticsType; dr2["LOGISTICSTYPESHOW"] = item.logisticsTypeShow; dr2["LOGISTICSNUMBER"] = item.logisticsNumber; dr2["FIRSTCHECK"] = item.firstCheck; dt.Rows.Add(dr2); if (DataTableToSQLServer(dt, conStr, "XKYDETAIL", colMapping, ref ErrorMsg)) ; else return false; foreach (var item2 in responseJson.data.lineList) { DeleteDataBeforeInsert("XKYDETAIL_LINE", "DELIVERYNO", string.Join("','", item.deliveryNo), ""); DataRow dr3 = dt_line.NewRow(); dr3["DELIVERYNO"] = item.deliveryNo; dr3["LINE_NO"] = item2.lineNo; dr3["POERPNO"] = item2.poErpNo; dr3["PURCHASETYPE"] = item2.purchaseType; dr3["POLINENO"] = item2.poLineNo; dr3["PRODUCTCODE"] = item2.productCode; dr3["PRODUCTNAME"] = item2.productName; dr3["PRODUCTSCALE"] = item2.productScale; dr3["DELIVERYUNITCODE"] = item2.deliveryUnitCode; dr3["DELIVERYUNITNAME"] = item2.deliveryUnitName; dr3["DELIVERYQTY"] = item2.deliveryQty; dr3["DELIVERYVALUATIONQTY"] = item2.deliveryValuationQty; dr3["PRICE"] = item2.price; dr3["TAXPRICE"] = item2.taxPrice; dr3["SCHDYNAMICVALUE"] = item2.schDynamicValue; dr3["SCHEDULEBATCHNO"] = item2.scheduleBatchNo; dr3["SCHEDULEORDERNO"] = item2.scheduleOrderNo; dr3["SCHEDULEDETAILNO"] = item2.scheduleDetailNo; dr3["URGENTFLAG"] = item2.urgentFlag; dr3["SRCBILLTYPE"] = item2.srcBillType; dr3["SRCORDERLINEREMARK"] = item2.srcOrderLineRemark; dr3["STATUS"] = item2.status; dr3["RECEIVESTATUS"] = item2.receiveStatus; dr3["GROSSWEIGHT"] = item2.grossWeight; dr3["NETWEIGHT"] = item2.netWeight; dr3["UNITWEIGHTCODE"] = item2.unitWeightCode; dr3["UNITWEIGHTNAME"] = item2.unitWeightName; dr3["PACKINGQTY"] = item2.packingQty; dr3["BRANDNAME"] = item2.brandName; dr3["OTHEREXTEND"] = item2.otherExtend; dr3["ORIGINALCOUNTRYCODE"] = item2.originalCountryCode; dr3["ORIGINALCOUNTRYNAME"] = item2.originalCountryName; dr3["REMARK"] = item2.remark; // dr3["EXTENDN01"] = item2.purchaseDesc.extendN01; // dr3["EXTENDN02"] = item2.purchaseDesc.extendN02; // dr3["EXTENDN03"] = item2.purchaseDesc.extendN03; // dr3["EXTENDN04"] = item2.purchaseDesc.extendN04; // dr3["EXTENDN05"] = item2.purchaseDesc.extendN05; // dr3["EXTENDN06"] = item2.purchaseDesc.extendN06; dr3["STORECODE"] = item2.storeCode; dr3["STORENAME"] = item2.storeName; dr3["VERIFYQTY"] = item2.verifyQty; dr3["ALLOWQTY"] = item2.allowQty; dr3["COMPROMISEQTY"] = item2.compromiseQty; dr3["REFUSEDQTY"] = item2.refusedQty; dr3["RTOERPNO"] = item2.rtoErpNo; dr3["RTOLINENO"] = item2.rtoLineNo; dr3["PRODLENGTH"] = item2.prodLength; dr3["PRODWIDTH"] = item2.prodWidth; dr3["PRODHEIGHT"] = item2.prodHeight; dr3["BUYERNAME"] = item2.buyerName; dr3["EXPECTEDDATE"] = item2.expectedDate; dr3["ANSWERDATE"] = item2.answerDate; dr3["CURRENCYCODE"] = item2.currencyCode; dr3["CURRENCYNAME"] = item2.currencyName; dr3["SENDVERIFYSTATUS"] = item2.sendVerifyStatus; dr3["RESULTFLAG"] = item2.resultFlag; dr3["APPLYDELIVERYQTY"] = item2.applyDeliveryQty; dr3["APPLYDELIVERYVALUATIONQTY"] = item2.applyDeliveryValuationQty; dr3["BATCHNUMBER"] = item2.batchNumber; dr3["RECEIVEQTY"] = item2.receiveQty; dr3["STORAGEQTY"] = item2.storageQty; dr3["RETURNQTY"] = item2.returnQty; dr3["FIRSTCHECK"] = item2.firstCheck; dt_line.Rows.Add(dr3); } if (DataTableToSQLServer(dt_line, conStr, "XKYDETAIL_LINE", colMapping, ref ErrorMsg)) return true; else return false; } else { ErrorMsg = responseJson.errorMsg; return false; } } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } private bool XKY_GET_BARCODE(DataRow dr, ref string ErrorMsg) { DataTable dt = _sqlHelper.ExecuteDataTable("select top(1) * from XKYBARCODE(nolock) where 1=2"); ApiCommonParam Apiparam = ApiCommonParam.NewApiCommon(); try { string task_name = dr["task_name"].ToString(); string descript = dr["descript"].ToString(); string create_time = dr["create_time"].ToString(); string creator = dr["creator"].ToString(); string operatype = dr["operatype"].ToString(); string source_table = dr["source_table"].ToString(); string target_table = dr["target_table"].ToString(); string data = dr["data"].ToString(); string data_inserted = dr["data_inserted"].ToString(); string data_deleted = dr["data_deleted"].ToString(); ArrayList SQLStringList = new ArrayList(); // var client = new HttpClient(); var url = "https://openapi.xiekeyun.com/barcode/byDeliveryNo.json"; HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string json = "{\"commonParam\":" + JsonConvert.SerializeObject(Apiparam) + ",\"body\":" + data_inserted + "}"; byte[] postData = Encoding.UTF8.GetBytes(json); // 创建请求对象 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = postData.Length; // 发送请求数据 using (Stream stream = request.GetRequestStream()) { stream.Write(postData, 0, postData.Length); } dynamic responseJson; // 发送请求并获取响应 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { string result2 = reader.ReadToEnd(); responseJson = JsonConvert.DeserializeObject(result2); } SqlBulkCopyColumnMapping[] colMapping = new SqlBulkCopyColumnMapping[dt.Columns.Count]; // 读取响应内容 if (responseJson.result == 1) { if (responseJson.dataList != null) { foreach (var item in responseJson.dataList) { //插入前先删除重复键 //DeleteDataBeforeInsert("XKYDHD", "DELIVERYNO", string.Join("','", item.deliveryNo), ""); DeleteDataBeforeInsert("XKYDHD_DETAILS", "DELIVERYNO", string.Join("','", item.deliveryNo), ""); // DeleteDataBeforeInsert("XKYDHD_DETAILS_LINE", "DELIVERYNO", string.Join("','", item.deliveryNo), ""); DataRow dr2 = dt.NewRow(); dr2["DELIVERYNO"] = data; dr2["POERPNO"] = item.dynamicData.poErpNo; dr2["POLINENO"] = item.dynamicData.poLineNo; dr2["PRODUCTCODE"] = item.productCode; dr2["PRODUCTNAME"] = item.productName; dr2["PRODUCTSCALE"] = item.productScale; dr2["SMALLBARCODE"] = item.smallBarcode; dr2["BIGBARCODE"] = item.bigBarcode; dr2["OUTERBARCODE"] = item.outerBarcode; dr2["INCLUDEQTY"] = item.includeQty; dr2["INNERVENDORCODE"] = item.dynamicData.innerVendorCode; dr2["DELIVERYDATE"] = item.dynamicData.deliveryDate; dr2["CREATETYPE"] = item.createType; dr2["PACKLEVEL"] = item.packLevel; dr2["UPDATETIME"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); dr2["FLAG"] = "0"; dr2["BILL_NO"] = source_table; dt.Rows.Add(dr2); } if (DataTableToSQLServer(dt, conStr, "XKYBARCODE", colMapping, ref ErrorMsg)) return true; else return false; } return true; } ; ErrorMsg = responseJson.errorMsg; return false; } catch (Exception ex) { ErrorMsg = ex.Message; return false; } } #region 封装批量插入数据SQL Server数据的方法 /// /// 封装批量插入数据SQL Server数据的方法 /// /// 源数据表 /// 数据库连接字符串 /// 目标表名 /// 字段映射 public bool DataTableToSQLServer(DataTable dt,string connectString,string tableName,SqlBulkCopyColumnMapping[] colMapping,ref string msg) { using (SqlConnection destinationConnection = new SqlConnection(connectString)) { destinationConnection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationConnection, SqlBulkCopyOptions.FireTriggers,null)) { try { bulkCopy.DestinationTableName = tableName;//要插入的表的表名 bulkCopy.BatchSize = dt.Rows.Count; foreach (SqlBulkCopyColumnMapping item in colMapping) { if (item==null) { continue; } bulkCopy.ColumnMappings.Add(item); } bulkCopy.WriteToServer(dt); return true; } catch (Exception ex) { msg = "[" + tableName + "]" + ex.Message; return false; } finally { } } } } #endregion #region 插入数据前先删除,以免主键重复 bool DeleteDataBeforeInsert(string TableName, string IDColumnName, string IDList, string OtherWhere) /// /// 插入数据前先删除,以免主键重复 /// /// 表名 /// 主键列,复主键直接加起来 /// 主键值 /// 其它条件 以and 开头 /// public bool DeleteDataBeforeInsert(string TableName, string IDColumnName, string IDList, string OtherWhere) { string sql = string.Format(@"delete from {0} where {1} in ('{2}') {3}", TableName, IDColumnName, IDList, OtherWhere); return _sqlHelper.ExecuteNonQuery(sql) > 0; } #endregion #region 数据的动作重新判断 bool DataIsInDB(string TableName, string IDColumnName, string IDList, string OtherWhere) /// /// 数据的动作重新判断 /// /// 表名 /// 主键列,复主键直接加起来 /// 主键值 /// 其它条件 以and 开头 /// public bool DataIsInDB(string TableName, string IDColumnName, string IDList, string OtherWhere) { string sql = string.Format(@"select count(1) cnt from {0} with(nolock) where {1} in ('{2}') {3}", TableName, IDColumnName, IDList, OtherWhere); return (int)_sqlHelper.ExecuteScalar(sql) > 0; } #endregion } }