public bool updateKingDeeDataBase(string model, List <string> SQLStatement, Dictionary <string, UpdateFields> updateMap, Context ctx) { List <string> statementList = new List <string>(); foreach (KeyValuePair <string, UpdateFields> kvp in updateMap) { if (string.Equals(CustomerSQLObject.Customer, model, StringComparison.CurrentCultureIgnoreCase)) { CustomerUpdateFields customerUpdateFields = (CustomerUpdateFields)kvp.Value; string statement = string.Format(SQLStatement[0], customerUpdateFields.FName, kvp.Key); statementList.Add(statement); CustomerFnunbers.Add(kvp.Key); } if (string.Equals(SupplierSQLObject.Supplier, model, StringComparison.CurrentCultureIgnoreCase)) { SupplierUpdateFields supplierUpdateFields = (SupplierUpdateFields)kvp.Value; string statement1 = string.Format(SQLStatement[0], supplierUpdateFields.FName, kvp.Key); string statement2 = string.Format(SQLStatement[1], supplierUpdateFields.FbankCode, kvp.Key); string statement3 = string.Format(SQLStatement[2], supplierUpdateFields.FopenBankName, kvp.Key); SupplierFnumbers.Add(kvp.Key); using (KDTransactionScope trans = new KDTransactionScope(System.Transactions.TransactionScopeOption.Required)) { if (DBServiceHelper.Execute(ctx, statement1) > 0) { if (DBServiceHelper.Execute(ctx, statement2) > 0) { if (DBServiceHelper.Execute(ctx, statement3) > 0) { BussnessLog.WriteBussnessLog("", model + "更新", "更新金蝶数据库成功! fnumber=" + kvp.Key); } else { BussnessLog.WriteBussnessLog("", model + "更新", "更新金蝶数据库失败! fnumber=" + kvp.Key); } } } trans.Complete(); } } } if (DBServiceHelper.ExecuteBatch(ctx, statementList) > 0) { foreach (string s in statementList) { BussnessLog.WriteBussnessLog("", model + "更新", "更新金蝶数据库成功! 更新语句=" + s); } } else { foreach (string s in statementList) { BussnessLog.WriteBussnessLog("", model + "更新", "更新金蝶数据库失败! 更新语句=" + s); } } return(true); }
public override HttpResponseResult ExecuteSynchro(IEnumerable <AbsSynchroDataInfo> sourceDatas, List <SynchroLog> logs, SynOperationType operationType) { HttpResponseResult result = null; List <Material> materials = null /*sourceDatas.Select(m => (Material)m).ToList()*/; KDTransactionScope trans = null; List <string> numbers = null; try { if (operationType == SynOperationType.SAVE) { } else if (operationType == SynOperationType.UPDATE) { using (trans = new KDTransactionScope(System.Transactions.TransactionScopeOption.Required)) { int count = 0; string messages = ""; if (materials != null && materials.Count > 0) { numbers = new List <string>(); foreach (var data in materials) { //if (data != null) //{ // string sql = string.Format(@"/*dialect*/ update T_BD_MATERIAL // set F_HS_LISTID = '{0}' ,F_HS_LISTNAME= '{1}' // where FNUMBER = '{2}' // and len(F_HS_LISTID) = 0", info.F_HS_ListID, info.F_HS_ListName, info.FNumber); // try // { // count += DBUtils.Execute(this.K3CloudContext, sql); // if (count > 0) // { // numbers.Add(info.FNumber); // } // else // { // string message = "物料【" + info.FNumber + "】LISTID【" + info.F_HS_ListID + "】已更新,不再更新!"; // messages += message; // (this.K3CloudContext, SynchroDataType.DownLoadListInfo, message); // } // } // catch (Exception ex) // { // (this.K3CloudContext, SynchroDataType.DownLoadListInfo, "数据批量更新过程中出现异常,异常信息:" + ex.Message + System.Environment.NewLine + ex.StackTrace); // messages += ex.Message + System.Environment.NewLine + ex.StackTrace; // } //} } if (numbers != null && numbers.Count > 0) { RemoveRedisData(this.K3CloudContext, numbers); } if (!string.IsNullOrWhiteSpace(messages)) { result.Success = false; result.Message = messages; } else { if (count == numbers.Count && count > 0) { result.Success = true; result.Message = "物料ListId下载成功!"; } } } } return(result); } } catch (Exception ex) { if (logs != null && logs.Count > 0) { foreach (var log in logs) { log.IsSuccess = 0; log.ErrInfor = ex.Message + System.Environment.NewLine + ex.StackTrace; } } } if (result == null) { return(null); } if (result.Success == false && result.FailedResult == null && result.Result == null) { //同步出现错误之类:如令牌错误,url错误之类的 if (logs != null && logs.Count > 0) { foreach (var log in logs) { log.IsSuccess = 0; log.ErrInfor = "数据同步失败:" + result.Message == null ? "" : result.Message; } } return(result); } return(result); }
/// <summary> /// 同步数据 /// </summary> /// <param name="sourceDatas"></param> /// <param name="logs"></param> /// <param name="operationType"></param> /// <returns></returns> public override HttpResponseResult ExecuteSynchro(IEnumerable <AbsSynchroDataInfo> sourceDatas, List <SynchroLog> logs, SynOperationType operationType) { HttpResponseResult result = null; JObject bizData = BuildSynchroDataJsons(sourceDatas, operationType); List <DeliveryNotice> notices = ConvertAbsSynchroObject(sourceDatas); KDTransactionScope trans = null; try { if (operationType == SynOperationType.SAVE) { using (trans = new KDTransactionScope(System.Transactions.TransactionScopeOption.Required)) { //单据保存 //result = InvokeWebApi.InvokeBatchSave(this.K3CloudContext, this.DataType, this.FormKey, bizData.ToString()); //提交事务 trans.Complete(); } return(result); } else if (operationType == SynOperationType.UPDATE) { result = new HttpResponseResult(); result.Message = "订单已经存在!"; } } catch (Exception ex) { LogUtils.WriteSynchroLog(this.K3CloudContext, SynchroDataType.DeliveryNoticeBill, "数据批量更新过程中出现异常,异常信息:" + ex.Message + System.Environment.NewLine + ex.StackTrace); result = new HttpResponseResult(); result.Success = false; result.Message = ex.Message; if (logs != null && logs.Count > 0) { foreach (var log in logs) { log.IsSuccess = 0; log.ErrInfor = ex.Message + System.Environment.NewLine + ex.StackTrace; } } } finally { if (trans != null) { trans.Dispose(); } } if (result == null) { return(null); } if (result.Success == false && result.FailedResult == null && result.Result == null) { return(result); } return(result); }
public override HttpResponseResult ExecuteSynchro(IEnumerable <AbsSynchroDataInfo> sourceDatas, List <SynchroLog> logs, SynOperationType operationType) { HttpResponseResult result = null; HttpResponseResult saveR = null; HttpResponseResult submitR = null; HttpResponseResult auditR = null; KDTransactionScope trans = null; JObject bizData = null; if (sourceDatas != null && sourceDatas.Count() > 0) { bizData = BuildSynchroDataJsons(sourceDatas, operationType); } else { result = new HttpResponseResult(); result.Success = false; result.Message = "没有需要保存的数据!"; return(result); } try { if (operationType == SynOperationType.SAVE) { #region using (trans = new KDTransactionScope(System.Transactions.TransactionScopeOption.Required)) { #region //单据保存 result = ExecuteOperate(SynOperationType.SAVE, null, null, bizData.ToString()); saveR = result; if (result != null && result.SuccessEntityNos != null && result.SuccessEntityNos.Count > 0) { result.Message = this.DataType + "【" + string.Join(",", result.SuccessEntityNos.Select(o => o.ToString())) + "】" + SynOperationType.SAVE + " 成功!"; //单据提交 result = ExecuteOperate(SynOperationType.SUBMIT, result.SuccessEntityNos, null, null); submitR = result; if (result != null && result.SuccessEntityNos != null && result.SuccessEntityNos.Count > 0) { result.Message = this.DataType + "【" + string.Join(",", result.SuccessEntityNos.Select(o => o.ToString())) + "】" + SynOperationType.SUBMIT + " 成功!"; //单据审核 result = ExecuteOperate(SynOperationType.AUDIT, result.SuccessEntityNos, null, null); result.Message = this.DataType + "【" + string.Join(",", result.SuccessEntityNos.Select(o => o.ToString())) + "】" + SynOperationType.AUDIT + " 成功!"; auditR = result; } } //提交事务 trans.Complete(); #endregion } UpdateAfterOperate(this.K3CloudContext, saveR, SynOperationType.SAVE); UpdateAfterOperate(this.K3CloudContext, submitR, SynOperationType.SUBMIT); UpdateAfterOperate(this.K3CloudContext, auditR, SynOperationType.AUDIT); #endregion } return(result); } catch (Exception ex) { if (logs != null && logs.Count > 0) { foreach (var log in logs) { log.IsSuccess = 0; log.ErrInfor = ex.Message + System.Environment.NewLine + ex.StackTrace; } } LogUtils.WriteSynchroLog(this.K3CloudContext, this.DataType, ex.Message + System.Environment.NewLine + ex.StackTrace); } finally { if (trans != null) { trans.Dispose(); } } if (result == null) { return(null); } if (result.Success == false && result.FailedResult == null && result.Result == null) { //同步出现错误之类:如令牌错误,url错误之类的 if (logs != null && logs.Count > 0) { foreach (var log in logs) { log.IsSuccess = 0; log.ErrInfor = "数据同步失败:" + result.Message == null ? "" : result.Message; } } return(result); } return(result); }
/// <summary> /// 执行同步客户操作 /// </summary> /// <param name="sourceDatas"></param> /// <param name="logs"></param> /// <param name="operationType"></param> /// <returns></returns> public override HttpResponseResult ExecuteSynchro(IEnumerable <AbsSynchroDataInfo> sourceDatas, List <SynchroLog> logs, SynOperationType operationType) { HttpResponseResult result = null; KDTransactionScope trans = null; List <K3CustomerInfo> custs = ConvertAbsSynchroObject(sourceDatas); JObject bizData = BuildSynchroDataJsons(sourceDatas, operationType); List <string> numbers = null; List <int> pkIds = null; try { if (operationType == SynOperationType.SAVE) { #region try { #region using (trans = new KDTransactionScope(System.Transactions.TransactionScopeOption.Required)) { //单据保存 result = ExecuteOperate(SynOperationType.SAVE, null, null, bizData.ToString()); if (result != null && result.Success == true) { //保存操作成功后返回单据的编码集合 if (result.GetNeedReturnValues("FNumber").ConvertAll(obj => string.Format("{0}", obj)) != null) { numbers = result.GetNeedReturnValues("FNumber").ConvertAll(obj => string.Format("{0}", obj)); } //保存操作成功后返回的单据内码集合 if (result.GetNeedReturnValues("FCUSTID").Select(obj => Convert.ToInt32(obj)).ToList() != null) { pkIds = result.GetNeedReturnValues("FCUSTID").Select(obj => Convert.ToInt32(obj)).ToList(); } } ////单据提交 //result = InvokeWebApi.InvokeBatchSubmit(this.K3CloudContext, this.DataType, FormKey, numbers); ////单据审核 //result = InvokeWebApi.InvokeBatchAudit(this.K3CloudContext, this.DataType, FormKey, numbers); ////单据分配 //result = InvokeWebApi.InvokeBatchAllot(this.K3CloudContext, this.DataType, FormKey, pkIds); ////分配后更新提交审核 //result = AfterAllot(this.K3CloudContext, custs); ////提交事务 trans.Complete(); } } #endregion #region ////单据保存 //result = InvokeWebApi.InvokeBatchSave(this.K3CloudContext, this.DataType, FormKey, bizData.ToString()); //if (result != null && result.Success == true) //{ // //保存操作成功后返回单据的编码集合 // if (result.ReturnValues("FNumber").ConvertAll(obj => string.Format("{0}", obj)) != null) // { // numbers = result.ReturnValues("FNumber").ConvertAll(obj => string.Format("{0}", obj)); // } // //保存操作成功后返回的单据内码集合 // if (result.ReturnValues("FCUSTID").Select(obj => Convert.ToInt32(obj)).ToList() != null) // { // pkIds = result.ReturnValues("FCUSTID").Select(obj => Convert.ToInt32(obj)).ToList(); // } //} ////单据提交 //result = InvokeWebApi.InvokeBatchSumbit(this.K3CloudContext, this.DataType, FormKey, numbers); ////单据审核 //result = InvokeWebApi.InvokeBatchAudit(this.K3CloudContext, this.DataType, FormKey, numbers); ////单据分配 ////result = InvokeWebApi.InvokeBatchAllot(this.K3CloudContext, this.DataType, FormKey, pkIds); ////分配后更新提交审核 ////result = AfterAllot(this.K3CloudContext, custs); //trans.Complete(); #endregion catch (Exception ex) { LogUtils.WriteSynchroLog(this.K3CloudContext, this.DataType, "提交事务出现异常,异常信息:" + ex.Message + System.Environment.NewLine + ex.StackTrace); } finally { if (trans != null) { trans.Dispose(); } } #endregion } else if (operationType == SynOperationType.ALLOT) { //单据分配 try { if (custs != null && custs.Count > 0) { AfterAllot(this.K3CloudContext, custs); } } catch (Exception ex) { LogUtils.WriteSynchroLog(this.K3CloudContext, this.DataType, "分配操作出现异常,异常信息:" + ex.Message + System.Environment.NewLine + ex.StackTrace); } } else if (operationType == SynOperationType.UPDATE) { //单据更新 //result = InvokeWebApi.InvokeBatchSave(this.K3CloudContext, this.DataType, FormKey, bizData.ToString()); } return(result); } catch (Exception ex) { if (logs != null && logs.Count > 0) { foreach (var log in logs) { log.IsSuccess = 0; log.ErrInfor = ex.Message + System.Environment.NewLine + ex.StackTrace; } } } if (result == null) { return(null); } if (result.Success == false && result.FailedResult == null && result.Result == null) { //同步出现错误之类:如令牌错误,url错误之类的 if (logs != null && logs.Count > 0) { foreach (var log in logs) { log.IsSuccess = 0; log.ErrInfor = "数据同步失败:" + result.Message == null ? "" : result.Message; } } return(result); } return(result); }
/// <summary> /// 执行同步操作 /// </summary> /// <param name="sourceDatas"></param> /// <param name="logs"></param> /// <param name="operationType"></param> /// <returns></returns> public override HttpResponseResult ExecuteSynchro(IEnumerable <AbsSynchroDataInfo> sourceDatas, List <SynchroLog> logs, SynOperationType operationType) { HttpResponseResult result = null; JObject bizData = BuildSynchroDataJsons(sourceDatas, operationType); KDTransactionScope trans = null; HttpResponseResult saveRet = null; HttpResponseResult sumbitRet = null; HttpResponseResult auditRet = null; if (sourceDatas == null || sourceDatas.Count() == 0) { result = new HttpResponseResult(); result.Success = false; result.Message = "没有需要同步的数据!"; } try { if (operationType == SynOperationType.SAVE) { #region try { #region using (trans = new KDTransactionScope(System.Transactions.TransactionScopeOption.Required)) { //单据保存 saveRet = ExecuteOperate(SynOperationType.SAVE, null, null, bizData.ToString()); result = saveRet; if (saveRet != null && saveRet.SuccessEntityNos != null && saveRet.SuccessEntityNos.Count > 0) { result.Message = "收款单【" + string.Join(",", saveRet.SuccessEntityNos.Select(o => o.ToString())) + "】" + SynOperationType.SAVE + "成功!"; //单据提交 sumbitRet = ExecuteOperate(SynOperationType.SUBMIT, saveRet.SuccessEntityNos); result = sumbitRet; if (sumbitRet != null && sumbitRet.SuccessEntityNos != null && sumbitRet.SuccessEntityNos.Count > 0) { auditRet = ExecuteOperate(SynOperationType.AUDIT, sumbitRet.SuccessEntityNos); result = auditRet; result.Message = "收款单【" + string.Join(",", sumbitRet.SuccessEntityNos.Select(o => o.ToString())) + "】" + SynOperationType.SUBMIT + "成功!"; //单据审核后 if (auditRet != null && auditRet.SuccessEntityNos != null && auditRet.SuccessEntityNos.Count > 0) { result.Message = "收款单【" + string.Join(",", auditRet.SuccessEntityNos.Select(o => o.ToString())) + "】" + SynOperationType.AUDIT + "成功!"; } } } trans.Complete(); } //更新收款单对应单据字段的信息 UpdateAfterOperate(K3CloudContext, saveRet, sourceDatas, SynOperationType.SAVE); //更新收款单对应单据字段的信息 UpdateAfterOperate(K3CloudContext, sumbitRet, sourceDatas, SynOperationType.SUBMIT); //更新收款单对应单据字段的信息 UpdateAfterOperate(K3CloudContext, auditRet, sourceDatas, SynOperationType.AUDIT); #endregion } catch (Exception ex) { LogUtils.WriteSynchroLog(K3CloudContext, this.DataType, "同步收款单,异常信息:" + ex.Message + System.Environment.NewLine + ex.StackTrace); } finally { if (trans != null) { trans.Dispose(); } } #endregion } return(result); } catch (Exception ex) { if (logs != null && logs.Count > 0) { foreach (var log in logs) { log.IsSuccess = 0; log.ErrInfor = ex.Message + System.Environment.NewLine + ex.StackTrace; } } } return(null); }