王 垚
2022-01-10 a93a49e6415af2187d0f465e453ee613f3eaf178
优化
1个文件已添加
3个文件已修改
1182 ■■■■■ 已修改文件
src/BLL/Demo.BillView/Demo.BillView.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs 154 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs 250 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatformMonth.cs 777 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/BLL/Demo.BillView/Demo.BillView.csproj
@@ -187,6 +187,7 @@
    <Compile Include="PRD\Pro_DayPlanCheckSelectMenu.cs" />
    <Compile Include="PRD\Pro_DayPlanPushSCHB.cs" />
    <Compile Include="PRD\Pro_DayPlanBG.cs" />
    <Compile Include="PRD\Pro_WorkBillPlatformMonth.cs" />
    <Compile Include="PRD\Pur_ReceiveDelete.cs" />
    <Compile Include="PRD\Pur_Receive.cs" />
    <Compile Include="PRD\Pro_DayPlanReturnMaterial.cs" />
src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
@@ -28,26 +28,29 @@
    public class Pro_ScDayImport : AbstractDynamicFormPlugIn
    {
        private string fileFullPath = string.Empty;
        //public override void OnLoad(EventArgs e)
        //{
        //    base.OnLoad(e);
        //    throw new Exception("1");
        //}
        /// <summary>
        /// 页面初始化 渲染界面 将T0-T60更改为日期显示
        /// </summary>
        /// <param name="e"></param>
        public override void OnInitialize(InitializeEventArgs e)
        {
            base.OnInitialize(e);
            DateTime DateNow = DateTime.Now;
            for (int m = 0; m <= 60; m++)
            {
                this.View.GetControl("FT" + "" + m + "").ControlAppearance.TextColor = "#FFFF00";
                this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString();
            }
            this.View.SendDynamicFormAction(View);
        }
        public override void BarItemClick(BarItemClickEventArgs e)
        {
            //LogHelper.Info("导入功能点击按钮:");
            if (e.BarItemKey.ToUpper().Equals("TBIMPORT"))
            {
                //LogHelper.Info("导入功能点击按钮:");
                ImportData();
                //WriteImportLog();
                //this.View.ShowErrMessage("测试导入功能点击按钮");
            }
            if (e.BarItemKey.ToUpper().Equals("TBWJSC"))
            {
                //LogHelper.Info("文件上传功能点击按钮:");
                ImportDataSC(fileFullPath);
            }
        }
@@ -108,9 +111,14 @@
                        return;
                    }
                    dt.Rows.RemoveAt(0);//去除标题行
                    //DataSet ds = helper.ReadFromFile(fileFullPath, 1);
                    //DataTable dt = ds.Tables[0];
                    //LogHelper.Info("导入功能:dt行数:" + dt.Rows.Count);
                    string FOrderType = this.Model.GetValue("FOrderType").ToString();
                    string FTempName = "T_PRD_MO";
                    string FTempNameEntry = "T_PRD_MOENTRY";
                    if (FOrderType == "委外订单")
                    {
                        FTempName = "T_SUB_REQORDER";
                        FTempNameEntry = "T_SUB_REQORDERENTRY";
                    }
                    DateTime date = Convert.ToDateTime(this.Model.GetValue("F_Paez_Date"));
                    if (dt.Rows.Count > 0)
                    {
@@ -120,19 +128,46 @@
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            error = "";
                            if (dt.Rows[i][dicExcelCol["组织编码"]].ToString() == "")
                                error += "组织编码不能为空;";
                            if (dt.Rows[i][dicExcelCol["生产订单号"]].ToString() == "")
                                error += "生产订单号不能为空;\n";
                                error += "生产订单号不能为空;";
                            if (dt.Rows[i][dicExcelCol["生产订单明细行号"]].ToString() == "")
                                error += "生产订单明细行号不能为空;";
                            if (dt.Rows[i][dicExcelCol["生产车间编码"]].ToString() == "")
                                error += "生产车间编码不能为空;\n";
                            //增加员工
                                error += "生产车间编码不能为空;";
                            if (dt.Rows[i][dicExcelCol["生产资源编码"]].ToString() == "")
                                error += "生产资源编码不能为空;";
                            if (dt.Rows[i][dicExcelCol["物料编码"]].ToString() == "")
                                error += "物料编码不能为空;\n";
                                error += "物料编码不能为空;";
                            if (dt.Rows[i][dicExcelCol["交货日期"]].ToString() == "")
                                error += "交货日期不能为空;\n";
                                error += "交货日期不能为空;";
                            if (dt.Rows[i][dicExcelCol["订单等级"]].ToString() == "")
                                error += "订单等级不能为空;\n";
                                error += "订单等级不能为空;";
                            //验证 生产资源 + 物料 判断 是否有维护产能表
                            string cnSql = string.Format(@"/*dialect*/
SELECT Count(*) row
FROM T_PRD_MATERIALCOMPARE T1
JOIN T_PRD_MATERIALCOMPAREENTRY T2 ON T1.FID=T2.FID
JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID
JOIN T_ORG_ORGANIZATIONS T4 ON T1.FORGID = T4.FORGID
JOIN T_JIT_WORKCENTER T5 ON T2.FSCZY = T5.FID
WHERE T4.FNUMBER = '{0}' AND T3.FNUMBER='{1}' AND T5.FNUMBER ='{2}'",
dt.Rows[i][dicExcelCol["组织编码"]].ToString(), dt.Rows[i][dicExcelCol["物料编码"]].ToString(), dt.Rows[i][dicExcelCol["生产资源编码"]].ToString());
                            int cnFid = DBServiceHelper.ExecuteScalar<int>(Context, cnSql, 0);
                            if (cnFid == 0)
                                error += "没有维护产能表;";
                            cnSql = string.Format(@"/*dialect*/
SELECT Count(*) row  FROM {0} T1
LEFT JOIN {1} T2 ON T1.FID = T2.FID
JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID
join (  select A.FBILLTYPEID,B.FNAME  from T_BAS_BILLTYPE A
JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID
where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER')   AND  b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID
WHERE T1.FBILLNO = '{2}'  AND T3.FNUMBER = '{3}' and FSEQ='{4}' ", FTempName, FTempNameEntry, dt.Rows[i][dicExcelCol["生产订单号"]].ToString(), dt.Rows[i][dicExcelCol["物料编码"]].ToString(), dt.Rows[i][dicExcelCol["生产订单明细行号"]].ToString());
                            cnFid = DBServiceHelper.ExecuteScalar<int>(Context, cnSql, 0);
                            if (cnFid == 0)
                                error += "没有生产订单信息;";
                            if (error.Length > 0)
                                ErrorResult += $"Excel模板存在错误,行数{i + 1}:{error}\r\n";
                        }
@@ -146,13 +181,13 @@
                        {
                            //根据生产订单号和物料查询是否存在明细(2.28+生产订单明细行号验证)
                            string sql = string.Format(@"/*dialect*/ 
SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*  FROM T_PRD_MO T1
LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID
SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*  FROM {0} T1
LEFT JOIN {1} T2 ON T1.FID = T2.FID
JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID
join (  select A.FBILLTYPEID,B.FNAME  from T_BAS_BILLTYPE A 
JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID
where FBILLFORMID='PRD_MO'  AND FNAME<>'生產訂單')t4 on t1.FBILLTYPE =t4.FBILLTYPEID
WHERE T1.FBILLNO = '{0}'  AND T3.FNUMBER = '{1}' and FSEQ='{2}' ", dt.Rows[i][dicExcelCol["生产订单号"]].ToString(), dt.Rows[i][dicExcelCol["物料编码"]].ToString(), dt.Rows[i][dicExcelCol["生产订单明细行号"]].ToString());
where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER')   AND  b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID
WHERE T1.FBILLNO = '{2}'  AND T3.FNUMBER = '{3}' and FSEQ='{4}' ", FTempName, FTempNameEntry, dt.Rows[i][dicExcelCol["生产订单号"]].ToString(), dt.Rows[i][dicExcelCol["物料编码"]].ToString(), dt.Rows[i][dicExcelCol["生产订单明细行号"]].ToString());
                            DataTable _dt = new DataTable();
                            _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                            string FLOT = "";//FLOT  批次
@@ -280,6 +315,18 @@
        {
            try
            {
                string FOrderType = this.Model.GetValue("FOrderType").ToString();
                string FTempName = "T_PRD_MO";
                string FTempNameEntry = "T_PRD_MOENTRY";
                string FTempBomName = "T_PRD_PPBOM";
                string FTempBomNameEntry = "T_PRD_PPBOMENTRY";
                if (FOrderType == "委外订单")
                {
                    FTempName = "T_SUB_REQORDER";
                    FTempNameEntry = "T_SUB_REQORDERENTRY";
                    FTempBomName = "T_SUB_PPBOM";
                    FTempBomNameEntry = "T_SUB_PPBOMENTRY";
                }
                CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
                string sql;
                DateTime date = Convert.ToDateTime(this.Model.GetValue("F_Paez_Date"));
@@ -293,9 +340,12 @@
                foreach (DynamicObject current in entityDataObjoct)
                {
                    //根据生产订单号和物料查询是否存在生产订单明细明细 +生产订单明细行号 + 组织(2021-12-10修改)
                    sql = string.Format(@"/*dialect*/SELECT T1.FBILLNO,T2.* FROM T_PRD_MO T1
                                LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID
                                WHERE T1.FBILLNO = '{0}'  AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}' AND T1.FPRDORGID = '{3}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), Convert.ToString(current["FORGID_Id"]));
                    sql = string.Format(@"
/*dialect*/
SELECT T1.FBILLNO,T2.* FROM {4} T1
LEFT JOIN {5} T2 ON T1.FID = T2.FID
WHERE T1.FBILLNO = '{0}'  AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}' AND T1.{6} = '{3}'"
, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), Convert.ToString(current["FORGID_Id"]), FTempName, FTempNameEntry, FOrderType == "委外订单" ? "FSUBORGID" : "FPRDORGID");
                    //LogHelper.Info(sql);
                    DataTable dt = new DataTable();
                    dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
@@ -308,16 +358,37 @@
                    return;
                }
                //校验生产用料清单是否审核
                foreach (DynamicObject current in entityDataObjoct)
                if (FOrderType == "生产订单")
                {
                    //根据生产订单号和物料查询是否存在明细 +生产订单明细行号
                    sql = string.Format(@"/*dialect*/SELECT FBILLNO FROM T_PRD_PPBOM T1
WHERE T1.FMOBILLNO = '{0}'  AND T1.FMATERIALID = '{1}' AND T1.FMOENTRYSEQ = '{2}' and FDOCUMENTSTATUS <>'C'
", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]));
                    DataTable dt = new DataTable();
                    dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                    if (dt.Rows.Count > 0)
                        _result += "序号:" + Convert.ToString(current["SEQ"]) + ",生产订单号:" + Convert.ToString(current["FSCOrderNo"]) + ",生产订单明细行号:" + Convert.ToString(current["FSRCBILLENTRYSEQ"]) + "物料" + (current["FMatrailId"] as DynamicObject)["Number"] + "对应的生产用料清单:" + dt.Rows[0][0] + "未审核\n";
                    foreach (DynamicObject current in entityDataObjoct)
                    {
                        //根据生产订单号和物料查询是否存在明细 +生产订单明细行号
                        sql = string.Format(@"
/*dialect*/
SELECT FBILLNO FROM {0} T1
WHERE T1.FMOBILLNO = '{1}'  AND T1.FMATERIALID = '{2}' AND T1.FMOENTRYSEQ = '{3}' and FDOCUMENTSTATUS <>'C'
", FTempBomName, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]));
                        DataTable dt = new DataTable();
                        dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                        if (dt.Rows.Count > 0)
                            _result += "序号:" + Convert.ToString(current["SEQ"]) + ",生产订单号:" + Convert.ToString(current["FSCOrderNo"]) + ",生产订单明细行号:" + Convert.ToString(current["FSRCBILLENTRYSEQ"]) + "物料" + (current["FMatrailId"] as DynamicObject)["Number"] + "对应的生产用料清单:" + dt.Rows[0][0] + "未审核\n";
                    }
                }
                else
                {
                    foreach (DynamicObject current in entityDataObjoct)
                    {
                        //根据生产订单号和物料查询是否存在明细 +生产订单明细行号
                        sql = string.Format(@"
/*dialect*/
SELECT FBILLNO FROM {0} T1
WHERE T1.FSUBBILLNO = '{1}'  AND T1.FMATERIALID = '{2}' AND T1.FSUBREQENTRYSEQ = '{3}' and FDOCUMENTSTATUS <>'C'
", FTempBomName, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]));
                        DataTable dt = new DataTable();
                        dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                        if (dt.Rows.Count > 0)
                            _result += "序号:" + Convert.ToString(current["SEQ"]) + ",生产订单号:" + Convert.ToString(current["FSCOrderNo"]) + ",生产订单明细行号:" + Convert.ToString(current["FSRCBILLENTRYSEQ"]) + "物料" + (current["FMatrailId"] as DynamicObject)["Number"] + "对应的生产用料清单:" + dt.Rows[0][0] + "未审核\n";
                    }
                }
                if (_result != "")
                {
@@ -356,14 +427,14 @@
                    //查询生产订单数据 
                    sql = string.Format(@"
/*dialect*/
SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*,t3.FNUMBER as FUnitNumber,tBom.FNUMBER as FBomNumber FROM T_PRD_MO T1
 LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID
SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*,t3.FNUMBER as FUnitNumber,tBom.FNUMBER as FBomNumber FROM {3} T1
 LEFT JOIN {4} T2 ON T1.FID = T2.FID
 LEFT JOIN T_ENG_BOM tBom on t2.FBOMID = tBom.FID
 join T_BD_UNIT t3 on t2.FUNITID=t3.FUNITID 
 join (  select A.FBILLTYPEID,B.FNAME  from T_BAS_BILLTYPE A 
JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID
where FBILLFORMID='PRD_MO'  AND FNAME<>'生產訂單')t4 on t1.FBILLTYPE =t4.FBILLTYPEID
 WHERE T1.FBILLNO = '{0}'  AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]));
where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER')   AND b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID
 WHERE T1.FBILLNO = '{0}'  AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), FTempName, FTempNameEntry);
                    DataTable dt = new DataTable();
                    dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                    if (dt.Rows.Count == 0)
@@ -401,6 +472,7 @@
                    JObject jsonModel = new JObject();
                    jsonModel.Add("FPreparatDate", FPlanBeginDate);//编制日期(改为计划开始日期)
                    jsonModel.Add("FMoFBillType", FMoFBillType);//
                    jsonModel.Add("FOrderType", FOrderType);//
                    jsonModel.Add("FSRCBILLENTRYSEQ", Convert.ToString(current["FSRCBILLENTRYSEQ"]));//生产订单明细行号
                    jsonModel.Add("FSCOrderNo", Convert.ToString(current["FSCOrderNo"])); //生产订单号FSCOrderNo
                    jsonModel.Add("FHSeOrderBillNo", Convert.ToString(current["FSalOrderNo"]));//销售订单号
src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
@@ -4,6 +4,7 @@
using K3Cloud.Extend.Utils;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.CommonFilter;
using Kingdee.BOS.Core.Const;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
@@ -60,7 +61,6 @@
            }
            this.View.SendDynamicFormAction(View);
        }
        /// <su
        public override void DataChanged(DataChangedEventArgs e)
        {
            if (!isSearched) return;
@@ -157,9 +157,9 @@
                    }
                }
                //选单
                if (e.BarItemKey.ToUpper() == "TBSELECTMENU")
                if (e.BarItemKey.ToUpper().Contains("TBSELECTMENU"))
                {
                    SelectMenu();
                    SelectMenu(e.BarItemKey.ToString());
                }
                //预留
                if (e.BarItemKey.ToUpper() == "TBRESERVE")
