using System; using System.ServiceModel; using System.ServiceModel.Activation; using Curtain.Extension.ExObjectConvert; using Dongke.IBOSS.PRD.Service.BPMDataService; using Dongke.IBOSS.PRD.Service.SAPHegiiDataService; using Dongke.IBOSS.PRD.Service.WMSDataService; using Dongke.IBOSS.PRD.WCF.Contracts; using Dongke.IBOSS.PRD.WCF.DataModels; namespace Dongke.IBOSS.PRD.WCF.Services { /// /// SAP数据接口 /// [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] [ServiceBehavior(ConfigurationName = "SAPDataService", InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple, UseSynchronizationContext = false)] public class SAPDataService : ServicesBase, ISAPData { #region 共通接口 /// /// 共通接口 /// /// /// public ServiceResultEntity DoRequest(ClientRequestEntity cre) { try { #region Hegii if ("Hegii" == cre.NameSpace) { #region SAP相关 // 获取同步最后一次同步成功的日期 if ("GetLastDateByCode" == cre.Name) { string dataCode = cre.Request + ""; ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetLastDateByCode(dataCode)); return result; } // 获取成品交接同步数据 else if ("GetWorkData60" == cre.Name) { DateTime date = (DateTime)cre.Request; ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetWorkData60(date)); return result; } // 同步成品交接数据 else if ("SetWorkData60" == cre.Name) { DateTime date = (DateTime)cre.Request; ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.SetWorkData60(date, cre.Data.Tables[0], SUserInfo.UserID)); return result; } // 查询同步日志 else if ("GetDataLog" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetDataLog(cre)); return result; } // 查询产量同步明细 else if ("GetWorkDataByDataLog" == cre.Name) { int logid = Convert.ToInt32(cre.Request); ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetWorkDataByDataLog(logid)); return result; } // 查询 else if ("GetWorkDataSPSumByDate" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetWorkDataSPSumByDate(cre)); return result; } // 查询成品条码同步明细 else if ("GetFinishedProductByDataLog" == cre.Name) { int logid = Convert.ToInt32(cre.Request); ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetFinishedProductByDataLog(logid)); return result; } // 获取数据并同步产量数据 else if ("SetWorkData10_50" == cre.Name) { DateTime date = (DateTime)cre.Request; string datacode = cre.Properties["datacode"] + ""; ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.SetWorkData10_50(datacode, SUserInfo.UserID, date)); return result; } // 同步产量数据 else if ("SyncSap" == cre.Name) { DateTime date = (DateTime)cre.Request; string datacode = cre.Properties["datacode"] + ""; int logid = cre.Properties["logid"].ToInt32(); ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.SyncSap(date, datacode, SUserInfo.UserID, logid)); return result; } // 同步成品条码明细数据 else if ("SetFP6001" == cre.Name) { // DateTime date = (DateTime)cre.Request; // //if (date.Year < 2018) // //{ // // ServiceResultEntity result1 = ServiceInvoker.Invoke(this, // // () => SAPDataLogic.SetFP6001_1(date, SUserInfo.UserID)); // // return result1; // //} // ServiceResultEntity result = ServiceInvoker.Invoke(this, //() => SAPDataLogic.SetFP6001(date, SUserInfo.UserID)); return new ServiceResultEntity(); } // 同步成品条码明细数据 else if ("SetFP6002" == cre.Name) { //DateTime date = (DateTime)cre.Request; //ServiceResultEntity result = ServiceInvoker.Invoke(this, // () => SAPDataLogic.SetFP6002(date, SUserInfo.UserID)); return new ServiceResultEntity(); } // 临时同步 else if ("SetFP60_T" == cre.Name) { //DateTime date = DateTime.Now;//(DateTime)cre.Request; //ServiceResultEntity result = ServiceInvoker.Invoke(this, // () => SAPDataLogic.SetFP60_T(date, SUserInfo.UserID)); return new ServiceResultEntity(); } //查询跨车间作业同步汇总 else if ("GetDataLog_kczzy" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetDataLog_kczzy(cre)); return result; } // 查询跨车间作业同步明细 else if ("GetWorkData_kczzy" == cre.Name) { //int logid = Convert.ToInt32(cre.Request); ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetWorkData_kczzy(cre)); return result; } // 查询报工移库日志 else if ("GetDataLog_BGYK" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetDataLog_BGYK(cre)); return result; } // 查询报工移库日志明细 else if ("GetWorkData_BGYK" == cre.Name) { //update xiacm 2022-10-21 // int logid = Convert.ToInt32(cre.Request); ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetWorkData_BGYK(cre)); return result; } // 查询报工日志 else if ("GetDataLog_BG" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetDataLog_BG(cre)); return result; } // 查询报工日志明细 else if ("GetWorkData_BG" == cre.Name) { // int logid = Convert.ToInt32(cre.Request); ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetWorkData_BG(cre)); return result; } // 查询报工汇总 add xiacm 2022-10-12 else if ("GetDataLogTotal_BG" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetDataLogTotal_BG(cre)); return result; } // 查询半成品库存 add xiacm 2022-11-09 else if ("GetDataIVITotal_BC" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => SAPDataLogic.GetDataIVITotal_BC(cre)); return result; } #endregion #region WMS相关 // 查询WMS同步日志 else if ("GetWMSDataLog" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => WMSDataLogic.GetWMSDataLog(cre, SUserInfo)); return result; } // 同步WMS同步日志 else if ("SyncWMSDataLog" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => WMSDataLogic.SyncWMSDataLog(cre, SUserInfo)); return result; } #endregion #region BPM相关 // 查询组件报损数据 else if ("GetDataBARCODEIDNRKSCRAP" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.GetDataBARCODEIDNRKSCRAP(cre, SUserInfo)); return result; } // 确认组件报损 else if ("SaveConfirmIdnrkScrap" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.SaveConfirmIdnrkScrap(cre, SUserInfo)); return result; } // 撤销确认组件报损 else if ("SaveUNConfirmIdnrkScrap" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.SaveUNConfirmIdnrkScrap(cre, SUserInfo)); return result; } //同步bpm组件报损 else if ("SynIdnrkScrap" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.SynIdnrkScrap(cre, SUserInfo)); return result; } //撤销bpm组件报损 else if ("CancelSynIdnrkScrap" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.CancelSynIdnrkScrap(cre, SUserInfo)); return result; } //查询成本中心 else if ("GetCostCenter" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.GetCostCenter(cre, SUserInfo)); return result; } //设置成本中心 else if ("SaveCostCenter" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.SaveCostCenter(cre, SUserInfo)); return result; } //确认bpm 同一流程实例报损履历是否全部选中 else if ("CheckScrap" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.CheckScrap(cre, SUserInfo)); return result; } //删除报损履历 else if ("DeleteIDNRKScrap" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.DeleteIDNRKScrap(cre, SUserInfo)); return result; } //新建报损履历 else if ("AddIDNRKScrap" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.AddIDNRKScrap(cre, SUserInfo)); return result; } //获取报损履历信息 else if ("GetIDNRKScrap" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.GetIDNRKScrap(cre, SUserInfo)); return result; } // else if ("GetIdnrkCode" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.GetIdnrkCode(cre, SUserInfo)); return result; } //编辑报损履历 else if ("UpdateIDNRKScrap" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.UpdateIDNRKScrap(cre, SUserInfo)); return result; } #endregion #region 中台相关 // 查询中台同步日志 else if ("GetZhongTaiDataLog" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.GetZhongTaiDataLog(cre, SUserInfo)); return result; } // 同步中台同步日志 else if ("SyncZhongTaiData" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.SyncZhongTaiData(cre)); return result; } #endregion #region 昆船WMS // 查询昆船WMS同步日志 else if ("GetKunChuanDataLog" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.GetKunChuanDataLog(cre, SUserInfo)); return result; } // 同步昆船WMS同步日志 else if ("SyncKunChuanData" == cre.Name) { ServiceResultEntity result = ServiceInvoker.Invoke(this, () => BPMDataLogic.SyncKunChuanData(cre)); return result; } #endregion return null; } #endregion return null; } catch (Exception ex) { throw ex; } } #endregion #region Hegii ///// ///// 获取同步最后一次同步成功的日期 ///// ///// //public ServiceResultEntity GetLastDateBy(string dataCode) //{ // try // { // } // catch (Exception ex) // { // throw ex; // } //} #endregion } }