CYG.TenderItem/TenderItem.Induct/FormOperationServicePlugIn.cs
2025-04-15 11:24:54 +08:00

101 lines
3.3 KiB
C#

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
{
/// <summary>
/// 【表单插件】导入前事件
/// 查询Excel中的标书编号
/// 删除数据库中存在对应标书编号的数据
/// 实现重复标书覆盖效果
/// </summary>
[Description("【表单插件】导入前事件"), HotUpdate]
public class FormOperationServicePlugIn : AbstractListPlugIn
{
/// <summary>
/// 导入之前方法
/// </summary>
/// <param name="e"></param>
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("引入数据操作(测试是否进入插件!!!)");
}
}
}