From 3b819605e47e354eeafc696ea3bcb837b8eb063f Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期日, 28 二月 2021 13:59:37 +0800
Subject: [PATCH] 2.28 客户现场调整后上传

---
 src/BLL/Demo.BillView/Demo.BillView.csproj                       |    2 
 src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAudit.cs        |  237 +++++++++++++++++++++
 src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs                     |   31 +-
 src/Model/Demo.Model/Model/PODemandPlan/DayPlanPpbom.cs          |    8 
 src/Model/Demo.Model/Model/PODemandPlan/PODemandPlanTemp.cs      |    5 
 src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs |  237 +++++++++++++++++++++
 src/Model/Demo.Model/Model/DayPlanMaterial.cs                    |   45 ++++
 src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs                |   60 ++++-
 8 files changed, 599 insertions(+), 26 deletions(-)

diff --git a/src/BLL/Demo.BillView/Demo.BillView.csproj b/src/BLL/Demo.BillView/Demo.BillView.csproj
index a549c47..63cd121 100644
--- a/src/BLL/Demo.BillView/Demo.BillView.csproj
+++ b/src/BLL/Demo.BillView/Demo.BillView.csproj
@@ -209,6 +209,8 @@
     <Compile Include="PRD\ProTardinessDetails.cs" />
     <Compile Include="PRD\ProCompleteAnalysisMateriel.cs" />
     <Compile Include="PRD\ProCompleteAnalysisDetails.cs" />
+    <Compile Include="PRD\Pro_MaterialRequisitionAuditDayPlan.cs" />
+    <Compile Include="PRD\Pro_MaterialRequisitionAudit.cs" />
     <Compile Include="PRD\Pro_ScDayImport.cs" />
     <Compile Include="PRD\Pro_TlPlanConfigure.cs" />
     <Compile Include="PRD\Pro_WorkBillPlatform.cs" />
