王 垚
2020-11-26 a0e7ad65f78935d8b4818f063f6974db567d199d
测试问题项更改
3个文件已修改
322 ■■■■ 已修改文件
src/BLL/Demo.BillView/PRD/ProCompleteAnalysisMateriel.cs 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/BLL/Demo.BillView/PRD/ProCompleteAnalysisMateriel.cs
@@ -1,8 +1,11 @@
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
@@ -18,26 +21,84 @@
    [HotUpdate]
    public class ProCompleteAnalysisMateriel : AbstractDynamicFormPlugIn
    {
        bool did = false;
        public override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            string FHMainICMOInterIDr = this.View.OpenParameter.GetCustomParameter("FHMainICMOInterIDr").ToString();//主生产订单主内码
            //string FBillNo = this.View.OpenParameter.GetCustomParameter("FBillNo").ToString();
            string sql = string.Format(@"/*dialect*/select a.*,b.FBILLNO FBILLNOs from JIT_MOMaterReadysBill a
            if (this.View.OpenParameter.GetCustomParameter("FHMainICMOInterIDr") == null)
            {
                SearchList();
            }
            else
            {
                if (did)
                    return;
                string FHMainICMOInterIDr = this.View.OpenParameter.GetCustomParameter("FHMainICMOInterIDr").ToString();//主生产订单主内码
                                                                                                                        //string FBillNo = this.View.OpenParameter.GetCustomParameter("FBillNo").ToString();
                string sql = string.Format(@"/*dialect*/select a.*,b.FBILLNO FBILLNOs from JIT_MOMaterReadysBill a
                                        left join T_PRD_MO b on a.FHMainICMOInterIDr=b.FID
                                        where FHMainICMOInterIDr ='{0}' ", FHMainICMOInterIDr);
            DataTable dt = DBUtils.ExecuteDataSet(this.Context, sql).Tables[0];
                DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        /*
                        计划发料数量 = 计划总数量 * 单位用料
                        齐套数量 = 齐套数 * 单位用料(考虑分层级* 父级)
                        缺料数量 = 1 - 2
                        是否齐套 = 缺料 < 0 ?
                        */
                        decimal FPlanIssueCount = Convert.ToDecimal(dt.Rows[i]["FSumPlanCount"]) * Convert.ToDecimal(dt.Rows[i]["FUNITDOSAGE"]);//计划发料数量
                        decimal FCompleteCount = Convert.ToDecimal(dt.Rows[i]["FCompleteCount"]) * Convert.ToDecimal(dt.Rows[i]["FUNITDOSAGE"]);//齐套数量
                        decimal FLackCount = FPlanIssueCount - FCompleteCount;//缺料数量
                        this.Model.CreateNewEntryRow("FEntity");
                        this.Model.SetValue("FSEQ", i + 1, i);//序号
                        this.Model.SetValue("FMateralDetailId", dt.Rows[i]["FHMATERID"], i);
                        this.Model.SetValue("FScOrderNoDetail", dt.Rows[i]["FBILLNOs"], i);//生产订单号
                        this.Model.SetValue("FOccupyCount", FCompleteCount, i);//
                        this.Model.SetValue("FCurrentCount", dt.Rows[i]["FHStockQty"], i);//当前库存情况
                    }
                }
                did = true;
            }
        }
        /// <summary>
        /// 查询事件
        /// </summary>
        public void SearchList()
        {
            string sqlwhere = " where 1=1";
            string sql = string.Format(@"/*dialect*/select a.*,b.FBILLNO FBILLNOs from JIT_MOMaterReadysBill a
                                        left join T_PRD_MO b on a.FHMainICMOInterIDr=b.FID
                                         ");
            //生产订单号
            string PRDBillNo = Convert.ToString(this.Model.GetValue("FScOrderNo"));
            if (!string.IsNullOrEmpty(PRDBillNo))
                sqlwhere += $" and FPRDBillNo='{PRDBillNo}'";
            sql += sqlwhere;
            DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
            this.Model.DeleteEntryData("FEntity");
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    /*
                    计划发料数量 = 计划总数量 * 单位用料
                    齐套数量 = 齐套数 * 单位用料(考虑分层级* 父级)
                    缺料数量 = 1 - 2
                    是否齐套 = 缺料 < 0 ?
                    */
                        计划发料数量 = 计划总数量 * 单位用料
                        齐套数量 = 齐套数 * 单位用料(考虑分层级* 父级)
                        缺料数量 = 1 - 2
                        是否齐套 = 缺料 < 0 ?
                        */
                    decimal FPlanIssueCount = Convert.ToDecimal(dt.Rows[i]["FSumPlanCount"]) * Convert.ToDecimal(dt.Rows[i]["FUNITDOSAGE"]);//计划发料数量
                    decimal FCompleteCount = Convert.ToDecimal(dt.Rows[i]["FCompleteCount"]) * Convert.ToDecimal(dt.Rows[i]["FUNITDOSAGE"]);//齐套数量
@@ -50,9 +111,19 @@
                    this.Model.SetValue("FCurrentCount", dt.Rows[i]["FHStockQty"], i);//当前库存情况  
                }
            }
            this.View.UpdateView();
            did = true;
        }
        public override void BarItemClick(BarItemClickEventArgs e)
        {
            base.BarItemClick(e);
            if (e.BarItemKey.ToUpper() == "TBFILTER")
            {
                SearchList();
            }
        }
    }
}
src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
@@ -53,7 +53,7 @@
        //}
        public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
        {
            base.AfterBarItemClick(e);
@@ -111,7 +111,7 @@
                    {
                        //Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
                        //DynamicObjectCollection rows = this.Model.GetEntityDataObject(entity);
                        this.Model.DeleteEntryData("FEntity");
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
@@ -138,30 +138,6 @@
                            {
                                this.Model.SetValue("FT" + "" + j + "", dt.Rows[i][15 + j].ToString(), i);
                            }
                            //entity.SeqDynamicProperty.SetValue(row, i + 1);//序号
                            //row["FSalOrderNo"] = dt.Rows[i][0].ToString();//销售订单号
                            //row["FSCOrderNo"] = dt.Rows[i][1].ToString();//生产订单号
                            //row["FORGID"] = Convert.ToInt32(dt.Rows[i][2].ToString());//生产组织
                            //row["FProductWorkShopId"] = Convert.ToInt32(dt.Rows[i][3].ToString());//生产车间
                            //row["FResourcesId"] = Convert.ToInt32(dt.Rows[i][4].ToString());//生产资源
                            //row["FMatrailId"] = dt.Rows[i][5].ToString(); //产品代码
                            //row["FMatrailName"] = dt.Rows[i][6].ToString(); //产品名称
                            //row["FModel"] = dt.Rows[i][7].ToString(); //规格型号
                            //row["FUnit"] = dt.Rows[i][8].ToString(); //计量单位
                            //row["FBatch"] = dt.Rows[i][9].ToString(); //批次号
                            //row["FSalOrderCount"] = dt.Rows[i][10].ToString(); //销售订单数量
                            //row["FProOrderCount"] = dt.Rows[i][11].ToString(); //生产订单数量
                            //row["FCompleteSetCount"] = dt.Rows[i][12].ToString(); //总齐套数量
                            //row["FDeliveryDate"] = GetDateTime(Convert.ToInt32(dt.Rows[i][13].ToString())); //交货日期
                            //row["FOrderLevel"] = dt.Rows[i][14].ToString(); //订单等级
                            //for (int j = 0; j <= 60; j++)
                            //{
                            //    row["FT" + "" + j + ""] = dt.Rows[i][15 + j].ToString();
                            //}
                            //this.View.GetControl("FSalOrderNo").Text = "入库单号";
                            //this.View.GetControl("FSCOrderNo").Text = "采购入库数量";
                            // rows.Add(row);
                        }
                    }