@@ -517,18 +517,25 @@
                    int fDayPlanFID = DBServiceHelper.ExecuteScalar<int>(Context, moSql, 0);
                    if (fDayPlanFID > 0)
                        continue;
                    //根据生产订单号和物料查询是否存在明细 +生产订单明细行号
                    string FOrderType = Convert.ToString(current["FOrderType"]) ?? "";
                    string FTempName = "T_PRD_MO";
                    string FTempNameEntry = "T_PRD_MOENTRY";
                    if (FOrderType == "委外订单")
                    {
                        FTempName = "T_SUB_REQORDER";
                        FTempNameEntry = "T_SUB_REQORDERENTRY";
                    }
                    ///查询生产订单数据
                    sql = string.Format(@"
/*dialect*/
SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*,t3.FNUMBER as FUnitNumber,tBom.FNUMBER as FBomNumber FROM T_PRD_MO T1
 LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID
SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*,t3.FNUMBER as FUnitNumber,tBom.FNUMBER as FBomNumber FROM {0} T1
 LEFT JOIN {1} T2 ON T1.FID = T2.FID
 LEFT JOIN T_ENG_BOM tBom on t2.FBOMID = tBom.FID
 join T_BD_UNIT t3 on t2.FUNITID=t3.FUNITID 
 join (  select A.FBILLTYPEID,B.FNAME  from T_BAS_BILLTYPE A 
JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID
where FBILLFORMID='PRD_MO'  AND FNAME<>'生產訂單')t4 on t1.FBILLTYPE =t4.FBILLTYPEID
 WHERE T1.FBILLNO = '{0}'  AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]));
where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER')   AND b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID
 WHERE T1.FBILLNO = '{2}'  AND T2.FMATERIALID = '{3}' AND T2.FSEQ = '{4}'", FTempName, FTempNameEntry, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]));
                    DataTable dt = new DataTable();
                    dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                    if (dt.Rows.Count == 0)