diff --git a/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAudit.cs b/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAudit.cs
new file mode 100644
index 0000000..16bf897
--- /dev/null
+++ b/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAudit.cs
@@ -0,0 +1,237 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.Contracts;
+using Kingdee.BOS.App;
+using Kingdee.BOS.Core.Metadata.FieldElement;
+using System.ComponentModel;
+using Kingdee.BOS.ServiceHelper;
+
+namespace Demo.DynamicForm.PRD
+{
+    /// <summary>
+    /// 鎻掍欢绀轰緥锛氬紩鍏ラ攢鍞嚭搴撳崟锛屽缓绔嬩笌閿�鍞鍗曠殑鍏宠仈
+    /// </summary>
+    /// <remarks>
+    /// 瑕佹眰锛�
+    /// 1. 闇�瑕佸紩鍏ュ崟鎹綋鐨勬簮鍗曠被鍨嬨�佹簮鍗曠紪鍙峰瓧娈�
+    /// 2. 鏈彃浠舵寕鍦ㄩ攢鍞嚭搴撳崟鐨勪繚瀛樻搷浣滀笂
+    /// 鍑哄簱鍏宠仈閿�鍞鍗�
+    /// </remarks>
+    [Description("寮曞叆鐢熶骇棰嗘枡鍗曪紝寤虹珛涓庣敓浜ц鍗曠殑鍏宠仈")]
+    [HotUpdate]
+    public class Pro_MaterialRequisitionAudit : AbstractOperationServicePlugIn
+    {
+        public override void OnPreparePropertys(PreparePropertysEventArgs e)
+        {
+            base.OnPreparePropertys(e);
+            e.FieldKeys.Add("FSrcBillType");
+            e.FieldKeys.Add("FSrcBillNo");
+            e.FieldKeys.Add("FID");
+            e.FieldKeys.Add("FTreeEntity_FEntryID");
+            e.FieldKeys.Add("FBillNo");
+            e.FieldKeys.Add("FBFLowId");
+            e.FieldKeys.Add("FMaterialId");
+            e.FieldKeys.Add("FBaseUnitQty");
+            e.FieldKeys.Add("FBaseJoinQty");
+        }
+        private const string POFormId = "PRD_PPBOM";
+        public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
+        {
+            base.BeforeExecuteOperationTransaction(e);
+            HashSet<string> poBillNos = new HashSet<string>();
+            Entity entity = this.BusinessInfo.GetEntity("FEntity");//鑾峰彇鏄庣粏淇℃伅
+            Entity linkEntry = this.BusinessInfo.GetEntity("FEntity_Link");
+            Field fldSrcFormId = this.BusinessInfo.GetField("FSrcBillType");
+            Field fldSrcBillNo = this.BusinessInfo.GetField("FSrcBillNo");
+            // 瀵瑰崟鎹綋杩涜寰幆锛屽彇鍏宠仈鐨勬簮鍗曠紪鍙�
+            foreach (var billObj in e.SelectedRows)
+            {
+                DynamicObjectCollection entryRows = entity.DynamicProperty.GetValue(billObj.DataEntity)
+                            as DynamicObjectCollection;
+                foreach (var entryRow in entryRows)
+                {
+                    string srcFormId = "";
+                    string srcSrcBillNo = "";
+                    try
+                    {
+                        srcFormId = "PRD_PPBOM";
+                        srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow);
+                        srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PRD_PICKMTRLDATA where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo);
+
+                    }
+                    catch (Exception)
+                    {
+                    }
+                    if (string.IsNullOrWhiteSpace(srcFormId)
+                        || string.IsNullOrWhiteSpace(srcSrcBillNo)
+                        )
+                    {// 婧愬崟涓嶆槸閲囪喘璁㈠崟锛岀暐杩�
+                        continue;
+                    }
+                    // 婧愬崟缂栧彿宸茬粡鐧昏锛屼笉鍐嶉噸澶嶈褰曪紝鐣ヨ繃
+                    if (poBillNos.Contains(srcSrcBillNo)) continue;
+                    // Link宸茬粡璁板綍浜嗘簮鍗曚俊鎭紝鐣ヨ繃
+                    //DynamicObjectCollection linkRows = linkEntry.DynamicProperty.GetValue(entryRow)
+                    //        as DynamicObjectCollection;
+                    //if (linkRows.Count > 0) continue;
+                    bool Ret = SourceVerification(Convert.ToString(entryRow["Id"]));
+                    if (!Ret) continue;
+
+                    poBillNos.Add(srcSrcBillNo);
+                }
+            }
+            if (poBillNos.Count == 0) return;
+            DynamicObject[] poObjs = this.LoadPurchaseOrder(poBillNos);
+            if (poObjs == null || poObjs.Length == 0) return;
+            Dictionary<string, Dictionary<string, DynamicObject>> dctAllBills = this.BuildDictionary(poObjs);
+            string srcTableNumber = this.GetPOEntryTableNumber();
+            List<DynamicObject> allNewLinkRows = new List<DynamicObject>();
+            // 寰幆鍗曟嵁浣擄紝涓哄崟鎹綋锛屽缓绔嬭捣婧愬崟鍏宠仈淇℃伅锛�
+            foreach (var billObj in e.SelectedRows)
+            {
+                DynamicObjectCollection entryRows = entity.DynamicProperty.GetValue(billObj.DataEntity)
+                            as DynamicObjectCollection;
+                foreach (var entryRow in entryRows)
+                {
+                    string srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow);
+                    string srcFormId = "PRD_PPBOM";
+                    srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PRD_PICKMTRLDATA where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo);
+
+
+                    if (string.IsNullOrWhiteSpace(srcFormId)
+                        || string.IsNullOrWhiteSpace(srcSrcBillNo)
+                      )
+                    {// 婧愬崟涓嶆槸閿�鍞鍗曪紝鐣ヨ繃
+                        continue;
+                    }
+                    Dictionary<string, DynamicObject> dctOneBill = null;
+                    if (dctAllBills.TryGetValue(srcSrcBillNo, out dctOneBill) == false) continue;
+                    DynamicObject materialObj = entryRow["MaterialId"] as DynamicObject;
+                    if (materialObj == null) continue;
+                    string materialNumber = Convert.ToString(materialObj["number"]);
+                    DynamicObject srcRow = null;
+                    if (dctOneBill.TryGetValue(materialNumber, out srcRow) == false) continue;
+                    // Link宸茬粡璁板綍浜嗘簮鍗曚俊鎭紝鐣ヨ繃
+                    bool Ret = SourceVerification(Convert.ToString(entryRow["Id"]));
+                    if (!Ret) continue;
+
+                    DynamicObjectCollection linkRows = linkEntry.DynamicProperty.GetValue(entryRow)
+                            as DynamicObjectCollection;
+                    linkRows.Clear();
+                    DynamicObject linkRow = new DynamicObject(linkEntry.DynamicObjectType);
+                    linkRow["STableName"] = srcTableNumber;
+                    this.FillLinkRow(srcRow, entryRow, linkRow);
+                    linkRows.Add(linkRow);
+                    allNewLinkRows.Add(linkRow);
+                }
+            }
+            // 涓烘柊寤虹殑婧愬崟鍏宠仈淇℃伅锛岃缃唴鐮�
+            IDBService dbService = ServiceHelper.GetService<IDBService>();
+            dbService.AutoSetPrimaryKey(this.Context, allNewLinkRows.ToArray(), linkEntry.DynamicObjectType);
+        }
+
+        /// <summary>
+        /// 鍔犺浇鐩稿叧鐨勯攢鍞鍗曟暟鎹�
+        /// </summary>
+        /// <param name="poBillNos"></param>
+        /// <returns></returns>
+        private DynamicObject[] LoadPurchaseOrder(HashSet<string> poBillNos)
+        {
+            IViewService viewService = ServiceHelper.GetService<IViewService>();
+            string formId = "PRD_PPBOM";
+
+            // 鎸囧畾闇�瑕佸姞杞界殑閿�鍞鍗曞瓧娈�
+            List<SelectorItemInfo> fields = new List<SelectorItemInfo>();
+            fields.Add(new SelectorItemInfo("FID"));        // 鍗曟嵁涓婚敭
+            fields.Add(new SelectorItemInfo("FTreeEntity_FEntryID"));     // 鍗曟嵁浣撲富閿�
+            fields.Add(new SelectorItemInfo("FBillNo"));    // 鍗曟嵁缂栧彿
+            fields.Add(new SelectorItemInfo("FBFLowId"));    // 涓氬姟娴佺▼
+            fields.Add(new SelectorItemInfo("FMaterialId"));    // 鐗╂枡
+            fields.Add(new SelectorItemInfo("FMaterialID2"));    // 鐗╂枡
+            fields.Add(new SelectorItemInfo("FBASENEEDQTY"));           // 鍩烘湰鍗曚綅鏁伴噺
+            fields.Add(new SelectorItemInfo("FBASEPICKEDQTY"));           // 鍩烘湰鍗曚綅鍏宠仈鏁伴噺
+            fields.Add(new SelectorItemInfo("FBFLOWID"));           //  
+
+            // 鎸囧畾杩囨护鏉′欢
+            string filter = string.Format(" FBillNo IN ('{0}') ", string.Join("','", poBillNos));
+            OQLFilter ofilter = OQLFilter.CreateHeadEntityFilter(filter);
+            var objs = viewService.Load(this.Context, formId, fields, ofilter);
+            return objs;
+        }
+        /// <summary>
+        /// 鎶婇攢鍞鍗曞崟鎹綋琛屾瀯寤轰负瀛楀吀锛欴ictionary(鍗曟嵁缂栧彿, Dictionary(鐗╂枡缂栫爜, 婧愬崟琛�));
+        /// </summary>
+        /// <param name="poObjs"></param>
+        /// <returns></returns>
+        private Dictionary<string, Dictionary<string, DynamicObject>> BuildDictionary(DynamicObject[] poObjs)
+        {
+            Dictionary<string, Dictionary<string, DynamicObject>> dctAllBills =
+                new Dictionary<string, Dictionary<string, DynamicObject>>();
+            foreach (var poObj in poObjs)
+            {
+                string billNo = Convert.ToString(poObj["BillNo"]);
+                Dictionary<string, DynamicObject> dctOneBill = new Dictionary<string, DynamicObject>();
+                DynamicObjectCollection entryRows = poObj["PPBomEntry"] as DynamicObjectCollection;
+                foreach (var entryRow in entryRows)
+                {
+                    DynamicObject materialObj = entryRow["MaterialId"] as DynamicObject;
+                    if (materialObj == null) continue;
+                    string materialNumber = Convert.ToString(materialObj["number"]);
+                    dctOneBill[materialNumber] = entryRow;
+                }
+                dctAllBills.Add(billNo, dctOneBill);
+            }
+            return dctAllBills;
+        }
+        /// <summary>
+        /// 鑾峰彇閿�鍞鍗曞叧鑱斾富瀹炰綋琛ㄦ牸缂栫爜
+        /// </summary>
+        /// <returns></returns>
+        private string GetPOEntryTableNumber()
+        {
+            IBusinessFlowService bfMetaService = ServiceHelper.GetService<IBusinessFlowService>();
+            var tableDefine = bfMetaService.LoadTableDefine(this.Context, POFormId, "FEntity");
+            return tableDefine.TableNumber;
+        }
+        /// <summary>
+        /// 濉啓婧愬崟淇℃伅
+        /// </summary>
+        /// <param name="srcRow">婧愬崟琛�</param>
+        /// <param name="toRow">鐩爣鍗曡</param>
+        /// <param name="linkRow">鍏宠仈琛�</param>
+        private void FillLinkRow(DynamicObject srcRow, DynamicObject toRow, DynamicObject linkRow)
+        {
+            linkRow["FlowId"] = srcRow["BFLowId_Id"];
+            linkRow["FlowLineId"] = 0;
+            linkRow["RuleId"] = "PRD_PPBOM2PICKMTRL_NORMAL";
+            linkRow["SBillId"] = ((DynamicObject)srcRow.Parent)[0];
+            linkRow["SId"] = srcRow[0];
+            // 鍘熷鎼哄甫閲�
+            decimal baseUnitQty = Convert.ToDecimal(srcRow["BaseNeedQty"]);//鐢ㄦ枡娓呭崟鍗曚綅鏁伴噺
+            decimal joinUnitQty = Convert.ToDecimal(srcRow["BasePickedQty"]);//鐢ㄦ枡娓呭崟鍗曚綅棰嗘枡鏁伴噺
+            linkRow["BaseActualQtyOld"] = baseUnitQty - joinUnitQty;
+            linkRow["BaseActualQty"] = toRow["BASEACTUALQTY"]; //鍩烘湰鍗曚綅瀹炲彂鏁伴噺
+        }
+
+        /// <summary>
+        /// 楠岃瘉鏄惁鐢熸垚杩囩敓浜х敤鏂欐竻鍗曞搴旂殑婧愬崟
+        /// </summary>
+        /// <returns></returns>
+        public bool SourceVerification(string FTID)
+        {
+            string sql = $" select count(*) from T_BF_INSTANCEENTRY where FSTABLENAME= 'T_PRD_PPBOMENTRY' and FTID = '{FTID}'";
+            int count = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
+            if (count == 0)
+                return true;
+            else
+                return false;
+        }
+
+    }
+}
diff --git a/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs b/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs
new file mode 100644
index 0000000..2427709
--- /dev/null
+++ b/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs
@@ -0,0 +1,237 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.Contracts;
+using Kingdee.BOS.App;
+using Kingdee.BOS.Core.Metadata.FieldElement;
+using System.ComponentModel;
+using Kingdee.BOS.ServiceHelper;
+
+namespace Demo.DynamicForm.PRD
+{
+    /// <summary>
+    /// 鎻掍欢绀轰緥锛氬紩鍏ラ攢鍞嚭搴撳崟锛屽缓绔嬩笌閿�鍞鍗曠殑鍏宠仈
+    /// </summary>
+    /// <remarks>
+    /// 瑕佹眰锛�
+    /// 1. 闇�瑕佸紩鍏ュ崟鎹綋鐨勬簮鍗曠被鍨嬨�佹簮鍗曠紪鍙峰瓧娈�
+    /// 2. 鏈彃浠舵寕鍦ㄩ攢鍞嚭搴撳崟鐨勪繚瀛樻搷浣滀笂
+    /// 鍑哄簱鍏宠仈閿�鍞鍗�
+    /// </remarks>
+    [Description("寮曞叆鐢熶骇棰嗘枡鍗曪紝寤虹珛涓庣敓浜ц鍗曠殑鍏宠仈,鏃ヨ鍒掔敤鏂欐竻鍗�")]
+    [HotUpdate]
+    public class Pro_MaterialRequisitionAuditDayPlan : AbstractOperationServicePlugIn
+    {
+        public override void OnPreparePropertys(PreparePropertysEventArgs e)
+        {
+            base.OnPreparePropertys(e);
+            e.FieldKeys.Add("FSrcBillType");
+            e.FieldKeys.Add("FSrcBillNo");
+            e.FieldKeys.Add("FID");
+            e.FieldKeys.Add("FTreeEntity_FEntryID");
+            e.FieldKeys.Add("FBillNo");
+            e.FieldKeys.Add("FBFLowId");
+            e.FieldKeys.Add("FMaterialId");
+            e.FieldKeys.Add("FBaseUnitQty");
+            e.FieldKeys.Add("FBaseJoinQty");
+        }
+        private const string POFormId = "PRD_PPBOM";
+        public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
+        {
+            base.BeforeExecuteOperationTransaction(e);
+            HashSet<string> poBillNos = new HashSet<string>();
+            Entity entity = this.BusinessInfo.GetEntity("FEntity");//鑾峰彇鏄庣粏淇℃伅
+            Entity linkEntry = this.BusinessInfo.GetEntity("FEntity_Link");
+            Field fldSrcFormId = this.BusinessInfo.GetField("FSrcBillType");
+            Field fldSrcBillNo = this.BusinessInfo.GetField("FSrcBillNo");
+            // 瀵瑰崟鎹綋杩涜寰幆锛屽彇鍏宠仈鐨勬簮鍗曠紪鍙�
+            foreach (var billObj in e.SelectedRows)
+            {
+                DynamicObjectCollection entryRows = entity.DynamicProperty.GetValue(billObj.DataEntity)
+                            as DynamicObjectCollection;
+                foreach (var entryRow in entryRows)
+                {
+                    string srcFormId = "";
+                    string srcSrcBillNo = "";
+                    try
+                    {
+                        srcFormId = "PRD_PPBOM";
+                        srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow);
+                        srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PRD_PICKMTRLDATA where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo);
+
+                    }
+                    catch (Exception)
+                    {
+                    }
+                    if (string.IsNullOrWhiteSpace(srcFormId)
+                        || string.IsNullOrWhiteSpace(srcSrcBillNo)
+                        )
+                    {// 婧愬崟涓嶆槸閲囪喘璁㈠崟锛岀暐杩�
+                        continue;
+                    }
+                    // 婧愬崟缂栧彿宸茬粡鐧昏锛屼笉鍐嶉噸澶嶈褰曪紝鐣ヨ繃
+                    if (poBillNos.Contains(srcSrcBillNo)) continue;
+                    // Link宸茬粡璁板綍浜嗘簮鍗曚俊鎭紝鐣ヨ繃
+                    //DynamicObjectCollection linkRows = linkEntry.DynamicProperty.GetValue(entryRow)
+                    //        as DynamicObjectCollection;
+                    //if (linkRows.Count > 0) continue;
+                    bool Ret = SourceVerification(Convert.ToString(entryRow["Id"]));
+                    if (!Ret) continue;
+
+                    poBillNos.Add(srcSrcBillNo);
+                }
+            }
+            if (poBillNos.Count == 0) return;
+            DynamicObject[] poObjs = this.LoadPurchaseOrder(poBillNos);
+            if (poObjs == null || poObjs.Length == 0) return;
+            Dictionary<string, Dictionary<string, DynamicObject>> dctAllBills = this.BuildDictionary(poObjs);
+            string srcTableNumber = this.GetPOEntryTableNumber();
+            List<DynamicObject> allNewLinkRows = new List<DynamicObject>();
+            // 寰幆鍗曟嵁浣擄紝涓哄崟鎹綋锛屽缓绔嬭捣婧愬崟鍏宠仈淇℃伅锛�
+            foreach (var billObj in e.SelectedRows)
+            {
+                DynamicObjectCollection entryRows = entity.DynamicProperty.GetValue(billObj.DataEntity)
+                            as DynamicObjectCollection;
+                foreach (var entryRow in entryRows)
+                {
+                    string srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow);
+                    string srcFormId = "PRD_PPBOM";
+                    srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PRD_PICKMTRLDATA where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo);
+
+
+                    if (string.IsNullOrWhiteSpace(srcFormId)
+                        || string.IsNullOrWhiteSpace(srcSrcBillNo)
+                      )
+                    {// 婧愬崟涓嶆槸閿�鍞鍗曪紝鐣ヨ繃
+                        continue;
+                    }
+                    Dictionary<string, DynamicObject> dctOneBill = null;
+                    if (dctAllBills.TryGetValue(srcSrcBillNo, out dctOneBill) == false) continue;
+                    DynamicObject materialObj = entryRow["MaterialId"] as DynamicObject;
+                    if (materialObj == null) continue;
+                    string materialNumber = Convert.ToString(materialObj["number"]);
+                    DynamicObject srcRow = null;
+                    if (dctOneBill.TryGetValue(materialNumber, out srcRow) == false) continue;
+                    // Link宸茬粡璁板綍浜嗘簮鍗曚俊鎭紝鐣ヨ繃
+                    bool Ret = SourceVerification(Convert.ToString(entryRow["Id"]));
+                    if (!Ret) continue;
+
+                    DynamicObjectCollection linkRows = linkEntry.DynamicProperty.GetValue(entryRow)
+                            as DynamicObjectCollection;
+                    linkRows.Clear();
+                    DynamicObject linkRow = new DynamicObject(linkEntry.DynamicObjectType);
+                    linkRow["STableName"] = srcTableNumber;
+                    this.FillLinkRow(srcRow, entryRow, linkRow);
+                    linkRows.Add(linkRow);
+                    allNewLinkRows.Add(linkRow);
+                }
+            }   
+            // 涓烘柊寤虹殑婧愬崟鍏宠仈淇℃伅锛岃缃唴鐮�
+            IDBService dbService = ServiceHelper.GetService<IDBService>();
+            dbService.AutoSetPrimaryKey(this.Context, allNewLinkRows.ToArray(), linkEntry.DynamicObjectType);
+        }
+
+        /// <summary>
+        /// 鍔犺浇鐩稿叧鐨勯攢鍞鍗曟暟鎹�
+        /// </summary>
+        /// <param name="poBillNos"></param>
+        /// <returns></returns>
+        private DynamicObject[] LoadPurchaseOrder(HashSet<string> poBillNos)
+        {
+            IViewService viewService = ServiceHelper.GetService<IViewService>();
+            string formId = "PRD_PPBOM";
+
+            // 鎸囧畾闇�瑕佸姞杞界殑閿�鍞鍗曞瓧娈�
+            List<SelectorItemInfo> fields = new List<SelectorItemInfo>();
+            fields.Add(new SelectorItemInfo("FID"));        // 鍗曟嵁涓婚敭
+            fields.Add(new SelectorItemInfo("FTreeEntity_FEntryID"));     // 鍗曟嵁浣撲富閿�
+            fields.Add(new SelectorItemInfo("FBillNo"));    // 鍗曟嵁缂栧彿
+            fields.Add(new SelectorItemInfo("FBFLowId"));    // 涓氬姟娴佺▼
+            fields.Add(new SelectorItemInfo("FMaterialId"));    // 鐗╂枡
+            fields.Add(new SelectorItemInfo("FMaterialID2"));    // 鐗╂枡
+            fields.Add(new SelectorItemInfo("FBASENEEDQTY"));           // 鍩烘湰鍗曚綅鏁伴噺
+            fields.Add(new SelectorItemInfo("FBASEPICKEDQTY"));           // 鍩烘湰鍗曚綅鍏宠仈鏁伴噺
+            fields.Add(new SelectorItemInfo("FBFLOWID"));           //  
+
+            // 鎸囧畾杩囨护鏉′欢
+            string filter = string.Format(" FBillNo IN ('{0}') ", string.Join("','", poBillNos));
+            OQLFilter ofilter = OQLFilter.CreateHeadEntityFilter(filter);
+            var objs = viewService.Load(this.Context, formId, fields, ofilter);
+            return objs;
+        }
+        /// <summary>
+        /// 鎶婇攢鍞鍗曞崟鎹綋琛屾瀯寤轰负瀛楀吀锛欴ictionary(鍗曟嵁缂栧彿, Dictionary(鐗╂枡缂栫爜, 婧愬崟琛�));
+        /// </summary>
+        /// <param name="poObjs"></param>
+        /// <returns></returns>
+        private Dictionary<string, Dictionary<string, DynamicObject>> BuildDictionary(DynamicObject[] poObjs)
+        {
+            Dictionary<string, Dictionary<string, DynamicObject>> dctAllBills =
+                new Dictionary<string, Dictionary<string, DynamicObject>>();
+            foreach (var poObj in poObjs)
+            {
+                string billNo = Convert.ToString(poObj["BillNo"]);
+                Dictionary<string, DynamicObject> dctOneBill = new Dictionary<string, DynamicObject>();
+                DynamicObjectCollection entryRows = poObj["PPBomEntry"] as DynamicObjectCollection;
+                foreach (var entryRow in entryRows)
+                {
+                    DynamicObject materialObj = entryRow["MaterialId"] as DynamicObject;
+                    if (materialObj == null) continue;
+                    string materialNumber = Convert.ToString(materialObj["number"]);
+                    dctOneBill[materialNumber] = entryRow;
+                }
+                dctAllBills.Add(billNo, dctOneBill);
+            }
+            return dctAllBills;
+        }
+        /// <summary>
+        /// 鑾峰彇閿�鍞鍗曞叧鑱斾富瀹炰綋琛ㄦ牸缂栫爜
+        /// </summary>
+        /// <returns></returns>
+        private string GetPOEntryTableNumber()
+        {
+            IBusinessFlowService bfMetaService = ServiceHelper.GetService<IBusinessFlowService>();
+            var tableDefine = bfMetaService.LoadTableDefine(this.Context, POFormId, "FEntity");
+            return tableDefine.TableNumber;
+        }
+        /// <summary>
+        /// 濉啓婧愬崟淇℃伅
+        /// </summary>
+        /// <param name="srcRow">婧愬崟琛�</param>
+        /// <param name="toRow">鐩爣鍗曡</param>
+        /// <param name="linkRow">鍏宠仈琛�</param>
+        private void FillLinkRow(DynamicObject srcRow, DynamicObject toRow, DynamicObject linkRow)
+        {
+            linkRow["FlowId"] = srcRow["BFLowId_Id"];
+            linkRow["FlowLineId"] = 0;
+            linkRow["RuleId"] = "PRD_PPBOM2PICKMTRL_NORMAL";
+            linkRow["SBillId"] = ((DynamicObject)srcRow.Parent)[0];
+            linkRow["SId"] = srcRow[0];
+            // 鍘熷鎼哄甫閲�
+            decimal baseUnitQty = Convert.ToDecimal(srcRow["BaseNeedQty"]);//鐢ㄦ枡娓呭崟鍗曚綅鏁伴噺
+            decimal joinUnitQty = Convert.ToDecimal(srcRow["BasePickedQty"]);//鐢ㄦ枡娓呭崟鍗曚綅棰嗘枡鏁伴噺
+            linkRow["BaseActualQtyOld"] = baseUnitQty - joinUnitQty;
+            linkRow["BaseActualQty"] = toRow["BASEACTUALQTY"]; //鍩烘湰鍗曚綅瀹炲彂鏁伴噺
+        }
+
+        /// <summary>
+        /// 楠岃瘉鏄惁鐢熸垚杩囩敓浜х敤鏂欐竻鍗曞搴旂殑婧愬崟
+        /// </summary>
+        /// <returns></returns>
+        public bool SourceVerification(string FTID)
+        {
+            string sql = $" select count(*) from T_BF_INSTANCEENTRY where FSTABLENAME= 'T_PRD_PPBOMENTRY' and FTID = '{FTID}'";
+            int count = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
+            if (count == 0)
+                return true;
+            else
+                return false;
+        }
+
+    }
+}
diff --git a/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs b/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
index c41185e..a80e1b2 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
@@ -68,7 +68,6 @@
                 //// 涓嬭浇鍦板潃
                 //string downloadUrl = "FileUpLoadServices/download.aspx";
                 //updateControl.SetCustomPropertyValue("ExDownLoadUrl", downloadUrl);