@@ -175,7 +151,6 @@
                }
            }
            this.View.GetMainBarItem("TBWJSC").Enabled = false; //锁定按钮
        }
@@ -208,6 +183,26 @@
                //单据体信息转换为列表集合
                DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
                string _result = "";
                foreach (DynamicObject current in entityDataObjoct)
                {
                    //根据生产订单号和物料查询是否存在明细
                    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}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]));
                    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"]) + "对应的物料" + (current["FMatrailId"] as DynamicObject)["Number"] + "不存在";
                }
                if (_result != "")
                {
                    this.View.ShowErrMessage(_result);
                    return;
                }
                foreach (DynamicObject current in entityDataObjoct)
                {
                    if (string.IsNullOrEmpty(Convert.ToString(current["FSalOrderNo"])) || string.IsNullOrEmpty(Convert.ToString(current["FSCOrderNo"])))
@@ -216,9 +211,11 @@
                    //根据生产订单号和物料查询是否存在明细
                    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}'  ", Convert.ToString(current["FSCOrderNo"]));
                                WHERE T1.FBILLNO = '{0}'  AND T2.FMATERIALID = '{1}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]));
                    DataTable dt = new DataTable();
                    dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                    if (dt.Rows.Count == 0)
                        continue;
                    string FID = "";//FID 源单主内码
                    string FENTRYID = "";//FENTRYID 源单子内码