@@ -568,6 +575,7 @@
                    JObject jsonModel = new JObject();
                    jsonModel.Add("FPreparatDate", Convert.ToString(current["FBzDate"]));//编制日期(改为预计开工日期)
                    jsonModel.Add("FMoFBillType", FMoFBillType);//
                    jsonModel.Add("FOrderType", FOrderType);//
                    jsonModel.Add("FSRCBILLENTRYSEQ", Convert.ToString(current["FSRCBILLENTRYSEQ"]));//生产订单明细行号
                    jsonModel.Add("FSCOrderNo", Convert.ToString(current["FSCOrderNo"])); //生产订单号FSCOrderNo
                    jsonModel.Add("FHSeOrderBillNo", Convert.ToString(current["FSalOrderNo"]));//销售订单号
@@ -1076,12 +1084,34 @@
JOIN t_BD_MaterialBase TBase on T2.FMATERIALID = TBase.FMATERIALID
JOIN T_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID
--条件为今天往后的日计划 + 今天之前未关闭的日计划
where
where FOrderType = '生产订单' and
--(FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or
DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0
and a.FDOCUMENTSTATUS not in ('E')
and b.FHQTY>0
union all
select a.FPRDMOMAINID,a.FPRDMOENTYID,a.FID,b.FEntryID,a.FHPRDORGID FStockOrgId,t5.FNUMBER as OrgFnumber,a.FHOrderLev,b.FHQTY,b.FHMASTERDATE,T1.FBillNo,T1.FSUBBILLNO,T1.FSUBREQENTRYSEQ,T1.FSUBREQID,T1.FMaterialID,T1.FQty,
T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,CEILING((FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty)) PlanCount,TBase.FErpClsID
from SC_WORKBILLSORTBILLMAIN a
join SC_WORKBILLSORTBILLSub b on a.FID = b.FID
join T_SUB_PPBOM T1 on a.FPRDMOMAINID = t1.FSUBREQID and a.FPRDMOENTYID = t1.FSUBREQENTRYID
LEFT JOIN(select FID, MAX(FENTRYID) FENTRYID, SUM(FMUSTQTY) FNeedQty, FMATERIALID from T_SUB_PPBOMENTRY
group by FMATERIALID, FID ) T2 on T1.FID = t2.FID
 --LEFT JOIN T_STK_Inventory T3 on t2.FMATERIALID = t3.FMATERIALID
JOIN T_BD_MATERIAL T4 on T2.FMATERIALID = T4.FMATERIALID
JOIN t_BD_MaterialBase TBase on T2.FMATERIALID = TBase.FMATERIALID
JOIN T_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID
--条件为今天往后的日计划 + 今天之前未关闭的日计划
where FOrderType = '委外订单' and
--(FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or 
DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0
and a.FDOCUMENTSTATUS not in ('E')
and b.FHQTY>0
ORDER BY b.FHMASTERDATE,a.FHOrderLev
ORDER BY b.FHMASTERDATE,a.FHOrderLev
";
                ds = DBServiceHelper.ExecuteDataSet(Context, sql);
                List<PRD_PPBOM> BomList = ds.ToModelList<PRD_PPBOM>();
@@ -1823,6 +1853,7 @@
                    this.Model.CreateNewEntryRow("FEntity");
                    this.Model.SetValue("FSEQ", i + 1, i);//序号
                    this.Model.SetValue("FMOFBILLTYPE", Convert.ToString(dt.Rows[i]["FMOFBILLTYPE"]), i);//生产订单单据类型
                    this.Model.SetValue("FOrderType", Convert.ToString(dt.Rows[i]["FOrderType"]), i);//订单类型
                    this.Model.SetValue("FCompleteSetCount", "", i);//总齐套数量
                    this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 
                    this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"].ToString(), i);//  
@@ -1952,6 +1983,7 @@
                    this.Model.CreateNewEntryRow("FEntity");
                    this.Model.SetValue("FSEQ", i + 1, i);//序号
                    this.Model.SetValue("FMOFBILLTYPE", Convert.ToString(dt.Rows[i]["FMOFBILLTYPE"]), i);//生产订单单据类型
                    this.Model.SetValue("FOrderType", Convert.ToString(dt.Rows[i]["FOrderType"]), i);//订单类型
                    this.Model.SetValue("FCompleteSetCount", "", i);//总齐套数量
                    this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 
                    this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"].ToString(), i);//  
@@ -2131,7 +2163,7 @@
 SELECT * FROM SC_TLPLANZXJH", filter["FDayPlanWorkID"]));
                }
                FDayPlanWorkID = FDayPlanWorkID.TrimEnd(',');
                sqlWhere += $"AND t2.FID IN ({FDayPlanWorkID})";
                sqlWhere += $"AND FID IN ({FDayPlanWorkID})";
            }
            DBServiceHelper.ExecuteBatch(Context, zxSqlList);
            //Stopwatch sw = new Stopwatch();
