电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开案例.工序计划保存时自动排程

来源:金蝶云社区作者:金蝶2024-09-2316

二开案例.工序计划保存时自动排程

【应用场景】

在工序计划保存时,自动进行工序排程,计算各道序的开工、完工时间。


【实现步骤】

<1>编写操作服务插件,代码如下。

using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.K3.MFG.App;
using Kingdee.K3.MFG.Contracts.SFC;
using System;
using System.Collections.Generic;
using System.Linq;

namespace MyTest
{
    public class ProcessScheduling : AbstractOperationServicePlugIn
    {
        public override void AfterExecuteOperationTransaction(BOS.Core.DynamicForm.PlugIn.Args.AfterExecuteOperationTransaction e)
        {
            base.AfterExecuteOperationTransaction(e);

            //构造排程参数对象
            FormMetadata paramMetaData = (FormMetadata)AppServiceContext.MetadataService.Load(this.Context, "SFC_ProcessScheduling");
            DynamicObject param = new DynamicObject(paramMetaData.BusinessInfo.GetDynamicObjectType());
            Entity entity = paramMetaData.BusinessInfo.GetEntity("FBillHead");
            IDynamicFormModel model = AppServiceContext.CreateDynamicFormModel(this.Context, paramMetaData.BusinessInfo, param, null);
            IDefaultValueCalculator calculator = model.GetService<IDefaultValueCalculator>();
            calculator.Initialize(model);
            calculator.ApplyDefaultValue(entity, param, 0);
            param["SchedulingModeSetting"] = "P";
            //进行标准排程
            param["StandardScheduling"] = true;
            //网络控制
            param["IsNetCtrl"] = false;
            //指定工序排程
            param["SpecifiedScheduling"] = true;
            //忽略审核状态
            param["IgnoreAudit"] = true;
            //自动排程
            param["IsAutoScheduling"] = true;

            // 构建工序排程(指定工序)[序列-工序]内码字典
            List<Dictionary<long, long>> lstDicSeqOperIds = new List<Dictionary<long, long>>();
            DynamicObjectCollection seqCol;
            DynamicObjectCollection operCol;
            IEnumerable<DynamicObject> operColOrdered;
            foreach(var dataEntity in e.DataEntitys)
 

二开案例.工序计划保存时自动排程

【应用场景】在工序计划保存时,自动进行工序排程,计算各道序的开工、完工时间。【实现步骤】<1>编写操作服务插件,代码如下。using Kingd...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信