-                LogHelper.Info("222222");
                 LogService.WriteAsync("涓婁紶鍔熻兘锛�");
                 ImportDataSC(fileFullPath);
             }
@@ -120,7 +119,7 @@
                             if (dt.Rows[i][1].ToString() == "")
                                 error += "鐢熶骇璁㈠崟鍙蜂笉鑳戒负绌�;";
                             if (dt.Rows[i][2].ToString() == "")
-                                error += "鐢熶骇缁勭粐涓嶈兘涓虹┖;";
+                                error += "缁勭粐涓嶈兘涓虹┖;";
                             if (dt.Rows[i][3].ToString() == "")
                                 error += "鐢熶骇杞﹂棿涓嶈兘涓虹┖;";
                             if (dt.Rows[i][5].ToString() == "")
@@ -145,7 +144,7 @@
                             string sql = string.Format(@"/*dialect*/ SELECT T1.FBILLNO,T2.* FROM T_PRD_MO T1
 LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID
 JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID
-WHERE T1.FBILLNO = '{0}'  AND T3.FNUMBER = '{1}'", dt.Rows[i][1].ToString(), dt.Rows[i][5].ToString());
+WHERE T1.FBILLNO = '{0}'  AND T3.FNUMBER = '{1}' ", dt.Rows[i][1].ToString(), dt.Rows[i][5].ToString());
                             DataTable _dt = new DataTable();
                             _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                             string FLOT = "";//FLOT  鎵规
@@ -174,7 +173,7 @@
                             this.Model.SetValue("FSEQ", i + 1, i);
                             this.Model.SetValue("FSalOrderNo", dt.Rows[i][0].ToString(), i);
                             this.Model.SetValue("FSCOrderNo", dt.Rows[i][1].ToString(), i);
-                            this.Model.SetItemValueByNumber("FORGID", dt.Rows[i][2].ToString(), i);
+                            this.Model.SetItemValueByNumber("FORGID", "100", i);
                             this.Model.SetItemValueByNumber("FProductWorkShopId", dt.Rows[i][3].ToString(), i);
                             this.Model.SetItemValueByNumber("FResourcesId", dt.Rows[i][4].ToString(), i);
                             //  this.Model.SetValue("FMatrailId", dt.Rows[i][5].ToString(), i);
@@ -334,20 +333,20 @@
                     jsonRoot.Add("IsVerifyBaseDataField", "");
                     JObject jsonModel = new JObject();
                     jsonModel.Add("FPreparatDate", date.ToString());//缂栧埗鏃ユ湡
-                    jsonModel.Add("FSCOrderNo", current["FSCOrderNo"].ToString()); //鐢熶骇璁㈠崟鍙稦SCOrderNo
+                    jsonModel.Add("FSCOrderNo", Convert.ToString(current["FSCOrderNo"])); //鐢熶骇璁㈠崟鍙稦SCOrderNo
                     jsonModel.Add("FHSeOrderBillNo", Convert.ToString(current["FSalOrderNo"]));//閿�鍞鍗曞彿
                     jsonModel.Add("FHOrderLev", current["FOrderLevel"].ToString());//璁㈠崟绛夌骇
                     jsonModel.Add("FHOrderQty", Convert.ToString(current["FSalOrderCount"]));//閿�鍞鍗曟暟閲�
-                    jsonModel.Add("FHOrderCommitDate", current["FDeliveryDate"].ToString());//浜よ揣鏈烪OrderCommitDate
+                    jsonModel.Add("FHOrderCommitDate", Convert.ToString(current["FDeliveryDate"]));//浜よ揣鏈烪OrderCommitDate
                                                                                             //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("FOrderQuantity", current["FOrderQuantity"].ToString()); ;//鐢熶骇璁㈠崟鏁伴噺
-                    jsonModel.Add("FDayPlanQuantity", current["FDayPlanQuantity"].ToString()); ;//鏃ヨ鍒掓暟閲�
-                    jsonModel.Add("FNoScheduled", current["FNoScheduled"].ToString()); ;//鏈帓鏁伴噺
+                    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 鐗╂枡
@@ -377,6 +376,8 @@
                         DateTime EndDate = DBServiceHelper.ExecuteScalar<DateTime>(Context, sql, DateTime.Now);
                         for (int i = 0; i <= 60; i++)
                         {
+                            if (Convert.ToString(current["FT" + "" + i + ""]) == "" || Convert.ToString(current["FT" + "" + i + ""]) == "0")
+                                continue;
                             if (EndDate >= date.AddDays(i))
                                 continue;
                             JObject jsonFPOOrderEntry = new JObject();
@@ -400,7 +401,6 @@
                         }
                         else
                         {
-                            LogService.WriteAsync(jsonRoot);
                             LogHelper.Error(jsonRoot.ToString());
                             this.View.ShowErrMessage(jsonRoot.ToString());
                         }
@@ -409,6 +409,15 @@
                     {
                         for (int i = 0; i <= 60; i++)
                         {
+                            LogHelper.Error("娴嬭瘯璺冲嚭");
+
+
+                            if (Convert.ToString(current["FT" + "" + i + ""]) == "" || Convert.ToString(current["FT" + "" + i + ""]) == "0")
+                                continue;
+
+                            LogHelper.Error("娴嬭瘯璺冲嚭缁撴潫");
+
+
                             JObject jsonFPOOrderEntry = new JObject();
                             jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//涓绘棩鏈�
                             jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//鏃ヨ鍒掓暟閲�
@@ -431,7 +440,6 @@
                         }
                         else
                         {
-                            LogService.WriteAsync(jsonRoot);
                             LogHelper.Error(jsonRoot.ToString());
                             this.View.ShowErrMessage(jsonRoot.ToString());
                         }
@@ -441,6 +449,7 @@
             }
             catch (Exception ex)
             {
+                LogHelper.Error(ex.ToString());
                 this.View.ShowErrMessage(ex.ToString());
             }
 
diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
index 723e9a5..4498075 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
@@ -164,13 +164,20 @@
         /// </summary>
         public void ExportExcel()
         {
-            string[] Title = new string[] {"閿�鍞鍗曞彿", "鐢熶骇璁㈠崟鍙�", "鐢熶骇缁勭粐", "鐢熶骇杞﹂棿", "鐢熶骇璧勬簮", "浜у搧浠g爜", "浜у搧鍚嶇О", "瑙勬牸鍨嬪彿", "璁¢噺鍗曚綅",
-                "鎵规鍙�","閿�鍞鍗曟暟閲�","鐢熶骇璁㈠崟鏁伴噺","鎬婚綈濂楁暟閲�","浜よ揣鏃ユ湡","璁㈠崟绛夌骇","T0","T1","T2","T3","T4","T5","T6","T7",
+            List<string> Title = new List<string> {"閿�鍞鍗曞彿", "鐢熶骇璁㈠崟鍙�*","鐢熶骇缁勭粐*", "鐢熶骇杞﹂棿*", "鐢熶骇璧勬簮", "浜у搧浠g爜*", "浜у搧鍚嶇О", "瑙勬牸鍨嬪彿", "璁¢噺鍗曚綅",
+                "鎵规鍙�","閿�鍞鍗曟暟閲�","鐢熶骇璁㈠崟鏁伴噺","鎬婚綈濂楁暟閲�","浜よ揣鏃ユ湡*","璁㈠崟绛夌骇*"};
+            /*
+             ,"T0","T1","T2","T3","T4","T5","T6","T7",
                 "T8","T9","T10","T11","T12","T13","T14","T15","T16","T17",
                 "T18","T19","T20","T21","T22","T23","T24","T25","T26","T27","T28","T29",
                 "T30","T31","T32","T33","T34","T35","T36","T37","T38","T39","T40","T41","T42",
-                "T43","T44","T45","T46","T47","T48","T49","T50","T51","T52","T53","T54","T55","T56","T57","T58","T59","T60"};
-
+                "T43","T44","T45","T46","T47","T48","T49","T50","T51","T52","T53","T54","T55","T56","T57","T58","T59","T60"
+             */
+            DateTime date = DateTime.Now;
+            for (int i = 0; i < 61; i++)
+            {
+                Title.Add(date.AddDays(i).ToString("yyyy-MM-dd"));
+            }
             string sheetname = "鏃ヨ鍒掑鍏ユā鏉�.xlsx";
             string file = "";
             file = @"D:\鍔炲叕\K3Cloud\WebSite\TempfilePath\" + sheetname;
@@ -219,7 +226,7 @@
 
             //璁剧疆鍒楀悕
             HSSFRow row = (HSSFRow)sheet.CreateRow(0);
-            for (int i = 0; i < Title.Length; i++)
+            for (int i = 0; i < Title.Count; i++)
             {
                 ICell cell = (ICell)row.CreateCell(i);
                 var rowName = Title[i];
@@ -229,7 +236,7 @@
 
             //鍗曞厓鏍艰祴鍊�
             //鍒楀鑷�傚簲锛屽彧瀵硅嫳鏂囧拰鏁板瓧鏈夋晥
-            for (int i = 0; i <= Title.Length; i++)
+            for (int i = 0; i <= Title.Count; i++)
             {
                 sheet.AutoSizeColumn(i);
             }
@@ -947,7 +954,7 @@
 LEFT JOIN JIT_MOMaterReadysBill B ON T1.FStockOrgId = b.FHSTOCKORGID and T1.FMATERIALID =b.FHMATERID and a.FOwnerId = b.FOwnerId 
 LEFT join T_ORG_Organizations c on a.FOWNERID = c.FORGID
 --join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID
---where d.FAvailableComplete<>0
+where d.FAvailableComplete<>0
 --where T1.FMATERIALID in (105773)
 ");
                 ListInventory = ds.ToModelList<PRD_Inventory>();
@@ -1509,11 +1516,14 @@
             {
                 string sql = string.Format(@"
 /*dialect*/
-select t1.FID,t1.FEntryID,t3.FMATERIALID,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(FNumerator/FDenominator) *t1.FHQTY) FHQtyMust,T4.FUnitID,t8.FNUMBER FUNITNUMBER2,T3.FID FPPBOM,T4.FENTRYID,isnull(T9.FBillNo,'')FBillNo,t10.FNUMBER FORGNUMBER,t11.FNUMBER FHSOURCENUMBER,FSCRAPRATE,FFIXSCRAPQTY,T9.FID AS DayPlanFID
+ select t1.FID,t1.FEntryID,t3.FMATERIALID,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(FNumerator/FDenominator) *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
 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
 JOIN T_PRD_PPBOMENTRY T4 ON T3.FID=T4.FID
+JOIN T_PRD_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
@@ -1548,12 +1558,21 @@
                             FHQtyMust = dr["FHQtyMust"].ToString(),
                             FHQtySub = dr["FHQtyMust"].ToString(),
                             FHPPBomInterID = dr["FPPBOM"].ToString(),
-                            FHPPBomEntryID = dr["FENTRYID"].ToString(),
+                            FHPPBomEntryID = dr["FPPBOMENTRYID"].ToString(),
                             FHSourceID = dr["FHSOURCENUMBER"].ToString(),
                             FNumerator = dr["FNumerator"].ToString(),
                             FDenominator = dr["FDenominator"].ToString(),
                             FFIXSCRAPQTY = dr["FFIXSCRAPQTY"].ToString(),
                             FHQtyScrap = dr["FSCRAPRATE"].ToString(),
+                            FMOBILLNO = dr["FSCORDERNO"].ToString(),
+                            FMOENTRYID = dr["FMOENTRYID"].ToString(),
+                            FPPBOMBILLNO = dr["FPPBOMBILLNO"].ToString(),
+                            FPPBOMFSEQ = dr["FSEQ"].ToString(),
+                            FOwnerTypeId = dr["FOWNERTYPEID"].ToString(),
+                            FOwnerID = dr["FORGNUMBER"].ToString(),
+                            FEntrustPickOrgId = dr["FORGNUMBER"].ToString(),
+                            FMOID = dr["FMOID"].ToString(),
+                            FIssueType = dr["FIssueType"].ToString()
                         });
                     }
                     LogHelper.Info($"鏃ヨ鍒掔敤鏂欐竻鍗曪紝鏁版嵁鍑嗗瀹屾垚锛屼繚瀛樺埌Model瀹炰綋锛屾�昏鏁帮細{DayPlanMaterial.Count}锛岃�楁椂锛�" + sw.Elapsed);
@@ -1564,6 +1583,9 @@
                     {
                         var _DayPlanMaterial = DayPlanMaterial.Where(x => x.FEntryID == item).ToList();
                         JObject model = new JObject();
+
+                        if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID))
+                            model.Add("FID", _DayPlanMaterial[0].FID);
                         model.Add("FHDate", DateTime.Now);
                         model.Add("FOrgId", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FOrgId });//鍙戞枡缁勭粐
                         model.Add("FHMaterID", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FHMaterID });//鐗╂枡