@@ -2142,8 +2174,9 @@
            try
            {
                string sql = string.Format(@"/*dialect*/
SELECT * FROM (
select t1.FID,t1.FSEQ FDayPlanFSEQ,t1.FEntryID,T2.FBILLNO AS FDayPlanFBILLNO,t3.FMATERIALID,t3.FMOEntrySeq as FMoSeq,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(t4.FMustQty/T3.FQTY) *t1.FHQTY) FHQtyMust,T4.FUnitID,t8.FNUMBER FUNITNUMBER2,T3.FID FPPBOM,T4.FENTRYID FPPBOMENTRYID,isnull(T9.FBillNo,'')FBillNo,t10.FNUMBER FORGNUMBER,t11.FNUMBER FHSOURCENUMBER,FSCRAPRATE,FFIXSCRAPQTY,T9.FID AS DayPlanFID,t2.FSCORDERNO,
t3.FMOENTRYID,t3.FBILLNO FPPBOMBILLNO,T4.FSEQ,tc.FOWNERTYPEID,tc.FOWNERID,tc.FEntrustPickOrgId,torg.FNUMBER as FORGNUMBER,t3.FMOID,FIssueType,FMaterialType,td.FNUMBER as FWORKSHOPID,t4.FReplaceGroup,isnull(ttt.FrowCount,0)FIsTDL,t4.FUseRate
t3.FMOENTRYID,t3.FBILLNO FPPBOMBILLNO,T4.FSEQ,tc.FOWNERTYPEID,tc.FOWNERID,tc.FEntrustPickOrgId,t3.FMOID,FIssueType,FMaterialType,td.FNUMBER as FWORKSHOPID,t4.FReplaceGroup,isnull(ttt.FrowCount,0)FIsTDL,t4.FUseRate
FROM Sc_WorkBillSortBillSub t1
JOIN Sc_WorkBillSortBillMAIN t2 on t1.FID = t2.FID
JOIN T_PRD_PPBOM T3 on T2.FPRDMOMAINID=t3.FMOID AND T2.FPRDMOENTYID=T3.FMOENTRYID
@@ -2164,9 +2197,36 @@
 LEFT join T_ORG_Organizations t10 on t2.FHPRDORGID = t10.FORGID
 LEFT join T_ENG_WORKCENTER t11 on t2.FHSOURCEID = t11.FID
 left join T_BD_DEPARTMENT td on t3.FWORKSHOPID=td.FDEPTID
 WHERE
t1.FHMASTERDATE between  DATEADD(day,-1,getdate()) and DATEADD(day,{0} - 1,getdate())
and t1.FEntryID not in
 WHERE  t2.FORDERTYPE = '生产订单'
union all
select t1.FID,t1.FSEQ FDayPlanFSEQ,t1.FEntryID,T2.FBILLNO AS FDayPlanFBILLNO,t3.FMATERIALID,t3.FSUBREQENTRYSEQ as FMoSeq,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(t4.FMustQty/T3.FQTY) *t1.FHQTY) FHQtyMust,T4.FUnitID,t8.FNUMBER FUNITNUMBER2,T3.FID FPPBOM,T4.FENTRYID FPPBOMENTRYID,isnull(T9.FBillNo,'')FBillNo,t10.FNUMBER FORGNUMBER,t11.FNUMBER FHSOURCENUMBER,FSCRAPRATE,FFIXSCRAPQTY,T9.FID AS DayPlanFID,t2.FSCORDERNO,
t3.FSUBREQENTRYID,t3.FBILLNO FPPBOMBILLNO,T4.FSEQ,Tc.FOWNERTYPEID,tc.FOWNERID,t3.FPARENTOWNERID FEntrustPickOrgId,t3.FSUBREQID,0 as FIssueType,FMaterialType,''as FWORKSHOPID,t4.FReplaceGroup,isnull(ttt.FrowCount,0)FIsTDL,t4.FUseRate
FROM Sc_WorkBillSortBillSub t1
JOIN Sc_WorkBillSortBillMAIN t2 on t1.FID = t2.FID
JOIN T_SUB_PPBOM T3 on T2.FPRDMOMAINID=t3.FSUBREQID AND T2.FPRDMOENTYID=T3.FSUBREQENTRYID
JOIN T_SUB_PPBOMENTRY T4 ON T3.FID=T4.FID
LEFT JOIN
(
    select FREPLACEGROUP,COUNT(*) FrowCount,FID  from T_SUB_PPBOMENTRY
    GROUP BY FREPLACEGROUP,FID
    having count(*) >1
) ttt on t4.FID = ttt.FID and  t4.FREPLACEGROUP =ttt.FREPLACEGROUP
JOIN T_SUB_PPBOMENTRY_C Tc ON T4.FENTRYID=Tc.FENTRYID
join T_ORG_Organizations torg ON Tc.FOWNERID = torg.FORGID
JOIN T_BD_MATERIAL T5 ON T3.FMATERIALID=T5.FMATERIALID
JOIN T_BD_MATERIAL T6 ON T4.FMATERIALID=T6.FMATERIALID
LEFT JOIN T_BD_UNIT T7 ON T3.FUNITID = T7.FUNITID
LEFT JOIN T_BD_UNIT T8 ON T4.FUNITID = T8.FUNITID
 LEFT JOIN Sc_DayPlanPPBomBillMain T9 ON T1.FEntryID=T9.FDayPlanFID
 LEFT join T_ORG_Organizations t10 on t2.FHPRDORGID = t10.FORGID
 LEFT join T_ENG_WORKCENTER t11 on t2.FHSOURCEID = t11.FID
 WHERE  t2.FORDERTYPE = '委外订单'
) TF
WHERE
FHMASTERDATE between  DATEADD(day,-1,getdate()) and DATEADD(day,{0} - 1,getdate())
and FEntryID not in
(
select distinct FDAYPLANFID from Sc_DayPlanPPBomBillMain where FID IN 
(
@@ -2990,7 +3050,7 @@
        }
        //生产计划平台选单 生产订单数据
        public void SelectMenu()
        public void SelectMenu(string FBarItemKey)
        {
            try
            {
@@ -2999,59 +3059,135 @@
                //单据体信息转换为列表集合
                DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
                int Fseq = entityDataObjoct.Count();
                string pageId = Guid.NewGuid().ToString();
                ListShowParameter showParameter = new ListShowParameter();
                showParameter.FormId = "PRD_MO";
                IRegularFilterParameter filterParameter = new ListRegularFilterParameter();
                filterParameter.Filter = string.Format(" FPickMtrlStatus in (1,2) ");//部分领料 或者 未领料
                filterParameter.SelectEntitys = new List<string>() { "FTreeEntity" };
                string pageId = Guid.NewGuid().ToString();
                showParameter.PageId = pageId;
                showParameter.ListFilterParameter = filterParameter;
                showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID;
                showParameter.IsLookUp = true;
                this.View.ShowForm(showParameter, delegate (FormResult result)
                if (FBarItemKey == "tbSelectMenuSC")
                {
                    object returnData = result.ReturnData;
                    if (returnData is ListSelectedRowCollection)
                    showParameter.FormId = "PRD_MO";
                    this.View.ShowForm(showParameter, delegate (FormResult result)
                    {
                        ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
                        //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString());
                        if (listSelectedRowCollection != null)
                        object returnData = result.ReturnData;
                        if (returnData is ListSelectedRowCollection)
                        {
                            var ret = "";
                            foreach (var listSelectedRow in listSelectedRowCollection)
                            ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
                            //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString());
                            if (listSelectedRowCollection != null)
                            {
                                if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0)
                                var ret = "";
                                foreach (var listSelectedRow in listSelectedRowCollection)
                                {
                                    //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选");
                                    ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n";
                                    continue;
                                    if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0)
                                    {
                                        //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选");
                                        ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n";
                                        continue;
                                    }
                                    string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
                                    int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
                                    if (day > 0)
                                    {
                                        //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
                                        ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n";
                                        continue;
                                    }
                                    //今天以前的数据是显示不出来的
                                    sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_PRD_MOENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
                                    day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
                                    if (day < 0)
                                    {
                                        //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
                                        ret += "计划开工日期在今天之前,生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n";
                                        continue;
                                    }
                                    this.Model.CreateNewEntryRow("FEntity");
                                    this.View.Model.SetValue("FOrderType", "生产订单", Fseq);
                                    this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq);
                                    this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq);
                                    this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["t1_FSeq"].ToString(), Fseq);
                                    this.View.Model.SetValue("FMatrailId", listSelectedRow.DataRow["FMaterialId_Id"].ToString(), Fseq);//2129900005
                                    this.View.Model.SetValue("FFUnit", listSelectedRow.DataRow["FUnitId_Id"].ToString(), Fseq);
                                    this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq);
                                    this.View.Model.SetValue("FProductWorkShopId", listSelectedRow.DataRow["FWorkShopID_Id"].ToString(), Fseq);
                                    this.View.Model.SetValue("FOrderLevel", "3", Fseq);
                                    this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//预计开工日期
                                    this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq);
                                    Fseq++;
                                }
                                //今天以前的数据是显示不出来的
                                string sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_PRD_MOENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
                                int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
                                if (day < 0)
                                if (ret != "")
                                {
                                    //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
                                    ret += "计划开工日期在今天之前,生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n";
                                    continue;
                                    this.View.ShowMessage(ret);
                                }
                                this.Model.CreateNewEntryRow("FEntity");
                                this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq);
                                this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq);
                                this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["t1_FSeq"].ToString(), Fseq);
                                this.View.Model.SetValue("FMatrailId", listSelectedRow.DataRow["FMaterialId_Id"].ToString(), Fseq);//2129900005
                                this.View.Model.SetValue("FFUnit", listSelectedRow.DataRow["FUnitId_Id"].ToString(), Fseq);
                                this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq);
                                this.View.Model.SetValue("FProductWorkShopId", listSelectedRow.DataRow["FWorkShopID_Id"].ToString(), Fseq);
                                this.View.Model.SetValue("FOrderLevel", "3", Fseq);
                                this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//预计开工日期
                                this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq);
                                Fseq++;
                            }
                            if (ret != "")
                            {
                                this.View.ShowMessage(ret);
                            }
                        }
                    }
                });
                    });
                }
                else if (FBarItemKey == "tbSelectMenuWW")
                {
                    showParameter.FormId = "SUB_SUBREQORDER";
                    this.View.ShowForm(showParameter, delegate (FormResult result)
                    {
                        object returnData = result.ReturnData;
                        if (returnData is ListSelectedRowCollection)
                        {
                            ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
                            //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString());
                            if (listSelectedRowCollection != null)
                            {
                                var ret = "";
                                foreach (var listSelectedRow in listSelectedRowCollection)
                                {
                                    if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0)
                                    {
                                        //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选");
                                        ret += "委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n";
                                        continue;
                                    }
                                    string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
                                    int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
                                    if (day > 0)
                                    {
                                        //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
                                        ret += "委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n";
                                        continue;
                                    }
                                    //今天以前的数据是显示不出来的
                                    sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_SUB_REQORDERENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
                                    day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
                                    if (day < 0)
                                    {
                                        //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
                                        ret += "计划开工日期在今天之前,委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n";
                                        continue;
                                    }
                                    this.Model.CreateNewEntryRow("FEntity");
                                    this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq);
                                    this.View.Model.SetValue("FOrderType", "委外订单", Fseq);
                                    this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq);
                                    this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["t1_FSeq"].ToString(), Fseq);
                                    this.View.Model.SetValue("FMatrailId", listSelectedRow.DataRow["FMaterialId_Id"].ToString(), Fseq);//2129900005
                                    this.View.Model.SetValue("FFUnit", listSelectedRow.DataRow["FUnitId_Id"].ToString(), Fseq);
                                    this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq);
                                    this.View.Model.SetValue("FProductWorkShopId", 0, Fseq);
                                    this.View.Model.SetValue("FOrderLevel", "3", Fseq);
                                    this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//预计开工日期
                                    this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq);
                                    Fseq++;
                                }
                                if (ret != "")
                                {
                                    this.View.ShowMessage(ret);
                                }
                            }
                        }
                    });
                }
            }
            catch (Exception ex)
            {
@@ -3063,7 +3199,7 @@
        public void ReleaseForLMes()
        {
            string sql = $"exec Realese_Sc_ICMOBillStatus_Tmp";
            string result =DBServiceHelper.ExecuteScalar<string>(Context,sql,"");
            string result = DBServiceHelper.ExecuteScalar<string>(Context, sql, "");
            this.View.ShowMessage(result);
        }
    }
