天大药业

This commit is contained in:
PastSaid
2024-01-02 10:44:59 +08:00
parent 876ebdd603
commit a8689c9ba0
20 changed files with 701 additions and 358 deletions

View File

@@ -0,0 +1,130 @@
using Kingdee.BOS;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.K3.Core.MFG;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
namespace Kingdee.K3.MFG.PLN.App.MrpModel.PolicyImpl.NetCalc
{
/// <summary>
/// MRP运算将产生的计划订单或组织间需求单数据提交保存前更新数据策略
/// </summary>
[MrpProgressItem("P0033", "30")]
public class UpdateData : AbstractNetCalcPolicy
{
/// <summary>
/// 后置策略:单条执行模式
/// </summary>
public override Enu_NetCalcPolicyCallStyle CallStyle
{
get { return Enu_NetCalcPolicyCallStyle.KdLastSingleExecutionMode; }
}
/// <summary>
/// 策略执行前事件
/// </summary>
/// <returns></returns>
protected override bool BeforeExecuteDataPolicy()
{
foreach (var demandGroupRow in this.MrpDemandDimContext.MrpNetDemandContextGroupRows)
{
if (demandGroupRow.PlanOrderItem != null)
{
///TODO本分支可对计划订单数据在提交保存前进行干预
#region
string MaterialId_Id = Convert.ToString(demandGroupRow.PlanOrderItem["MaterialId_Id"]);
FormMetadata FMaterial = MetaDataServiceHelper.Load(this.Context, "BD_MATERIAL", true) as FormMetadata;
DynamicObject FMaterialId = BusinessDataServiceHelper.LoadSingle(this.Context, MaterialId_Id, FMaterial.BusinessInfo.GetDynamicObjectType(), null);
DynamicObjectCollection MaterialPlan = FMaterialId["MaterialPlan"] as DynamicObjectCollection;
string FixLeadTime = Convert.ToString(MaterialPlan[0]["FixLeadTime"]);
string FPlanFinishDate = Convert.ToString(demandGroupRow.PlanOrderItem["PlanFinishDate"]);
demandGroupRow.PlanOrderItem["F_UKUB_LeadDate"] = Convert.ToDateTime(FPlanFinishDate).AddDays(-1 * Convert.ToDouble(FixLeadTime));
#endregion
#region /
string FSaleOrderNo = Convert.ToString(demandGroupRow.PlanOrderItem["SaleOrderNo"]);
//声明SQL语句,获取预测单信息
string sql = string.Format(@"/*dialect*/ select FSaleNoRow from T_PLN_FORECAST a
INNER JOIN T_PLN_FORECASTENTRY B ON A.FID = B.FID where FBILLNO = @FBILLNO");
//定义SQL参数
SqlParam[] param = new SqlParam[1];
//添加需求单号参数
param[0] = new SqlParam("@FBILLNO", KDDbType.String, FSaleOrderNo);
//执行SQL语句
DynamicObjectCollection dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sql.ToString(), null, null, CommandType.Text, param);
if (dr.Count > 0)
{
demandGroupRow.PlanOrderItem["FSaleNoRow"] = dr[0]["FSaleNoRow"];
}
#endregion
//string FSaleOrderNo = Convert.ToString(demandGroupRow.PlanOrderItem["SaleOrderNo"]);
////声明SQL语句,获取预测单信息
//string sql = string.Format(@"/*dialect*/ select FBILLTYPEID from T_PLN_FORECAST a
//INNER JOIN T_PLN_FORECASTENTRY B ON A.FID = B.FID where FBILLNO = @FBILLNO");
////定义SQL参数
//SqlParam[] param = new SqlParam[1];
////添加需求单号参数
//param[0] = new SqlParam("@FBILLNO", KDDbType.String, FSaleOrderNo);
////执行SQL语句
//DynamicObjectCollection dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sql.ToString(), null, null, CommandType.Text, param);
//if (dr.Count > 0)
//{
// if (Convert.ToString(dr[0]["FBILLTYPEID"]) == "637c89c0168c79")
// {
// demandGroupRow.PlanOrderItem["ReleaseType"] = 3;
// demandGroupRow.PlanOrderItem["ReleaseBillType"] = "CGSQD05_SYS";
// }
//}
//demandGroupRow.PlanOrderItem["ReleaseType"] = 3;
//DynamicObjectCollection PLSubHead = demandGroupRow.PlanOrderItem["PLSubHead"] as DynamicObjectCollection;
//FormMetadata BOS_BillType = MetaDataServiceHelper.Load(this.Context, "BOS_BillType", true) as FormMetadata;
//DynamicObject BillType = BusinessDataServiceHelper.LoadSingle(this.Context, "03c6c047c65c4a17a792f85dcf3cabec", BOS_BillType.BusinessInfo.GetDynamicObjectType(), null);
//(demandGroupRow.PlanOrderItem["PLSubHead"] as DynamicObjectCollection)[0]["ReleaseBillType_Id"] = "03c6c047c65c4a17a792f85dcf3cabec";
//(demandGroupRow.PlanOrderItem["PLSubHead"] as DynamicObjectCollection)[0]["ReleaseBillType"] = BillType;
}
if (demandGroupRow.RequirementOrderItem != null)
{
///TODO本分支可对组织间需求单数据在提交保存前进行干预
}
}
return base.BeforeExecuteDataPolicy();
}
//protected override void AfterExecuteDataPolicy()
//{
// base.AfterExecuteDataPolicy();
// foreach (var demandGroupRow in this.MrpDemandDimContext.MrpNetDemandContextGroupRows)
// {
// if (demandGroupRow.PlanOrderItem != null)
// {
// demandGroupRow.PlanOrderItem["ReleaseType"] = 3;
// DynamicObjectCollection PLSubHead = demandGroupRow.PlanOrderItem["PLSubHead"] as DynamicObjectCollection;
// FormMetadata BOS_BillType = MetaDataServiceHelper.Load(this.Context, "BOS_BillType", true) as FormMetadata;
// DynamicObject BillType = BusinessDataServiceHelper.LoadSingle(this.Context, "03c6c047c65c4a17a792f85dcf3cabec", BOS_BillType.BusinessInfo.GetDynamicObjectType(), null);
// (demandGroupRow.PlanOrderItem["PLSubHead"] as DynamicObjectCollection)[0]["ReleaseBillType_Id"] = "03c6c047c65c4a17a792f85dcf3cabec";
// (demandGroupRow.PlanOrderItem["PLSubHead"] as DynamicObjectCollection)[0]["ReleaseBillType"] = BillType;
// }
// if (demandGroupRow.RequirementOrderItem != null)
// {
// ///TODO本分支可对组织间需求单数据在提交保存前进行干预
// }
// }
//}
}
}