using Kingdee.BOS.Core.DynamicForm;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
using Kingdee.BOS.Orm.DataEntity;
|
using Kingdee.BOS.Util;
|
using System;
|
using System.ComponentModel;
|
using System.Data;
|
using Kingdee.BOS.ServiceHelper;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
using Kingdee.BOS.Core.Metadata.EntityElement;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
|
using ZD.Cloud.Logger;
|
|
namespace Demo.BillView
|
{
|
[Description("生产排程单动态表单-页面展示")]
|
[HotUpdate]
|
public class ProductScheduleShowList : AbstractDynamicFormPlugIn
|
{
|
public override void OnLoad(EventArgs e)
|
{
|
base.OnLoad(e);
|
SearchList();
|
}
|
|
public void SearchList()
|
{
|
try
|
{
|
|
//界面下方“生产订单”的页签,加载未排程已审核的生产订单 (测试未加条件 更改后去除该标记)
|
string sql = @"
|
SELECT A.FBILLNO,B.FSEQ,B.FMATERIALID,B.FQTY,B.FPlanStartDate,b.FPlanFinishDate,b.FSaleOrderNo,c.FCustId,d.FQTY as FQTYXSDD ,d.FNOTE,d.FPLANDELIVERYDATE,e.FSCOrderNo
|
FROM T_PRD_MO a
|
LEFT JOIN T_PRD_MOENTRY b on a.FID = B.FID
|
left join T_SAL_ORDER c on b.FSaleOrderNo =c.FBILLNO
|
left join T_SAL_ORDERENTRY d on c.FID = d.FID and b.FMATERIALID = d.FMATERIALID
|
left join Sc_WorkBillSortBillMain e on b.FMATERIALID = e.FHMaterID and b.FSEQ = e.FSRCBILLENTRYSEQ and a.FBILLNO = e.FSCOrderNo
|
where ISNULL(e.FSCOrderNo,'')=''";
|
DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
|
if (dt.Rows.Count > 0)
|
{
|
for (int i = 0; i < dt.Rows.Count; i++)
|
{
|
this.Model.CreateNewEntryRow("FScddEntity");
|
this.Model.SetValue("FSEQ", i + 1, i);//序号
|
this.Model.SetValue("FProOrderNoSC", dt.Rows[i]["FBILLNO"], i);//生产订单号
|
this.Model.SetValue("FSRCBILLENTRYSEQSC", dt.Rows[i]["FSEQ"], i);//生产订单明细号
|
this.Model.SetValue("FSCOrderCountSC", dt.Rows[i]["FQTY"], i);//生产订单数
|
this.Model.SetValue("FPlanBeginDateSC", dt.Rows[i]["FPlanStartDate"], i);//计划开工日期
|
this.Model.SetValue("FPlanEndDateSC", dt.Rows[i]["FPlanFinishDate"], i);//计划完工日期
|
this.Model.SetValue("FSalOrderNoSC", dt.Rows[i]["FSaleOrderNo"], i);//销售订单号
|
this.Model.SetValue("FMATERIALIDSC", dt.Rows[i]["FMATERIALID"], i);//物料
|
this.Model.SetValue("FCustormerSC", dt.Rows[i]["FCustId"], i);//客户
|
this.Model.SetValue("FSalOrderCountSC", dt.Rows[i]["FQTYXSDD"], i);//销售订单数量
|
this.Model.SetValue("FSalDeliveryDateSC", dt.Rows[i]["FPLANDELIVERYDATE"], i);//销售订单交货期
|
this.Model.SetValue("FOrderRemakeSC", dt.Rows[i]["FNOTE"], i);//订单备注
|
}
|
}
|
|
//待排任务 初始化加载 where FNoScheduled > 0 未排产数量大于0
|
sql = @"select * from Sc_WorkBillSortBillMain ";
|
dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
|
if (dt.Rows.Count > 0)
|
{
|
for (int i = 0; i < dt.Rows.Count; i++)
|
{
|
this.Model.CreateNewEntryRow("FDprwEntity");
|
this.Model.SetValue("FSczy", dt.Rows[i]["FHSourceID"], i);//生产资源
|
this.Model.SetValue("FProOrderNo", dt.Rows[i]["FSCOrderNo"], i);//生产订单号
|
this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"], i);//生产订单明细行号
|
this.Model.SetValue("FMATERIALID", dt.Rows[i]["FHMaterID"], i);//物料代码
|
this.Model.SetValue("FSCOrderCount", dt.Rows[i]["FOrderQuantity"], i);//生产订单数
|
//this.Model.SetValue("FFinishConut", dt.Rows[i]["FNOTE"], i);//完工数 (没有对应字段)
|
this.Model.SetValue("FStoredCount", dt.Rows[i]["FHInstockQty"], i);//已入库数
|
this.Model.SetValue("FPriority", dt.Rows[i]["FHYX"], i);//优先级
|
this.Model.SetValue("FCapacity", dt.Rows[i]["FHWorkQty"], i);//产能
|
this.Model.SetValue("FPlanBeginDate", dt.Rows[i]["FHPlanBeginDate"], i);//计划开始日期
|
this.Model.SetValue("FPlanEndDate", dt.Rows[i]["FHPlanEndDate"], i);//计划完工日期
|
this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHOrderQty"], i);//销售订单数量
|
//this.Model.SetValue("FCustormer", dt.Rows[i]["FNOTE"], i);//客户 (没有对应字段)
|
this.Model.SetValue("FSalOrderNo", dt.Rows[i]["FHSeOrderBillNo"], i);//销售订单号
|
//this.Model.SetValue("FSalDeliveryDate", dt.Rows[i]["FNOTE"], i);//销售订单交货期 (没有对应字段)
|
//this.Model.SetValue("FOrderRemake", dt.Rows[i]["FNOTE"], i);//订单备注 (没有对应字段)
|
this.Model.SetValue("FID", dt.Rows[i]["FID"], i);//日计划工单ID
|
}
|
}
|
|
//自动排程 初始化加载 where FNoScheduled > 0 未排产数量大于0
|
if (dt.Rows.Count > 0)
|
{
|
DateTime DateNow = DateTime.Now;//获取当前日期
|
for (int i = 0; i < dt.Rows.Count; i++)
|
{
|
this.Model.CreateNewEntryRow("FZdpcEntity");
|
this.Model.SetValue("FSczyZD", dt.Rows[i]["FHSourceID"], i);//生产资源
|
this.Model.SetValue("FProOrderNoZD", dt.Rows[i]["FSCOrderNo"], i);//生产订单号
|
this.Model.SetValue("FSRCBILLENTRYSEQZD", dt.Rows[i]["FSRCBILLENTRYSEQ"], i);//生产订单明细行号
|
this.Model.SetValue("FMATERIALIDZD", dt.Rows[i]["FHMaterID"], i);//物料代码
|
this.Model.SetValue("FSCOrderCountZD", dt.Rows[i]["FOrderQuantity"], i);//生产订单数
|
//this.Model.SetValue("FFinishConutZD", dt.Rows[i]["FNOTE"], i);//完工数 (没有对应字段)
|
this.Model.SetValue("FNoScheduledCount", dt.Rows[i]["FNoScheduled"], i);//待排数
|
this.Model.SetValue("FPriorityZD", dt.Rows[i]["FHYX"], i);//优先级
|
this.Model.SetValue("FCapacityZD", dt.Rows[i]["FHWorkQty"], i);//产能
|
this.Model.SetValue("FIDZD", dt.Rows[i]["FID"], i);//日计划工单ID
|
sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[i]["FID"].ToString();
|
DataTable _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
|
foreach (DataRow dr in _dt.Rows)
|
{
|
DateTime start = Convert.ToDateTime(DateNow.ToShortDateString());
|
DateTime end = Convert.ToDateTime(Convert.ToDateTime(dr["FHMASTERDATE"]).ToShortDateString());
|
TimeSpan getDay = end.Subtract(start);
|
if (getDay.Days > 60)
|
continue;
|
this.Model.SetValue("FT" + getDay.Days.ToString(), dr["FHQTY"].ToString(), i);//日计划工单FID
|
if (dr["FHLockedSub"].ToString() == "1")
|
this.View.GetFieldEditor("FT" + getDay.Days.ToString(), i).Enabled = false; //单据体行锁定字段
|
}
|
}
|
for (int m = 0; m <= 60; m++)
|
{
|
// this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString();
|
this.View.GetControl("FT" + "" + m + "").SetValue(DateNow.AddDays(m).ToShortDateString());
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LogHelper.Error("生产排程单动态表单-页面展示 抛出异常:" + ex.Message.ToString());
|
this.View.ShowErrMessage("错误:" + ex.Message.ToString());
|
}
|
|
}
|
}
|
}
|