src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatformMonth.cs
New file
@@ -0,0 +1,777 @@
using Demo.BillView.PRD;
using Demo.Model.Model;
using Demo.Model.Model.PODemandPlan;
using K3Cloud.Extend.Utils;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.CommonFilter;
using Kingdee.BOS.Core.Const;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.JSON;
using Kingdee.BOS.KDThread;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.ServiceHelper.FileServer;
using Kingdee.BOS.Util;
using Kingdee.K3.Core.SCM.STK;
using Kingdee.K3.SCM.ServiceHelper;
using Newtonsoft.Json.Linq;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using ZD.Cloud.Logger;
using ZD.Cloud.WebApi;
using ZD.Share.Common;
namespace Demo.BillView.PRD
{
    [Description("生产计划平台(月度计划)按钮功能")]
    [HotUpdate]
    public class Pro_WorkBillPlatformMonth : AbstractDynamicFormPlugIn
    {
        string _OutServicePath = "";
        string PathName = "日计划导入模板.xlsx";
        List<PRD_Inventory> ListInventory;//库存明细
        List<PRD_Inventory> ListInventoryByStockOrgId;//物料总库存
        private bool isSearched = false;
        /// <summary>
        /// 页面初始化 渲染界面 将T0-T60更改为日期显示
        /// </summary>
        /// <param name="e"></param>
        public override void OnInitialize(InitializeEventArgs e)
        {
            base.OnInitialize(e);
            DateTime DateNow = DateTime.Now;
            for (int m = 0; m <= 60; m++)
            {
                this.View.GetControl("FT" + "" + m + "").ControlAppearance.TextColor = "#FFFF00";
                this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString();
            }
            this.View.SendDynamicFormAction(View);
        }
        public override void DataChanged(DataChangedEventArgs e)
        {
            if (!isSearched) return;
            base.DataChanged(e);
            var columns = new List<string>() { "", "" };
            for (int i = 0; i < 100; i++)
            {
                columns.Add("FT" + i.ToString());
            }
            var model = this.View.Model;
            if (columns.Contains(e.Field.Key))
            {
                var sum = columns.Select(x => Convert.ToDouble(model.GetValue(x, e.Row))).Sum();//日计划总和
                var scOrderCount = Convert.ToDouble(model.GetValue("FOrderQuantity", e.Row));//生产订单数量
                var FQTYLS = Convert.ToDouble(model.GetValue("FQTYLS", e.Row));//历史
                this.View.Model.SetValue("FNoScheduled", scOrderCount - sum - FQTYLS, e.Row);
                this.View.Model.SetValue("FDayPlanQuantity", sum, e.Row);
            }
        }
        public override void BarItemClick(BarItemClickEventArgs e)
        {
            base.BarItemClick(e);
            try
            {
                if (e.BarItemKey.ToUpper() == "TBSEARCH")
                {
                    isSearched = false;
                    SearchList();
                    isSearched = true;
                }
                //保存
                if (e.BarItemKey.ToUpper() == "BTNSAVE")
                {
                    Save();
                }
                //选单
                if (e.BarItemKey.ToUpper().Contains("TBSELECTMENU"))
                {
                    SelectMenu(e.BarItemKey.ToString());
                }
            }
            catch (Exception ex)
            {
                this.View.ShowErrMessage(ex.Message.ToString());
            }
        }
        public override void EntryBarItemClick(BarItemClickEventArgs e)
        {
            base.EntryBarItemClick(e);
            if (e.BarItemKey.ToUpper() == "TBEDIT")
            {
                isSearched = false;
                SearchListEdit();
                isSearched = true;
            }
        }
        /// <summary>
        /// 行双击 跳出齐套分析明细列表
        /// </summary>
        /// <param name="e"></param>
        public override void EntityRowDoubleClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e)
        {
            //LogHelper.Info("[行双击事件]");
            base.EntityRowClick(e);
            DynamicFormShowParameter formPa = new DynamicFormShowParameter();
            if (e.ColKey == "FDELAYLNUM")
            {
                //生产计划平台拖期明细跳转
                formPa.FormId = "paez_TardinessDetails";
                formPa.CustomParams.Add("FID", Convert.ToString(this.View.Model.GetValue("FDayPlanWorkID", e.Row).ToString()));
                this.View.ShowForm(formPa);
            }
            else if (e.ColKey == "FQTYLS")
            {
                //生产计划平台
                string pageId = Guid.NewGuid().ToString();
                BillShowParameter showParameter = new BillShowParameter();
                showParameter.FormId = "Paez_Sc_WorkBillAutoSortBill";
                showParameter.OpenStyle.ShowType = ShowType.MainNewTabPage;
                showParameter.PageId = pageId;
                showParameter.Status = OperationStatus.EDIT;
                // 传入需要修改的日计划工单内码,
                showParameter.PKey = Convert.ToString(this.View.Model.GetValue("FDayPlanWorkID", e.Row).ToString());
                this.View.ShowForm(showParameter);
            }
            else
            {
                var type = this.View.Model.GetValue("FQTTYPE");
                if (type == "标准Bom")
                    formPa.CustomParams.Add("tempName", "JIT_MOMaterReadysBomBill");
                //齐套分析明细列表跳转
                formPa.FormId = "paez_CompleteAnalysisDetail";
                formPa.CustomParams.Add("FHICMOInterID", Convert.ToString(this.View.Model.GetValue("FDayPlanWorkID", e.Row).ToString()));
                this.View.ShowForm(formPa);
            }
        }
        /// <summary>
        /// 保存功能
        /// </summary>
        public void Save()
        {
            List<string> sqlList = new List<string>();
            string sql;
            //获取单据体信息
            Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
            //单据体信息转换为列表集合
            DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
            DateTime date = Convert.ToDateTime(DateTime.Now.ToString("d"));
            string _result = "";
            foreach (DynamicObject current in entityDataObjoct)
            {
                if (Convert.ToInt32(current["FNoScheduled"]) < 0)
                    _result += "序号:" + Convert.ToString(current["SEQ"]) + ",日计划总数量超出生产订单数量";
            }
            if (_result != "")
            {
                this.View.ShowErrMessage(_result);
                return;
            }
            foreach (DynamicObject current in entityDataObjoct)
            {
                if (Convert.ToInt32(current["FDayPlanWorkID"]) > 0)
                {
                    JObject jsonRoot = new JObject();
                    jsonRoot.Add("Creator", "");
                    jsonRoot.Add("NeedUpDateFields", new JArray());
                    jsonRoot.Add("NeedReturnFields", new JArray());
                    jsonRoot.Add("IsDeleteEntry", "false");
                    jsonRoot.Add("SubSystemId", "");
                    jsonRoot.Add("IsVerifyBaseDataField", "");
                    JObject jsonModel = new JObject();
                    jsonModel.Add("FID", Convert.ToString(current["FDayPlanWorkID"]));
                    if (Convert.ToString(current["FResourcesId_Id"]) != "0")
                    {
                        jsonModel.Add("FHSourceID", new JObject() { ["Fnumber"] = (current["FResourcesId"] as DynamicObject)?["Number"].ToString() });//生产资源
                    }
                    jsonModel.Add("FOrderQuantity", Convert.ToString(current["FOrderQuantity"]));
                    jsonModel.Add("FDayPlanQuantity", Convert.ToDecimal(current["FDayPlanQuantity"]) + Convert.ToDecimal(current["FQTYLS"]));
                    jsonModel.Add("FNoScheduled", Convert.ToString(current["FNoScheduled"]));
                    sql = $" /*dialect*/ select FEntryID, FHMASTERDATE from SC_WORKBILLSORTBILLSub  where FID={Convert.ToString(current["FDayPlanWorkID"])} ";
                    List<DayPlanModel> dayPlanModel = new List<DayPlanModel>();
                    dayPlanModel = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<DayPlanModel>();
                    JArray Entry = new JArray();
                    for (int i = 0; i <= 60; i++)
                    {
                        if (Convert.ToString(current["FT" + "" + i + ""]) == "" || Convert.ToString(current["FT" + "" + i + ""]) == "0")
                            continue;
                        JObject jsonFPOOrderEntry = new JObject();
                        jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//主日期
                        jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//日计划数量
                        List<DayPlanModel> _dayPlanModel = dayPlanModel.Where(x => x.FHMASTERDATE == date.AddDays(i)).ToList();
                        if (_dayPlanModel.Count > 0)
                        {
                            jsonFPOOrderEntry.Add("FEntryID", _dayPlanModel.FirstOrDefault().FEntryID); ;//序号
                        }
                        Entry.Add(jsonFPOOrderEntry);
                    }
                    jsonModel.Add("FEntity", Entry);
                    jsonRoot.Add("Model", jsonModel);
                    CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
                    var result = cloudClient.Save("Paez_Sc_WorkBillAutoSortBill", jsonRoot.ToString());
                    JObject saveObj = JObject.Parse(result);
                    string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
                    if (saveIsSuc != "TRUE")
                    {
                        //LogHelper.Error("生产计划平台保存失败:" + jsonRoot.ToString());
                        this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
                    }
                }
                else
                {
                    //验证日计划工单是否存在数据 生产订单号加明细行号 已生成过日计划的不生成 (关闭后的)
                    string moSql = string.Format(@"/*dialect*/  select FID from SC_WORKBILLSORTBILLMAIN
 where  FDOCUMENTSTATUS NOT IN ('E') AND  FSCORDERNO ='{0}' and FSRCBILLENTRYSEQ = '{1}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]));
                    int fDayPlanFID = DBServiceHelper.ExecuteScalar<int>(Context, moSql, 0);
                    if (fDayPlanFID > 0)
                        continue;
                    string FOrderType = Convert.ToString(current["FOrderType"]) ?? "";
                    string FTempName = "T_PRD_MO";
                    string FTempNameEntry = "T_PRD_MOENTRY";
                    if (FOrderType == "委外订单")
                    {
                        FTempName = "T_SUB_REQORDER";
                        FTempNameEntry = "T_SUB_REQORDERENTRY";
                    }
                    ///查询生产订单数据
                    sql = string.Format(@"
/*dialect*/
SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*,t3.FNUMBER as FUnitNumber,tBom.FNUMBER as FBomNumber FROM {0} T1
 LEFT JOIN {1} T2 ON T1.FID = T2.FID
 LEFT JOIN T_ENG_BOM tBom on t2.FBOMID = tBom.FID
 join T_BD_UNIT t3 on t2.FUNITID=t3.FUNITID
 join (  select A.FBILLTYPEID,B.FNAME  from T_BAS_BILLTYPE A
JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID
where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER')   AND b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID
 WHERE T1.FBILLNO = '{2}'  AND T2.FMATERIALID = '{3}' AND T2.FSEQ = '{4}'", FTempName, FTempNameEntry, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]));
                    DataTable dt = new DataTable();
                    dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                    if (dt.Rows.Count == 0)
                        continue;
                    string FID = "";//FID 源单主内码
                    string FENTRYID = "";//FENTRYID 源单子内码
                    string FLOT = "";//FLOT  批次
                    string FQTY = "";//FQTY 生产订单数量
                    string FBILLNO = "";//FBILLNO 原单号
                    string FHUnitID = "";//单位
                    string FPlanBeginDate = "";//开始日期
                    string FPlanEndDate = "";//结束日期
                    string FMoFBillType = "";//
                    string FBomNumber = "";//Bom 版本
                    if (dt.Rows.Count > 0)
                    {
                        FID = dt.Rows[0]["FID"].ToString();
                        FENTRYID = dt.Rows[0]["FENTRYID"].ToString();
                        FLOT = dt.Rows[0]["FLOT"].ToString();
                        FQTY = dt.Rows[0]["FQTY"].ToString();
                        FBILLNO = dt.Rows[0]["FBILLNO"].ToString();
                        FHUnitID = dt.Rows[0]["FUnitNumber"].ToString();
                        FPlanBeginDate = dt.Rows[0]["FPlanStartDate"].ToString();
                        FPlanEndDate = dt.Rows[0]["FPlanFinishDate"].ToString();
                        FMoFBillType = dt.Rows[0]["FMoFBillType"].ToString();
                        FBomNumber = dt.Rows[0]["FBomNumber"].ToString();
                    }
                    //选单数据 做新增
                    JObject jsonRoot = new JObject();
                    jsonRoot.Add("Creator", "");
                    jsonRoot.Add("NeedUpDateFields", new JArray());
                    jsonRoot.Add("NeedReturnFields", new JArray());
                    jsonRoot.Add("IsDeleteEntry", "false");
                    jsonRoot.Add("SubSystemId", "");
                    jsonRoot.Add("IsVerifyBaseDataField", "");
                    JObject jsonModel = new JObject();
                    jsonModel.Add("FPreparatDate", Convert.ToString(current["FBzDate"]));//编制日期(改为预计开工日期)
                    jsonModel.Add("FMonthPlan", 1);//月度计划标识
                    jsonModel.Add("FMoFBillType", FMoFBillType);//
                    jsonModel.Add("FOrderType", FOrderType);//
                    jsonModel.Add("FSRCBILLENTRYSEQ", Convert.ToString(current["FSRCBILLENTRYSEQ"]));//生产订单明细行号
                    jsonModel.Add("FSCOrderNo", Convert.ToString(current["FSCOrderNo"])); //生产订单号FSCOrderNo
                    jsonModel.Add("FHSeOrderBillNo", Convert.ToString(current["FSalOrderNo"]));//销售订单号
                    jsonModel.Add("FHOrderLev", current["FOrderLevel"].ToString());//订单等级
                    jsonModel.Add("FHOrderQty", Convert.ToString(current["FSalOrderCount"]));//销售订单数量
                    jsonModel.Add("FHOrderCommitDate", Convert.ToString(current["FDeliveryDate"]));//交货期HOrderCommitDate
                    jsonModel.Add("FHUnitID", new JObject() { ["Fnumber"] = FHUnitID });//单位
                    jsonModel.Add("FBOMID", new JObject() { ["Fnumber"] = FBomNumber });//BOM版本
                    jsonModel.Add("FHPlanBeginDate", FPlanBeginDate);//计划开始日期
                    jsonModel.Add("FHPlanEndDate", FPlanEndDate);//计划完工日期
                                                                 //jsonModel.Add("FBatch", current["FBatch"].ToString());//批次
                    jsonModel.Add("FBatch", FLOT);//批次
                    jsonModel.Add("FHOrderNeedQty", FQTY);// 订单需求数量
                    jsonModel.Add("FPrdBillNo", FBILLNO); ;//源单编号
                    jsonModel.Add("FPRDMOMAINID", FID); ;//源单主内码
                    jsonModel.Add("FPRDMOENTYID", FENTRYID); ;//源单子内码
                    jsonModel.Add("FMoFID", FID); ;//源单主内码
                    jsonModel.Add("FMoFentryId", FENTRYID); ;//源单子内码
                    jsonModel.Add("FOrderQuantity", Convert.ToString(current["FOrderQuantity"])); ;//生产订单数量
                    jsonModel.Add("FDayPlanQuantity", Convert.ToString(current["FDayPlanQuantity"])); ;//日计划数量
                    jsonModel.Add("FNoScheduled", Convert.ToString(current["FNoScheduled"])); ;//未排数量
                    JObject jsonFHMaterID = new JObject();
                    jsonFHMaterID.Add("FNumber", (current["FMatrailId"] as DynamicObject)["Number"].ToString());
                    jsonModel.Add("FHMaterID", jsonFHMaterID);//FHMaterID 物料
                    if (Convert.ToString(current["FORGID_Id"]) != "0")
                    {
                        JObject jsonFHPRDORGID = new JObject();
                        jsonFHPRDORGID.Add("FNumber", (current["FORGID"] as DynamicObject)["Number"].ToString());
                        jsonModel.Add("FHPRDORGID", jsonFHPRDORGID);//FHMaterID 生产组织
                    }
                    if (Convert.ToString(current["FResourcesId_Id"]) != "0")
                    {
                        JObject jsonFProductWorkShopId = new JObject();
                        jsonFProductWorkShopId.Add("FNumber", (current["FResourcesId"] as DynamicObject)["Number"].ToString());
                        jsonModel.Add("FHSourceID", jsonFProductWorkShopId);//FHSourceID  生产车间
                    }
                    if (Convert.ToString(current["FProductWorkShopId_Id"]) != "0")
                    {
                        JObject jsonFResourcesId = new JObject();
                        jsonFResourcesId.Add("FNumber", (current["FProductWorkShopId"] as DynamicObject)["Number"].ToString());
                        jsonModel.Add("FHWorkShopID", jsonFResourcesId);//FHWorkShopID  生产资源
                    }
                    JArray Entry = new JArray();
                    for (int i = 0; i <= 60; i++)
                    {
                        if (Convert.ToString(current["FT" + "" + i + ""]) == "" || Convert.ToString(current["FT" + "" + i + ""]) == "0")
                            continue;
                        JObject jsonFPOOrderEntry = new JObject();
                        jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//主日期
                        jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//日计划数量
                        Entry.Add(jsonFPOOrderEntry);
                    }
                    jsonModel.Add("FEntity", Entry);
                    jsonRoot.Add("Model", jsonModel);
                    CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
                    var result = cloudClient.Save("Paez_Sc_WorkBillAutoSortBill", jsonRoot.ToString());
                    JObject saveObj = JObject.Parse(result);
                    string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
                    if (saveIsSuc != "TRUE")
                    {
                        //LogHelper.Error("生产计划平台新增保存失败:" + saveObj.ToString());
                        this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
                    }
                    if (saveIsSuc == "TRUE")
                    {
                        string FDayPlanBillNo = saveObj["Result"]["Number"].ToString();
                        string FDayPlanID = saveObj["Result"]["Id"].ToString();
                        this.Model.SetValue("FDayPlanBillNo", FDayPlanBillNo, Convert.ToInt32(current["SEQ"]) - 1);//
                        this.Model.SetValue("FDayPlanID", FDayPlanID, Convert.ToInt32(current["SEQ"]) - 1);//
                    }
                }
            }
            this.View.ShowMessage("操作成功");
            SearchList();
        }
        /// <summary>
        /// 查询
        /// </summary>
        public void SearchList()
        {
            string sqlwhere = " and 1=1";
            if ((this.Model.GetValue("FProWorkShopId") as DynamicObject) != null)
            {
                string FProWorkShopId = (this.Model.GetValue("FProWorkShopId") as DynamicObject)["Id"].ToString();
                if (!string.IsNullOrEmpty(FProWorkShopId))
                    sqlwhere += $" and FHWorkShopID='{FProWorkShopId}'";
            }
            //销售订单号
            string FSalOrder = Convert.ToString((this.Model.GetValue("FSalOrder")));
            if (!string.IsNullOrEmpty(FSalOrder))
                sqlwhere += $" and FHSeOrderBillNo like '%{FSalOrder}%'";
            //生产订单号
            string FScOrderMainNo = Convert.ToString((this.Model.GetValue("FScOrderMainNo")));
            if (!string.IsNullOrEmpty(FScOrderMainNo))
                sqlwhere += $" and FSCORDERNO like '%{FScOrderMainNo}%'";
            //物料
            if ((this.Model.GetValue("FMatralId") as DynamicObject) != null)
            {
                string FMatralId = (this.Model.GetValue("FMatralId") as DynamicObject)["Number"].ToString();
                if (!string.IsNullOrEmpty(FMatralId))
                    sqlwhere += $" and t3.FNumber='{FMatralId}'";
            }
            //编制日期
            string FBeginPreparatDate = Convert.ToString((this.Model.GetValue("FBrginPreparatDate")));
            if (!string.IsNullOrEmpty(FBeginPreparatDate))
                sqlwhere += $" and FPreparatDate>='{FBeginPreparatDate}'";
            //编制日期
            string FEndPreparatDate = Convert.ToString((this.Model.GetValue("FEndPreparatDate")));
            if (!string.IsNullOrEmpty(FEndPreparatDate))
                sqlwhere += $" and FPreparatDate<='{FEndPreparatDate}'";
            try
            {
                string sql = @"/*dialect*/ select t1.*,isnull((select SUM(isnull(FNotProductNum,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FNotProductNum ,isnull((select SUM(isnull(FHQTY,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FQTYLS
 from  Sc_WorkBillSortBillMain t1
 left join T_BD_MATERIAL t3 on t1.FHMaterID=t3.FMATERIALID
 where t1.FDOCUMENTSTATUS not in ('E') and t1.FMonthPlan = 1
" + sqlwhere;
                DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                DateTime DateNow = DateTime.Now;//获取当前日期
                this.Model.DeleteEntryData("FEntity");
                EntryGrid grid = this.View.GetControl<EntryGrid>("FEntity");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    this.Model.CreateNewEntryRow("FEntity");
                    this.Model.SetValue("FSEQ", i + 1, i);//序号
                    this.Model.SetValue("FMOFBILLTYPE", Convert.ToString(dt.Rows[i]["FMOFBILLTYPE"]), i);//生产订单单据类型
                    this.Model.SetValue("FOrderType", Convert.ToString(dt.Rows[i]["FOrderType"]), i);//订单类型
                    this.Model.SetValue("FCompleteSetCount", "", i);//总齐套数量
                    this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量
                    this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"].ToString(), i);//
                    this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHOrderQty"].ToString(), i);//销售订单数量
                    this.Model.SetValue("FBatch", dt.Rows[i]["FBatch"].ToString(), i);//批次号
                    this.Model.SetValue("FUnit", dt.Rows[i]["FHUnitID"].ToString(), i);//计量单位
                    this.Model.SetValue("FORGID", dt.Rows[i]["FHPRDORGID"].ToString(), i);//生产组织
                    this.Model.SetValue("FMatrailId", dt.Rows[i]["FHMaterID"].ToString(), i);//产品代码
                    this.Model.SetValue("FDeliverydate", dt.Rows[i]["FHOrderCommitDate"].ToString(), i);//交货日期
                    this.Model.SetValue("FOrderLevel", dt.Rows[i]["FHOrderLev"].ToString(), i);//订单等级
                    this.Model.SetValue("FSCOrderNo", dt.Rows[i]["FSCOrderNo"].ToString(), i);//生产订单号
                    this.Model.SetValue("FSalOrderNo", dt.Rows[i]["FHSEORDERBILLNO"].ToString(), i);//销售订单号
                    this.Model.SetValue("FBzDate", dt.Rows[i]["FPreparatDate"].ToString(), i);//预计开工日期
                    this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量
                    this.Model.SetValue("FHMainSourceInterID", dt.Rows[i]["FPRDMOMAINID"].ToString(), i);//源单主内码FHMainSourceInterID
                    this.Model.SetValue("FHMainSourceEntryID", dt.Rows[i]["FPRDMOENTYID"].ToString(), i);//源单子内码FHMainSourceEntryID
                    this.Model.SetValue("FDayPlanWorkID", dt.Rows[i]["FID"].ToString(), i);//日计划工单FID
                    this.Model.SetValue("FResourcesId", dt.Rows[i]["FHSourceID"].ToString(), i);//生产资源
                    this.Model.SetValue("FProductWorkShopId", dt.Rows[i]["FHWorkShopID"].ToString(), i);//生产车间
                    this.Model.SetValue("FCompleteSetCount", dt.Rows[i]["FCompleteCount"].ToString(), i);//齐套数量
                    this.Model.SetValue("FOrderQuantity", dt.Rows[i]["FOrderQuantity"].ToString(), i);//生产订单数量
                    this.Model.SetValue("FDayPlanQuantity", Convert.ToDecimal(dt.Rows[i]["FDAYPLANQUANTITY"]) - Convert.ToDecimal(dt.Rows[i]["FQTYLS"]), i);//日计划数量
                    this.Model.SetValue("FQTYLS", dt.Rows[i]["FQTYLS"].ToString(), i);//历史遗留
                    this.Model.SetValue("FNoScheduled", dt.Rows[i]["FNoScheduled"].ToString(), i);//未排数量
                    this.Model.SetValue("FDelaylnUM", dt.Rows[i]["FNotProductNum"].ToString(), i);//拖期数量
                    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; //单据体行锁定字段
                    }
                    this.View.InvokeFieldUpdateService("FMatrailId", i);//GetControl
                }
                this.View.UpdateView();
                for (int j = 0; j < dt.Rows.Count; j++)
                {
                    sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[j]["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;
                        if (dr["FHLockedSub"].ToString() == "1")
                            this.View.GetFieldEditor("FT" + getDay.Days.ToString(), j).Enabled = false; //单据体行锁定字段
                        if (dr["FCOMPLETE"].ToString() == "未齐套")
                        {
                            this.View.GetFieldEditor("FT" + getDay.Days.ToString(), j).Enabled = false; //单据体行锁定字段
                            grid.SetForecolor("FT" + "" + getDay.Days.ToString() + "", "#FF0000", j);
                        }
                        else if (dr["FCOMPLETE"].ToString() == "齐套")
                        {
                            this.View.GetFieldEditor("FT" + getDay.Days.ToString(), j).Enabled = false; //单据体行锁定字段
                            grid.SetForecolor("FT" + "" + getDay.Days.ToString() + "", "#00FF00", j);
                        }
                    }
                }
                for (int m = 0; m <= 60; m++)
                {
                    this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString();
                }
            }
            catch (Exception ex)
            {
                this.View.ShowErrMessage(ex.Message.ToString());
            }
        }
        /// <summary>
        /// 编辑
        /// </summary>
        public void SearchListEdit()
        {
            string sqlwhere = " and 1=1";
            if ((this.Model.GetValue("FProWorkShopId") as DynamicObject) != null)
            {
                string FProWorkShopId = (this.Model.GetValue("FProWorkShopId") as DynamicObject)["Id"].ToString();
                if (!string.IsNullOrEmpty(FProWorkShopId))
                    sqlwhere += $" and FHWorkShopID='{FProWorkShopId}'";
            }
            //销售订单号
            string FSalOrder = Convert.ToString((this.Model.GetValue("FSalOrder")));
            if (!string.IsNullOrEmpty(FSalOrder))
                sqlwhere += $" and FHSeOrderBillNo like '%{FSalOrder}%'";
            //生产订单号
            string FScOrderMainNo = Convert.ToString((this.Model.GetValue("FScOrderMainNo")));
            if (!string.IsNullOrEmpty(FScOrderMainNo))
                sqlwhere += $" and FSCORDERNO like '%{FScOrderMainNo}%'";
            //物料
            if ((this.Model.GetValue("FMatralId") as DynamicObject) != null)
            {
                string FMatralId = (this.Model.GetValue("FMatralId") as DynamicObject)["Number"].ToString();
                if (!string.IsNullOrEmpty(FMatralId))
                    sqlwhere += $" and t3.FNumber='{FMatralId}'";
            }
            //编制日期开始
            string FBeginPreparatDate = Convert.ToString((this.Model.GetValue("FBrginPreparatDate")));
            if (!string.IsNullOrEmpty(FBeginPreparatDate))
                sqlwhere += $" and FPreparatDate>='{FBeginPreparatDate}'";
            //编制日期结束
            string FEndPreparatDate = Convert.ToString((this.Model.GetValue("FEndPreparatDate")));
            if (!string.IsNullOrEmpty(FEndPreparatDate))
                sqlwhere += $" and FPreparatDate<='{FEndPreparatDate}'";
            try
            {
                string sql = @"/*dialect*/  select t1.*,isnull((select SUM(isnull(FNotProductNum,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FNotProductNum ,isnull((select SUM(isnull(FHQTY,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FQTYLS
 from  Sc_WorkBillSortBillMain t1
 left join T_BD_MATERIAL t3 on t1.FHMaterID=t3.FMATERIALID
 where t1.FDOCUMENTSTATUS not in ('E') and t1.FMonthPlan = 1
" + sqlwhere;
                DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                DateTime DateNow = DateTime.Now;//获取当前日期
                this.Model.DeleteEntryData("FEntity");
                EntryGrid grid = this.View.GetControl<EntryGrid>("FEntity");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    this.Model.CreateNewEntryRow("FEntity");
                    this.Model.SetValue("FSEQ", i + 1, i);//序号
                    this.Model.SetValue("FMOFBILLTYPE", Convert.ToString(dt.Rows[i]["FMOFBILLTYPE"]), i);//生产订单单据类型
                    this.Model.SetValue("FOrderType", Convert.ToString(dt.Rows[i]["FOrderType"]), i);//订单类型
                    this.Model.SetValue("FCompleteSetCount", "", i);//总齐套数量
                    this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量
                    this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"].ToString(), i);//
                    this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHOrderQty"].ToString(), i);//销售订单数量
                    this.Model.SetValue("FBatch", dt.Rows[i]["FBatch"].ToString(), i);//批次号
                    this.Model.SetValue("FUnit", dt.Rows[i]["FHUnitID"].ToString(), i);//计量单位
                    this.Model.SetValue("FORGID", dt.Rows[i]["FHPRDORGID"].ToString(), i);//生产组织
                    this.Model.SetValue("FMatrailId", dt.Rows[i]["FHMaterID"].ToString(), i);//产品代码
                    this.Model.SetValue("FDeliverydate", dt.Rows[i]["FHOrderCommitDate"].ToString(), i);//交货日期
                    this.Model.SetValue("FOrderLevel", dt.Rows[i]["FHOrderLev"].ToString(), i);//订单等级
                    this.Model.SetValue("FSCOrderNo", dt.Rows[i]["FSCOrderNo"].ToString(), i);//生产订单号
                    this.Model.SetValue("FSalOrderNo", dt.Rows[i]["FHSEORDERBILLNO"].ToString(), i);//销售订单号
                    this.Model.SetValue("FBzDate", dt.Rows[i]["FPreparatDate"].ToString(), i);//预计开工日期
                    this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量
                    this.Model.SetValue("FHMainSourceInterID", dt.Rows[i]["FPRDMOMAINID"].ToString(), i);//源单主内码FHMainSourceInterID
                    this.Model.SetValue("FHMainSourceEntryID", dt.Rows[i]["FPRDMOENTYID"].ToString(), i);//源单子内码FHMainSourceEntryID
                    this.Model.SetValue("FDayPlanWorkID", dt.Rows[i]["FID"].ToString(), i);//日计划工单FID
                    this.Model.SetValue("FResourcesId", dt.Rows[i]["FHSourceID"].ToString(), i);//生产资源
                    this.Model.SetValue("FProductWorkShopId", dt.Rows[i]["FHWorkShopID"].ToString(), i);//生产车间
                    this.Model.SetValue("FCompleteSetCount", dt.Rows[i]["FCompleteCount"].ToString(), i);//齐套数量
                    this.Model.SetValue("FOrderQuantity", dt.Rows[i]["FOrderQuantity"].ToString(), i);//生产订单数量
                    this.Model.SetValue("FDayPlanQuantity", Convert.ToDecimal(dt.Rows[i]["FOrderQuantity"]) - Convert.ToDecimal(dt.Rows[i]["FQTYLS"]), i);//日计划数量
                    this.Model.SetValue("FQTYLS", dt.Rows[i]["FQTYLS"].ToString(), i);//历史遗留
                    this.Model.SetValue("FNoScheduled", dt.Rows[i]["FNoScheduled"].ToString(), i);//未排数量
                    this.Model.SetValue("FDelaylnUM", dt.Rows[i]["FNotProductNum"].ToString(), i);//拖期数量
                    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; //单据体行锁定字段
                    }
                    this.View.InvokeFieldUpdateService("FMatrailId", i);//调用数量值更新
                }
                this.View.UpdateView();
                for (int j = 0; j < dt.Rows.Count; j++)
                {
                    sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[j]["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;
                        if (dr["FHLockedSub"].ToString() == "1")
                            this.View.GetFieldEditor("FT" + getDay.Days.ToString(), j).Enabled = false; //单据体行锁定字段
                    }
                }
                for (int m = 0; m <= 60; m++)
                {
                    this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString();
                }
            }
            catch (Exception ex)
            {
                this.View.ShowErrMessage(ex.Message.ToString());
            }
        }
        //生产计划平台选单 生产订单数据
        public void SelectMenu(string FBarItemKey)
        {
            try
            {
                //获取单据体信息
                Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
                //单据体信息转换为列表集合
                DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
                int Fseq = entityDataObjoct.Count();
                ListShowParameter showParameter = new ListShowParameter();
                IRegularFilterParameter filterParameter = new ListRegularFilterParameter();
                filterParameter.Filter = string.Format(" FPickMtrlStatus in (1,2) ");//部分领料 或者 未领料
                filterParameter.SelectEntitys = new List<string>() { "FTreeEntity" };
                string pageId = Guid.NewGuid().ToString();
                showParameter.PageId = pageId;
                showParameter.ListFilterParameter = filterParameter;
                showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID;
                showParameter.IsLookUp = true;
                if (FBarItemKey == "tbSelectMenuSC")
                {
                    showParameter.FormId = "PRD_MO";
                    this.View.ShowForm(showParameter, delegate (FormResult result)
                    {
                        object returnData = result.ReturnData;
                        if (returnData is ListSelectedRowCollection)
                        {
                            ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
                            //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString());
                            if (listSelectedRowCollection != null)
                            {
                                var ret = "";
                                foreach (var listSelectedRow in listSelectedRowCollection)
                                {
                                    if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0)
                                    {
                                        //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选");
                                        ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n";
                                        continue;
                                    }
                                    string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
                                    int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
                                    if (day > 0)
                                    {
                                        //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
                                        ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n";
                                        continue;
                                    }
                                    //今天以前的数据是显示不出来的
                                    //sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_PRD_MOENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
                                    //day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
                                    //if (day < 0)
                                    //{
                                    //    //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
                                    //    ret += "计划开工日期在今天之前,生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n";
                                    //    continue;
                                    //}
                                    this.Model.CreateNewEntryRow("FEntity");
                                    this.View.Model.SetValue("FOrderType", "生产订单", Fseq);
                                    this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq);
                                    this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq);
                                    this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["t1_FSeq"].ToString(), Fseq);
                                    this.View.Model.SetValue("FMatrailId", listSelectedRow.DataRow["FMaterialId_Id"].ToString(), Fseq);//2129900005
                                    this.View.Model.SetValue("FFUnit", listSelectedRow.DataRow["FUnitId_Id"].ToString(), Fseq);
                                    this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq);
                                    this.View.Model.SetValue("FProductWorkShopId", listSelectedRow.DataRow["FWorkShopID_Id"].ToString(), Fseq);
                                    this.View.Model.SetValue("FOrderLevel", "3", Fseq);
                                    this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//预计开工日期
                                    //this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq);
                                    Fseq++;
                                }
                                if (ret != "")
                                {
                                    this.View.ShowMessage(ret);
                                }
                            }
                        }
                    });
                }
                else if (FBarItemKey == "tbSelectMenuWW")
                {
                    showParameter.FormId = "SUB_SUBREQORDER";
                    this.View.ShowForm(showParameter, delegate (FormResult result)
                    {
                        object returnData = result.ReturnData;
                        if (returnData is ListSelectedRowCollection)
                        {
                            ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
                            //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString());
                            if (listSelectedRowCollection != null)
                            {
                                var ret = "";
                                foreach (var listSelectedRow in listSelectedRowCollection)
                                {
                                    if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0)
                                    {
                                        //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选");
                                        ret += "委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n";
                                        continue;
                                    }
                                    string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
                                    int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
                                    if (day > 0)
                                    {
                                        //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
                                        ret += "委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n";
                                        continue;
                                    }
                                    //今天以前的数据是显示不出来的
                                    //sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_SUB_REQORDERENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
                                    //day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
                                    //if (day < 0)
                                    //{
                                    //    //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
                                    //    ret += "计划开工日期在今天之前,委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n";
                                    //    continue;
                                    //}
                                    this.Model.CreateNewEntryRow("FEntity");
                                    this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq);
                                    this.View.Model.SetValue("FOrderType", "委外订单", Fseq);
                                    this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq);
                                    this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["t1_FSeq"].ToString(), Fseq);
                                    this.View.Model.SetValue("FMatrailId", listSelectedRow.DataRow["FMaterialId_Id"].ToString(), Fseq);//2129900005
                                    this.View.Model.SetValue("FFUnit", listSelectedRow.DataRow["FUnitId_Id"].ToString(), Fseq);
                                    this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq);
                                    this.View.Model.SetValue("FProductWorkShopId", 0, Fseq);
                                    this.View.Model.SetValue("FOrderLevel", "3", Fseq);
                                    this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//预计开工日期
                                    //this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq);
                                    Fseq++;
                                }
                                if (ret != "")
                                {
                                    this.View.ShowMessage(ret);
                                }
                            }
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                //LogHelper.Error("选单失败:" + ex.Message);
            }
        }
    }
}