@@ -1587,11 +1609,20 @@
                             ModelEnty.Add("FDwyl", Convert.ToDecimal(_item.FNumerator) / Convert.ToDecimal(_item.FDenominator));//鍗曚綅鐢ㄦ枡
                             ModelEnty.Add("FFIXSCRAPQTY", _item.FFIXSCRAPQTY);//鍥哄畾鎹熻��
                             ModelEnty.Add("FHQtyScrap", _item.FHQtyScrap);//鍙樺姩鎹熻�楃巼%
+                            ModelEnty.Add("FMOBILLNO", _item.FMOBILLNO);//  
+                            ModelEnty.Add("FMOENTRYIDINT", _item.FMOENTRYID);//  
+                            ModelEnty.Add("FPPBOMBILLNO", _item.FPPBOMBILLNO);//  
+                            ModelEnty.Add("FPPBOMFSEQINT", _item.FPPBOMFSEQ);//  
+                            ModelEnty.Add("FOwnerTypeId", _item.FOwnerTypeId);//  
+                            ModelEnty.Add("FOwnerID", new JObject() { ["Fnumber"] = _item.FOwnerID });// 
+                            ModelEnty.Add("FEntrustPickOrgId", new JObject() { ["Fnumber"] = _item.FEntrustPickOrgId });// 
+                            ModelEnty.Add("FMOID", _item.FMOID);//  
+                            ModelEnty.Add("FISSUETYPE", _item.FIssueType);//  
+
                             Entry.Add(ModelEnty);
                         }
                         model.Add("FEntity", Entry);