@@ -239,7 +236,7 @@
                    jsonRoot.Add("Creator", "");
                    jsonRoot.Add("NeedUpDateFields", new JArray());
                    jsonRoot.Add("NeedReturnFields", new JArray());
                    jsonRoot.Add("IsDeleteEntry", "true");
                    jsonRoot.Add("IsDeleteEntry", "false");
                    jsonRoot.Add("SubSystemId", "");
                    jsonRoot.Add("IsVerifyBaseDataField", "");
@@ -250,7 +247,7 @@
                    jsonModel.Add("FHOrderLev", current["FOrderLevel"].ToString());//订单等级
                    jsonModel.Add("FSalOrderCount", current["FOrderLevel"].ToString());//销售订单数量
                    jsonModel.Add("FHOrderCommitDate", current["FDeliveryDate"].ToString());//交货期HOrderCommitDate
                    //jsonModel.Add("FBatch", current["FBatch"].ToString());//批次
                                                                                            //jsonModel.Add("FBatch", current["FBatch"].ToString());//批次
                    jsonModel.Add("FBatch", FLOT);//批次
                    jsonModel.Add("FHOrderNeedQty", FQTY);// 订单需求数量
                    jsonModel.Add("FPrdBillNo", FBILLNO); ;//源单编号
@@ -262,18 +259,26 @@
                    jsonFHMaterID.Add("FNumber", (current["FMatrailId"] as DynamicObject)["Number"].ToString());
                    jsonModel.Add("FHMaterID", jsonFHMaterID);//FHMaterID 物料
                    JObject jsonFHPRDORGID = new JObject();
                    jsonFHPRDORGID.Add("FNumber", (current["FORGID"] as DynamicObject)["Number"].ToString());
                    jsonModel.Add("FHPRDORGID", jsonFHPRDORGID);//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 生产组织
                    //JObject jsonFProductWorkShopId = new JObject();
                    //jsonFProductWorkShopId.Add("FNumber", (current["FProductWorkShopId"] as DynamicObject)["Number"].ToString());
                    //jsonModel.Add("FHWorkShopID", jsonFProductWorkShopId);//FHMaterID 生产车间
                    }
                    if (Convert.ToString(current["FProductWorkShopId_Id"]) != "0")
                    {
                        JObject jsonFProductWorkShopId = new JObject();
                        jsonFProductWorkShopId.Add("FNumber", (current["FProductWorkShopId"] as DynamicObject)["Number"].ToString());
                        jsonModel.Add("FHSourceID", jsonFProductWorkShopId);//FHSourceID  生产车间
                    }
                    //JObject jsonFResourcesId = new JObject();
                    //jsonFHMaterID.Add("FNumber", (current["FResourcesId"] as DynamicObject)["Number"].ToString());
                    //jsonModel.Add("FHSourceID", jsonFResourcesId);//FHMaterID 生产资源
                    if (Convert.ToString(current["FResourcesId_Id"]) != "0")
                    {
                        JObject jsonFResourcesId = new JObject();
                        jsonFResourcesId.Add("FNumber", (current["FResourcesId"] as DynamicObject)["Number"].ToString());
                        jsonModel.Add("FHWorkShopID", jsonFResourcesId);//FHWorkShopID  生产资源
                    }
                    JArray Entry = new JArray();
                    for (int i = 0; i <= 60; i++)
                    {
@@ -282,34 +287,73 @@
                        jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//主日期
                        jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//日计划数量
                        jsonFPOOrderEntry.Add("FColumn", "FT" + "" + i + ""); ;//对应的列头
                        //jsonFPOOrderEntry.Add("FHMainSourceBillType ", "生产订单"); ;//源单类型
                        //jsonFPOOrderEntry.Add("FHMainSourceBillNo", FBILLNO); ;//源单编号
                        //jsonFPOOrderEntry.Add("FHMainSourceInterID", FID); ;//源单主内码
                        //jsonFPOOrderEntry.Add("FHMainSourceEntryID", FENTRYID); ;//源单子内码
                                                                               //jsonFPOOrderEntry.Add("FHMainSourceBillType ", "生产订单"); ;//源单类型
                                                                               //jsonFPOOrderEntry.Add("FHMainSourceBillNo", FBILLNO); ;//源单编号
                                                                               //jsonFPOOrderEntry.Add("FHMainSourceInterID", FID); ;//源单主内码
                                                                               //jsonFPOOrderEntry.Add("FHMainSourceEntryID", 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")
                    //日计划工单不为空时update
                    if (Convert.ToString(current["FDayPlanID"]) != "0")
                    {
                        this.View.ShowMessage("导入成功");
                        jsonModel.Add("FID", Convert.ToString(current["FDayPlanID"])); ;//源单编号
                        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")
                        {
                            string FDayPlanBillNo = saveObj["Result"]["ResponseStatus"]["SuccessEntitys"]["Number"].ToString();
                            string FDayPlanID = saveObj["Result"]["ResponseStatus"]["SuccessEntitys"]["Id"].ToString();
                            //this.Model.SetValue("FDayPlanBillNo", FDayPlanBillNo, Convert.ToString(current["SEQ"]));//
                            // this.Model.SetValue("FDayPlanID", FDayPlanID, Convert.ToString(current["SEQ"]));//
                            this.View.ShowMessage("导入成功");
                        }
                        else
                        {
                            this.View.ShowErrMessage("导入失败");
                        }
                    }
                    else
                    {
                        this.View.ShowErrMessage("导入失败");
                        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")
                        {
                            string FDayPlanBillNo = saveObj["Result"]["Number"].ToString();
                            string FDayPlanID = saveObj["Result"]["Id"].ToString();
                            //this.Model.SetValue("FDayPlanBillNo", FDayPlanBillNo, Convert.ToString(current["SEQ"]));//
                            // this.Model.SetValue("FDayPlanID", FDayPlanID, Convert.ToString(current["SEQ"]));//
                            this.View.ShowMessage("导入成功");
                        }
                        else
                        {
                            this.View.ShowErrMessage("导入失败");
                        }
                    }
                }
            }
            catch (Exception ex)
