using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.BusinessFlow; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.List.PlugIn; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; namespace TenderItem.Induct { /// /// 【表单插件】导入前事件 /// 查询Excel中的标书编号 /// 删除数据库中存在对应标书编号的数据 /// 实现重复标书覆盖效果 /// [Description("【表单插件】导入前事件"), HotUpdate] public class FormOperationServicePlugIn : AbstractListPlugIn { /// /// 导入之前方法 /// /// public override void BeforeImportData(BeforeImportDataArgs e) { base.BeforeImportData(e); string FTenderList = ""; var dataTable = e.DataSource.Tables[0]; //循环找到所有标书编号 for (int i = 0; i < dataTable.Rows.Count; i++) { var FTender = dataTable.Rows[i]["FTender"]; var FBidProjectType = dataTable.Rows[i]["FBidProjectType"]; string sql2 = string.Format(@"/*dialect*/ SELECT A.FMASTERID FROM T_BAS_ASSISTANTDATAENTRY A JOIN T_BAS_ASSISTANTDATAENTRY_L B on A.FENTRYID = B.FENTRYID Where B.FLOCALEID = 2052 AND A.FID = '6716fb25f5fc9d' AND B.FDataValue = '{0}'", FBidProjectType); var FBidProjectTypeList = DBUtils.ExecuteDynamicObject(Context, sql2); var FBidProjectTypeId = ""; if (FBidProjectTypeList.Count != 0) { FBidProjectTypeId = FBidProjectTypeList[0]["FMASTERID"].ToString(); } string sql = string.Format(@"Update T_CRM_CONTRACT Set F_CYG_WinningProject = '{1}' Where F_CYG_BidSerial = '{0}'", FTender, FBidProjectTypeId); DBUtils.ExecuteDynamicObject(Context, sql); decimal n1 = 0; decimal n2 = 0; string nn1 = dataTable.Rows[i]["FWinningBid"].ToString(); string nn2 = dataTable.Rows[i]["FFrameVolume"].ToString(); if(!string.IsNullOrEmpty(nn1)) { n1 = Convert.ToDecimal(nn1); } if(!string.IsNullOrEmpty(nn2)) { n2 = Convert.ToDecimal(nn2); } dataTable.Rows[i]["FWinningBidSubtotal"] = n1 + n2; FTenderList += "'" + FTender + "',"; } FTenderList += "'0'"; string sqlDelete = string.Format(@"Delete MBBA_t_Cust100005 where FTender in ({0})", FTenderList); DBUtils.ExecuteDynamicObject(this.Context, sqlDelete); //this.View.ShowErrMessage("引入数据操作(测试是否进入插件!!!)"); } } }