-                        //if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID))
-                        //    model.Add("FID", _DayPlanMaterial[0].FID);
+
                         Fentity.Add(model);
                         if ((i >= 20 || i == fidList.Count) && (i % 20 == 0 || i == fidList.Count))
                         {
@@ -1685,7 +1716,7 @@
 ", FDayPlanWorkID);
                 sql = string.Format(@"
  /*dialect*/
-SELECT T1.FID,FHMASTERDATE,t1.FEntryID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t1.FMATERIALID,t6.FNumber,NeedQty, FStockOrgId 
+SELECT T1.FID,FHMASTERDATE,t1.FEntryID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t1.FMATERIALID,t6.FNumber,NeedQty, FStockOrgId ,FErpClsID
 FROM   (
 select FHICMOINTERID FID,FHICMOENTRYID FEntryID,FPlanDate FHMASTERDATE,FLackCount NeedQty,FHMATERID FMATERIALID,FHStockOrgID FStockOrgId,FPRDBILLNO FBillNo,FSumPlanCount FNeedQty from JIT_MOMaterReadysBill a
 right join (select max(FID)FID from JIT_MOMaterReadysBill GROUP BY FHICMOENTRYID,FHMATERID) b on a.FID = b.FID
@@ -1694,7 +1725,7 @@
 join t_BD_MaterialBase t4 on T1.FMATERIALID = t4.FMATERIALID
 join t_BD_MaterialPlan t5 on T1.FMATERIALID = t5.FMATERIALID
 WHERE  DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0
-AND FERPCLSID=1 
+AND FERPCLSID in ('1','3') 
 AND T1.NeedQty>0
 AND T1.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0}))
 AND T1.FID in ({0}) 