src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
@@ -262,9 +262,21 @@
            else
                sqlwhere += $" and FHSeOrderBillNo='{FSalOrder}'";
            string sql = $"/*dialect*/update t1 set t1.FHLockedSub=1 from Sc_WorkBillSortBillSub t1  join Sc_WorkBillSortBillMain t2 on  t1.FID = t2.FID  where  FHMASTERDATE between  DATEADD(day,-1,getdate()) and DATEADD(day,{day - 1},getdate())   " + sqlwhere;
            //获取单据体信息
            Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
            //单据体信息转换为列表集合
            DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
            List<string> sqlList = new List<string>();
            string sql;
            foreach (var item in entityDataObjoct)
            {
            int result = DBUtils.Execute(Context, sql);
                sql = $"/*dialect*/update Sc_WorkBillSortBillSub set FHLockedSub=1    where FEntryID in  (select TOP({day}) FEntryID from Sc_WorkBillSortBillSub where FHLOCKEDSUB = 0 AND FID = { Convert.ToString(item["FDayPlanWorkID"])} AND DATEDIFF(DAY, GETDATE(), FHMASTERDATE) >= 0 ORDER BY FEntryID)  ";
                sqlList.Add(sql);
            }
            int result = DBServiceHelper.ExecuteBatch(Context, sqlList);
            if (result > 0)
            {
                SearchList222();
@@ -272,7 +284,6 @@
            }
            else
                this.View.ShowMessage("操作失败,联系管理员!");
        }
        /// <summary>
        /// 保存功能
