101 lines
3.3 KiB
C#
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("引入数据操作(测试是否进入插件!!!)");
|
|
}
|
|
}
|
|
}
|