@@ -1781,6 +1812,7 @@
                                         FNumber = DayPlanPpbomls.FNumber,
                                         OLDDATE = DayPlanPpbomls.FHMASTERDATE,
                                         FFIXLEADTIME = FFIXLEADTIME,
+                                        FErpClsID = DayPlanPpbomls.FErpClsID,
 
                                         PurchseFID = Purchase.FID,
                                         PurchseFentryID = Purchase.FENTRYID,
@@ -1833,6 +1865,7 @@
                                         FNumber = DayPlanPpbomls.FNumber,
                                         OLDDATE = DayPlanPpbomls.FHMASTERDATE,
                                         FFIXLEADTIME = FFIXLEADTIME,
+                                        FErpClsID = DayPlanPpbomls.FErpClsID,
 
                                         PurchseFID = Purchase.FID,
                                         PurchseFentryID = Purchase.FENTRYID,
@@ -2007,6 +2040,7 @@
                         FentityModel.Add("FHPOOrderInterID", _item.PurchseFID);// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
                         FentityModel.Add("FHPOOrderEntryID", _item.PurchseFentryID); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
                         FentityModel.Add("FHPOOrderBillNo", _item.PurchseFBillNo); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
+                        FentityModel.Add("FERPCLSID", _item.FErpClsID); //鍙戞枡鏂瑰紡
                         Fentity.Add(FentityModel);
                     }
                     model.Add("FEntity", Fentity);