@@ -287,11 +298,17 @@
            //单据体信息转换为列表集合
            DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
            DateTime date = DateTime.Now;
            foreach (DynamicObject current in entityDataObjoct)
            {
                DateTime FBzDate = Convert.ToDateTime(Convert.ToDateTime(current["FBzDate"]));
                DateTime end = Convert.ToDateTime(Convert.ToDateTime(current["FBzDate"]).AddDays(60).ToShortDateString());//最大日期
                for (int i = 0; i <= 60; i++)
                {
                    DateTime start = Convert.ToDateTime(date.AddDays(i).ToShortDateString());
                    TimeSpan getDay = end.Subtract(start);
                    //编制日期+61天>date.AddDays(i).ToShortDateString() continue
                    if (getDay.Days < 0)
                        break;
                    sql = $"/*dialect*/update t1 set FHQTY='{Convert.ToString(current["FT" + "" + i + ""])}' from Sc_WorkBillSortBillSub t1 join " +
                        $" Sc_WorkBillSortBillMain t2 on  t1.FID = t2.FID where FHMASTERDATE='{date.AddDays(i).ToShortDateString()}' and t2.FID='{Convert.ToString(current["FDayPlanWorkID"])}'";
                    sqlList.Add(sql);
@@ -571,6 +588,16 @@
            else
                sqlwhere += $" and FHSeOrderBillNo='{FSalOrder}'";
            //生产订单号
            string FScOrderMainNo = Convert.ToString((this.Model.GetValue("FScOrderMainNo")));
            if (string.IsNullOrEmpty(FScOrderMainNo))
            {
            }
            else
                sqlwhere += $" and FSCORDERNO='{FScOrderMainNo}'";
            //物料
            if ((this.Model.GetValue("FMatralId") as DynamicObject) != null)
            {
@@ -612,6 +639,10 @@
                    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("FProductWorkShopId", dt.Rows[i]["FHSourceID"].ToString(), i);//生产车间
                    this.Model.SetValue("FResourcesId", dt.Rows[i]["FHWorkShopID"].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];
@@ -870,6 +901,41 @@
            DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
            List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>();
            sql = @"select T1.FID,FPLANCOUNT,FCOMPLETECOUNT,t2.FHQTY from    SC_WORKBILLSORTBILLMAIN T1
JOIN SC_WORKBILLSORTBILLSUB T2 ON T1.FID=T2.FID WHERE  DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0 AND FPLANCOUNT>FCOMPLETECOUNT AND T1.FID in (" + FDayPlanWorkID + ")";
            DataSet Complete = DBServiceHelper.ExecuteDataSet(Context, sql);
            List<DayPlanPpbom> CompleteList = ds.ToModelList<DayPlanPpbom>();
            //FID集合
            var FIDList = CompleteList.Select(x => x.FID).Distinct().ToList();
            foreach (var item in FIDList)
            {
                var _CompleteList = CompleteList.Where(p => p.FID == item).ToList();
                decimal FComplete = _CompleteList.FirstOrDefault().FCOMPLETECOUNT;
                if (FComplete == 0)
                    continue;
                foreach (var _item in _CompleteList)
                {
                    FComplete = FComplete - _item.FHQTY;
                    if (FComplete >= 0)
                    {
                        DayPlanPpbom.RemoveAll(p => p.FENTRYID == _item.FENTRYID);
                    }
                    else
                    {
                        DayPlanPpbom.FindAll(p => p.FENTRYID == _item.FENTRYID).ForEach(x =>
                        {
                            x.NeedQty = -(x.FNeedQty * FComplete);
                        });
                        break;
                    }
                }
            }
            //物料集合 由物料去分组
            List<string> MaterialIDList = DayPlanPpbom.Select(x => x.FMATERIALID).Distinct().ToList();
            //提料计划数据集临时存储集合
@@ -1023,6 +1089,7 @@
                        {
                            if (Purchase.FQTY >= NeedQty)
                            {
                                List<int> mmm = new List<int>();
                                foreach (int id in FEntryIdList)
                                {
@@ -1117,7 +1184,7 @@
                                {
                                    FEntryIdList.Remove(mm);
                                }
                            }
                        }
                        NeedQty = 0;