using Dapper; using Estsh.Core.Base; using Estsh.Core.Dapper; using Estsh.Core.Model.Result; using Estsh.Core.Models; using Estsh.Core.Repositories; using Estsh.Core.Wms.IRepositories; using System.Collections; using System.Data; using System.Text; namespace Estsh.Core.Wms.Repositories { /// /// ERP接口 /// public class ERPInterfaceRepository : BaseRepository, IERPInterfaceRepository { public ERPInterfaceRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } /// /// 从SAP传递物料基本信息到WMS /// /// /// public WmsInterfaceResult MaterialMasterMethod(string sid, List sapPts) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapPts)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapPts.Count; i++) { SapPtInterface sapPt = sapPts[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_PT(MATNR,MAKTX,MTART,MTBEZ,MATKL,WGBEZ,MEINS "); SqlStringBuilder.Append(" ,MAABC,BSTRF,WERKS,LVORM,SPART,ZZPPMATNR "); SqlStringBuilder.Append(" ,SID,SYNFLG,ACTFLG,STAFLG) "); SqlStringBuilder.Append(" VALUES(@MATNR,@MAKTX,@MTART,@MTBEZ,@MATKL,@WGBEZ,@MEINS,@MAABC "); SqlStringBuilder.Append(" ,@BSTRF,@WERKS,@LVORM,@SPART,@ZZPPMATNR,'" + sid + "' "); SqlStringBuilder.Append(" ,'N','N','N') "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@MATNR", sapPt.Matnr); dynamic.Add("@MAKTX", sapPt.Maktx); dynamic.Add("@MTART", sapPt.Mtart); dynamic.Add("@MTBEZ", sapPt.Mtbez); dynamic.Add("@MATKL", sapPt.Matkl); dynamic.Add("@WGBEZ", sapPt.Wgbez); dynamic.Add("@MEINS", sapPt.Meins); dynamic.Add("@MAABC", sapPt.Maabc); dynamic.Add("@BSTRF", sapPt.Bstrf); dynamic.Add("@WERKS", sapPt.Werks); dynamic.Add("@LVORM", sapPt.Lvorm); dynamic.Add("@SPART", sapPt.Spart); dynamic.Add("@ZZPPMATNR", sapPt.Zzppmatnr); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.Message.ToString(); } return interfaceResult; } } /// /// 从SAP传递供应商基本信息到WMS /// /// /// public WmsInterfaceResult SupplierMasterMethod(string sid, List sapSus) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapSus)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapSus.Count; i++) { SapSuInterface sapSu = sapSus[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_SU(LIFNR,NAME1,STRAS,TELF1,PSTL2,NODEL "); SqlStringBuilder.Append(" ,SYNFLG,ACTFLG,STAFLG,SID) "); SqlStringBuilder.Append(" VALUES(@LIFNR,@NAME1,@STRAS,@TELF1,@PSTL2,@NODEL,'N' "); SqlStringBuilder.Append(" ,'N','N','" + sid + "') "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@LIFNR", sapSu.LIFNR); dynamic.Add("@NAME1", sapSu.NAME1); dynamic.Add("@STRAS", sapSu.STRAS); dynamic.Add("@TELF1", sapSu.TELF1); dynamic.Add("@PSTL2", sapSu.PSTL2); dynamic.Add("@NODEL", sapSu.NODEL); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.ToString(); } return interfaceResult; } } /// /// 从SAP传递客户基本信息到WMS /// /// /// public WmsInterfaceResult CustomerMasterMethod(string sid, List sapCus) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapCus)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapCus.Count; i++) { SapCuInterface sapCu = sapCus[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_CU(KUNNR,NAME1,STRAS,TELF1,PSTL2,NODEL,SID "); SqlStringBuilder.Append(" ,SYNFLG,ACTFLG,STAFLG) "); SqlStringBuilder.Append(" VALUES(@KUNNR,@NAME1,@STRAS,@TELF1,@PSTL2,@NODEL,'" + sid + "' "); SqlStringBuilder.Append(" ,'N','N','N') "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@KUNNR", sapCu.Kunnr); dynamic.Add("@NAME1", sapCu.Name1); dynamic.Add("@STRAS", sapCu.Stras); dynamic.Add("@TELF1", sapCu.Telf1); dynamic.Add("@PSTL2", sapCu.Pstl2); dynamic.Add("@NODEL", sapCu.Nodel); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.ToString(); } return interfaceResult; } } /// /// 从SAP传递物料号与客户物料号对照信息到WMS /// /// /// public WmsInterfaceResult CustomerItemMasterMethod(string sid, List sapPtcpts) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapPtcpts)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapPtcpts.Count; i++) { SapPtcptInterface sapPtcpt = sapPtcpts[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_PTCPT(KUNNR,MATNR,KDMAT,ZZ_TYPE,SID,SYNFLG "); SqlStringBuilder.Append(" ,ACTFLG,STAFLG) "); SqlStringBuilder.Append(" VALUES(@KUNNR,@MATNR,@KDMAT,@ZZTYPE,'" + sid + "','N' "); SqlStringBuilder.Append(" ,'N','N') "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@KUNNR", sapPtcpt.Kunnr); dynamic.Add("@MATNR", sapPtcpt.Matnr); dynamic.Add("@KDMAT", sapPtcpt.Kdmat); dynamic.Add("@ZZTYPE", sapPtcpt.ZzType); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.ToString(); } return interfaceResult; } } /// /// MBOM同步到MES系统 /// /// /// public WmsInterfaceResult BomMasterMethod(string sid, List sapBoms) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapBoms)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapBoms.Count; i++) { SapBomInterface sapBom = sapBoms[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_BOM(WERKS,MATNR,BMENG,BMEIN,IDNRK,MENGE,MEINS,DATUV,DATUS "); SqlStringBuilder.Append(" ,LKENZ,AENNR,SID,SYNFLG,ACTFLG,STAFLG,STLKZ) "); SqlStringBuilder.Append(" VALUES(@WERKS,@MATNR,@BMENG,@BMEIN,@IDNRK,@MENGE,@MEINS,@DATUV,@DATUS,@LKENZ "); SqlStringBuilder.Append(" ,@AENNR,'" + sid + "','N','N','N',@STLKZ) "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@WERKS", sapBom.Werks); dynamic.Add("@MATNR", sapBom.Matnr); dynamic.Add("@BMENG", sapBom.Bmeng); dynamic.Add("@BMEIN", sapBom.Bmein); dynamic.Add("@IDNRK", sapBom.Idnrk); dynamic.Add("@MENGE", sapBom.Menge); dynamic.Add("@MEINS", sapBom.Meins); dynamic.Add("@DATUV", sapBom.Datuv); dynamic.Add("@DATUS", sapBom.Datus); dynamic.Add("@LKENZ", sapBom.Lkenz); dynamic.Add("@AENNR", sapBom.Aennr); dynamic.Add("@STLKZ", sapBom.Stlkz); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.ToString(); } return interfaceResult; } } /// /// SAP系统把ASN传递到WMS用于采购收货 /// /// /// public WmsInterfaceResult ASNDataMethod(string sid, List sapAsns) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapAsns)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapAsns.Count; i++) { SapAsnInterface sapAsn = sapAsns[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_ASN(ZASNNO,LIFNR,ZRNUM,MATNR,ZCN_NUM,UNIT,PSTYP,ZDATE,ZCJSJ "); SqlStringBuilder.Append(" ,WERKS,LGORT,ZSTAS,ZTXM,SID,SYNFLG,ACTFLG,STAFLG) "); SqlStringBuilder.Append(" VALUES(@ZASNNO,@LIFNR,@ZRNUM,@MATNR,@ZCNNUM,@UNIT,@PSTYP,@ZDATE,@ZCJSJ,@WERKS "); SqlStringBuilder.Append(" ,@LGORT,@ZSTAS,@ZTXM,'" + sid + "','N','N','N') "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@ZASNNO", sapAsn.Zasnno); dynamic.Add("@LIFNR", sapAsn.Lifnr); dynamic.Add("@ZRNUM", sapAsn.Zrnum); dynamic.Add("@MATNR", sapAsn.Matnr); dynamic.Add("@ZCNNUM", sapAsn.ZCN_NUM); dynamic.Add("@UNIT", sapAsn.Unit); dynamic.Add("@PSTYP", sapAsn.Pstyp); dynamic.Add("@ZDATE", sapAsn.Zdate); dynamic.Add("@ZCJSJ", sapAsn.Zcjsj); dynamic.Add("@WERKS", sapAsn.Werks); dynamic.Add("@LGORT", sapAsn.Lgort); dynamic.Add("@ZSTAS", sapAsn.Zstas); dynamic.Add("@ZTXM", sapAsn.Ztxm); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.ToString(); } return interfaceResult; } } /// /// SAP系统把PO传递到WMS用于采购收货 /// /// /// public WmsInterfaceResult PODataMethod(string sid, List sapDspos) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapDspos)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapDspos.Count; i++) { SapDspoInterface sapDspo = sapDspos[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_DSPO(EBELN,EVRTP,LIFNR,MATNR,ZDEV_NUM,UNIT,PSTYP,ZDATE,ZCJSJ,WERKS "); SqlStringBuilder.Append(" ,LGORT,ZSTAS,BSTYP,BSTRF,SID,SYNFLG,ACTFLG,STAFLG) "); SqlStringBuilder.Append(" VALUES(@EBELN,@EVRTP,@LIFNR,@MATNR,@ZDEVNUM,@UNIT,@PSTYP,@ZDATE,@ZCJSJ,@WERKS,@LGORT,@ZSTAS "); SqlStringBuilder.Append(" ,@BSTYP,@BSTRF,'" + sid + "','N','N','N') "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@EBELN", sapDspo.Ebeln); dynamic.Add("@EVRTP", sapDspo.Evrtp); dynamic.Add("@LIFNR", sapDspo.Lifnr); dynamic.Add("@MATNR", sapDspo.Matnr); dynamic.Add("@ZDEVNUM", sapDspo.Zdev_Num); dynamic.Add("@UNIT", sapDspo.Unit); dynamic.Add("@PSTYP", sapDspo.Pstyp); dynamic.Add("@ZDATE", sapDspo.Zdate); dynamic.Add("@ZCJSJ", sapDspo.Zcjsj); dynamic.Add("@WERKS", sapDspo.Werks); dynamic.Add("@LGORT", sapDspo.Lgort); dynamic.Add("@ZSTAS", sapDspo.Zstas); dynamic.Add("@BSTYP", sapDspo.Bstyp); dynamic.Add("@BSTRF", sapDspo.Bstrf); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.ToString(); } return interfaceResult; } } /// /// SAP系统将一定期间内待发运交货单信息发布到WMS用于后续捡配发货 /// /// /// public WmsInterfaceResult SalesAndDeliveryPlanMethod(string sid, List sapDns) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapDns)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapDns.Count; i++) { SapDnInterface sapDn = sapDns[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_DN(VBELN,POSNR,WERKS,LGORT,LFDAT,KUNNR,MATNR,KDMAT,LFIMG,MEINS "); SqlStringBuilder.Append(" ,SID,SYNFLG,ACTFLG,STAFLG,ZVBELN) "); SqlStringBuilder.Append(" VALUES(@VBELN,@POSNR,@WERKS,@LGORT,@LFDAT,@KUNNR,@MATNR,@KDMAT,@LFIMG "); SqlStringBuilder.Append(" ,@MEINS,'" + sid + "','N','N','N',@ZVBELN) "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@VBELN", sapDn.Vbeln); dynamic.Add("@POSNR", sapDn.Posnr); dynamic.Add("@WERKS", sapDn.Werks); dynamic.Add("@LGORT", sapDn.Lgort); dynamic.Add("@LFDAT", sapDn.Lfdat); dynamic.Add("@KUNNR", sapDn.Kunnr); dynamic.Add("@MATNR", sapDn.Matnr); dynamic.Add("@KDMAT", sapDn.Kdmat); dynamic.Add("@LFIMG", sapDn.Lfimg); dynamic.Add("@MEINS", sapDn.Meins); dynamic.Add("@ZVBELN", sapDn.Zvbeln); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.ToString(); } return interfaceResult; } } /// /// SAP把物料的零星出(入)指令传到WMS /// /// /// public WmsInterfaceResult SporadicEntryAndExitMethod(string sid, List sapMiscos) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapMiscos)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapMiscos.Count; i++) { SapMiscoInterface sapMisco = sapMiscos[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_MISCO(ZINSTNO,ZEILE,WERKS,LGORT,MATNR,ERFMG,ERFME,SOBKZ "); SqlStringBuilder.Append(" ,HTEXT,ZZLZT,ZACTION,SID,SYNFLG,ACTFLG,STAFLG) "); SqlStringBuilder.Append(" VALUES(@ZINSTNO,@ZEILE,@WERKS,@LGORT,@MATNR,@ERFMG,@ERFME,@SOBKZ,@HTEXT "); SqlStringBuilder.Append(" ,@ZZLZT,@ZACTION,'" + sid + "','N','N','N') "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@ZINSTNO", sapMisco.Zinstno); dynamic.Add("@ZEILE", sapMisco.Zeile); dynamic.Add("@WERKS", sapMisco.Werks); dynamic.Add("@LGORT", sapMisco.Lgort); dynamic.Add("@MATNR", sapMisco.Matnr); dynamic.Add("@ERFMG", sapMisco.Erfmg); dynamic.Add("@ERFME", sapMisco.Erfme); dynamic.Add("@SOBKZ", sapMisco.Sobkz); dynamic.Add("@HTEXT", sapMisco.Htext); dynamic.Add("@ZZLZT", sapMisco.Zzlzt); dynamic.Add("@ZACTION", sapMisco.Zaction); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.ToString(); } return interfaceResult; } } /// /// 盘点开始时,SAP冻结库存,并把盘点表传到WMS /// /// /// public WmsInterfaceResult InventoryListMethod(string sid, List sapCycos) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapCycos)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapCycos.Count; i++) { SapCycoInterface sapCyco = sapCycos[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_CYCO(IBLNR,ZEILI,MATNR,MEINS,WERKS,LGORT,ZSTAT,SOBKZ "); SqlStringBuilder.Append(" ,GJAHR,SID,SYNFLG,ACTFLG,STAFLG) "); SqlStringBuilder.Append(" VALUES(@IBLNR,@ZEILI,@MATNR,@MEINS,@WERKS,@LGORT,@ZSTAT,@SOBKZ,@GJAHR "); SqlStringBuilder.Append(" ,'" + sid + "','N','N','N') "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@IBLNR", sapCyco.Iblnr); dynamic.Add("@ZEILI", sapCyco.Zeili); dynamic.Add("@MATNR", sapCyco.Matnr); dynamic.Add("@MEINS", sapCyco.Meins); dynamic.Add("@WERKS", sapCyco.Werks); dynamic.Add("@LGORT", sapCyco.Lgort); dynamic.Add("@ZSTAT", sapCyco.Zstat); dynamic.Add("@SOBKZ", sapCyco.Sobkz); dynamic.Add("@GJAHR", sapCyco.Gjahr); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.ToString(); } return interfaceResult; } } /// /// SAP把盘点差异转移到差异库的结果传到WMS,使得WMS可以根据盘点结果调整库存 /// /// /// public WmsInterfaceResult InventoryDifferenceAdjustmentMethod(string sid, List sapDifos) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); WmsInterfaceResult interfaceResult = new WmsInterfaceResult(); try { StringBuilder IQSqlStringBuilder = new StringBuilder(1024); IQSqlStringBuilder.Append("INSERT INTO dbo.IQ(SID,RECTIM,XMLCON "); IQSqlStringBuilder.Append(" ,ACTFLG) "); IQSqlStringBuilder.Append(" VALUES(@SID,@RECTIM,@XMLCON "); IQSqlStringBuilder.Append(" ,@ACTFLG) "); DynamicParameters IQdynamic = new DynamicParameters(); IQdynamic.Add("@SID", sid); IQdynamic.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); IQdynamic.Add("@XMLCON", Newtonsoft.Json.JsonConvert.SerializeObject(sapDifos)); IQdynamic.Add("@ACTFLG", 'N'); dbConn.Execute(IQSqlStringBuilder.ToString(), IQdynamic); StringBuilder SqlStringBuilder = new StringBuilder(1024); List sqlLists = new List(); List parameters = new List(); for (int i = 0; i < sapDifos.Count; i++) { SapDifoInterface sapDifo = sapDifos[i]; SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.SAP_DIFO(WERKS,IBLNR,ZEILI,ZTZBS,GJAHR,SID "); SqlStringBuilder.Append(" ,SYNFLG,ACTFLG,STAFLG) "); SqlStringBuilder.Append(" VALUES(@WERKS,@IBLNR,@ZEILI,@ZTZBS,@GJAHR,'" + sid + "','N','N','N') "); sqlLists.Add(SqlStringBuilder.ToString()); DynamicParameters dynamic = new DynamicParameters(); dynamic.Add("@WERKS", sapDifo.Werks); dynamic.Add("@IBLNR", sapDifo.Iblnr); dynamic.Add("@ZEILI", sapDifo.Zeili); dynamic.Add("@ZTZBS", sapDifo.Ztzbs); dynamic.Add("@GJAHR", sapDifo.Gjahr); parameters.Add(dynamic); } bool result = this.ExecuteTransaction(sqlLists, parameters); if (result == true) { interfaceResult.success = true; interfaceResult.message = "成功"; } else { interfaceResult.success = false; interfaceResult.message = "数据添加失败,请检查"; } } catch (Exception ex) { interfaceResult.success = false; interfaceResult.message = ex.ToString(); } return interfaceResult; } } } }