diff --git a/src/Model/Demo.Model/Model/DayPlanMaterial.cs b/src/Model/Demo.Model/Model/DayPlanMaterial.cs
index 44ddc6e..7f45f2d 100644
--- a/src/Model/Demo.Model/Model/DayPlanMaterial.cs
+++ b/src/Model/Demo.Model/Model/DayPlanMaterial.cs
@@ -51,5 +51,50 @@
         public string FDenominator { get; set; }
         public string FFIXSCRAPQTY { get; set; }
         public string FHQtyScrap { get; set; }
+        
+        /// <summary>
+        /// 鐢熶骇璁㈠崟鍙�
+        /// </summary>
+        public string FMOBILLNO { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇璁㈠崟鍒嗗綍鍐呯爜
+        /// </summary>
+        public string FMOENTRYID { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇璁㈠崟鍐呯爜
+        /// </summary>
+        public string FMOID { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇鐢ㄦ枡娓呭崟缂栧彿
+        /// </summary>
+        public string FPPBOMBILLNO { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇鐢ㄦ枡娓呭崟鏄庣粏琛屽彿
+        /// </summary>
+        public string FPPBOMFSEQ { get; set; }
+
+        /// <summary>
+        /// 浜у搧璐т富
+        /// </summary>
+        public string FEntrustPickOrgId { get; set; }
+
+        /// <summary>
+        /// 璐т富绫诲瀷
+        /// </summary>
+        public string FOwnerTypeId { get; set; }
+
+        /// <summary>
+        /// 璐т富
+        /// </summary>
+        public string FOwnerID { get; set; }
+
+        /// <summary>
+        /// 鍙戞枡鏂瑰紡
+        /// </summary>
+        public string FIssueType { get; set; }
     }
 }
diff --git a/src/Model/Demo.Model/Model/PODemandPlan/DayPlanPpbom.cs b/src/Model/Demo.Model/Model/PODemandPlan/DayPlanPpbom.cs
index f5203fb..1710f0f 100644
--- a/src/Model/Demo.Model/Model/PODemandPlan/DayPlanPpbom.cs
+++ b/src/Model/Demo.Model/Model/PODemandPlan/DayPlanPpbom.cs
@@ -15,7 +15,7 @@
         /// </summary>
         public long FID { get; set; }
         /// <summary>
-        /// 鏃ヨ鍒掑伐鍗曠紪鍙�
+        /// 鐢熶骇璁㈠崟鍙�
         /// </summary>
         public string FBILLNO { get; set; }
         /// <summary>
@@ -83,7 +83,11 @@
         /// JIT瀹夊叏搴撳瓨
         /// </summary>
         public string FJITSafeStock { get; set; }
-        
 
+        /// <summary>
+        /// 鐗╂枡灞炴��
+        /// </summary>
+        public string FErpClsID { get; set; }
+        
     }
 }
diff --git a/src/Model/Demo.Model/Model/PODemandPlan/PODemandPlanTemp.cs b/src/Model/Demo.Model/Model/PODemandPlan/PODemandPlanTemp.cs
index 2264848..3f2389f 100644
--- a/src/Model/Demo.Model/Model/PODemandPlan/PODemandPlanTemp.cs
+++ b/src/Model/Demo.Model/Model/PODemandPlan/PODemandPlanTemp.cs
@@ -92,5 +92,10 @@
         /// 缁勭粐缂栫爜
         /// </summary>
         public string FORGNumber { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡灞炴��
+        /// </summary>
+        public string FErpClsID { get; set; }
     }
 }

--
Gitblit v1.9.1