liqionghai a032c22019 1
2025-09-04 12:01:26 +08:00

178 lines
9.4 KiB
C#

using GZ_KD_Parino.Common;
using GZ_KD_Parino.SQL;
using Kingdee.BOS;
using Kingdee.BOS.App;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Interaction;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.Core.Metadata.FormElement;
using Kingdee.BOS.Orm;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GZ_KD_Parino.Sal_Order
{
[HotUpdate]
[Description("销售订单--审核创建待分配项目")]
public class CreateItem : AbstractOperationServicePlugIn
{
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
{
base.AfterExecuteOperationTransaction(e);
foreach (var rows in e.SelectedRows)
{
var Billobj = rows.DataEntity;
//获取单据FID
var SaleOrgId = Billobj["SaleOrgId"] as DynamicObject;
var key = SqlManage.SetDockingPLMLog(this.Context, "销售订单--审核创建待分配项目", Convert.ToInt32(Billobj["Id"]));
try
{
if (Convert.ToString(SaleOrgId["Number"]) == "PL")
{
List<string> FOrdercategoryList = new List<string>() { "SX", "CS", "W", "CW", "CY" };
//获取单据FID
var Billno = Convert.ToString(Billobj["Billno"]);
//获取日期
var FDate = Convert.ToDateTime(Billobj["Date"]);
//FID
var FID = Convert.ToString(Billobj["id"]);
//获取订单类型编码
DynamicObject F_Ordercategory = Billobj["F_Ordercategory"] as DynamicObject;
//获取销售订单数据
var data = SqlManage.GetSaleOrderData3_LTH(this.Context, Convert.ToString(Billobj["Id"]));
string Token = "";
if (data.Count > 0)
{
var Json = new
{
sj = data[0]["商机ID"],// 销售订单商机对应到基础档案的crm商机ID 值
bumen = data[0]["部门名称"],// 销售订单销售部门名称
sjname = data[0]["工程项目名称"],//销售订单工程项目名称
xsrymc = data[0]["业务员"],//销售订单 业务员名称
htcjrzh = data[0]["Bpm账号"],//商务人员bpm账号
yflxr = data[0]["业务员"],//销售订单 业务员名称
htmc = data[0]["工程项目名称"],//销售订单工程项目名称
khmcname = data[0]["客户名称"],//销售订单客户名称
htbh = data[0]["纸质合同号"],//纸质合同号
htcjsj = data[0]["日期"],//销售订单业务日期
htje = data[0]["价税合计"],//销售订单价税合计
xmzlcfdz = data[0]["项目盒子路径值"],//销售订单项目盒子路径值
//xmzlcfdz = "",//销售订单项目盒子路径值
sfjc = data[0]["是否集采项目"]//是否集采项目
};
try
{
Token = Common.CommonHelper.PMSLogin(data, this.Context, JsonConvert.SerializeObject(Json), "xmfpb", Convert.ToInt32(Billobj["Id"]));
var Resultstring = Common.CommonHelper.PushPMSItem(data, this.Context, JsonConvert.SerializeObject(Json), "xmfpb", Token, Convert.ToInt32(Billobj["Id"]));
var Result = (JObject)JsonConvert.DeserializeObject(Resultstring);//获取binding
if (Convert.ToString(Result["returnCode"]) == "-2")
{
Common.CommonHelper.PushPMSItem(data, this.Context, JsonConvert.SerializeObject(Json), "xmfpb", Token, Convert.ToInt32(Billobj["Id"]));
//预防二次提交
SqlManage.UpdateSubmitF_XMYSB(this.Context, Convert.ToString(Billobj["Id"]));
}
}
catch (Exception ex)
{
Kingdee.BOS.Log.Logger.Error("报错", ex.Message, ex);
}
}
if (FOrdercategoryList.Contains(F_Ordercategory["FNumber"]))
{
if (data.Count > 0)
{
var Json = new
{
sfdr = data[0]["是否导入"],// 是否导入
htqdrq = data[0]["日期"],// 销售订单业务日期
htbh = data[0]["纸质合同号"],//销售订单纸质合同号
xmmc = data[0]["工程项目名称"],// 销售订单工程项目名称
htje = data[0]["价税合计"],// 销售订单价税合计
htjf = data[0]["业务员"],// 销售订单客户名称
name = data[0]["客户名称"],//销售订单工程项目名称
htlxr = data[0]["利润率"],// 销售订单利润率
createbyid = data[0]["createbyid"],//"005201301273691NMUvx" 固定值
ownerid = data[0]["ownerid"],//"005201301273691NMUvx" 固定值
};
try
{
Token = Common.CommonHelper.PMSLogin(data, this.Context, JsonConvert.SerializeObject(Json), "otherItem", Convert.ToInt32(Billobj["Id"]));
var Resultstring = Common.CommonHelper.PushPMSItem(data, this.Context, JsonConvert.SerializeObject(Json), "otherItem", Token, Convert.ToInt32(Billobj["Id"]));
var Result = (JObject)JsonConvert.DeserializeObject(Resultstring);//获取binding
if (Convert.ToString(Result["returnCode"]) == "-2")
{
Common.CommonHelper.PushPMSItem(data, this.Context, JsonConvert.SerializeObject(Json), "otherItem", Token, Convert.ToInt32(Billobj["Id"]));
}
}
catch (Exception ex)
{
Kingdee.BOS.Log.Logger.Error("报错", ex.Message, ex);
}
//if (Token != "")
//{
// var Resultstring = Common.CommonHelper.PushPMSItem(data, this.Context, JsonConvert.SerializeObject(Json), "otherItem", Token);
// var Result = (JObject)JsonConvert.DeserializeObject(Resultstring);//获取binding
// if (Convert.ToString(Result["returnCode"]) == "-2")
// {
// Token = Common.CommonHelper.PMSLogin(data, this.Context, JsonConvert.SerializeObject(Json), "otherItem");
// Common.CommonHelper.PushPMSItem(data, this.Context, JsonConvert.SerializeObject(Json), "otherItem", Token);
// }
//}
}
}
}
//修改日志为成功
SqlManage.UpdateDockingPLMLog(this.Context, key, "100", "", "", Convert.ToString(Billobj["Id"]), "PMS项目分配表,PMS系统项目资料检索表", "插件日志");
}
catch(Exception ex)
{
//修改日志为异常
SqlManage.UpdateDockingPLMLog(this.Context, key, "4", ex.Message, "", Convert.ToString(Billobj["Id"]), "PMS项目分配表,PMS系统项目资料检索表", "插件日志");
}
}
}
public override void OnPreparePropertys(PreparePropertysEventArgs e)
{
base.OnPreparePropertys(e);
//添加日期
e.FieldKeys.Add("FDate");
//添加日期
e.FieldKeys.Add("F_Ordercategory");
//销售组织
e.FieldKeys.Add("FSaleOrgId");
}
}
}